Download as pdf or txt
Download as pdf or txt
You are on page 1of 196

DX100 Robot Controller

Advanced Programming
Training Manual

Revised 11/30/09
NOT FOR RESALE
© 2009 by MOTOMAN
All Rights Reserved
First Edition June 12, 2009

MOTOMAN, Inc.
805 Liberty Lane
West Carrollton, OH 45449
TEL: (937) 847-6200
FAX: (937) 847-6277
24-HOUR HOTLINE: (937) 847-3200
www.motoman.com
PREFACE
PURPOSE OF THIS MANUAL
MOTOMAN Technical Education Center training manuals are not intended for use
as stand alone training tools. This manual is to be used in conjunction with
the DX100 Advanced Programming course.

WHO SHOULD USE THIS MANUAL


This manual is only issued to attendees of the DX100 Advanced Programming
course. Do not use this manual as a reference tool unless you have attended
this course and have received certification from the instructor through the
MOTOMAN Technical Education Center.

HOW TO USE THIS MANUAL


This training manual has been written according to the daily structure of the
DX100 Advanced Programming course. It is designed to assist students in
understanding the advanced operations and functions for the DX100 controller
and a corresponding MOTOMAN robot. Use this manual as a step-by-step guide
through the course.

DISCLAIMER
Information in this manual is based on the assumption that the DX100
controller is in the MANAGEMENT Security Level and is using the
EXPANDED Language. Be aware that the keystrokes described in this
manual may vary based on other settings, software versions, and options.

The information contained within this document is the proprietary property


of Motoman, Inc., and may not be copied, reproduced or transmitted to other
parties without the expressed written authorization of Motoman, Inc.

Because we are constantly improving our products, we reserve the right to


change specifications without notice. YASNAC and MOTOMAN are registered
trademarks of YASKAWA Electric Manufacturing.

NOTE: This manual is not for resale and will not be sold separately.
All training manuals developed by MOTOMAN Technical Education
Center are copyrighted. Do not copy any portion of these manuals.
TABLE OF CONTENTS
1.0 BASIC PROGRAMMING REVIEW............................................... 1-1
1.1 Jogging Coordinates...................................................................... 1-1
1.2 Alarms & Errors............................................................................. 1-1
1.2.1 Error Message................................................................................. 1-1
1.2.2 Minor Alarm..................................................................................... 1-1
1.2.3 Major Alarm..................................................................................... 1-1
1.3 User Frames.................................................................................. 1-2
1.4 Motion Types.................................................................................. 1-3
1.5 Path Creation................................................................................. 1-3
1.6 Path Confirmation.......................................................................... 1-3
1.7 CONTROL Instructions.................................................................. 1-4
1.7.1 CALL JOB:(name)........................................................................... 1-4
Nesting Jobs.................................................................................... 1-5
1.7.2 RET (Return)................................................................................... 1-5
1.7.3 JUMP JOB:(name)........................................................................... 1-5
1.7.4 JUMP*LABEL & *LABEL................................................................. 1-6
1.7.5 COMMENT...................................................................................... 1-6
1.7.6 TIMER.............................................................................................. 1-6
1.7.7 PAUSE............................................................................................. 1-6
1.8 IN/OUT Instructions....................................................................... 1-6
1.8.1 DIN (Digital Input)............................................................................ 1-6
1.8.2 WAIT................................................................................................ 1-6
1.8.3 DOUT (Digital Output)..................................................................... 1-7
1.8.4 PULSE............................................................................................. 1-7
1.9 ARITH Instructions........................................................................ 1-7
1.9.1 INC................................................................................................... 1-7
1.9.2 DEC................................................................................................. 1-7
1.9.3 SET.................................................................................................. 1-8
1.9.4 CLEAR............................................................................................. 1-8
1.10 Undo/Redo.................................................................................... 1-8
1.11 Other Use of Assist Key............................................................... 1-10
1.12 Main Menu Key............................................................................ 1-11
1.13 Trash Job List.............................................................................. 1-11
1.14 Multi-Window Function................................................................ 1-12

DX Advanced Programming Training Manual TOC-1 © MOTOMAN


2.0 VARIABLE TYPES & ADDRESSES............................................. 2-1
2.1 Global Variable Allocation [VAR.DAT File]..................................... 2-1
2.2 Local Variable Addresses.............................................................. 2-2
2.2.1 Setting Expanded Language........................................................... 2-2
2.2.2 Reserving Local Variables in the Job Header.................................. 2-2
2.3 Scalar and Array Address Numbers.............................................. 2-4
2.4 Arithmetic Variables....................................................................... 2-4
2.5 String Variables.............................................................................. 2-4
2.6 Position Variables.......................................................................... 2-4
2.7 System Variables........................................................................... 2-5

3.0 JOB CONTROL & MULTI-TASKING............................................ 3-1


3.1 CALL JOB Instruction.................................................................... 3-1
3.2 CALL IG#( ) or CALL BXXX Instructions...................................... 3-1
3.2.1 CALL IG#( )...................................................................................... 3-1
3.2.2 CALL BXXX..................................................................................... 3-2
3.3 CALL/JUMP JET# ENTRY= Tag.................................................... 3-3
3.4 CALL with Arguments.................................................................... 3-6
3.4.1 Child JOB HEADER Argument Information: Comment & Type........ 3-6
3.4.2 GETARG.......................................................................................... 3-7
3.4.3 CALL ARGF..................................................................................... 3-8
3.5 RET Value and GETS $RV.......................................................... 3-10
3.5.1 Programming the RET Value......................................................... 3-10
3.5.2 Programming the GETS $RV......................................................... 3-11
3.6 Concurrent Job System............................................................... 3-12
3.6.1 Master Task Program Structure..................................................... 3-13
3.6.2 Multi-Job Mode vs Single-Job Mode ............................................ 3-15
3.6.3 TSYNC (Task Synchronization)..................................................... 3-16

4.0 MACRO JOB FUNCTION............................................................. 4-1


4.1 Macro Job Creation....................................................................... 4-1
4.2 Macro Job Selection...................................................................... 4-2
4.3 SETUP for INFORM LIST Macro Instruction................................. 4-2
4.4 Programming the Macro Instruction.............................................. 4-4
4.5 Macro Instructions with Arguments............................................... 4-5
4.5.1 Defining the Argument..................................................................... 4-5
4.5.2 Changing the Macro Inst Set up...................................................... 4-9

DX Advanced Programming Training Manual TOC-2 © MOTOMAN


5.0 STRUCTURED LANGUAGE......................................................... 5-1
5.1 FOR ~ NEXT................................................................................. 5-2
5.2 WHILE ~ ENDWHILE.................................................................... 5-3
5.3 SWITCH CASE ~ ENDSWITCH.................................................... 5-4
5.4 IFTHEN ~ ENDIF........................................................................... 5-5

6.0 POSITION VARIABLE FILES....................................................... 6-1


6.1 Access to Position [ROBOT] File Display...................................... 6-1
6.2 Establishing Data Type.................................................................. 6-2
6.3 Cartesian (XYZ) Coordinate Frames............................................. 6-2
6.3.1 Robot Frame (RF)............................................................................ 6-3
6.3.2 Base Frame (BF)............................................................................. 6-4
6.3.3 User Frames UF#( )....................................................................... 6-4
6.3.4 Tool Frame (TF)............................................................................... 6-5
6.3.5 Master Tool Frame (MTF)................................................................ 6-5
6.3.6 Tool No. Selection for Multiple TCPs................................................ 6-5
6.3.7 External Station Axes...................................................................... 6-7
6.4 Store Position Variable in Pulse Counts........................................ 6-7
6.5 Store Position Variable for XYZ..................................................... 6-8
6.6 Check Position Variable................................................................. 6-9
6.7 Edit Position Variable in Pulse Counts........................................... 6-9
6.8 Edit Position Variable for XYZ and Rx, Ry, Rz............................. 6-10

7.0 MOTION TYPES & TAGS.............................................................. 7-1


7.1 Standard Command Position Motion Types................................... 7-1
7.2 Motion to Absolute Position Variable Data..................................... 7-1
7.3 Relative Motion with Incremental Move (IMOV) ........................... 7-3
7.4 Other Motion Types........................................................................ 7-4
7.5 Default SPEED Instruction............................................................ 7-5
7.6 UNTIL Tag...................................................................................... 7-8
7.7 Rapid Search Tag (SRCH RIN#)................................................. 7-10
7.8 NWAIT Tag................................................................................... 7-12
7.9 CWAIT Instruction....................................................................... 7-13
7.10 ENWAIT Tag................................................................................ 7-13

DX Advanced Programming Training Manual TOC-3 © MOTOMAN


7.11 PL Tag.......................................................................................... 7-14
7.12 FINE Tag...................................................................................... 7-14
7.13 FPT Tag (MOVC only).................................................................. 7-15
7.14 ACC/DEC Tags............................................................................ 7-16
7.15 COMMENT Tag for Motion Step.................................................. 7-16

8.0 TEMPORARY SHIFT INSTRUCTIONS......................................... 8-1


8.1 SHIFT Menu (SFTON/SFTOF)...................................................... 8-1
8.2 MSHIFT......................................................................................... 8-5
8.3 CALL UF#( ) Tag.......................................................................... 8-6

9.0 PERMANENT SHIFT FUNCTIONS.............................................. 9-1


9.1 Position Adjustment by Number Key Input.................................... 9-1
9.2 Parallel Shift Job . ......................................................................... 9-2
9.3 Mirror Shift..................................................................................... 9-6
9.3.1 Mirror Shift on Pulse data................................................................ 9-6
9.3.2 Mirror Shift on Robot Frame X-Z Plane........................................... 9-7
9.4 Dynamic Editing (PAM).................................................................. 9-9
9.5 Relative Job................................................................................. 9-13
9.5.1 Relative Job Conversion for Off-Line Editing ................................ 9-15
9.5.2 Relative Job Conversion for 3-D Shift............................................ 9-17
9.5.3 XYZ [ROBOT] Relative Job for Edited TCP Data........................... 9-18
9.5.4 Conversion from RELATIVE to STANDARD.................................. 9-18
9.6 Position Modification for Tool (PMT) .......................................... 9-19
9.6.1 Saving ORIGINAL TCP Data......................................................... 9-18
9.6.2 Shifting Points with PMT Software................................................. 9-20

10.0 INTERFERENCE ZONES......................................................... 10-1


10.1 Cube Definition Methods............................................................. 10-2
10.1.1 Center Position Method................................................................. 10-2
10.1.2 Max/Min Method............................................................................ 10-4
10.1.3 Work Home Position Method (Cubes 64-57 only).......................... 10-5
10.2 Defining External/Base Axis Interference Zone........................... 10-7
10.3 Interference Definition by Numeric Keypad................................. 10-8
10.4 Programming WAIT Instruction for SOUT.................................... 10-9
10.5 Monitoring Specific Outputs for Interference............................. 10-10

DX Advanced Programming Training Manual TOC-4 © MOTOMAN


10.6 Robot S-Axis LEFT/RIGHT Check Function.............................. 10-10
10.6.1 Left/Right Parameters.................................................................. 10-11
10.6.2 S-Axis “WTIH CHECK” Parameter S2C002................................. 10-12

11.0 MESSAGES & ALARMS.......................................................... 11-1


11.1 INFORM Message Instruction [MSG] ......................................... 11-1
11.2 User Messages............................................................................ 11-4
11.3 User Alarms................................................................................. 11-5
11.4 Displaying the Ladder Monitor..................................................... 11-6

A.0 SECURITY SYSTEM .................................................................. A-1


A.1 Security Modes..............................................................................A-1
A.2 Password Protection Option..........................................................A-2

B.0 SAVE AND LOAD........................................................................ B-1


B.1 External Memory ..........................................................................B-1
B.1.1 LOAD...............................................................................................B-1
B.1.2 SAVE...............................................................................................B-2
B.1.3 VERIFY............................................................................................B-3
B.1.4 DELETE...........................................................................................B-3
B.2 CMOS files....................................................................................B-5
B.2.1 CMOS.HEX......................................................................................B-5
B.2.2 CMOS.BIN.......................................................................................B-6

C.0 LOG DATA................................................................................... C-1


C.1 Log Data Condition........................................................................C-1
C.2 Log Data Display...........................................................................C-2

D.0 PARAMETERS............................................................................ D-1


D.1 S1CxG Parameter Examples.........................................................D-1
D.1.1 S1CxG026 to S1CxG029: JOG L, M, H, & High Speed...................D-1
D.1.2 S1CxG030 to S1CxG032: INCHING MOVE AMOUNT...................D-2
D.1.3 S1CxG033 to S1CxG040: POSITIONING ZONE...........................D-2
D.1.4 S1CxG400 to S1CxG527: PULSE (R1~R8) Soft Limits..................D-2
D.2 S2C Parameter Examples.............................................................D-3
D.2.1 S2C195: Security Mode at Power ON.............................................D-3
D.2.2 S2C200: Keep Coordinate..............................................................D-3
D.2.3 S2C397: I/O & Variable Customize Function..................................D-3
D.2.4 S2C401: Tag Data Replacement Functions (Find and Replace)....D-4

DX Advanced Programming Training Manual TOC-5 © MOTOMAN


D.2.5 S2C425: MOVC Tool Posture Control.............................................D-5
D.2.6 S2C646: Anticipation OUT (ANTOUT)...........................................D-5
D.2.7 S2C722: Specify FINE tag...............................................................D-5
D.3 S3C Parameter Examples.............................................................D-5
D.3.1 S3C000 to S3C047: CUBE LIMIT (TCP Envelope for R1~R8).......D-5
D.3.2 S3C048 to S3C063: S-AXIS INTERFERENCE AREA (R1~R8)......D-6
D.3.3 S3C064 to S3C1087: CUBIC INTERFERENCE ZONES................D-6
D.3.4 S3C1089 to S3C1096: ROBOT INTERFERENCE AREA................D-6
D.3.5 S3C1097: A SIDE LENGTH OF WORK-HOME-POSITION CUBE.D-6
D.3.6 S3C1098 to S3C1102: POS CORRECT DURING PLAYBACK.......D-6
D.4 S4C Parameter Examples.............................................................D-7
D.4.1 S4C000 to S4C015: PARITY OF USER INPUT GROUPS..............D-7
D.4.2 S4C016 to S4C031: PARITY OF USER OUTPUT GROUPS..........D-7
D.4.3 S4C032 to S4C047: DATA OF USER INPUT GROUPS..................D-7
D.4.4 S4C048 to S4C063: DATA OF USER OUTPUT GROUPS..............D-7
D.4.5 S4Cxxx: RELAY ON Screen............................................................D-7
D.5 AxP Parameter Examples..............................................................D-8
D.6 RS Parameter Examples...............................................................D-8

E.0 SETUP MENU...............................................................................E-1


E.1 DATE/TIME....................................................................................E-1
E.2 USER ID........................................................................................E-2
E.3 Auto Backup Set............................................................................E-2
E.4 Wrong Data Log............................................................................E-3
E.5 Energy Saving Function................................................................E-3
E.6 Teaching Conditions......................................................................E-4
E.6.1 Language Level...............................................................................E-4
E.6.2 Move Instruction Set Position..........................................................E-4
E.6.3 Tool Number Switch.........................................................................E-5
E.7.4 Tool Number Interlock for Step Entry...............................................E-5
E.7 Operate Conditions........................................................................E-5
E.8 Operate Enable.............................................................................E-5
E.9 Function Enable.............................................................................E-6
E.9.1 Master Job Change.........................................................................E-6
E.9.2 Reserved Start.................................................................................E-7
E.9.3 I/O VAR CUSTOMIZE......................................................................E-8
E.9.4 General I/O Name Display in Job....................................................E-9
E.9.5 Anticipation Output..........................................................................E-9
E.9.6 All Axes Angle Display Function....................................................E-11

DX Advanced Programming Training Manual TOC-6 © MOTOMAN


E.10 Jog Condition Setting..................................................................E-12
E.11 Playback Condition Setting..........................................................E-12
E.12 Function Condition Setting..........................................................E-13
E.13 KEY ALLOCATION......................................................................E-13
E.13.1 Key Allocation (EACH)...................................................................E-13
E.13.2 Key Allocation (SIM)......................................................................E-15
E.13.3 Key Allocation for DISPLAY with [EACH] or [SIM].........................E-16
E.13.4 Jog Key Allocate............................................................................E-16
E.14 SET SPEED................................................................................E-16

F.0 ARITHMETIC INSTRUCTIONS.....................................................F-1


F.1 Arithmetic Instructions related to Position..................................... F-1
F.1.1 GETS............................................................................................... F-1
F.1.2 CNVRT............................................................................................ F-2
F.1.3 GETE............................................................................................... F-2
F.1.4 SETE............................................................................................... F-3
F.1.5 MFRAME......................................................................................... F-4
F.1.6 GETPOS.......................................................................................... F-4
F.2 Calculating Instructions................................................................. F-5
F.2.1 ADD................................................................................................. F-5
F.2.2 SUB................................................................................................. F-5
F.2.3 MUL................................................................................................. F-6
F.2.4 DIV................................................................................................... F-6
F.3 Value Setting Instructions.............................................................. F-7
F.3.1 SET.................................................................................................. F-7
F.3.2 CLEAR............................................................................................. F-9
F.4 Trigonometric Functions................................................................ F-9
F.4.1 SQRT............................................................................................... F-9
F.4.2 SIN................................................................................................... F-9
F.4.3 COS............................................................................................... F-10
F.4.4 ATAN.............................................................................................. F-10
F.5 BOOLEAN LOGIC FUNCTIONS................................................. F-10
F.5.1 AND............................................................................................... F-11
F.5.2 OR................................................................................................. F-11
F.5.3 XOR............................................................................................... F-11
F.5.4 NOT............................................................................................... F-12

DX Advanced Programming Training Manual TOC-7 © MOTOMAN


THIS PAGE INTENTIONALLY LEFT BLANK

DX Advanced Programming Training Manual TOC-8 © MOTOMAN


Basic Programming Review

1.0 BASIC PROGRAMMING REVIEW


1.1 Jogging Coordinates
The active Coordinate system, identified in the status line, determines how each of
the eight sets of multifunctional axis keys with “+” and “-” will operate the currently
selected CONTROL GROUP (R1, B1, S1, etc.). Four of the five types are actively
available on the COORD key. (Either RECT or CYL is SETUP on the TEACHING
CONDITION list.) The X, Y, Z, Rx, Ry, & Rz labels are active for all jogging
Coordinates except when set for Joint [SLURBT]. TOOL SEL

COORD
: Joint Coordinates [SLURBT]

: Robot Frame Rectangular Coordinates [RECT]


X- X+ X- X+
S- S+ R- R+

: Cylindrical Coordinates [CYL] Y- Y+ Y- Y+


L- L+ B- B+

: Tool Frame Coordinates [Tool No.00-63] Z- Z+ Z- Z+


U- U+ T- T+

63
: User Frame Coordinates [UF#1-63] E- E+ 8- 8+
U

Figure 1-1 Jogging Coordinates, COORD Key, and Axis/TCP Jogging Keys

1.2 Alarms & Errors


1.2.1 Error Message
An ERROR message occurs when a keystroke or data entry mistake has been made.

An ERROR message is cleared by pressing the CANCEL key.

1.2.2 Minor Alarm


A Minor Alarm indicates a programming mistake, an operational limitation, or other
situation such as the Collision Detection Alarm.

If running in PLAY mode, the job execution ceases, but Servo Power remains on.

A Minor Alarm is cleared by touching RESET on the pendant screen.


1.2.3 Major Alarm
A Major Alarm may occur because of equipment failure or what the controller
considers a potential failure during operation.

Servo Power shuts off.

A Major Alarm can only be cleared by cycling the DX100 controller power OFF/ON.

DX Advanced Programming Training Manual 1-1 © MOTOMAN


Basic Programming Review

1.3 User Frames


The DX100 supports 63 user-definable Cartesian Coordinate Systems referred to as
User Frames (UF #01-63). Prior to jogging with COORD set to USER, at least one
frame must be defined. Other uses for User Frames include shifting, programming
motion with position variables, converting position data from standard pulse to UF
XYZ data type, etc. Press SHIFT+COORD to select active UF#( ) from the list.

A User Frame is a plane defined by three points ORG, XX, and XY:
•ORG The zero, ORIGIN, position for a User Frame.
•XX A point on the positive direction of the X-axis.
•XY A point on the positive Y side of the plane.

Z-axis

X-axis

XX
XY
Y-axis
ORG

Figure 1-2 User Frame Points

To define/modify a User Frame, complete the following steps:


1. In TEACH mode from the MAIN MENU, choose ROBOT.
2. Choose USER COORDINATE.
3. Cursor up/down to find the desired User Frame number and press SELECT.
4. Ensure that the cursor is set to “SET POS: ORG.”
5. Choose any jogging COORD other than USER. Enable Servo Power and jog the
robot TCP to the desired ORG origin point.
6. With servos enabled, press MODIFY, ENTER. The ORG bullet will be set ().
7. Press SELECT, cursor to XX and SELECT it to be active for modify.
8. Jog the robot TCP to an XX point along the intended X+ jogging direction.
9. With servos enabled, press MODIFY, ENTER. The XX bullet will be set ().
10. Press SELECT, cursor to XY and SELECT it to be active for modify.
11. Jog the robot TCP to any point within the positive XY quadrant to determine the
desired plane as well as the desired Z+ direction of operation.
12. With servos enabled, press MODIFY, ENTER. The XY bullet will be set ().
13. When all three points have been taught, choose COMPLETE.
14. To name the User Frame, cursor right to [ name area ] and press SELECT.
Enter the desired characters, up to 16, and press ENTER.

NOTE: The data is stored for SAVE/LOAD in a file entitled

DX Advanced Programming Training Manual 1-2 © MOTOMAN


Basic Programming Review

1.4 Motion Types


The four standard motion types are Joint, Linear, Circular, and Spline. When the
cursor is on the Address Side of a JOB CONTENT, each press of the MOTION TYPE
key sequences through MOVJ, MOVL, MOVC, and MOVS on the Edit Buffer.

1 2 1 2
MOVJ A B MOVL A B

2
3
B MOVC
MOVC 2
MOVC
MOVC MOVC
MOVC 1 A, B 3

A MOVC 1,4

MOVS
MOVS 5
MOVS MOVS
6
7

MOVS 1 4 B
MOVS A 2
MOVS MOVS 3

1 3
MOVS
A B MOVS

Figure 1-3 Paths for Different Motion Types

1.5 Path Creation


To program a new motion step in a job, perform the following:
1. CURSOR: Move the cursor on the Address Side (left side of JOB CONTENT).
Each new step instruction will insert below the currently highlighted line address.
2. MOTION TYPE: Press the MOTION TYPE key as necessary to display the
desired instruction MOVJ, MOVL, MOVC, or MOVS on the Edit Buffer Line, .
3. PLAY SPEED and/or other tags: Press SELECT to access the Edit Buffer Line.
Press SELECT again to access DETAIL EDIT for all choices, or to only change
numeric data on buffer, cursor to highlight item. Use (SHIFT + UP/DWN) or the
Data Entry method (SELECT, enter data with number keypad, and ENTER).
4. POSITION: Set COORD as desired and jog Robot/TCP to Command Position.
5. With the servos enabled, press [INSERT] ENTER.

1.6 Path Confirmation

FWD and BWD keys Step-to-Step at Manual Speed L, M, or H

INTER
LOCK

+ TEST
START
keys Continuous program speed/25% max limit

DX Advanced Programming Training Manual 1-3 © MOTOMAN


Basic Programming Review

1.7 CONTROL Instructions


The CONTROL menu instructions from the DX100 Basic Programming Training
Manual include CALL, RET, JUMP, LABEL, COMMENT, TIMER, and PAUSE.
1.7.1 CALL JOB:(name)
The CALL JOB: instruction allows one job to open another as a subroutine. The job
doing the calling is referred to as the “parent” job. The job being called is referred to
as a “child” job in which an optional return RET instruction or the END completes
that child job. The controller will resume execution of the parent job with the next
line of instruction beneath the corresponding CALL instruction.
Linking Jobs with CALL
Jobs can be linked together consecutively simply by creating a parent job with a
CALL instruction for each desired child job in the order they should be executed.

Figure 1-4 Linking Jobs Using CALL

To program CALL JOB:(child name), perform the following steps:


1. In TEACH mode, move the cursor to the Address Side of the screen on the line
above where the call is to be entered.

2. Press the INFORM LIST key .

DX Advanced Programming Training Manual 1-4 © MOTOMAN


Basic Programming Review

3. Choose CONTROL from the Inform List.


4. Choose CALL. (SELECT Detail Edit if other tags are required.)
5. Cursor right to the job name and press SELECT.
6. Cursor to the job to be called from the job list; press SELECT.
7. To close Detail Edit, press ENTER to accept the completed Edit Buffer Line and
return to the JOB CONTENT screen.
8. Press [INSERT] ENTER to put the instruction into the job.

Nesting Jobs
The CALL instruction can be used within a child job to “nest” jobs inside one
another. With each new parent/child execution, a JOB STACK of parent names is
accumulated so that the controller can track the proper RET/END sequence as each is
completed.

Up to twelve levels of nested jobs can be used; the original parent is level one.

Figure 1-5 Nesting Jobs Using CALL.

1.7.2 RET (Return)


The return instruction, RET, is used to terminate a child job prior to executing its
END instruction. It can be conditional with the IF tag accessed in DETAIL EDIT.
1.7.3 JUMP JOB:(name)
The JUMP JOB: instruction aborts the active job and begins running the designated
job, exclusively, if it was not nested in a called child job. Otherwise, the parents in
the JOB STACK prior to the JUMP JOB will be maintained for any CALL child job
END/RET operation.

DX Advanced Programming Training Manual 1-5 © MOTOMAN


Basic Programming Review

1.7.4 JUMP*LABEL & *LABEL


The JUMP *LABEL instruction works only with the *LABEL instruction.
Together they instruct the controller to go from the line of JUMP*LABEL to its
matching *LABEL within the same job and resume execution on the next line. The
JUMP*LABEL can be used in combination with *LABEL to omit a portion of lines
in the job or to create a repeat loop.
NOTE: The label automatically includes the asterisk (∗). The programmer can
redefine the default characters, LABEL, with 1 to 8 characters using any
combination of upper or lowercase letters, numbers, and symbols.

1.7.5 COMMENT
Comments are notes/prompts to the programmer or operator. Comments are preceded
by an apostrophe (’) and are limited to 32 characters per line.
1.7.6 TIMER
The TIMER instruction causes a delay in execution of the job until the designated
time expires. The cursor remains on this instruction line while the controller executes
the TIMER. The range is 0.01 to 655.35 seconds; example: TIMER T=1.00.
1.7.7 PAUSE
The Pause instruction is used whenever a programmed hold is required to suspend
execution of the job. The start lamp turns OFF, and the robot maintains its position.

The message line displays

To resume, press the START button.

1.8 IN/OUT Instructions


The IN/OUT menu instructions from the DX100 Basic Programming Training
Manual include DIN, WAIT, DOUT, and PULSE.
1.8.1 DIN (Digital Input)
The Digital Input instruction DIN is used to store I/O status in a Byte variable.

DIN B005 IG#(1) [Stores input group 1 status into byte address B005]

1.8.2 WAIT
The WAIT instruction is used whenever the system is dependent on any I/O status
or B-Variable content to be true before continuing job execution. When an optional
timer tag is used, the controller will wait for either the I/O status to be true or for the
timer to expire; whichever comes first.

WAIT IN#(5)=OFF T=3.25 [Waits until Input 5 is OFF or until a timer of


3.25 seconds expires]

DX Advanced Programming Training Manual 1-6 © MOTOMAN


Basic Programming Review

1.8.3 DOUT (Digital Output)


The DOUT instruction is used to turn ON/OFF an individual or group of outputs

DOUT OGH#(2) 6 [Outputs 6 and 7 (2 + 4 = 6) turn on as all others in the


half-group turn off.]

1.8.4 PULSE
The PULSE instruction is used to momentarily turn ON/OFF an individual or group
of outputs for a specified time or 0.3 seconds by default.

PULSE OG#(1) 34 T=3.25 [Outputs 2 and 6 (2 + 32 = 34) turn on as all


others in the group turn off.]

Table 1-1 8-Bit Place Values in Binary

IN#/OT# (8) (7) (6) (5) (4) (3) (2) (1)


Binary place value 27 26 25 24 23 22 21 20
Decimal value 128 64 32 16 8 4 2 1
Sample ON/OFF 1 0 0 1 0 0 0 0 = 144

Regarding Half-Groups, both the upper and lower half can only total 15 since there
are only 4 bits. In the Sample ON/OFF from the table above, the status for either
IGH#(2) or OGH#(2) would be 8 + 1 = 9.

The following syntax is used for Universal I/O:


Input/Output (1~2048) = IN#( ) or OT#( ) = ON/OFF
Half-Group (1~512) = IGH#( ) or OGH#( ) = 0-15
Group (1~256) = IG#( ) or OG#( ) = 0-255

1.9 ARITH Instructions


The ARITH menu instructions from the DX100 Basic Programming Training Manual
include INC, DEC, SET, and CLEAR.
1.9.1 INC
The Increment, INC, instruction increases the content of the designated B, I, or D
type variable address by adding one (+1).
1.9.2 DEC
The Decrement instruction, DEC, decreases the content of the designated B, I, or D
type variable address by subtracting one (-1).

DX Advanced Programming Training Manual 1-7 © MOTOMAN


Basic Programming Review

1.9.3 SET
The SET instruction allows a CONSTANT or another Variable’s content to be stored
as the content of a designated Variable address.
NOTE: Whenever the INC/DEC or SET instruction attempts to store a result that
exceeds the range for the designated Variable type, “ALARM: 4446 OVER
VARIABLE LIMIT” will occur.

1.9.4 CLEAR
The CLEAR instruction allows consecutive variable addresses to be initialized to the
default value of zero (0). After designating the starting address, either the number
of addresses desired in the range or the tag “ALL” that follow may be selected.
Examples: CLEAR B000 ALL or CLEAR D020 5.

1.10 Undo/Redo
Upon enabling the UNDO feature, the ASSIST key becomes available for the UNDO
and REDO function regarding job edits.
To enable the UNDO feature, perform the following:
1. In TEACH on the JOB CONTENT screen from the Address Side, choose EDIT.
2. Choose ENABLE UNDO from the Edit menu.

To use the UNDO feature after any change to the JOB CONTENT (insert,
modification of positions, delete, past, speed changes, etc.), perform the
following:
1. In TEACH on the JOB CONTENT screen with the cursor on the line where the
entry just occurred, press the ASSIST key.

Figure 1-6 Example of Deleted Line

The address will be covered with the word UNDO.

DX Advanced Programming Training Manual 1-8 © MOTOMAN


Basic Programming Review

Figure 1-7 UNDO Active

2. Press SELECT to undo the last entry.

NOTE: The UNDO function maintains the buffer until either a change is made
in another job or the ASSIST key is pressed in another job. The DX100
controller is capable of undoing the last 5 job changes. A message will show
on the message line, “Undo data of job editing cleared”.
The UNDO can be reversed by pressing the ASSIST key again so that REDO appears.
To use the REDO feature, perform the following:
1. In TEACH on the JOB CONTENT screen with the cursor on the line below
which the insertion should occur, press the ASSIST key. The address will be
covered with the word REDO.
2. Press SELECT to re-insert the last entry.

