Motoman Translators

This section provides basic information about the Motoman1 MRC/XRC translator. The information includes:

This page discusses:

Instruction Support

The DELMIA Motoman Translator provides support for upload and download of all instructions in the DELMIA Robotics language that are available in the Motoman INFORM language. All features of the supported instructions which apply to Motoman are supported.

Motoman File Support

The following table summarizes the level of support for each Motoman file by the DELMIA Motoman translator and DELMIA simulation.

Motoman File Level of Support DELMIA Equivalent Comments
JBI-file Supported Task INFORM allows multiple JOBs defined in a single JBI file. This is supported during upload but download is always into separate files.
TOOL.CND Supported.

Controllers:

  • DX100
  • DX200

Tool Profile If file TOOL.CND is not present in the JBI file selected to upload, a file whose name starts with <Robot Name> and with the extension name ".tol" will be looked for and uploaded if found.
UFRAME.CND Supported.

Controllers:

  • DX100
  • DX200

Object Frame Profile If file UFRAME.CND is not present in the JBI file selected to upload, a file whose name starts with <Robot Name> and with the extension name ".uf" will be looked for and uploaded if found.
SPRESS.CND

(DX100), SGPRS.CND (DX200)

Supported Applicative Profile Spot servo pressure schedules. If file SPRESS.CND is not present, a file whose name starts with <Robot Name> and with the extension name ".spr" will be looked for and uploaded if found.
CLEARNCE.DAT

(DX100), SGCLARNC.DAT (DX200)

Supported Applicative Profile Clearance schedules.
WDELAY.SCD Supported Applicative Profile Weld time schedules. This is NOT a Motoman controller file, but user created.
MACRO.DATSupported.

Controllers:

  • DX100
  • DX200

The system Macro definition file. For each Macro number, it defines Macro name, argument types, argument comments, etc.
Macro Job JBI-fileSupportedTaskEach Macro job JBI file defines a subroutine. There is an identifier "MC" in "///ATTR" pseudo instruction.
ALL.PRM

Supported

Controllers:

  • XRC
  • NX100
  • DX100
  • DX200
  • YRC1000

N/A The Motoman Batch Parameter file. It contains robot system information. It is used to calculate axis Pulse parameters and upload Soft Limits. For upload, if this file exists in the same folder as the program files, it will be read for Pulse parameter calculation. For download to use this file, set the Template folder to where the file is located. Limitation: This is invalid for Shelf-mount robots, except YRC1000.
SGUN.DAT

Supported

Controllers:

  • XRC
  • NX100
  • DX100

N/A The Motoman Spot Gun Condition Data file. It defines encoder Pulse counts and open stroke mapping table for weld guns. It is most useful for Rocker guns with non-linear Pulse-Stroke relation. Put this file in the same folder as program files to upload, and set the Template folder to its location to use on download.
TOOLINTF.DAT (DX100) Supported Tool Volume This is the Motoman Tool Interference data file. There are up to 64 tools (tool volumes), and each tool volume can be a combination of up to 5 shapes (models). Motoman tool volume shape is capsule, consists of 2 points with a radius.
RNGROBO2.CND (DX100) Supported TCP Safety Zone This is the Motoman Robot Range Limit file. There are up to 8 Range definitions, and each Range definition can have up to 8 safety areas. Each safety area is defined as a polygonal prism of up to 16 contiguous lines. Inside the range is safe.
VAR.DAT Supported.

Controllers:

  • DX100
  • DX200

N/A This file stores Motoman variable values. It is used to support variables used in Servo Spot weld.
Other Not Supported

The following table summarizes the level of support for each Motoman instruction by the DELMIA Motoman translator and DELMIA simulation. Any instruction which does not appear in this list is uploaded as a V6 Comment instruction and is not used in simulation.

Motoman INFORM Instructions Level of Support DELMIA Instruction Comments
Motion Instructions
MOVJ Supported Robot Motion See below for details on support for each motion options.
MOVL Supported Robot Motion
MOVC Supported Robot Motion
MOVS Partial Support Robot Motion Uploaded as linear move
EIMOVL Supported Robot Motion See below for details on support for each motion options.
EIMOVC Supported Robot Motion
SMOVL Partial Support Robot Motion Uploaded as a normal motion. No support for download.
SMOVC Partial Support Robot Motion
IMOV Partial Support V6 Comment Not simulated
SPEED Partial Support V6 Comment Not simulated
UNTIL Partial Support Motoman Motion Profile Not simulated
ENWAIT Partial Support Motoman Motion Profile Not simulated
Spot Instructions
SVSPOT Supported Spot Operation No Clearance Profile
SVSPOTMOV Supported Spot Operation Has Clearance Profile
SPOT Supported Spot Operation No Pressure Profile
GUNCL Partial Support V6 Comment Air not supported
STROKE Partial Support V6 Comment Air not supported
GUNCHG Partial Support V6 Comment Not simulated
STRWAIT Partial Support V6 Comment Not simulated
SVGUNCL Partial Support V6 Comment Not simulated
Arc Instructions
ARCON Supported Arc Operation
ARCOF Supported Arc Operation
VWELD Partial Support V6 Comment Not simulated
AWELD Partial Support V6 Comment Not simulated
ARCSET Partial Support V6 Comment Not simulated
WVON Partial Support V6 Comment Not simulated
WVOF Partial Support V6 Comment Not simulated
ARCCTS Partial Support V6 Comment Not simulated
ARCCTE Partial Support V6 Comment Not simulated
Search and Shift Instructions
REFP Partial Support Seam Search REFP instructions are treated as seam search operations. See below for details.
SFTON Partial Support V6 Comment Not simulated
SFTOF Partial Support V6 Comment Not simulated
MSHIFT Partial Support V6 Comment Not simulated
Handling Instructions
HAND Supported Grab/Release
HSEN Partial Support V6 Comment Not simulated
TOOLON Supported Grab
TOOLOF Supported Release
Paint Instructions
SPYON Supported Trigger Action: Nozzle Activation; State: ON
SPYOF Supported Trigger Action: Nozzle Activation; State: OFF
Conveyor Synchronized Instructions
SYSTART Supported Wait The wait condition must be Referential > a constant value or a declared constant. If a declared constant has a dot ('.') in its name, it must be used in double quotes and prefixed with the dollar symbol ('$') to use in the condition.
SYEND Supported Subsequent motions will be regular motions, non-conveyor tracking.
SYMOVJ Supported Robot Motion Conveyor tracking, joint move
SYMOVL Supported Robot Motion Conveyor tracking, linear move
SYMOVC Supported Robot Motion Conveyor tracking, circular move
Logic Instructions
JUMP Partial Support Goto The INFORM JUMP statement includes options which are not supported by DELMIA. See below for details.
* (label) Supported Label on another instruction The label is set on the DELMIA instruction which follows it.
IF Partial Support Condition INFORM IF statements are appended to other instructions (JUMP, CALL, RET, PAUSE) to make them conditional. Upload is not if used with PAUSE. Variable array indexes are not supported. Not all DELMIA IF instructions are supported for download.
IFTHEN Supported Condition The uploaded Activity OLP content stores the keyword IfThenExp, and this Condition activity will be downloaded as IFTHEN instruction.
FOR Partial Support For STEP size 1 is supported.
WHILE Supported While Do
SWITCH Supported Test
RET Supported Return
CALL Partial Support Run (procedure) The INFORM CALL instruction has options which are not supported by DELMIA. Some CALL instructions are uploaded as grab or release instructions. See below for details.
MACRO# Supported Run (procedure) Supported. The procedure can have arguments.
PAUSE Partial Support V6 Comment Not simulated
IO and Arithmetic Instructions
SET Partial Support Assign Upload/Download may not result in the same INFORM syntax when SET, ADD or SUB are uploaded. Variable array indexes are not supported.
ADD Partial Support Assign
SUB Partial Support Assign
MUL Partial Support Assign Variable array indexes are not supported.
INC Partial Support Assign Variable array indexes are not supported.
DEC Partial Support Assign Variable array indexes are not supported.
DIV Partial Support Assign Variable array indexes are not supported.
AND Partial Support Assign Variable array indexes are not supported.
OR Partial Support Assign Variable array indexes are not supported.
NOT Partial Support Assign Variable array indexes are not supported.
XOR Partial Support Assign Variable array indexes are not supported.
SQRT Partial Support Assign Variable array indexes are not supported.
SIN Partial Support Assign Variable array indexes are not supported.
COS Partial Support Assign Variable array indexes are not supported.
ATAN Partial Support Assign Variable array indexes are not supported.
DIN Partial Support Assign Variable array indexes are not supported.
DOUT Partial Support Assign Variable array indexes are not supported.
AOUT Partial Support Assign Variable array indexes are not supported.
GETARGPartial SupportAssignVariable array indexes and position type variables are not supported.
WAIT Partial Support Wait Variable array indexes are not supported. Wait time may be a constant or an integer variable.
TIMER Partial Support Wait Wait time may be a constant or an integer variable.
PULSE Partial Support Pulse Variable array indexes are not supported.
PAUSE Partial Support V6 Comment Not simulated
CLEAR Partial Support V6 Comment Not simulated
CNVRT Partial Support V6 Comment Not simulated
MFRAME Partial Support V6 Comment Not simulated
SETE Partial Support V6 Comment Not simulated
GETE Partial Support V6 Comment Not simulated
GETS Partial Support V6 Comment Not simulated
MULMAT Partial Support V6 Comment Not simulated
INVMAT Partial Support V6 Comment Not simulated
GETPOS Partial Support V6 Comment Not simulated
VAL Partial Support V6 Comment Not simulated
VAL2STR Partial Support V6 Comment Not simulated
ASC Partial Support V6 Comment Not simulated
CHR$ Partial Support V6 Comment Not simulated
MID$ Partial Support V6 Comment Not simulated
LEN$ Partial Support V6 Comment Not simulated
CAT$ Partial Support V6 Comment Not simulated
STRSTR Partial Support V6 Comment Not simulated
SETREG Partial Support V6 Comment Not simulated
GETREG Partial Support V6 Comment Not simulated
Other Instructions
' (Comment) Supported V6 Comment These instructions have no impact on the program execution.
NOP Supported V6 Comment
ARATION Partial Support V6 Comment Not simulated
ARATIOF Partial Support V6 Comment Not simulated
ANTOUT Partial Support V6 Comment Not simulated
CWAIT Partial Support V6 Comment Not simulated
ADVINT Partial Support V6 Comment Not simulated
ADVSTOP Partial Support V6 Comment Not simulated
GETFILE Partial Support V6 Comment Not simulated
SETFILE Partial Support V6 Comment Not simulated
INPUT Partial Support V6 Comment Not simulated
MSG Partial Support V6 Comment Not simulated
TCPON Partial Support V6 Comment Not simulated
TCPOF Partial Support V6 Comment Not simulated

