Staubli Translators

This section provides basic information about the Staubli1 translator.

This page discusses:

Instruction Support

Staubli Instruction Support

The Staubli Translator supports the upload and download of all instructions in the DELMIA Robotics language that are available in the Staubli Val3 language. All features of the supported instructions which apply to Staubli are supported.

The translation result of the tasks are in pgx-files and dtx-files that can be loaded into the Staubli controller. pgx-files contain instructions, while dtx-files contain data declarations. On upload, any unsupported Staubli Val3 instructions are stored as custom instructions so that the program can be downloaded again without loss of data. For an upload to succeed, both a pgx file and dtx file must be selected. Alternatively, a pjx file can be selected that points to a pgx and dtx file (See Project File section below).

The following table summarizes the level of support for each STAUBLI Instruction by the DELMIA Staubli 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.

DELMIA Instruction Level of Support Staubli Instructions Comments
Goto Not Supported NA
Condition Supported if <condition> else endif
For Supported for <var>=<start> to <end> endfor
While do Supported while <condition> endwhile do while <condition> Both while/endwhile and do/while supported.
Return Supported Return
Break Not Supported NA
Run (service) Not Supported NA
Run (procedure) Supported CALL
Procedure Supported <Program name="task name"
Custom Supported Any unsupported instruction
Grab/Release Not supported NA
Tool attach/detach Not Supported NA
Assign Supported Variable=expression
Wait Supported Wait <time> Wait <condition>
Robot motion Supported Movej, movel or movec with <target>, <Tool>, <Motion/accuracy>
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
Paint Operation Not supported NA Downloaded as standard robot motion
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 DELMIA Condition instruction is translated into an IF condition ENDIF.
While Do or Do While
A DELMIA While Do instruction is translated into a while <condition> endwhile. Similarly, a Do While instruction is translated into a Do While <condition>.
Custom
A custom instruction text is downloaded into the task exactly as is. On upload, any unsupported instruction is created as a custom instruction, with the name of the custom instruction being the Staubli instruction's text.
Assign
A DELMIA assign instruction is translated into a Staubli assign. Assign destination can be an aio or dio type (i.e. di10=true or ai20=300). It can also be a variable (i.e. xx=20).
Wait
A DELMIA wait instruction is translated into a Staubli wait, with either a <time> or a <condition>. Condition can compare aio or dio values (i.e. di3==di1). Condition can also compare variables (i.e. xx>zz).
Run (procedure)
A DELMIA run instruction, where the run is calling a procedure, is translated into a Staubli program CALL instruction.
Robot Motion
The following are Staubli standard robot motion commands. The table below gives basic information on the level of support for different motion options.
In .pgx (program) file:
movej (Pick[0], tTool[0], mFast[0])
movel (Pick[1], tTool[0], mFast[0])
movel (Pick[2], tTool[0], mFast[0])
movej (Pick[3], tTool[0], mFast[0])
In .dtx (declaration file)
<Data name="Pick" access="private" xsi:type="array" type="pointRx" size="4" xmlns:xsi="XmlSchema-Instance"> 
     <Value key="0" x="1000" y="50" z="1000" rx="0" ry="0" rz="0" fatherId="world[0]" shoulder="lefty" wrist="wpositive" elbow="epositive" /> 
     <Value key="1" x="850" y="-50" z="950" rx="5" ry="20" rz="10" fatherId="world[0]" shoulder="lefty" wrist="wpositive" elbow="epositive" /> 
     <Value key="2" x="800" y="-200" z="550" rx="15" ry="45" rz="-54" fatherId="world[0]" shoulder="lefty" wrist="wpositive" elbow="epositive" /> 
     <Value key="3" x="750" y="200" z="450" rx="-30" ry="85" rz="91.9999999999999" fatherId="world[0]" shoulder="lefty" wrist="wpositive" elbow="epositive" /> 
 </Data> 
 <Data name="tTool" access="private" xsi:type="array" type="tool" size="1" xmlns:xsi="XmlSchema-Instance"> 
     <Value key="0" x="0" y="0" z="0" rx="0" ry="0" rz="0" fatherId="flange[0]" /> 
 </Data> 
 <Data name="mFast" access="private" xsi:type="array" type="mdesc" size="1" xmlns:xsi="XmlSchema-Instance"> 
     <Value key="0" accel="10" vel="20" decel="30" leave="0" reach="0" blend="off" /> 
 </Data> 
STAUBLI Motion Option Support Level DELMIA Equivalent Description Translation Notes
movej, movel, movec Supported Joint, Linear and Circular motion motion type
jointRx, jointRs, pointRx, pointRS Supported JointTarget, CartesianTarget Target type/Target Joint is a jointtarget, point is a tag target. Point targets are always relative to a object frame specified by attribute fatherId. Cartesian targets can be downloaded if OLP data PositionName is set…for upload tags are always used for pointRx and pointRS.
mdesc Supported Motion/Accuracy profile Data type A motion profile and accuracy profile with the same name as the mdesc variable will be created. Attributes accel, decel and vel are percentage.
Tool Supported Tool profile Data type A tool profile with the same name as the tool data type will be created. Toolprofile values will be set based on the tool declaration. Tool declaration fatherId determines the reference frame....flange[0] for robot mount (standard tool) or world[0]/object for fixed TCP.
Frame Supported Objectframe profile Data type A objectframe profile with the same name as the frame declaration will be created. Objectframe values will be set based on the frame declaration. Frame declaration fatherId determines the reference frame….world[0]/object for standard tool or flange[0] for fixed TCP.

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

STAUBLI expressions have many of the operators supported in DELMIA.

Category Description Staubli Operator DELMIA Operator
Binary Integer/Double Plus + +
Minus - -
Multiply * *
Division / /
Integer Division NA NA
Modulus NA MOD
Power NA **
Unary Negative - -
Not NA 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 STAUBLI operators that do not have a DELMIA equivalent. STAUBLI expressions can contain functions, however, and if any functions are encountered the expression is in error and uploaded as a custom instruction.

Controller Parameters

The STAUBLI Controller Parameters are created as a standalone applicative profile called "STAUBLI Controller Profile". Below are the parameters for the current release.

Parameter Measure Purpose Default Value
ProgramFileEncoding String This parameter is used to set the encoding used in the robot program. (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. True
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).

Project File

A Staubli upload can be done by selecting both a pgx file and dtx file. If a dtx file is not found the upload will fail. Alternatively, the user can select a project pjx file as shown here.

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://www.staubli.com/robotics/VAL3/Project/3">
  <Parameters version="s7.1" stackSize="5000" millimeterUnit="true"/>
  <Programs>
    <Program file="PickDrop.pgx"/>
  </Programs>
  <Database>
    <Data file="DataSample.dtx"/>
  </Database>

The project file must contain a valid link to a pgx (PickDrop.pgx) and a dtx (DataSample.dtx) for the upload to succeed.

[1] VAL3 and Staubli Robotics Suite are or may be trademarks or registered trademarks of Staubli or its subsidiaries in the U.S. and in other countries.