A tool for exporting robot programs to an ABB RAPID module.
Latest Version: 1.0.0
Size: 25 KB
Publisher: ProtoTwin (contact@prototwin.com)
This package contains a tool that exports the programs of a robot controller as an ABB RAPID module, which can be loaded into RobotStudio or onto an ABB robot controller. Moves, speeds, tools, work objects, external axes and I/O signals are exported, and joint moves are timed to match the joint speeds in ProtoTwin.
<Module Name>.mod. When the programs use signals and Export Signals is enabled, it saves <Module Name>.zip instead, containing the module and an EIO.cfg file that defines the signals.EIO.cfg first (Controller > Configuration > Load Parameters) and restart the controller. Then load the module, set the program pointer to main, and run it.Any warnings are listed at the top of the module and in the console. Problems that would make the program behave differently from ProtoTwin stop the export with an error that names the program and instruction.
Main program indefinitely. When disabled, it runs once.EIO.cfg file with the signals used by the programs.tool0. Robots exported from RobotStudio follow these conventions.Main, which is called from the RAPID main routine. Every other program is exported as a routine that Main can call.| ProtoTwin | RAPID |
|---|---|
| Linear Move | MoveL |
| Joint Move with a selected solution | MoveAbsJ to the joint values of the solution |
| Joint Move without a solution | MoveJ to the target, keeping the current robot configuration |
| Servo Move | MoveAbsJ from the current joint values, where joints that are not specified keep their positions |
| Arc Move | MoveC |
| Path Move | A sequence of MoveL instructions through the points of the path |
| Pause | WaitTime \InPos |
| Await Signal | WaitDI, WaitDO, WaitGI, WaitGO or WaitUntil, with \MaxTime when a timeout is set |
| Set Signal | SetDO, SetGO or SetAO |
| Call | A call to the routine of the program |
| Conditional Call | An IF statement that calls the routine of the program |
| Set Speed | Updates the speeds and accelerations used by later moves |
| Set TCP | Switches the active tool |
| Call Script | Not supported. The export fails, because scripts cannot be converted to RAPID. |
fine). The points along a path are blended with the largest standard zone that keeps each corner within the discretization tolerance of the path, so curved paths run at full speed.Each TCP is exported as a tooldata named after its entity, such as tGripper. Its load (mass, centre of mass and inertia) is calculated from the physics bodies of the tool. When the tool has no physics bodies, a placeholder load is exported with a warning. Measure the load with the LoadIdentify service routine, or enter it from the tool's datasheet, before running on a real robot.
Targets are exported relative to their parent entity, which becomes a work object named after it, such as wFixture. This lets the program be adjusted on the real cell by touching up a work object, instead of every target.
wobj0).Controlled joints under the robot controller entity are the robot axes. Any other controlled joints are external axes, exported as eax_a to eax_f in the order of the controlled joints. They must be configured as mechanical units on the robot controller.
Each signal used by the programs becomes an ABB signal named after it, with a prefix for its type:
| Signal type | Output | Input |
|---|---|---|
| Bit | do |
di |
| Float or double | ao |
ai |
| Other types | go |
gi |
The EIO.cfg file defines them without an I/O device. Group and analog signals must be mapped to an I/O device on the robot controller.
RAPID names are created from the names of entities, programs and signals. Characters that RAPID does not allow are replaced with underscores, names are limited to 32 characters, and duplicates are numbered, such as pTarget_2. Routines start with r, robtargets with p, jointtargets with j, tools with t, and work objects with w.
ConfJ \\Off and ConfL \\Off) when the program starts from main. Moving the program pointer directly to a routine turns configuration checking back on, which can stop the program, so always start from main.Initial release.