The following table summarizes the level of support for each DELMIA instruction by the DELMIA Motoman translator.

DELMIA Instruction Level of Support Motoman INFORM Instructions Comments
Task Supported JBI-file INFORM allows multiple JOBs defined in a single JBI file. This is supported during upload but download is always into separate files.
Goto Partial Support JUMP

* (label)

The INFORM JUMP statement includes options which are not supported by DELMIA. See below for details.
Condition Partial Support IF INFORM IF statements are appended to other instructions (JUMP, CALL, RET, PAUSE) to make them conditional. Upload is fully supported except if used with PAUSE. Not all DELMIA IF instructions are supported for download.
IFTHEN If the string in the Activity’s OLP Content starts with keyword “IfThenExp”, the Condition activity is downloaded as IFTHEN instruction. The OLP Content is automatically set for tasks created by uploading Motoman programs.
For Partial Support FOR INFORM FOR does not support negative STEP size.
Do While Not Supported NA INFORM has no Do While loop
While Do Supported WHILE
Test Supported SWITCH
Return Supported RET
Break Not Supported NA INFORM has no break
Run (service) Not Supported NA Service calls run procedures from other resources, this is not possible with INFORM.
Run (procedure) Partial Support CALL INFORM does not support arguments. The INFORM CALL instruction also has options which are not supported by DELMIA. See details below.
Run (procedure)SupportedMACRO#When Template is selected to a folder containing system file MACRO.DAT, and a procedure name is defined in the file MACRO.DAT, the procedure is downloaded as Motoman Macro call. It supports arguments.
Grab/Release Supported CALL

HAND

Assign Partial Support SET, ADD, MUL, INC, DEC, SUB, DIV, AND, OR, NOT, XOR, SQRT, SIN, COS, ATAN, DIN, DOUT, AOUT

INFORM has limited expression support in the SET instruction and also has other instruction which can do math functions. Not all DELMIA expressions are supported for download.

Upload/Download may not result in the same INFORM syntax when SET, ADD or SUB are uploaded.

Wait Partial Support WAIT, TIMER, SYSTART INFORM has limited wait expression. Not all DELMIA expressions are supported for download.
Pulse Partial Support Pulse
Robot Motion Supported MOVJ, MOVL, MOVC, EIMOVL, EIMOVC, SYMOVL, SYMOVJ, SYMOVC
Spot Operation Supported SVSPOT, SVSPOTMOVE
Arc Operation Supported ARCON, ARCOF
Seam Search Partial Support REFP REFP instructions are treated as seam search operations.
V6 Comment Supported ' (Comment), NOP These instructions have no impact on the program execution.
V6 Comment Not supported

PULSE, ARATION, ARATIOF, ANTOUT, PAUSE, CWAIT, ADVINT, ADVSTOP, CLEAR, CNVRT, MFRAME, SETE, GETE, GETS, MULMAT, INVMAT, GETFILE, SETFILE, MOVS, IMOV, SPEED, SFTON, SFTOF, MSHIFT, UNTIL, ENWAIT, VWELD, AWELD, ARCSET, WVON, WVOF1

, ARCCTS, ARCCTE, HSEN, SPOT, GUNCL, STROKE, STRWAIT, GUNCHG, SVGUNCL, TOOLON, TOOLOF, INPUT, MSG, GETPOS, VAL, VAL2STR, ASC, CHR$, MID$, LEN$, CAT$, STRSTR, SETREG, GETREG, TCPON, TCPOF2

These are converted to V6 Comment instructions and their effect on simulation is ignored.

[1] WVON and WVOF are not simulated, but can be scripted during download using the ARCStart and ARCEnd profiles. For more details see the arc welding section below.

[2] Any instruction not mentioned, is also converted to a V6 Comment instruction. These could be instructions from an add-on option or from newer controller versions.

Instruction Details

Task

MOTOMAN tasks are called jobs. Jobs are stored in a .JBI file. A single JBI-file can contain multiple jobs; however the controller always saves each job into a separate file. Multiple jobs in a JBI file are supported for upload. During download, all jobs are stored in separate files. JBR-files are not supported.

The job name can be 8 characters long (32 for DX100 controller) and can contain uppercase letters, numbers, or the punctuation -!%&'()_. During download, invalid characters are removed, names that are too long are truncated, and a unique number is appended to the end of the task name if it is not unique.

Unsupported Instructions

Any DELMIA instruction (for, while, break, run service) that is not supported during download is skipped. A message is displayed indicating that this DELMIA instruction is not supported by the INFORM language. This ensures that the generated file is a valid INFORM task. If an unsupported logic instruction contains other instructions, such as the instructions inside a DO WHILE loop, they are skipped. In order to download those instructions, you must remove them from the DO WHILE loop.

V6 Comment

A V6 Comment instruction text is downloaded into the task exactly as is. During upload, any unsupported instruction is created as a V6 Comment instruction with the name of the V6 Comment instruction being the INFORM instruction's text.

Goto

A DELMIA Goto instruction is translated into an INFORM JUMP instruction. In DELMIA, the label is added to another instruction. In INFORM, the label, denoted by a *, is its own instruction.

During upload, the label is set on the first instruction after the label. If there are no more instructions or more than one consecutive label instruction, a V6 Comment activity is created with the name “*MyLabel”. During download, the INFORM label instruction is created before the instruction that the label is defined on. If the label is defined on a V6 Comment instruction which starts with “*”, the V6 Comment instruction is ignored. This ensures that an uploaded program is downloaded exactly the same. For example, if the last line of a Motoman program is "* ENDLBL". A V6 Comment instruction with the text "* ENDLBL" is created and the label is set to "ENDLBL". When this instruction is downloaded, only one line is added to the program instead of one for the label and one for the V6 Comment instruction. A message is displayed if the label does not match the V6 Comment instruction text.