Figure 1-8 REDO Active and REDO Complete

DX Advanced Programming Training Manual 1-9 © MOTOMAN


Basic Programming Review

1.11 Other use of the Assist Key ASSIST

The ASSIST key can be used in conjunction with the SHIFT key and the
INTERLOCK key to view a list of uses for either of these two keys.

Press + SHIFT to view displays/functions associated with the SHIFT key.


ASSIST

Figure 1-9 Shift Help Screen

INTER
Press + LOCK
to view displays/functions for the INTERLOCK key.
ASSIST

Figure 1-10 Interlock Help Screen

DX Advanced Programming Training Manual 1-10 © MOTOMAN


Basic Programming Review

1.12 Main Menu Key MAIN


MENU

The MAIN MENU key is used to display the top level menu choices on the left side
of the pendant screen.

Pressing the MAIN MENU key toggles the display on and off. so that the General
Display screen fully expands across the entire pendant screen’s left-to-right sides.

Another use of the MAIN MENU key is in conjunction with the up/down Cursor to
adjust the screen brightness as either low, medium, or high.

MAIN
MENU
+ UP/DOWN CURSOR increases/decreases brightness.

1.13 Trash Job List


The UNDELETE JOB FUNCTION allows for the recovery of a deleted job from the
TRASH JOB LIST. It places it back on the active JOB LIST.

To enable the JOB UNDELETE FUNCTION, perform the following keystrokes:


1. In TEACH from MAIN MENU, choose SETUP.
2. Choose TEACHING COND.
3. Cursor to highlight the JOB UNDELETE FUNCTION indicator box.
4. Press SELECT to toggle between INVALID or VALID.

To undelete a job, perform the following keystrokes:


1. In TEACH from MAIN MENU, choose JOB.
2. Choose TRASH JOB LIST.
3. Cursor to the Job that you wish to undelete.
4. Choose JOB in the Menu Area.
5. Choose UNDELETE JOB.
6. Choose [YES] on the “Undelete?” screen.

DX Advanced Programming Training Manual 1-11 © MOTOMAN


Basic Programming Review

1.14 Multi-Window Layout Function

The Multi-window Layout key can be set to split the general-purpose display
area from just a single window to 2, 3, or 4 windows shown simultaneously. There
are seven patterns to be optionally chosen as desired under DISPLAY SETUP.

Figure 1-11 Access to the Seven Different Window Patterns


The title of the active window is displayed in deep blue; the non-active light blue.

The status line icon, , indicates that the Muli-Window Layout has been set.

The active window is the subject of any menu or key operation.

SHIFT
To toggle between Single/Multi Window, press + keys.

Pressing just the key while in Single-Window allows the previously set
Multi-Windows to appear individually as full screen in the order they were setup
(1g2g3g4g1······).
NOTE: There is less content view per multi-window because of limited size. The Edit
buffer in a JOB CONTENT is displayed only when that window is active. Also,
no auxiliary windows appear.

DX Advanced Programming Training Manual 1-12 © MOTOMAN


Variables

2.0 VARIABLE TYPES & ADDRESSES


All global variable types are available in any language level. By default, the DX100
controller allocates 100 addresses for each Arithmetic and String variable, and 128
addresses for each Robot, Base, and External Station Axis Position Variable.

2.1 Global Variable Allocation [VAR.DAT File]


The DX100 stores all Global variables in the VAR.DAT file which can be saved,
edited if desired in , and loaded back into the controller.
There are 6 standard data types: B, I, D, R, S, and P for ROBOT Position Variables.

In addition, BP addresses exist only if one or more robots on the DX100 have a
servo-driven BASE axis, and the EX addresses exist only if the DX100 controls
one or more EXTERNAL station axes servo motors.
The default VAR.DAT standard memory allocation has the following shares:
//VAR
///PFNUM 6,0,0,0 (6 types available: B, I, D, R, S, and P)
///SHARE 100,100,100,100,100,128,0,0 (# allocated: B, I, D, R, S, P, BP, and EX)

Global variable addresses can be reallocated in the Maintenance mode under SETUP,
OPTION FUNCTION, VARIABLE ALLOCATION.

Figure 2-1 Global Variable Allocation


CAUTION! Changing allocation initializes the JOB LIST, VAR.DAT, VAR NAMES, and all
USER FRAMES! The maximum number of addresses for B, I, D, R, and S,
differs from that of Robot as well as Base and/or Station Position variables.
The allocation of BP/EX should be at least equal to or greater than the
number for ROBOT P-type addresses.

Example of reallocated ARITH variables and DX100 External Axis shares:


//VAR
///PFNUM 7,0,0,0 (7 types available: B, I, D, R, S, P, and EX)
///SHARE 200,150,50,0,100,128,0,128 (# allocated: B, I, D, R, S, P, BP, and EX)

DX Advanced Programming Training Manual 2-1 © MOTOMAN


Variables

2.2 Local Variable Addresses


Local Variables become available only when in the EXPANDED language level.
2.2.1 Setting Expanded Language

To set language level to EXPANDED, perform the following:


1. In TEACH, in the MAIN MENU, choose SETUP.
2. Choose TEACHING CONDITION.
3. Cursor LANGUAGE LEVEL, press SELECT.
4. Cursor to EXPANDED; press SELECT.
A Local Variable can be used only in the one job that defines it. Global Variables can
be used by all jobs, i.e. Global B001 is seen and can be used by all jobs, but Local
LB001 is unique to each job that defines and uses it independently.

The number of local addresses is set in the JOB HEADER. The JOB HEADER for all
jobs “expands” with an argument area for reserving local variable address memory.
No reference to local variables exists on the INFORM LIST instructions unless a
local variable has been reserved.

Figure 2-2 Job Header Standard vs Expanded

2.2.2 Reserving Local Variables in the Job Header

To access a JOB HEADER and reserve LOCAL variables, proceed as follows:


1. In TEACH, from the desired JOB CONTENT, choose DISPLAY.
2. Choose JOB HEADER.
3. Cursor down to LOCAL VAR NUM area, and the specific variable type.
4. Press the SELECT key.
5. Enter the desired number of variables from the keypad. Press ENTER.
Repeat steps 3-5 for each desired type.

DX Advanced Programming Training Manual 2-2 © MOTOMAN


Variables

Figure 2-3 Expanded Job Header

NOTE: Local variable files can be displayed from the VARIABLE/LOCAL VARIABLE
selection. To monitor different local variable types, cursor LEFT or RIGHT.

Figure 2-4 Variable Submenu and Local Variable Display

Although up to 255 of each type can be registered, the block of memory dedicated
for total number of Local Variables may not be large enough. If Alarm 4441, LACK
OF LOCAL-VARIABLE AREA occurs, then return to the header and be sure that the
correct number and type of variables have been set.
NOTE: A message appears stating “Reconstruct local variable from next start...”. The
reserved memory for local variable storage only exists while the job is in Play,
START.
A Local Variable is initialized when the job is started (START, CALL, PSTART, etc).
Local Arithmetic Variables are initialized with a “0” value, Local Position Variables
are initialized in an un-formatted state. It is the programmer’s responsibility to
reconstruct the values stored in each address within the structure of the job using
ARITH menu instructions SET, SETE, DIN, or GETS.

DX Advanced Programming Training Manual 2-3 © MOTOMAN


Variables

2.3 Scalar and Array Address Numbers


Both GLOBAL and LOCAL variables may have a SCALAR (direct) or an ARRAY
(indirect) address. A Scalar address is set as a CONSTANT, such as I000. An Array
address varies based on another global/local B, I, or D variable type only.
Examples (using Byte type variable) of ALL address type combinations:
B039 (Global B, Scalar address)
LB001 (Local B, Scalar address)
B[D011] (Global B, Array address determined by global D011)
LB[I017] (Local B, Array address determined by global I017)
B[LI000] (Global B, Array address determined by local LI000)
LB[LD002] (Local B, Array address determined by local LD002)

2.4 Arithmetic Variables


There are 4 basic types of Global/Local Arithmetic Variables available for
programming with the DX100; Byte, Integer, Double Precision Integer, & Real.
Table 2-1 Arithmetic Variables

DATA TYPE GLOBAL LOCAL RANGE


VARIABLE VARIABLE
BYTE B000 to B099 LB000 to LB255 0 to 255
INTEGER I000 to I099 LI000 to LI255 -32,768 to 32,767
DOUBLE PRECISION D000 to D099 LD000 to LD255 -2,147,483,648 to
2,147,483,647
REAL R000 to R099 LR000 to LR255 -3.400000E+38 to
3.400000E+38
(precision for values
between -1&+1:
-9.99999E-38 to
9.99999E-38)

2.5 String Variables


String Variables S000~S099 are designed for use with ASCII characters. Instructions
specific to ASCII characters are available in the Inform List under the ARITH menu.
Up to 16 characters can be stored in each address, including spaces.

2.6 Position Variables


POSITION (ROBOT) P-type variables store 6 or 7 elements of data in PULSE as
S,L,U,R,B,T (E) or as X,Y,Z,Rx,Ry,Rz data in ROBOT, BASE, TOOL or USER.
POSITION (BASE) BP-type and POSITION (ST), EX-type store only PULSE data.

Each type may have a Global/Local, Scalar/Array address. In Teach mode, Position
data may be recorded with servo power ON for all global types except TOOL. Data
for all types may be manually entered for shift data and incremental move data using
the SELECT method and number key pad.

DX Advanced Programming Training Manual 2-4 © MOTOMAN


Variables

Table 2-2 Global/Local Position Variables

Data Type Data Format Global Variable Local Variable


Position (Robot) Pulse/XYZ P000 to P127 LP000 to LP255
Position (Station) Pulse EX000 to EX127 LEX000 to LEX255
Position (Base) Pulse/XYZ BP000 to BP127 LBP000 to LBP255

2.7 System Variables


System Variables are specific storage for current information the system “knows” and
can be retrieved using the GETS Instruction. This includes Search results; current
location of job’s Control Group; current Reference Point location, Return Value, etc.
Table 2-3 System Variables

System Variable
No. Explanation
Type
$B-Type Variable $B002 Detected/Not Detected by the optional SRCH
instruction
0: Not Detected, 1: Detected
$PX- Type Variable $PX000 Current Value (pulse type)

$PX001 Current Value (XYZ type)

$PX002 Position detected by optional SRCH


instruction (pulse type)

$PX003 Position detected by optional SRCH


instruction (XYZ type)

$PX004 Current Value excluding shift amount (XYZ type)

$PX005 Teaching position (pulse type)

$PX006 Operation target position (pulse type)

$PX011 System location of REFPT #1

$PX012 System location of REFPT #2

$PX013 System location of REFPT #3

$PX014 System location of REFPT #4

$PX015 System location of REFPT #5

$PX016 System location of REFPT #6

$PX017 System location of REFPT #7

$PX018 System location of REFPT #8

$PX040 Path correction amount (available only


with COMARC function)

$RV Type Variable $RV Return value as programmed using the RET
instruction

DX Advanced Programming Training Manual 2-5 © MOTOMAN


Variables

The SYSTEM POSITION AXES ($PX) variables are used with the GETS instruction
to obtain the current position for the CONTROL GROUP defined in JOB HEADER.

The instruction GETS PX126 $PX000, depending on control group axes,


would expand to position variable addresses as follows:

If R1+R2, then PX126 indicates P126 (slave) and P127 (master).


If R1+B1, then PX126 indicates P126 and BP126.
If R1+B1+S1, then PX000 indicates P126, BP126, and EX126.
If R1+R2+B1+B2+S1 cooperative job with master coordinates R1+B1

then PX126 indicates the following:

P126 = R2 (slave)
P127 = R1 (master)
BP126 = B2 (slave)
BP127= B1 (master)
EX126= S1

CAUTION! The programmer must allow for expansion of addresses when storing
current psition data with GETS $Px000 in jobs with Control Group for
multiple Robots, Bases, and/or Station axes.

DX Advanced Programming Training Manual 2-6 © MOTOMAN


Job Control & Multi-Tasking

3.0 JOB CONTROL & MULTI-TASKING


The Standard software of the DX100 Controller is capable of running subroutines in
series using the CALL JOB:(name) instruction. Other uses of the CALL instruction
can reference one selection from a possible 1-255 name list by using it with the
CALL IG#( ) tag or a possible 0-255 used with the CALL Bxxx variable tag. Up to
three optional JET# (Job Entry Tables) support 1024 reserved job names in each.

In addition to this, variable data can be transferred from/to the parent/child using
CALL ARGF tag and the GETARG instruction. Also, RET can have a Constant or
Variable tag to send data to the parent via the GETS $RV instruction.

With the purchased software option, CONCURRENT JOB, the DX100 controller can
run up to 8 jobs simultaneously. The jobs to be run concurrently are parallel started
from a master task job with the PSTART instruction.

3.1 CALL JOB Instruction


The CALL JOB:(name) instruction allows one job to open another, called by its
name, as a subroutine. The job doing the calling is the parent job; the job being
called becomes the active child job.

Nested CALL JOBs create a JOB STACK of parents. Each child job returns to it own
(the previous) parent on the stack by RET or its END. One cycle is completed upon
execution of the initial parent job’s END instruction. The JOB STACK can have up
to 12 parents. It can be monitored in PLAY mode under JOB CONTENT Display.
NOTE: If the JOB STACK exceeds more than 12, then the Minor Alarm:4452 STACK
MORE THAN 12 (JOB CALL) will occur.

3.2 CALL IG#( ) or CALL BXXX Instructions


Either a current Universal Input Group status can be referenced or the content of a
Byte variable address may be used to correlate to a desired name which the controller
can pick from the Job List by using CALL IG#( ) or CALL Bxxx.

For these two types of CALL usage, the child jobs must be named numerically using
“0”, “1”, “2”, “3”, etc., up to “255”. Per execution, this gives only one possible
selection, but there can be up to 256 choices available.
3.2.1 CALL IG#( )
A Universal Input Group is 8 individual Bits looked at by the controller as a Byte.
This Byte value is converted from Binary format to Decimal format. The controller
correlates a decimal numeral from 1-255 as a child job name to pick from the Job List
as the active child job by execution of CALL IG#( ).

The programmer must realize that the status of the referenced Input Group may be
ever changing, but the controller only uses the current status value at the time of
execution of this instruction.
DX Advanced Programming Training Manual 3-1 © MOTOMAN
Job Control & Multi-Tasking

The following illustrates the logic of the controller for use of CALL IG#( ) to
select a child job from the JOB LIST.

Figure 3-1 CALL IG#( ) Progression

3.2.2 CALL BXXX


Because of the scan time required for the potential use of a Universal Input
Group’s current status, and the fact that it is “live” data, it may be more desirable
to store the IG#( ) information into a Byte Variable prior to use by using the
following instruction: DIN Bxxx IG#( ).

This “static” content in the Byte address will not change until the instruction is
either repeated again later in the job or, if not repeated, then it will change upon
the next cycle of performing that Digital Input instruction.

The CALL Bxxx instruction must reference the correct, DIN Bxxx address; Job
names can be 0-255 for a total of 256 possible CALL Bxxx child jobs.

Figure 3-2 DIN B000 IG#( )

DX Advanced Programming Training Manual 3-2 © MOTOMAN


Job Control & Multi-Tasking

Figure 3-3 CALL B000 Job List Selection

3.3 CALL/JUMP JET#( ) Entry= Tag


The JOB ENTRY TABLE or “JET” function can only be tagged onto a CALL or
JUMP instruction. Up to 3072 job names can be registered for easy reference with
either of those two CONTROL instructions.

Not only does this allow for many more job possibilities than with CALL Bxxx where
the names can only be 0-255 or with CALL IG#( ) where names can only be 1-255,
but also the JET job names do not have to be numeric. They must, however, be
registered on one of three tables that contain 1024 entries each.

Examples:
CALL JET#(1) ENTRY=459
JUMP JET#(D099) ENTRY=I099 IF LB000=0
CALL JET#(B004) ENTRY=20

NOTE: The JET#( ) Table number must be a CONSTANT 1, 2, or 3; or the content of


only 1~3 referenced to any B, I, or D type Variable address.

The ENTRY= number for Job Register can be a CONSTANT 1~1024; or


that same content range referenced to any I-type Variable address. Also,
the ENTRY may reference any B-type Variable address, but the range for an
ENTRY number would be limited then to only 1~255.

DX Advanced Programming Training Manual 3-3 © MOTOMAN


Job Control & Multi-Tasking

The JOB REGISTRATION for Tables 1~3 are accessed under Main Menu, JOB.

Figure 3-4 Job Registration Table Access

Each Table has 1024 possible entries. It is convenient (but not necessary) when two
or more robots are involved that Table 1 be jobs exclusive to R1, Table 2 for R2, and
Table 3 for R3.

Figure 3-5 Example JET Tables with 1024 Entries Each

Pressing SELECT in the ENTRY line launches the JOB LIST for selection of
an existing name into the Table. All desired Entries should be made prior to
programming any CALL or JUMP using the JET#( ) ENTRY= tag on either of these
CONTROL instructions.

NOTE: Setting S2C443=1 Enables the JET Registration Tables active only in TEACH
Mode. Setting S2C443=2 allows the Tables to be edited in PLAY Mode even
while a job is running.

DX Advanced Programming Training Manual 3-4 © MOTOMAN


Job Control & Multi-Tasking

Figure 3-6 PLAY Mode Edit Job List

The DETAIL EDIT for CALL/JUMP allows access to the JET#( ) tag selection.

Figure 3-7 Detail Edit for JET#( ) Entry= Tag

The same CALL/JUMP programming rules apply regarding nesting and what type
of job can call or jump to another with respect to Control Group or Non-Group using
ROBOT/CONCURRENT job options.

Figure 3-8 Nested Call JET ENTRY Jobs on STACK

DX Advanced Programming Training Manual 3-5 © MOTOMAN


Job Control & Multi-Tasking

3.4 CALL with Arguments


The CALL instruction can include the ARGF (Argument File 1~8) tag in order to pass
data as an “argument” from the Parent Job to its Child Job. The Argument from the
parent can be sent as a Constant or any Variable content. However, the data received
by the child job can only be stored into the content of a Local Variable address
reserved in its JOB HEADER in Expanded Language Level.

The transferred data can be used by the child job for instruction tags such as Velocity,
PL, Timer, File numbers, I/O selection, or a P-type variable element then SETE, etc.

Figure 3-9 Example Parent/Child Job Instructions

3.4.1 Child JOB HEADER Argument Information: Comment & Type


The child’s JOB HEADER must be accessed in Expanded Language to perform
RESERVE LOCAL VARIABLE prior to setting the ARGUMENT INFORMATION
regarding a COMMENT and data TYPE.
To set ARGUMENT INFO, perform the following in Expanded Language:
1. In the child JOB CONTENT, choose DISPLAY, then JOB HEADER.
2. In the JOB HEADER, choose DISPLAY menu, then ARGUMENT INFO.

Figure 3-10 Child Job Header with Argument Info Display

DX Advanced Programming Training Manual 3-6 © MOTOMAN


Job Control & Multi-Tasking

3. With cursor on dashed line of desired ARG 1~8, press SELECT and choose USE.
4. Enter a descriptive COMMENT.

NOTE: The COMMENT will appear on the GETARG instruction in the child job and it
will also show in the Detail Edit for CALL when programming the parent.
5. Select TYPE, choose the data Type for each used Argument 1~8 to be received.

Figure 3-11 Argument Info Setup


6. Choose EXECUTE when child job’s ARGUMENT INFO SETUP is complete.

3.4.2 GETARG
The ARGUMENT INFO SETUP is required before programming the GETARG
instruction.
To program the GETARG instruction in the child job, perform the following:
1. In child’s JOB CONTENT, on Inform List, choose ARITH menu.
2. Choose GETARG and SELECT its Detail Edit screen.
3. Use to identify Local Type, and enter the PUT TO variable address.

Figure 3-12 GETARG Instruction Detail Edit


4. Identify the number for Input Argument as 1~8, for IARG#( ).

DX Advanced Programming Training Manual 3-7 © MOTOMAN


Job Control & Multi-Tasking

5. Insert the instruction into the job.

Figure 3-13 GETARG Instruction in a Child Job

Information from the parent job with CALL ARGF tag(s) will be received upon
execution of each corresponding GETARG IARG#( ) instruction in the child job.

Any child job with a GETARG instruction cannot be run independently; it will cause
Minor Alarm:4608 Wrong Execution of GETARG Instruction.

3.4.3 CALL ARGF


To program a CALL with Argument(s) in the parent job, perform the following:
1. From either the INFORM List or from the existing CALL instruction, open the
CALL Detail Edit screen.
2. Cursor to the UNUSED on the desired JOB ARGUMENT 1~8; press SELECT.

Figure 3-14 CALL Argument Detail Edit ARGF/UNUSED


3. Cursor to ARGF and press SELECT.
4. In the Argument Edit screen of the ARGF, cursor to , press SELECT, and
choose the type of information to be used.

DX Advanced Programming Training Manual 3-8 © MOTOMAN


Job Control & Multi-Tasking

5. Enter Variable type and address, or CONSTANT value to be passed to child job.

Figure 3-15 Argument Edit Default Selection ARG1 and ARG3 Complete
6. Insert the CALL instruction into the job.
Notice that in the figure above, the first example shows what the default
ARGUMENT EDIT screen displays when the child’s ARGUMENT INFO has not
been set prior to programming the parent CALL instruction.

The second window above shows what the DETAIL EDIT for CALL ARGUMENT
EDIT displays when the child’s ARGUMENT INFO has been completed with
COMMENT and TYPE prior to programming the CALL into the parent.

The figure below shows what the instruction tag displays when a CONSTANT, a
Variable address, and/or a STRING are used. Also, notice that only Arguments 1~4
and 8 are being sent to the child; the commas are the delineation between the missing
arguments 5, 6, and 7.

Figure 3-16 Call with Arguments 1~4 and 8


Each Argument becomes available in the child upon execution of its corresponding
GETARG IARG#( ) instruction. The STRING characters in the example above are
for user description only, so it would not necessarily have to be received/used by the
child; therefore programming the GETARG IARG#(8) in this case would be optional.

DX Advanced Programming Training Manual 3-9 © MOTOMAN


Job Control & Multi-Tasking

3.5 RET Value and GETS $RV


The RET Value instruction can be used not only to complete or terminate execution
of the child job, but also to pass any Variable/CONSTANT/STRING information
from the child job to the parent’s line of instruction GETS $RV. This is similar to the
CALL Argument/Get Argument logic, but the instructions and path of the information
is reversed as child-to-parent rather than parent-to-child.
3.5.1 Programming the RET Value
To program the RET value, perform the following keystrokes in the child job:
1. In the child job, open the Inform List CONTROL menu; choose RET.
2. SELECT the Detail Edit screen for the RET instruction.
3. With the cursor on UNUSED for RET. VALUE, press SELECT. Cursor and
SELECT to choose the source of the Return Value.

Figure 3-17 Return Value Selection


4. Press SELECT and enter the desired address; press ENTER.
5. INSERT, ENTER the RET instruction with Value tag into the job.

Figure 3-18 RET with Return Value


The parent job requires ARITH instruction GETS $RV (Get System Return Value).

DX Advanced Programming Training Manual 3-10 © MOTOMAN


Job Control & Multi-Tasking

3.5.2 Programming the GETS $RV

To program the GETS instruction, perform the following in the parent job:
1. In the parent job, open the Inform List ARITH menu; choose GETS.
2. In the Detail Edit screen of GETS, cursor to the PUT TO and press SELECT.
Choose the variable type the information will be placed in.
3. SELECT and enter specific variable address to receive information; ENTER.

Figure 3-19 GETS Detail Edit for Get From: GETS $RV

4. Cursor to the GET FROM and press SELECT.


5. In the drop down selection, SELECT the $RV (System Return Value).
6. INSERT, ENTER the GETS instruction into the parent job.

Figure 3-20 GETS $RV Instruction in Parent Job

With both the child’s RET Value and the parent’s programmed with GETS $RV
instruction, the information will be passed from the Child to the Parent.

DX Advanced Programming Training Manual 3-11 © MOTOMAN


Job Control & Multi-Tasking

3.6 Concurrent Job System


In a standard system, only a single job may be run at any time; the CALL instruction
suspends the parent job while the child job runs as a subroutine. However, with the
CONCURRENT JOB option, multiple jobs can run concurrently. The concurrent
subroutines, SUB1, SUB2, etc., are “parallel-started” from within a Master Task.

This function is frequently used when multiple groups of servo-motors for Robots,
Base axes and/or External Station axes are controlled by a single controller.
Any system with two or more groups must have this option.
NOTE: The DX100 is capable of running a total of 8 jobs concurrently with standard
hardware, or 16 jobs concurrently with optionally available hardware.

With the CONCURRENT JOB software option, the CREATE NEW JOB
screen has four parts:
• Job Name (up to 32 characters)
• Comment (up to 32 characters)
• Group Set (NO GROUP AXES, R1, R2, R1+R2, R1+S1, etc.)
• Job Type (CONCURRENT or ROBOT)

Figure 3-21 New Job Create

The Job Type selection, either ROBOT or CONCURRENT, indicates what can be
included in the job. In order program motion to control Group Axes, ROBOT type
must be selected.

A CONCURRENT job cannot control any group axes; only non-motion instructions
can be entered into the CONCURRENT job type. Therefore, the Group Set for all
CONCURRENT jobs should be NO GROUP AXES.

DX Advanced Programming Training Manual 3-12 © MOTOMAN


Job Control & Multi-Tasking

3.6.1 Master Task Program Structure


The Master Task is what controls the SUB Task jobs that will run concurrently.
The CONTROL instruction PSTART (Parallel Start) is used to start running a SUB
task job in parallel to the currently running “Master Task” JOB CONTENT.

If continuation of the Master Task is not desired until SUB 1 or SUB 2, etc. have
been completed, then a PWAIT SUB1 and/or PWAIT SUB2, etc. is necessary.

Figure 3-22 Master Task Job with PSTART and PWAIT

PSTART (Parallel Start)


The PSTART instruction includes the subroutine task number (SUB 1, SUB 2, etc.).
In addition, a job name may be stated, or the controller will default to a registered
master job name for each SUB task.
To program the PSTART instruction, perform the following keystrokes:
1. In the Master Task, cursor to highlight the desired line on the Address side; open
the Inform List.
2. Choose the CONTROL menu.
3. Choose PSTART.
4. With the cursor on the PSTART instruction in the Edit Buffer Line, press
SELECT to access the Detail Edit screen.

Figure 3-23 PSTART Detail Edit

5. Cursor to the Target Job line and select “JOB:”, then select the desired job name.

DX Advanced Programming Training Manual 3-13 © MOTOMAN


Job Control & Multi-Tasking

Figure 3-24 PSTART Target Job

6. In the Detail Edit screen, select the appropriate “Sub Task”.

Figure 3-25 PSTART Sub Task

7. Press ENTER to return to the job screen with the information in the Edit Buffer.
8. Press INSERT, ENTER.

NOTE: Programming with “TARGET JOB UNUSED” requires setting of a Master Job
Task name in the “CTRL MASTER” section.

PWAIT (Parallel Wait)


The PWAIT (parallel wait) instruction relates to the PSTART instruction.
It, too, must include the corresponding subroutine task number, SUB1 or SUB2, but
no job name is required.

The PWAIT instruction causes the Master Task to wait for the completion of the
designated subroutine before resuming its own execution. Without the PWAIT,
the Master Task would continue processing its instructions regardless of when the
subroutines finish. This would mean that in AUTO CYCLE, the Master Task could
start over again before the subroutines are completed.

Therefore, if not used earlier in the master task, there should at least be a PWAIT for
each sub task prior to the END instruction in the Master Task.

DX Advanced Programming Training Manual 3-14 © MOTOMAN


Job Control & Multi-Tasking

To program the PWAIT instruction, perform the following keystrokes:


1. In the Master Task, cursor to highlight desired line on the Address side; open the
Inform List.
2. Choose the CONTROL menu.
3. Choose PWAIT.
4. With the cursor on the PWAIT instruction in the Edit Buffer Line; press SELECT
to access the Detail Edit screen.
5. Select the appropriate “Sub Task” number SUB1, SUB2, etc. .
6. Press ENTER to return to the job content with PWAIT completed in Edit Buffer.
7. Press INSERT, ENTER.

3.6.2 Multi-Job Mode vs Single-Job Mode


The Multi-Job/Single-Job Mode is for TEACH mode operation only. The
default Multi-Job setting will allow a Master Task PSTART, to run the SUB tasks
concurrently using the FWD key or INTERLOCK+TEST START operation.
NOTE: Each of the multiple jobs can be viewed by using the PAGE key.
Single job operation (for editing, path verification, etc.) is possible with FWD/BWD
or INTERLOCK+TEST START by setting the system into the Single-Job Mode.
This may be set by accessing the Teaching Conditions under the SETUP menu.

Figure 3-26 Teaching Conditions

Also, pressing SHIFT + “4” key alternates the setting. Using this shortcut method
will display a message either “Single Job Mode Available” or “Multi Job Mode
Available”. In the Single Job Mode, only the active/viewed job is executed.

Figure 3-27 Multi-Job Mode Message

DX Advanced Programming Training Manual 3-15 © MOTOMAN


Job Control & Multi-Tasking

3.6.3 TSYNC (Task Synchronization)


When SUB tasks are performing non-synchronous jobs (R1 welds part A while R2
welds part B), there may be a need to synchronize these tasks at certain points in the
programs if they are different or if the timing in these jobs has to be synchronized
to allow for the fixture to move. The use of a Task Synchronization (TSYNC)
instruction is appropriate. TSYNC instructions are only available in ROBOT jobs.

This instruction is programmed into both the subroutines. As there are 32 of these
available, each is identified with a number (1-32). Whichever program gets to the
TSYNC instruction first, it will wait until the other job gets to the corresponding
numbered TSYNC instruction. The controller thereby synchronizes the tasks.

Figure 3-28 TSYNC Flow

To program the TSYNC instruction, perform the following keystrokes:


1. In SUB task, highlight desired line on Address side; open Inform List.
2. Choose CONTROL.
3. Choose TSYNC.
4. With the cursor on the TSYNC instruction in the Edit Buffer Line; press
SELECT to access the Detail Edit screen.
5. Select the TSYNC number.
6. Press ENTER to return to the job screen with the information in the Edit Buffer.
7. Press INSERT, ENTER.
NOTE: More than two ROBOT-type jobs may be synchronized with TSYNC.
This requires a “SYNCHRO NUM.” tag attached to the TSYNC instruction
accessed in Detail Edit. It indicates how many TSYNCX instructions to look
for in the programs.

DX Advanced Programming Training Manual 3-16 © MOTOMAN


Macro Job Function

4.0 MACRO JOB FUNCTION


Macro Job is a method of creating a custom “instruction” that performs a desired set
of functions. This is similar to programming a child job and using the CALL JOB
instruction, but the advantage is that it can only be created, opened, and edited in
the Management Mode. Another advantage is that its custom name can represent its
purpose for ease of operator comprehension. A Concurrent Macro Job can only be
executed from another Concurrent Job.
NOTE: If a Macro Job is interrupted, it will restart at the beginning of the Macro Job,
rather than where the interruption occurred. However, a parameter can be
enabled, S2C438=1, to view/debug a Macro Job during execution. In this
case, the Macro Job would resume from the cursored line of interruption.

