Introduction
|
|
The Yaskawa vendor downloader translates the basic FASTSUITE Edition 2 functionality into a ready to use Yaskawa robot program.
|
|
|
|
|
Layout preparation
|
|
Yaskawa robot controllers divide the axes into different move groups. Each group can have up to 4 Base joints (Rails) and 12 Station joints (Workpiece Positioner).
The configuration is done within the Port mapping dashboard dashboard in Layout Builder workbench and later used for the download (and VRC connection).
|
|
|
|
|
Yaskawa downloader
|
|
The Yaskawa downloader supports:
Tool & base frame mapping
Point to point, linear and circular motion output.
Cartesian (RECTAN) and joint (PULSE) motion target type for all motions.
Speed and accuracy events.
Text event is used to add a comment in Yaskawa robot program.
Set signal & wait for signal events (logic 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.
Resource port events are not implemented in the base.
|
|
|
Infrastructure
|
|
The Yaskawa vendor downloader is derived from the translator base implementation.
|
|
|
|
To make the program creation as easy as possible, the Yaskawa program is organized in several sections.
|
|
|
|
These sections are organized in string arrays. The string arrays are initialized in the __init__() function.
|
|
|
|
The base downloader provides several methods to add content to the arrays, which should be used if possible.
|
|
|
|
|
Header output
|
|
The downloader needs to cycle through the entire program to gather all necessary header data before constructing the header. This is crucial to ensure that all header information is compiled. After processing the data, the header is created by invoking the CreateJobHeader() method within the CreateOutputFile() method.
Instead of utilizing the basic OutputHeader() method, the Yaskawa downloader opts for a different approach because OutputHeader() is executed before the looping process.
|
|
|
|
|
Handle motion
|
|
The HandleMotion() function is responsible for managing both the motion itself and the events that occur before and after the motion. It utilizes various position counters to track the number of different sections. Based on the type of motion, this function invokes specific methods: OutputYaskawaPtp() for point-to-point motion, OutputYaskawaLin() for linear motion, and OutputYaskawaCirc() for circular motion. Additionally, it accommodates the unique requirements of Yaskawa for circular (CIRC) motions, which necessitate the definition of a start point, a via point, and an endpoint.
|
|
|
|
Each OutputYaskawa…() method selects cartesian (RECTAN) or axis (PULSE) outputs based on the PosType, facilitating appropriate motion command generation.
|
|
|
|
The default setting that is applied:
|
|
|
|
Yaskawa Coordinate Output writes definitions to dedicated data sections.
Condition: The Edition 2 robot attribute CENOlpDataOutputStyle is set to RECTAN, which overwrites self.PosType.
|
|
|
|
DataC Part (Robot Position)
|
|
|
|
|
|
Yaskawa Pulse Output (default) converts the axis values to pulse values by using the Edition 2 robot string attributes CENOlpJointStepFactorValues and CENOlpJointZeroOffsetValues.
|
|
|
|
DataBC Part (Rail)
|
|
|
|
|
|
DataEC Part (Workpiece Positoner)
|
|
|
|
|
|
The corresponding move instruction is added, depending on motion type:
|
|
|
|
|
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.
|
|
|
|
OutputEvent() analysis events and calls functions to set speed, accuracy, acceleration and logic ports.
|
|
|
|
|
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 is the same as the Yaskawa data structure. This makes the output much easier. The definition of motion groups and joints can be found at the end of the Yaskawa translator.
|
|
Following helper functions prepare the correct output for different Yaskawa group combinations depending on Edition 2 group mapping:
|
|
|
|
|
Constants & settings for additional customizing
|
|
Constants
|
|
Below the class definition you will find the constant definition.
|
|
|
|
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.
|
|
|
|
|
SyncRobots event
|
|
The base event supports handshakes to synchronize robots. The event needs to be added to the master and slave with Handshake mode and sync text.
|
|
|
|
|
|