INFORM Labels can be a maximum 8 characters long, can contain upper or lower case letters, numbers, or punctuation “-!%&’()_”. During download, invalid characters are removed, names which are too long are truncated, and a unique number is appended to the end of the label if it is not unique.

During download, there are no restrictions translating a DELMIA Goto into an INFORM JUMP.

During upload, there are many restrictions because the INFORM JUMP instruction has more options than can be supported in DELMIA. If the “*” format is used, a normal DELMIA Goto instruction is created. If the “JOB:” format is used, a DELMIA run instruction is created. All other formats (LABEL, B, LB, IG, QUE, I, LI, D, LD, and JET) are not supported and are uploaded as V6 Comment instructions. The UF option for the “JOB:” format is not supported and, if specified, a V6 Comment instruction is created. The LBLST and LBLDF options are also not supported and a V6 Comment instruction is created if encountered. See the Condition section for details on how the IF option is handled. If the label referenced by a JUMP does not exist in the program, a warning is displayed and the Goto instruction will not point to any label.

Condition

A DELMIA Condition instruction is translated into an IF. IF statements in INFORM are options added onto other instructions. For example, an IF condition can be added to a JUMP, CALL, RET or PAUSE instruction.

Since PAUSE is not supported for upload, the IF on a PAUSE instruction is uploaded as part of the PAUSE V6 Comment instruction.

During download, any instructions in the DELMIA else clause are ignored. If it is not empty, a warning is displayed. The DELMIA Then clause must contain only one instruction and that instruction must be either a run procedure (CALL), a Goto (JUMP), or a return (RET). If the first instruction is not one of these instructions, the Condition instruction is skipped and a warning is displayed. If any other instruction exists in the clause, they are ignored and a warning is displayed.