4.1 Macro Job Creation


To create a new Macro Job (in Management Mode only), perform the following:
1. From the Main Menu, choose JOB.
2. Choose CREATE NEW JOB.
3. Enter the desired Job Name. (This Job Name is the “custom” instruction title
and should represent its intended function for ease of operator understanding.)

NOTE: Macro Job Names are limited to 8 characters.


4. Enter a descriptive Comment for the Job Header if desired.
5. Select the desired Group Set.

NOTE: Non-Group indicates that this job can contain only non-motion INFORM LIST
instructions. Group Set R1 or other combinations, as available based on the
controller setup, can have motion only for the identified Control Group.

Figure 4-1 New Macro Job Creation

DX Advanced Programming Training Manual 4-1 © MOTOMAN


Macro Job Function

6. Cursor to Job Type, and press SELECT.


7. Cursor to ROBOT MACRO, and press SELECT.
8. Press EXECUTE or ENTER.
The job is now created and can be programmed as any other job. This job can only
have instructions based on the job type. The Control Group in Robot Macros can
have motion as either Command Positions or Position Variables. Robot Macros with
Non-Group cannot have motion.

4.2 Macro Job Selection


NOTE: Macro Jobs are not available for viewing or modification in either the
Operation or Editing Modes.

To Select a Macro Job (in Management Mode only), perform the following:
1. From the Main Menu, choose Select Macro Job. The Macro Job Directory will
be displayed.
2. Cursor to the desired Macro Job name and press SELECT.

Figure 4-2 Example Macro Job Content

4.3 SETUP for INFORM LIST Macro Instruction


A Macro Job name must be “set up” to become an instruction available for selection
from the Inform List. For example, Macro jobs named GRP-OPN and GRP-CLS will
become the instructions GRP-OPN and GRP-CLS on the Inform List. If this setup is
not done, the job name does not become available as an instruction for programming.
To perform setup for the Macro Instruction, complete the following:
1. From the Main Menu, choose SETUP.
2. Choose Macro Inst.

DX Advanced Programming Training Manual 4-2 © MOTOMAN


Macro Job Function

NOTE: ROBOT type Macro jobs must be set up on the MACRO (ROBOT) page;
CONCURRENT type are set up from the MACRO (CONCURRENT) page.
3. Use the Page Key to access the appropriate page.
4. Cursor to the next available MACRO setting, cursor to the EXECUTE Job
column, press SELECT.

Figure 4-3 Setting Macro Job

5. Cursor to SETTING MACRO JOB and press SELECT.


6. Cursor to the desired Macro Job name and press SELECT.

Figure 4-4 Macro Instruction Set Up

NOTE: The Macro Setup has the opportunity to set a Suspend Job. This job is a
Non-Group job that runs whenever the Macro Execute job is interrupted by a
Hold or E-Stop.

DX Advanced Programming Training Manual 4-3 © MOTOMAN


Macro Job Function

4.4 Programming the Macro Instruction


The Macro instruction must be created on the Inform List prior to programming.
To program the Macro Instruction, perform the following:
1. In an existing job, press the Inform List key.
2. Choose MACRO and press SELECT.


Figure 4-5 Job with Macro Instruction

3. Choose Macro Instruction/Job desired, press SELECT and ENTER.

NOTE: Macro Instructions do not have the “IF” construct available.

CAUTION! Macro jobs will restart at the beginning when interrupted. Robot Macro
jobs with motion may not have a clear path from the point of interruption
to the first point in the job.

4.5 Macro Instructions with Arguments


Information can be “given” to the Macro with the use of Arguments. These are tags
on the Macro instruction that will be stored in the Macro Job in Local variables only.
NOTE: Local Variables must be set up in the Macro Job Header before the GETARG
instruction can be programmed in the Macro Job and before the argument
can be set up in the Macro Set Up.

Example:
MOVL V=950
CIRCLE radius= 50 speed= 500
MOVL V=950
NOTE: The Macro Job can be programmed using a RET instruction is a Return Value
tag is desired. This allows the transferring of numerical information back to
the parent job via the GETS $RV instruction.

DX Advanced Programming Training Manual 4-4 © MOTOMAN


Macro Job Function

4.5.1 Defining the Argument


To pass the arguments from the job instruction (eg CIRCLE radius= 50 speed= 500)
to the Macro Job, the Macro Instruction must be set-up.
To access the Argument Definition screen, perform the following:
1. In the Management security level, from the Main Menu, choose SET UP,
MACRO INST.
2. Program the Execute Job.

Figure 4-6 Macro Instruction Setup

3. Cursor to MACRO(X) and press SELECT to access the Argument Definition.

Figure 4-7 Argument Definition Screen

4. SELECT on the first column and set the argument to USED.

DX Advanced Programming Training Manual 4-5 © MOTOMAN


Macro Job Function

Figure 4-8 Argument Used

NOTE: Up to 16 arguments can be set for each Macro Job.


5. Cursor to TYPE and choose the data type to be passed to the Macro Job.

NOTE: Selecting a B, I, D, or R CONSTANT allows a number (only within that


variable type’s range of values) to be programmed for the Macro Argument.
Specification of a Variable type (eg B VARIABLE or R POSITION) places
reference to the specific variable file for the Macro Argument.

Figure 4-9 Argument Type


6. Using the PAGE key, view the screen with DISPLAY and EXPRES’N columns.

DX Advanced Programming Training Manual 4-6 © MOTOMAN


Macro Job Function

Figure 4-10 Argument Display

NOTE: DISPLAY ON allows the argument to be shown on the Edit Buffer Line.
EXPRES’N places a descriptive comment preceding the value/variable.
7. Change the Display to ON and enter a description for the EXPRES’N.

Figure 4-11 Argument Display and Expression

8. Page to the screen containing the COMMENT1 and COMMENT2 columns.

NOTE: COMMENT1 will be shown on the Detail Edit screen preceeding the constant
or variable. COMMENT2 will follow the constant/variable.
9. Enter descritpions in COMMENT1 and COMMENT2 for the Detail Edit screen.

NOTE: COMMENT 1 of up to 16 characters, will be shown in the (Detail Edit)


Argument Setting screen. COMMENT 2 can have up to 8 characters.

DX Advanced Programming Training Manual 4-7 © MOTOMAN


Macro Job Function

Figure 4-12 Argument Comments

10. Choose COMPLETE.


After the Macro instruction set up is complete, the instruction will be available on the
Inform List as MACRO.

Figure 4-13 Macro Instruction and Argument Setting screen

DX Advanced Programming Training Manual 4-8 © MOTOMAN


Macro Job Function

4.5.2 Changing the Macro Instruction Setup


In the Macro Inst area, changing COMMENTS, EXPRES’N, or Display ON/OFF will
not affect the operation of the Macro.

Changing Data Type (from one variable type to another), adding or deleting
arguments, or adding or deleting Suspend Jobs will result in an UNMATCH
indication.

Figure 4-14 Macro Instruction Unmatch

The instruction must be Deleted and re-Inserted, or Modified.

DX Advanced Programming Training Manual 4-9 © MOTOMAN


Macro Job Function

NOTES

DX Advanced Programming Training Manual 4-10 © MOTOMAN


Structured Language

5.0 STRUCTURED LANGUAGE


The Structured Language in the DX100 controller offers choices for programming
conditional instructions for repeating a section of a job or branching to an exclusive
section of instructions within a job.

The structure of each pair is as follows:


• FOR ~ NEXT [Repeat based on Integer Count]
• WHILE ~ ENDWHILE [Repeat based on 1-3 Conditions]
• SWITCH CASE ~ ENDSWITCH [Selection based on Integer Content]
• IFTHEN ~ ENDIF [Execution based on 1-3 Conditions]

NOTE: The structure of the language will automatically insert the pair’s related
terminating instruction immediately below it in the JOB CONTENT. However,
the active cursor remains on the initial instruction such that INSERT, ENTER
will program between from the Address Side. Also, Copy/Cut and then Paste
may be used to move existing instructions between the paired structure from
the Instruction Side EDIT Menu.

To program a Structured Language pair of instructions, perform the following:


1. With the cursor on the Address Side of a job, open the Inform List.
2. Choose the Control Menu.

Figure 5-1 Inform Control Menu with Structured Language


3. Choose the desired instruction SWITCH; WHILE; FOR; or IFTHEN.
4. Access the Detail Edit screen of the root instruction to program desired tags.
5. Program job instructions between as desired.

NOTE: The SWITCH structure can include not only CASE instructions, but also an
optional DEFAULT prior to ENDSWITCH. Similarly, the IFTHEN structure
can include the conditional ELSEIF instructions, as well as a non-conditional
ELSE option prior to the ENDIF.

DX Advanced Programming Training Manual 5-1 © MOTOMAN


Structured Language

5.1 FOR ~ NEXT


The FOR~NEXT set of instructions creates a repeat loop using an Integer type
address for counting either by the default of one or by a designated STEP value.
This structure is used when a set of job instructions must be repeated a precise
number of times.

The FOR instruction declares the Integer Variable address to be paired with NEXT
and sets the range for the initial start content to the desired end value.

The NEXT instruction increments by either the default one or the STEP value.
It also identifies the end of the loop section for that pair’s Integer address.

The following examples show how both the Pendant and a simple text
editor would display the structure.

A Start value of 1 with an End value equal to the desired number of total executions
works well for the default increment of one.
NOP
MOVJ C00000 VJ=25.00
FOR I000 START= 1 TO 5
MOVL C00001 V=250.0
MOVC C00002 V=250.0
MOVC C00003 V=83.3
MOVC C00004 V=83.3
MOVL C00005 V=250.0
NEXT I000
MOVJ C00006 VJ=25.00
END

Figure 5-2 FOR~NEXT Using Default increment of One

Setting the STEP value is only necessary for an increment of 2 or more. For this, it is
recommended to use a START value equal to the STEP increment.

Determine the End value quantity by the product as follows:


{Desired number of total executions x STEP value} = END value
NOP
MOVJ C00000 VJ=25.00
FOR I000 START= 4 TO 48 STEP= 4
MOVL C00001 V=250.0
MOVC C00002 V=250.0
MOVC C00003 V=83.3
MOVC C00004 V=83.3
MOVL C00005 V=250.0
NEXT I000
MOVJ C00006 VJ=25.00
END

Figure 5-3 FOR~NEXT with STEP Tag

The example above would execute the For~Next set of instructions 12 times.

DX Advanced Programming Training Manual 5-2 © MOTOMAN


Structured Language

5.2 WHILE ~ ENDWHILE


The WHILE~ENDWHILE pair of instructions creates a “continuous/indefinite” loop
for repeating the instructions between the pair as long as the condition(s) are met/true.

The condition(s) can be based on only three types of status: 1) Universal Input;
2) Input Group; or 3) B, I D, R, or S Variable Content.

NOP
CALL JOB:START
WHILE IN#(1)=ON
CALL JOB:TEST1
CALL JOB:TEST2
CALL JOB:TEST3
ENDWHILE
CALL JOB:START
END

Figure 5-4 WHILE~ENDWHILE


Up to 3 conditions can be specified using the ANDIF and ORIF instruction tags.

Figure 5-5 WHILE Conditional Tag Selections


The AND combines the 2 conditions in series; the OR makes the condition(s) in
parallel as a separate branch. In the example below, IN#(1) AND B000<>123 must
be met, OR just IG#(1)=20 must be true.

NOP
CALL JOB:START
WHILE IN#(1)=ON ANDIF B000<>123 ORIF IG#(1)=20
CALL JOB:TEST1
CALL JOB:TEST2
CALL JOB:TEST3
ENDWHILE
CALL JOB:START
END

Figure 5-6 WHILE with ANDIF and ORIF Condition Tags


If, for example, it were programmed as follows:
WHILE IN#(1)=ON ORIF B000<>123 ANDIF IG#(1)=20
then IN#(1)=ON must be true; OR both B000<>123 AND IG#(1)=20 must be met.

DX Advanced Programming Training Manual 5-3 © MOTOMAN


Structured Language

5.3 SWITCH CASE ~ ENDSWITCH


Some situations require “either/or” for exclusive selection programming techniques.
Programming a job with the JUMP instruction to select a Label, as shown below,
may meet the requirements of the system, but is not readily understood by a non-
programmer:
NOP
CALL JOB:START
DIN B000 IG#(1)
JUMP B000
*1
CALL JOB:TEST1
JUMP *END
*2
CALL JOB:TEST2
JUMP *END
*3
CALL JOB:TEST3
*END
CALL JOB:START
END

Figure 5-7 Selection without using Structured Language


Also, if the B000 contains a value not identified as a Label, an alarm will occur.

Use of SWITCH CASE ~ ENDSWITCH is more easily programmed and understood.


NOP
CALL JOB:START
DIN B000 IG#(1)
SET I000 B000
SWITCH I000 CASE 1
CALL JOB:TEST1
CASE 2
CALL JOB:TEST2
CASE 4
CALL JOB:TEST3
ENDSWITCH
CALL JOB:START
END

Figure 5-8 SWITCH CASE ~ ENDSWITCH

The SWITCH instruction line includes the declared Integer address and the first
CASE number that will run, CASE 1. Additional CASE# instructions for other cases
to be selected are programmed between the pair.
NOTE: Each Case# in the program must be a unique number. During Job execution
of SWITCH, only one exclusive CASE is completed, then the job goes to the
ENDSWITCH.
However, an optional DEFAULT instruction can be inserted prior to the
ENDSWITCH for instructions to be executed only when the CASE# requested does
not exist.

If there is not a corresponding CASE# for the current Integer value, the job goes to
the ENDSWITCH unless an optional DEFAULT instruction set is programmed.

DX Advanced Programming Training Manual 5-4 © MOTOMAN


Structured Language

NOP
CALL JOB:START
DIN B000 IG#(1)
SET I000 B000
SWITCH I000 CASE 1
CALL JOB:TEST1
CASE 2
CALL JOB:TEST2
CASE 4
CALL JOB:TEST3
DEFAULT
PULSE OG#(1) 255 T=1.00
ENDSWITCH
CALL JOB:START
END

Figure 5-9 Switch with Default

5.4 IFTHEN ~ ENDIF


The IFTHEN and ENDIF paired instructions allow the exclusive selection for
execution of a section of a job to be conditional. Similar to using the IF construct on
the individual instructions CALL, JUMP, RET, and PAUSE, the selection is based
upon the status of an IN#( ), an IG#( ), or the comparison of one Variable content to
another or a CONSTANT.

Figure 5-10 JUMP*LABEL vs. IFTHEN~ENDIF Advantages

The ELSEIF instruction may be inserted anywhere between the IFTHEN and
ENDIF. This can create a programming logic similar to the Case, but based on 1-3
Condition(s) rather than an Integer content selection.
NOP
CALL JOB:START
DIN B000 IG#(1)
IFTHEN B000=1
CALL JOB:TEST1
ELSEIF B000=2
CALL JOB:TEST2
ELSEIF B000=3
CALL JOB:TEST3
ENDIF
CALL JOB:START
END

Figure 5-11 ELSEIF Examples

NOTE: Up to three conditions can be programmed using AND/OR with the IFTHEN
and the ELSEIF instructions.

DX Advanced Programming Training Manual 5-5 © MOTOMAN


Structured Language

Using the ELSE instruction allows for a default selection if none of the other
conditions have been met, similar to the Switch Default function.
NOTE: The ELSE instruction is non-conditional.

NOP
CALL JOB:START
DIN B000 IG#(1)
IFTHEN B000=1
CALL JOB:TEST1
ELSEIF B000=2
CALL JOB:TEST2
ELSEIF B000=3
CALL JOB:TEST3
ELSE
PULSE OG#(1) 255 T=1.00
ENDIF
CALL JOB:START
END

Figure 5-12 ELSE Example

5.5 Summary of Conditional Structure


5.5.1 ANDIF and ORIF
Although the JOB CONTENT displays the instruction tags with just AND / OR, the
DETAIL EDIT for WHILE, IFTHEN, and ELSEIF displays the condition choices
as ANDIF and ORIF. All of the possible combinations are illustrated below using a
ladder diagram representation for clarity of logic with 1st, 2nd, and 3rd items.

WHILE / IFTHEN / ELSEIF ...(AND means in series; OR means in parallel branch.)

????? ANDIF ????? ANDIF ????? =>

????? ANDIF ????? ORIF ????? =>

????? ORIF ????? ANDIF ????? =>

????? ORIF ????? ORIF ????? =>

Figure 5-13 ANDIF and ORIF Condition Tags

DX Advanced Programming Training Manual 5-6 © MOTOMAN


Structured Language

5.5.2 Nesting Pairs


Any Structured Language pair can be nested within another pair of either the same
type or any other type of paired instructions.

The spacing indentation in the JOB CONTENT helps to identify the paired sections.
The default display in a simple text editor uses a tabbed indentation.

The figure below shows both formats; however, the limited JOB CONTENT view
from the pendant, Lines:0004-0015, only illustrate the nested FOR~NEXT pairs.

The *.jbi file example shows Lines:0000-0016 so that at least a portion of the most
outer pair of instructions using SWITCH CASE is visible in order to illustrate the
CASE 1 and the beginning of CASE 2.

Figure 5-14 Nested Language Structure

DX Advanced Programming Training Manual 5-7 © MOTOMAN


Structured Language

NOTES

DX Advanced Programming Training Manual 5-8 © MOTOMAN


Position Variables

6.0 POSITION VARIABLE FILES


By default, the DX100 supports 128 Position Variable addresses each for ROBOT,
BASE, and EXTERNAL STATION. The corresponding addressing is #P000 through
#P127, BP000-BP127, EX000-EX127. These files can be used for storing position
data, shift data, or incremental move data. The JOB CONTENT active CONTROL
GROUP determines which addresses are actively available.

6.1 Access to Position [ROBOT] File Display


To access the Position Variable display, complete the following steps:
1. From MAIN MENU; choose VARIABLE.

Figure 6-1 Variable sub-menu


2. Choose POSITION (ROBOT).
3. Touch “PAGE” on Position Variable screen, enter desired address; press ENTER.
or
Use PAGE key for next address; use SHIFT + PAGE for previous address.
or
Choose EDIT, SEARCH, enter desired address number, then press ENTER.

Figure 6-2 Position Variable (default, [*******] data type)

DX Advanced Programming Training Manual 6-1 © MOTOMAN


Position Variables

6.2 Establishing Data Type


To delete data of the displayed variable address, complete the following steps:
Cursor to highlight the existing data type; press SELECT. Cursor to YES for the
“CLEAR DATA?” question; press SELECT.
or
Choose DATA; Choose CLEAR DATA; press SELECT.
The Position Variable will revert to the Default format.
To set the data type of the displayed variable, complete the following steps:
1. Cursor to the data type element [********] and press SELECT.

Figure 6-3 Position Variable format


2. Cursor to the desired format and press SELECT.

6.3 Cartesian (XYZ) Coordinate Frames


The DX100 supports four types of Cartesian frames for XYZ data:
ROBOT Frame [RF] R1-R8
BASE Frame [BF] B1-B8
USER Frame [UF] UF#(1) ~ UF#(63)
TOOL Frame [TF]. Tool No. 00-63

NOTE: Current Position data cannot be captured or displayed in TOOL data type.

To display the robot’s Current position in XYZ format in BASE, ROBOT, or


USER Frame, perform the following:
1. From MAIN MENU, choose ROBOT.
2. Choose CURRENT POS.
3. Press SELECT if different XYZ frame is desired.
4. Cursor to BASE, ROBOT; press SELECT.
or
Cursor to USER and SELECT, enter the UF#(1-24); press ENTER.

DX Advanced Training Manual 6-2 © MOTOMAN


Position Variables

Figure 6-4 Current Position

With regard to Position Variables, only BASE, ROBOT, and USER Frame can be
the chosen data type for registering positions with servo power. However, TOOL in
addition to BASE, ROBOT, and USER, are available as COORD data type choices
when using the elements for shift data and IMOV data.
6.3.1 Robot Frame (RF)
The ROBOT Frame (RF) XYZ Cartesian coordinate system, as illustrated below,
shows the zero position and the directions of the X+, Y+, and Z+ coordinate axes
which is the direction of operation for the axis keys when using the [RECT] jogging
coordinates. Each robot, R1~R8, would have its own RF of reference.

Robot Coordinate System

Figure 6-5 Robot Frame (RF)

DX Advanced Programming Training Manual 6-3 © MOTOMAN


Position Variables

6.3.2 Base Frame (BF)


The BASE Frame differs from the ROBOT Frame only when the robot is mounted on
a servo driven track controlled by the DX100 controller. With the inclusion of this
controlled axis, the BF envelope is expanded to include the area the robot can reach.

The XYZ directions remain the same, but the zero position is identified by a location
on the Base axis as well as a robot location. Up to eight BF references are available,
B1~B8.
Base Coordinate System

Figure 6-6 Base Frame (BF)

NOTE: In a system without any base axes, the BASE Frame (BF) position data will be
the same as the ROBOT Frame (RF) data.

6.3.3 User Frames UF#( )


There are 63 User Frames available on the DX100, UF#(1) through UF#(63). All
User Frames are based on three points: ORG, XX, & XY entered by the user to
create a plane in space. This plane may be skewed from the Robot Frame XYZ, or
it may be used to provide a zero position at a desired ORIGIN for friendlier XYZ
position data.
User Coordinate System

ORG

Figure 6-7 User Frame Coordinates (UF)

DX Advanced Training Manual 6-4 © MOTOMAN


Position Variables

Not only can User Frames be used for jogging the robot in USER Coordinates, but
also the UF#( ) tag can be used in program instructions with position variables
regarding IMOV or with the CALL instruction to run the job in different User
Frames. In addition, performing dynamic editing with the PAM function or a 3-D
shift with the Relative Job software option includes User Frames.
6.3.4 Tool Frame (TF)
Data for shifting or incremental moves may be entered by numeric keypad not only in
BF, RF, and UF #( ), but also TF with any Tool No. 00-63.
NOTE: Although the direction of the TOOL FRAME is ever-changing as the TCP
travels, the location of the TCP in TF is always 0.000 mm for X, Y, & Z..
Therefore, the software does not display position data in TOOL, nor does it
register points with position variables in TOOL data type.

Y+

X+
Z+

Figure 6-8 Tool Frame Coordinates (TF)


When jogging in TOOL coordinates, the application direction (wire-feed, laser,
waterjet, etc.) is the direction of the Z+ axis key. This set up is accomplished by
manually entering the Rx, Ry, and/or Rz degree values for the Tool data.

6.3.5 Master Tool Frame (MTF)


The Master Tool Frame refers to a multiple GROUP AXIS cell where one set of
GROUP AXES is the “master” and the other is the “slave”. Position data for the
slave is based on it’s distance and orientation in the Master Tool Frame.

6.3.6 Tool No. Selection for Multiple TCPs


Each time a step is entered from the edit buffer line, the TOOL:( 00-63) for that STEP
NO. is displayed on right side of job.

DX Advanced Programming Training Manual 6-5 © MOTOMAN


Position Variables

TOOL NO. 04

Figure 6-9 Example Tool No. 04 for each STEP in JOB CONTENT
Each Motion Step COMMAND POSITION address in the JOB CONTENT displays
its recorded Tool No. when the cursor is highlighting that Line/Step address.

Consequently, the first concern is selecting the correct Tool Number for new steps or
modifying points; also when capturing current position data into a Position Variable.
NOTE: For multiple TCP use, set the Teaching Condition to PERMIT Tool Number
Switching. The currently active tool will remain as the selected Tool No. on the
tool list until changed as described below.

Figure 6-10 Tool Number Switch Permit


Tool No. is selected by pressing [COORD] to choose TOOL, JOINT, or RECT/CYL
coordinates (not USER), then press [SHIFT]+[COORD] to display the list. Highlight
the desired number with the cursor, then [SHIFT]+[COORD] again to close the list.

Figure 6-11 Tool No. Select

DX Advanced Training Manual 6-6 © MOTOMAN


Position Variables

Cursor to the desired tool number. (Assuming the TCP data has been manually or
automatically stored previously.) Then, new steps or modifying step positions for that
desired tool is available. To close the list, press [SHIFT] + [COORD] again. Choose
any desired coordinate system for jogging purposes.
NOTE: The Teaching Condition “Tool Number Interlock for Step Entry” set as Prohibit
keeps all jobs from being programmed and/or edited accidentally with the
wrong Tool No. This means that all steps in a job must be entered with the
same Tool No. as the first motion step in the job; otherwise “ERROR 0070:
Program and current tool different” will occur.

6.3.7 External Station Axes


The DX100 has the capability to control eight robots with eight bases (B1 for use
with R1, etc.) and twenty-four stations (S1 through S24); up to three axes can be set
to one base.

Positioner Positioner
Robot

Torch Tack
Tender Table

Figure 6-12 Station Axes

6.4 Store Position Variable in Pulse Counts


To store the robot’s current position into a Position Variable in PULSE data
type, complete the following steps in TEACH mode:
1. Display the desired address and if not in PULSE data type, CLEAR DATA. If
address is already in PULSE data type, skip to step 4.
2. Cursor to [*******] data type; press SELECT.
3. Cursor to PULSE; press SELECT.
4. Jog the robot TCP to the desired position.

DX Advanced Programming Training Manual 6-7 © MOTOMAN


Position Variables

5. Press MODIFY then ENTER with servos ON.

Figure 6-13 Position Variable Display [Pulse]

6.5 Store Position Variable for XYZ


To store the robot’s current position into a Position Variable in ROBOT, BASE,
or USER data type, complete the following steps in TEACH mode:
1. Display the desired address. If already in desired data type, skip to step 4;
otherwise, and do a CLEAR DATA.
2. Cursor to [*******] data type; press SELECT.
3. Cursor to ROBOT or BASE; press SELECT then go to step 4.
or
Cursor to USER, enter the User Frame number; press ENTER.
4. Jog the robot TCP to the desired position.
5. Press MODIFY then ENTER with servos ON.

Figure 6-14 Position Variable Display XYZ [ROBOT]

DX Advanced Training Manual 6-8 © MOTOMAN


Position Variables

6.6 Check Position Variable


CAUTION! Ensure that the path is clear before proceeding. Since a position
variable cannot specify a “motion type” for FWD operation, the DX100
will control the TCP travel in a straight line path if RECT, TOOL, or USER
Coordinates is selected. Never attempt to FWD to a position variable
with data set up for shift amounts or incremental move (IMOV) purposes.

To check the location stored in a Position Variable address, perform the


following:
1. Display the desired position variable address.
2. In TEACH mode, choose an appropriate manual speed.
3. Set to JOINT coordinates so that the TCP will not have to maintain a “straight”
path to the location unless desired.
4. Enable the servos and press FWD until the position variable address number
stops flashing and the robot stops.

6.7 Edit Position Variable in Pulse Counts


To enter PULSE data for a Position Variable using the number key pad,
complete the following steps:
1. Display the correct variable address to be edited and, if necessary, CLEAR
DATA to choose PULSE.
2. Cursor to the desired S, L, U, R, B, or T axis value; press SELECT.

Figure 6-15 Edit Pulse Value

3. Enter the correct positive or negative Pulse Counts using the number key pad.
4. Press ENTER.
Repeat Steps 2 through 4 for desired modification of S, L, U, R, B, and T.

DX Advanced Programming Training Manual 6-9 © MOTOMAN


Position Variables

6.8 Edit Position Variable for XYZ and Rx, Ry, Rz


To enter Position Variable data in XYZ (mm) and Rx, Ry, Rz (degrees) using the
number key pad, complete the following steps:
1. Display the correct variable address to be edited and if necessary, CLEAR DATA
to choose the desired data type. If already in desired data type, skip to step 6.
2. Cursor right to [*******]; press SELECT.
3. Cursor to BASE, ROBOT, or TOOL; press SELECT,
or
Cursor to USER, press SELECT, enter the User Frame number; press ENTER.
4. Cursor to the item to be set or modified; press SELECT.

Figure 6-16 Edit Y Value

5. Enter the X, Y, Z within range (0.000 ± 99,999.999 mm) or the orientation in


degrees within the range for Rx, Ry, Rz (0.0000 ± 180.0000 degrees).
6. Press ENTER.
Repeat Steps 4 through 6 for each dimension to be set or modified.

The <TYPE> data, on the right side of the Position Variable display screen, FRONT/
REAR S<180 or S>=180, UP/DOWN R<180 or R>=180, as well as FLIP/NO FLIP
T<180 or T>=180 are not position elements. These are factory set to define robot
configuration such as wall-mounted with S-axis facing (REAR) cables down the wall,
ceiling mounted with the R-axis rotated 180 deg., etc.

DX Advanced Training Manual 6-10 © MOTOMAN


Motion Types & Tags

7.0 MOTION TYPES & TAGS


Robot/Axes motion requires three (3) pieces of programming information:
1) Position, 2) Motion Type, and 3) Speed.

Position information may be captured as servo motor Command Position, which is


stored in the Job Header, or it may be programmed to reference a Position Variable
which stores it in the Variable section of memory, VAR.DAT file.

Motion Type can be selected either on the Edit Buffer Line for Command Position
programming or from the INFORM LIST: MOTION menu for programming with
Position Variables.

Speed information can either be programmed as a Tag on the Motion instruction or


default to a prior SPEED instruction if the speed Tag is not included on the step.

Other motion tags that can optionally be included are PL= (Position Level) or FINE=;
CR= (Corner Radius; MOVL only); FPT= (MOVC only); NWAIT; UNTIL IN#( )=
or SRCH RIN#( )=; ACC/DEC= (Acceleration/Deceleration Reduction: 20 to 100%);
or “//COMMENT” (up to 32 characters).

7.1 Standard Command Position Motion Types


The DX100 standard Motion Types available for recording only a PULSE data
COMMAND POSITION are MOVJ, MOVL, MOVC, and MOVS. These are
accessed with the MOTION TYPE key from the Address Side of a JOB CONTENT.

7.2 Motion to Absolute Position Variable Data


The INFORM LIST key’s MOTION menu contains instructions for programming
steps that reference Position Variables. The data in the Position Variable content
can be PULSE type for absolute motor positioning or XYZ in BF, RF, or UF#( ) for
absolute TCP positioning.

Figure 7-1 Position Variable Format

DX Advanced Programming Training Manual 7-1 © MOTOMAN


Motion Types & Tags

The instructions in the following JOB CONTENT show the format of motion
programmed using Position Variables.

Job Example:
LINE INSTRUCTION
0000 NOP
0001 MOVJ P000 VJ=25.00
0002 MOVJ VJ=100.00
0003 MOVL P018 V=76
0004 MOVL P126 V=220 PL=0

The Position Variable data type, PULSE/XYZ, determines control of either the job’s
Control Group motors or the active TCP.

If using XYZ data, then the Frame type, BF, RF, or UF#(1-63), will determine the
referenced origin where the TCP position is located.

For example, X=0, Y=0, Z=0 in RF may be an unobtainable TCP position, but in BF
it is the origin of the Base track and in any UF#(1-63) it is the User defined origin of
the specific frame.
NOTE: Modification of the Position Variable cannot be done from the Job Content.
Editing of Position Variable content, at the DX100 Pendant, can only be
performed within the Position Variable address window.

