Introduction
|
|
The Fanuc vendor downloader translates the basic FASTSUITE Edition 2 functionality into a ready to use Fanuc robot program.
|
|
|
|
|
Layout preparation
|
|
For the robot program to be output correctly, the axes for Fanuc robots must be connected correctly in the Port mapping dashboard in Layout Builder workbench. Fanuc robot controllers 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.
|
|
|
|
|
Fanuc downloader
|
|
The Fanuc downloader supports:
Tool & base frame mapping
Point to point, linear and circular motion output.
Cartesian and joint motion target type for all motions.
Speed, accuracy & acceleration events.
Text event is used to add a comment in Fanuc robot program.
Set signal & wait for signal (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 Fanuc vendor downloader is derived from the translator base implementation.
|
|
|
|
To make the program creation as easy as possible, the Fanuc program is organized in 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 header output is generated at the end of the complete process. It is not done in the OutputHeader() function.
This is because we need the maximum number of source lines in the header and make customizing easier. Instead, it is called in the CreateOutputFile().
|
|
|
|
|
Handle motion
|
|
The HandleMotion() function handles the motion and all the events before and after the motion.
|
|
The motion is divided into source and data sections:
|
|
|
|
Commands and signals are also processed.
|
|
|
Source output
|
|
In the source section, the point sequence is defined, depending on the motion type.
|
|
|
|
|
|
|
Data output
|
|
In the data section, the corresponding point coordinates are evaluated and converted into a suitable format using the motion target type.
|
|
|
|
If a point is created in the source section, the point counter is increased there. If the point is only output in the data section, the point counter needs to be increased there by setting the dataOutputOnly to True.
|
|
|
|
|
Handle events
|
|
In the HandleEvent() function, the events, so-called built-in events, which are delivered with the standard FASTSUITE Edition 2 installation (see the restrictions) are processed.
|
|
|
|
|
|
|
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 Fanuc data structure. This makes the output much easier. The definition of motion groups and joints can be found at the end of the Fanuc 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 & base frame index
|
|
Fanuc itself only supports tool and base frame index numbers within a common range.
|
|
|
|
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.
|
|
|
|