During download, the expression for the DELMIA IF must conform to the INFORM IF rules. An INFORM IF instruction can contain one Boolean comparison operator. The operands can be an input (IN#), an input group (IG#), a byte (B, LB), an integer (I, LI), a double (D, LD) or a register (R, LR). Allowed operators are =,>, <, =>, <=, <>. The input and input group variables have further restrictions on how they can be used.

During upload, a condition instruction with one instruction in the then sequence is created. The expression is an exact translation of the INFORM expression.

Return

A DELMIA return instruction is translated into an INFORM RET instruction. See the Condition section for details on how the INFORM IF option is handled.

Run (procedure)

A DELMIA run instruction, where the run is calling a procedure, is translated into a INFORM CALL instruction. DELMIA run instructions can have arguments, but INFORM CALL instructions do not.

During download, any run instruction with arguments is skipped and a warning is displayed.

During upload, there are many restrictions because the INFORM CALL instruction has more options than can be supported in DELMIA. If the “JOB:” format is used, a DELMIA run instruction is created. All other formats (B, LB, IG, QUE, I, LI, D, LD, and JET) are not supported and are uploaded as V6 Comment instructions. The UF option for the “JOB:” format is also not supported and if specified, a V6 Comment instruction is created. See the Condition section for details on how the IF option is handled.

INFORM Macro Calls

When a DELMIA Run instruction name is found in the Motoman system file MACRO.DAT, it is downloaded as a Macro call. In this case, procedure input arguments are supported. The INFORM Macro call syntax is:

MACRO1 MJ#(0) ARGFB000

Where:

  • ARGF: Keyword
  • MJ#(X): In the system file MACRO.DAT, the Macro Job number X (minus 1) whose name matches the DELMIA task name
  • B000: Input argument variable name

When there are no input arguments, the syntax is:

MACRO1 MJ#(2)

When input arguments are constants, the syntax is:

MACRO1 MJ#(3) ARGF11 ARGF-22 ARGF33 ARGF-2.5

Grab/Release

INFORM has a HAND instruction which corresponds to Grab/Release. A CALL job is also often used for this purpose (for example, HANDON and HANDOF).

During upload, HAND … ON is translated to a grab instruction and HAND … OFF is translated to a release instruction. Additionally, CALLs for some special JOB names are uploaded as grab or release instructions. For example, CALL JOB:HANDON are uploaded as a grab and CALL JOB:HANDOF are uploaded as a release, unless a task already exists with the special JOB name or if a JBI-file with those names was explicitly selected for upload. The part to grab or release is specified in the parameter PartGrabbed of the "Motoman Controlledddr Profile".

Grab JOB Names Release JOB Names
HANDON HANDOF
TOOLON TOOLOF
GRAB RELEASE
PICK DROP

During download, the instruction name is based on the grab or release instruction name. If the instruction name is valid INFORM syntax (either a HAND or CALL instruction), it is downloaded as-is. If the instruction name is not valid syntax, it is treated as a job name. For example "Grab.1" is downloaded as "CALL JOB:GRAB1" ("." is removed because JOB names cannot contain periods).

Assign

A DELMIA assign instruction is translated into one of several INFORM arithmetic instructions. The supported INFORM variable manipulation functions are SET, ADD, MUL, CLEAR, INC, DEC, SUB, DIV, AND, OR, NOT, XOR, SQRT, SIN, COS, ATAN, DIN, DOUT, and AOUT.

When a task’s Motoman Task Profile attribute "Header_Attr" contains identifier "MC", and the task name is found in MACRO.DAT, DELMIA assign instructions in the form LB000:=B1 are downloaded as GETARG instructions. The GETARG instruction is only valid in Macro job files. The data types can be Byte, Integer, Double precision Integer, or Real. (Instead of calling a Macro with variable input argument, constant input arguments are uploaded as LI000:=KI2, for example.)

During download, the instruction used is dependent on the source expression of the assignment.

INFORM Instructions INFORM syntax Equivalent DELMIA assign
ADD, MUL, SUB, DIV, AND, OR, NOT, XOR INSTR A B A:=A op B
SET [1] INSTR A exp A:=exp
DIN, DOUT, AOUT [2] INSTR A B A:=B
SQRT, SIN, COS, ATAN INSTR A B A:=func(B)
INC INC A A:=A+1
DEC DEC A A:=A-1
GETARGGETARG LB000 IARG#(1)LB000:=B1

[1] SET allows expressions for the source of the assignment. Expressions only support +, -, * and / operators and a maximum of 7 operators are allowed. Parentheses are supported. If the expression happens to be equivalent to a dedicated INFORM instruction, the same instruction will not be downloaded. For example. if the instruction is "SET B000 B000+1", this is uploaded as "B000:=B000+1" and then downloaded again as "INC B000". This same limitation applies to ADD and SUB.

[2] DOUT and AOUT are used during download if the target of the DELMIA assign instruction is an output variable. DOUT is used for Boolean and integer outputs, AOUT is used for double outputs. DIN is used if the source variable is an external IO. The INVERT option for DOUT is translated as A:=NOT A or A:=not A depending on if the output is a Boolean or an Integer.

Any DELMIA assign expression not listed in the table above cannot be downloaded. When encountered, a warning is displayed and the instruction skipped.

Wait

A DELMIA Wait instruction is translated as an INFORM WAIT, TIMER, or SYSTART instruction.

During download, the expression for the DELMIA Wait must conform to the INFORM WAIT expression syntax. WAIT instructions only allow + or <> operators, and there are limitations on the variables allows for each operand.

The INFORM "TIMER" instruction corresponds to a DELMIA Wait instruction with the expression set to the constant "false." This is a pure delay.

The T= option of the INFORM WAIT instruction corresponds to the timeout option of the DELMIA wait instruction if the WAIT instruction is not a pure delay. The WAIT time may be a constant or an integer variable (I, LI) variable. When an integer variable is used, the wait time is 1/100 of the value of the integer variable. For example, if I002 is 5, the stop time is 0.05 sec.

When the Wait Condition is "Referential > constant", a conveyor synchronization start instruction SYSTART is generated. The constant in the wait condition can be a constant value or a declared constant. If a declared constant has a dot ('.') in its name, it must be used in double quotes and prefixed with the dollar symbol ('$') to use in the condition.

During upload, WAIT instructions are uploaded as V6 Comment activities if the parameter "CommentWaitSignal" of the profile "Motoman Controller Profile" is set to true (the default value). This occurs because the robot program pauses during simulation at the WAIT instruction unless all the robot's IO have been set up and you are simulating the full station behavior.

Pulse

A DELMIA Pulse instruction is translated as an INFORM Pulse instruction.

Output number and output value for OG# and OGH# cannot be specified as a variable. It must be specified as a number. Pulse duration (Time) may be a constant or an integer variable in which case the stop time is 1/100 of the value of the integer variable.

For Boolean IO, Pulse instruction with value 'false' or 'Invert' is assumed to be the value 'true'.

When pulse duration is set to Infinite, it will download to the maximum of 60 seconds.

Non-zero Delay value is not supported in Motoman and warning about it being ignored is issued.

Trigger

A DELMIA Trigger instruction is translated as an INFORM paint instruction SPYON or SPYOF.

When the Trigger Action is "Nozzle Activation" and its State is "ON", it is downloaded as SPYON (spray start). If the State is "OFF", it is downloaded as SPYOF (spray stop).

The Condition may be Time or Distance, and it is downloaded as Anticipation time or distance.



Gun number is the Parameter set number in the Paint Profile dialog box.

Robot Motion

The table below gives basic information on the level of support of different motion options. Any unsupported options are stored in an applicative profile attached to the motion instruction so they can be downloaded again.

Motoman Motion Option Support Level DELMIA Equivalent Description Translation Notes
MOVJ, MOVL, MOVC, MOVS MOVS (spline) not supported. Joint, Linear, Circular motion type

INFORM requires 3 MOVC instructions in a row. [3]

MOVS is uploaded as a linear move.

Pxxx, LPxxx, BPxxx, LBPxxx, EXxxx, LEXxxx Global positions supported, not local Position Type / Position Number Position storage location By default positions are stored internally in the JOB in "C" variables. For example: C000, BC000, EC000. It is not possible to control the numbering of the C variables. If P variables are used the property "Position Number" is set to "P000" or if aux axes are used a comma separated list "P000, BP000". The local variables LP, LBP, LEX are not supported since they are used for temporary storage and position computation is not supported in DELMIA. Array indexing with non-constant arrays for P variables is also not supported.
T Not supported Point variable
VJ, V, VR, VE Support Motion Profile Speed

If the speed is omitted in INFORM, the speed is taken from the last SPEED instruction or from the last ARCON instruction. The arc welding case is supported by DELMIA, the more general case is not supported. See the Arc Welding section below for more details on that case. In the general case, the motion profile MotomanDefault or MotomanDefaultJnt is used.

MOVJ can only use the VJ speed option.

MOVL, MOVC, MOVS only use the V, VR or VE options. VE is only valid with jobs that have a robot and a station axis. There is a parameter "UseVE" set on a motion profile that is associated with the VE speed option. Please refer to Motion Profile Parameter section.

VJ & VE are motion basis %, and V & VR are motion basis absolute. VR is an angular speed.

Upon upload, when there are predefined motion profiles (e.g. VJ=25 or V=150) matching the moves' speed settings, they are used. Otherwise new motion profiles are created.

Speeds specified as a variable are not supported. The speed is uploaded as MotomanDefault or MotomanDefaultJnt.

PL, CR Parial Support Accuracy Profile Accuracy

For an omitted accuracy setting, the Motoman manual states "If the position level is not set, the precision depends on the operating speed." That functionality is not supported by DELMIA so we create an accuracy profile called MotomanDefaultJnt (for MOVJ) or MotomanDefault (for MOVL and MOVC) with FlyBy=On and accuracy type speed. The problem is that we don't know what value to specify so we use 63%. This value can be changed with the parameter MotomanDefaultJnt and MotomanDefault (see below)

Specified Position levels (e.g. PL=0~8) are distance accuracy settings. The NX100 (and XRC when parameter XRCPositionLevel is set to 8) default values for the position levels 1 through 8 are 25mm, 50mm, 100mm, 150mm, 200mm, 300mm, 400mm, 500mm. Accuracy profiles named PL=1~8 are set to the values specified here during upload. Accuracy profile "PL=0" is treated differently. If its Flyby Mode is On, or Accuracy Type is Speed, or Accuracy Value is not zero, a new accuracy profile is created during upload with the default settings. Either way the profile indices are set to the PL value.

During download, if an accuracy profile index is set, then PL=<index> is downloaded. If the profile name and setting mismatch, a warning is issued.

If CR is specified, the distance is set to the CR value.

During download if the profile is not named MotomanDefault, MotomanDefaultJnt, PL=x, CR=x, or SPDL=x, PL is used and the position level closest to the values specified above is used.

FlyBy off corresponds to PL=0.

Accuracy values specified as a variable is not supported. A profile with the same name as the accuracy expression is created or used if it already exists.

See also Accuracy Parameter section.

SPDL Not supported Servo Float
MT,MTE Not Supported Amount of T axis or station axis rotation.
NWAIT, WAIT Not Supported Continue execution before target reached
UNTIL Not Supported Move until condition satisfied
NSRCH, SRCH, ASRCH, HPSRCH Not supported Search
ACC/DEC Partial Support Motion Profile Acceleration

Combined with V, VJ, VR, VE to create motion profile.

Acceleration values specified as a variable is not supported.

DELMIA only supports one value for acceleration/deceleration. If ACC and DEC are different (or one is missing) then a warning is issued and the average value is used in the motion profile.

Comment Supported Position Comment
+MOVJ, +MOVL, +MOVC, +MOVS Partial Support Multiple Groups

Only supported for station (positioner/end of arm tooling) and base (rail/track) devices. Multiple robots is not supported. You must set the StationGroup and/or BaseGroup parameters in the controller profile.

EIMOVL, EIMOVC Supported Robot motion Fixed TCP

The Motoman user frame (UF#) is equivalent to a fixed tcp tool profile and the tool is equivalent to the object frame used with the fixed TCP move.

SYMOVJ, SYMOVL, SYMOVC Supported Robot Motion Conveyor synchronized move These are conveyor synchronized motions, or line tracking.
Relative Job Supported Cartesian coordinates for positions

Normally all positions are stored in Pulse counts in Motoman programs. The Relative Job option allows positions to be stored in Cartesian coordinates.

To download a relative job, set DownloadTarget="RECTAN" in the Motoman Controller Profile. You can control the coordinates of Base axes (rails) using the parameter DownloadTargetBC.

The coordinates used depend on the object frame profile. If the object frame profile is named "BASE" then coordinates are relative to the base axis origin. If it is named "ROBOT" then coordinates are relative to the robot origin. In the "BASE" and "ROBOT" case, the object frame profile should be 0.

Positions for all other object frame profiles are downloaded in USER coordinates.

TOOL.CND Supported Tool profile Tool TCP offset condition file

Tool profiles are created or updated from this file if it exists. The file is also generated during download. This file contains only mobile TCP tool profiles or fixed TCP object frames.

UFRAME.CND Supported Object Profile User frame condition file

Object frames are created or updated from this file if it exists. This file is also generated during download. This file contains fixed TCP tool profiles and mobile TCP object frames.

[3] INFORM requires 3 circular motions to form an arc. The 1st position is moved to with linear interpolation and the next 2 points, with circular interpolation. There can also be more than 3 points, in which case the circle is recomputed after each move. This mode is not supported for translation. If more than 3 circular moves are encountered, all but the last 2 moves are uploaded with linear interpolation.

Notes on Continuous Circular Moves

NX100 Controller: It is necessary to program a Joint or Linear move (P4) between the two arcs, and the three targets (P3, P4, and P5) are identical. 3DEXPERIENCE & OLP supports this kind of continuous circular move.

When continuous circular movement is required, the two arcs must be separated from each other by a joint or linear interpolation step. This step must be inserted between two steps at an identical point. The step at the end point of the preceding circular move must coincide with the beginning point of the following circular move.



Table 1. Interpolation type for continuous circular arc
PointInterpolation typeInstruction
P0Joint or LinearMOVJ, MOVL
P1, P2, P3CircularMOVC
P4Joint or LinearMOVJ, MOVL
P5, P6, P7CircularMOVC
P8Joint or LinearMOVJ, MOVL

DX100/DX200/FS100/YRC100 Controllers: In addition to the 3-identical point method used in NX100, these newer controllers support an FPT Tag in MOVC instruction that specifies the End-point of an arc (arc curvature is to be changed).

OLP support is as follows:

Download: After a Circular move is encountered, a Circular-Via breaks the current arc, therefore its preceding Circular move will have an FPT tag. In the following motion sequence, since P4 is a Circular-Via after Circular move, therefore Circular move P3 will have an FPT tag.

P0 P1 P2 P3 P4 P5 P6
Joint Linear Circular-Via Circular Circular-Via Circular Joint
Joint Circular Circular Circular Circular-Via Circular Joint

Upload: When a MOVC instruction with an FPT tag is encountered, the following MOVC will be uploaded as Circular-Via move.

Alternatively, to continue movements without adding an extra joint or linear interpolation step in between, add "FPT" tag to the step whose curvature is needed to be changed.



PointInterpolation typeInstruction
P0Joint or LinearMOVJ, MOVL
P1, P2CircularMOVC
P3CircularMOVC, FPT
P4, P5CircularMOVC
P6Joint or LinearMOVJ, MOVL

Notes on Conveyor Synchronized Motions

To upload a program with conveyor synchronized motions, you must create a Referential profile on the conveyor and a Tracking profile beforehand.

Motoman synchronization start instruction SYSTART:

SYSTART CV#(1) STP=50.000 OL=10.0

Synchronization Start Position STP is equivalent to Part detect offset in the Tracking profile.

Over Limit (OL) is equivalent to Outbound offset in the Tracking profile.

Upon upload, a Wait instruction is created in the following format:

wait Referential > $”<tracking profile>_INBOUND”

A constant is created:

<tracking profile>_INBOUND

Motoman synchronized motion instructions:

SYMOVJ VJ=50.00 CV#(1) CTP=100.000
SYMOVL V=200.00 CV#(1) CTP=100.000
SYMOVC V=200.00 CV#(1) CTP=100.000

CV#(1) is the conveyor number, and User Identifier in the Tracking profile.

CTP is the Conveyor Taught Position. It is set on each robot motion.

For link tracking upload, it is necessary to click the button Click To Attach Part in the Object Frames tab of the Import Industrial Robot Program dialog box and select a conveyor to which the path is to be attached. Alternatively, you can set the default Reference to Object in the Object Frame Profile dialog box and select a conveyor beforhand to skip this step.

I/O Output Timing Control Function

A motion instruction with +DOUT is uploaded as a robot motion followed by a Trigger instruction with Distance or Time Condition. Motion instructions with +PULSE is not supported.

MOVx … +DOUT OT#(1) ON ADJD=-50.0 ` distance mm
MOVx … +DOUT OT#(1) ON ADJT=-1.00 ` time sec

Position Registers

Position registers are global positions that are reused among many robot programs. A position register can be joint values or a Cartesian location. Motoman position registers are called P-vars and are named Pxxxx for the robot target and aux targets are named either BP-vars for rail targets or EX-vars for other aux axes. Motoman regular move targets are called C-vars and are named Cxxxx for robot targets. Auxiliary device targets are named BC-vars for rail targets or EC-vars for other aux axes.

Tags have a lock property which prevents users from modifying their positions in one or more dimensions. If x, y, z, yaw, pitch and roll are all locked, the user cannot modify the tag's position in teach, in the trajectory editor or with the robot compass without first unlocking the tag.

Home positions can only be modified through the "manage home positions" command. They are not modified when you use the modify command for a robot motion in teach.

On upload, robot Home positions will be created for P-vars with Pulse values. Auxiliary device home positions will also be created for BP-vars and/or EX-vars. For Cartesian values, locked tags in a dedicated tag group "<robot>_GlobalTags.1" will be created. The Home position and locked tag names will be the same as the P-vars, and in the cases of auxiliary axes BP-vars and/or EX-vars.

On download, Home positions will be output as P-vars based on the Home name. All moves which reference tags in the tag group with "GlobalTags" in the name are downloaded as P-vars.

If a motion OLP Activity Property "Position Type" is set to "C" or "P", it will be downloaded as a C-var or P-var. This takes precedence over target type (Home or tags in "GlobalTags"). OLP Activity Property "Position Number" can also be set in the form of "P<number>, BP<number>, EX<number>" to download P-vars etc. and "Position Number" takes precedence over "Position Type".

Spot Welding

Only servo guns are supported for spot welding. Gun changes are not supported. Spot instruction translation depends upon the weld gun stationary tip clearance settings of the spot profile associated with the spot operation.

If the Pressure Start Move and Pressure End Move stationary tip clearances are zero (0), the Spot instruction is downloaded as SVSPOT with a MOV* instruction created prior to it, otherwise the spot instruction is downloaded as an SVSPOTMOV.

If the parameter NameOverride is set to “true”, the profile name is output as a spot instruction. This can be used for dry spot SVGUNCL or SVSPOTMOV with settings WP (weld pressure) and/or BWS (gun stroke for welding start).

In the following spot weld instructions:

SVSPOT GUN#(1) PRESS#(1) WTM=1 WST=1

SVSPOTMOV C0000 EC0000 V=1000.0 PLIN=1 CLF#(1) GUN#(1) PRESS#(1) WTM=2 WST=1 WGO=1

the gun number(GUN#) is used for gun selection in DELMIA Spot Profile; applicative profiles created for the pressure schedule(PRESS#), weld time schedule(WTM), and clearance schedule(CLF#) are linked to the Spot Profile. WST(weld start timing) and WGO(weld group output) are not used in simulation. They are set in the controller parameters of the Spot Profile, if present.

During upload, spot profiles with the instruction text are created if they do not exist.

Applicative Profiles

Pressure schedules specify the weld pressure, touch speed, and press times. They are created automatically from the pressure schedule file “SPRESS.CND” (DX100) or "SGPRS.CND" (DX200) if present in the same folder with the program file selected for upload. The profiles are named in the format PRESS#(<index>) to match the way the schedules are referenced on the spot instruction. They can also be created manually from the “Applicative Profile” command.

Table 2. Example PRESS applicative profile
Parameter Example Value Default Value Measure
Index 1 1 Integer
Comment Standard <blank> String
Touch Speed 10% 10% Percent
Touch Press 100.0kgf 0 Force
1st Press 200.0kgf 0 Force
1st Press Time 0.20s 0 Time
2nd Press 300.0kgf 0 Force
2nd Press Time 0.20s 0 Time
3rd Press 200.0kgf 0 Force
3rd Press Time 0.20s 0 Time
4th Press 300.0kgf 0 Force

SPRESS.CND is a file which can be exported from Motoman XRC, NX100, and DX100 controllers. It has the same format for all controllers except for DX100 which has an additional comment field. Below is the DX100 file format.

DX100 SPRESS.CND fileDX200 SGPRS.CND file
//SPRESS 1
///COMMENT Standard
10
100.0
200.0,0.20
300.0,0.20
200.0,0.20
300.0,0.00
//SGPRS 1
///COMMENT 
30
100.0, 655.35
0.0, 655.35
0.0, 655.35
1.0, 2.00

The index is used for download, and the touch speed is used in simulation. The other values are not used.

Clearance schedules specify the weld gun tip clearances and part thicknesses. They are created automatically from the clearance file “CLEARNCE.DAT” (DX100) or "SGCLARNC.DAT (DX200) when present in the same folder with the program file selected for upload. The profile is named CLF#(<index>) to match the way the schedules are referenced on the spot instruction. They can also be created manually from the command “Applicative Profile”.

Table 3. Example CLF applicative profile
Parameter Example Value Default Value Measure
Index 1 1 Integer
Moving 1 1 Integer
Upper Tip 20.00mm 100mm Length
Lower Tip 15.00mm 100mm Length
Thickness 2.0mm 0mm Length

CLEARNCE.DAT is a file that can be exported from Motoman NX100 and DX100 controllers. It has the same format for both controllers. DX200 uses file SGCLARNC.DAT.

DX100 or NX100 CLEARNCE.DAT DX200 SGCLARNC.DAT
//CLEARNCE 1
1
20.000, 15.000
2.000
//SGCLARNC 1
1
10.000, 15.000
1.000,4.000
2.500

The index is used for download, and the upper tip, lower tip, and thickness parameters are used in simulation. The other values are not used.

Weld Delay schedules specify weld times. They are created automatically from the file “WDELAY.SCD” when present in the same folder with the program file selected for upload. The profile is named WTM=<index> to match the way the schedules are referenced on the spot instruction. They can also be created manually from the command “Applicative Profile”.

Parameter Example Value Default Value Measure
Index 1 1 Integer
Weld Delay 0.44s 0s Time

The file “WDELAY.SCD” is not a file that can be exported from Motoman controllers. You must create this file based on the weld controller’s schedule files because those files are not robot controller-specific, and depend on the welder controller. This is a text file using the same encoding as the JBI files, and is a comma delimited list. The format has one schedule per line. Any number of lines can be in the file. The time is in seconds.

Index, Time(sec)

The following is a sample file with 3 schedules:

1,0.5
2,0.25
3,0.0
SVSPOT and SVSPOTMOV Instructions

The upload and download behavior of SVSPOT and SVSPOTMOV is linked to the applicative profiles created from uploading the SPRESS.CND (SGPRS.CND), CLEARNCE.DAT (SGCLARNC.DAT) and WDELAY.SCD files with the spot profile, so that the uploaded values are used in simulation. Other spot profile parameters are also configured with the appropriate values.

If any of the SPRESS.CND (SGPRS.CND), CLEARNCE.DAT (SGCLARNC.DAT) or WDELAY.SCD files are not present during upload, the spot profile is created with default values for these profiles.

For most cases, the SVSPOT and SVSPOTMOV instructions are automatically generated during download based on the parameters in the spot profile. In these cases, the spot profile will also be configured during upload so that simulation with and without RRS is as accurate as possible. In less common cases, you can override the auto generation feature and specify the exact SVSPOT or SVSPOTMOV syntax in the spot profile name.

The following table lists all of the known arguments to SVSPOT and SVSPOTMOV instructions used in the XRC, NX100 and DX100 controllers. The parameters that are used in simulation are GUN#, PRESS#, WTM, CLF#, PLIN and PLOUT. WST and WGO do not impact simulation but are commonly used. This table describes any limitations regarding auto generation of the instruction during download and simulation support.

Table 4. Motoman spot instruction options
Measure Used in SVSPOT or SVSPOTMOV Specify for each gun? Optional? Can be set to Variable? Meaning Supported for Auto Generation / Simulation
GUN# Integer Both Yes No Yes Only if value is 1 or 2
PRESS# Integer Both Yes Yes Yes Pressure schedule (SPRESS) Only as Integer and cannot be omitted.
WTM Integer Both Yes No Yes Weld condition schedule (WDELAY) Only as Integer.
WST Integer Both Yes Yes Yes Start timing Full support / not used in simulation
WP Double (kgf?) Both Yes Yes No Can specify pressure directly instead of PRESS# schedule. May only be available for NX100. No
WGO Integer Both Yes Yes Yes Weld group output Full Support / not used in simulation
BWS Double (mm?) SVSPOT Yes Yes Yes Gun stroke value for welding start No
CLF# Integer SVSPOTMOV NA - Only available for 1 gun. No No Clearance schedule (CLEARANCE) - Full Support
PLIN Integer SVSPOTMOV No Yes Yes PL for move to clearance position Full Support / not supported for simulation if value is a variable
PLOUT Integer SVSPOTMOV No Yes Yes PL for move from weld position Full Support / not supported for simulation if value is a variable
Auto Generation of Instruction

By default, the SVSPOT or SVSPOTMOV instructions are automatically generated. In cases where an instruction cannot be automatically generated, the parameter "use profile name for instruction" can be set to "true" on the "Controller Parameters" tab page of the spot profile. When this value is true, the spot profile name is copied as-is to the job during download. If the spot profile name is not valid Motoman syntax, a warning is displayed. The spot profile name is always set to the instruction text during upload.

This value is set to false during upload unless the uploaded instruction is not supported for automatic generation.

The value is set to true for all existing spot profiles.

SVSPOT vs SVSPOTMOV

SVSPOT is a servo welding instruction and does not move the robot. SVSPOTMOV is a compound instruction which includes moving the robot to a clearance position, to the weld position, performing the welding, and finally back to the clearance position.

During upload, an SVSPOT instruction is combined with the previous move to form the spot operation.

Both instructions are configured with the "pressure start" and "pressure end" moves enabled. An SVSPOT is configured with the stationary tip clearance for these moves as 0 (the tip is touching the metal). The moving tip clearance is set to be abs(GunPosition-GunClosePos)-partthickness. The gun position comes from the move which precedes the SVSPOT.

For SVSPOTMOV, the instruction is configured with the stationary tip clearance having the value from the clearance file. See below for more details.

During download, the instruction is downloaded as an SVSPOT if the stationary tip clearance is 0; otherwise it is downloaded as an SVSPOTMOV.

Full support for Auto generation.

Gun#
If Gun# is an integer (not a variable) and is either 1 or 2, it is supported for auto generation and simulation. Gun# corresponds to the "Gun 1" and "Gun 2" check boxes in the spot profile. If both are checked this means that an SVSPOT instruction has two GUN# parameters, each followed by the options for that gun.
PRESS#

PRESS# identifies the pressure schedule from the SPRESS file. A PRESS# parameter is used for each gun.

The applicative profile instance created from the SPRESS file for this schedule number is linked to the spot weld profile. The speed factor for "pressure weld and move" is linked to the "Touch Speed" parameter of the linked pressure profile.

If the SPRESS file does not exist and an existing PRESS applicative profile instance for this schedule number exists, it is used. If none exist, a new profile instance is created with default values and linked to the profile.

If the PRESS# is specified as a variable or if no PRESS#, no PRESS applicative profile is linked and the default speed factor of 100% is used. The property "use profile name for instruction" is set to false to disable auto generation during download.

WTM

WTM identifies the weld condition schedule from the WDELAY.SCD file.

The applicative profile instance created from the WDELAY file for this schedule number is linked to the spot weld profile. The weld delay factor for "pressure weld and move" is linked to the "Weld Delay" parameter of the linked WDELAY profile.

If the WDELAY.SCD file does not exist and an existing WDELAY applicative profile instance for this schedule number exists, it is used. If none exist, a new profile instance is created with default values and linked to the profile.

If WTM is specified as a variable, no WDELAY applicative profile is linked and the default delay of 0s is used. The property "use profile name for instruction" is set to false to disable auto generation during download.

WST and WGO

WST (weld start timing) and WGO (weld group output) are not used in simulation. These two parameters are configurable on the controller parameters tab of the spot profile. Different values can be set for each gun. If the value is blank, the parameter is not used for that gun. The value can be specified as an integer or as a variable name.

Full support for auto generation.

WP and BWS
WP (weld pressure) and BWS (gun stroke for welding start) are not supported for simulation or automatic instruction generation. If these parameters are used, the property "use profile name for instruction" is set to true during upload.
CLF#

The CLF# (Clearance file schedule) is only used with SVSPOTMOV instructions. It identifies the clearance schedule from the CLEARNCE.DAT (or SGCLARNC.DAT) file. A CLF# parameter is used for each gun.

The applicative profile instance created from the CLEARANCE file for this schedule number is linked to the spot weld profile. The moving and stationary tip clearance parameters for the pressure start and pressure end moves are linked to the clearance profile.

If the CLEARANCE file does not exist and an existing clearance applicative profile instance for this schedule number exists, it is used. If none exist, a new profile instance is created with default values and linked to the profile.

If the CLF# is specified as a variable, no CLEARANCE applicative profile is linked. The property "use profile name for instruction" is set to false to disable auto generation during download.

PLIN and PLOUT

PLIN and PLOUT specify the accuracy profile for the Approach Move and Pressure End Move. The appropriate accuracy profile is set in the Approach Move and Pressure End Move during upload based on the PL level set for these parameters. If PLIN or PLOUT are not specified, the "no PL" accuracy profile is used.

Full support for auto generation.

Default values for Spot Parameters
All other spot profile parameters are set to default values. The following table summarizes the value of each spot profile parameter.
Table 5. Spot profile default values
Parameter Measure Specify for each gun? Uploaded Value
Profile Name String No SVSPOT or SVSPOTMOV instruction text
Gun Enabled Boolean Yes True if GUN# present in instruction
Joint Number Integer Yes Identified from motion group.
Gun Closed Joint Value Double (mm) Yes 0
Approach Enabled Boolean No False for SVSPOT, True for SVSPOTMOV
Pressure Start Enabled Boolean No True
Pressure End Enabled Boolean No True
Backup Enabled Boolean No False
Approach Direction Enum No +Z-Axis
Gun Close Direction Enum Yes -ve Axis
Part Thickness Length No SVSPOT - 2mm SPSPOTMOV - Link to clearance file
Approach Moving Tip Clearance Length Yes N/A
Pressure Start Moving Tip Clearance Length Yes SVSPOT - abs(AxisValue-ClosePos)-partthickness AxisValue is the servo gun's position from the preceding move SVSPOTMOV - Link to clearance profile upper tip clearance (upper = movable)
Pressure End Moving Tip Clearance Length Yes SVSPOT - abs(AxisValue-ClosePos)-partthickness AxisValue is the servo gun's position from the preceding move SVSPOTMOV - Link to clearance profile upper tip clearance (upper = movable)
Approach/Backup Stationary Tip Clearance Length No N/A
Pressure Start Stationary Tip Clearance Length No SVSPOT - 0mm SVSPOTMOV - Link to clearance profile lower tip clearance (lower = fixed)
Pressure End Stationary Tip Clearance Length No SVSPOT - 0mm SVSPOTMOV - Link to clearance profile lower tip clearance (lower = fixed)
Approach Move Accuracy Profile Accuracy Profile No SVSPOT - N/A, SVSPOTMOV - PLIN value if PLIN not specified then no PL.
Pressure Start Accuracy ProfileAccuracy ProfileNoPL=0
Pressure Move Accuracy Profile Accuracy Profile No PL=0
Pressure End Accuracy Profile Accuracy Profile No SVSPOT - PL=0, SVSPOTMOV - PLOUT value. If PLOUT not specified, then no PL.
Backup Move Accuracy Profile Accuracy Profile No NA
Pressure Start Acceleration Percent No SVSPOT - 100% SVSPOTMOV - 100%
Pressure Move Acceleration Percent No 100%
Pressure End Acceleration Percent No 100%
Backup Move Acceleration Percent No NA
Pressure Move Push Depth Length Yes 1mm
Pressure Move Speed Factor Percent Yes Link to SPRESS profile
Weld Delay Time Yes Link to WDELAY profile
Backup Move Stroke Length Yes NA
Weld time table Profile No NA

Arc Welding

The translation of Arc welding instructions is dependent on the Arc profile and also the Motoman-specific ARCStart and ARCEnd profiles. Generally, one arc profile is associated with all arc operations for a single weld. An ARCStart profile is associated with the arc profile start section and an ARCEnd profile with the end section.

You can either configure the parameters of the ARCStart/ARCEnd profile or set the profile name. The method for setting the arc profile name is as described for the spot welding scenario described above, and is the preferred method since it offers more flexibility and is the method used during upload. The exact name of the ARCStart/ARCEnd profile is copied to the program for the INFORM instruction, therefore the name should begin with ARCON or ARCOF, or contain valid INFORM syntax such as a CALL.

If the current and/or voltage parameters of the ARCStart/ARCEnd profiles are non-zero, the ARCON/ARCOF instruction is automatically generated. If VoltagePercent is specified, the AVP= option is used. If VoltagePercent is not specified, the voltage parameter is used with the V= option.

The following parameters are used regardless:

  • Speed: if the speed parameter is linked to the arc profile, it is added to the ARCON instruction unless the ARCON instruction uses the ASF parameter.
  • Timer: if the timer parameter is linked to the arc profile as a delay, it is added to the ARCON/ARCOF instruction unless the instruction uses the ASF or ASE parameter.
  • WeldPreStartSubRoutine*: These parameters are used to output INFORM syntax before the ARCON instruction (between the MOV* and ARCON), and should contain valid INFORM syntax. For example, you could set WeldStartSubRoutine1 to “WVON WEV#(1)” to start weaving. It is not possible to generate REFP instructions for weaving.
  • WeldStartSubRoutine*: These parameters are used to output INFORM syntax in after the ARCON instruction, and should contain valid INFORM syntax.
  • WeldPreEndSubRoutine*: These three parameters are used to output INFORM syntax before the ARCOF.
  • WeldEndSubRoutine*: These three parameters are used to output INFORM syntax after the ARCOF. It can be set to “WVOF” to turn off weaving.

For the Weld…SubRoutine parameters, three parameters are pre-defined. If more are needed, user parameters can be added with higher indexes (e.g. WeldStartSubRoutine4).

During upload, all non-simulation instructions before ARCON or ARCOF are uploaded as WeldPre…SubRoutine parameters. If simulation activities appear between the MOVL (or MOVC) and the ARCON or ARCOF instructions, the WeldPre…SubRoutine parameters are not used and V6 Comment instructions are created for ARCON or ARCOF. All instructions up to the first comment or simulation activity after the ARCON or ARCOF are uploaded as Weld…SubRoutine Parameters.

If two ARCON instructions are identical but require different profile parameters, the profile name is mangled during upload. For example, the following program has two welds that are performed with identical ARC instructions, but one is using weaving:

MOVL V=200
WVON WEV#(1)
ARCON ASF#(1)
MOVL V=200
ARCOF
WVOF
MOVL V=200
ARCON ASF#(1)
MOVL V=200
ARCOF

In this case, two arc profiles are created: one named “ARCON ASF#(1)” and one named “ARCON ASF#(1) '1”. The ' character indicates a comment, and any characters that follow it are removed from the instruction during download. You can modify the comment to be more descriptive, if desired.

Variable Conversion

INFORM has only a limited number of variables, and each variable is an array. DELMIA external IO, IO defined on the robot, is mapped to one of the MOTOMAN IO variables. DELMIA variables are mapped to INFORM variables of either global or local scope. On upload the IO and variables are automatically created.

During download, the corresponding INFORM IO or variable is determined from the IO address. The IO address also is used to determine the IO index. IO addresses for IO should be in the format XX#(Y) where XX is the IO type (OT, IN, IG, SIN, SOUT, IGH, OGH, AO) and Y is the port number. IO address for variables should be in the format Vxxx, where V is the MOTOMAN variable type (B, I, D, R) and xxx is the index. For some variables, a number can be used by itself. If the IO address is not specified, an IO address will automatically be assigned to an unused value and a warning is generated.

External IO must be declared of the appropriate type in DELMIA. Group IO must be of type integer, analog IO must be of type double, and all other IO must be of type Boolean. If the IO address in DELMIA specifies a type that does not match, a warning is displayed and the type is ignored. For example, if a Boolean input has its address specified as IG#(1), then it is downloaded as IG#(1). This may result in a JBI-file that cannot be loaded onto a controller.

MOTOMAN Variable/IO Variable Type Direction Location Address
IN#(x) Boolean Input Robot IN#(x) or x
OT#(x) Boolean Output Robot OT#(x) or x
SIN#(x) Boolean Input Robot SIN#(x)
SOUT(x) Boolean Output Robot SOUT#(x)
IG#(x) Integer Input Robot IG#(x) or x
OG#(x) Integer Output Robot OG#(x) or x
IGH#(x) Integer Input Robot IGH#(x)
OGH#(x) Integer Output Robot OGH#(x)
Not Supported Double Input Robot
AO#(x) Double Output Robot AO#(x) or x
Not Supported Boolean Local Variable Robot Bxxx or x
Bxxx Integer Local Variable Robot Bxxx or x
Ixxx Integer Local Variable Robot Ixxx
Dxxx Integer Local Variable Robot Dxxx
Rxxx Double Local Variable Robot Rxxx or x
Sxxx String Local Variable Robot Sxxx or x
Pxxx Not supported
BPxxx Not supported
EXxxx Not supported
LBxxx Boolean Local Variable Procedure Bxxx or x
LBxxx Integer Local Variable Procedure LBxxx or x
LIxxx Integer Local Variable Procedure LIxxx
LDxxx Integer Local Variable Procedure LDxxx
LRxxx Double Local Variable Procedure LRxxx or x
LSxxx String Local Variable Procedure LSxxx or x
LPxxx Not supported
LBPxxx Not supported
LEXxxx Not supported
Not Supported Unknown Any Any
Not Supported Any Input, Output, InOut, Unknown Procedure
Not supported [1] Any Type Constant Robot or Procedure

[1] Constants are replaced by their literal value during download.

The main limitations during upload are:

  • Array indexing is not supported (e.g. B[B001])
  • Position arithmetic is not supported

Data Conversion

INFORM uses only the least significant bit of integers for determining if a signals is true or false. For example in the instruction "DOUT #IN(1) B000" if B000 is 2 (0b00000010) then the value is OFF because the last bit is 0. When converting from an integer to a Boolean, the expression B000 AND 1 is used (instead of B000<>0).

Parameters

The Motoman Controller Profile is used to control the translation, and contains global options for configuring how the translation will occur.

Parameter Name Usage Default Value Description
DeviceID Download & Upload "" The parameter is the Station Number in the JBI program. It supersedes the value set in aux device Instance Title.
PulseValue* Download & Upload 1 The pulses per 360 degress for rotational joints. Pulses per mm for linear joints.
ZeroValue* Download & Upload 0 The pulse count when the joint value is 0 degrees or 0 mm.

Motoman Device Parameters

The pulse count and zero offset parameters are set from a dedicated command accessed from the contextual menu of the motion controller.

By default, the pulse counts and zero offsets are set to the correct values for all Motoman robots. For aux devices, the pulse count is set to 1 and zero offset to 0 by default for all joints. The values are editable.

Motoman Task Profile

An applicative profile can be associated with each task. A new applicative profile containing Motoman task properties is created, and has the values shown in the following table. You can assign a Motoman Task Profile to a task in teach from the context menu after right-clicking on the task.

Parameter Name Default Value Description
DownloadTarget Pulse This parameter takes the values of "Pulse" and "Cartesian" and downloads pulse or Cartesian values in the program.
DownloadTargetBC Pulse This parameter takes the values of "Pulse" and "Cartesian" and downloads pulse or Cartesian values in the program for BC axes.
Header_Attr "SC,RW" Defines job attributes. If DownloadTarget is "Cartesian", "RJ" will be added to this value.

The translator creates the profile on upload based on the JBI-file and uses these parameters on download when generating the JBI-file. If no profile is set on download, the default values are used.

Motoman Controller Parameters

Parameters that apply to the Motoman controller are available in a dialog box accessed from the contextual menu of the resource motion controller. All parameter values are editable.

Parameter Name Usage Default Value Description
BaseGroup Download 1 This parameter determines if the rail axes is downloaded in the same group as the robot axes for moves and in the program header. The default places rail axes into the same group.
BaseNumber Download 1 This parameter determines the number to use for the base axes. For example BS1 or BS2.
CommentWaitSignal Upload TRUE By default, WAIT IO statements are commented out during upload. If this is not desired, set this parameter to "false".
MotomanDefaultAccuracy Upload 63 This parameter specifies the positioning accuracy of the robot for linear/circular moves which do not have a PL specified.
MotomanDefaultJntAccuracy Upload 63 This parameter specifies the positioning accuracy of the robot for joint moves which do not have a PL specified.
OutputTools Download FALSE Generate file TOOL.CND and UFRAME.CND if true.
PartGrabbed Upload "" The name of the part to be grabbed by all grab instructions on upload.
ProgramFileEncoding Download & Upload UTF-8 The parameter specifies the encoding of the robot program to be uploaded or to be created. Commonly used are ISO-8859-1 (West European), and SHIFT_JIS (Japanese)
StationGroup Download 1 This parameter determines if the positioner axes is downloaded in the same group as the robot axes for moves and in the program header. The default places positioner axes into the same group.
StationNumber Download 1 This parameter determines the number to use for the station. For example ST1 or ST2.
DefaultPartThickness Download & Upload 0 For Air gun Spot weld, you can set Part Thickness.

XRC Controllers have an additional controller parameter.

Parameter Name Usage Default Value Description
XRCPositionLevel Download & Upload 4 The parameter specifies the number of position levels of XRC program(4, 8). For all other controller types this parameter is not used.
  • MRC has 4
  • NX100 has 8
  • DX100 has 8
This parameter is no longer used to determine the TOOL.CND and UFRAME.CND file format. The controller version selected in the download command is used.

Motoman Motion Profile Parameter

A parameter named "UseVE" on the motion profile is used to specify the download of speed option VE for linear motion with external axis. This parameter is automatically set to "true" when uploading a motion instruction with speed option VE.

Motoman Accuracy Parameter

A parameter named “Mode” on the accuracy profile is used to set the Motoman accuracy mode. Motoman supports 4 accuracy modes: PL, CR, SPDL, and no PL. PL and CR are different ways of specifying distance based accuracy.

  • PL is “Position Level” and on the Motoman controller each level is assigned an accuracy distance. PL=0 is always flyby off. The Index parameter is used to determine the position level. For example PL=1 is normally accuracy distance = 25mm.
    MOVL C000 V=100 PL=2
  • CR is “Cornering radius” and allows the accuracy distance to be specified in the Motoman motion instruction (in millimeters).
    MOVL C000 V=100 CR=60
  • SPDL is “speed level”, and is a special Motoman feature not supported by DELMIA default motion planning.
    MOVL C000 V=100 SPDL=0
  • None is used for not specifying any accuracy on the motion. When no accuracy is specified the motorman controller uses some speed-based rounding.
    MOVL C000 V=100

The accuracy mode is automatically enabled for new accuracy profiles and has a default value of "PL". Valid values for the parameter are "PL", "CR", "SPDL", or "None". Existing accuracy profiles have the accuracy mode detected from the profile parameters using the logic currently used by Realistic Robot Simulation and Robot Programming.

  1. Motoman DX100 RCONF

    Motoman made a change in their RCONF values for the DX100 controller. For the XRC and NX100 controllers, the flip/no flip parameter (1st value) is based on the R-axis position (joint 4). For the DX100 controller, the parameter is based on the B-axis position (joint 5). The translator outputs the new RCONF format if the DX100 controller version is selected.

  2. Motoman DX100 Format Changes

    The Motoman JBI file format for DX100 includes higher precision numbers for angles.

    Controller Version Description
    NX100 C00000=0.000,0.000,0.000,0.00,0.00,0.00
    DX100 C00000=0.000,0.000,0.000,0.0000,0.0000,0.0000
  3. Enhanced REFP support

    Motoman REFP instructions are reference points. The robot does not move the position defined in the REFP instruction, it is stored for later use. REFP instructions are commonly used for arc welding seam search instructions. All REFP instructions are uploaded as seam search instructions, and the only way to create a REFP instruction during download is from a seam search instruction.

    REFP 1 C00005 EC00005

    REFP instructions are also used for arc welding oscillation points, and can be used for other purposes.

    A REFP is a position instruction (joint values or Cartesian), but the robot does not move to it. The closest V6 equivalent to this is a robot motion that does not get executed. This can be accomplished by creating an "if(false) RobotMotion" logic structure.

    Any robot motion inside the "then" sequence of an "if" statement where the condition is set to "false" is downloaded as a REFP. The REFP index number comes from the applicative profile "Motoman REFP Profile".

    Parameter Name Default Value Description
    REFPIndex 1 The REFP index number

    If no REFP profile has been assigned to the motion, the REFP index will be set to 1.

    During upload, most REFP instructions are uploaded as search instructions. However, if the REFP instruction is inside an arc sequence (between the arc start move and the arc end move), it is an oscillation point and the "if(false)" logic is created for this position along with the REFP profile.

    The following example program uses REFP instructions for oscillation points:

    Motoman Instruction DELMIA equivalent
    MOVJ C00000 EC00000 VJ=100.00 Regular move
    MOVJ C00001 EC00001 VJ=100.00 Regular move
    MOVJ C00002 EC00002 VJ=100.00 Regular move
    MOVJ C00003 EC00003 VJ=100.00 Regular move
    MOVJ C00004 EC00004 VJ=100.00 Arc Operation (arc start). Arc profile that has the a Motoman Arc Start profile in the start section and a Arc End profile in the end section. This profile is assigned to all arc operations for the arc path.
    REFP 1 C00005 EC00005 Weave Point - to be upload as a robot motion inside an if instruction with the condition "false" so the motion is never executed. The Motoman REFP profile assigned to the motion has the index set to 1.
    REFP 2 C00006 EC00006 Weave Point- to be upload as a robot motion inside an if instruction with the condition "false" so the motion is never executed. The Motoman REFP profile assigned to the motion has the index set to 2.
    WVON WEV#(10) Turn on Weaving -parameter WeldPreStartSubRoutine1 of the Motoman Arc Start profile is set to this value on upload
    ARCON ASF#(17) Turn on welding - Motoman Arc Start profile name is set to this value.
    MOVL C00007 EC00007 V=4.2 Arc Operation (arc end)
    WVOF Turn off weaving - parameter WeldEndSubRoutine1 of the Motoman Arc End Profile is set to this value.
    ARCOF AEF#(12) Turn of welding - Motoman Arc End profile name is set to this value.
    MOVJ C00008 EC00008 VJ=100.00 Regular move.

[1] DX100, DX200, NX100, XRC, YRC1000, MRC, ERC, FD100, and INFORM are or may be trademarks or registered trademarks of Motoman/Yaskawa or its subsidiaries in the U.S. and in other countries.