To program a motion step into a job using a previously stored position variable
location, complete the following steps:
1. Display the job in TEACH with the cursor on the address side.
2. Press the INFORM LIST key, choose MOTION.

Figure 7-2 Inform List Motion Menu

3. Choose the motion type desired (MOVJ, MOVL, MOVC, or MOVS).

NOTE: Press SELECT again to access the DETAIL EDIT screen to make changes for
more specific editing choices, then go to step 8. To just change number data,
continue with steps 4-8.

DX Advanced Programming Training Manual 7-2 © MOTOMAN


Motion Types & Tags

4. Cursor onto the existing Position Variable address on the edit buffer line; press
SELECT.
5. Enter the desired Position Variable address (0-127); press ENTER.
6. Place the cursor on existing velocity for V or VJ; press SELECT.
7. Enter the desired Control_point_speed= or Joint_speed=; press ENTER.
8. Press INSERT, ENTER to put the entire MOV_ instruction into the job.

NOTE: If no speed is desired, cursor to the MOV_ and press SELECT. Choose the V
or VJ area of DETAIL EDIT and select UNUSED.

7.3 Relative Motion with Incremental Move (IMOV)


An INCREMENTAL MOVE (IMOV) is a linear move of a designated amount and
direction based on a Position Variable. The elements must be set up in XYZ for
distance in millimeters and Rx, Ry, Rz for orientation in degrees relative to any
Frame’s origin as BF, RF, TF, or UF#(1-63).

Figure 7-3 Position Variable Data for IMOV

To program an IMOV instruction, complete the following steps:


1. Display the job in TEACH with the cursor on the address side.
2. Press INFORM LIST key, choose MOTION.
3. Choose IMOV.

NOTE: To just change number data, continue with steps 4-7. Otherwise, press
SELECT to access DETAIL EDIT for other required editing choices.
4. Cursor to the existing PXXX; press SELECT. Enter the desired Position Variable
number; press ENTER.
5. Cursor to the existing velocity; press SELECT. Enter the desired Control_point_
speed= or Angle_speed=; press ENTER.

DX Advanced Programming Training Manual 7-3 © MOTOMAN


Motion Types & Tags

6. Cursor to the existing COORDINATE and SELECT required frame BF, RF, TF,
MTF, or UF. If UF#( ), cursor to the existing number; press SELECT, then
enter the desired number; press ENTER.
7. Press INSERT, ENTER.

NOTE: An IMOV instruction without a coordinate tag defaults to Base Frame.


The coordinate in the Position Variable is not used.
The USER FRAME tag in Lines 0004 and 0005 of the job content below will
override any frame data type specified in P002 and P003.

LINE INSTRUCTION
0000 NOP
0001 MOVJ VJ=25.00
0002 SET I000 5
0003 *LABEL
0004 IMOV P002 V=2250 UF#(18)
0005 IMOV P003 V=2250 UF#(18)
0006 DEC I000
0007 JUMP *LABEL IF I000 > 0
0008 MOVJ VJ=100.00
0009 END

A stair-step pattern has been created by setting XYZ format for P002 to Y=-50 mm,
and P003 to Z= 50 mm (with all other elements remaining zero). The robot will move
in this stair-step pattern five times based on the IF condition for the JUMP instruction.

7.4 Other Motion Types


If the DX100 Controller work cell is equipped with multiple robots, conveyors, or
other peripheral equipment, then Control Group and/or application specific motion
types are provided.

These include SMOV_ instructions for Coordinated Motion Control, SYMOV_ for
conveyor tracking, and EIMOV_ for motion correlating to an External Reference
Point (External TCP).
Access to these COMMAND POSITION motion types for the Edit Buffer Line is
by the following keystroke choices:
To select the SMOV_ instruction, press the “4” key (designated as SMOV for its
secondary marking).
For access to SYMOV_ or EIMOV_ press SHIFT + MOTION TYPE to change
to that type, then press only the MOTION TYPE to choose the desired SYMOVJ
or SYMOVL, or to choose EIMOVL or EIMOVC. To return to the standard
MOTION TYPE key instructions, repeat SHIFT + MOTION TYPE.

DX Advanced Programming Training Manual 7-4 © MOTOMAN


Motion Types & Tags

Figure 7-4 MOV_ and EIMOV_ Examples

Access to these motion types for programming with position variables is through the
INFORM LIST key MOTION menu selection.

Figure 7-5 Inform List Motion Menu for EIMOV_ Pxxx Instruction

7.5 Default SPEED Instruction


When a motion step is programmed without a speed tag the controller refers to a
memory location called the Default Speed Register. The SPEED instruction is used
to set the value(s).

The SPEED instruction can have tags for setting all of the velocity types:
VJ=Joint_speed
V=Control_point_speed
VR=Angle_speed (velocity of rotation)
VE=External Axis speed, if applicable

CAUTION! The SPEED instruction must precede any steps that are to default to the
Default Speed Register’s current setting(s).
The convenience of using the default speed method is that if the speeds for these steps
need to be adjusted, only one line needs to be edited, rather than each step.

DX Advanced Programming Training Manual 7-5 © MOTOMAN


Motion Types & Tags

In the sample job below, the robot will move at the default VJ=50.00 (%) for the
MOVJ in Lines 0003 and 0009. In Lines 0005 through 0007, the robot will move at
the default V=1125 (cm/min) during travel in the circular path and the MOVL.

LINE INSTRUCTION
0000 NOP
0001 SPEED VJ=50.00 V=1125
0002 MOVJ VJ=25.00
0003 MOVJ
0004 MOVC V= 138
0005 MOVC
0006 MOVC
0007 MOVL
0008 MOVL V=138
0009 MOVJ
0010 END

In order for a motion step to use the default SPEED, the motion step must be entered
into the job without the edit buffer line designating any velocity tag. This can be
done by “unchecking” the * ENABLE SPD TAG in the EDIT menu if multiple steps
will not require speed tags.

Figure 7-6 Enable Speed Tag

Otherwise, each step can be set individually in DETAIL EDIT with speed UNUSED.
NOTE: Depending on Application Parameter [AxP] settings, motion steps without
speed tags that are programmed between the ON/OFF instructions of the
DEVICE menu, such as ARCON ASF#( ) and ARCOF, may default to a
SPEED setting within the ARCON file.

To program a step without a speed tag, perform the following keystrokes:


1. Place the cursor on the Address Side of a job; choose instruction using the
MOTION TYPE key.
2. Press SELECT to move the cursor to the Edit Buffer line.
3. Press SELECT again to access the DETAIL EDIT display.

DX Advanced Programming Training Manual 7-6 © MOTOMAN


Motion Types & Tags

4. Cursor to the current speed tag, VJ= or V=; press SELECT.


5. Cursor to UNUSED; press SELECT.

Figure 7-7 Speed Unused

6. Complete any other DETAIL editing for the desired edit buffer line.
7. Press [INSERT] ENTER.

NOTE: To remove a Speed Tag on an existing line, the DETAIL EDIT screen may be
accessed from the Instruction Side to set the SPEED to UNUSED.

To program the SPEED instruction, complete the following:


1. With the JOB CONTENT displayed, press the INFORM LIST key.
2. Choose MOTION, press SELECT; then SPEED; press SELECT.

Figure 7-8 Inform Speed

3. With the cursor on the Input Buffer line on SPEED, press SELECT.
4. Activate Joint (VJ), TCP (V), or ANGLE (VR) SPEED by selecting UNUSED
on each item.
^
5. SELECT on [ ] to program the Default Speed as either a Constant value or a
^
Variable.
or
SELECT on the speed digits to change the speed to a new constant.
6. Press ENTER (the data moves to the edit buffer line).

DX Advanced Programming Training Manual 7-7 © MOTOMAN


Motion Types & Tags

7. Repeat steps 4-6 for each default velocity desired.


8. Press ENTER (the instruction moves into the job).

NOTE: The default speed can also be programmed as any B, I, or D Variable type.

0016 SPEED VJ=I038 V=I039 VR=I037

Using Line:0016 above, example defaults would apply as follows:

if I038=5000, then VJ=50.00%;


if I039=7500, then V=750.0 mm/sec;
(Regardless of pendant display setting, always
millimeters/second when VAR content.)
if I037=1800, then VR=180.0 deg/sec.

7.6 UNTIL Tag


The motion step UNTIL tag allows the robot/TCP to move toward a programmed
position either until an input signal is received or the programmed position is reached.
This tag can only be included on MOVJ, MOVL; or motion to a Position Variable as
MOVJ Pxxx or MOVL Pxxx; or on an IMOV Pxxx for incremental motion.

In the example below, the controller considers Line 0025 complete as soon as the
IN#(3)=ON. If the input never turns on, then the robot continues to the original
command position location. (If the input is already ON when the instruction is
executed, then the robot will go directly from the location in Line 0024 to Line 0026.)

LINE INSTRUCTION
0024 MOVL V=1125
0025 MOVL V=66 UNTIL IN#(3)=ON
0026 MOVL V=138

If the job contains no other motion steps after the line with the UNTIL tag, then the
robot will stop when the input is ON.
To program an UNTIL tag, complete the following steps:
1. Put the cursor on address side for initial programming of a new MOVJ or MOVL
instruction, or put the cursor on the instruction side on an existing MOVJ or
MOVL line that requires the UNTIL tag.
2. Access the DETAIL EDIT screen of the MOV_.

Figure 7-9 MOVL Detail Edit

DX Advanced Programming Training Manual 7-8 © MOTOMAN


Motion Types & Tags

3. Cursor to the UNTIL tag line; press SELECT.


4. Cursor to UNTIL; press SELECT.

Figure 7-10 Until Detail Edit

5. If the existing Input#( ) is expressed as desired then skip to step 6.


If not, cursor to and press SELECT, then cursor to the desired choice
(CONSTANT or B, I, or D variable) and press SELECT.

Figure 7-11 Universal Input Menu

6. Cursor to the data value for the IN#( ); press SELECT.


7. Enter the input number (as a CONSTANT or enter B, I or D variable address);
press ENTER.
8. Cursor to the DATA line.
If existing condition is ON (or OFF) press SELECT to toggle to opposite choice
OFF (or ON);
or
to choose a Byte Variable address for the status of the input, cursor to , press
SELECT, cursor to B, press SELECT; then cursor to the address, press SELECT,
enter the address number and press ENTER.
9. Press ENTER to exit UNTIL screen, then ENTER again to exit DETAIL EDIT.
10. Press ENTER to place the entire edit buffer line into the job.

Figure 7-12 MOVL with Until Tag

DX Advanced Programming Training Manual 7-9 © MOTOMAN


Motion Types & Tags

