Instruction Support
Universal Robots Instruction Support
The Universal Robots Translator supports upload and download of all instructions in the DELMIA Robotics language that are available in the Universal Robots PolyScope language, and partial support for some of the URScript instructions. All features of the supported instructions that apply to Universal Robots are supported.
The translation result of the tasks will be in URP-files and INSTALLATION-files which can be loaded into the Universal Robots controller. URP-files contain instructions. INSTALLATION-files contain data declarations, robot setup and configuration. On upload, any unsupported Universal Robots PolyScope and URScript instructions will be stored as custom instructions so that the program can be downloaded again without loss of data. On download, these instructions will be converted back to their original format.
The following table summarizes the level of support for each Universal Robots Instruction by the DELMIA Universal Robots translator and DELMIA simulation. Any instruction which does not appear in this list is uploaded as a V6 Custom instruction and will not be used in simulation.
Supported Input Data Types
Supported | File Type | Content Format | Content Description | |
---|---|---|---|---|
.URP | Yes | Gzip | XML with optional embedded URScript | Stores a fully functional, fully defined copy of the robot program behavior. It can include references to .installation and .variables files |
.INSTALLATION | Yes | Gzip | XML with optional embedded URScript | Stores all configuration of the workcell, including UR generated UIDs and metadata. Stores tool configurations, as well as geometric features defined. |
.SCRIPT | Yes* | Text | URScript | Stores a fully functional copy of the robot program |
.VARIABLES | Yes* | Text | URScript | Stores all installation variables defined and required by the UR program |
.TXT | No | Text | Simplified URScript | Provides a simplified view of the SCRIPT file by omitting non-functional lines such as comments |
Supported Instructions
This table summarizes the level of support for each DELMIA instruction by the Universal Robots translator. Following the table is a detailed description of how each instruction is translated.
DELMIA Instruction | Level of Support | Universal Robots Instructions | Comments |
---|---|---|---|
Goto | Not Supported | NA | |
Condition | Supported | <If> | |
For | Supported | <Loop type="counting"> | A for instruction is translated into a <Loop> instruction of counting type. |
While do | Supported | <Loop type="While"> Or <Loop type="Forever"> |
Depending on the while condition, the loop can be of type "While" or "Forever". A "While" loop must have an associated condition to it, whereas a "Forever" loop will run indefinitely or until the program reaches a "Halt" instruction. |
Return | Supported | Return | |
Break | Not Supported | NA | |
Run (service) | Not Supported | NA | |
Run (procedure) | Supported | <CallSubProgram> <SubProgram\> </CallSubProgram> |
The called subprogram can be defined on the CallSubProgram instruction or elsewhere. |
Procedure | Supported | <MainProgram> Or <SubProgram> Or <Script> |
Only mainprograms, subprograms and scripts within the "BeforeStart" special sequence are accepted as procedures. Threads and other scripts within other special sequences will not be uploaded. |
Custom | Supported | Folder instruction Or Any unsupported instruction |
Folder instructions are prefixed by: "Start of folder <FolderName>" at beginning of folder, and "End of folder <FolderName>" at end of folder. All instructions contained between "Start" and "End" will be grouped into a Folder object named FolderName. |
Grab/Release | Not supported | NA | |
Tool attach/detach | Not Supported | NA | |
Assign | Supported | <Assignment> Or <Set> |
A DELMIA assign instruction can be either an assignment or a set instruction in the Universal Robots space. For non-IO related assignments, an <Assignment> instruction is generated. For IO assignments, a <Set> instruction is created. |
Wait | Supported | <Wait> | Two types of wait instructions are accepted: timed wait and DI wait. |
Robot motion | Supported | <Move> MoveJ MoveL MoveC MoveP* |
All joint motion type moves are downloaded as joint target. All linear/circular motion type moves are downloadeds as cartesian target. MoveP instructions are defined as having constant speed and blend radius. However, due to restrictions in Delmia’s RobotMotion, only constant speed will be applied. |
Spot Operation | Not supported | NA | Downloaded as standard robot motion with warning |
Arc Operation | Not supported | NA | Downloaded as standard robot motion with warning |
Dispense/Sealant Operation |
Not supported | NA | Downloaded as standard robot motion with warning |
Paint Operation | Not supported | NA | Downloaded as standard robot motion with warning |
Universal Robots Instructions | Support | DELMIA Instruction Type | Comments |
---|---|---|---|
MoveJ | Supported | Robot Motion | delOlpJointMotion |
MoveL | Supported | Robot Motion | delOlpLinearMotion |
MoveP | Partial support | Robot Motion | delOlpLinearMotion Currently only speed OR distance interpolations are supported |
MoveC | Supported | Robot Motion | delOlpCircularMotion |
Wait | Supported | Wait | |
Set | Supported | Assign | |
Popup | Not supported | Will be uploaded as custom instruction | |
Loop | Supported | Assign | |
SubProgram | Supported | A subroutine will become a robot task | |
Call | Supported | Run | |
Assignment | Supported | Assign | |
If | Supported | ||
Script | Partial support | Procedure* | Only when placed on "BeforeStart" special sequence. Support subject to URScript language support |
Halt | Not supported | Will be uploaded as custom instruction | |
Folder | Supported | Custom | Will be uploaded as two custom instructions: one to indicate the beginning of the folder, and the other to indicate its end |
Timer | Supported | Timer | |
Thread | Not supported | Not supported on initial implementation* |
- Unsupported Instructions
- Any instruction that is not supported on download generates a warning message. Any instruction that is not supported on upload also generates a warning, and a custom instruction is created. This custom instruction is downloaded so that the original NRL command is still intact.
- Condition
- A condition instruction is translated into a Universal Robots <If> instruction, including an <If type="If"> and an <If type="Else">. If a condition is followed by another condition instruction with an NRL text indicating "ElseIf" then the instruction type will be of type="ElseIf".
- For
-
A for instruction is translated into a Universal Robots <Loop type="Counting"> instruction.
- While Do
- A While Do instruction is translated into a <Loop type="Forever"> or a <Loop type="Condition"> depending on whether the loop executes indefinitely or not.
- Custom
- With the exception of custom instructions that determine a folder structure within a Procedure by using "Start of folder <FolderName>" and "End of folder <FolderName>", other custom instructions are parsed in XML form and a serialization is attempted. If the serialization of the XML form of the custom instruction is successful, it is appended to its parent task. Ff not, it is discarded and an error/warning is generated. On upload, any unsupported instruction is converted into a custom instruction by copying its XML form onto the instruction’s display text.
- Assign
- A DELMIA assign instruction is translated into either an <Assignment> or a <Set> instruction. If the variable being assigned is not an output variable, an <Assignment> instruction is generated. If the variable to assign is a Digital Output, then a <Set> instruction is created.
- Wait
- A DELMIA wait instruction is translated into a Universal Robots <Wait> instruction. If the instruction is a timed wait, then the type attribute of the Universal Robots instruction is <Wait type="Sleep">. If the instruction waits for a digital input, its type is "DigitalInput".
- Return
- Return instructions serve a program control usage in DELMIA. Those instructions do not include return arguments, although local output IO can be assigned to a variable to create a return output. In that case, the translator will attempt to match return instructions with the return variable to create a return argument instruction in URScript.
- Run (procedure)
- A DELMIA run instruction, where the run is calling a procedure of type SubProgram, is translated into a Universal Robots <CallSubProgram> instruction. The procedure being called should have a task profile associated with it, and be of task type Subprogram. If the procedure has a task profile but is not of type Subprogram, or if it does not have any associated task profile, it is converted into a sub program.
- Robot Motion
- The following are Universal Robots standard robot motion commands. The table below
gives basic information on the level of support for different motion options.
Universal Robots Motion Option Support Level DELMIA Equivalent Description Translation Note MoveJ Supported Joint Move Joint Move The original representation of the target is preserved throughout upload and download processes. All positions will be uploaded as tag targets.
Move Supported Linear Move Linear Move The original representation of the target is preserved throughout upload and download processes. MoveP Partial Support Linear Move with speed accuracy profile and flyby=On Linear move with constant speed and blend radius Currently only speed interpolation is supported, blend radius will not be constant. MoveC Supported Circular Move Circular move A MoveP instruction preceeds a circular move. Therefore, a Linear Move with an associated speed-based accuracy profile and flyby turned on is required prior to a circle move.