Introduction
|
|
The Daihen vendor downloader translates the basic FASTSUITE Edition 2 functionality into a ready to use Daihen robot program.
|
|
|
|
|
Layout preparation
|
|
The configuration is done within the Port mapping dashboard of the Layout Builder workbench and later used for the download (and VRC connection). The setup is necessary for the downloader to work correctly. Daihen robot controllers organize resources in so called Mechanisms. The robot arm is usually Mechanism #1, a rail or gantry is Mechanism #2, the workpiece positioner is #3 and so on. Edition 2's representation of the OTC mechanism number is the group ID in the Port mapping dashboard divide the axes into different motion groups. Each motion group can have up to 9 joints. This information is read from the layout and processed when the robot program is created. It is therefore important to assign the correct group and axis index to the robot axes.
|
|
|
|
|
Daihen downloader
|
|
The Daihen downloader supports:
Tool frame mapping
Point to point, linear and circular motion output.
Cartesian and joint motion target type for all motion
Speed, accuracy & acceleration events
Text event is used to add a regular command or a comment in the Daihen robot program.
Set signal & wait for signal (logic ports)
Boolean signals only
Set resource ports & wait for resource ports
Boolean signals only
|
|
It has some restrictions:
With FASTSUITE Edition 2 version R2024.1 only the (Python) downloader is available. For creating an upload, the Custom Definition application needs to be used.
Implementation via customizing
Multi-(synchronized) robot motions are supported by default.
|
|
|
Infrastructure
|
|
The Daihen vendor downloader is derived from the translator base implementation.
|
|
|
|
To make program creation as easy as possible, the Daihen program is divided into several sections.
|
|
|
|
These sections are organized in string arrays. The string arrays are initialized in the __init__() function.
|
|
|
|
To add content to the section arrays, it is recommended to use the existing functions:
|
|
|
|
This has the advantage that things like line numbering and margin spacing are automatically maintained.
|
|
|
|
|
Header output
|
|
The downloader needs to cycle through the entire program to gather all necessary data before constructing the header. This is crucial to ensure that all header information is compiled. The invoked methods are CreateJobHeader() -> CreateOutputFile().
Instead of utilizing the basic OutputHeader() method, the Daihen downloader opts for a different approach because OutputHeader() is executed before the looping process.
|
|
|
|
|
Handle motion
|
|
The HandleMotion() function handles the motion and the events before and after the motion.
The motion as well as the cartesian and joint values are output in the same line of the source sections - no data section is needed:
|
|
|
|
|
|
Commands or signals are also processed.
|
|
|
Source output
|
|
In the source section, the point sequence is defined depending on the motion type.
|
|
|
|
|
|
The corresponding robot point coordinates are evaluated and converted into a suitable format, using the motion target type (joint or Cartesian targets). The axis values of all other mechanisms (rail, positioner, etc.) are always output as joint targets.
|
|
|
Handle events
|
|
The base downloader calls the HandleEvent() method for both built-in and customized events. Subsequently, the OutputEvent() method is invoked to process the event that has been called.
|
|
|
|
|
|
Text event
|
|
The two text events below produce the commands/comments shown in the output.
|
|
|
|
|
|
Dwell event
|
|
The dwell event inserts a DWELL command to stop the robot for a number of seconds.
|
|
|
|
|
|
LogicPort event
|
|
LogicPort events set a signal or wait for a signal. They are usually not connected to an actor, like a clamp.
|
|
|
|
|
|
SetResourcePort event
|
|
SetResourcePort events set a signal connected to an actor, like a clamp. After selecting the desired resource in E2 all of its input ports are displayed and can then be activated to either set or reset the ports state.
|
|
|
|
|
|
WaitForResourcePort event
|
|
WaitForResourcePort events wait for a signal connected to an actor to change its state. After selecting the desired resource in Edition 2, all of its output ports are displayed and can then be activated to evaluate the port state.
|
|
|
|
|
|
|
Motion groups
|
|
To simplify the output of point coordinates, the FASTSUITE Edition 2 data is transferred into a separate data structure with motion groups and joints. This data structure corresponds with the Daihen file structure which makes the output much easier. The definition of motion groups and joints can be found at the end of the Daihen translator.
|
|
|
|
|
Constants & settings for additional customizing
|
|
Constants
|
|
Below the class definition you will find the constant definition.
|
|
|
|
These can also be used in derivations by prefixing them with the self command.
|
|
|
|
Minimum & maximum tool frame index
|
|
Daihen itself only supports tool frame indices within a common range. Base frames are not supported by the FD19 controller and therefor not being output into the program
|
|
|
|
Speed, accuracy & acceleration
|
|
The motion profiles are added to the point definition, so motion profile events change class-wide variables that are then considered in the point output.
|
|
|
|