7.7 Rapid Search Tag (SRCH RIN#)


The Rapid Search function uses Direct Inputs (rather than Universal Inputs which
require two scans in the ladder program before recognition of the signal). There are
up to 8 Rapid/Direct Inputs available on the DX100 for each possible robot R1~R8.

An optional timer, T= tag, delays movement toward the search position and prevents
recognition of the RIN until the time expires.

Another advantage of the SRCH function is that it allows the robot to continue
searching linearly beyond the target position for a distance designated in millimeters.
This DIS= tag value should be set for the furthest distance that the object could safely
be located beyond the motion step’s programmed location.

The SRCH tag can be used on a Servo Command Position MOVL, on a MOVL Pxxx
to a Position Variable location, or on an IMOV Pxxx Incremental Move.

Program examples for the SRCH tag on a MOVL Command Position:


MOVL V=138 SRCH RIN#(3) = ON T=1.25
MOVL V=558 SRCH RIN#(1) = OFF DIS=50.0
MOVL V=276 SRCH RIN#(B039) = ON T=1.00 DIS=30.8
MOVL V=2250 SRCH RIN#(I015) = LB001 T=0.5 0

To program the SRCH tag, perform the following:


1. In TEACH, on the address side , use the MOTION TYPE key to choose MOVL.
or
from the Inform List, Motion, choose MOVL.
or
from the Inform List, Motion, choose IMOV.
2. SELECT to access the DETAIL EDIT screen.
3. Cursor to the UNTIL tag UNUSED selection; press SELECT.

Figure 7-13 SRCH Selection

DX Advanced Programming Training Manual 7-10 © MOTOMAN


Motion Types & Tags

4. Cursor up to SRCH; press SELECT.

Figure 7-14 Search Detail Edit

5. Cursor to the existing data for RIN#( ); press SELECT.


6. Enter the desired “Direct_input_no.=”; press ENTER.
7. Cursor to INPUT STATUS and use SELECT to set ON or OFF.
8. To use an optional delay timer, cursor to TIME, press SELECT, cursor to T=,
press SELECT, cursor to the default/existing data, press SELECT, enter the
desired value on keypad (0.01 to 655.35 seconds); press ENTER.
9. To set the linear search distance beyond the programmed position, cursor to DIS,
press SELECT, enter the “>Distance=” value (0.1 to 6,553.5 mm); press ENTER.
10. Press ENTER to exit the DETAIL EDIT for SRCH.
11. Verify/edit any other desired tags for this MOVL instruction step.
12. Press ENTER as necessary to accept the changes and return to JOB CONTENT.
13. Press ENTER to accept the instruction into the job.

Figure 7-15 MOVL with SRCH tag

NOTE: The SRCH function’s return code for Rapid Input is the System Variable
address $B002.

DX Advanced Programming Training Manual 7-11 © MOTOMAN


Motion Types & Tags

7.8 NWAIT Tag


The NWAIT (No-Wait) motion tag tells the DX100 to simultaneously execute the
non-motion lines of the MOVE INSTRUCTION SET while the robot/TCP moves to
the tagged step position.

MOVE INSTRUCTION SET is a block of lines in a JOB CONTENT that consists of


a motion step with the NWAIT tag and all non-motion instruction lines programmed
between it and the next step.

The example below illustrates the use of the NWAIT tag on Line 0002.

LINE INSTRUCTION
0000 NOP
0001 MOVJ VJ=25.00
0002 MOVL V=138 NWAIT
0003 SET B004 255
0004 SET I099 0
0005 SET D015 20000
0006 CLEAR R000 ALL
0007 MOVL V=276
0008 MOVJ VJ=50.00

The instructions in Line 0003 through Line 006 will be executed while the robot
travels from Line 0001 to the position of Line 0002.
NOTE: The NWAIT expires upon completion of the entire MOVE INSTRUCTION SET.
If the non-motion takes longer than the robot’s travel to the tagged step, then
the robot will hesitate at this step location until all instructions are completed.

To program the NWAIT tag, complete the following steps:


1. Put the cursor on address side for initial programming of a new move instruction,
or put the cursor on the instruction side MOV_ that requires the NWAIT tag.
2. Access the DETAIL EDIT screen.
3. Cursor to the NWAIT tag line; press SELECT.
4. Cursor to NWAIT; press SELECT.
5. Press ENTER to exit DETAIL EDIT screen.
6. Press ENTER to accept the edit buffer line into the job.

NOTE: The NWAIT motion tag is also available in the DETAIL EDIT for MOTION with
position variables (MOV_ Pxxx) and incremental moves (IMOV Pxxx).

DX Advanced Programming Training Manual 7-12 © MOTOMAN


Motion Types & Tags

7.9 CWAIT Instruction


If only a portion of a MOVE INSTRUCTION SET is to be executed during robot
motion, then the CWAIT (Control Wait) instruction may be inserted where it is
necessary to cancel the NWAIT and resume line-by-line execution.

In this case, the NWAIT tag expires upon execution of a CWAIT control instruction
within the MOVE INSTRUCTION SET.

The example below illustrates use of both NWAIT tag and the CWAIT instruction.

LINE INSTRUCTION
0011 MOVL V=138
0012 MOVL V=138 NWAIT
0013 DOUT OG#(1) 240
0014 CWAIT
0015 DOUT OT#(2) OFF
0016 MOVL V=276

The DOUT instruction on Line 0013 will be executed while the robot travels from
Line 0011 to the position of Line 0012.

The DOUT on Line 0015 will not execute until the MOVL of Line 0012 is complete.
NOTE: The CWAIT instruction is only available in the Expanded Language Level.

To program the CWAIT instruction, complete the following steps:


1. Display the job on the screen in Teach mode with the cursor on the address
where the CWAIT will be inserted below it.
2. Press the INFORM LIST key, then choose CONTROL.
3. Choose CWAIT.
4. Press INSERT, ENTER.

7.10 ENWAIT T=0.01 Tag


The ENWAIT T=0.01 tag for any Motion Type designates how many seconds prior to
completion of this move that exclusively the next instruction will be executed.
This next single instruction can only be non-motion. The T= can be expressed as a
CONSTANT or as an Integer type variable such that if its content were 125, then the
Time would be 1.25 seconds due to the two-decimal-place syntax.

LINE INSTRUCTION
0011 MOVL V=138
0012 MOVL V=138 ENWAIT T=3.00
0013 DOUT OT#(1) ON
Parameter S2C714 = 1 enables the ENWAIT tag in DETAIL EDIT for motion.

DX Advanced Programming Training Manual 7-13 © MOTOMAN


Motion Types & Tags

7.11 PL Tag
An additional detail “Positioning_level=” PL= tag may be used to define the level of
completion for that step.

If exact precision is needed, regardless of the velocity, a PL=0 tag can be used to have
the robot reach the Command Position. This will cause a momentary hesitation as the
controller confirms the exact pulse data for [SLURBT].

MOVL V=2250 PL=0

Other settings of PL=1 through PL=8 are set by parameter in microns for the required
level of travel completion to the point.
NOTE: To enable a display for setting PL=1 through PL=8, set Parameter S2C387=1.
Settings for PL=1 through PL=8 can then be viewed/changed from the SETUP
menu, and they are automatically stored into the DX100 Parameters.

Figure 7-16 Positioning Level Setting Window under SETUP Menu

7.12 FINE Tag (MOVJ or MOVL only)


The FINE tag allows a “Positioning_accuracy=” setting that ranges from 0-3 for more
fine requirements to complete the Command Position step.

The FINE=0 has the same result as the PL=0 tag which causes a complete stop/
hesitation at either the exact COMMAND POSITION (0 Pulse Count tolerance), or
within 25 Pulse Counts for each motor, depending on an enabled/disabled parameter
setting for the system.

The FINE tag may be added only to a MOVJ or a MOVL step instruction.

DX Advanced Programming Training Manual 7-14 © MOTOMAN


Motion Types & Tags

Figure 7-17 Example FINE tag on MOVL


This tag is beneficial when the accuracy requirement is between the range of
exact (PL=0 or FINE=0) up to about 1cm (10,000 microns) or 1/2-inch which is
approximately the PL=1 default setting (12,500 microns).

An individual parameter for each motor link is set in PULSE counts for SLURBT
(and E, 7th axis, if applicable) for FINE=1, FINE=2, and FINE=3.

The Yaskawa/Motoman position set zones for the FINE tag are as follows:
FINE=1 (100 Pulse Counts)
FINE=2 (300 Pulse Counts)
FINE=3 (1,000 Pulse Counts)

7.13 FPT Tag (MOVC only)


The FPT tag is used within a set of MOVC instructions to designate a change in the
circular direction of interpolation. The MOVC FPT instruction must be preceded by
at least 2 MOVC instructions and also followed by at least 2 MOVC instructions.

0001 MOVC C00001


0002 MOVC C00002
0003 MOVC C00003 FPT
0004 MOVC C00004
0005 MOVC C00005 FPT
0006 MOVC C00006
0007 MOVC C00007

2
6
1 3 5 7
4

Figure 7-18 Example FPT tag on MOVC Interpolations

DX Advanced Programming Training Manual 7-15 © MOTOMAN


Motion Types & Tags

7.14 ACC/DEC Tags


All Motoman robots are set by default to allow it to accelerate/decelerate at its
maximum potential. However, when Handling fragile or hazardous materials, this
Acceleration/Deceleration may be too rapid. To set a different ACCEL RATIO for
movement after pickup and/or DECEL RATIO for movement to the place position,
the DETAIL EDIT tags of ACC=/DEC= may be added to any motion step. The range
of setting value is 20-99%. (No tag is necessary if 100% is desired.)

7.15 COMMENT Tag for Motion Step


A comment may be added to any MOV_ step instruction in DETAIL EDIT either
during initial programming from the Address Side or when editing an existing step
from the Instruction Side.

The instruction and comment are separated by a double slash “//” delineation.
MOVJ VJ=100.00 // HOME POSITION
To add a Comment to any Motion Type Instruction, perform the following:
1. SELECT the DETAIL EDIT screen of the MOV_ instruction.
2. Cursor to COMMENT UNUSED and press SELECT.
3. Cursor to // and press SELECT.

Figure 7-19 DETAIL EDIT for COMMENT

4. Cursor to the default setting COMMENT and press SELECT. The Keyboard will
be displayed.
5. Type a comment up to 32 characters and press ENTER.
6. Press ENTER again to return to the DETAIL EDIT screen.
7. Press ENTER again to return to the JOB CONTENT screen.
8. Press [INSERT] if on the address side, ENTER to accept into the job content.

DX Advanced Programming Training Manual 7-16 © MOTOMAN


Temporary Shift Instructions

8.0 TEMPORARY SHIFT INSTRUCTIONS


Instructions in a JOB CONTENT can temporarily offset COMMAND POSITION
steps and also MOTION programmed with absolute POSITION VARIABLE data.
This is accomplished with the SHIFT menu paired instructions SFTON and SFTOF.
A Position Variable address is required for setup of the shift amount in PULSE or any
XYZ data type. This is useful for palletizing, stacking, loading/unloading, and also
applications that performs any repeated functions at multiple locations.

Another way to temporarily offset positions is to teach a child job using the
MOTION menu with USER data Position Variables. This job can then be called
from another program using the CALL UF#( ) tag. The User Frame Coordinate
referenced, ranging from 1-63 different User Frame locations, can be based on either
a CONSTANT or a VARIABLE content

8.1 SFTON and SFTOF Instructions


The pair of SHIFT menu instructions, SFTON and SFTOF, allow a range of program
motion steps to execute with a temporary offset referenced in a Position Variable.
The file address can be set up for BF, RF, TF MTF, or UF#( ) by a specified distance
and/or orientation of X, Y, Z, Rx, Ry, and Rz. Shifts may also be performed using
PULSE data.
NOTE: The shift data in the position variable may be set up either in advance by
manual editing, or it may be calculated during job execution using MSHIFT or
other ARITH menu calculations.
The SFTON offsets servo recorded command positions and motion programmed
with position variables. If a CALL JOB or JUMP JOB instruction is executed
during SFTON, the positions in these child jobs will also be shifted. The SFTON
instruction remains active until the SFTOF instruction is executed. Shift values can
be compounded with different FRAME types by programming an additional SFTON
(with no SFTOF between).

In the job example, the motions in Lines 0013, 0014, and 0015 will be shifted during
continuous operation in Play mode or with INTERLOCK + TEST START in Teach.

LINE INSTRUCTION
0011 MOVJ VJ=25.00
0012 SFTON P127 UF#(5)
0013 MOVJ P000 VJ=100.00
0014 MOVL V=1250
0015 MOVL V=1250
0016 SFTOF
0017 MOVJ VJ=100.00
NOTE: The current shift value may be monitored, when active during job execution,
by displaying the SHIFT VALUE screen under the ROBOT menu.

DX Advanced Programming Training Manual 8-1 © MOTOMAN


Temporary Shift Instructions

8.1.1 SFTON
Prior to programming the SFTON instructions, it is necessary to verify the correct
Position Variable address desired.
To program the SFTON instruction, complete the following steps:
1. Display the job in Teach mode with the cursor on the Address side.
2. Press the INFORM LIST key and choose SHIFT.
3. Choose SFTON.
4. Press SELECT with the cursor on SFTON at the Edit Buffer line to access the
DETAIL EDIT screen.
5. Cursor to the existing P-VAR ROBOT address, press SELECT, enter the desired
address number; press ENTER.

CAUTION! If no coordinate frame is specified for an XYZ data type address, then it
is defaulted to Base Frame upon execution of that SFTON instruction.
The instruction tag for FRAME will take priority over the data type in the
Position Variable address.

If not PULSE, an additional FRAME tag may be required as follows:


6. With the cursor on the SFTON in the Edit Buffer Line, press SELECT to access
the Detail Edit Screen.
7. Cursor to the COORDINATE “UNUSED” and press SELECT.
8. Cursor to BF, RF, TF, or UNUSED; press SELECT.
or
Select UF#( ), enter the desired number; press ENTER.
9. Press ENTER to exit the DETAIL EDIT screen.
10. Press ENTER.

8.1.2 SFTOF

To program the SFTOF instruction, complete the following steps:


1. Display the job in Teach mode with the cursor on the Address side.
2. Press the INFORM LIST key, choose SHIFT.
3. Choose SFTOF.
4. Press ENTER.

WARNING! If the cursor is placed on any motion step between the SFTON and
SFTOF (without execution of the shift instruction) and the program is
restarted by PLAY or by INTERLOCK+TEST START or jogged by the
FWD/BWD key method, the controller will move the robot/TCP to the
original location of the step!

DX Advanced Programming Training Manual 8-2 © MOTOMAN


Temporary Shift Instructions

The following job sample shows the master and child jobs performing a UF#(19) shift
at the pick location and use of a compound shift with RF and TF at the placement.

J: MASTER
NOP
SUB P010 P010 [Zero elements of UF#(19); P010=0.000,0.000,0.000,0.0000,0.0000,0.0000]
SETE P010 (1) 50800 [Set X element of P0010=50.800,0.000,0.000,0.0000,0.0000,0.0000]
SUB P020 P020 [Zero elements of RF data type; P020=0.000,0.000,0.000,0.0000,0.0000,0.0000]
SETE P020 (3) 50800 [Set Z element of P020=,0.000,0.000,50.800,0.0000,0.0000,0.0000]
SUB P011 P011 [Zero all elements of UF#(19) data type current shift value for PICK]
SUB P021 P021 [Zero all elements of RF current shift value for STACK]
SUB P022 P022 [Zero elements of TF; P022=0.000,0.000,0.000,0.0000,0.0000,0.0000]
SETE P022 (6) -450000 [Set Rz of P022 to -45 degrees for alternating STACK orientation]
SET D099 1 [Initially JUMP the SFTON P022 TF for no orientation shift]
MOVJ P001 VJ=5.00 [Move to start position]
DOUT OT#(11) OFF [Redundancy of DOUT OFF to ensure gripper is open]
INPUT # of blocks [“Live” INPUT to I017 for number of blocks to be picked and stacked]
*LABEL
CALL JOB:PICK
CALL JOB:STACK
DEC I017 [DEC for completion of each block placed in stack]
JUMP *LABEL IF I017>0 [Repeat loop to complete number of blocks]
MOVJ P001 VJ=100.00 [Move to start position at end of job]
MUL D099 -1 [Alternate JUMP condition status (1/-1) for shift TF orientation in J:STACK]
MUL P011 0 [Redundant Zero all elements of UF#(19) current shift value for PICK]
MUL P021 0 [Redundant Zero all elements of RF current shift value for STACK]
MUL P022 0 [Redundant Zero TF; P022=0.000,0.000,0.000,0.0000,0.0000,0.0000]
END

J: PICK
NOP
DOUT OT#(11) OFF [Redundancy of DOUT OFF to ensure gripper is open]
SFTON P011 UF#(19) [Current shift amount for PICK position in UF#(19) Frame]
MOVJ C00000 VJ=100.00 //Approach
MOVL C00001 V=150.0 PL=0 // Pick Position
CALL JOB:GRIP
MOVL C00002 V=750.0 ACC=40 // Depart
SFTOF [Clears CURRENT SHIFT VALUE buffer]
ADD P011 P010 [Add next X+ offset UF#(19); P0011=??.???,0.000,0.000,0.0000,0.0000,0.0000]
END

J: STACK
NOP
SFTON P021 RF [Current shift amount for STACK position in Robot Frame]
JUMP*LABEL IF D099=1 [Every other cycle tool orientation -45 deg. to stack piece]
SFTON P022 TF [Current compound shift amount for STACK position in Tool Frame]
*LABEL
MOVL C00000 V=1500.0 //Approach
MOVL C00001 V=93.0 PL=0 DEC=20 // Place Position
WAIT SOUT##(59) = ON [Cannot release item unless in Cube#3 Interference Zone]
CALL JOB:UNGRIP
MOVL C00002 V=375.0 // Depart
INC D018 [Cumulative count of completed pieces stacked]
SFTOF [Clears CURRENT SHIFT VALUE buffer]
ADD P021 P020 [Add next Z+ Offset in RF); P020=,0.000,0.000,??.???,0.0000,0.0000,0.0000]
END

NOTE: The data type must be manually selected for each Position Variable address
prior to use.

DX Advanced Programming Training Manual 8-3 © MOTOMAN


Temporary Shift Instructions

If the data type has not been established, a minor alarm will occur during execution of
any instruction involving the address.

Figure 8-1 Minor Alarm for Undefined Position Variable

While the job is in progress, the current SHIFT VALUE can be accessed in the
ROBOT menu. To view each data type, when compound shift amounts are involved,
press SELECT and cursor to the desired type to display.

Figure 8-2 Example Selection for SFTON Pxxx TF - Shift Coordinate: TOOL Display

NOTE: The SFTOF instruction clears the current SHIFT VALUE buffer.

DX Advanced Programming Training Manual 8-4 © MOTOMAN


Temporary Shift Instructions

8.2 MSHIFT
The MSHIFT (Make Shift) instruction calculates an offset between two position
variables and stores the difference in a third position variable. This allows the
amount of shift in millimeters/degrees to be determined during the execution of a job.

The two absolute position variables used to calculate the difference can be set up
in any data type; however, the data will always be stored in the resultant variable in
XYZ format with a declared Frame type of either BF, RF, TF, MTF, or UF#( ).

In the following example, the MSHIFT in line 0001 will subtract the position data in
P001 from the position data in P002 and store the difference (result) into P003 in BF
(Base Frame) XYZ format.

0011 MSHIFT PX003 BF PX001 PX002


0012 MOVJ VJ=25.00
0013 SFTON P003 BF
0014 MOVJ VJ=50.00
0015 MOVL V=4500
0016 MOVL V=66
0017 SFTOF
0018 MOVJ VJ=100.00

To program the MSHIFT instruction, complete the following steps:


1. With cursor on desired address, open INFORM LIST; choose SHIFT.
2. Choose MSHIFT, and SELECT to display the DETAIL EDIT screen.
3. Cursor to the existing address on the P-VAR (RESULT) line; press SELECT.
4. Enter the PX variable address number for stored shift data; press ENTER.
5. Cursor to the COORDINATE line; press SELECT; then etither...
cursor to BF, RF, or TF, press SELECT, then go to Step 6.
or
SELECT on UF#( ), cursor to existing number, press SELECT, enter desired
number of User Frame, then press ENTER.
6. Cursor to P-VAR (BASE), press SELECT, enter the PX variable address number
of the original source position; press ENTER.
7. Cursor to P-VAR (DEST), press SELECT, enter the PX variable address number
of the desired destination; press ENTER.
8. Press ENTER to exit DETAIL EDIT screen.
9. Press ENTER.

NOTE: To execute the instruction in TEACH with servos ON, hold INTERLOCK+FWD.

DX Advanced Programming Training Manual 8-5 © MOTOMAN


Temporary Shift Instructions

8.3 CALL UF#( ) Tag


A job that is taught entirely with motion steps moving to absolute Position Variables
(set up in all USER data type) can be called from a parent job using the UF#( )
Coordinate tag, accessed in the CALL instruction DETAIL EDIT.

This tag can allow the job to play within any defined User Frame coordinate system.
It can be expressed as a CONSTANT or a B, I, or D type Variable.

The following parent job calls the child job, J:FRAMES, to play in UF#(15) instead
of its original Frame location.

/JOB
//NAME CALL_UF#
//POS
///NPOS 0,0,0,0,0,0
//INST
///DATE 2009/05/28 16:20
///ATTR SC,RW
///GROUP1 RB1

NOP
CALL JOB:FRAMES UF#(15)
END

The child job sample below, J:FRAMES, is programmed with Position Variables that
create a perfect rectangle from data manually entered into the files P100, P101, P102,
and P103 [originally as UF#(09) data type].

/JOB
//NAME FRAMES
//POS
///NPOS 0,0,0,5,0,0
///TOOL 0
///POSTYPE PULSE
///PULSE
P000=0,0,0,0,-80000,27000
///USER 9 [Example originally at UF#(9) location]
///POSTYPE USER
///RECTAN
///RCONF 0,0,0,0,0,0,0,0
P100=0.000,0.000,5.000,175.0000,45.0000,0.0000
P101=90.000,0.000,5.000,175.0000,45.0000,0.0000
P102=90.000,70.000,5.000,175.0000,45.0000,0.0000
P103=0.000,70.000,5.000,175.0000,45.0000,0.0000
//INST
///DATE 2009/05/28 16:08
///ATTR SC,RW
///GROUP1 RB1

DX Advanced Programming Training Manual 8-6 © MOTOMAN


Temporary Shift Instructions

NOP
MOVJ P000 VJ=50.00 [Original location because of PULSE data type]
MOVJ P100 VJ=50.00 PL=0
MOVL P101 V=76.5 PL=0
MOVL P102 V=76.5 PL=0 [Location relative to UF#(15)] on CALL Coord Tag]
MOVL P103 V=76.5 PL=0
MOVL P100 V=76.5 PL=0
MOVJ P000 VJ=50.00 [Original location because of PULSE data type]
END

NOTE: The address P000 is in PULSE data type, and therefore is not affected by
the CALL UF#( ) tag. Also, motion steps recorded as standard COMMAND
POSITIONS would not be shifted by this method.

For even more flexibility of location, the DIN instruction can be used to store a
number into a Byte address to be referenced as a User Frame coordinate when the
child job plays. This will allow the child job to play in any other defined User Frame
ranging from 1 to 63 locations.

/JOB
//NAME CALL_UF#
//POS
///NPOS 0,0,0,0,0,0
//INST
///DATE 2009/05/28 16:27
///ATTR SC,RW
///GROUP1 RB1

NOP
*LABEL
DIN B000 IG#(1)
JUMP *LABEL IF B000=0
CALL JOB:FRAMES UF#(B000) IF B000 <=63
END

/JOB
//NAME FRAMES

NOP
MOVJ P000 VJ=50.00 [Original location because of PULSE data type]
MOVJ P100 VJ=50.00 PL=0
MOVL P101 V=76.5 PL=0
MOVL P102 V=76.5 PL=0 [Relative to Variable Frame number in B000 content]
MOVL P103 V=76.5 PL=0
MOVL P100 V=76.5 PL=0
MOVJ P000 VJ=50.00 [Original location because of PULSE data type]
END

DX Advanced Programming Training Manual 8-7 © MOTOMAN


Temporary Shift Instructions

NOTES

DX Advanced Programming Training Manual 8-8 © MOTOMAN


Permanent Shift Functions

9.0 PERMANENT SHIFT FUNCTIONS


The standard DX100 software supports the parallel or mirror method of permanently
shifting motion steps recorded as servo COMMAND POSITIONS. Also, options
such as Relative Job and Position Modification for Tool [PMT] can shift jobs.

9.1 Position Adjustment by Number Key Input


The POS ADJUSTMENT function is an option that allows individual Command
Positions to be modified dimensionally (without jogging the robot or using the
MODIFY key).
To modify a Command Position dimensionally, perform the following:
1. With the Job Content open, choose UTILITY in the Menu Area and POS
ADJUSTMENT in the drop down.

Figure 9-1 Position Adjustment screen


2. Cursor to STEP and verify the Step Number to be changed. Select and ENTER
the correct number.
3. Cursor to COORD, SELECT and choose the coordinate frame for the adjustment.

Figure 9-2 Adjustment Coordinate

DX Advanced Programming Training Manual 9-1 © MOTOMAN


Permanent Shift Functions

4. Cursor to the XYZ element to be changed, press SELECT and enter the
dimension for the adjustment.
5. Choose COMPLETE.

Figure 9-3 Adjustment Data

This adjustment is a permanent change to the Command Position. If UNDO has been
enabled, the ASSIST/UNDO function will allow the change to be reverted to the
original location.

9.2 Parallel Shift Job


The PARALLEL SHIFT JOB utility can permanently shift Command Positions in
a parallel manner. The term “parallel” means the points are each shifted the same
direction and distance. Motion steps programmed with position variables will not
be shifted.

If the parameter S2C652 =0, a single existing job, or portion of the job, can be
permanently shifted in a parallel manner. Only the designated steps within the single
job are shifted; points in a CALL job are not affected. The Parallel Shift screen
provides only the frame and X, Y, and Z elements.

If the parameter S2C652 = 1, the Parallel Shift is based on a Position Variable. All 6
elements of the Position Variable are considered, and child jobs can be shifted.

CAUTION! If jobs are used as sub-routines for multiple jobs, this shifting may
cause unexpected results and robot crashes.

To perform a PARALLEL SHIFT JOB with S2C652=0, complete the following


procedure:
1. From the desired JOB CONTENT, choose UTILITY.
2. Choose PARALLEL SHIFT JOB.

DX Advanced Programming Training Manual 9-2 © MOTOMAN


Permanent Shift Functions

Figure 9-4 PARALLEL SHIFT JOB Display

3. Verify that the source job shown is correct. If not, press SELECT, cursor to the
desired job; press SELECT.
4. The default step numbers for job shift is the whole job; skip to step 6 to shift
the entire job. If only a specific section is desired, set the beginning and ending
step numbers to be shifted by cursoring to STEP SECTION addresses, press
SELECT, enter step number; press ENTER.

NOTE: The PARALLEL SHIFT JOB screen allows a DESTINATION NAME to be


entered so that the original job will remain as is; the shift is done to a “copy”
instead. If a new DESTINATION NAME is not specified, then the original job
will be permanently rewritten.
5. To overwrite the original job, skip to step 7. To not overwrite, cursor to the
DESTINATION JOB, press SELECT, then either enter an entirely new job name
by canceling the existing one and use the Character Set, or change the original
job name. Press ENTER.
6. Cursor to COORDINATES; press SELECT.
7. Cursor to PULSE, BASE, ROBOT or TOOL; press SELECT. Go to Step 8.
or
Cursor to USER, press SELECT, then enter the Frame number; press ENTER.
8. If the shift amounts are already known, cursor to each individual SHIFT VALUE,
press SELECT, enter the data, then press ENTER. Go to step 12.
or

NOTE: The DX100 is able to calculate a shift amount using the TEACH SETTING
element.
Cursor to BASE POINT: TEACH SETTING, press SELECT.
The display screen will then show two points: BASE POINT (SRC) on the left, which
is a point on the original job, and BASE PT (DEST) on the right, which is the location
of the same point at the desired shifted job location.

DX Advanced Programming Training Manual 9-3 © MOTOMAN


Permanent Shift Functions

Figure 9-5 BASE POINT Source/Destination Points (XYZ)

9. Cursor to the BASE PT (SRC), move the robot tool to the original point location
and press MODIFY, ENTER.
10. Cursor to the BASE PT (DEST), jog the robot tool to the desired shifted location
and press MODIFY, ENTER.
11. Choose EXEC. The SHIFT VALUE is then computed and the screen is returned
to the Parallel Shift Job screen.
12. Choose EXEC.
13. If no Destination Job is annotated, choose YES on the “Overwrite?” screen. The
converted job will be displayed on the pendant.

NOTE: The Parallel Shift Function may cause programmed points to shift out of the
robot’s working envelope or past soft limits. These points will be displayed in
the job as “/OV”. These positions must be modified. Do not play a job until it
has been tested with the FWD key.

To perform a PARALLEL SHIFT JOB with S2C652=1, complete the following


procedure:
1. Access a Position Variable, format and enter dimensional data.

NOTE: Rotational data will only change the orientation of the tool. The job will not be
3 dimensionally shifted.
2. From the desired JOB CONTENT, choose UTILITY.
3. Choose PARALLEL SHIFT JOB.
4. Cursor to FILE # and enter the Position Variable number from Step 1.

DX Advanced Programming Training Manual 9-4 © MOTOMAN


Permanent Shift Functions

Figure 9-6 PARALLEL SHIFT JOB Display

5. Verify the Shift Job Name is correct. If not, press SELECT, cursor to the desired
job; press SELECT.
6. Choose the Mode to be Single if only the source job is to be shifted, or Related if
the source and all CALLed jobs are to be shifted.
7. Cursor to and choose the desired Coordinate.

NOTE: The coordinate in the Parallel Shift Job screen takes priority over the Position
Variable coordinate. If one is set for PULSE and the other is set for any XYZ
frame, an error will occur on execution.
8. Cursor to CONV. METHOD to specify if related jobs control groups are shifted
by the same shift value or by a different shift value. Choose COMMON or
EACH.

NOTE: COMMON All the manipulators/ bases/ stations are converted by the same
shift value. EACH Each manipulator/ base/ station is converted separately by
individual values.
9. Press EXECUTE.
No choice is provided for a Destination Job. The only choice is to overwrite the
existing job. No warning is provided that executing the Parallel Shift will overwrite
the existing job.

DX Advanced Programming Training Manual 9-5 © MOTOMAN


Permanent Shift Functions

9.3 Mirror Shift


The MIRROR SHIFT utility produces a new job that is the mirror image of the
original job. All COMMAND POSITION points will shift to the opposite sign/side
of the specified reference for Pulse/RF/UF.

Figure 9-7 Mirror Shifted Job

9.3.1 Mirror Shift on Pulse data


With the Pulse Mirror-Shift function, the mirror shift is performed by
reversing the sign (+/-) for the axes which are specified with the parameter
in advance.

The shifted axes are determined by S1CxG 065 according to the following bit pattern:

Bit Value 1 0 1 0 0 1 Default

Decimal Value 32 16 8 4 2 1 = 41 for

Axis T B R U L S S, R, & T

NOTE: The value of 41 is the default for a 6-axis robot, the value of 105 is the default
for a 7-axis robot.
In the above example, using 41 for this parameter, only the signs on the S, R, and T
axes will be reveresed during the MIRROR SHIFT, and the signs on the other three
axes L, U, and B will not.

CAUTION! MIRROR SHIFT by Pulse data will shift the COMMAND POSITION of the
points but it does not guarantee that the tool orientation will be retained.

DX Advanced Programming Training Manual 9-6 © MOTOMAN


Permanent Shift Functions

9.3.2 Mirror Shift on Robot Frame X-Z Plane


Mirror shift on RF data will mirror the job across the X-Z plane only. This shift
includes tool orientation reflected to the opposite side of the X-Z reference plane.

Figure 9-8 Mirror Shift by ROBOT FRAME X-Z Plane

NOTE: With the Robot Frame mirror shift function, conversion for a Station Axis is
performed by reversing the sign for the axes specified with the parameter
S1CxG065 MIRROR SHIFT SIGN INVERSION. Mirror shift conversion for
the Base Axis is not performed with the RF mirror shift function.
Axis data is not controlled and may cause the creation of positions that the robot
cannot reach.

CAUTION! Points shifted out of the robot’s TCP working envelope or past motor
soft limits will be displayed in the job as “/OV” and must be modified.
Do not play a job until it has been tested with the FWD key.

9.3.3 Mirror Shift on User Frame data


Mirror Shift can be based on the X-Z, X-Y, or Y-Z plane of any USER FRAME.
The desired UF#( ) must be created before the Mirror Shift is performed.

Figure 9-9 Mirror Shift by USER FRAME using X-Z Plane Target

DX Advanced Programming Training Manual 9-7 © MOTOMAN


Permanent Shift Functions

To perform a Mirror Shift on a job, complete the following procedure:


1. In TEACH, from the JOB CONTENT, choose UTILITY.
2. Choose MIRROR SHIFT.

Figure 9-10 Mirror Shift Screen

3. Cursor to SOURCE JOB, press SELECT.


4. Cursor to desired job name; press SELECT.
5. Cursor to Step Section and identify the first and last steps in the job that will be
mirrored.
6. Cursor to DESTINATION JOB; press SELECT. The source job title appears on
the Results line.
7. Completely rename the job, or change the original job name; press ENTER.
8. Cursor to DESTINATION CONTROL GROUP; press SELECT. Available
control groups will appear such as R1, R1 + S1, R1 + R2, etc. Cursor to the
desired control group; press SELECT.
9. Cursor to and choose the coordinates for the mirror shift.
10. For Robot choose the desired Target (XZ, YZ, or XY).
or
For User choose the User Coord No and the desired Target (XZ, YZ, or XY).
11. Choose EXEC.

DX Advanced Programming Training Manual 9-8 © MOTOMAN


Permanent Shift Functions

9.4 Dynamic Editing (PAM)


It is possible on the DX100 to edit steps in a program without going into Teach mode.

The PAM (Position Adjustment by Manual) function allows not only permanent
shifting of taught points and/or rotation in any XYZ Frame, but also changing the
velocity of steps, or modification of associated position levels while in the PLAY
mode while the job is running or in TEACH mode.

The changes become effective at the next NOP instruction of the selected job in
PLAY mode or immediately if in TEACH mode.
NOTE: If the step number for each desired change is unknown, activate the
addresses for all steps by choosing ENABLE STEP NO from the DISPLAY
menu in the JOB CONTENT screen.

Figure 9-11 Enable Step Number

The SETUP menu provides the Functional Condition Setting screen that sets
maximum change values for the PAM dynamic editing function.

S2C1100 = 1,0,2 (VALUE)


S3C1098 = 10000 (VALUE)
S3C1099 = 5000 (VALUE)
S3C1102 = 1000 (VALUE)

Figure 9-12 Function Condition Setting

These are stored in the corresponding parameters as noted below.


NOTE: The shift amounts are relative to a coordinate system. The coordinate system
options are BASE, ROBOT, TOOL, and USER. The default coordinate system
is stored in S3C1100 (0=Base; 1=Robot; 2=Tool; 3 to 65=User 1-63.

NOTE: The default position changing range is ± 10 mm as defined in parameter


S3C1098, posture of ± 10 deg as defined in parameter S3C1102, and the
speed changing range is ±50% as defined in parameter S3C1099. The POS
LEVEL can only be modified in steps that already have a PL set.

DX Advanced Programming Training Manual 9-9 © MOTOMAN


Permanent Shift Functions

To use the PAM function in Play mode, perform the following procedure:
1. With the job executing in PLAY/AUTO, verify the STEP number (not LINE
number) of each step to be changed and what position adjustment or speed/POS
LEVEL modifications are desired.
2. From the JOB CONTENT screen, choose UTILITY.
3. Choose PAM.

Figure 9-13 Access to PAM Function


4. Cursor to JOB; press SELECT.
5. Cursor to desired job name; press SELECT.
6. Cursor to COORDINATE SYSTEM; press SELECT.

Figure 9-14 PAM Coordinate Choices


7. Cursor to the desired coordinate system; press SELECT. If USER is chosen,
then enter the User Frame number.

Figure 9-15 PAM User Frame Number Entry

NOTE: Shift amount data will not be accepted on the PAM screen unless a STEP
number has been entered first.

DX Advanced Programming Training Manual 9-10 © MOTOMAN


Permanent Shift Functions

8. Cursor to an entry line in the STEP column; press SELECT.


9. Enter a STEP number to be edited; press ENTER.
10. Repeat steps 8 and 9 for each STEP number to be edited.

NOTE: Up to 10 steps can be modified at a time.


11. Move the cursor to the direction, rotation, V (%), or PL column ; press SELECT.
12. Enter the appropriate data; press ENTER

NOTE: EDIT allows access to LINE CLEAR (clears all data for that step), LINE COPY
(copies all data for that step), LINE PASTE (pastes all data copied from
another step).

Figure 9-16 PAM Edit Menu

13. Repeat Steps 11 and 12 for each data change for up to 10 steps maximum.
14. When all changes have been entered, choose COMPLETE.
15. Choose “YES” on the “Correct?” screen.

Figure 9-17 Accept Completion

NOTE: In PLAY mode, the permanent changes will occur the next time the cursor
is at NOP during playback; in TEACH mode, the permanent changes to the
selected job are done immediately. Inserting additional NOP instructions
throughout the job will allow quicker reaction to the PAM execution.

DX Advanced Programming Training Manual 9-11 © MOTOMAN


Permanent Shift Functions

If the changes made are undesirable, the UNDO becomes available in TEACH mode
or if stopped in PLAY mode. The UNDO feature is in the EDIT menu of the PAM
function screen, as shown in the figure.

To UNDO the previous PAM execution, perform the following:


1. In the PAM screen EDIT menu, choose UNDO.

Figure 9-18 PAM Undo Feature

2. Choose YES on the “Undo?” dialog box.

Figure 9-19 UNDO Accept

DX Advanced Programming Training Manual 9-12 © MOTOMAN


Permanent Shift Functions

9.5 Relative Job


The RELATIVE JOB software option converts COMMAND POSITION data from
Standard Type (PULSE) to Relative Type (XYZ) in BF, RF, or UF coordinates. It
also converts jobs from Relative Type (XYZ) to Standard Type (PULSE).

For off-line programming, the User Frame XYZ data type allows all motion step
position data to be entered in a format of millimeters/degrees with respect to the user-
defined zero (ORG) location.

Other convenient uses of REL JOB are for 3-D shifting, or for alignment of tool
(TCP) change/deformation, or for using jobs taught on other robots.
NOTE: RELATIVE JOB software can only convert COMMAND POSITION steps.
It does not convert motion steps programmed with Position Variable data.

To perform the Relative Job conversion, complete the following steps:


1. From the desired JOB CONTENT screen, choose UTILITY.
2. Choose RELATIVE JOB.

Figure 9-20 Relative Job Conversion

3. With the cursor on SOURCE JOB, press SELECT.


4. Cursor to the desired job name; press SELECT.

Figure 9-21 Standard to Relative Conversion

5. The CONVERSION METHOD will read “STANDARD  RELATIVE”.

DX Advanced Programming Training Manual 9-13 © MOTOMAN


Permanent Shift Functions

6. Cursor to COORDINATE; press SELECT.

Figure 9-22 Relative Coordinate Select


7. Cursor to the desired coordinate; press SELECT.
8. Enter “>User_coord._no.=” of original location if USER was selected; ENTER.

NOTE: If a DESTINATION NAME is not chosen, the system will ask if the original job
may be overwritten. To overwrite the original job, skip to step 10.
9. Cursor to DESTINATION JOB, press SELECT and enter a name; press ENTER.

Figure 9-23 Destination Job

10. Choose EXEC.


Command Positions are “converted” to XYZ format based on coordinate designated.

Figure 9-24 Command Position Screen, XYZ Format

NOTE: The parameter S2C332 specifies how to operate a relative job. A method to
convert a relative job into a standard job (pulse), and a conversion method to
calculate the aimed position (pulse position) when a relative job is operated
can be specified as follows:
0: Previous step with priority (B-axis moving distance minimized)
1: Form with priority
2: Previous step with priority (R-axis moving distance minimized)

DX Advanced Programming Training Manual 9-14 © MOTOMAN


Permanent Shift Functions

9.5.1 Relative Job Conversion for Off-Line Editing


When viewing saved jobs in a text editor software, editing position data in Pulse
Counts is difficult. Perhaps only the first and last command points in the job (C0000
& C0007) would be easy to “touch up”. If it was intended that the robot be at a
known pulse count position (eg 0,0,0,0,0,0), then that data could be edited. All the
other points would be difficult to calculate.

/JOB
//NAME BEAD-ON-PLATE
//POS
///NPOS 6,0,0,0,0,0
///TOOL 0
///POSTYPE PULSE
///PULSE
C00000=-1,-4538,-14494,1,5795,4,-1
C00001=20395,-1242,-40427,-2,23403,-4999,96
C00002=20395,375,-45434,-1,27424,-5000,97
C00003=-18952,-76,-45912,1,27425,4633,-12
C00004=-18952,-1104,-43016,1,25041,4633,-12
C00005=-1,-4538,-14494,1,5795,4,-1
//INST
///DATE 2009/04/24 04:27
///ATTR SC,RW
///GROUP1 RB1
NOP
MOVJ C00000 VJ=0.78
MOVJ C00001 VJ=100.00
MOVJ C00002 VJ=25.00
ARCON ASF#(1)
WVON WEV#(1)
MOVL C00003 V=13.3
WVOF
ARCOF AEF#(1)
MOVJ C00004 VJ=25.00
MOVJ C00005 VJ=100.00
END
Figure 9-25 Job Example with PULSE Command Position Steps

DX Advanced Programming Training Manual 9-15 © MOTOMAN


Permanent Shift Functions

However, if the job is converted to a UF data type, then all positions can be
expressed in X,Y,Z,Rx,Ry,Rz data as the distance/orientation from the frame’s ORG.
The results of a conversion to USER data type are as shown in the example below:

/JOB
//NAME BEAD-ON-PLATE-UF1
//POS
///NPOS 6,0,0,0,0,0
///USER 1
///TOOL 0
///POSTYPE USER
///RECTAN
///RCONF 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
C00000=-112.151,563.339,315.209,179.8412,44.6295,39.8937,-0.0001
C00001=-241.714,720.303,67.214,179.8418,44.6299,39.8945,0.0170
C00002=-241.370,720.456,11.771,179.8425,44.6301,39.8932,0.0179
C00003=10.787,419.906,12.540,179.8428,44.6292,39.8938,-0.0021
C00004=10.589,419.820,45.260,179.8427,44.6286,39.8937,-0.0021
C00005=-112.151,563.339,315.209,179.8412,44.6295,39.8937,-0.0001
//INST
///DATE 2009/04/24 04:28
///ATTR SC,RW,RJ
////FRAME USER 1
///GROUP1 RB1
NOP
MOVJ C00000 VJ=0.78
MOVJ C00001 VJ=100.00
MOVJ C00002 VJ=25.00
ARCON ASF#(1)
WVON WEV#(1)
MOVL C00003 V=13.3
WVOF
ARCOF AEF#(1)
MOVJ C00004 VJ=25.00
MOVJ C00005 VJ=100.00
END

Figure 9-26 Job Example with USER “RECTAN” (XYZ) Command Position Steps

Once the position steps are in XYZ (mm) and Rx,Ry,Rz (deg.), the command
positions can easily be “touched-up” to be the exact distances desired for the
dimensions of the part, as well as the angle of tool orientation.

Relative job 3-D shift capability can also be used dynamically. Capturing the robot’s
position into position variables with the GETS instruction and using the Arithmetic
instruction MFRAME to recreate the User Frame allows the program to be shifted for
a different/deviated part position on every cycle.

DX Advanced Programming Training Manual 9-16 © MOTOMAN


Permanent Shift Functions

9.5.2 Relative Job Conversion for 3-D Shift


For 3-D shifting, a STANDARD JOB (Pulse type) is converted to RELATIVE JOB
(UF# XYZ type). The job can be relocated three-dimensionally to any position and
orientation within the robot envelope simply by changing the User Frame No. for the
TEACH COORDINATE in the JOB HEADER. This function is extremely useful for
duplicating jobs in multiple work piece applications and recreating jobs due to work
piece relocation.

Figure 9-27 Job Header for Relative on User

In order to use Relative Job for a 3-D shift, a User Frame for the job’s original
location must first be taught. User frames for the shifted position can be taught or
modified as required.
NOTE: RELATIVE JOB software can only convert motion steps that were servo
recorded in the job. It cannot convert position data of steps that use Position
Variable moves. Therefore, it may be advantageous to intentionally program
the first/last position in the job as a MOVJ P000 so that it is not converted
and thus not “shifted” each time a different User Frame is used.

NOTE: For accurate shift results, the placement of the ORG, XX, and XY positions for
the shifted location should be a direct correlation from their relationship within
the original location.

To shift the job to the new USER FRAME location, perform the following :
1. In the JOB CONTENT screen, choose DISPLAY.
2. Choose JOB HEADER.
3. Cursor down until TEACH COORD is highlighted on the JOB HEADER screen;
press SELECT.
4. Enter the new desired “>User_coord._no.=” for the shifted location; press
ENTER.
The job is now shifted to the new User Frame location, but is still in XYZ data type.

DX Advanced Programming Training Manual 9-17 © MOTOMAN


Permanent Shift Functions

9.5.3 XYZ [ROBOT] Relative Job for Edited TCP Data


The command positions in a STANDARD JOB are based on motor/encoder position
rather than TCP location; it uses the current TCP data for path interpolation only.
When changing TCP data, the conversion to Relative allows the command position to
be related to the TCP location/posture within an XYZ frame.
To adjust for modified TCP data, perform the following:
1. Convert the STANDARD job to RELATIVE.
2. Perform TCP calibration.
3. Test using INTERLOCK/TEST START.
NOTE: If results are less than satisfactory, conversion might be reattempted on a
different frame or using a different setting for S2C332.
4. Convert the job from RELATIVE to STANDARD.

9.5.4 Conversion from RELATIVE to STANDARD


Preferences or results may dictate that the job be converted to Standard type.
To convert the shifted job back to PULSE data type perform the following:
1. In the JOB CONTENT screen, choose UTILITY; RELATIVE JOB.
2. Cursor on the SOURCE JOB; press SELECT.
3. Move the cursor to the desired shifted job name; press SELECT.

Figure 9-28 Relative To Standard Conversion

NOTE: If a DESTINATION NAME is not chosen, the system will ask if the original job
may be overwritten. To overwrite the original job, skip to step “5”.
4. Cursor to DESTINATION JOB; press SELECT. Enter a new name; ENTER.
5. Cursor down to EXEC; press SELECT.

NOTE: Moves that cannot be accommodated by the shift will be displayed in the
steps of the job as “/OV.” These moves must be modified.

DX Advanced Programming Training Manual 9-18 © MOTOMAN


Permanent Shift Functions

9.6 Position Modification for Tool (PMT)


The Position Modification for Tool (PMT) software option can be used to shift
COMMAND POSITION data easily and accurately to compensate for deformity
whenever a tool is bent or thrown out of alignment after a collision.

It can also be used when an old tool must be replaced with a completely different end-
effector.

The PMT software function calculates the difference between two sets of TCP data
and applies the difference to the Command Positions,rewriting either all jobs in the
controller or just an individual job with or without including its child jobs.
NOTE: Always backup all job files and tool data before performing the PMT function.

9.6.1 Saving ORIGINAL TCP Data

NOTE: Original Tool Data must be saved to the PMT Buffer before the tool data is
changed to the deformed tool.
In the PMT function, the old tool data is called the ORIGINAL TOOL, and the new
tool data is called the ORIENTATION TOOL.
NOTE: Any one of the existing 64 tool files, TOOL NO. 00-63, can be stored as either
the original tool or orientation tool.

To store the ORIGINAL tool data to the PMT buffer, complete the following
steps:
1. From the JOB CONTENT, choose UTILITY.
2. Choose PMT.

Figure 9-29 PMT Tool No. BACKUP Display

3. Cursor to the desired TOOL No.; press SELECT.


4. Answer YES to the “Backup Data?”

DX Advanced Programming Training Manual 9-19 © MOTOMAN


Permanent Shift Functions

Figure 9-30 PMT Tool Data Display


The ORIGINAL TOOL data has now been saved in the PMT Buffer.
ORIENTATION TOOL data needs to be input. This can be done as follows:

Manually in the Tool Data screen


Tool Calibration
MotoCal
Orientation Tool screen

NOTE: The tool data saved to the PMT buffer is retained until the controller is turned
off. Do not turn off the DX100 until the PMT function has been completed.

9.6.2 Shifting Points with PMT Software


When the Orientation Tool data (new data for the deformed tool) has been stored in
the original Tool Data file, the software can be used for shifting Command Positions.
To shift Command Positions using PMT, perform the following:
1. From the JOB CONTENT, choose UTILITY.
2. Choose PMT.
3. Cursor to the desired TOOL No.; press SELECT.
4. Answer NO to the “Backup Data?”

DX Advanced Programming Training Manual 9-20 © MOTOMAN


Permanent Shift Functions

Figure 9-31 PMT Tool No. BACKUP Display

5. Verify the Tool Data of the ORIGINAL and ORIENTATION tools. Modify the
ORIENTATION Tool data if required.
6. Choose EXECUTE.

Figure 9-32 Orientation and Original Tool data

7. Cursor to CONVERSION MODE; press SELECT.

Figure 9-33 PMT Job Conversion

DX Advanced Programming Training Manual 9-21 © MOTOMAN


Permanent Shift Functions

Figure 9-34 PMT Conversion Mode

8. Cursor to one of the following; press SELECT:


SINGLE: Use this to perform PMT on a single job.
or
RELATED: Use this to perform PMT on a “parent” job and all related “child”
jobs.
or
ALL: Use this to perform PMT on all jobs in DX100. (If ALL, skip to step 10)
9. Cursor to JOB NAME, press SELECT, cursor to the name of the job to be
converted; press SELECT.

Figure 9-35 PMT Job Select

10. Cursor to EXEC; press SELECT to rewrite the selected job(s) with the PMT
Utility.

NOTE: After conversion, be sure to confirm the path by using the FWD and BWD
keys.

NOTE: Any steps that are out of the robot envelope will show as “/OV” instead of the
motion type. The “/OV” will disappear after the position is corrected.

CAUTION! The indicated Tool Number now has the “new” Tool Data. Any jobs
programmed with this Tool but not shifted through PMT will be at the
original Command Position, but will be using the new Tool data.

DX Advanced Programming Training Manual 9-22 © MOTOMAN


Interference Zones

10.0 INTERFERENCE ZONES


The DX100 controller supports up to 64 interference zones for monitoring the Robot
TCP for R1 ~ R8, or the positions of Base tracks B1 ~ B8 or Station Axes S1 ~ S24.

The METHOD is based on the Control Group as follows:


• CUBIC INTERFERENCE
(Monitors XYZ of TCP in ROBOT, BASE, or USER FRAME data)
• AXIS INTERFERENCE
(Monitors External/Base Axis position in PULSE data)
These zones are internally tied to Specific Outputs SOUT#057 through SOUT#120.
The signal turns ON when the monitored TCP/AXIS is confirmed to be inside the
zone by Feedback Position, or when entering the zone by Command Position.

The CHECK MEASURE may be determined by use as follows:


• FEEDBACK POSITION Confirmed to be inside the zone.
(SOUT turns ON after encoder feedback confirms entry into zone.)
This setting should be used when the monitored TCP/Axis must be in
that zone prior to allowing other operation(s)/application(s) to occur.
• COMMAND POSITION Anticipates entering the zone.
(SOUT turns ON as interpolated Command Position of the monitored
TCP/Axis defines entry into the zone.) This setting should be used to
stop/prohibit movement before entering the area.

CAUTION! The “Sequence Wait” function is designed to decelerate and stop


movement after the SOUT signal turns ON. When zones are being used
for Interference Check, set the dimensions to allow for deceleration.
ge
Ed

V = 1500mm/s approx. 300mm


e
ub

(Max.)
C

V = 1000mm/s approx. 160mm


V = 30mm/s approx. 3 to 4 mm
Speed

V = 20mm/s approx. 2mm

Depth of Intrusion

Figure 10-1 Deceleration at Zone Edge

NOTE: Defining a zone does not activate Interference Check. The DX100 controller’s
SYSTEM LADDER may already include Cubes for “Sequence Wait” based on
application/setup. The USER LADDER may be modified for using additional
CUBE/AXIS zones with their corresponding Specific Outputs.

DX Advanced Programming Training Manual 10-1 © MOTOMAN


Interference Zones

10.1 Cube Definition Methods


The TEACHING METHOD of defining a Cubic Interference Zone for the Robot
TCP is not only based on the programmer’s preference, but also on the purpose for its
use and/or the robot cell layout. In addition, the INTR57 ~ INTR64 are dedicated, if
applicable, to R8 ~ R1, such that the WORK HOME POS dialog screen can be used.

The TEACHING METHOD selections for CUBIC INTERFERENCE are:


• CENTER POSITION (Servo captured and manual entry XYZ)
• MAX/MIN (Servo capture or edit via numeric keypad)

10.1.1 Center Position Teaching Method


Defining a cube by the CENTER POSITION method is convenient for locations such
as a safe start/end position.

Z-axis
Y X

Z X-axis
Center
point

Y-axis

Figure 10-2 TEACHING METHOD: CENTER POSITION

NOTE: If the desired center point is a location already stored in a Position Variable or
Command Position within a job, then FWD to this location before accessing
the cube setting menu under ROBOT INTERFERENCE.

Figure 10-3 ROBOT INTERFERENCE (Management Mode only)

DX Advanced Programming Training Manual 10-2 © MOTOMAN


Interference Zones

To define a cube using CENTER POS method, complete the following steps:
1. From MAIN MENU choose ROBOT.
2. Choose INTERFERENCE.
3. Use the PAGE key to display the desired cube number.
or
Choose DIRECT PAGE, enter the number; press ENTER.
4. Cursor to the METHOD; press SELECT, as required, to set to CUBIC
INTERFERENCE. (Answer YES to “Clear data?” if previous data exists.)

Figure 10-4 Clear Data to Change METHOD: CUBE/AXIS

5. Cursor to the CONTROL GROUP; press SELECT, choose R1 or other.


6. Cursor to the CHECK MEASURE; press SELECT to toggle between the
Command Position / Feedback Position setting choices.
7. Cursor to the REF COORDINATE; press SELECT to choose BASE,
ROBOT,
or
select USER, enter the UF#; press ENTER.
8. Cursor to the TEACHING METHOD; press SELECT to display CENTER POS.
9. Enter a comment to describe the intent of the area, if desired.
10. Cursor to the <LENGTH> dimension to be modified; press SELECT.Enter the
numeric value in mm for the desired cube dimension; press ENTER.
Complete this step for each edge (X, Y, and Z) dimension.
11. Jog the TCP to the desired center (if not already there); with servos ON, press
MODIFY, ENTER.

NOTE: The pendant will display the Maximum and Minimum locations of the cube.

DX Advanced Programming Training Manual 10-3 © MOTOMAN


Interference Zones

10.1.2 Max/Min Teaching Method


Defining a cube with the MAX/MIN method requires jogging the TCP to the desired
locations for the Maximum and Minimum XYZ “corners” of the cube. They are
individually captured with servo power ON.

Z-axis
Maximum
value

X-axis

Minimum
value
Y-axis

Figure 10-5 TEACHING METHOD: MAX/MIN

To define a cube using the MAX/MIN method, complete the following steps:
1. From MAIN MENU, choose ROBOT.
2. Choose INTERFERENCE.
3. Use the PAGE key to display the desired cube number.
or
Choose DIRECT PAGE, enter the number; press ENTER.
4. Cursor to METHOD; press SELECT, as required, to set to CUBIC
INTERFERENCE. (Answer YES to “Clear data?” if previous data exists.)
5. Cursor to the CONTROL GROUP; press SELECT, then choose R1 or other.
6. Cursor to the CHECK MEASURE; press SELECT to toggle between the
Command Position / Feedback Position setting choices.
7. Cursor to the REF COORDINATE; press SELECT to choose BASE, ROBOT,
or
select USER, enter the UF#; press ENTER.
8. Cursor to the TEACHING METHOD, press SELECT to display MAX/MIN.
9. Press MODIFY; the cursor will highlight MAX position.
10. Jog TCP to the desired Maximum XYZ; with servos ON, press ENTER.
11. Cursor to MIN position column. Press MODIFY.
12. Jog TCP to the desired Minimum XYZ position; with servos ON, press ENTER.

NOTE: The Cubes 1 through 56 are always stored by parameters with MAX/MIN data
format in microns, regardless of teaching method. The Cubes 57 through 64
are either based on their cube parameters, or if the Work Home method of
teaching is used, then (R8~R1) center is the robot’s [OPE ORIGIN POS] and
the edge length is based on Parameter S3C1097.

DX Advanced Programming Training Manual 10-4 © MOTOMAN


Interference Zones

10.1.3 Work Home [OPE ORIGIN POS] Method (Cubes 57-64 only)
The DX100 controller acknowledges up to eight robot Work Home Position cubes
(Cubes 57-64), but only if the corresponding robot exists in the system. Otherwise,
each available zone may be defined by other methods for another purpose.

Table 10-1 Work Home Cubes


Robot Cube
R8 INTR57
R7 INTR58
R6 INTR59
R5 INTR60
R4 INTR61
R3 INTR62
R2 INTR63
R1 INTR64

Each center is automatically defined by the robot’s WORK HOME POSITION.

Figure 10-6 WORK HOME POSITION

All cube edges default to a parameter formatted in microns such that the zone is truly
a cube with all sides the same length. (Parameter S3C1097)

R1 Work Home Position

Cube 64

Figure 10-7 Work Home Position Example for R1 (INTR64)

DX Advanced Programming Training Manual 10-5 © MOTOMAN


Interference Zones

CAUTION! If necessary, the Cubes 57~64 for R8~R1 may be defined using any of
the other methods whenever the XYZ lengths must differ. However, if
the Work Home Position method is ever used to modify the cube, then
not only does that change the Cube’s center, but it also changes its
edge lengths back to the default S3C1097 parameter defined dimension.

Figure 10-8 Work Home Cube Edge Length Parameter S3C1097

CAUTION! The WORK HOME POSITION for each robot is also associated with the
Specific Inputs for Operation Origin Return R1~R8 to go to the center of
Cubes 64~57, respectively. Modifying the WORK HOME POS will change
the location for [OPE ORIGIN RET] function as well.

Figure 10-9 Specific Inputs for Return to WORK HOME (Center of Cubes 64~57)

NOTE: If a cube within 57~64 is being used for a purpose other than the robot’s
WORK HOME POS, then its OPE ORIGIN RET function cannot be used.

DX Advanced Programming Training Manual 10-6 © MOTOMAN


Interference Zones

10.2 Defining External/Base Axis Interference Zone


An interference area can be used to monitor MAX/MIN Pulse data for an External
or Base axis by choosing the AXIS INTERFERENCE method. In this manner, the
interference zone is the range of operation between the maximum and minimum pulse
counts for the chosen axis.

Max value 0 Min value


positive side (+) negative side (-)
ON
OF F

Figure 10-10 Example AXIS INTERFERENCE

To define an External/Base Axis Interference zone, complete the following:


1. From MAIN MENU, choose ROBOT.
2. Choose INTERFERENCE.
3. Use the PAGE key to display the desired cube number.
or
Choose DIRECT PAGE, enter the number; press ENTER.
4. Cursor to METHOD. Press SELECT; choose AXIS INTERFERENCE.
(Answer YES to “CLEAR DATA?” if previous data exists.)
5. Cursor to CONTROL GROUP. Press SELECT, then choose S1/B1 or other.
6. Cursor to CHECK MEASURE. Press SELECT to choose either COMMAND
POSITION or FEEDBACK POSITION.
7. Press MODIFY; the cursor will highlight MAX position.
8. Jog the External/Base axis to the desired maximum position; with servos ON,
press ENTER.
9. Cursor to MIN position column; press MODIFY.
10. Jog the External/Base axis to the desired minimum position; with servos ON,
press ENTER.

NOTE: The Maximum and Minimum range values may also be entered by using the
numeric keypad. The maximum must be greater than the minimum setting.

DX Advanced Programming Training Manual 10-7 © MOTOMAN


Interference Zones

10.3 Interference Definition by Numeric Keypad


Both CUBE and AXIS interference zones can be defined and/or modified using the
numeric keypad MAX/MIN method. This is especially helpful when the area needs
to be larger than what the robot TCP can reach for a MAX or MIN setting.

When the REF COORDINATE is USER FRAME as shown in the figure below, this
method is convenient because the data is user friendly.

Figure 10-11 Example REF COORDINATE UF#(2)

To enter Cube/Axis data or make modifications using the numeric keypad,


complete the following steps (servo power is not required):
1. From MAIN MENU, choose ROBOT.
2. Choose INTERFERENCE and PAGE to the desired Interference Zone.
3. Cursor to the Cube’s X, Y, or Z MIN/MAX (or the Axis MAX/MIN) to be
modified and press SELECT.
4. Enter the desired data for TCP in mm (or Axis in Pulse counts); press ENTER.
Repeat Steps 3 and 4 for each MAX/MIN to be modified.

The following figure shows the before and after for modifying all six cube elements.

Figure 10-12 CUBIC INTERFERENCE Edit Results

DX Advanced Programming Training Manual 10-8 © MOTOMAN


Interference Zones

10.4 Programming WAIT Instruction for SOUT#( )


In the following job samples, the WAIT instruction prevents moving to the step in
Line: 0002 if the TCP is not within the specific cube. This would mean that for any
reason (such as restart after editing a point), if the robot is not already at or near the
first/last position in the main program, then the controller will WAIT indefinitely.

Figure 10-13 Example WAIT SOUT#( ) with INTR1 or INTR64

To program the WAIT instruction for SOUT#( ) status, complete the following:
1. Display the JOB CONTENT in TEACH with cursor on the Address Side.
2. Press INFORM LIST and choose IN/OUT.
3. Choose WAIT.
4. Press SELECT to access the DETAIL EDIT screen.
5. Cursor to WAIT TARGET; press SELECT.

Figure 10-14 Detail Edit of WAIT for SOUT#( ) Target Selection

6. Cursor to and Select SOUT#( ); cursor right to 1; press SELECT.


7. Enter SOUT# desired (57~120); press ENTER.
8. Cursor to CONDITION ; press SELECT. Cursor to CONSTANT; press
SELECT. Cursor to the status, and press SELECT to toggle ON/OFF selection.

DX Advanced Programming Training Manual 10-9 © MOTOMAN


Interference Zones

10.5 Monitoring Specific Outputs for Interference


To display CUBE/AXIS Specific Output status, complete the following steps:
1. From MAIN MENU, choose IN/OUT.
2. Choose SPECIFIC OUTPUT.
3. Press SELECT, enter the number (SOUT #0057- #0120); press ENTER,
or
use the PAGE key to advance to the display page with the desired INTR zone.
NOTE: When the monitored TCP/Axis is inside the area, the zone’s corresponding
Specific Output will turn ON.

Figure 10-15 Example Monitoring Specific Output for INTR3

10.6 Robot S-Axis LEFT/RIGHT CHECK Function


The S-Axis LEFT/RIGHT CHECK function is intended to signal a Specific Output
when it is in its Left or Right area as defined by the user. This check function is only
for the current S-Axis location, regardless of other axes or orientation of the tool.

Figure 10-16 Specific Output Signals for R1 S-Axis LEFT/RIGHT CHECK

DX Advanced Programming Training Manual 10-10 © MOTOMAN


Interference Zones

The Left zone extends from the set “border” all the way to the S-axis maximum
operation limit. Similarly, the Right zone extends from its “border” setting to the
S-axis minimum operation limit. There will be a non-signaled “dead zone” between
these areas as shown in the figure below.
(+) side (-) side

In left area In right are a

Figure 10-17 Example for S-Axis LEFT/RIGHT CHECK Zones

NOTE: The Left border does not have to be a positive number, nor does the Right
border have to be negative; the only requirement is that the Left setting be
greater than the Right. For a setup with no gap, the Left/Right borders must
differ by at least one pulse count.
The activation parameter, S2C002, as well as the pairs of S3C parameters for L/R of
each robot are set by the user as desired.

10.6.1 Left/Right Parameters


Each Robot has a pair of parameters for LEFT and RIGHT. The screen in the figure
below shows S3C048 and S3C049 for R1 through S3C062 and S3C063 for R8.

Figure 10-18 Example S-Axis LEFT/RIGHT Zone Pulse Data for R1

To create a Left/Right setup with an equal split such that there is essentially no gap
(other than the 0 Pulse position of the S-Axis motor), the bordering parameters would
be set to +1 Pulse count for the Left and -1 Pulse count for the Right.

DX Advanced Programming Training Manual 10-11 © MOTOMAN


Interference Zones

10.6.2 S-Axis LEFT/RIGHT “WITH CHECK” Parameter S2C002


The parameter S2C002 = (1 ~ 255) specifies the combination of robots R1 ~ R8 to
activate “WITH CHECK” as desired.

Table 10-2 S2C002 “WITH CHECK” Set


Robot R8 R7 R6 R5 R4 R3 R2 R1
Binary 128 64 32 16 8 4 2 1

For example, if S2C002=3, then “WITH CHECK” is active for both R1 and R2.

NOTE: By default, S2C002 = 0 such that no S-Axis L/R Check is active for R1 ~ R8.

DX Advanced Programming Training Manual 10-12 © MOTOMAN


User Messages & Alarms

11.0 MESSAGES & ALARMS


The DX100 controller supports a job instruction, MSG, to display a message on the
Pendant’s Message Line until replaced by another MSG instruction.

The controller also supports 64 User Messages and 64 User Alarms that are displayed
or activated based on the DX100 Ladder Program setup.

11.1 INFORM Message Instruction [MSG]


The CONTROL menu’s MSG instruction displays a message of up to 32 characters
on the Pendant’s Message Line upon execution.

Multiple MSG type messages cannot be displayed; executing another MSG


instruction overwrites the previous.

Figure 11-1 MSG Instruction in Job Content & Message Line Display

NOTE: The MSG content can be constructed from a constant “STRING” on the
instruction line, or it can be referenced from a String Variable address.
The current MSG remains permanently in the Message Line until overwritten by
another MSG instruction.

If other type messages are being display concurrently, the MSG takes priority on the
message list over standard prompts, (such as “Turn servo power on” or “E-Stop...”),
but not over Ladder Program USER MESSAGES or SYSTEM MESSAGES.

The MSG stays actively displayed after job execution stops, and even resumes its
display after the DX100 has had the power cycled OFF/ON.

NOTE: The only way to remove any MSG display is to execute another MSG
instruction with no characters by either a constant, “ ” or a referenced
S-Variable address with no content.

DX Advanced Programming Training Manual 11-1 © MOTOMAN


User Messages & Alarms

To program the MSG instruction, perform the following:


1. With the cursor on the Address Side of the Job Content, open the Inform List.
2. Choose CONTROL and MSG.

Figure 11-2 Inform List MSG

3. SELECT its Detail Edit screen, use the chevrons to choose either...
STRING for a message exclusive to the instruction,
or
S to reference a String Variable address or S[ ] for an array address.

Figure 11-3 MSG Detail Edit

4. If STRING was chosen, cursor to the characters in quotation marks, and press
SELECT. On the Character screen, cancel existing characters, enter desired
message of up to 32 characters, and press ENTER.
or
If S/S[ ] was chosen, cursor and SELECT the current String Variable address,
enter the desired address; press ENTER.

DX Advanced Programming Training Manual 11-2 © MOTOMAN


User Messages & Alarms

~OR~
Figure 11-4 “STRING” MSG or S-Variable MSG

5. Insert the MESSAGE instruction into the job content.

NOTE: The current MSG display in the Message Line will remain until it is overwritten
by another MSG instruction. To remove the MSG display, overwrite with
another MSG instruction using no characters.

Figure 11-5 MSG Instruction with No Content

DX Advanced Programming Training Manual 11-3 © MOTOMAN


User Messages & Alarms

11.2 User Messages


The DX100 controller’s LADDER PROGRAM monitors all I/O operation. Based on
USER LADDER programming, up to 64 User Messages can be active for selection to
be the one and only one that is currently displayed on the Pendant’s Message Line.
To register a USER MESSAGE, complete the following steps:
1. From the MAIN MENU, choose IN/OUT.
2. Choose I/O MESSAGE.

Figure 11-6 I/O Message selection

3. PAGE, if necessary, to toggle from SYSTEM to USER, then cursor to the


MESSAGE number desired; press SELECT.

Figure 11-7 I/O Message List

4. Create the message by selecting up to 32 characters from the character screens.


5. Press ENTER.

NOTE: All System Messages and System Alarms are defined in the SYSTEM
LADDER based on application.

DX Advanced Programming Training Manual 11-4 © MOTOMAN


User Messages & Alarms

11.3 User Alarms


The USER LADDER can be programmed to accommodate up to 64 USER ALARMS
that when triggered will stop execution of a job, if running, but servos will remain on.
They are similar in operation to a Minor Alarm in that they must be RESET.
To register a USER ALARM, complete the following steps:
1. From the MAIN MENU, choose IN/OUT.
2. Choose I/O ALARM.

Figure 11-8 I/O Alarm selection


3. PAGE, if necessary, to toggle from SYSTEM to USER, then cursor to the
ALARM number desired; press SELECT.

FIGURE 11-9 I/O Alarm List


4. Create the NAME message by selecting up to 32 characters.
5. Press ENTER.

NOTE: The USER ALARM operation will stop execution of a job; servos remain on.
USER ALARMS must be RESET.

DX Advanced Programming Training Manual 11-5 © MOTOMAN


User Messages & Alarms

11.4 Displaying the Ladder Monitor


To display the Ladder in a graphical format and activate the monitor, complete
the following keystrokes:
1. From MAIN MENU, choose IN/OUT.
2. Choose LADDER EDITOR.
3. To monitor current activity of the ladder, touch the MONITORING button.

Figure 11-10 Ladder Monitor

CAUTION! Do not attempt to edit the LADDER PROGRAM without proper training.

DX Advanced Programming Training Manual 11-6 © MOTOMAN


Security

A.0 SECURITY SYSTEM


A.1 Security Modes
The DX100 Controller is protected by a security system that allows operation,
editing, and modification of settings according to three SECURITY modes. An icon
in the Status Area indicates the current security level.

: Operation Mode

: Edit Mode

: Management Mode

Figure A-1 Security Level Icons

OPERATION MODE is the lowest access level and never requires a User ID number.
EDITING and MANAGEMENT are each protected by a separate 4 to 8-digit User ID
number. The preset factory User ID/password for the EDITING MODE is 00000000
(8 zeros), and MANAGEMENT MODE is 99999999 (8 nines).

NOTE: No password is necessary to change to a lower level of security.

To change the Security level setting to EDITING or MANAGEMENT, complete


the following steps:

1. From MAIN MENU, choose SYSTEM INFO.


2. Choose SECURITY.
3. With the cursor on the MODE, press SELECT, cursor to the desired level
(EDITING or MANAGEMENT), and press SELECT.
4. Enter the appropriate password using the number keypad; press ENTER.

DX Advanced Programming Training Manual A-1 © MOTOMAN


Security

A.2 Password Protection Option


The DX100 Password option is capable of storing 100 “case-sensitive” user names
and passwords with individualized security levels. Using password protection allows
only one user at a time to be Logged-On to the controller.

A time-out value can also be entered to automatically Log-Off the user into Operation
Mode if a key is not pressed within a defined amount of time.

To Log-On, perform the following keystrokes:


1. Choose SYSTEM INFO and LOGON.
2. With the cursor on USER NAME entry box, press SELECT.
3. Enter the User’s defined name.

NOTE: User Names are case sensitive.


4. Cursor to PASSWORD entry box, press SELECT.
5. Using the number keypad, enter the user’s PASSWORD, press ENTER.
The user is now logged ON.

Figure A-2 The LOGON Screen for Entering User Name and Password

To Log-Off, perform the following keystrokes:


1. Choose SYSTEM INFO and LOGOFF.
2. Verify the USER NAME, then choose EXECUTE.

NOTE: Regarding Password LOGON, there are not only LOAD restrictions, but also
there are SAVE restrictions based on individual LOGON capability. (Items
such as MACRO JOB files may even be protected from SAVE.)

DX Advanced Programming Training Manual A-2 © MOTOMAN


Save and Load

B.0 SAVE AND LOAD


The DX100 Robot Controller information should be saved on a routine basis.

The backup information can be saved as follows:


a) ASCII file format that can be read/edited in any text editor software.
b) HEX file, *.hex format, compacting many files, but cannot be viewed
and therefore not edited.
c) BINARY file, *.bin format, with the same characteristics as item (b).

Loading the file(s) is dependant on the security level. Information accessible in


Editing can be loaded by Editing or Management; information accessible exclusively
through Management can only be loaded in Management Mode.

B.1 External Memory


From the Main Menu, selecting the External Memory offers the following
Sub-Menu selections:
• LOAD loads information from external memory to controller
• SAVE saves information from controller to external memory
• VERIFY verifies information on the external memory
• DELETE deletes information from the external memory
• DEVICE chooses which external memory device to use
• FOLDER chooses/creates/deletes folders on the external memory

B.1.1 LOAD
All information types can be loaded when the DX100 is in the TEACH mode.
In PLAY mode, it is possible to load some types of information while operating,
and other certain information only when not in operation. The authority to LOAD
information is based on the same Security Level, EDITING/MANAGEMENT,
required for accessing and editing the data.

NOTE: Regarding the DX100 LOGON passwords, LOAD capability is based on the
setup for each individual.

DX Advanced Programming Training Manual Page B-1 © MOTOMAN


Save and Load

Figure B-1 External Memory Load

When loading jobs, those on the external memory that are not currently on the Job
List are marked with an asterisk.

Figure B-2 Job not in controller

B.1.2 SAVE
Information can be saved in any Security Mode while in TEACH or PLAY.
Most data backup can even be performed during PLAY operation.

Figure B-3 External Memory Save

Parameter settings define the overwriting onto the external memory device. If the
parameter RS059 is set for “no overwrite” (0), then the file must first be deleted
before its replacement can be saved.

NOTE: Any information can be saved in OPERATION, EDITING, or MANAGEMENT.


However, regarding the DX100 LOGON passwords, SAVE capability is based
on the setup for each individual. (Items such as MACRO JOB files may even
be protected from SAVE.)

DX Advanced Programming Training Manual Page B-2 © MOTOMAN


Save and Load

Figure B-4 File exists on the media

If the parameter RS059 is set for “overwrite” (1), then the controller will ask if a
Forced Overwrite is permitted before executing the replacement backup.

Figure B-5 Forced Overwrite

B.1.3 VERIFY
Verification of information on the external memory checks the content and syntax of
the information. If the information is not correct, an error will occur.

Figure B-6 Syntax Error

DX Advanced Programming Training Manual Page B-3 © MOTOMAN


Save and Load

B.1.4 DELETE
The Delete function removes files from the external memory. This may be required
if the parameter RS059 is not set for Forced Overwrite, or may be used for file
management on the external memory.
Table B-1 Load and Save Files

FILE NAME SAVE LOAD


DATA CLASSIFICATION
(SAVED DATA) OPERATE EDIT MANAGE OPERATE EDIT MANAGE
COORDINATE
HOME
RO.PRM YES YES YES NO NO YES
POSITION
PARAMETER
SYSTEM
MATCHING SC.PRM YES YES YES NO NO YES
PARAMETER
CIO
CIO.PRM YES YES YES NO NO YES
PARAMETER
FUNCTION
DEFINITION FD.PRM YES YES YES NO NO YES
PARAMETER
APPLICATION
AP.PRM YES YES YES NO NO YES
PARAMETER
TRANSMISSION
(GENERAL) RS.PRM YES YES YES NO NO YES
PARAMETER
PARAMETER

SENSOR
SE.PRM YES YES YES NO NO YES
PARAMETER
SERVO
SV.PRM YES YES YES NO NO YES
PARAMETER
SERVOMOTOR
SVM.PRM YES YES YES NO NO YES
PARAMETER
OPERATION
CONTROL AMC.PRM YES YES YES NO NO YES
PARAMETER
SERVO POWER
BLOCK SVP.PRM YES YES YES NO NO YES
PARAMETER
MOTION
FUNCTION MF.PRM YES YES YES NO NO YES
PARAMETER
SERVOPACK
SVS.PRM YES YES YES NO NO YES
PARAMETER
CONVERTER
SVC.PRM YES YES YES NO NO YES
PARAMETER
CIO PROGRAM CIOPRG.LST YES YES YES NO NO YES
I/O NAME DATA IONAME.DAT YES YES YES NO NO YES
PSEUDO INPUT
I/O DATA

PSEUDOIN.DAT YES YES YES NO NO YES


SIGNALS
EXTERNAL I/O
EXIONAME.DAT YES YES YES NO NO YES
NAME DATA
REGISTER
IONAME.DAT YES YES YES NO NO YES
NAME DATA

DX Advanced Programming Training Manual Page B-4 © MOTOMAN


Save and Load

FILE NAME SAVE LOAD


DATA CLASSIFICATION
(SAVED DATA) OPERATE EDIT MANAGE OPERATE EDIT MANAGE
USER WORD
UWORD.DAT YES YES YES NO NO YES
REGISTRATION
SV MONITOR
SVMON.DAT YES YES YES NO NO YES
SIGNALS
VARIABLE
VARNAME.DAT YES YES YES NO NO YES
NAME
SECOND HOME
HOME2.DAT YES YES YES NO NO YES
POSITION
ALARM
ALMHIST.DAT YES YES YES NO NO NO
HISTORY DATA
HOME
SYSTEM DATA

POSITION
ABSO.DAT YES YES YES NO NO YES
CALIBRATING
DATA
SYSTEM
SYSTEM.SYS YES YES YES NO NO NO
INFORMATION
WORK HOME
POSITION OPEORG.DAT YES YES YES NO NO YES
DATA
I/O MESSAGE
IOMSGHST.DAT YES YES YES NO NO NO
HISTORY DATA
FUNCTION KEY
ALLOCATION KEYALLOC.DAT YES YES YES NO NO YES
DATA
ARC MONITOR
ARCMON.DAT YES YES YES NO NO NO
DATA

B.2 CMOS files


CMOS files are available for saving multiple files in a single file format. These files
are either in a hexidecimal or binary format.
B.2.1 CMOS.HEX

Figure B-7 CMOS Save

The files in a Hexidecimal format are:


Batch User Memory
Batch CMOS
All CMOS Area

DX Advanced Programming Training Manual Page B-5 © MOTOMAN


Save and Load

B.2.2 CMOS.BIN
The CMOS.BIN file is unique in that it contains all data files in the DX100 controller.
(The CMOS.HEX files contain a limited number of data files, and could become
corrupt more easily than the CMOS.BIN.) It is also unique because it can only be
saved/loaded from the bootup Maintenance Mode Menu.

To save/load the CMOS.BIN file, perform the following:


1. Power ON holding the Main Menu key.

Figure B-8 Bootup Maintenance Mode Menu

2. To Load, choose SYSTEM, SECURITY, and place the system in Management


Security Level.

Figure B-9 Maintenance Mode Security Level

DX Advanced Programming Training Manual Page B-6 © MOTOMAN


Save and Load

3. Choose Ex Memory.

Figure B-10 External Memory Selection

4. Choose Save or Load.

Figure B-11 Save and Load CMOS.BIN

5. Choose YES.

CAUTION! Do not interrupt the system while the information is being transferred.

DX Advanced Programming Training Manual Page B-7 © MOTOMAN


Save and Load

NOTES

DX Advanced Programming Training Manual Page B-8 © MOTOMAN


Log Data

C.0 LOG DATA


Log Data is a function that allows a recorded synopsis of changes made in the DX100
controller. In the Management Mode, data type is selectable, and the log can be
cleared as desired.

C.1 Log Data Condition


The type of changes to be logged is set up in the Management Mode Security Level.
The Log Data Condition setup allows for tracking specific changes or all changes
made in the DX100 controller.
To set up the type of recorded changes, perform the following:
1. In the Management Mode, choose Set Up in the Main Menu.
2. Choose LOGDATA COND.

Figure C-1 Log Data Condition

3. Cursor through the Log Data Condition Setting screen and SAVE those items to
be recorded in the Log Data Display.

Figure C-2 Log Data Condition Setting

DX Advanced ProgrammingTraining Manual C-1 © MOTOMAN


Log Data

C.2 Log Data Display


The record of the changes is cumulative and sequential. Date and time is registered
as the changes are made.
To view the Log Data, perform the following:
1. Choose System Info in the Main Menu.
2. Choose LogData.

Figure C-3 Log Data Display

3. Choose EDIT in the Menu Area, and choose SEARCH.


4. Enter the line number of the change to be highlighted.
5. With the cursor on the desired line, press SELECT to view the detail screen.

Figure C-4 Log Data Detail

Saving the LOGDATA.DAT file


Log Data can be saved under the Ex. Memory selection.
To save the .DAT file, perform the following:
1. Choose EX MEMORY in the Main Menu.
2. Choose SAVE.
3. Choose SYSTEM DATA.
4. Choose LOG DATA.

DX Advanced Programming Training Manual C-2 © MOTOMAN


Log Data

5. Press SELECT to identify the file to be saved.


6. Press ENTER.
The LOGDATA.DAT file can be opened in any text editor to view the contents.

//LOGDATA
///INDEX 1
DATE :2009/05/12 15:45
EVENT :VARIABLE EDIT
LOGIN NAME :
VARIABLE KIND :B VAR
VARIABLE NUMBER :0
BEFORE EDIT :0
AFTER EDIT :20

///INDEX 2
DATE :2009/05/12 15:44
EVENT :JOB EDIT(P. MOD)
LOGIN NAME :
TASK :0
FILE NAME :11
LINE :1
CURR VALUE
R1 : S 2
L -16803
U -15869
R 0
B -1154
T 1
Deleting the Log Data
Data in the Log Data is not individually selectable for deletion.
To delete all lines in the Log Data, perform the following:
1. Display the Log Data in Management Mode.
2. Choose Data in the Menu Area.

Figure C-5 Log Data Clear

3. Choose “Clear” and YES.

DX Advanced ProgrammingTraining Manual C-3 © MOTOMAN


Log Data

NOTES

DX Advanced Programming Training Manual C-4 © MOTOMAN


PARAMETERS

D.0 PARAMETERS
The definition for how the controller operates the Robot(s), Base(s), External axes,
and the Programming Pendant is stored in all the various PARAMETER files.

Items as simple as the values in the Speed List or as complex as elements for
interpolation are stored in customer accessible parameters in Management Mode only.

The controller uses some parameters during boot-up, and others dynamically.
NOTE: Some SETUP Menu items are directly linked to parameters while some are
entities in themselves.

Types of PARAMETER selections accessible in Management Mode:


• S1CxG (Robot Control Group; “x” represents R1, R2, R3, ... R8.)
• S2C (System Common Parameter; Byte type)
• S3C (System Common Parameter; 4-BIT)
• S4C (System Common Parameter; Byte type)
• AxP (Application; 4-BIT. The “x” represents R1... R8.)
• RS (Robot Serial Transmission Parameter; Byte type)
Most user definable parameters are explained in Yaskawa/Motoman DX100
Operator’s Manuals for the specific application.

D.1 S1CxG Parameter Examples


The S1CxG type parameters specify operation preferences for each Robot, R1 ~ R8,
(x =1, 2, 3, 4, 5, 6, 7, or 8 ).

D.1.1 S1CxG026 to S1CxG029: JOG OPERATION L, M, H, & High Speed Key


[Units: 0.1mm/s]
These are absolute setting values of jog operation speed for XYZ jogging COORD
control set via the Programming Pendant for RECT/CYL, TOOL, or USER FRAME
operation.
S1CxG026 Low level: Jog operation “L” manual speed.

S1CxG027 Medium level: Jog operation for “M” manual speed.

S1CxG028 High level: Jog operation for “H” manual speed.

S1CxG029 High-speed level: Jog operation for HIGH SPEED key.

NOTE: Values cannot be set greater than those set as the jog operation speed limit.

DX Advanced Programming Training Manual D-1 © MOTOMAN


PARAMETERS

D.1.2 S1CxG030 to S1CxG032: INCHING MOVE AMOUNT


These parameters specify the amount per move by each key press at inching operation
via the Programming Pendant. The referenced parameter differs according to
the Coordinate mode set as Joint: SLURBT & E or RECT, TOOL, a defined UF#( )
or CYL.

S1CxG030: Joint Operation (Unit 1 Pulse Count)

S1CxG031: XYZ Cartesian/Cylindrical (Unit 0.001 mm)

S1CxG032: Rx, Ry, Rz Motion about TCP (Unit 0.001 degree)

CAUTION! Although changeable, setting S1CxG030 to a value other than 1 makes


jogging to the exact Pulse Count for calibration purposes of any/all
motors impossible.

D.1.3 S1CxG033 to S1CxG040: POSITIONING ZONE


These 8 parameters specify the distance in microns for acceptable completion of the
TCP moving to a COMMAND POSITION with a PL= (1- 8) tag on any Motion Type
instruction step.

EXAMPLE: MOVL V=1500.0 PL=1

When the TCP is within the specified positioning zone, the controller starts moving
the robot to the next step. The system is set up so that inward-turning operation is
carried out when moving through the next path; any speed changeover is smooth.

D.1.4 S1CxG400 to S1CxG527: PULSE Max/Min Robot (R1~R8) Soft Limits

Parameters for motor softlimits of R1:


S1C1G400 to S1C1G405 are the maximum S,L,U,R,B,T;
S1C1G408 to S1C1G413 are the minimum S,L,U,R,B,T.

NOTE: Parameters S1C1G406 & S1C1G407 are maximum and S1C1G414 &
S1C1G415 are minimum softlimits for additional motors on the robot such as
E+/E- for 7th-axis on robot model or motor(s) attached to the flange that are
servo driven by the DX100 controller.

DX Advanced Programming Training Manual D-2 © MOTOMAN


PARAMETERS

D.2 S2C Parameter Examples


The S2C type parameters specify Programming Pendant display/operation
preferences, activate optional functions, and set job instruction tag preferences.

D.2.1 S2C195: Security Mode at Power ON


0 : Operating Mode
1 : Editing Mode
2 : Management Mode
D.2.2 S2C200: Keep Coordinate
0 : Default to Joint Coordinate at Job Change
1 : Keep selected Coordinate at Job Change
D.2.3 S2C397: I/O & Variable Customize Function
0 : Invalid
1 : Valid (Also see Appendix E: SETUP Function Enable screen)

This function enables registration of Input/Output signals and/or Variables for


monitoring. Also, operation of I/O and editing of Variable content is possible.

Figure D-1 Access to I/O Variable Customize

Figure D-2 Set Up and Use of I/O Variable

DX Advanced Programming Training Manual D-3 © MOTOMAN


PARAMETERS

D.2.4 S2C401: Tag Data Replacement Functions (Find and Replace)


0: Invalid
1: Valid

To use Tag Data Replacement, perform the following:


1. Select the job to be changed, and cursor on the Instruction Side.
2. Highlight the section of the job to be changed (as required).
3. From the EDIT Menu Area choose Tag Data Replace.

Figure D-3 Tag Data Replace

4. Choose the Tag to be changed.

Figure D-4 Tag Selection

5. Enter the Search Data to find, and enter the Replace Data.

Figure D-5 Search and Replace Data

6. Choose EXECUTE.

DX Advanced Programming Training Manual D-4 © MOTOMAN


PARAMETERS

D.2.5 S2C425: MOVC Tool Posture Control


This parameter selects Tool Posture control methods during Circular Interpolation.

0: Base [BF] or Master Tool [MTF] Euler posture control


1: Center of circular interpolation Euler posture control
2: Base [BF] or Master Tool [MTF] 2-turn posture control
3: Center of circular interpolation 2-turn posture control
NOTE: If using MOVC V=__ COORD=1/0 then S2C 425 will not recognized.

D.2.6 S2C646: Anticipation OUT (ANTOUT)


This parameter enables the Anticipation Output instruction defined by default setup
or either a distance or time tag. Also, can be enabled under SETUP, Function Enable
Setting VALID. (Refer to Appendix E.)

0: Disabled
1: Enabled

D.2.7 S2C722: Specify FINE tag


This parameter enables/disables the FINE position accuracy tag.

0: Enable
1: Disable

D.3 S3C Parameter Examples


The S3C type parameters specify options for custom setup/operation requirements.
D.3.1 S3C000 to S3C047: CUBE SOFT LIMIT (TCP Envelope for R1~R8)
These parameters specify auxiliary functions of the S2C001 parameter that activates
TCP Operating Envelope Check for R1~R8. (8-bit: R8=128, R7=64, R6=32, R5=16,
R4=8, R3=4, R2=2, R1=1.)

The TCP is limited to a cubic area designated only in Base Frame coordinates.
Units of µm (1000 microns = 1 mm).

Example R1 Cube Soft Limits:


S3C000 Maximum X distance for R1
S3C001 Maximum Y distance for R1
S3C002 Maximum Z distance for R1
S3C003 Minimum X distance for R1
S3C004 Minimum Y distance for R1
S3C005 Minimum Z distance for R1

DX Advanced Programming Training Manual D-5 © MOTOMAN


PARAMETERS

D.3.2 S3C048 to S3C063: S-AXIS INTERFERENCE AREA (R1~R8)


These parameters specify auxiliary functions of the S2C002 parameter for S-Axis
check on R1~R8 (8-bit: R8=128, R7=64, R6=32, R5=16, R4=8, R3=4, R2=2, R1=1).

The limit is in PULSE data for S-Axis motor link of R1~R8:


S3C048 Maximum S for R1
S3C049 Minimum S for R1
S3C050 Maximum S for R2
S3C051 Minimum S for R2
S3C052Maximum S for R3
S3C053 Minimum S for R3
...
S3C062 Maximum S for R8
S3C063 Minimum S for R8

D.3.3 S3C064 to S3C1087: CUBIC INTERFERENCE ZONES


These parameters specify auxiliary functions of S2C003 to S2C066 parameters.
D.3.4 S3C1089 to S3C1096: ROBOT INTERFERENCE AREA
These parameters specify auxiliary functions of S2C236 to S2C263 parameters. For
details, see also “S3C000 to S3C047.
D.3.5 S3C1097: A SIDE LENGTH OF WORK-HOME-POSITION CUBE
Units: 1μm
This parameter specifies a side length of the cube for the work home position.
D.3.6 S3C1098 to S3C1102: POSITION CORRECTING FUNCTION DURING
PLAYBACK
These parameters specify the necessary data for position correcting
function (PAM) during playback operation.

S3C1098 Specifies the limit of position correcting range (Units: μm)


S3C1099 Specifies the limit of speed correcting range (Units: 0.01%)
S3C1100 Specifies the correcting coordinates
0 : Base
1 : Robot
2 : Tool
3 : User 1
to
26:User 24
S3C1102 Specifies limit of posture angle adjustment range (Units: 0.01°)
DX Advanced Programming Training Manual D-6 © MOTOMAN
PARAMETERS

D.4 S4C Parameter Examples


D.4.1 S4C000 to S4C015: PARITY OF USER INPUT GROUPS
These parameters specify whether to execute parity checks (even parity) when
instructions covering the input group (1G#) are executed.

D.4.2 S4C016 to S4C031: PARITY OF USER OUTPUT GROUPS


These parameters specify whether the output group instruction is executed with parity
check (even parity).

D.4.3 S4C032 to S4C047: DATA OF USER INPUT GROUPS


These parameters specify whether to handle the input group data as binary data or as
BCD data when an instruction for the input group (1G#) is executed.

D.4.4 S4C048 to S4C063: DATA OF USER OUTPUT GROUPS


These parameters specify whether the output group instruction is executed with
binary data or BCD data.
D.4.5 S4C327~390 (Output #) and Operation Setting 391~454: Relay ON
The RELAY ON screen allows up to 64 Outputs to be monitored and controlled.
Table D-1 RELAY ON Parameters

OT#( ) ALTERNATE ON/OFF (SET=0)


PARAMETER => PARAMETER
NUMBER MOMENTARY (SET=1)
S4C327 (1~2048) => S4C391 (0~1)
S4C328 (1~2048) => S4C392 (0~1)
... ... => ... ...

S4C389 (1~2048) => S4C453 (0~1)


S4C390 (1~2048) => S4C454 (0~1)

If all OT#( ) parameters S4C327~S4C390 (Left-Column in Table D-1) are ‘0’ default,
then the RELAY ON selection under the Main Menu’s IN/OUT does not exist.

Each Output Parameter used requires a desired Operation Setting in the corresponding
Parameter S4C391~S4C454 (Right-Column in Table D-1).

Figure D-6 Example Corresponding Relay ON Parameter Settings

DX Advanced Programming Training Manual D-7 © MOTOMAN


PARAMETERS

Figure D-7 Example RELAY ON Screen

In the example above, OT#(1) and OT#(20) are set for Momentary operation with the
INTERLOCK+SELECT keys. The OT#(45) is set to Alternate ON/OFF also with
operation by INTERLOCK+SELECT.
NOTE: For SETUP of up to 32 Universal Inputs/Outputs for monitoring/operating and
B, I, or D type variables for monitoring/editing content, refer to Appendix E for
I/O-VAR CUSTOMIZE screen.

D.5 AxP Application Parameter Examples


The AxP parameters specify the settings for Application purposes. The corresponding
Yaskawa/Motoman manual regarding the application defines the meaning of each
available parameter.
Table D-2 Example Application Parameters
AxP009 General Application TOOLON output continues after job
Work continue prohibit interrupt during TOOLON instruction
AxP002, AxP004 Handling Application set the output signal assigned for f1
F1 Key Function key (HAND1)
AxP003, AxP005 Handling Application set the output signal assigned for f2
F2 Key Function key (HAND2)
AxP005 Arc Welding Application defines use of ASF speed or job
Welding Speed Priority speed
AxP007 Spot Welding Application specifies the anticipate condition (time)
Anticipate Time when executing the GUNCL or SPOT
instruction with NWAIT

D.6 RS Parameter Example


The RS parameters specify the settings for Robot Serial communication.

Parameter RS059 = 1 allows the DX100 controller to overwrite identical files/jobs to


the external USB key or Compact Flash card when SAVE is being performed.

DX Advanced Programming Training Manual D-8 © MOTOMAN


SETUP

E.0 SETUP MENU


The SETUP Menu defines how jogging, programming, and operating work. Many
SETUP items are directly linked to the PARAMETER files to allow shortcut setting
capability. These are related to frequently used Management and Editing settings.

The definitions in the specific SETUP screens ensure the correct parameter is changed
to the correct setting.

Figure E-1 SETUP Menu: Editing Mode & Management Mode

Other SETUP selections may be entities in themselves with no related parameter.

E.1 DATE/TIME
The date and time settings on the DX100 are in numeric format. This information
is used when jobs are created or modified and when Alarms occur. The time is
displayed with a 24-hour clock reference; the date format is Year-Month-Day.

Figure E-2 Date/Clock Set Display

To set the time or date the DX100 must first be in MANAGEMENT MODE, then
complete the following steps:
1. In the SETUP icon menu, choose DATE/TIME.
2. Cursor to DATE or TIME; press SELECT.
3. Use the number keypad to enter the date or time using the decimal [.] for the
colon between hour and minutes.
4. Press ENTER.

DX Advanced Programming Training Manual E-1 © MOTOMAN


SETUP

E.2 USER ID
This permits only authorized personnel who know the password(s) to modify the
existing User ID numbers for EDITING and/or MANAGEMENT Mode.
NOTE: When User Password is enabled, User ID is disabled.

To change the registered User ID number for EDITING or MANAGEMENT,


complete the following steps:
1. From MAIN MENU, choose SETUP.
2. Choose USER ID.
3. Cursor to the mode for which the ID number will be changed; press SELECT.

NOTE: When in EDITING Mode, only the Editing Mode User ID is available to
change. If in the Management Mode, both User IDs are available to change.
4. Enter the current ID number using the number keypad; press ENTER.
5. Enter the desired new 4 to 8-digit ID number using the keypad; press ENTER.
If no password is desired for either EDITING MODE and/or MANAGEMENT
MODE, then press ENTER (without any characters in “Password=” block) so
that PASSWORD NONE will be set.

Figure E-3 User ID Display

NOTE: Be sure to keep a record of the new password(s)!

E.3 Auto Backup Set


Auto Backup is designed to have the controller perform all of the file backup
operations. Several different settings are available to ensure the files are backed up at
the correct time.

Four elements cause the backup process to occur as follows:


• Reserve Time Backup - based on clock time, cycle time, and retry time.
• Mode Change Backup - based on a Mode change from Teach to Play.
• Startup Auto Backup - based on controller Power ON.
• Specific Input Backup - based on SIN#0441 being input to the controller.

NOTE: Backup will not occur when the controller is operating.

DX Advanced Programming Training Manual E-2 © MOTOMAN


SETUP

Figure E-4 Auto Backup Set

E.4 Wrong Data Log


This display screen identifies the occurrence of a broken chain in a MOV instruction.
This chain ties the instruction to the command position data in memory. With an
occurrence, the chain can be rechecked in Editing by selecting UTILITY, RECHECK.

Figure E-5 Wrong Data Recheck

If the chain is still broken, an attempt can be made to reconnect in the Management
mode using UTILITY, REPAIR.

E.5 Energy Saving Function


Energy Saving is a function that minimizes Servo Power if the robot has been
stationary for a specified amount of time. Servo Power remains ON but minimized,
and the brakes are applied to keep the robot’s position.

Figure E-6 Energy Saving Function


Based on criteria such as continuation of a job in PLAY, or reapplication of the
ENABLE switch in TEACH, the Servo Power is fully applied, brakes released and
normal operation continues.

DX Advanced Programming Training Manual E-3 © MOTOMAN


SETUP

E.6 Teaching Conditions


Teaching Conditions set how the controller is “taught” or “used” by the programmer
in TEACH Mode. Accessible in both Editing and Management Modes, these settings
can be changed without effecting the existing jobs.

Due to frequency of need for changing and/or easy access, these items are available
on the Teaching Condition list so that it is not necessary to set their corresponding
parameters in Management Mode only.

S2C211 = 0,1,2
S2C214 = 0,1
S2C206 = 0,1
S2C433 = 0,1
S2C203 = 0,1
S2C196 = 0,1
S2C431 = 0,1
S2C234 = 0,1
S2C320 = 0,1
S2C413 = 0,1
S2C231 = 0,1
S2C688 = bit
S2C688 = bit

Figure E-7 Teaching Conditions With Related Parameters

E.6.1 Language Level


The INFORM language has three levels of instruction sets. These range from reduced
instruction set for ease of programming to a complete instruction set.

SUBSET The Subset Language instruction set reduces the number of


instructions in the INFORM LIST to those that are used most
frequently by all applications.
STANDARD The Standard Language instruction set allows use of all standard
menu instructions on the INFORM LIST. (Software Option menu
items will appear upon installation.)
EXPANDED All programming choices become available in Expanded Language
which includes the following additions:
• Expanded JOB HEADER to reserve Local Variables
• Array addressing for all variable types
• Fully expanded Inform List to access all instructions.
(For example, CWAIT is not available in STANDARD or SUBSET.)

E.6.2 Move Instruction Set Position


A Move Instruction Set is the set of consecutive non-motion instructions immediately
following a MOV_ instruction in a job. These are considered to be “attached” to that
position because that is the location at which they will occur.

STEP will only allow a new MOV_ instruction to be inserted above the next STEP.

LINE will insert a motion instruction directly below the cursor as the next LINE.

DX Advanced Programming Training Manual E-4 © MOTOMAN


SETUP

E.6.3 Tool Number Switch


This parameter/setting will PERMIT/PROHIBIT the Tool List Selection.
PERMIT includes Tool No.01-63 in addition to the STANDARD TOOL No.00 for
cells where multiple tools are in use and each Tool No. has separate TCP data.
PROHIBIT can be set for robot cells that require only one tool, (eg one weld torch,
one gripper) so that no one can inadvertently program with incorrect tool.
E.6.4 Tool Number Interlock for Step Entry
With multiple tools enabled, any COMMAND POSITION could accidentally be
programmed or modified with an incorrect tool number. This is prevented by setting
this item to PROHIBIT so that the following Error will occur:

E.7 Operate Conditions


Operate Conditions define units of measure for V=_ speeds, forced Cycle selections,
cursor position at power on and output status at power on.

S2C221 = 0,1,2,3
S2C313 = 0,1,2,3
S2C314 = 0,1,2,3
S2C294 = 0,1,2,3
S2C293 = 0,1,2,3
S2C312 = 0,1,2,3
S2C195 = 0,1,2,
S2C215 = 0,1
S2C235 = 0,1

Figure E-8 Operate Conditions

SPEED DATA INPUT FORM:

E.8 Operate Enable


This group of settings permits and prohibits operation controls signals.

S2C219 = 0,1
S2C220 = 0,1
S2C225 = 0,1
S2C227 = 0,1
S2C228 = 0,1
S2C229 = bit
S2C229 = bit
S2C229 = bit

Figure E-9 Operate Enable Conditions

DX Advanced Programming Training Manual E-5 © MOTOMAN


SETUP

E.9 Function Enable


Functions can be enabled and disabled in the Function Enable Setting by either
PERMIT/PROHIBIT or VALID/INVALID.

Figure E-10 Function Enable Setting

E.9.1 Master Job Change


When Master Job Change is set as PERMIT, the following choices are available when
in at least the EDITING Security Level:

Figure E-11 JOB Menu when MASTER JOB CHANGE [PERMIT]

When set to PROHIBIT, neither SETTING nor CANCEL are available. This helps
to prevent unintentional changing/canceling of register if CALL MASTER JOB is
used frequently.

Figure E-12 JOB Menu when MASTER JOB CHANGE [PROHIBIT]

DX Advanced Programming Training Manual E-6 © MOTOMAN


SETUP

E.9.2 Reserved Start


This function, when set to PERMIT, allows the controller to reserve the job start order
based on assigned Input signals for up to 24 Reserved Start (JOB) names.

Figure E-13 Reserved Start (JOB) List 1-24


Each Job must be “connected” to a unique Input and Output within the Reserved Start
(CNCT) accessed only in MANAGEMENT Mode under SETUP. (Enter a zero, 0, to
clear setting back to default [****] of no connection.)

Figure E-14 Reserved Start (CNCT) Connection


In at least EDITING Mode, the Reserve Start (JOB) list can be changed.

Figure E-15 Access SETTING/CANCEL Reserved Start (JOB)

DX Advanced Programming Training Manual E-7 © MOTOMAN


SETUP

NOTE: When the Reserved Job Change function is set to PROHIBIT, an ERROR
occurs when SETTING/CANCEL on name list is selected regardless of the
Security Level causing the ERROR shown below.

In PLAY, the RESERVED START function recognizes an Input and runs the
associated job. If there are multiple Input signals, a que is created and the jobs are
run in the order the Inputs are recognized by the controller.

E.9.3 I/O-VAR Customize


When this function is set VALID, the I/O -VARIABLE CUSTOMIZE screen becomes
available under the Main Menu’s Application icon.

Figure E-16 I/O-Variable Customize Access Under Application Icon

The I/O-VARIABLE CUSTOMIZE screen displays up to 32 items regarding Inputs,


Outputs, and B, I, and D-type Variables addresses.
The I/O is registered by its 5-digit relay address, for example, Universal IN#(5) is the
operand #00014, and Universal OT#(8) is operand #10017.

Figure E-17 I/O-Variable Customize Selections

DX Advanced Programming Training Manual E-8 © MOTOMAN


SETUP

Conveniently, the Universal Inputs can use SIM ON/OFF and the Outputs can be
forced ON/OFF from this screen with INTERLOCK+SELECT.

Figure E-18 I/O-Variable Customize Examples

Each registered Variable address can have its CONTENT edited. Also, the NAME for
each item is displayed and can be updated from this screen.

E.9.4 General I/O Name Display in Job


When this function is VALID, a name display within the JOB CONTENT whenever
an instruction tag refers to an individual IN#( ) or OT#( ) in the program.
WAIT IN#( )=ON // Input’s Name
DOUT OT#(1)=ON // Output’s Name

E.9.5 Anticipation Output


This function, when set VALID, anticipates a single output ON/OFF (or group status
turns ON) either before or after completion of a step motion. This MOV_, preceding
the ANTOUT instruction, requires an NWAIT tag.

Figure E-19 ANTICIPATION OUTPUT with AT# and AG#

DX Advanced Programming Training Manual E-9 © MOTOMAN


SETUP

Up to 16 individual signals can be set for ANTOUT and 8 groups can be designated.

Figure E-20 Anticipation Output Set Screen

The anticipation timing is based on a setting range of -327.68 to + 327.67 seconds.

Also, in DETAIL EDIT, the ANTDIS tag can be used for Distance with a range of
-3276.8 to +3276.7 millimeters.
NOTE: Although the parameter S2C646 for Anticipation Output is enabled by the
Function Enable Setting window, Parameter S4C008 =1 must also be set.

Anticipation Output <SINGLE> / <GROUP>

To access the ANTICIPATION OUTPUT for settings, perform the following:


1. In the Main Menu, choose IN/OUT.
2. Choose ANT.OUTPUT.
3. Set the desired Output numbers for up to 16 <SINGLE> AT# references, and/or
set the Group numbers for up to 8 <GROUP> AG# references.
4. For each <SINGLE> AT# set the default for both ON TIME and OFF TIME so
that when programmed with an UNUSED (ANT= Tag) for either ON or OFF,
these values will be used.
5. For each <GROUP> AG# set the default ON TIME so that when programmed
with an UNUSED (ANT= Tag) this value will be used.

ANTOUT Instruction

To program the ANTOUT instruction, perform the following:


1. In the JOB CONTENT, open the Inform List and choose IN/OUT.
2. Choose ANTOUT.
3. SELECT the DETAIL EDIT screen.
4. Enter AT# and select ON/OFF status.
or
SELECT to change to AG# and enter group reference number.

DX Advanced Programming Training Manual E-10 © MOTOMAN


SETUP

5. No additional tag will default to the set <SINGLE> ON TIME and OFF TIME
and <GROUP> TIME.
or
SELECT on TIME to change UNUSED to either ANT=seconds or
ANTDIS=millimeters; enter the desired value. Press ENTER.

Figure E-21 Anticipation Output DETAIL EDIT


6. Press INSERT, ENTER.

NOTE: The MOV_ preceding the ANTOUT instruction requires an NWAIT tag.

E.9.6 All Axes Angle Display Function


If the ALL AXES ANGLE DISPLAY is VALID, then all displays for position data are
set to either ABSOLUTE ANGLES or GROUND ANGLES rather than PULSE data.

Figure E-22 Current Position Display Selection


This applies to all screens displaying position data.

Figure E-23 Current, Second, and Work Home (Angle Display)

DX Advanced Programming Training Manual E-11 © MOTOMAN


SETUP

E.10 Jog Condition Setting


The Jog Condition Setting for COORD SWITCH allows for enable/disable of TOOL
and/or USER FRAME coordinates for jogging.

Figure E-19 TOOL & USER Enable/Disable

When MANUAL SPEED SAVE is VALID, changing COORD will revert to the last
setting used for either JOINT/XYZ jogging with Manual Speed I, L, M, or H.

S2C197 = 0,1,2,3
S2C204 = 0,1

Figure E-20 Jog Condition Setting Parameters

E.11 Playback Condition Setting


This setting determines how the controller will function in the PLAY mode.

S2C208 = 0,1
S2C210 = 0,1
S2C217 = 0,1
S2C316 = 0,1
S2C240 = 0 (OUTPUT NUMBER)

Figure E-21 Playback Condition Setting

Start Method after Abso Over


This setting determines how the controller recovers (after RESET) from the minor
alarm...Alarm 4107: Out of Range Abso Data [SLURBT] Robot#.

When set to “POS. CHECK,” the operator must comply with the message line prompt
“Check Position.” This requires TEACH MODE manual FWD in M or H speed to
the corresponding ROBOT’s SECOND HOME. Then, after visual observation of
Robot achieving this position satisfactorily, CONFIRM POSITION under DATA.

DX Advanced Programming Training Manual E-12 © MOTOMAN


SETUP

When set to “LOW SPEED,” recovery is possible in PLAY MODE by pressing


START once to have the controller move the robot to the next position in the job at
Low Speed and stop. Then, after visual observation of Robot achieving this position
satisfactorily, normal operation can continue by pressing the START button again.

E.12 Functional Condition Setting


The Functional Condition Setting screen sets maximum change values for the PAM
(Position Adjustment and Modification) dynamic editing function.

COORDINATE: BASE; ROBOT; TOOL; USER

POSITION ADJUST RANGE: -2,147,483.648 ~ +2,147,483.647 MM

SPEED ADJUST RANGE: -21,474,836.48 ~ +21,474,836.47 %

POSTURE ANGLE RANGE -21,474,836.48 ~ +21,474,836.47 DEG.

S2C1100 = 1,0,2 (VALUE)


S3C1098 = 10000 (VALUE)
S3C1099 = 5000 (VALUE)
S3C1102 = 1000 (VALUE)

Figure E-22 Function Condition Setting

CAUTION! Set each Range value conservatively to help prevent unsafe dynamic
edits which occur at NOP during PLAY mode operation.

E.13 KEY ALLOCATION


The DX100 allows the number keypad to act as “hot keys” for quick access to
frequently used instructions and functions. Also, the keys can be allocated to simulate
the operation of outputs in conjunction with the INTERLOCK key.
E.13.1 Key Allocation (EACH)

Each function item may be set in one of the following four categories:
• MAKER - Used for application specific functions such as voltage/
current adjust in Arc Welding.
• INSTRUCTION - Sets a frequently used instruction from the INFORM
LIST into the edit buffer line.
• JOB CALL - Pressing a designated hot key will insert a CALL
line with specific job name into the Input Buffer. The NO. (1-10)
references the name on the RESERVE JOB NAME list.
• DISPLAY - A shortcut key can be used to display a designated
pendant screen. (See Section 9.5.3 for setup.)

DX Advanced Programming Training Manual E-13 © MOTOMAN


SETUP

To set up KEY ALLOCATION (EACH) for Editing purposes, complete the


following steps:
1. From MAIN MENU, choose SETUP.
2. Choose KEY ALLOCATION.

Figure E-23 Key Allocation (EACH) Display

3. Cursor to the key to be dedicated; press SELECT.


4. Cursor to the desired function; press SELECT.
5. The new function type appears with default data shown. Cursor to the data; press
SELECT to change it as needed.

NOTE: While in EDITING or MANAGEMENT in a JOB CONTENT screen, pressing


the allocated key will cause the desired instruction or job call to appear on the
edit buffer line.

RESERVE JOB NAME


The RESERVED JOB NAME list can have up to 10 job names registered. These
names are referenced when the keypad has an allocated key set for JOB CALL
instruction. The NO.: (1-10) for the JOB CALL designates which reserved name
from the list will appear on the edit buffer line for the CALL JOB: instruction.
To register a reserved job name on the list, complete the following steps:
1. From MAIN MENU, choose SET UP icon.
2. Choose RESERVE JOB NAME.
3. Cursor to the desired number; press SELECT.
4. Cursor to the desired job name from the list of existing jobs; press SELECT.

Figure E-24 Reserved Job Name Display

DX Advanced Programming Training Manual E-14 © MOTOMAN


SETUP

E.13.2 Key Allocation (SIM)


KEY ALLOCATION can also be used to designate a hot key for customized manual
output operation. This function is called ALLOCATE SIM KEY. The functions can
be set in one of the following nine categories:

• MAKER - Used for application specific functions.


• ALTERNATE OUTPUT - Toggles an output ON/OFF.
• MOMENTARY OUTPUT - output is ON as long as key is depressed.
• PULSE OUTPUT - output stays ON for a set period of time
designated in seconds (TIME: 0.01 to 655.35 sec).
• 4 BIT OUTPUT - sets output half group status (0 to 15).
• 8 BIT OUTPUT - sets output group status (0 to 255).
• ANALOG OUTPUT - sets an analog output channel to a specific
voltage (0.00 to +14.00) or (0.00 to -14.00).
• ANALOG INC OUTPUT - increases/decreases analog output voltage
by designated amount (1.00 or -1.00) each time the key is pressed.
• DISPLAY - A shortcut key can be used to display a designated
pendant screen. (See Section 9.5.3 for setup.)

INTER
Press + LOCK
to view key allocations used with INTERLOCK.
ASSIST

To set up KEY ALLOCATION (SIM), complete the following steps:


1. In the SETUP icon menu, choose KEY ALLOCATION.
2. Choose the DISPLAY menu and choose ALLOCATE SIM. KEY.
3. Cursor to a desired key; press SELECT.
4. Cursor to the desired setting; press SELECT.
5. Cursor to and SELECT other specifications depending on selection such as NO.,
TIME:, sec, OUT:, or INC:. Enter the necessary data; press ENTER.

Figure E-25 Key Allocation (SIM)

NOTE: To activate the ALLOCATE SIM KEY functions, hold the INTERLOCK key,
then press the desired allocated key.

DX Advanced Programming Training Manual E-15 © MOTOMAN


SETUP

E.13.3 Key Allocation for DISPLAY with [EACH] or [SIM]

To allocate DISPLAY from either [EACH] or [SIM], complete the following


steps:
1. In the Key Allocation for either [EACH] or [SIM], set the selected key to
DISPLAY.
2. Select the desired pendant display to the screen view.
3. Hold INTERLOCK and press the key to be allocated to reserve the current
display.

NOTE: The “DISPLAY” will allocate both [EACH] and [SIM] keys for use.

E.13.4 Jog Key Allocate


This SETUP feature is used with a station or base axis. The “E” and “8” jogging
keys can be set for use with the Station or Base axis when ROBOT is selected. This
eliminates the need to select (with ROBOT or EX AXIS keys) the group to be jogged.

Figure E-26 Jog Key Allocate

E.14 SET SPEED


The PLAY SPD list on the programming pendant can be customized to 8 preset,
frequently used Joint speeds (%) and 8 Linear unit speeds This can be accomplished
by simply using the SET SPEED menu to enter the values.
NOTE: The LINEAR is based on the pendant speed data setting of mm/sec., cm/min.,
in./min., or mm/min. units of display.

These setting are recorded in the System Conform parameters as follows:


S1C1G002 to S1C1G009 for Joint [%]
S1C1G010 to S1C1G017 for Linear [.01 mm/sec]

To change any or all of the 8 preset speeds on the SET SPEED menu, complete
the following steps:
1. In the SETUP icon menu, choose SET SPEED.
2. Press SELECT to toggle to the correct list (JOINT or LNR/CIR).
3. Cursor to desired item; press SELECT.

DX Advanced Programming Training Manual E-16 © MOTOMAN


SETUP

4. Enter the desired value within the range of the data type, and press ENTER.
0.01 to 100.00%
0.1 to 1500.0 mm/sec.
1 to 90000 mm/min.
1 to 9000 cm/min.
1 to 3543 in./min.

NOTE: A whole number must be entered prior to pressing the decimal point key.
(ie 0.78 instead of .78)

Figure E-27 Example JOINT and LNR/CIR Speed Data Lists

DX Advanced Programming Training Manual E-17 © MOTOMAN


SETUP

NOTES

DX Advanced Programming Training Manual E-18 © MOTOMAN


ARITH Instructions

F.0 ARITHMETIC INSTRUCTIONS


The DX100 Inform menu for ARITH contains instructions that can capture the
current status of System Variables. This could be the current position of the job’s
CONTROL GROUP or the current status of a Search instruction.

This extracted information can be used with other ARITH instructions to prepare for
relative movements, such as an IMOV, or for temporary offset of points using SHIFT
instructions.

F.1 Arithmetic Instructions Related to Position


F.1.1 GETS
The GETS (Get System) status instruction stores the current status of the requested
System Variable ($) information into desired variable address of the same file type.

Figure F-1 GETS Instruction

Examples:
GETS B005 $B002 (Get System’s current return code for MOVL SRCH RIN# and
stores status results in B005)

GETS PX000 $PX000 (Get System’s current position; stores PULSE data in PX000)
Note: If R1 + R2 job, both P000 and P001 would store data;
in R1 + S1 job, P000 and EX000 would store data.


GETS PX011 $PX001 (Get System’s R1 position in BF; stores data in P011)
Note: In R1 + R2 job, both P011 and P012 would store
current BF data.

CAUTION! Use care with address choices when using GETS in jobs involving
multiple robots, bases, and/or station axes.

DX Advanced Programming Training Manual F-1 © MOTOMAN


ARITH Instructions

F.1.2 CNVRT
The CNVRT instruction converts a Position variable from Pulse or any XYZ Frame
to only an XYZ type ( BF, RF, UF, or TF). The converted data may be stored in the
same address or another designated Position variable address.

Figure F-2 CNVRT Instruction

Examples:
CNVRT PX003 PX003 RF (Converts data of P003 into RF type)

CNVRT LPX004 LPX005 UF#(24) (Converts data of LP005 into UF type in LP004)

CNVRT PX[B006] PX000 BF (Converts data of P000 into BF type in P address


determined by B006)

F.1.3 GETE
GET ELEMENT gets the single designated element of a Position variable and stores
the value in a D-variable address. In PULSE data the elements 1-6 correspond to
SLURBT; for XYZ data type the elements 1-6 correspond to X, Y, Z, Rx, Ry, & Rz
respectively.

Figure F-3 GETE Instruction

DX Advanced Programming Training Manual F-2 © MOTOMAN


ARITH Instructions

1
2
3
4
5
6
7

Figure F-4 Position Variable Elements

NOTE: The X, Y, & Z elements are stored as thousandths of a millimeter (microns),


and the Rx, Ry, & Rz elements are stored as hundredths of a degree.

Examples:
GETE D099 P007 (3) (Gets third element of P007 and stores value in D099)

GETE LD000 P[I005] (B099) (Gets element, determined by B099, of P address,


determined by I005, and store value in LD000)

F.1.4 SETE
SET ELEMENT sets the designated element in a Position variable equal to a
constant or a value stored in a D-variable address.

Figure F-5 SETE Instruction

Examples:
SETE P007 (5) -4500 (Sets constant into fifth element of P007)

SETE LP005 (B002) LD[B002] (Sets data from LD address determined by B002
into LP005’s element also determined by B002)

DX Advanced Programming Training Manual F-3 © MOTOMAN


ARITH Instructions

F.1.5 MFRAME
MAKE FRAME creates a User Frame from three Position variables of any data
type. The first designated address data becomes the ORG, the second is the XX data,
and the third is stored as the XY data.

Figure F-6 MFRAME Instruction

Example:
MFRAME UF#(4) PX005 PX006 PX007 (Makes User Frame #(4) with
PX005=ORG, PX006=XX, & PX007=XY)

F.1.6 GETPOS
GET POSITION captures the location of a Step in a job and places the information
into a Position Variable.

Figure F-7 GETPOS Instruction

Examples:
GETPOS PX000 STEP#(1) (Places the Command Position data of Step 1
into Position Variable 000)

GETPOS LPX020 STEP#(7) (Places the Command Position data of Step 7


into Local Position Variable 020)

DX Advanced Programming Training Manual F-4 © MOTOMAN


ARITH Instructions

F.2 Calculation Instructions


F.2.1 ADD
 The Add instruction stores the sum of the current value stored in the resultant
arithmetic variable address with a constant or value stored in any other type
arithmetic variable address.

Examples:
ADD LD008 -81726354 (Adds constant to value stored in LD008)

ADD D006 B018 (Adds value in B018 to value in D006)

ADD R015 I[B033] (Adds value stored in “I” address, determined by


number in B033, to value in R015)

 Add the 6 elements stored in a Position variable address to the resultant Position
variable’s elements. (Data type must be same; Pulse, BF, RF, or UF.) Suggestion:
This function is useful for combining XYZ shift amounts.

Examples:
ADD P125 P124 (Adds 6 elements of P124 to values in P125)

ADD LP002 LP004 (Adds 6 elements of LP004 to values in LP002)

ADD P[B001] LP[B001] (Adds 6 elements of LP address determined by B001 to values


in P address also determined by B001)

F.2.2 SUB
 The SUB instruction finds the difference between two values by subtracting
either a constant or value stored in any other arithmetic variable address from the
current content of the resultant arithmetic variable address.

Examples:
SUB LD008 -45362718 (Subtracts from LD008 the constant -45362718)

SUB R006 B018 (Subtracts from R006 the value stored in B018)

SUB D[B000] 27348 (Subtracts from D address, determined by number in B000, the
constant 27348)

 Subtract the 6 elements stored in a Position variable address from the designated
Position variable’s elements. (Data type must be same; Pulse, BF, RF, or UF.)

Examples:
SUB P127 P127 (Subtracts all elements from itself to “zero” all values)

NOTE: This function is useful for “zeroing” all 6 elements.


SUB LP002 LP[I017] (Subtracts from LP002 all elements in the LP address,
determined by number in I017)

DX Advanced Programming Training Manual F-5 © MOTOMAN


ARITH Instructions

F.2.3 MUL
 The Multiply instruction stores the product of the current content of the resultant
arithmetic variable address and a constant or value stored in any other address.

Examples:
MUL I005 25 (Multiplies 25 times value in I005)

MUL R005 D002 (Multiplies value in D002 times value in R005)

MUL D[B005] LI[B004] (Multiplies value in LI address, determined by B004,


times the value in the D address, determined by B005)

 Multiply a single element or all 6 elements stored in the position variable address
by an integer constant or any D-variable value.

Examples:
MUL P009 (2) -1 (Multiplies integer constant -1 times second element of P009)

MUL LP007 0 (Multiplies zero times all elements of LP007)

NOTE: Multiplying by zero is useful for “initializing” all 6 elements without clearing the
data type.
MUL P127 (1) D039 (Multiplies value in D039 times first element of P127)

MUL LP002 LD[B001] (Multiplies value in LD address, determined by B001,


times all elements of LP002)

F.2.4 DIV

 The DIV instruction divides the current value in the resultant arithmetic variable
address by a constant or value stored in any arithmetic variable address.

NOTE: Any decimal place value results attempted to be stored in a B, I, or D type


variable will be truncated to the appropriate whole number or integer value.

Examples:
DIV R005 67.854 (Divides value in R005 by constant)

DIV LR014 D002 (Divides value in LR014 by value in D002)

DIV R000 I[B000] (Divides R000 content by value in I address determined by


B000)

 Divide an integer constant or any D-variable value into a single element or all 6
elements stored in the designated Position variable address.

Examples:
DIV P026 (1) 2 (Divides first element of P026 by 2)

DIV P018 10 (Divides all elements of P018 by 10)

DX Advanced Programming Training Manual F-6 © MOTOMAN


ARITH Instructions

F.3 Value Setting Instructions


F.3.1 SET

 Set all 6 elements of a designated Position variable equal to another Position vari-
able’s elements of the same type (Pulse, BF, RF, UF).

NOTE: Data type must be previously defined in position variable file.

Examples:
SET P055 P040 (Sets all 6 elements of P040 into P055)

SET P125 LP002 (Sets all 6 elements of LP002 into P125)

SET P[B005] LP[LI003] (Sets all 6 elements of LP address determined by LI003 into
the P address determined by B005)

 Set designated GLOBAL/LOCAL, SCALAR/ARRAY Byte, Integer, Double, or


Real variable address to a constant value.

Examples:
SET R009 452.2756 (Sets constant into R009)

SET LD008 -81726354 (Sets constant into LD008)

SET B[I000] 255 (Sets constant into B address determined by I000)

 Set designated GLOBAL/LOCAL, SCALAR/ARRAY Byte, Integer, Double, or


Real variable address to the same value that is stored in another variable address.

NOTE: Any decimal place value in a Real variable attempted to be set in a B, I, or


D type variable will be truncated to the appropriate whole number or integer
value.

Examples:
SET R039 LB009 (Sets value stored in LB009 into R039)

SET LI001 B003 (Sets value stored in B003 into LI001)

SET LR[B001] LD[LB003] (Sets value stored in LD address determined by B003 into the
LR address determined by B001)

 Set a designated GLOBAL/LOCAL, SCALAR/ARRAY Byte, Integer, Double, or


Real variable address to a value resulting from various calculations with constants
and/or other variable values.

NOTE: Any decimal place value results attempted to be stored in a B, I, or D type


variable will be truncated to the appropriate whole number or integer value.

DX Advanced Programming Training Manual F-7 © MOTOMAN


ARITH Instructions

Examples:
SET I039 I039 + 5 (Adds 5 to value in I039 and stores result in I039)

SET D032 1000 * B005 (Multiplies 1,000 times value in B005; result in D032)

SET LR001 (255 - B004)/2 (Divides the difference of 255 and value in B004 by 2 and
stores result in LR001)

To construct an expression, use the EXPRESS function found in DETAIL EDIT under
the SOURCE (TOKEN) [«] for the SET instruction.

Figure F-8 SET Detail Edit

The choices available for the left parenthesis are (, ((, (((, -(, -((, and -(((;
for the right parenthesis ), )), and ))).

The DATA can be + or - and SEL.TYPE can be a CONSTANT or VARIABLE.

The OPERATOR choices are + (add), - (subtract), * (multiply), and / (divide).

Figure F-9 SET Expression (DETAIL EDIT)

DX Advanced Programming Training Manual F-8 © MOTOMAN


ARITH Instructions

F.3.2 CLEAR

 Clear a section of any existing values to zero in consecutive GLOBAL/LOCAL,


SCALAR/ARRAY Byte, Integer, Double, or Real variable addresses.

Examples:
CLEAR R007 8 (Clears 8 consecutive “R” addresses, R007 through R014)

CLEAR LB000 ALL (Clears all reserved Local Byte addresses)

 Clear the STACK for nested CALL jobs. The STACK is limited to 10 levels, so by
clearing the Stack within a nested Call Job additional levels are made available.

CAUTION! Once the stack is cleared of previous levels, the controller will NOT
RETURN to any of these jobs.

Example:
CLEAR STACK (This job becomes level 1 of 8. When controller gets to
END of this job, cycle is finished at level 0)

F.4 Trigonometric Functions


These instructions simply perform the desired function using only R-type variables.
F.4.1 SQRT

Stores the square root of a positive constant or the positive value stored in another
Real variable address into only a designated Real variable address.

NOTE: ALARM 4510 occurs if SQRT of a negative value is executed in a job.

Examples:
SQRT R008 3 (v3 = 1.732051E+00 is stored in R008)

SQRT R010 1.2487E-05 (Square root of positive constant is stored in R010)

SQRT LR005 R[B033] (Square root of positive value in R address, determined


by B033, is stored in LR005)

F.4.2 SIN

Stores the sine of a constant, degrees, or the value stored in another Real variable ad-
dress into only a designated Real variable address.

Examples:
SIN R008 90 (SIN 90° = 1.000000E+00 is stored in R008)

SIN LR001 -60 (SIN -60° = -8.660254E-01 is stored in LR001)

SIN LR009 R012 (Sine of the degrees value in R012 is stored in LR009)

SIN R[B010] LR[I039] (Sine of the degrees value in LR address, determined by


I039, is stored in R address determined by B010)

DX Advanced Programming Training Manual F-9 © MOTOMAN


ARITH Instructions

F.4.3 COS

Stores the cosine of a constant, degrees, or the value stored in another Real variable
address into only a designated Real variable address.

Examples:
COS R008 90 (COS 90° = -2.05103E-10 stored in R008)

COS LR002 -60 (COS -60° = 5.000000E-01 stored in LR002)

COS LR009 R012 (Cosine of the degrees value in R012 stored in LR009)

COS R[B010] LR[I039] (Cosine of the degrees value in LR address, determined


by I039, is stored in R address determined by B010)

F.4.4 ATAN
Stores the arc tangent in degrees for a constant ratio or for the value stored in
another Real variable address into only a designated Real variable address.

Examples:
ATAN R008 1 (ATAN 1 = 45°; 4.500000E+01 stored in R008)

ATAN LR000 -1.73205E+00 (ATAN -v3 = -60°; -6.000000E+01 stored in LR000)

ATAN LR009 R012 (Arc tangent of value in R012 stored in LR009)

ATAN R[B010] LR[I039] (Arc tangent of value in LR address, determined by


I039, is stored in R address determined by B010)

F.5 Boolean Logic Functions


The Table below shows Boolean Logic for AND, OR, and XOR (Exclusive OR) using
TRUE=1 for “ON” and FALSE=0 for “OFF” as follows:
Table F-1 Boolean Logic Truth Table

1st 2nd AND OR XOR


0 0 0 0 0
1 0 0 1 1
0 1 0 1 1
1 1 1 1 0

The NOT instruction simply inverts the status as follows:


Table F-2 Boolean Logic for NOT

0/1 NOT
0 1
1 0

DX Advanced Programming Training Manual F-10 © MOTOMAN


ARITH Instructions

F.5.1 AND
Replaces the initial Byte value with the results of AND when the content is combined
with either a positive constant or the content of another Byte variable address.
BYTE Example:
AND B000 209 (If B000=63, then 17 is stored in B000)
0011_1111 [ 63]
AND 1101_0001 [209]
0001_0001 [ 17]

NOTE: The AND instruction is useful for masking I/O. Align “1” to allow an I/O bit
current status in the resultant Byte, and align “0” with I/O bits to be masked.

I/O Example: 31=16+8+4+2+1 to keep IN#5~IN#1 status but mask others.


DIN B000 IG#(1)
AND B000 31

F.5.2 OR
Replaces the initial Byte value with the results of OR when the content is combined
with either a positive constant or the content of another Byte variable address.

BYTE Example:
OR B001 209 (If B001=63, then 255 is stored in B001)
0011_1111 [ 63]
OR 1101_0001 [209]
1111_1111 [255]

NOTE: The OR instruction is useful to “force” or simulate a signal or signals within


a group or half-group. Align “1” with I/O bits to be forced ON regardless of
current status, and align “0” to allow actual current status.

I/O Example: 4 = IN#7 status guaranteed ON regardless of current status.


DIN B021 IGH#(2)
OR B021 4

F.5.3 XOR
Replaces the initial Byte value with the results of Exclusive OR when the content is
combined with a positive constant or the content of another Byte variable address.

BYTE Example:
XOR B003 209 (If B003=63, then 238 is stored in B003)
0011_1111 [ 63]
XOR 1101_0001 [209]
1110_1110 [238]

DX Advanced Programming Training Manual F-11 © MOTOMAN


ARITH Instructions

NOTE: The XOR instruction is useful to selectively “NOT” a signal or signals status
within a group or half-group. Align “1” with I/O bits to be inverted, and align “0”
to keep current status.

I/O Example: 126 = OT#2~OT#7 invert, but OT#(1) & OT#(8) keep status.
DIN B022 OG#(1)
XOR B022 126

F.5.4 NOT
Replaces the initial Byte value with the results of NOT for a positive constant or
NOT for the content of a designated Byte variable address.
NOTE: The existing value in the initial Byte address where the resultant is to be
stored is insignificant because it is not used as part of the NOT logic process.

BYTE Example: The initial value [46] stored in B002 is insignificant.


NOT B002 209 46 is stored in B002)
NOT 1101_0001 [209]
0010_1110 [255-209=46]

NOTE: Use NOT to invert CONSTANT or Byte variable content to opposite status.

I/O Example:
DIN B023 OGH#(3)
NOT B023 B023_____
DOUT OGH#(3) B023
NOTE: The DOUT OG#( ) INVERT instruction tag will “flip-flop” an entire group status.

DX Advanced Programming Training Manual F-12 © MOTOMAN


INDEX
A

ACC/DEC TAGS 7-16


ADD F-5
ALARMS 1-1
ALL AXES ANGLE DISPLAY 5-4
ALL CMOS AREA B-5
ALTERNATE OUTPUT - ALLOCATION E-15
ANALOG INC OUTPUT - ALLOCATION. E-15
ANALOG OUTPUT - ALLOCATION E-15
AND F-11
ANDIF (WHILE~ENDWHILE) / (IFTHEN~ENDIF) 5-3, 5-6
ANTICIPATION OUTPUT E-9
ARGUMENTS 3-6, 4-4
ARITH INSTRUCTIONS 1-7, F-1
ARITHMETIC VARIABLES 2-4
ARRAY ADDRESSING 2-4
ASSIST KEY 1-8, 1-10, E-15
ATAN F-10
AUTO BACKUP SET E-2
AXIS INTERFERENCE [BASE/EXTERNAL] 10-7

B
BACK (BWD) 1-3
BASE FRAME [BF] B1-B8 6-2, 6-4
BASE AXIS INTERFERENCE 10-7
BATCH CMOS B-5
BATCH USER MEMORY B-5
BOOLEAN LOGIC ARITH INSTRUCTIONS F-10

C
CALL ARGF 3-6
CALL BXXX 3-2
CALL IG#( ) 3-1
CALL JOB:(NAME) 1-4
CALL UF#( ) TAG 8-6
CASE (SWITCH~CASE) 5-1, 5-4
CENTER POSITION TEACHING METHOD - INTF ZONE 10-2
CHANGING THE MACRO INST SET UP 4-9
CLEAR 1-8, F-9
CMOS.BIN B-6
CMOS.HEX B-5
COMMENT 1-6
COMMENT TAG FOR MOTION STEP 7-16
CONCURRENT JOB SYSTEM 3-12
CONTROL INSTRUCTIONS 1-4, 7-
CONVERSION FROM RELATIVE TO STANDARD 9-17
COS F-10
CNVRT F-2
CUBE DEFINITION METHODS 10-2
CWAIT 7-13

DX Advanced Programming Training Manual Index-1 © MOTOMAN


D
DATE/TIME E-1
DEC (DECREMENT) 1-8
DEC/ACC TAGS 7-16
DEFAULT (SWITCH~CASE) 5-1, 5-4
DEFAULT SPEED INSTRUCTION 7-5
DELETE INFORMATION FROM THE EXTERNAL MEMORY B-1, B-3
DELETE JOB 1-10
DELETING LOG DATA C-3
DIN (DIGITAL INPUT) 1-6, F-13
DISPLAY - ALLOCATION E-16
DISPLAY LADDER MONITOR 11-6
DIV F-6
DOUT (DIGITAL OUTPUT) 1-7
DYNAMIC EDITING (PAM) 9-9

E
EDIT BUFFER IN JOB CONTENT 1-12
ELSE (IFTHEN~ENDIF) 5-1, 5-6
ELSEIF (IFTHEN~ENDIF) 5-1, 5-5
ENDIF (IFTHEN~ENDIF) 5-1, 5-5
ENDSWITCH (SWITHCASE~ENDSWITCH) 5-1, 5-4
ENDWHILE (WHILE~ENDWHILE) 5-1, 5-3
ENERGY SAVING FUNCTION E-3
ENWAIT TAG 7-13
ERROR 1-1
ERROR MESSAGE 1-2
EXPANDED JOB HEADER TO RESERVE LOCAL VARIABLES 2-2
EXPANDED LANGUAGE LEVEL 2-2
EXTERNAL AXIS INTERFERENCE 10-7
EXTERNAL STATION AXES 6-7
EXTERNAL MEMORY DEVICE B-1

F
FOLDER B-1
FOR ~ NEXT 5-2
FORWARD (FWD) 1-3
FPT TAG (MOVC ONLY) 7-15
FUNCTIONAL CONDITION SETTING - PAM E-13
FUNCTION ENABLE E-6

G
GENERAL I/O NAME DISPLAY IN JOB 5-4
GETARG 3-7
GETE F-2
GETPOS F-4
GETS F-1
GETS $RV 3-11
GLOBAL VARIABLE ALLOCATION [VAR.DAT FILE] 2-1
GROUP I/O 1-7
GROUP SET 3-12

H
HALF-GROUP 1-7

DX Advanced Programming Training Manual Index-2 © MOTOMAN


I
IFTHEN ~ ENDIF 5-6
IN/OUT INSTRUCTIONS 1-6
INC (INCREMENT) 1-7
INCREMENTAL MOVE (IMOV) 7-3
INPUT/OUTPUT 1-7
INSTRUCTION - ALLOCATION E-13
INTERFERENCE AREAS 10-1
INTERFERENCE DATA EDIT 10-8
INTERLOCK - ASSIST 1-10, E-15
I/O-VAR CUSTOMIZE MONITOR SCREEN E-8

J
JET (JOB ENTRY TABLE) 3-3
JOB CALL - ALLOCATION E-13, E-14
JOB HEADER SETUP FOR ARGUMENT COMMENT/TYPE 3-7
JOB TYPE (CONCURRENT OR ROBOT) 3-12
JOG CONDITION SETTING E-12
JOG KEY ALLOCATE E-16
JOGGING COORDINATES 1-1
JUMP*LABEL & *LABEL 1-6
JUMP JOB:(NAME) 1-5

K
KEY ALLOCATE 4 BIT OUTPUT - HALF GROUP STATUS (0 TO 15). E-15
KEY ALLOCATE 8 BIT OUTPUT - GROUP STATUS (0 TO 255). E-15
KEY ALLOCATION (EACH) E-13
KEY ALLOCATION (SIM) E-15
KEY ALLOCATION FOR DISPLAY WITH [EACH] OR [SIM] E-16

L
LANGUAGE LEVEL E-4
LAYOUT MULTI-WINDOW 1-12
LINKING JOBS WITH CALL 1-4
LOAD B-1
LOCAL VARIABLE ADDRESSES 2-2
LOG DATA C-1
LOGON/LOGOFF DX100 USER PASSWORDS A-2

M
MACRO INST SET UP 4-9
MACRO JOB FUNCTION 4-1
MAIN MENU KEY 1-11
MAJOR ALARM 1-2
MAKER - ALLOCATION E-13
MANUAL TOOL DATA SCREEN 9-20
MANUAL SPEED 1-3, D-1
MASTER JOB CHANGE E-6
MASTER TASK PROGRAM STRUCTURE 3-13
MASTER TOOL FRAME (MTF) 6-5
MAX/MIN TEACHING METHOD INTERFERENCE AREA 10-4
MFRAME F-4
MINOR ALARM 1-2
MIRROR SHIFT ON PULSE DATA 9-6
MIRROR SHIFT ON ROBOT FRAME X-Z PLANE 9-7

DX Advanced Programming Training Manual Index-3 © MOTOMAN


MODE CHANGE BACKUP E-2
MOMENTARY OUTPUT - ALLOCATION . E-15
MONITOR SPECIFIC OUTPUTS INTR1 ~ INTR 64 10-10
MOTION TAGS 7-1
MOTION TO POSITION VARIABLE DATA 7-1
MOTION TYPE KEY 1-1, 7-1
MOTION TYPES 1-1, 7-1, 7-4
MOTOCAL 9-20
MOVE INSTRUCTION SET POSITION E-4
MSHIFT 8-5
MUL F-6
MULTI-JOB MODE VS SINGLE-JOB MODE 3-15
MULTI-WINDOW LAYOUT FUNCTION 1-12

N
NESTING JOBS 1-5
NEXT (FOR-NEXT) 5-1, 5-2
NOT F-12
NWAIT TAG 7-12

O
OPERATE CONDITIONS E-5
OPERATE ENABLE E-5
OR F-11
ORG. 1-3
ORIF (WHILE~ENDWHILE) / (IFTHEN~ENDIF) 5-3, 5-6
ORIENTATION TOOL SCREEN 9-20

P
PAM - DYNAMIC EDITING 9-9, E-13
PARALLEL SHIFT JOB 9-2
PARAMETERS D-1
PASSWORD USER ID OR LOGON/LOGOFF A-1, A-2, E-2
PATH CONFIRMATION 1-3
PATH CREATION 1-3
PAUSE 1-6
PERMANENT SHIFT FUNCTIONS 9-1
PLAYBACK CONDITION SETTING E-12
PMT FUNCTION (POSITION MODIFICATION FOR TOOL) 9-29
POSITION ADJUSTMENT BY NUMBER KEY INPUT 9-1
POSITIONING ACCURACY FINE=TAG 7-14
POSITION LEVEL PL=TAG 7-14
POSITION MODIFICATION FOR TOOL (PMT) 9-19
POSITION VARIABLES 2-4, 6-1
PSTART (PARALLEL START) 3-13
PULSE 1-7
PULSE OUTPUT ALLOCATION E-15
PWAIT (PARALLEL WAIT) 3-14

R
RAPID SEARCH TAG (SRCH RIN#) 7-10
REDO/UNDO 1-8
RELATIVE JOB CONVERSION FOR 3-D SHIFT 9-16
RELATIVE JOB CONVERSION FOR OFF-LINE EDITING 9-14
RELATIVE JOB XYZ [ROBOT] FOR EDITED TCP DATA 9-17

DX Advanced Programming Training Manual Index-4 © MOTOMAN


RELATIVE CONVERTED TO STANDARD 9-17
RELAY ON MONITOR SCREEN - S4C PARAMETER SETTINGS D-7
RESERVE JOB NAME E-14
RESERVE TIME BACKUP E-2
RESERVING LOCAL VARIABLES IN THE JOB HEADER 2-2
RET (RETURN) 1-5
RET VALUE $RV 3-10
ROBOT FRAME [RF] R1-R8 6-2, 6-3
RESERVED START E-7

S
S-AXIS LEFT/RIGHT CHECK FUNCTION 10-10
SAVE B-2
SAVE INFORMATION FROM CONTROLLER TO EXTERNAL MEMORY B-1
SAVING ORIGINAL TCP DATA FOR PMT 9-18
SAVING THE LOGDATA.DAT FILE C-2
SCALAR AND ARRAY VARIABLE ADDRESS NUMBERS 2-4
SECURITY LEVELS A-1
SET 1-8, F-7
SET SPEED E-16
SETE F-3
SETUP E-1
SHIFT KEYS - ASSIST 1-10
SHIFT INSTRUCTIONS (SFTON/SFTOF) 8-1
SHIFT VALUE 8-1, 8-6
SIN F-9
SLURBT & E/8 1-1, E-16
SOFTLIMITS D-2
SOUT FOR WAIT INTR AREA 10-9
SPECIFIC INPUT BACKUP. E-2
SPECIFIC OUTPUTS INTR1 ~ INTR64 10-10
SPEED INSTRUCTION 7-5
SQRT F-9
STANDARD LANGUAGE LEVEL E-4
STARTUP AUTO BACKUP E-2
STRING VARIABLES 2-4
STRUCTURED LANGUAGE 5-1
SUB F-5
SUBSET LANGUAGE LEVEL E-4
SWITCH CASE ~ ENDSWITCH 5-4
SYSTEM RETURN VALUE $RV 3-10
SYSTEM VARIABLES 2-5

T
TEACHING CONDITIONS E-4
TEMPORARY SHIFT INSTRUCTIONS 8-1
TEST START 1-3
TIME/DATE E-1
TIMER 1-6
TOOL CALIBRATION 9-20
TOOL COORD 1-1, E-5
TOOL FRAME [TF].TOOL NO. 00-63 6-2, 6-5
TOOL NO. SELECTION FOR MULTIPLE TCPS 6-5
TOOL NUMBER INTERLOCK FOR STEP ENTRY E-5
TOOL NUMBER SWITCH E-5
TRASH JOB LIST 1-11
TSYNC (TASK SYNCHRONIZATION) 3-16
DX Advanced Programming Training Manual Index-5 © MOTOMAN
U
UNDELETE JOB FUNCTION 1-10
UNDO/REDO 1-8
UNIVERSAL I/O VAR CUSTOMIZE E-8
UNITS (V=VELOCITY) E-5, E-16
UNTIL TAG 7-8
UNIVERSAL RELAY ON MONITOR SCREEN - S4C PARAMETER SETTINGS D-7
USER ALARMS 11-5
USER COORD 1-1, 1-2, E-11, E-12, E-13
USER FRAME UF#(1) ~ UF#(63) 1-2 , 6-2, 6-4
USER ID (PASSWORD) E-2
USER MESSAGE 11-4

V
VAR AND I/O CUSTOMIZE MONITOR SCREEN E-8
V=CONTROL_POINT_SPEED 7-5
VE=EXTERNAL AXIS SPEED, IF APPLICABLE 7-5
VERIFY B-1, B-3
VJ=JOINT_SPEED 7-5
VR=ANGLE_SPEED (VELOCITY OF ROTATION) 7-5

WAIT 1-6, F-13


WHILE ~ ENDWHILE 5-3
WORK HOME POSITION METHOD (CUBES 64-57 ONLY) 10-5
WRONG DATA LOG E-3

X
X (1ST ELEMENT OF XYZ TYPE P-VAR) F-3
XOR F-11, F-12
XX 1-3
XY 1-3
XYZ JOGGING COORD 1-1, 1-2
XZ-PLANE FOR MIRROR SHIFT 9-7

Y
Y (2ND ELEMENT OF XYZ TYPE P-VAR) F-3

Z
Z (3RD ELEMENT OF XYZ TYPE P-VAR) F-3

DX Advanced Programming Training Manual Index-6 © MOTOMAN

You might also like