Universal Robots Translators

This section provides basic information about the Universal Robots1 translator.

This page discusses:

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.

Expressions

If an error occurs converting an expression on upload, the instruction containing the expression is uploaded as a custom instruction. If an error occurs converting an expression on download, the instruction containing the expression is skipped. This prevents compile errors in the generated program. In both cases, a warning is generated.

Expression Conversion

Universal Robots expressions have many of the operators supported in DELMIA.

Category Description Universal Robots Operator DELMIA Operator
Binary Integer/Double Plus + +
Minus - -
Multiply * *
Division / /
Integer Division NA NA
Modulus NA MOD
Power NA **
Unary Negative - -
Not Not Not
Bitwise Not NA ~
Binary Comparison Equals =, ≟, == =
Not Equals ≠, <> <>
Less Than < <
Less Than or Equal ≤, <= <=
Greater Than > >
Greater Than or Equal ≥, >= >=
Binary Boolean And And And
Or Or Or
XOR NA Xor
Bitwise And NA &
Bitwise Or NA |
Left Shift NA <<
Right Shift NA >>
Bitwise XOR NA ^^
Other Grouping (…) ( ... )
conditional (if) If ... then ... else ... If ... then ... else ...

There are no Universal Robots operators that do not have a DELMIA equivalent. Universal Robots expressions can contain functions, however, if any functions are encountered the expression will be in error and uploaded as a custom instruction.

Controller Parameters

The following controller parameters are used by the Universal Robots translator during upload, download, or both, of Universal Robots programs.

Parameter Measure Purpose Default Value
ProgramFileEncoding String This parameter is used to set the encoding used in .SCRIPT files. (i.e. Shift-JIS)
PartGrabbed String This parameter is used to set the grabbed part in an uploaded grab instruction.
TagPrefix String This parameter is used to add a prefix to all tag names during upload.
WorldCoords Boolean This parameter detemines whether tags are downloaded/uploaded relative to station or robot coordinates. False
CommentWaitSignal Boolean Used to comment wait signals during upload. False
DownloadAsRobotMotion Boolean Used to output non-supported motion types (anything other than robot motion) as a robot motion. False
DownloadTargetType String Used to output specified target type "JOINT", "CARTESIAN" or the default (as set in V6).
robotSerialNumber String Populates URProgram.robotSerialNumber, used on Download
kinematics String Populates URProgram.kinematics, used on Download
crcValue String Populates URProgram.@crcValue, used on Download
programDirectory String Populates URProgram.@programDirectory, used on Download
programInstallation String Populates URProgram.@programInstallation, used on Download
installationDirectory String Populates URProgram.@installationDirectory, used on Download
installationFileName String Populates URInstallation@installationFileName, used on Download
showSpeedSlide String Populates URInstallation@showSpeedSlider, used on Download
toolOutputVoltage String Populates URInstallation@toolOutputVoltage, used on Download
setSignalLow String Populates URInstallation.setSignalLow, used on Download
programStateNode String Populates URInstallation.programStateNode, used on Download
IOS String Populates URInstallation.IOS, used on Download
version String Populates URInstallation.version, used on Download
lastSavedInVersion String Populates URInstallation.lastSavedInVersion, used on Download
geomFeatures String Populates URInstallation.geomFeatures, used on Download
setupFeatureContainerNode String Populates URInstallation.setupFeatureContainerNode, used on Download
safetySettings String Populates URInstallation.safetySettings, used on Download
ToolCommSettings String Populates URInstallation.ToolCommSettings, used on Download
SmoothTransitionSettings String Populates URInstallation.SmoothTransitionSettings, used on Download
defaultProgramSettings String Populates URInstallation.defaultProgramSettings, used on Download
contributors String Populates URInstallation.contributors, used on Download

[1] URScript and PolyScope are or may be trademarks or registered trademarks of Universal Robots or its subsidiaries in the U.S. and in other countries.