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.