Nachi Translators

This section provides basic information about the supported activities and other entities for Nachi 1 AW/AX Translator controller profiles. Unless otherwise noted, the information provided applies to both AW and AX translators.

This page discusses:

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.

V6 Comment

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

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.

Condition

The 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-Loop

The 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

Pulse

A 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 Motion

The 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).
AccuracyTypeUpload"" (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 < 90Joint 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 < 180180 <= J6 < 360
CONF L Value201

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.