Instruction Support
The DELMIA Nachi Translator provides support for upload and download of all instructions in the DELMIA Robotics language that are available in the Nachi robot language. All features of the supported instructions which apply to Nachi controller are supported.
Nachi File Support The following table summarizes the level of support for each Nachi file by the DELMIA Nachi translator and DELMIA simulation. Nachi File | Level of Support | DELMIA Equivalent | Comments | Nachi program file | Support | Task | Nachi program file name extension must be a 3-digit number, and only one procedure is allowed in a Nachi program file. | Other | Not Supported | | |
Instruction Mapping The following table summarizes the level of support for each Nachi instruction by the DELMIA Nachi translator and DELMIA simulation. Any instruction which does not appear in this list is uploaded as a comment instruction and will not be used in simulation. Nachi SLIM Instructions | Level of Support | DELMIA Instruction | Comments | Motion Instructions | MOVE | Support | Robot Motion | See below for details on support for each motion options. | MOVEJ | Support | Robot Motion | MOVEX | Support | Robot Motion | AX only | Spot Instructions | SPOT | Support | Spot Operation | | Arc Instructions | ARCON | Support | Arc Operation | AW | ARCOF | Support | Arc Operation | SWEAVE | Support | Arc Operation | AS | Support | Arc Operation | AX | AE | Support | Arc Operation | Logic Instructions | GOTO Label | Support | Goto Label | | GOSUB Label | Support | Goto Label | | *Label | Support | Label on another instruction | The label is set on the DELMIA instruction which follows it. | IF Execution_Condition THEN Label <ELSE Label > | Partial Support | Condition | | FOR Counter=Start TO End <STEP Increment > Statements NEXT | Support | For | Nachi does not allow modification of the variable Counter inside the FOR loop or using instructions to jump out of the loop. | RETURN | Support | Return | | CALLP prog-number | Support | Run (procedure) | | IO and Arithmetic Instructions | SET | Support | Assign | | RESET | Support | Assign | | SETM | Support | Assign/Pulse | AW. It is uploaded as Pulse when there are Delay and Duration. Otherwise it is uploaded as Assign. | M<number> | Support | Assign | AW | SETMD | Support | Pulse | AX | WAIT | Support | Wait | Wait for IO is true|false | I<number> | Support | Wait | Wait for IO is true (AW) | WAITI | Support | Wait | Wait for IO is true | WAITJ | Support | Wait | Wait for IO is false | DELAY | Support | Wait | Wait time |
TMSTART, TMSTOP, TMRESET, TMREAD |
Support |
Timer |
|
Other Instructions | ' (Comment) | Supported | V6 Comment | |
The following table summarizes the level of support for each DELMIA instruction by the DELMIA Nachi translator. DELMIA Instruction | Level of Support | Nachi SLIM Instructions | Comments | Task | Support | Nachi program file | | Goto | Support | GOTO *Label | | Condition | Partial Support | IF THEN ELSE | Only one(1) Goto instruction is allowed in the Then branch and the Else branch. | For | Support | FOR NEXT | | Do While, While do | Not Supported | NA | Nachi SLIM has no While loop | Return | Supported | RETURN | | Break | Not Supported | NA | Nachi SLIM does not allow jumping out of loops. | Run (service) | Not Supported | NA | Service calls run procedures from other resources; this is not possible with Nachi. | Run (procedure) | Partial Support | CALLP | Nachi SLIM does not support arguments. | Grab/Release | Not Supported | NA | | Assign | Partial Support | Assignment, SET, RESET, M, or SETM | | Wait | Partial Support | DELAY, WAIT, WAITI, I, WAITJ | Nachi SLIM has limited wait expression. Not all DELMIA expressions are supported for download. |
Timer |
Supported |
|
|
Pulse | Partial Support | SETM | AW | SETMD | AX | Robot Motion | Supported | MOVE, MOVEJ, MOVEX | | Spot Operation | Supported | SPOT | See Spot Welding section for details. | Arc Operation | Supported | ARCON, ARCOF, SWEAVE | AW | AS, AE | AX | Seam Search | Not Supported | NA | Nachi has no Seam Search instruction. | V6 Comment | Supported | 'Comment | |
Instruction Details
Task Nachi tasks are stored in program
files.
On download, the program file name is
automatically generated from the robot name with a 3-digit
extension name. If the task name has a numeric extension (e.g.
".123") it is used as the program file extension name. If the
numeric extension exceeds four digits, only the last three digits are
used. If the tasks selected for download have duplicate numeric
extensions (".1" and ".001" are duplicate in fixed 3-digit format),
the later one is incremented.
Unsupported Instructions Any DELMIA instruction (While, Break, Run Service) that is not supported on download is skipped, and a message indicates that this DELMIA instruction is not supported by the SLIM language. This ensures that the generated file is a valid SLIM task. If an unsupported logic instruction contains other instructions, such as the instructions inside a DO WHILE loop, they are also skipped. In order to download these instructions, you must remove them from the DO WHILE loop.
Goto A DELMIA Goto instruction is translated into an
SLIM Goto instruction. For the Nachi translator, a label is required on
a Custom instruction. In SLIM, the label is denoted by a * and is its
own instruction.
On upload, the label is set on a DELMIA
Custom instruction created for the Nachi SLIM label.
SLIM Labels start with a letter of the
alphabet and can be a maximum 16 characters long. Valid characters include alphanumeric, period ("."), and
underscore ("_") characters.
ConditionThe DELMIA Condition instruction is translated
into a Nachi SLIM IF-THEN-ELSE instruction. Expressions in the
DELMIA Condition must conform to the Nachi IF logical
expressions.Multiple expressions can be joined with AND or OR
binary Boolean operators.
Nachi SLIM IF instruction allows one Goto
instruction in the THEN phrase and one Goto instruction in the ELSE
phrase. The ELSE phrase is optional.
For-LoopThe DELMIA For-Loop instruction is translated into a Nachi SLIM For-Next instruction. The Nachi language requires the variable Counter to be either an Integer (Vn% for global and Ln% for local) of a Real (Vn! for global or Ln! for local) variable type. DELMIA restricts the STEP to be either 1 or -1.
Return A DELMIA return instruction is translated into a Nachi SLIM RETURN instruction.
Run (procedure) A DELMIA run instruction that calls a procedure is translated into a SLIM subprogram
CALLP instruction. DELMIA run instructions can have arguments, but
SLIM CALLP instructions do not.
On download, any run instruction with arguments
is skipped and a warning is displayed.
On upload, the program files being called will
be searched in the same folder as the program file selected for
upload. If they do not exist, a blank task is created for the
Run instruction to be valid.
Assign and Set I/O DELMIA Assign instructions are translated into SLIM assignment instructions or Set I/O instructions when destination variable of the Assign instruction is a Boolean output. DELMIA Assign instructions | Corresponding NACHI instructions | Assign O1:=true | SET O1 | SETM O1, 1 (with parameter OutputSETM=true ) | Assign O2:=false | RESET O2 | SETM O2, 0 (with parameter OutputSETM=true ) |
For other Assign instructions, see Expression Conversion for how expressions are translated. For details on how each SLIM data types are translated, see Variable Conversion.
Wait and Wait I/O DELMIA Wait instructions are supported as follows DELMIA Wait and Wait I/O instructions | Corresponding NACHI instructions | Wait (Input[1]=true) Timeout = 1.5 sec | WAIT I1, 1.5 | Wait (Input[2]=true) Timeout = 0 sec | WAITI I2 | Wait (Input[2]=false) Timeout = 0 sec | WAITJ I2 | Wait (false) Timeout = 2.5 sec | DELAY 2.5 |
PulseA DELMIA Pulse instruction is translated as a Nachi AX SETMD instruction or AW SETM instruction. AX: “SETM O5, 1, 10, 3” (Pulse output 5 On with Delay of 10 seconds and Duration of 3 seconds) AW: “SETMD 5, 0, 10, 3” (Pulse output 5 Off with Delay of 10 seconds and Duration of 3 seconds) - Output type Boolean Output variables are supported. (Type Integer Output is skipped.)
- A Pulse instruction with the value ‘Invert’ is assumed to be the value ‘true’.
- When the pulse duration is set to Infinite, it will download to the maximum of 60 seconds.
Timer
TMSTART 4 : Starts timer number 4 – corresponds to "Timer Start T4"
TMSTOP 4 : Stops timer 4 – corresponds to "Timer Stop T4"
TMRESET 4 : Resets timer 4- – corresponds to "Timer Reset T4"
TMREAD 4, X! : Reads value of timer 4 and saves it in variable X – corresponds to
"X:=T4"
Robot MotionThe table below provides 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. Nachi Motion Option | Support Level | DELMIA Equivalent | Description | Translation Notes | MOVE | Support | RobotMotion | Motion | Cartesian target | MOVEJ | Joint target | MOVEX | Support | RobotMotion | Motion | AX only. Cartesian target | L | Support | Motion Type | Interpolation | Linear | P | Joint (Interpolation off) | C | Circular | C1 | Support | Motion Type | Interpolation | AX MOVEX only. Circular, start point | C2 | AX MOVEX only. Circular, end point | Pose | Partial Support | Target | Motion Target | Only pose constant (X, Y, Z, r, p, y) and (J1, J2, J3, J4, J5, J6) is supported. | S | Support | Speed | Speed | Absolute speed (mm/sec) | T | Support | Speed | Speed | Motion Base: Time (sec) | R | Support | Speed | Speed | AX MOVEX only. Percentage speed (%) | D | Support | Speed | Speed | AX MOVEX only. Angular Basis: Speed (deg/sec) | A=[1-8]P? | Support | Accuracy | Accuracy | 8 accuracy levels; FlyBy is Off if "P" present 。 Distance based. | AC=[0-3] | Support | Acceleration | Acceleration | 4 acceleration levels; 0(default) is the fastest | SM=[0-3] | Partial Support | | Nachi specific motion profile attribute | Smoothness. Not used in simulation. Stored as attribute Smoothness in a Nachi specific motion profile upon upload and is downloaded. | HM=N | Partial Support | | Nachi specific motion profile attribute | AX MOVEX only. Coordination. Not used in simulation. Stored as attribute Coordination in a Nachi specific motion profile upon upload and is downloaded. N is mechanism number | MS | Partial Support | | Nachi specific motion profile attribute | AX MOVEX only. Speed reference for a mechanism. Not used in simulation. Stored upon upload and is downloaded. | CONF=IJKL | Support | Configuration | Target configuration | AX MOVEX only. Specifies the configuration of Cartesian targets. I (wrist flip), 0:Flip, 1:Non-flip; J (above or below elbow), 0:Above, 1:Below; K (left/right or front/rear): if the controller parameter CONFJ1Expansion is false (default), 0:Lefty, 1:Righty; if it's true, 2:Front, 3:Rear; L (flange axis, or joint 6 rotatory direction designation): 0: ±180deg, 1: J6>360, 2: J6<-360. | H=N | Support | Tool | Tool profile | Tool profile specification. N is tool number. For download, if Tool Profile Index is
set, the Index number will be output as N; if Index is not
set, and Tool Profile name is in the format "H=N", then the
phrase "H=N" is output; otherwise, the sequential number the
tool in tool profile list is taken as N. For upload,
if a tool profile with the same Index number=N exists, the
tool profile is used for the motion, otherwise a tool with
name "H=N" is created and N is set to Tool Profile
Index. The tool TCP offset values are not uploaded or
downloaded so you need to set the TCP in simulation manually and
verify that matches the value on the robot controller. | Mechanism | Partial Support | | | Mechanism specification in the format MnT, when n is mechanism number, and T is the target type. Target type can be J for joint targets and X for Cartesian targets. E for encoder values is not supported. | Gn | Support | Spot | Spot weld action | AW only. 'n' indicates the Gun number. |
Notes on Circular Moves NACHI "MOVEX
C1" with paring "MOVEX C2" is equivalent with 3DEXPERIENCE
CircularVia + Circular moves.
However, the
trajectory of a series of NACHI "MOVEX C2" is different from the
trajectory of a series of 3DEXPERIENCE Circular moves. NACHI path
planning looks back one target and looks ahead one target. In the example below, at
target (7), NACHI path planning takes targets (6), (7), and (8) into
consideration and follows the solid line. On the other hand,
3DEXPERIENCE Circular motion planning looks ahead two targets. Thus,
at target (7) and looking ahead to targets (8) and (9), 3DEXPERIENCE follows the dash-dot line.
In this
situation, a warning is issued about a Circular move without
a preceding CircularVia move, but still proceeds to download the task
or upload the program. If you prefer to stop download or upload,
an environment variable can be set to achieve this (DELMIAOLPERRORNachiTranslatorCircularWithoutVia=Error).
Spot Welding For spot welding, only air guns are supported. Gun changes are not supported. Spot operation translation depends upon the weld parameter settings of the spot profile which is associated with the spot operation and the download option (AW/AX). If the following weld parameter values are -1 and the download option is AW, the spot option is downloaded as <GunNumber> and appended to the end of the proceeding motion instruction. - Weld_Cond_Number
- Weld_Seq_Number
- Weld_Point_Number
Otherwise, a spot operation is downloaded as Nachi SPOT instruction following the proceeding motion instruction.
Arc Welding Translation of arc welding instructions relies
on the arc profile and the Nachi-specific arc 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, an ARCWeld profile is associated with and an
ARCEnd profile with the end section.
For AX, the Nachi-specific profiles are
NAXArcStart and NAXArcEnd Example AX arc weld program
"SH166-03-A.001": 1 MOVEX A=1P, AC=0, M1X, P, (1920.42224, 97.40792, 999.99804, 0, -90, 90), CONF=1000, R=50, H=2
2 AS 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 150, 18, 0, 800, 0, 0, 0, 0, 150, 150, 2, 50, 0, 0, 0, 2, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0
3 MOVEX A=1P, AC=0, M1X, P, (1843.88567, 82.18374, 999.998, 0, -90, 95.87855), CONF=1000, R=50, H=2
4 MOVEX A=1P, AC=0, M1X, P, (1779.00109, 38.829, 999.99797, 0, -90, 101.7571), CONF=1010, R=50, H=2
5 MOVEX A=1P, AC=0, M1X, P, (1735.64658, -26.05594, 999.99796, 0, -90, 107.63564), CONF=1010, R=50, H=2
6 MOVEX A=1P, AC=0, M1X, P, (1720.42246, -102.59294, 999.99795, 0, -90, 113.51419), CONF=1010, R=50, H=2
7 AE 0, 0, 0, 0, 0, 1, 1, 0, 150, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
8 END
For AW, the Nachi-specific profiles are the NAWArcON, NAWArcOFF, and NAWArcWeave profiles. For AW arc on and arc off, only the number in the profile name extension is used. For AW weave, the parameters are used in generating the SWEAVE instruction. Example AW are weld program “SH166-01-A.001”: 1 MOVE P, (-278.99872,1870.00872,229.9953,0,90,-180), S=1150, A=1P, H=2
2 ARCON 1
3 MOVE P, (-263.77472,1793.47212,229.99532,0,90,175.93286), S=1150, A=1P, H=2
3 SWEAVE 1, 1
4 MOVE P, (-220.42041,1728.58751,229.99534,0,90,171.86571), S=1150, A=1P, H=2
5 MOVE P, (-155.5361,1685.23299,229.99535,0,90,167.79857), S=1150, A=1P, H=2
6 ARCOFF 1
7 END
Variable Conversion
Nachi Boolean Input and Output variables,
Global and Local type Integer, Real and String variables are
supported.
DELMIA external IO, IO defined on the robot,
is mapped to one of the Nachi IO variables. DELMIA variables
are mapped to Nachi variables of either global or local
scope.
On upload the Input variables (Ix, where x is a
number), Output variables (Ox), and variables are automatically
created.
Nachi Variables | Type | Direction | Scope | Upload to DELMIA Variable Name | Ix (e.g. I1, I2, …) | Boolean | Input | | Ix | Ox (e.g. O1, O2, …) | Boolean | Output | | Ox | Vn% (e.g. V1%) | Integer | | Global | iVn | Ln% | Integer | | Local | iLn | Vn! (e.g. V1!) | Real | | Global | rVn | Ln! | Real | | Local | rLn | Vn$ (e.g. V1$) | String | | Global | sVn | Ln$ | Real | | Local | sLn | On download, if the DELMIA variable names match the format in the right-most column in the table above, they are downloaded as the corresponding Nachi format in the left-most column. Otherwise, Nachi format variable names are generated according to DELMIA variable types and For-loop counter variable is generated as local.
Expression Conversion
Nachi expression support is limited to a simple set of operations. Category | Description | Nachi Operator | DELMIA Operator | Binary Integer/Double | Plus | + | + | Minus | - | - | Multiply | * | * | Division | / | / | Unary | Negative | - | - | Not | NOT | not | 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 |
Parameters
The Nachi Controller Profile is used to control the translation. It contains global options for configuring how the translation will occur.
Nachi Motion Profile An applicative profile can be associated with each robot motion. A new applicative profile which contains Nachi motion properties is created, and has the following values. You can assign a Nachi Motion Profile to robot motions in Teach from the context menu by right clicking on the task. Parameter Name | Default Value | Description | Coordination | "" (blank) | This parameter specifies the number of the mechanism serving as the operation reference. | Smoothness | "" (blank) | This parameter specifies the level of smoothness. Valid values are 0 ~ 3. | MechanismSpeedRef1 MechanismSpeedRef2 MechanismSpeedRef3 MechanismSpeedRef4 | "" (blank) | Speed reference. Valid value is "MS" and will be output to the mechanism phrase if set. | MechanismSpeed2 MechanismSpeed3 MechanismSpeed4 | R=50.0 | Speed specification for auxiliary devices. | MechanismTool2 MechanismTool3 MechanismTool4 | H=1 | Tool specification for auxiliary devices. |
The translator creates the profile on upload based on the Nachi program file and uses these parameters on download when generating the Nachi program file. If no profile is set on download, the default values for Coordination, Smoothness, and MechanismSpeedRef (all blank) are used. For auxiliary device (mechanism) speed and tool, the robot speed and tool are used.
Nachi Controller Parameters The parameters that apply to the Nachi controller are available in a dedicated panel that is accessible from the contextual menu of the resource motion controller. All parameter values are can be editied. Parameter Name | Usage | Default Value | Description | Axis3Adjust | Download & Upload | 90 | This parameter determines the amount of adjustment of axis 3 during download/upload. For most Nachi robots, this value is 90. For tilt robots, the value is 0; for some models, it is set to -90. The value of this parameter is used in the Joint3Llinked parameter description. | Joint3Adjust | Download & Upload | True | This parameter controls whether the axis 3 value is adjusted during upload & download. If the parameter is true, the axis 3 value is adjusted, otherwise, it is not adjusted. | Joint3Linked | Download & Upload | False | This parameter specifies how the adjustment of axis 3 is made. If the value is set to true which indicates that joint 2 & 3 are linked, the adjustment is made as follows: Upload: V6Axis3=robotAxis3+(robotAxis2-axis3Adjust) Download: robotAxis3=V5Axis3-(V6Axis2-axis3Adjust) When the parameter is false, axis-3 will be adjusted as follows: Upload : V6Axis3=robotAxis3-(robotAxis2-axis3Adjust) Download : robotAxis3=V6Axis3+(V6Axis2-axis3Adjust) | OutputMOVEX | Download | True | For AX only, this parameter tells the translator to output MOVEX statement instead of MOVE or MOVEJ. | OutputSETM | Download | False | This parameter directs the download of SETM instruction instead of SET/RESET instructions. Upon uploading a program with SET IO instructions, this attribute is created on the task uploaded. If there are both SET/RESET and SETM instructions in the program, this attribute is also created on the activities if its value is different than that of the task attribute. Device parameter needs to be created by the user. The order of precedence: activity attribute, task attribute, and device parameter. | ShortHand | Download | False | For AW only, this parameter directs the downloader to output shorthand forms of certain commands, such as "M2 1"(instead of SET M1, for signal numbers 1~8 and 11~18) and I1(instead of WAITI I1, for signal numbers 1~24) | PrintLineNumber | Download | True | This parameter is tells the translator to output line numbers in the SLIM robot program file during download. | ConfigNameSet | Upload | "Nachi" | This parameter directs the translator to set appropriate configuration names for the robot. A device must have the named configuration set for uploader to correctly set the configurations. Valid values are "Nachi", "Fanuc", "Daihen", and "Delmia". | CONFJ1Expansion | Download | False | This parameter changes the output of digit K in CONF. When it is set to false (default), digit K takes the numbers 0 or 1 for Lefty (J1>0) or Righty (J1<0). When it is set to true, digit K takes the numbers 2 or 3 for Front (-90<J1<90) or Rear (J1<-90 or J1>90). | AccuracyType | Upload | "" (blank) | Set this parameter to "Distance" to upload Distance Type Accuracy Profiles. Default are Speed Types. |
Nachi Cartesian Target CONF Settings
Nachi Cartesian target "CONF" takes a 4-digit setting " IJKL".
The settings of " IJ " come from the DELMIA robot configurations DELMIA robot default configurations | DELMIA configuration meanings | NACHI CONF (Partial mapping to IJ) | Config_1 | Non-flip | Upper-elbow | Front | 10 | Config_2 | Flip | Upper-elbow | Front | 00 | Config_3 | Non-flip | Lower-elbow | Front | 11 | Config_4 | Flip | Lower-elbow | Front | 01 | Config_5 | Non-flip | Lower-elbow | Rear | 11 | Config_6 | Flip | Lower-elbow | Rear | 01 | Config_7 | Non-flip | Upper-elbow | Rear | 10 | Config_8 | Flip | Upper-elbow | Rear | 00 |
The settings of " K" is determined by Joint 1 with a Boolean parameter " CONFJ1Expansion" CONFJ1Expansion=False | CONFJ1Expansion=True | Joint 1 >= 0 | Joint 1 < 0 | -90 <= Joint 1 < 90 | Joint 1 >=90 or Joint 1 < -90 | 0 (Lefty) | 1 (Righty) | 2 (Front) | 3 (Rear) |
The settings of " L" is determined by Joint 6. Joint 6 Values | -360 <= J6 <-180 | -180 <= J6 < 180 | 180 <= J6 < 360 | CONF L Value | 2 | 0 | 1 |
Note: Flip is when Joint 5 is greater than zero(0), and in this case I=0 . I=1 | Non-Flip | Joint 5 < 0 | I=0 | Flip | Joint 5 > 0 |
[1] AR, AW, AX, and FD are or may be trademarks or registered trademarks of
Nachi or its subsidiaries in the U.S. and in other countries.
|