I605 Ev+ Language Reference Manual en
I605 Ev+ Language Reference Manual en
I-E-01
Copyright Notice
The information contained herein is the property of Omron Adept Technologies, Inc., and shall not be
reproduced in whole or in part without prior written approval of Omron Adept Technologies, Inc. The
information herein is subject to change without notice and should not be construed as a commitment by
Omron Adept Technologies, Inc. The documentation is periodically reviewed and revised.
Omron Adept Technologies, Inc., assumes no responsibility for any errors or omissions in the
documentation. Critical evaluation of the documentation by the user is welcomed. Your comments assist
us in preparation of future documentation. Please submit your comments to: [email protected].
Copyright 1994 - 2016 by Omron Adept Technologies, Inc. All rights reserved.
Page 3
Table Of Contents
Introduction 15
Compatibility 16
Related Publications 16
Dangers, Warnings, Cautions, and Notes in Manual 17
Conventions 18
Keyword Overview 21
New or Enhanced Keywords 22
eV+ Language Quick Reference 23
Keyword Descriptions 41
Descriptions of eV+ Keywords 42
Documentation Conventions for Keywords 42
ABORT program instruction 45
ABOVE program instruction 47
ABS real-valued function 48
ACCEL program instruction 49
ACCEL real-valued function 52
ACOS real-valued function 54
ALIGN program instruction 55
ALIGN transformation function 56
ALWAYS keyword 58
AND operator 59
ANY program instruction 60
APPRO program instruction 61
ASC real-valued function 63
ASIN real-valued function 65
ATAN2 real-valued function 66
ATTACH program instruction 67
AUTO program instruction 73
AUTO.POWER.OFF system switch 76
BAND operator 78
BASE program instruction 80
BASE transformation function 82
Page 5
BCD real-valued function 83
BELOW program instruction 84
BELT real-valued function 85
BELT system switch 87
BELT.MODE system parameter 89
BITS program instruction 91
BITS real-valued function 93
BMASK real-valued function 95
BOR operator 96
BRAKE program instruction 98
BREAK program instruction 99
BSTATUS real-valued function 100
BXOR operator 102
BY keyword 104
CALIBRATE program instruction 105
CALL program instruction 109
CALLP program instruction 112
CALLS program instruction 114
CAS real-valued function 116
CASE program instruction 118
$CHR string function 121
CLEAR.EVENT program instruction 122
CLEAR.LATCHES program instruction 123
CLOSE and CLOSEI program instruction 125
COARSE program instruction 127
COM operator 129
CONFIG real-valued function 130
COS real-valued function 136
CP system switch 137
CPOFF program instruction 138
CPON program instruction 140
CYCLE.END program instruction 142
DBLB real-valued function 144
$DBLB string function 146
DCB real-valued function 147
DECEL.100 system switch 148
Page 6
$DECODE string function 149
DECOMPOSE program instruction 152
$DEFAULT string function 154
DEFBELT program instruction 156
DEFINED real-valued function 159
DELAY program instruction 161
DELAY.IN.TOL system switch 163
DELAY.POWER.OFF system switch 164
DEPART and DEPARTS program instruction 165
DEST transformation function 167
DETACH program instruction 169
DEVICE program instruction 171
DEVICE real-valued function 173
DEVICES program instruction 175
DISABLE program instruction 177
DISTANCE real-valued function 179
DN.RESTART program instruction 180
DO program instruction 181
DOS program instruction 183
DRIVE program instruction 185
DRY.RUN system switch 187
DURATION program instruction 189
DURATION real-valued function 192
DX, DY, DZ real-valued function 194
ELSE program instruction 196
ENABLE program instruction 197
$ENCODE string function 199
END program instruction 202
.END keyword 203
ERROR real-valued function 204
$ERROR string function 208
ESTOP program instruction 209
EXECUTE program instruction 210
EXIT program instruction 214
FALSE real-valued function 216
FCLOSE program instruction 217
Page 7
FCMND program instruction 219
FCOPY program instruction 229
FDELETE program instruction 231
FEMPTY program instruction 233
FINE program instruction 235
FLIP program instruction 237
FLTB real-valued function 241
$FLTB string function 243
FOPEN program instruction 244
FOPEN_ program instruction 247
FOR program instruction 251
FORCE._ program instruction 253
FRACT real-valued function 256
FRAME transformation function 257
FREE real-valued function 259
FSEEK program instruction 261
FSET program instruction 263
GETC real-valued function 266
GET.EVENT real-valued function 268
GLOBAL program instruction 269
GOTO program instruction 271
HALT program instruction 273
HAND real-valued function 274
HAND.TIME system parameter 275
HERE program instruction 277
HERE transformation function 279
ID real-valued function 280
$ID string function 287
IDENTICAL real-valued function 288
IF logical_expr THEN program instruction 289
IF logical_expr GOTO program instruction 291
IGNORE program instruction 293
INRANGE real-valued function 294
INSTALL program instruction 297
INT real-valued function 298
INTB real-valued function 299
Page 8
$INTB string function 301
INVERSE transformation function 302
IOSTAT real-valued function 304
IPS keyword 307
JHERE program instruction 308
JMOVE program instruction 309
JOG program instruction 310
KEYMODE program instruction 314
KILL program instruction 316
LAST real-valued function 317
LATCH transformation function 319
LATCHED real-valued function 321
LEFTY program instruction 323
LEN real-valued function 325
LNGB real-valued function 326
$LNGB string function 328
LOCAL program instruction 330
LOCK program instruction 332
MAX real-valued function 334
MC program instruction 335
MCS program instruction 337
MESSAGES system switch 339
$MID string function 340
MIN real-valued function 341
MMPS keyword 342
MOD operator 343
MOVE and MOVES program instruction 344
MOVEC program instruction 346
MULTIPLE program instruction 354
NETWORK real-valued function 356
NEXT program instruction 358
NOFLIP program instruction 360
NONULL program instruction 361
NOOVERLAP program instruction 363
NORMAL transformation function 365
NOT operator 366
Page 9
NOT.CALIBRATED system parameter 367
NULL program instruction 369
NULL transformation function 371
OFF real-valued function 372
ON real-valued function 373
OPEN program instruction 374
OR operator 376
OUTSIDE real-valued function 378
OVERLAP program instruction 379
PACK program instruction 381
PANIC program instruction 383
PARAMETER program instruction 384
PARAMETER real-valued function 386
PAUSE program instruction 388
#PDEST precision-point function 389
PDNT.CLEAR program instruction 390
PDNT.NOTIFY program instruction 391
PDNT.WRITE program instruction 393
PENDANT real-valued function 396
#PHERE precision-point function 399
PI real-valued function 400
PING monitor command 401
#PLATCH precision-point function 402
POS real-valued function 403
POWER system switch 404
#PPOINT precision- point function 406
PRIORITY real-valued function 408
PROCEED program instruction 408
.PROGRAM program instruction 411
PROMPT program instruction 414
RANDOM real-valued function 416
REACT program instruction 417
REACTE program instruction 420
REACTI program instruction 422
READ program instruction 424
READY program instruction 428
Page 10
RELAX and RELAXI program instruction 430
RELEASE program instruction 432
RESET program instruction 433
RETRY program instruction 433
RETRY monitor command 434
RETURN program instruction 436
RETURNE program instruction 437
RIGHTY program instruction 438
ROBOT system switch 439
ROBOT.OPR program instruction 441
ROBOT.OPR real-valued function 447
RUNSIG program instruction 449
RX, RY, RZ transformation functions 451
SCALE transformation function 452
SCALE.ACCEL system switch 453
SCALE.ACCEL.ROT system switch 455
SELECT program instruction 456
SELECT real-valued function 459
SET program instruction 461
SET.EVENT program instruction 463
#SET.POINT precision point function 464
SETBELT program instruction 465
SETDEVICE program instruction 467
SHIFT transformation function 469
SIG real-valued function 470
SIG.INS real-valued function 472
SIGN real-valued function 474
SIGNAL program instruction 475
SIN real-valued function 477
SINGLE program instruction 478
SOLVE.ANGLES program instruction 480
SOLVE.FLAGS real-valued function 487
SOLVE.TRANS program instruction 489
SPEED program instruction 491
SPEED real-valued function 494
SQR real-valued function 496
Page 11
SQRT real-valued function 497
STATE real-valued function 498
STATUS real-valued function 507
STOP program instruction 509
STRDIF real-valued function 511
SWITCH program instruction 513
SWITCH real-valued function 515
$SYMBOL string function 517
SYMBOL.PTR real-valued function 518
$SYS.INFO string function 519
TAS real-valued function 521
TASK real-valued function 524
TIME program instruction 527
TIME real-valued function 529
$TIME string function 532
$TIME4 string function 534
TIMER program instruction 536
TIMER real-valued function 537
TOOL program instruction 540
TOOL transformation function 541
TPS real-valued function 542
TRANS transformation function 543
$TRANSB string function 545
TRANSB transformation function 546
TRUE real-valued function 548
$TRUNCATE string function 549
TYPE program instruction 550
$UNPACK string function 553
UNTIL program instruction 555
UPPER system switch 556
VAL real-valued function 558
VALUE program instruction 559
WAIT program instruction 560
WAIT.EVENT program instruction 562
WHILE program instruction 565
WINDOW program instruction 567
Page 12
WINDOW real-valued function 569
WRITE program instruction 573
XOR operator 576
Index 682
Page 13
Introduction
Introduction
The following topics are described in this chapter:
Compatibility 16
Related Publications 16
Dangers, Warnings, Cautions, and Notes in Manual 17
Conventions 18
Page 15
Compatibility
Compatibility
This guide is for use with eV+ systems version v2.x and later. This guide provides reference
material and descriptions of keywords for the eV+ programming language. For information on
the eV+ operating system and descriptions of the monitor commands, see the eV+
Operating System User's Guide and the eV+ Operating System Reference Guide.
See the eV+ Release Notes for a summary of changes for each version.
Related Publications
This reference guide is a companion to the eV+ Language User's Guide, which covers the
principles of the eV+ programming language and robot-control system.
The most current releases of some related publications may be for an earlier version of the
eV+ system. You need to use them in conjunction with the release notes published since
those books were published.
You may also need to refer to one or more of the manuals listed in the following table.
ACE User's Guide Describes the ACE user interface, which is used for
configuration, control, and programming of the
Omron Adept robot system.
ACE Sight User's Guide Describes the interface, use, and programming of the
optional ACE Sight vision system.
ACE Sight Reference Guide Describes the ACE Sight vision commands used for
custom vision programming.
Page 16
Dangers, Warnings, Cautions, and Notes in Manual
Robot or motion device Instructions for installing and maintaining the motion
user's guides (if connected device connected to your system.
to your system)
Page 17
Conventions
Conventions
Typographic Conventions
The following typographic conventions are used throughout this manual:
This Represents
Page 18
Conventions
words.
Keyboard Conventions
Key combinations appear in the following format:
Notation Meaning
Choosing an item carries out an action. For example, choosing a menu item may open a
window or carry out a command. You can also initiate an action by choosing a command
button (a push button or a standard button). You often must select an item before you can
choose it.
Often you can use a combination of keyboard and mouse techniques for selecting and
choosing.
Pressing refers to physical buttons or keys. For example, you press the save key or press the
ENTER key. By contrast, you select or choose a window button.
Page 19
Conventions
satisfied with all three options occurs when data is being returned in one of the parameters.
In this case, a variable must be used; the parameter description states this restriction.
Special Notation
Numbers shown in other than decimal format are preceded with a carat (^) and the letter H
for hexadecimal or B for binary, and with just a carat for Octal. For example, ^HF = ^B1111
= ^17 = 15.
Page 20
Keyword Overview
Keyword Overview
The following topics are described in this chapter:
Page 21
New or Enhanced Keywords
Page 22
eV+ Language Quick Reference
A B C D E F G H I J K L M
N O P Q R S T U V W X Y Z
Type Description
K Keyword
O Operator
PI Program instruction
RF Real-valued function
SW System switch
SP System parameter
TF Transformation function
ST String function
PP Precision point
ABOVE PI Request a change in the robot configuration during the next motion
so that the elbow is above the line from the shoulder to the wrist.
ACOS RF Return the size of the angle (in degrees) that has its trigonometric
cosine equal to value.
ALIGN PI Align the robot tool Z axis with the nearest world axis.
Page 23
eV+ Language Quick Reference
ASIN RF Return the size of the angle (in degrees) that has its trigonometric
sine equal to value.
ATAN2 RF Return the size of the angle (in degrees) that has its trigonometric
tangent equal to value_1/value_2.
AUTO.POWER.OFF SW Control whether or not eV+ disables high power when certain
motion errors occur.
BASE PI
BASE TF Return the transformation value that represents the translation and
rotation set by the last BASE command or instruction.
BELOW PI Request a change in the robot configuration during the next motion
so that the elbow is below the line from the shoulder to the wrist.
BELT SW Control the function of the conveyor tracking features of the eV+
system.
Page 24
eV+ Language Quick Reference
BELT RF Return information about a conveyor belt being tracked with the
conveyor tracking feature.
BITS RF Read multiple digital signals and return the value corresponding to
the binary bit pattern present on the signals.
CALIBRATE PI Initialize the robot positioning system with the robot's current
position.
CAS RF Compare a real variable to a test value, and conditionally sets a new
value as one indivisible operation.
CLOSEI
Page 25
eV+ Language Quick Reference
CONFIG RF Return a value that provides information about the robot's geometric
configuration, or the status of the motion servo-control features.
CPOFF PI Instruct the eV+ system to stop the robot at the completion of the
next motion instruction (or all subsequent motion instructions) and
null position errors.
CPON PI Instruct the eV+ system to execute the next motion instruction (or
all subsequent motion instructions) as part of a continuous path.
CYCLE.END PI Terminate the executing program in the specified task the next time
it executes a STOP program instruction (or its equivalent).
$DEFAULT ST Return a string containing the current system default device, unit,
and directory path for disk file access.
DEFBELT PI Define a belt variable for use with a conveyor tracking robot.
DEF.DIO PI Assign virtual digital I/O to standard eV+ signal numbers for use by
standard eV+ instructions, functions, and monitor commands.
DELAY.IN.TOL SW Controls the timing of COARSE or FINE nulling after eV+ completes a
motion segment.
DELAY.POWER.OFF SW Enable/disable the ESTOP timer delay feature for servo errors.
Page 26
eV+ Language Quick Reference
DEPARTS
DEVICE RF Return a real value from a specified device. The value may be data or
status information, depending upon the device and the parameters.
DISTANCE RF Determine the distance between the points defined by two location
values.
DURATION PI Set the minimum execution time for subsequent robot motions.
DY
DZ
Page 27
eV+ Language Quick Reference
ERROR RF Return the error number of a recent error that caused program
execution to stop or caused a REACTE reaction.
EXIT PI Branch to the statement following the nth nested loop of a control
structure.
FALSE RF Return the value used by eV+ to represent a logical false result.
FCLOSE PI Close the disk file, graphics window, or graphics icon currently open
on the specified logical unit.
FCOPY PI Copy the information in an existing disk file to a new disk file.
FDELETE PI Delete the specified disk file, the specified graphics window and all its
child windows, or the specified graphics icon.
FEMPTY PI Empty any internal buffers in use for a disk file or a graphics window
by writing the buffers to the file or window if necessary.
FLIP PI Request a change in the robot configuration during the next motion
so that the pitch angle of the robot wrist has a negative value.
FOPEN PI Create and open a new graphics window or TCP connection, or open
an existing graphics window for subsequent input or output.
Page 28
eV+ Language Quick Reference
FSEEK PI Position a file open for random access and initiate a read operation on
the specified record.
GCLIP PI Set the clipping rectangle for all graphics instructions (except
GFLOOD), to suppress all subsequent graphics that fall outside the
rectangle.
GCOLOR PI Set the foreground and background colors for subsequent graphics
output.
GCOPY PI Copy one region of a window to another region in the same window.
GETC RF Return the next character (byte) from a device or input record on the
specified logical unit.
GET.EVENT RF Return events that are set for the specified task.
GLOBAL PI Declare a variable to be global and specify the type of the variable.
Page 29
eV+ Language Quick Reference
GTEXTURE PI Set the opaque/transparent mode and the texture pattern for
subsequent graphics output.
IDENTICAL RF Determine whether two location values are exactly the same.
IF... GOTO PI Branch to the specified step label if the value of the logical expression
is TRUE (nonzero).
IF ... THEN PI Conditionally execute a group of instructions (or one of two groups)
depending on the result of a logical expression.
Page 30
eV+ Language Quick Reference
INTB RF Return the value of two bytes of a string interpreted as a signed 16-
bit binary integer.
IOSTAT RF Return status information for the last input/output operation for a
device associated with a logical unit.
IPS K Specify the units for a SPEED instruction as inches per second.
JMOVE PI Moves all robot joints to positions described by a list of joint values.
The robot performs a coordinated motion in joint-interpolated mode.
This instruction supports MicroeV+.
JOG PI Moves ("jogs") the specified axis or joint of the robot. Each time JOG
executes, the specified axis or joint moves for 200 ms.
KILL PI Clear a program execution stack and detach any I/O devices that are
attached.
LEFTY PI Request a change in the robot configuration during the next motion
so that the first two links of a SCARA robot resemble a human's left
arm.
LNGB RF Return the value of four bytes of a string interpreted as a signed 32-
bit binary integer.
$LNGBLOCK ST Set the program reaction lock-out priority to the value given.
Page 31
eV+ Language Quick Reference
MMPS K Specify the units for a SPEED instruction as millimeters per second.
NEXT PI Branch to the END statement of the nth nested loop, perform the
loop test, and loop if appropriate.
NOFLIP PI Request a change in the robot configuration during the next motion
so that the pitch angle of the robot wrist has a positive value.
NONULL PI Instruct the eV+ system not to wait for position errors to be nulled at
the end of continuous-path motions.
NOT.CALIBRATED SP Indicate (or assert) the calibration status of the robots connected to
Page 32
eV+ Language Quick Reference
the system.
NULL PI Instruct the eV+ system to wait for position errors to be nulled at the
end of continuous path motions.
OFF RF Return the value used by eV+ to represent a logical false result.
OPENI
OVERLAP PI Disable the NOOVERLAP limit-error checking either for the next
motion or for all subsequent motions.
PANIC PI Simulate an external E-stop or panic button press; stop all robots
immediately, but do not turn off HIGH POWER.
Page 33
eV+ Language Quick Reference
PRIORITY RF Return the current reaction lock-out priority for the program.
PROMPT PI Display a string on the system terminal and wait for operator input.
REACTE PI Initiate the monitoring of errors that occur during execution of the
current program task.
READ PI Read a record from an open file or from an attached device that is not
file oriented. For a network device, read a string from an attached
and open TCP connection.
READY PI Move the robot to the READY location above the workspace, which
forces the robot into a standard configuration.
RELAXI
Page 34
eV+ Language Quick Reference
RIGHTY PI Request a change in the robot configuration during the next motion
so that the first two links of the robot resemble a human's right arm.
ROBOT.OPR PI Execute operations that are specific to the currently selected robot or
robot module.
RUNSIG PI Turn on (or off) the specified digital signal as long as execution of the
invoking program task continues.
RY
RZ
SCALE.ACCEL.ROT SW Specify whether or not the SCALE.ACCEL switch takes into account
the Cartesian rotational speed during straight-line motions.
SELECT PI Select a unit of the named device for access by the current task.
SELECT RF Return the unit number that is currently selected by the current
task for the device named.
SET PI Set the value of the location variable on the left equal to the location
value on the right of the equal sign.
SETBELT PI Set the encoder offset of the specified belt variable equal to the value
of the expression.
Page 35
eV+ Language Quick Reference
SIG RF Returns the logical AND of the states of the indicated digital signals.
SIGN RF Return the value 1, with the sign of the value parameter.
SINGLE PI Limit rotations of the robot wrist joint to the range -180 degrees to
+180 degrees.
SOLVE.ANGLES PI Compute the robot joint positions (for the current robot) that are
equivalent to a specified transformation.
SPIN PI Rotate one or more joints of the selected robot at a specified speed.
STATE RF Return a value that provides information about the robot system
state.
STRDIF RF Compare two strings byte by byte for the purpose of sorting. This
function always compares bytes exactly. It ignores the setting of the
UPPER system switch.
Page 36
eV+ Language Quick Reference
TAS RF Return the current value of a real-valued variable and assign it a new
value. The two actions are done indivisibly so that no other program
task can modify the variable at the same time.
TIME RF Return an integer value representing either the four-digit date or the
time specified in the given string parameter.
$TIME ST Return a string value containing either the current system date and
time or the specified date and time.
$TIME4 ST Return a string value containing either the current system four-digit
date and time or the specified four-digit date and time.
TIMER PI Set the specified system timer to the given time value.
TIMER RF Return the current time value of the specified system timer.
TOOL PI Set the internal transformation used to represent the location and
orientation of the tool tip relative to the tool mounting flange of the
robot.
TOOL TF Return the value of the transformation specified in the last TOOL
command or instruction.
TPS RF Return the number of ticks of the system clock that occur per second
(Ticks Per Second).
$TRUNCATE ST Return all characters in the input string until an ASCII NULL (or the
Page 37
eV+ Language Quick Reference
UNTIL PI Indicate the end of a DO ... UNTIL control structure and specify the
expression that is evaluated to determine when to exit the loop. The
loop continues to be executed until the expression value is nonzero.
UPPER SW Control whether or not the case of each character is ignored when
string comparisons are performed.
VAL RF Return the real value represented by the characters in the input
string.
VALUE PI Indicate the values that a CASE statement expression must match
in order for the program statements immediately following to be
executed.
VPARAMETER PI Sets the current value of a vision tool parameter. For details, see the
ACE Sight Reference Guide.
Can also be used with the AnyFeeder. For details, see the Adept
AnyFeeder User's Guide.
VPARAMETER RF Gets the current value of a vision tool parameter. For details, see the
ACE Sight Reference Guide.
VRUN PI Initiates the execution of a vision sequence. For details, see the ACE
Sight Reference Guide.
Can also be used with the AnyFeeder. For details, see the Adept
AnyFeeder User's Guide.
VSTATE RF Returns the state of the execution of a sequence. For details, see the
ACE Sight Reference Guide.
Can also be used with the AnyFeeder. For details, see the Adept
AnyFeeder User's Guide.
Page 38
eV+ Language Quick Reference
VWAITI PI Waits efficiently until the specified vision sequence reaches the state
specified by the type parameter. For details, see the ACE Sight
Reference Guide.
Can also be used with the AnyFeeder. For details, see the Adept
AnyFeeder User's Guide.
WAIT PI Put the program into a wait loop for one system cycle. If a condition
is specified, wait until the condition is TRUE.
WINDOW PI Set the boundaries of the operating region of the specified belt
variable for conveyor tracking.
WINDOW RF Return a value that indicates where the location described by the
belt-relative transformation value is relative to the predefined
boundaries of the working range on a moving conveyor belt.
WRITE PI Write a record to an open file, or to any I/O device. For a network
device, write a string to an attached and open TCP connection.
Page 39
Keyword Descriptions
Keyword Descriptions
The following topics are described in this chapter:
Page 41
Descriptions of eV+ Keywords
l Program Instructions
l Functions
l System Parameters
l System Switches
This manual often refers to monitor commands. Monitor commands are part of the eV+
operating system. The eV+ operating system commands are detailed in the eV+ Operating
System Reference Guide.
The keywords are presented in alphabetical order, with the description for each keyword
starting on a new page. For details on what is included, see Documentation Conventions for
Keywords.
Syntax
An abbreviated syntax is shown for some keywords. This is done when the abbreviated form
is the most commonly used variation of the complete syntax.
This section presents the syntax of the keyword. The keyword is shown in uppercase, and the
arguments are shown in lowercase. The keyword must be entered exactly as shown 1.
Parentheses must be placed exactly as shown. Required keywords, parameters, and marks
such as equal signs and parentheses are shown in bold type; optional keywords, parameters,
and marks are shown in regular type. In the example:
Page 42
Documentation Conventions for Keywords
Function
This section gives a brief description of the keyword.
Usage Considerations
This section lists any restrictions on the keyword's use. If specific hardware or other options
are required, they are listed here.
Parameters
The requirements for input and output parameters are explained in this section. If a
parameter is optional, it is noted here. When an instruction line is entered, optional
parameters do not have to be specified and the system will assume a default. Unspecified
parameters at the end of an argument list can be ignored. Unspecified parameters in the
middle of an argument list must be represented by commas. For example, the following
keyword has four parameters-the first and third are used, and the second and fourth are left
unspecified:
SAMPLE.INST var_1,,"test"
String and numeric input parameters can be constant values (3.32, part_1, etc.) or any
legitimate variable names. The data type of the constant or variable must agree with that
expected by the instruction. String variables must be preceded with a $. Precision-point
variables must be preceded with a #. Belt variables must be preceded with a %. String
constants must be enclosed in quotes. Real and integer constants can be used without
modification. Note that some eV+ keywords cannot be used as variable names.
Details
This section describes the function of the keyword in detail.
Page 43
Documentation Conventions for Keywords
Examples
Examples of correctly formed instruction lines are presented in this section.
Related Keywords
Additional keywords that are similar or are frequently used in conjunction with this
instruction are listed here.
Any related keywords that are monitor commands are described in the eV+ Operating
System Reference Guide.
1Inthe program editor, instructions can be abbreviated to a length that uniquely identifies
the keyword.
Page 44
ABORT program instruction
Syntax
ABORT task_num
Function
Terminate execution of an executing program task.
Usage Considerations
ABORT is ignored if no program is executing as the specified task.
ABORT does not force DETACH or FCLOSE operations on the disk or serial communication
logical units. If the program has one or more files open and you decide not to resume
execution of the program, use a KILL command to close all the files and detach the logical
units.
Parameter
Details
Terminates execution of the specified active executable program after completion of the step
currently being executed. If the task is controlling a robot, robot motion terminates at the
completion of the current motion. (Program execution can be resumed with the PROCEED
command.)
Related Keywords
ABORT monitor command
Page 45
ABORT program instruction
Page 46
ABOVE program instruction
Syntax
ABOVE
Function
Request a change in the robot configuration during the next motion so that the elbow is
above the line from the shoulder to the wrist.
Usage Considerations
Configuration changes cannot be made during straight-line motions.
If the selected robot does not support an ABOVE configuration, this instruction is ignored by
the robot (SCARA robots, for example, cannot have an ABOVE configuration).
The ABOVE instruction can be executed by any program task as long as the robot selected by
the task is not attached by any other task, however if the robot is not attached, this
instruction has no effect. The instruction applies to the robot selected by the task.
If the eV+ system is not configured to control a robot, executing the ABOVE instruction
causes an error.
ABOVE/BELOW
Related Keywords
BELOW program instruction
Page 47
ABS real-valued function
Syntax
ABS (value)
Function
Return absolute value.
Parameter
Details
Returns the absolute value (magnitude) of the argument provided.
Examples
ABS(0.123) ;Returns 0.123
ABS(-5.462) ;Returns 5.462
ABS(1.3125E-2) ;Returns 0.013125
belt.length = part.size/ABS(belt.scale)
Page 48
ACCEL program instruction
Syntax
ACCEL (profile) acceleration, deceleration
Function
Set acceleration and deceleration for robot motions. Optionally, specify a defined acceleration
profile.
Usage Considerations
The ACCEL instruction can be executed by any program task as long as the robot selected by
the task is not attached by any other task. The instruction applies to the robot selected by
the task.
If the eV+ system is not configured to control a robot, executing the ACCEL instruction
causes the error *Robot not attached to this program*.
Before an acceleration/deceleration profile can be used, it must be defined for the selected
robot (profile 0 is always defined). (The robot configuration is edited using the ACE software,
see the ACE User's Guide.)
Parameters
profile Optional integer specifying the acceleration profile to use. Acceptable
values are 0 to 8 (depending on the number of defined profiles). The
default is the last specified profile (see Details for the number of the
start-up profile). If a profile is specified that has not been defined,
profile 0 is used.
Page 49
ACCEL program instruction
Details
If profile 0 is used, a square wave acceleration profile is generated at the beginning and end of
the motion.
If a profile is specified, that profile is invoked for subsequent robot motions. Defined profiles
set the maximum rate of change of the acceleration and deceleration. The values set with
this instruction define the maximum acceleration and deceleration magnitudes that are
achieved.
When the eV+ system is initialized, the profile, acceleration, and deceleration values are set
to initial values, which can be defined by the ACE controller configuration tools. As delivered
by Omron Adept, the initially selected profile may be either 0 or 1 depending on the type of
robot. The settings are not affected when program execution starts or stops, or when a ZERO
command is processed.
Normally, the robot manufacturer sets the 100% acceleration and deceleration values to
rates that can be achieved with typical payloads and robot link inertias. However, because the
actual attainable accelerations vary greatly as a function of the end-effector, payload, and the
initial and final locations of a motion, accelerations greater than 100% may be permitted for
your robot. The limits for the maximum values are defined by the robot manufacturer and
vary from one type of robot to the next. If you specify a higher acceleration than is permitted,
the limit established by the robot manufacturer is utilized.
You can use the functions ACCEL(3) and ACCEL(4) to determine the maximum allowable
acceleration and deceleration settings.
For a given motion, the maximum attainable acceleration may actually be less than what you
have requested. This occurs when a profile with a nonzero acceleration ramp time is used and
there is insufficient time to ramp up to the maximum acceleration. That is, for a given jerk, a
specific time must elapse before the acceleration can be changed from zero to the specified
maximum value. If the maximum acceleration cannot be achieved, the trapezoidal profile is
reduced to a triangular shape. This occurs under two circumstances:
1. The motion is too short. In this case, the change in position is achieved before the
maximum acceleration can be achieved.
2. The maximum motion speed is too low. In this case, the maximum speed is achieved
before the maximum acceleration.
In both of these situations, raising the maximum acceleration and deceleration values does
not affect the time for the motion.
Hint: If you increase the maximum acceleration and deceleration values but the motion time
does not change, try the following: increase the program speed, switch to an acceleration
profile that allows faster acceleration ramp times, or switch to acceleration profile 0, which
specifies a square-wave acceleration profile.
Page 50
ACCEL program instruction
NOTE: This type of acceleration limiting cannot occur with acceleration profile 0 because
a square-wave acceleration instantaneously changes acceleration values without
ramping.
Examples
Set the default acceleration time to 50% of normal and the deceleration time to 30% of
normal:
ACCEL 50, 30
ACCEL ,60
Reduce the acceleration and deceleration to one half of their current settings:
Invoke defined profile #2 and set the acceleration magnitude to 80% of the defined rate:
ACCEL (2) 80
Related Keywords
ACCEL real-valued function
Page 51
ACCEL real-valued function
Syntax
ACCEL (select)
Function
Return the current setting for robot acceleration or deceleration setting or return the
maximum allowable percentage limits defined in the robot configuration profile. (The robot
configuration is edited using the ACE software, see the ACE User's Guide.)
Usage Considerations
The ACCEL function returns information for the robot selected by the task executing the
function.
If the eV+ system is not configured to control a robot, use of the ACCEL function does not
generate an error due to the absence of a robot. However, the information returned by the
function may not be meaningful.
Parameter
1 Acceleration
2 Deceleration
Page 52
ACCEL real-valued function
Examples
ACCEL(1) ;Return the current acceleration setting.
ACCEL(2) ;Return the current deceleration setting.
Related Keywords
ACCEL program instruction
Page 53
ACOS real-valued function
Syntax
ACOS (value)
Function
Return the size of the angle (in degrees) that has its trigonometric cosine equal to value.
Usage Considerations
The value parameter must be in the range of -1.0 to +1.0.
Any value outside this range will cause the error *Illegal value*.
Parameter
Details
Returns the inverse cosine (arccosine) of the argument, which is assumed to be in the range
of -1.0 to +1.0. The resulting value is always in the range of 0.0 to +180.0, inclusive.
Examples
ACOS(0) ;Returns 90
ACOS(-1) ;Returns 180
ACOS(0.1) ;Returns 84.2608295
ACOS(0.5) ;Returns 60
NOTE: TYPE, PROMPT, and similar instructions output the results of the above examples
as single-precision values. However, they are actually stored and manipulated as double-
precision values. The LISTR monitor command will display real values to full precision.
Page 54
ALIGN program instruction
Syntax
ALIGN
Function
Align the robot tool Z-axis with the nearest world axis.
Usage Considerations
The ALIGN instruction can be executed by any program task as long as the task has attached
a robot. The instruction applies to the robot selected by the task.
If the system is not configured to control a robot, executing the ALIGN instruction causes an
error.
Details
Causes the tool to be rotated so that its Z-axis is aligned parallel to the nearest axis of the
World coordinate system. This instruction is primarily useful for lining up the tool before a
series of locations is taught. This is most easily done by using the monitor DO command.
Related Keywords
SELECT program instruction
Page 55
ALIGN transformation function
Syntax
ALIGN (location)
Function
Computes and returns the aligned version of the location parameter.
Parameter
Details
Returns a modified version of the input location that is aligned parallel to the nearest axis of
the World coordinate system. This instruction is primarily useful for lining up the tool before a
series of locations is taught.
Related Keywords
SELECT program instruction
Page 56
ALWAYS keyword
ALWAYS keyword
Syntax
...ALWAYS
Function
Used with certain program instructions to specify a long-term effect.
Details
ALWAYS can be specified with any of the instructions listed below as related keywords. When
ALWAYS is specified, the effect of the instruction continues until explicitly disabled.
Otherwise, the effect of the instruction applies only to the next robot motion.
Examples
Permanently set the robot motion speed:
SPEED 50 ALWAYS
COARSE ALWAYS
Related Keywords
COARSE program instruction
Page 58
AND operator
AND operator
Syntax
...value AND value...
Function
Perform the logical AND operation on two values.
Details
The AND operator operates on two values, resulting in their logical AND combination. For
example, during the AND operation
c = a AND b
a b c
The result is TRUE only if both of the two operand values are logically TRUE. To review the
order of evaluation for operators within expressions, see the section Order of Evaluation in
the eV+ Language User's Guide.
Example
;The instructions following the IF will be executed if
;both "ready" is TRUE (nonzero) and "count" equals 1.
IF ready AND (count == 1) THEN
Related Keywords
BAND operator
OR operator
XOR operator
Page 59
ANY program instruction
Syntax
ANY
Function
Signal the beginning of an alternative group of instructions for the CASE structure.
Usage Considerations
The ANY instruction must be within a CASE structure.
Details
See the description of the CASE structure.
Related Keywords
CASE program instruction
Page 60
APPRO program instruction
Syntax
APPRO location, distance
Function
Start a robot motion toward a location defined relative to specified location.
Usage Considerations
APPRO causes a joint-interpolated motion.
The APPRO and APPROS instructions can be executed by any program task as long as the
task has attached a robot. The instructions apply to the robot selected by the task.
If the eV+ system is not configured to control a robot, executing these instructions will cause
an error.
Parameters
location Transformation value that defines the basis for the final location.
distance Real-valued expression that specifies the distance along the robot tool Z
axis between the specified location and the actual desired destination.
A positive distance sets the tool back (negative tool-Z) from the
specified location; a negative distance offsets the tool forward (positive
tool-Z).
Details
These instructions initiate a robot motion to the orientation described by the given location
value. The position of the destination location is offset from the given location by the
distance given, measured along the tool Z axis.
Examples
APPRO place,offset
Page 61
APPRO program instruction
Moves the tool, by joint-interpolated motion, to a location offset millimeters from that defined
by the transformation place. The offset is along the resultant Z axis of the tool.
APPROS place,-50
Moves the tool along a straight line to a location 50 millimeters from that defined by the
transformation place, with the offset along the resultant Z axis of the tool to a location
beyond the location place.
Related Keywords
DEPART program instruction
Page 62
ASC real-valued function
Syntax
ASC (string, index)
Function
Return an ASCII character value from within a string.
Parameters
string String expression from which the character is to be picked. If the string
is empty, the function returns the value -1.
If the value of the index is negative, or greater than the length of the
string, the function returns the value -1.
Details
The ASCII value of the selected character is returned as a real value.
Examples
;Returns the ASCII value of the letter "a".
ASC("sample", 2)
ASC($name)
ASC($system, i)
Related Keywords
$CHR string function
Page 63
ASC real-valued function
Page 64
ASIN real-valued function
Syntax
ASIN (value)
Function
Return the size of the angle (in degrees) that has its trigonometric sine equal to value.
Usage Considerations
The value parameter must be in the range of -1.0 to +1.0.
Any value outside this range will cause the error *Illegal value*.
Parameter
Details
Returns the inverse sine (arcsine) of the argument, which is assumed to be in the range of -
1.0 to +1.0. The resulting value is always in the range of -90.0 to +90.0, inclusive.
Examples
ASIN(0) ;Returns 0
ASIN(-1) ;Returns -90
ASIN(0.1) ;Returns 5.73917047
ASIN(0.5) ;Returns 30
NOTE: TYPE, PROMPT, and similar instructions output the results of the above examples
as single-precision values. However, they are actually stored and manipulated as double-
precision values. The LISTR monitor command will display real values to full precision.
Page 65
ATAN2 real-valued function
Syntax
ATAN2 (value_1, value_2)
Function
Return the size of the angle (in degrees) that has its trigonometric tangent equal to value_
1/value_2.
Usage Considerations
The returned value is zero if both parameter values are zero.
Parameters
Examples
ATAN2(0.123,0.251) ;Returns 26.1067
ATAN2(-5.462,47.2) ;Returns -6.600926
ATAN2(1.3125E+2,-1.3) ;Returns -90.56748
slope = ATAN2(rise, run)
NOTE: TYPE, PROMPT, and similar instructions output the results of the above examples
as single-precision values. However, they are actually stored and manipulated as double-
precision values. The LISTR monitor command will display real values to full precision.
Page 66
ATTACH program instruction
Syntax
ATTACH (lun, mode) $device
Function
Make a device available for use by the application program.
Usage Considerations
The robot is automatically attached when the EXECUTE monitor command or program
instruction is processed for task 0 (except when the DRY.RUN system switch is enabled). All
the other logical units are automatically detached when program execution begins.
If the system terminal or the pendant was attached when a program stopped executing, it is
automatically reattached if execution of the program is resumed with the PROCEED, RETRY,
SSTEP, or XSTEP commands.
Parameters
lun The logical unit number to associate with the attached device. The
interpretation of this parameter depends on the value of the mode
parameter, as follows:
Page 67
ATTACH program instruction
This bit controls how the device driver responds to the attach request
from the control program task. (The device driver is an internal system
task that is separate from the control program task.) For most
applications, this bit should be set.
If this bit is clear, and the device is already attached by another control
program task, the driver queues this attach request and signals the
control program that the attach is not complete. The attachment will
complete when the device becomes available.
If this bit is set, and the device is already attached by another control
program task, the device driver immediately signals that the attach
request has failed.
This bit controls whether or not the control program task waits for a
response from the device driver. For most applications, this bit should
not be set.
If this bit is clear, program execution waits for the device driver to signal
the result of the attach request.
If this bit is set, program execution does not wait for the result of the
attach request. The program must then use the function IOSTAT(lun)
to determine if the attachment has succeeded (see earlier text). If the
program attempts to READ from or WRITE to the logical unit while the
attachment is pending, program execution then waits for the
attachment to complete.
Page 68
ATTACH program instruction
pendant.)
Device Meaning
- SERIAL:0 is RS232/TERM,
- SERIAL:1 is RS232-1,
- SERIAL:2 is RS232-2,
- SERIAL:3 is RS-422/485
Details
The robot must remain attached by a robot control program for the program to command
motion of the robot. When the robot is detached (see the DETACH instruction), however,
you can use the manual control pendant to move the robot under directions from the
application program. This is useful, for example, for application setup sequences. (The belt
and vision calibration programs provided by Omron Adept use this technique.)
Page 69
ATTACH program instruction
Program task 0 automatically attaches robot #1 when that task begins execution. A robot
control program executed by any of the other program tasks must explicitly attach the robot.
Any task can attach to any robot, provided that the robot is not already attached by a
different task. The robot that is attached by an ATTACH instruction is the one that was last
specified by a SELECT instruction executed by the current task (see the SELECT instruction).
If no SELECT instruction has been executed, then robot #1 is attached. The SELECT
instruction can be used to select a different robot only if no robot is currently attached to the
task.
To successfully attach the robot, the system must be in COMP mode. Otherwise (for mode bit
1 = 0), program execution is suspended (without notice) until the system is placed in COMP
mode. This situation can be avoided in two ways: (1) use the STATE function to determine if
the system is in COMP mode before executing an ATTACH instruction, (2) set bit 1 in the
mode value, and use the IOSTAT function to determine the success of the ATTACH
instruction.
When the system terminal (logical unit 4) is attached, all keyboard input will be buffered for
input requests by the program.
NOTE: When the system terminal is attached, a user is not able to type ABORT to
terminate program execution. The program must provide a means for fielding a
termination request, or you must use the pendant or emergency stop switch to stop
program execution.
When a DISK device is attached, it allows a program to read and write data from and to files.
DISK refers to the Secure Digital (SD) card. One of the FOPEN instructions must be used to
specify which file to access. WRITE and READ instructions can then be used to transfer
information to and from the file. Also, FCMND instructions can be used to send commands to
the file system.
When a TFTP device is attached, it allows a program to read a file from an TFTP server.
When a SERIAL:n serial communication line is attached, it can be used to send and receive
information to and from another system. As with disk I/O, WRITE and READ instructions are
used for the information transfer. For the details on physical connectors and corresponding
eV+ designations, see: Table 3-5. Serial Connectors and eV+ Designations in the
SmartController User's Guide.
When mode bit 3 = 0 and the $device parameter is omitted, the logical unit number
implicitly specifies the corresponding default device from the following table.
Number Device
Page 70
ATTACH program instruction
Number Device
2 System terminal
3 System terminal
4 System terminal
5 Disk
6 Disk
7 Disk
8 Disk
9 No default device
14 No default device
15 No default device
16 No default device
17 Disk
18 Disk
19 Disk
Page 71
ATTACH program instruction
Number Device
25 - 31 No default devices
NOTE:
1. There are currently no default LUNs assigned for serial communication lines
Local #3 or Local #4.
Examples
l Take over control of the robot:
ATTACH
l Connect to global serial line 1; wait for it to become available if another task has it
attached; return the assigned logical unit number in lun:
ATTACH (lun, 4) "serial:1"
l The next instruction is similar to the previous one, but this one requires use of the
IOSTAT function to determine if another task has the serial line attached:
ATTACH (lun, 5) "serial:1"
l Attach to the TCP device driver with automatic allocation of a logical unit number:
ATTACH (lun, 4) "TCP"
Related Keywords
DETACH program instruction
Page 72
AUTO program instruction
Syntax
AUTO type variable, ..., variable
Function
Declare temporary variables that are automatically created on the program stack when the
program is entered.
Usage Considerations
AUTOmatic variables have an undetermined value when a program is first entered (but they
are not necessarily undefined), and they have no value after the program exits.
AUTO statements must appear before any executable instruction in the program-only the
.PROGRAM statement, comments, blank lines, GLOBAL and LOCAL statements, and other
AUTO statements may precede this instruction.
If a variable is listed in an AUTO statement, any global variables with the same name cannot
be accessed directly by the program.
The values of AUTOmatic variables are not saved by the STORE or restored by the LOAD
monitor commands.
Parameters
type Optional keyword REAL, DOUBLE, or LOC, indicating that all the
variables in this statement are to be single precision, double precision,
or location variables. (A location can be a transformation, precision
point, or belt variable.)
variable Name of a variable of any data type available with eV+ (belt, precision
point, real-value, string, and transformation). Each variable can be a
simple variable or an array. If the type parameter is specified (see
below), all the variables must match that type. Array variables must
have their indexes specified explicitly, indicating the highest valid index
for the array.
Page 73
AUTO program instruction
Details
This instruction is used to declare variables to be defined only within the current program.
That is, an AUTOmatic variable can be referenced only by the specific calling instance of a
program. Also, the names of AUTOmatic variables can be selected without regard for the
names of variables defined in any other programs.
AUTOmatic variables are allocated each time the program is called, and their values are not
preserved between successive subroutine calls. These values can be displayed via monitor
commands only when the program task is inactive but is on an execution stack. When a
program is first entered, automatic variables have arbitrary, undetermined values (and they
are not necessarily undefined). AUTOmatic variables are lost when the program exits.
Unlike a LOCAL variable, a separate copy of an AUTOmatic variable is created each time a
program is called, even if it is called simultaneously by several different program tasks, or
called recursively by a single task. If a program that uses LOCAL or global variables is called by
several different program tasks, or recursively by a single task, the values of those variables
can be modified by the different program instances and can cause very strange program
errors. Therefore, AUTOmatic variables should be used for all temporary local variables to
minimize the chance of such errors.
Variables can be defined only once within the same context (AUTOmatic, LOCAL, or GLOBAL).
Attempting to define a variable more than once (that is, with a different type) will yield the
error message
AUTOmatic array variables must have the size of each dimension specified in the AUTO
statement. Each index specified must represent the last element to be referenced in that
dimension. The first element allocated always has index value zero. For example, the
statement
allocates a transformation array with 24 elements. The left-hand index ranges from 0 to 3,
and the right-hand index ranges from 0 to 5.
The storage space for AUTOmatic variables is allocated on the program execution stack. If the
stack is too small for the number of AUTOmatic variables declared, the task execution will
stop with the error message
If this happens, use the STATUS monitor command to determine how much additional stack
space is required. Then, use the STACK monitor command to increase the stack size and then
issue the RETRY monitor command to continue program execution.
Page 74
AUTO program instruction
AUTOmatic variables can be referenced with monitor commands such as BPT, DELETE_, DO,
HERE, LIST_, POINT, TEACH, TOOL, and WATCH by using the optional context specifier @.
The general syntax is:
Examples
l Declare the variables loc.a, $ans, and i to be AUTOmatic in the current program (the
variable types for loc.a and i must be clear from their use in the program):
AUTO loc.a, $ans, i
l Declare the variables i, j, and tmp[ ] to be AUTOmatic, real variables in the current
program (array elements tmp[0] through tmp[10] are defined):
AUTO REAL i, j, tmp[10]
l Declare the variable loc to be an AUTOmatic variable in the current program. The
variable type of loc must be determined by its use in the program. Note that since
LOC appears by itself, it is not interpreted as the type-specifying keyword.)
AUTO loc
Related Keywords
GLOBAL program instruction
Page 75
AUTO.POWER.OFF system switch
Syntax
AUTO.POWER.OFF
Function
Control whether or not eV+ disables high power when certain motion errors occur.
Usage Considerations
This switch has effect during automatic mode but not during manual mode. It is especially
useful in reducing operator intervention during common nulling-timeout and envelope
errors.
Details
Because the HIGH POWER ON/OFF high power on/off button cannot be used by itself to
enable high power as in earlier versions of eV+, Omron Adept has sought to reduce the
number of instances that high power is disabled during normal program execution. Making
this improvement allows programs to continue to recover automatically from errors without
manual intervention, that is, without requiring you to press the HIGH POWER ON/OFF
button. This system switch cancels the effect of this change. By default this switch is
disabled. Enabling it restores functionality as it was in eV+ version 11.x and earlier.
Omron Adept reviewed all automatic-mode errors that disabled high power in eV+ version
12.0 and determined which can be changed simply to decelerate the robot and generate an
error without compromising the safe operation of the system. Examples of particular
importance are errors such as nulling-timeout and envelope errors that often occur during
the normal operation of the system. In some cases, Omron Adept has modified internal
software to ensure the continued safe operation of your system.
If this switch is enabled, eV+ disables high power for all motion related errors including
nulling-timeout and soft envelope errors.
Example
The following program segment instructs eV+ to disable high power when any motion error
occurs:
Related Keywords
DISABLE monitor command
Page 76
AUTO.POWER.OFF system switch
Page 77
BAND operator
BAND operator
Syntax
...value BAND value...
Function
Perform the binary AND operation on two values.
Usage Considerations
The BAND operation is meaningful only when performed on integer values. Only the integer
parts of real values are used. Any fractional parts are ignored.
Details
The BAND operator can be used to perform a binary AND operation on two values on a bit-by-
bit basis, resulting in a real value.
1. Convert the operands to sign-extended 32-bit integers, truncating any fractional part.
c = a BAND b
the bits in the resultant C are determined by comparing the corresponding bits in the
operands A and B as indicated in the following table.
a b c
0 0 -> 0
0 1 -> 0
1 0 -> 0
1 1 -> 1
That is, a bit in the result will be 1 if the corresponding bit in both of the operands is 1.
Page 78
BAND operator
To review the order of evaluation for operators within expressions, see the section Order of
Evaluation in the eV+ Language User's Guide.
Examples
Consider the following (binary values are shown to make the operation more evident):
Note that a very different result is obtained with the logical AND operation:
In this case, ^B101000 and ^B100001 are each interpreted as logically TRUE since they are
nonzero.
Related Keywords
AND operator
BOR operator
BXOR operator
Page 79
BASE program instruction
Syntax
BASE X_shift, Y_shift, Z_shift, Z_rotation
Function
Translate and rotate the World reference frame relative to the robot.
Usage Considerations
The BASE program instruction causes a BREAK in continuous-path motion.
The BASE monitor command applies to the robot selected by the eV+ monitor (with the
SELECT command). The command can be used while programs are executing. However, an
error will result if the robot is attached by any executing program.
The BASE instruction can be executed by any program task as long as the robot selected by
the task is not attached by any other task. The instruction applies to the robot selected by
the task.
If the eV+ system is not configured to control a robot, use of the BASE command or
instruction will cause an error.
Parameters
Details
When the eV+ system is initialized, the origin of the reference frame of the robot is assumed
to be fixed in space such that the X-Y plane is at the robot mounting surface, the X axis is in
the direction defined by joint 1 equal to zero, and the Z axis coincides with the joint-1 axis.
The BASE instruction offsets and rotates the reference frame as specified above. This is
useful if the robot is moved after locations have been defined for an application.
Page 80
BASE program instruction
If, after robot locations have been defined by transformations relative to the robot reference
frame, the robot is moved relative to those locations-to a point translated by dX, dY, dZ and
rotated by Z rotation degrees about the Z axis—a BASE command or instruction can be used
to compensate so that motions to the previously defined locations will still be as desired.
Another convenient use for the BASE command or instruction is to realign the X and Y
coordinate axes so that SHIFT functions cause displacements in desired, nonstandard
directions.
NOTE: The BASE instruction has no effect on locations defined as precision points. The
arguments for the BASE instruction describe the displacement of the robot relative to its
normal location.
The BASE function can be used with the LISTL command to display the current BASE
setting.
Examples
BASE xbase,, -50.5, 30
Redefines the World reference frame because the robot has been shifted xbase millimeters in
the positive X direction and 50.5 millimeters in the negative Z direction, and has been rotated
30 degrees about the Z axis.
Redefines the World reference frame to effectively shift all locations 100 millimeters in the
negative X direction and 50 millimeters in the positive Z direction from their nominal location.
Note that the arguments for this instruction describe movement of the robot reference
frame relative to the robot, and thus have an opposite effect on locations relative to the
robot.
Related Keywords
BASE transformation function
Page 81
BASE transformation function
Syntax
BASE
Function
Return the transformation value that represents the translation and rotation set by the last
BASE command or instruction.
Usage Considerations
The BASE function returns information for the robot selected by the task executing the
function.
The command LISTL BASE can be used to display the current base setting.
If the eV+ system is not configured to control a robot, use of the BASE function will not
generate an error due to the absence of a robot. However, the information returned by the
function may not be meaningful.
Related Keywords
BASE monitor command
Page 82
BCD real-valued function
Syntax
BCD (value)
Function
Convert a real value to Binary Coded Decimal (BCD) format.
Usage Considerations
The BCD function is most useful when used in conjunction with the BITS command,
instruction, and function (see below).
Parameter
Details
The BCD function converts an integer value in the range 0 to 9999 into its BCD
representation. This can be used to set a BCD value on a set of external output signals.
Example
If you want to use digital signals 4 to 8 to output a BCD digit: The instruction
converts the value of the real variable digit to BCD and impresses it on external output
signals 4-8.
Related Keyword
DCB real-valued function
Page 83
BELOW program instruction
Syntax
BELOW
Function
Request a change in the robot configuration during the next motion so that the elbow is
below the line from the shoulder to the wrist.
Usage Considerations
Configuration changes cannot be made during straight-line motions.
If the selected robot does not support a below configuration, this instruction is ignored by the
robot. (SCARA robots, for example, cannot be in an ABOVE/BELOW configuration.)
The BELOW instruction can be executed by any program task as long as the robot selected by
the task is not attached by any other task, however if the robot is not attached, this
instruction has no effect. The instruction applies to the robot selected by the task.
If the eV+ system is not configured to control a robot, executing the BELOW instruction will
cause an error.
ABOVE/BELOW
Related Keywords
ABOVE program instruction
Page 84
BELT real-valued function
Syntax
BELT (%belt_var, mode)
Function
Return information about a conveyor belt being tracked with the conveyor tracking feature.
Usage Considerations
This option is available only if your system is equipped with the eV+ Extensions option.
The BELT system switch must be enabled before this function can be used.
The SETBELT instruction is generally used in conjunction with the BELT real-valued function
to set the effective belt position to zero. This must be done each time the robot will perform a
sequence of motions relative to the belt, and must be done shortly before the first motion of
such a sequence.
Parameters
%belt_var The name of the belt variable used to reference the conveyor belt.
As with all belt variables, the name must begin with a percent
symbol (%).
If the value is equal to -1, the BELT function returns the last
latched encoder position in encoder counts of the belt specified by
the belt variable. This value equivalent to the value returned by
DEVICE(0, enc, stt, 4) except it is not bounded to 8,388,607.
Page 85
BELT real-valued function
Examples
Set the point of interest on the referenced conveyor to be that corresponding to the current
reading of the belt encoder:
Save the current speed of the belt associated with the belt variable %b:
belt.speed = BELT(%b, 1)
Related Keywords
BELT system switch
Page 86
BELT system switch
Syntax
...BELT
Function
Control the function of the conveyor tracking features of the eV+ system.
Usage Considerations
This option is available only if your system is equipped with the eV+ Extensions option.
If the eV+ system is not configured to control a robot, an attempt to enable the BELT system
switch will cause an error. (The DEVICE real-valued function and the SETDEVICE program
instruction must be used to access external encoders from a nonrobot system. For more
information, see the section External Encoder Device in the eV+ Language User's Guide.)
Details
This switch must be enabled before any of the special conveyor tracking instructions can be
executed. When BELT is disabled, the conveyor tracking software has a minimal impact on
the overall performance of the system.
When the BELT switch is enabled, error checking is initiated for the encoders associated with
any belt variables that are defined. The switch is disabled when the eV+ system is initialized.
Related Keywords
BELT real-valued function
Page 87
BELT system switch
Page 88
BELT.MODE system parameter
Syntax
...BELT.MODE
Function
Set characteristics of the conveyor tracking feature of the eV+ system.
Usage Considerations
This option is available only if your system is equipped with the eV+ Extensions option.
The current value of the BELT.MODE parameter can be determined with the PARAMETER
monitor command or real-valued function.
The value of the BELT.MODE parameter can be modified only with the PARAMETER monitor
command or program instruction.
Details
This parameter is interpreted as a bit-flag word. The initial setting of this parameter is 0. That
is, all the bits are zero. Bits can be set by assigning the value resulting from adding together
the desired bit mask values (see the example below).
When this bit is set to one, a program error will be generated during
motion planning if the destination is outside of the belt window and
the belt is stopped.
When this bit is set to zero, if the belt is stopped during motion
planning, the direction of the positive X axis of the nominal
transformation is used to define the downstream direction. The
normal window-error criteria are then applied (see below).
Page 89
BELT.MODE system parameter
When this bit is set to one, destination locations that are downstream
or upstream of the belt window cause motion instructions to fail
during planning.
When this bit is set to one, motion instructions that fail during
planning due to a window error are ignored (skipped) and program
execution continues as usual. When this option is selected, each belt-
relative motion instruction should be followed by an explicit test for
planning errors using the BSTATUS function.
When this bit is zero, window errors during motion planning generate
a program step execution error, which either halts program execution
or triggers the REACTE routine.
Regardless of the setting of this bit, window errors that occur while
the robot is actually tracking the belt cause the program specified in
the latest WINDOW instruction to be executed. If no such program
has been specified, program execution is halted.
Example
Set the parameter to have bits 1 and 3 set to one (mask values 1 + 4):
PARAMETER BELT.MODE = 5
Related Keywords
BELT system switch
Page 90
BITS program instruction
Syntax
BITS first_sig, num_sigs = value
Function
Set or clear a group of digital signals based on a value.
Usage Considerations
Both external digital output signals and internal software signals can be referenced. Input
signals must not be referenced. (Input signals are displayed by the monitor command IO 1.)
Any group of up to 32 signals can be set, provided that all the signals in the group are
configured for use by the system.
Parameters
Details
Sets or clears one or more external output signals or internal software signals based on the
value to the right of the equal sign. The effect of this instruction is to round value to an
integer, and then set or clear a number of signals based on the individual bits of the binary
representation of the integer.
All eV+ digital output instructions do not wait for a eV+ cycle, they turned on outputs
immediately. However, digital inputs are checked every 2 milliseconds by the eV+ operating
system.
Page 91
BITS program instruction
Examples
Set external output signals 1-8 (8 bits) to the binary representation of the current monitor
speed setting:
If the monitor speed were currently set to 50% (0011 0010 binary), then signals 1-8 are set
as follows after this instruction:
Set external output signals 5-9 (4 bits) to the binary representation of the BCD digit 7:
Set external output signals 1-8 (8 bits) to the binary representation of the constant 255,
which is 11111111 (binary). Thus, signals 1-8 will all be turned on:
Related Keywords
BITS real-valued function
IO monitor command
Page 92
BITS real-valued function
Syntax
BITS (first_sig, num_sigs)
Function
Read multiple digital signals and return the value corresponding to the binary bit pattern
present on the signals.
Usage Considerations
External digital input or output signals, or internal software signals can be referenced.
Any group of up to 32 signals can be read, provided that all the signals in the group are
configured for use by the system.
Parameters
Details
This function returns a value that corresponds to the binary bit pattern present on 1 to 32
digital signals.
The binary representation of the value returned by the function has its least-significant bit
determined by signal numbered first_sig, and its higher-order bits determined by the next
num_sigs -1 signals.
Example
Assume that the following input signal states are present:
x = BITS(1003, 4)
Page 93
BITS real-valued function
will yield a value of 5 for x since the four signals starting at 1003 (that is, signals 1003
through 1006) can be interpreted as a binary representation of that value.
Related Keywords
BITS monitor command
IO monitor command
Page 94
BMASK real-valued function
Syntax
BMASK (bit, bit, ..., bit)
Function
Create a bit mask by setting individual bits.
Parameter
bit Integer value from 1 to 32 specifying a bit to turn on. The least-
significant bit is number 1.
Details
This instruction creates a bit mask by turning on (bit = 1) the specified bits and leaving all
other bits off (bit = 0).
Bit 32 is the sign bit and yields a negative number when set.
Examples
Create the bit mask ^B10001:
bm = BMASK(1, 5)
mode = BMASK(2)
ATTACH (lun, mode) "DISK"
Page 95
BOR operator
BOR operator
Syntax
... value BOR value ...
Function
Perform the binary OR operation on two values.
Usage Considerations
The BOR operation is meaningful only when performed on integer values. Only the integer
parts of real values are used. Any fractional parts are ignored.
Details
The BOR operator can be used to perform a binary OR operation on two values on a bit-by-bit
basis, resulting in a real value.
1. Convert the operands to sign-extended 32-bit integers, truncating any fractional part.
the bits in the resultant C statement are determined by comparing the corresponding bits in
the operands A and B, as indicated in the following table.
a b c
0 0 -> 0
0 1 -> 1
1 0 -> 1
1 1 -> 1
That is, a bit in the result will be 1 if the corresponding bit in either of the operands is 1.
Page 96
BOR operator
To review the order of evaluation for operators within expressions, see the section Order of
Evaluation in the eV+ Language User's Guide.
Examples
Consider the following (binary values are shown only to make the operation more evident):
Note that a very different result is obtained with the logical OR operation:
In this case, ^B101000 and ^B100001 are each interpreted as logically TRUE since they are
nonzero.
Related Keywords
BAND operator
BXOR operator
OR operator
Page 97
BRAKE program instruction
Syntax
BRAKE
Function
Abort the current robot motion.
Usage Considerations
The BRAKE instruction can be executed by any program task, including a task that is not
actively controlling the robot.
This instruction does not cause a BREAK to occur (see Details below).
If more than one robot is connected to the controller, this instruction applies to the robot
currently selected (see the SELECT instruction).
If the eV+ system is not configured to control a robot, the BRAKE instruction will not
generate an error due to the absence of a robot.
Details
BRAKE causes the current robot motion to be aborted immediately. In response to this
instruction, the robot will decelerate to a stop and then (without waiting for position errors to
null) begin the next motion.
NOTE: Program execution is not suspended until the robot motion stops.
Example
The following program segment initiates a robot motion and simultaneously tests for a
condition to be met. If the condition is met, the motion is stopped with a BRAKE instruction.
Otherwise, the motion is completed normally.
MOVES step[1] ;Initiate motion to next location
DO ;Loop continuously...
IF SIG(1023) THEN ;If input signal 1023 becomes set,
BRAKE ;stop the motion immediately
EXIT ;and continue elsewhere
END
UNTIL STATE(2) == 2 ;...until location reached
MOVES step[2] ;Move to next location
Related Keyword
BREAK program instruction
Page 98
BREAK program instruction
Syntax
BREAK
Function
Suspend program execution until the current motion completes.
Usage Considerations
The BREAK instruction is only used to wait for motion by the robot attached to the current
task.
If the eV+ system is not configured to control a robot, executing the BREAK instruction will
cause an error.
Details
This instruction has two effects:
1. Program execution is suspended until the robot reaches its current destination.
NOTE: BREAK cannot be used to have one task wait until a motion is completed by
another task.
2. The continuous-path transition between the current motion and that commanded by
the next motion instruction is broken. That is, the two motions are prevented from
being merged into a single continuous path.
Related Keywords
BRAKE program instruction
CP system switch
Page 99
BSTATUS real-valued function
Syntax
BSTATUS
Function
Return information about the status of the conveyor tracking system.
Usage Considerations
This option is available only if your system is equipped with the eV+ Extensions option.
The BSTATUS function returns information for the robot selected by the task executing the
function.
Details
This function is normally used when BELT.MODE bit 4 is set.
This function returns a value that is equivalent to the binary value represented by a set of bit
flags, which indicate the following conditions of the conveyor tracking software:
Related Keywords
BELT real-valued function
Page 100
BSTATUS real-valued function
Page 101
BXOR operator
BXOR operator
Syntax
... value BXOR value ...
Function
Perform the binary exclusive-OR operation on two values.
Usage Considerations
The BXOR operation is meaningful only when performed on integer values. Only the integer
parts of real values are used. Any fractional parts are ignored.
Details
The BXOR operator can be used to perform a binary exclusive-OR operation on two values on
a bit-by-bit basis, resulting in a real value.
1. Convert the operands to sign-extended 32-bit integers, truncating any fractional part.
the bits in the resultant C are determined by comparing the corresponding bits in the
operands A and B, as indicated in the following table.
a b c
0 0 -> 0
0 1 -> 1
1 0 -> 1
Page 102
BXOR operator
a b c
1 1 -> 0
That is, a bit in the result is 1 if the corresponding bit in one (and only one) of the operands is
1. To review the order of evaluation for operators within expressions, see the section Order of
Evaluation in the eV+ Language User's Guide.
Examples
Consider the following (binary values are shown only to make the operation more evident):
Note that a very different result is obtained with the logical XOR operation:
In this case, ^B101000 and ^B100001 are each interpreted as logically TRUE since they are
nonzero.
Related Keywords
BAND operator
BOR operator
XOR operator
Page 103
BY keyword
BY keyword
Syntax
SCALE(transformation BY value)
Function
Complete the syntax of the SCALE and SHIFT functions.
Examples
SET new.trans = SCALE(old.trans BY scale.factor)
SET new.trans = SHIFT(old.trans BY x,y,z)
Related Keywords
SCALE transformation function
Page 104
CALIBRATE program instruction
Syntax
CALIBRATE mode, status
Function
Initialize the robot positioning system with the robot's current position.
Usage Considerations
Normally, the instruction is issued with mode equal to zero.
If the robot is to be moved under program control, the CALIBRATE instruction (or command)
must be processed every time system power is turned on and the eV+ system is booted.
The robot cannot be moved under program control or with the pendant until a CALIBRATE
instruction (or CALIBRATE monitor command) has been processed.
NOTE: Some robots can be moved in joint mode with the control pendant even when
they have not been calibrated.
If multiple robots are connected to the system controller, this instruction attempts to
calibrate all robots unless they are disabled with the ROBOT switch. All of the enabled robots
must be calibrated before any of them can be moved under program control.
The CALIBRATE instruction may operate differently for each type of robot. For robots with
non-absolute (e.g., incremental) encoders, this instruction causes the robot to move. In this
case, the robot must be far enough from the limits of the working range that it will not move
out of range during the calibration process. (See the description of the CALIBRATE monitor
command for details of the robot motion.)
If the eV+ system is not configured to control a robot, executing the CALIBRATE instruction
causes an error.
Page 105
CALIBRATE program instruction
Parameters
Value of
Interpretation
mode
status Real-valued variable that receives the exit status returned by the
calibration program, or (in mode -1) from eV+ when trying to enter into
Page 106
CALIBRATE program instruction
Details
When started, eV+ assumes that the robot is not calibrated and restricts your ability to move
the robot with the pendant or an application program.
NOTE: The COMP mode light on the pendant does not come on when the robot is not
calibrated.
Robots with incremental encoders lose start-up calibration whenever system power is
switched off. As a safety measure, these robots also lose start-up calibration whenever an
*Encoder quadrature error* occurs for one of the robot joints. Other servo errors that can
cause the robot to lose calibration are *Unexpected zero index*, *No zero index*, and *RSC
Communications Failure*.
l For the Cobra 600 and 800 robots, this instruction causes a small motion of joint 4
(theta).
If this program instruction attempts to load the main calibration program, the same
program, module, and file name, and search algorithm, are employed as for the CALIBRATE
monitor command.
If you wish to carry out a CALIBRATE instruction in task 0, one way to do so is from a
program run using the /C qualifier on the EXECUTE instruction. With that qualifier specified,
a program to calibrate the robot can run in task 0 even when DRY.RUN is disabled. A program
running in any task other than 0 can execute the CALIBRATE instruction without special
conditions.
The CALIBRATE instruction shall only be executed from one task at a time. If it might be
called from multiple tasks (from a REACTE program for example) the call needs to be
protected by a mutex using the TAS fonction (see example below).
Example
The following instruction sequence can be used by any program task to perform start-up
calibration on the robot (if task #0 is used, the DRY.RUN switch must be enabled before the
program is executed):
The following instruction sequence must be used if CALIBRATE is called from more than one
task:
Page 107
CALIBRATE program instruction
Related Keywords
CALIBRATE monitor command
Page 108
CALL program instruction
Syntax
CALL program(arg_list)
Function
Suspend execution of the current program and continue execution with a new program
(that is, a subroutine).
Parameters
Each argument can be any one of the data types supported by eV+
(that is, belt, precision point, real-value, string, and transformation),
and can be specified as a constant, a variable, or an expression.1 The
type of each argument must match the type of its counterpart in the
argument list of the called program. An argument specified as a variable
can be a simple variable, an array element, or an array with one or
more of its indexes left blank. (See below for more information.)
Any argument can be omitted, with the result that the corresponding
argument in the called program will be undefined. If an argument is
omitted within the argument list, the separating comma must still be
included. If an argument is omitted at the end of the list, the comma
preceding the argument can also be omitted. (See the description of
.PROGRAM for more information on the effect of omitting an
argument.)
Page 109
CALL program instruction
Details
The CALL instruction causes execution of the current program to be suspended temporarily.
Execution continues at the first step of the indicated new program, which is then considered
a subroutine.
Note that an argument that is passed by reference (because it is a variable) can generally be
forced to passage by value. The way that is done depends on the type of the variable, as
follows:
l For a real variable, passage by value can be forced by enclosing the variable in
parentheses:
CALL prog_a((count))
l For a string variable, an empty string ("") can be added to the variable:
CALL prog_b($str.var+"")
As stated above, the items in the arg_list must match their corresponding items in the called
program. In addition to straightforward matches of scalar to scalar, and arrays of equal
numbers of dimensions, there are several situations in which higher dimension arrays can be
passed in place of lower dimension arrays. For example, all the following cases are valid:
Page 110
CALL program instruction
Examples
CALL pallet(count)
Branches to the program named pallet, passing to it a pointer to the variable count. When a
RETURN instruction is executed, control returns to the program containing the CALL
instruction and count will contain the current value of the corresponding subroutine
argument.
Branches to the program named cycle. The value 1 is passed to the first parameter of cycle,
its second parameter is undefined, and its third parameter receives the value of the
expression n+3. (If cycle has more than three parameters, the remaining parameters are all
undefined.)
Because none of the arguments in the CALL are variables, no data will be returned by the
program cycle.
Related Keywords
CALLP program instruction
Page 111
CALLP program instruction
Syntax
CALLP var (arg_list)
Function
Call a program given a pointer to the program in memory.
Usage Considerations
Using SYMBOL.PTR and CALLP is an alternative to using CALLS to invoke a eV+ subroutine
given its name as string data. For some applications, the SYMBOL.PTR-CALLP combination is
much faster than CALLS.
Parameters
arg_list A list of arguments to be passed between the current program and the
new program.
Details
In situations where the same program is called multiple times, the CALLP instruction can be
significantly more efficient than the CALLS instruction. This is especially true in systems that
have many programs loaded. (In situations where a program is called only once, the CALLS
instruction is faster.)
When a CALLS instruction is used, the following steps are performed each time the CALLS
instruction is encountered:
2. The eV+ program symbol with that name is found in the eV+ symbol table.
As an alternative, the SYMBOL.PTR function can be used to perform the first two steps.
Typically, that is done one time, during the initialization portion of the application software.
Then, in place of the CALLS instruction, a CALLP instruction can be used to perform the third
step above. (The CALLP instruction is just slightly slower than a CALL instruction.)
In situations where the same program is called multiple times, avoiding the first two steps of
CALLS can be significant, especially in systems that have many programs loaded.
Page 112
CALLP program instruction
The CALLP instruction calls the program pointed to by the real variable var. This variable
should have been obtained by using the SYMBOL.PTR function. If the value of var is zero, no
program is called, and no error is reported. If var does not contain a valid pointer, program
execution stops with error -406 (*Undefined program or variable name*).
Example
Instructions such as the following are executed in the initialization section of the application
program:
my.pgm.ptr[1] = SYMBOL.PTR("my.program.1")
my.pgm.ptr[2] = SYMBOL.PTR("my.program.2")
Then, in the repetitive section of the application program, the following is executed:
CALLP my.pgm.ptr[index](parm1, parm2)
Related Keywords
CALL program instruction
Page 113
CALLS program instruction
Syntax
CALLS string(arg_list)
Function
Suspend execution of the current program and continue execution with a new program
(that is, a subroutine) specified with a string value.
Usage Considerations
CALLS takes much longer to execute than the normal CALL instruction. Thus, CALLS should
be used only when necessary.
Parameters
NOTE: Since the argument list is not specified as part of the string parameter, all the
subroutines called by a specific CALLS instruction must have equivalent argument lists.
Details
The CALLS instruction behaves exactly as the CALL instruction does. The only difference
between the two instructions is the way the subroutine name is specified. CALL requires that
the name be explicitly entered in the instruction step. CALLS permits the name to be
specified by a string variable or expression, which can have its value defined when the
program is executed. That allows the program to call different subroutines depending on the
circumstances.
As with the CALL instruction, execution automatically returns to the current program when
a RETURN instruction is executed in the subroutine. Execution continues with the
instruction immediately following the CALLS instruction.
For some applications, the CALLP instruction is much more efficient than CALLS. See the
CALLP instruction for details.
Page 114
CALLS program instruction
Examples
The program segment below demonstrates how the CALLS instruction can be used to branch
to a subroutine whose name is determined when the program is executed.
First the program reads a set of four digital input lines (1001 to 1004) to determine which of
sixteen different part types it is dealing with. The part type is considered to be a hexadecimal
number, which is converted to the corresponding ASCII character. Once the character is
defined, the appropriate subroutine (that is, part.0, part.1, ..., part.f) is called to process the
part. (The part-type value is also used to select the portion of the two-dimensional array
argument that is passed to the subroutine.)
This example can be made more robust by using the STATUS real-valued function to make
sure the proposed subroutine exists before it is called. Using this function avoids possible
errors from undefined program names.
Related Keywords
CALL program instruction
Page 115
CAS real-valued function
Syntax
CAS (variable, test_value, new_value)
Function
This function compares a real variable to a test value, and conditionally sets a new value as
one indivisible operation.
Usage Considerations
The eV+ system does not enforce any protection scheme for global variables that are shared
by multiple program tasks. It is the programmer's responsibility to keep track of the usage of
such global variables. The CAS real-valued function (or the similar TAS function) can be used
to implement logical interlocks on access to shared variables.
This function can also be used to work around a restriction on the simultaneous access of
global arrays by multiple program tasks — program execution can fail if two or more tasks
attempt to increase the size of an array at the same time. For a detailed description of this,
see the "Global Array Access Restriction" section of the information about Arrays in the eV+
Language User's Guide.
Parameters
variable Name of the real-valued variable to be tested and assigned the new
value given.
new_value Real value, variable, or expression that defines the new value to be
assigned to the specified variable.
Details
If the variable is equal to the test value, the new value is stored in the variable. Otherwise
the variable is not modified. The original value of the variable is returned as the function
value.
The compare and set-new-value operations occur with interrupts locked so that the
operation is indivisible. This function provides a way for setting semaphores between tasks,
similar to the TAS real-valued function. See the description of that function for more
information — use of the CAS function is similar.
Page 116
CAS real-valued function
If the variable is undefined when the function is executed, it is treated as having the value
zero.
Related Keywords
TAS real-valued function
Page 117
CASE program instruction
Syntax
CASE value OF
Function
Initiate processing of a CASE structure by defining the value of interest.
Usage Considerations
This instruction must be part of a complete CASE structure.
Parameter
value Real value, variable, or expression that defines the value to be matched
in the CASE structure to determine which instructions are executed.
Details
This is perhaps the most powerful structure available with eV+. It provides a means for
executing one group of instructions from among any number of groups. The complete
syntax is as follows (the blank lines are not required):
CASE value OF
VALUE value_1,...:
group_of_steps
VALUE value_2,...:
group_of_steps
.
.
.
ANY
group_of_steps
END
The three vertical dots indicate that any number of VALUE steps can be used to set off
additional groups of instructions.
The ANY step and the group of steps following it are optional. There can be only one ANY step
in a CASE structure, and it must mark the last group in the structure (as shown above).
Note that the ANY and END steps must be on lines by themselves as shown. (However, as
with all instructions, those lines can have comments.)
Page 118
CASE program instruction
All the VALUE steps are scanned until the first one is found that has the same
value.
If no VALUE step is found that contains the same value as that in the CASE instruction, and
there is an ANY step in the structure, then the group of instructions following the ANY step
will be executed.
If no VALUE match is found in the structure, and there is no ANY step, none of the
instructions in the entire CASE structure are executed.
Examples
The following example shows the basic function of a CASE statement:
CASE number OF
VALUE 1:
TYPE "one"
VALUE 2:
TYPE "two"
ANY
TYPE "Not one or two"
END
The following sample program asks you to enter a test value. If the value is negative, the
program exits after displaying a message. Otherwise, a CASE structure is used to classify the
input value as a member of one of three groups. The groups are (1) even integers from zero
to ten, (2) odd integers from one to nine, and (3) all other positive numbers.
The following example shows a special use of the CASE structure to test Boolean conditions:
Page 119
CASE program instruction
END
Related Keywords
ANY program instruction
Page 120
$CHR string function
Syntax
$CHR (value)
Function
Return a one-character string corresponding to a given ASCII value.
Parameter
Example
$CHR(65) ;Returns the character A, since its ASCII value is
65.
Related Keywords
ASC real-valued function
Page 121
CLEAR.EVENT program instruction
Syntax
CLEAR.EVENT task, flag
Function
Clear an event associated with the specified task.
Parameters
NOTE: The basic system allows 7 tasks (0 - 6). The eV+ Extensions
option allows 28 tasks (0 - 27).
Details
This instruction clears the event associated with the specified task.
The default event cleared is the input/output completion event for which the instruction
WAIT.EVENT 1 waits. This event is also cleared by the execution (not the completion) of an
input/output instruction.
Related Keywords
GET.EVENT real-valued function
Page 122
CLEAR.LATCHES program instruction
Syntax
CLEAR.LATCHES (select)
Function
Empties the latch buffer for the selected device.
Parameter
Details
This instruction clears the event and all information associated with the specified latch
buffer.
As opposed to the LATCHED real-valued function, no latch event data will be made available
for retrieval.
Related Keywords
DEVICE real-valued function
Page 123
CLOSE and CLOSEI program instruction
Syntax
CLOSE
CLOSEI
Function
Close the robot gripper.
Usage Considerations
CLOSE causes the hand to close during the next robot motion.
CLOSEI causes a BREAK in the current continuous-path motion and causes the hand to close
immediately after the current motion completes.
The CLOSE instruction can be executed by any program task as long as the robot selected by
the task is not attached by any other task. The instruction applies to the robot selected by
the task.
The CLOSEI instruction can be executed by any program task as long as the task has
attached a robot. The instruction applies to the robot selected by the task.
If the eV+ system is not configured to control a robot, executing these instructions causes
an error.
Details
These instructions send a signal to the control valves for the pneumatic hand to close. If the
CLOSE instruction is used, the signal is not sent until the next robot motion begins.
l The signal is sent to the control valves at the conclusion of the current motion, or
immediately if no motion is in progress.
l Robot motions are delayed for a brief time to allow the hand actuation to complete.
The length of the delay (in seconds) is the current setting of the HAND.TIME system
parameter.
Examples
During the next robot motion, cause the pneumatic control valves to assume the closed
state:
Page 125
CLOSE and CLOSEI program instruction
CLOSE
Cause the pneumatic control valves to assume the closed state as soon as the current motion
stops:
CLOSEI
Related Keywords
HAND.TIME system parameter
Page 126
COARSE program instruction
Syntax
COARSE tolerance ALWAYS
Function
Enable a low-precision feature of the robot hardware servo.
Usage Considerations
Only the next robot motion will be affected unless the ALWAYS parameter is specified.
If the tolerance parameter is specified, its value becomes the default for any subsequent
COARSE instruction executed during the current execution cycle (regardless of whether
ALWAYS is specified).
FINE 100 ALWAYS is assumed whenever program execution is initiated and when a new
execution cycle begins.
The COARSE instruction can be executed by any program task as long as the robot selected
by the task is not attached by any other task. The instruction applies to the robot selected by
the task.
If the eV+ system is not configured to control a robot, executing the COARSE instruction
causes an error.
Parameters
tolerance Optional real value, variable, or expression that specifies the percentage
of the standard coarse tolerances that are to be used for each joint of
the robot attached by the current execution task. See the Details
section for default values.
Details
This instruction enables a low-precision feature in the robot motion servo so that larger
errors in the final positions of the robot joints are permitted at the ends of motions. This
allows faster motion execution when high accuracy is not required.
Lower precision is sometimes required in belt tracking applications when the constant
motion of the robot prevents the servos from settling to high precision.
Page 127
COARSE program instruction
If the tolerance parameter is specified, the new setting takes effect at the start of the next
motion. Also, the value becomes the default for any subsequent COARSE instruction
executed during the current execution cycle (regardless of whether ALWAYS is specified).
Changing the COARSE tolerance does not affect the FINE tolerance.
If the tolerance parameter is omitted, the most recent setting (for the attached robot) is
used. The default setting is restored to 100 percent when program execution begins, or a
new execution cycle starts (assuming that the robot is attached to the program).
Examples
Enable the low-precision feature only for the next motion:
COARSE
Enable the low-precision feature for the next motion, with the tolerance settings changed to
150% of the standard tolerance for each joint (that is, a looser tolerance):
COARSE 150
COARSE ALWAYS
Related Keywords
CONFIG real-valued function
Page 128
COM operator
COM operator
Syntax
... COM value ...
Function
Perform the binary complement operation on a value.
Usage Considerations
The word "com" cannot be used as a program name or variable name.
The COM operation is meaningful only when performed on an integer value. Only the integer
parts of real values are used. Any fractional parts are ignored.
Parameter
Details
The COM operator performs the binary complement operation on a bit-by-bit basis, resulting
in a real value.
1. Convert the operand to a sign-extended 32-bit integer, truncating any fractional part.
To review the order of evaluation for operators within expressions, see the section Order of
Evaluation in the eV+ Language User's Guide.
Examples
For example:
Note that a very different result is obtained with the logical complement operation (NOT):
Page 129
CONFIG real-valued function
Syntax
CONFIG (select)
Function
Return a value that provides information about the robot's geometric configuration, or the
status of the motion servo-control features.
Usage Considerations
The CONFIG function returns information for the robot selected by the task executing the
function.
If the eV+ system is not configured to control a robot, use of the CONFIG function causes an
error.
Parameter
Details
This function returns a value that is interpreted as a series of bit flags. The interpretation of
the value returned by this function depends on the select parameter.
When the select parameter is omitted, or has the value 0, 1, or 2, the CONFIG function
returns a value that can be interpreted as bit flags indicating a geometric configuration of the
robot. That is, each bit in the value represents one characteristic of a robot configuration.
The parameter values in this group determine which robot configuration is returned by the
function:
1 The configuration the robot will achieve at the completion of the current
motion, or the current configuration if no motion is in progress (and the
robot is attached).
Page 130
CONFIG real-valued function
The interpretations of the bit flags returned by these selections are as follows:
Bit
Bit # Indication if bit SET
Mask
When the select parameter is 3, 4, or 5, the CONFIG function returns a value that can be
interpreted as bit flags indicating the settings of several robot motion servo-control features.
That is, each bit in the value represents the state of one motion servo-control feature.
The different parameter values in this group select which motion(s) will be affected by the
features settings reported by the function, as follows:
4 The temporary settings for the motion currently executing, or the last
motion completed if no motion is in progress.
5 The temporary settings that will apply to the next motion performed.
The interpretations of the bit flags returned by selections 3, 4, and 5 are as follows:
Page 131
CONFIG real-valued function
Bit Indicatio-
Bi-
Mas- n if bit Bit SET
t#
k CLEAR
1 1 (None) (None)
2 2 FINE COARSE
asserted asserted
3 4 NULL NONULL
asserted asserted
4 8 MULTIPLE SINGLE
asserted asserted
When the select parameter is 6, 7, or 8, the CONFIG function returns a value that
represents the setting of the FINE tolerance.
When the select parameter is 9, 10, or 11, the CONFIG function returns a value that
represents the setting of the COARSE tolerance.
Page 132
CONFIG real-valued function
COARSE tolerance
Select
returned
When the select parameter is 12, the available joint configuration options for the selected
robot are returned as shown below.
Indication if
Bit # Bit Mask
bit set
Page 133
CONFIG real-valued function
Indication if
Bit # Bit Mask
bit set
(SINGLE or
MULTIPLE).
When the select parameter is 13, the type of robot motion is returned. The bit values
returned are shown below.
Related Keywords
ABOVE program instruction
Page 134
CONFIG real-valued function
Page 135
COS real-valued function
Syntax
COS (angle)
Function
Return the trigonometric cosine of a given angle.
Usage Considerations
The angle parameter must be measured in degrees.
The parameter is interpreted as modulo 360 degrees, but excessively large values may cause
a loss of accuracy in the returned value.
Parameter
angle Real-valued expression that defines the angular value (in degrees) to be
considered.
Details
Returns the trigonometric cosine of the argument, which is assumed to be in degrees. The
resulting value is always in the range of -1.0 to +1.0, inclusive.
Examples
COS(0.5) ;Returns 0.999962
COS(-5.462) ;Returns 0.9954596
COS(60) ;Returns 0.4999999
COS(1.3125E+2) ;Returns -0.6593457
NOTE: TYPE, PROMPT, and similar instructions output the results of the above examples
as single-precision values. However, they are actually stored and manipulated as double-
precision values. The LISTR monitor command will display real values to full precision.
Page 136
CP system switch
CP system switch
Syntax
... CP
Function
Control the continuous-path feature.
Details
The CP switch can be used to turn off continuous-path motion processing. For more
information on continuous path motion, see the section Continuous Path Trajectories in the
eV+ Language User's Guide.
Example
DISABLE CP ;Turn off continuous-path motion processing.
Related Keywords
BREAK program instruction
Page 137
CPOFF program instruction
Syntax
CPOFF ALWAYS
Function
Instruct the eV+ system to stop the robot at the completion of the next motion instruction
(or all subsequent motion instructions) and null position errors.
Usage Considerations
Only the next robot motion will be affected if the ALWAYS parameter is not specified.
CPON ALWAYS is assumed whenever program execution is initiated and when a new
execution cycle begins.
The CPOFF instruction can be executed by any program task as long as the robot selected by
the task is not attached by any other task. The instruction applies only to the robot selected
by the task.
If the eV+ system is not configured to control a robot, executing the CPOFF instruction
causes an error.
Parameter
ALWAYS Optional qualifier that establishes CPOFF as the default condition. That
is, when ALWAYS is included in a CPOFF instruction, CPOFF will remain
in effect continuously until disabled by a CPON instruction. If ALWAYS is
not specified, the CPOFF instruction applies only to the next robot
motion.
Details
When CPOFF is in effect, the robot will be brought to a stop at the completion of the next
robot motion, and any final position errors will be nulled (if required).
Unlike the BREAK instruction, which is executed after a motion to cause continuous-path
processing to terminate, CPON and CPOFF are executed before a motion instruction to affect
the continuous-path processing of the next motion instruction. Also, while BREAK applies to
only one motion instruction, CPOFF can apply to all the motion instructions that follow.
Page 138
CPOFF program instruction
Related Keywords
BREAK program instruction
CP system switch
Page 139
CPON program instruction
Syntax
CPON ALWAYS
Function
Instruct the eV+ system to execute the next motion instruction (or all subsequent motion
instructions) as part of a continuous path.
Usage Considerations
Only the next robot motion will be affected if the ALWAYS parameter is not specified.
This is the default state of the eV+ system. CPON ALWAYS is assumed whenever program
execution is initiated and when a new execution cycle begins.
The CPON instruction can be executed by any program task as long as the robot selected by
the task is not attached by any other task. The instruction applies only to the robot selected
by the task.
If the eV+ system is not configured to control a robot, executing the CPON instruction
causes an error.
Parameter
ALWAYS Optional qualifier that establishes CPON as the default condition. That
is, if ALWAYS is specified, CPON will remain in effect continuously until
disabled by a CPOFF instruction. If ALWAYS is not specified, the CPON
instruction applies only to the next robot motion.
Details
When CPON is in effect, it is possible to execute a series of motion instructions that are
blended into a single continuous path. That is, each motion will be performed in succession
without stopping the robot at specified locations.
Unlike the BREAK instruction, which is executed after a motion to cause continuous-path
processing to terminate, CPON and CPOFF are executed before a motion instruction to affect
the continuous-path processing of the next motion instruction.
Page 140
CPON program instruction
While asserting CPON permits continuous-path processing to occur, any of the following
conditions will break a continuous path and override CPON:
Related Keywords
BREAK program instruction
CP system switch
Page 141
CYCLE.END program instruction
Syntax
CYCLE.END task_num, stop_flag
Function
Terminate the executing program in the specified task the next time it executes a STOP
program instruction (or its equivalent).
Suspend processing of an executable program until a program running in the specified task
completes execution.
Usage Considerations
The CYCLE.END instruction has no effect if the specified program task is not active.
The CYCLE.END instruction suspends execution of the program containing the instruction
until the specified program task completes execution. If a program is aborted while its
execution is suspended by a CYCLE.END instruction, the program task specified by the
CYCLE.END instruction will still be terminated (if the stop_flag is TRUE).
Parameters
Details
If the stop_flag parameter has a TRUE value, the specified program task will terminate the
next time it executes a STOP program instruction (or its equivalent), regardless of how many
program cycles are left to be executed.
NOTE: CYCLE.END will not terminate a program with continuous internal loops. Such a
program must be terminated with the ABORT command or instruction.
Page 142
CYCLE.END program instruction
Regardless of the stop_flag parameter, this instruction will wait until the program actually is
terminated. If the program being terminated loops internally so that the current execution
cycle never ends, the CYCLE.END instruction will wait forever.
To proceed from a CYCLE.END that is waiting for a program to terminate, abort the program
that is waiting for a CYCLE.END by typing an ABORT command for the program task that
executed the CYCLE.END instruction.
Example
The following program segment shows how a program task can be initiated from another
program task (the ABORT and CYCLE.END program instructions are used to make sure the
specified program task is not already active):
Related Keywords
ABORT monitor command
Page 143
DBLB real-valued function
Syntax
DBLB ($string, first_char)
Function
Return the value of eight bytes of a string interpreted as an IEEE double-precision floating-
point number.
Parameters
first_char Optional real-valued expression that specifies the position of the first
of the eight bytes in the string.
If first_char specifies eight bytes that are beyond the end of the input
string, an error is generated .
Details
Eight sequential bytes of the given string are interpreted as being a double-precision (64-bit)
floating-point number in the IEEE standard format. This 64-bit field is interpreted as follows:
where
fraction is a binary fraction with an implied 1 to the left of the binary point.
Page 144
DBLB real-valued function
For 0 < exp < 2047, the value of a floating point number is:
0 Nonzero Denormalized
number
The range for normalized numbers is approximately 2.2 x 10 -308 to 1.8 x 10 307
The main use of this function is to convert a binary floating-point number from an input data
record to a value that can be used internally by eV+.
Example
DBLB($CHR(^H3F)+$CHR(^HF0)+$CHR(0)+$CHR(0)
+$CHR(0)+$CHR(0)+$CHR(0)+$CHR(0)) ;Returns 1.0
Related Keywords
ASC real-valued function
Page 145
$DBLB string function
Syntax
$DBLB (value)
Function
Return an 8-byte string containing the binary representation of a real value in double-
precision IEEE floating-point format.
Parameter
Details
A real value is converted to its binary representation using the IEEE double-precision
standard floating-point format. This 64-bit value is packed as eight successive 8-bit
characters in a string. See the DBLB real-valued function for a more detailed description of
IEEE floating-point format.
The main use of this function is to convert a double-precision real value to its binary
representation in an output record of a data file.
Example
$DBLB(1.215)
$CHR(^H3F)+$CHR(^H3F)+$CHR(^H70)+
$CHR(^HA3)+$CHR(^HD7)+$CHR(^H0A)+$CHR(^H3D)+$CHR(^H71)
Related Keywords
$CHR string function
Page 146
DCB real-valued function
Syntax
DCB (value)
Function
Convert BCD digits into an equivalent integer value.
Usage Considerations
No more than four BCD digits can be converted.
The DCB function is most often used with the BITS real-valued function to decode input from
the digital input signal lines.
Parameter
NOTE: An error is reported if any digit is not a valid BCD digit. That is, if a digit is greater
than 9.
Example
If external input signals 1001-1008 (8 bits of input) receive two BCD digits from an external
device, then the instruction
sets the real variable input equal to the integer equivalent of the BCD input on the specified
signals.
Related Keyword
BCD real-valued function
Page 147
DECEL.100 system switch
Syntax
... DECEL.100[robot_num]
Function
Enable or disable the use of 100 percent as the maximum deceleration for the ACCEL
program instruction.
Parameter
Details
When DECEL.100 is enabled for the selected robot, the maximum deceleration percentage
defined by the SPEC utility program is ignored, and a maximum deceleration of 100% is used
instead. This maximum is used to limit the value specified by the ACCEL program instruction.
By default, DECEL.100 is disabled for all robots.
Example
DECEL.100[2] ;Cause ACCEL to use 100% for maximum
;deceleration for robot #2
Related Keywords
ACCEL program instruction
Page 148
$DECODE string function
Syntax
$DECODE ($string_var, string_exp, mode)
Function
Extract part of a string as delimited by given break characters.
Usage Considerations
$DECODE modifies the input $string_var variable as well as returning a string value.
The test for break characters is always performed without regard for the case of the
characters in the input string.
The break characters are treated as individual characters, independent of the other
characters in the string that defines them.
Parameters
$string_ String variable that contains the string to be scanned. After the
var function is processed, this variable will contain the portion of the
original string that was not returned as the function value.
NOTE: This parameter is modified by the function and cannot be specified as a string
constant or expression.
If the program causes the same variable to receive the function value, the variable
will end up containing the value returned by the function.
Page 149
$DECODE string function
output of the function. That is, this case returns all the leading break
characters in the input string.
Details
This function is used to scan an input string and return the initial substring, as delimited by
any of a group of break characters. After the substring is returned by the function, it is
deleted from the input string.
The string returned (and deleted) can either contain no break characters (mode 0), or
nothing but break characters (mode 1). That is, $DECODE can return (and delete) all the
characters up to the first break character-usually some desired substring; or the function can
return (and delete) all the leading break characters-which are usually discarded.
By alternating the modes, groups of desired characters can be picked from the input string
(see the first example below).
The modes -2 and -3 copy all nonbreak characters up to the first break characters plus the
first break character. Mode -2 is equivalent to the following instructions:
Examples
The instructions below pick off consecutive numbers from the string $input, assuming that
the numbers are separated by some combination of spaces and commas.
The first instruction within the DO structure sets the variable $temp to the substring from
$input that contains the first number (and removes that substring from $input). The VAL
function is used to convert the numeric string into its corresponding real value, which is
assigned to the next element of the real array value. The $DECODE function is used a second
time to extract the characters that separate the numbers (the characters found are ignored).
Page 150
$DECODE string function
commas
i = i+1 ;Advance the array
index
UNTIL $string_var == "" ;Stop when input is
empty
In a case where $string_var contains a sequence of numeric values (as strings) separated by
spaces, commas, or any combination of spaces and commas, such as
executing the above instructions results in the first four elements of the value array having
the following values:
value[0] = 1234.0
value[1] = 93465.2
value[2] = 0.4358
value[3] = 3458103.0
The string variable input ($string_var) also contains an empty string ("").
As shown above, use of the $DECODE function normally involves two string variables: the
input variable and the output variable. If you are interested only in the characters up to the
first break character, and want to discard all the characters that follow, the same variable
can be used for both input and output. In the following instruction, for example, the same
variable is used on both sides of the equal sign because the programmer wants to discard all
the white space (that is, space and tab) characters at the end of the input string.
NOTE: The break characters are specified by a string expression consisting of a space
character and a tab character.
Related Keywords
$TRUNCATE string function
Page 151
DECOMPOSE program instruction
Syntax
DECOMPOSE array_name[index] = location
Function
Extract the (real) values of individual components of a location value.
Parameters
array_name Name of the real-valued array that has its elements defined.
index Optional integer value(s) that identifies the first array element to
be defined. Zero will be assumed for any omitted index. If a
multiple-dimension array is specified, only the right-most index is
incremented as the values are assigned.
Details
This instruction assigns values to consecutive elements of the named array, corresponding
to the components of the specified location.
If the location is represented as a precision-point value, then from one to twelve elements
are defined (depending on the number of robot joints), that correspond to the individual joint
positions.
Examples
The following code assigns the components of transformation part to elements 0 to 5 of
array x:
The following code assigns the components of precision point #pick to array element angles
[4] and those that follow it:
Page 152
DECOMPOSE program instruction
Related Keywords
#PPOINT precision-point function
Page 153
$DEFAULT string function
Syntax
$DEFAULT (mode)
Function
Return a string containing the current or initial system default device, unit, and directory
path for disk file access.
Usage Considerations
Parentheses must be included even when mode is omitted.
Parameter
l If the parameter has the value one, the default path returned is
the one that was in effect immediately after the eV+ system was
booted from disk.
Details
The system default device, unit, and directory path can be set by the CD or DEFAULT monitor
command. The $DEFAULT function returns the current or initial default values as a string.
The string contains the portions of the following information that have been set:
device>disk_unit:directory_path
where
Page 154
$DEFAULT string function
disk_unit is the disk unit specified to the DEFAULT monitor command. The
colon (:) is omitted if no unit was specified.
directory_path is any input to the DEFAULT command that followed the device
and unit. The directory path is omitted if no additional input was
specified.
Example
The following commands set the default drive specification to DISK>D:\TEST\, and then
display it on the terminal for confirmation:
Related Keywords
CD monitor command
Page 155
DEFBELT program instruction
Syntax
DEFBELT %belt_var = nom_trans, belt_num, vel_avg, scale_fact
Function
Define a belt variable for use with a conveyor tracking robot.
Usage Considerations
This option is available only if your system is equipped with the eV+ Extensions option.
The DEFBELT program instruction supports up to six belt encoders, depending on the
hardware configuration.
The DEFBELT program instruction cannot be executed while the robot is moving relative to
the specified belt variable.
When a belt variable is initialized using this instruction, its window parameters are set to
allow any location in the working volume of the robot. That is, no belt window is set. (See the
WINDOW program instruction.)
When a belt variable is initialized with the DEFBELT program instruction, error checking is
initiated for the associated belt encoder. This error checking can be turned off by disabling
the BELT system switch or by using the ZERO command to reinitialize the eV+ system.
Parameters
belt_num The number of the encoder used for reading the instantaneous
Page 156
DEFBELT program instruction
scale_fact The calibration constant that relates motion of the conveyor belt
with counts of the encoder mounted on the conveyor. This value
(which can be supplied as a constant, a real variable, or an
expression) is interpreted as having the units in millimeters of belt
travel per encoder count.
Details
A conveyor belt is modeled by a belt variable. In addition to the parameters for the DEFBELT
program instruction, a belt variable contains the following information:
l Window parameters, which define the working range of the robot along the belt. (Set
with the WINDOW instruction.)
l An encoder offset, which is used to adjust the origin of the belt frame of reference. (Set
with the SETBELT instruction.)
l Belt variable names must always be preceded by the percent character (%), for
example, %main.belt. Otherwise, the normal rules for variable names apply.
l Belt variables can be passed as subroutine parameters just like other variables.
l Belt variables cannot be stored on a mass-storage device. (Variables used to define the
parameters in a DEFBELT instruction can be stored, however.)
Example
The following instruction defines the belt variable %belt.var. The value of b.num must be the
number of the encoder to be associated with this belt variable. The variable b.num is also
used as an index for arrays of data describing the position and orientation of the belt, its
velocity smoothing, and the encoder scale factor.
Page 157
DEFBELT program instruction
[b.num]
Related Keywords
BELT system switch
Page 158
DEFINED real-valued function
Syntax
DEFINED (var_name)
Function
Determine whether a variable has been defined.
Parameter
Details
The value of the specified variable is tested. If the value is defined, the function returns the
value TRUE. Otherwise, the value FALSE is returned.
For array variables, if a specific array element is specified, the single array element is tested.
If no array element is specified, this function returns a TRUE value if any element of the
array is defined.
NOTE: For nonreal arguments (i.e., strings, locations, transformations) that are passed
in the argument list of a CALL statement, you can test to see if the variable is defined or
not. However, you cannot assign a value to undefined nonreal arguments within the
CALLed program. If you attempt to assign a value to an undefined nonreal argument, you
receive an undefined value error message.
Therefore, when using DEFINED to test for user input, be sure to assign a default value to
the variable before testing it. See the example below.
Examples
.PROGRAM test($s)
AUTO $tmp
$tmp = "default"
IF DEFINED($s) THEN
$tmp = $s
END
TYPE /C3 "The string is: ", $tmp
ex test("ABCD")
Page 159
DEFINED real-valued function
ex test()
The instruction:
DEFINED(base_part)
The instruction:
DEFINED(corner[])
returns a value of TRUE if any element of the array corner has been defined.
Related Keywords
STATUS real-valued function
Page 160
DELAY program instruction
Syntax
DELAY time
Function
Cause robot motion to stop for the specified time.
Usage Considerations
The robot stops during the delay, but the wait and nulling normally associated with a motion
BREAK do not occur.
Program execution continues during the delay, up to the next motion instruction in the
program. (eV+ system timers can be used to control the timing of program execution. The
DELAY instruction should not be used for that purpose.)
The DELAY instruction can be executed by any program task as long as the task has attached
a robot. The instruction applies to the robot selected by the task.
If the eV+ system is not configured to control a robot, executing the DELAY instruction
causes an error.
If the AMOVE instruction has been executed to prepare for motion of an extra axis, execution
of the DELAY instruction cancels the effect of the AMOVE instruction.
Parameter
time Real value, variable, or expression that specifies the length of time, in
seconds, that the robot is to pause.
Details
The DELAY instruction is processed as a robot motion. As a result, the following
consequences occur when a DELAY is executed:
1. Any pending hand actuation takes place during the execution of the DELAY
instruction.
2. Any temporary trajectory switches that have been specified are cleared after the
Page 161
DELAY program instruction
NOTE: When DRY.RUN mode is in effect, DELAY instructions do not cause any delay.
Examples
DELAY 2.5
Causes all robot motion to stop for 2.5 seconds and any pending hand operation to occur.
Clears any temporary trajectory switches that may be set, and cancels any pending requests
for configuration change.
DELAY pause.1
Related Keywords
DURATION program instruction
Page 162
DELAY.IN.TOL system switch
Syntax
... DELAY.IN.TOL [robot_num]
Function
Controls the timing of COARSE or FINE nulling after eV+ completes a motion segment.
Parameter
Details
The DELAY.IN.TOL system switch is disabled by default for all robot device modules, except
the Delta robot device module.
If the switch is disabled, COARSE or FINE nulling completes whenever eV+ has completed a
motion segment and the robot is tracking the trajectory to within the coarse or fine
tolerance. The actual robot location might not be within the tolerance of the endpoint.
If the switch is enabled, COARSE or FINE nulling completes whenever eV+ has completed a
motion segment and the actual robot location is within the specified coarse or fine tolerance
of the endpointof that motion segment.
Usage Considerations
For many applications, enabling this switch produces the best nulling behavior. However, the
switch should be disabled for backward compatibility with previous eV+ systems.
Related Keywords
COARSE program instruction
Page 163
DELAY.POWER.OFF system switch
Syntax
... DELAY.POWER.OFF
Function
Enable/disable the ESTOP timer delay feature for servo errors.
Usage Considerations
This switch is only operational for systems equipped with an AWC-II board as the main CPU.
For program compatibility, the DELAY.POWER.OFF system switch is recognized by eV+
systems for both AWC-II-based controllers and SmartController systems, but the switch has
no effect on the latter.
Details
When DELAY.POWER.OFF is disabled (default), servo errors will cause the robot power to be
disabled immediately, without an ESTOP timer delay.
When DELAY.POWER.OFF is enabled, servo errors will use the ESTOP timer delay function
just as if the ESTOP button had been pressed.
Page 164
DEPART and DEPARTS program instruction
Syntax
DEPART distance
DEPARTS distance
Function
Start a robot motion away from the current location.
Usage Considerations
DEPART causes a joint-interpolated motion.
These instructions can be executed by any program task as long as the task has attached a
robot. The instructions apply to the robot selected by the task.
If the eV+ system is not configured to control a robot, executing these instructions causes
an error.
Parameter
distance Real-valued expression that specifies the distance (in millimeters) along
the robot tool Z axis between the current robot location and the desired
destination.
A positive distance moves the tool back (toward negative tool Z) from
the current location; a negative distance moves the tool forward
(toward positive tool Z).
Details
These instructions initiate a robot motion to a new location, which is offset from the current
location by the distance given, measured along the current tool Z axis.
Examples
DEPART 80
Moves the robot tool 80 millimeters back from its current location using a joint-interpolated
motion.
DEPARTS 2*offset
Page 165
DEPART and DEPARTS program instruction
Withdraws the robot tool (2 * offset) millimeters along a straight-line path from its current
location.
Related Keywords
APPRO program instruction
Page 166
DEST transformation function
Syntax
DEST
Function
Return a transformation value representing the planned destination location for the current
robot motion.
Usage Considerations
The DEST function returns information for the robot selected by the task executing the
function.
If the eV+ system is not configured to control a robot, use of the DEST function does not
generate an error due to the absence of a robot. However, the information returned by the
function may not be meaningful.
Details
DEST returns the location to which a robot was moving when its motion was interrupted.
This applies for all motion instructions, including:
Note that even though the second instruction references a precision-point location
variable, the DEST function returns a transformation value during that motion.
The location value returned by the DEST function may not be the same as the location at
which the robot stops if the motion of the robot is interrupted for some reason. For example,
if the RUN/HOLD button on the pendant is pressed, the robot stops immediately, but DEST
still returns the location to which the robot was moving.
Page 167
DEST transformation function
If a motion is not begun because eV+ realizes the destination location cannot be reached (for
example, it is too far from the robot), then DEST is not set to the goal location.
Example
The DEST function is useful, for example, for continuing a motion that has been interrupted
by a reaction initiated by a REACTI instruction. The subroutine automatically invoked can
contain steps such as the following to process the interruption and resume the original
motion.
Related Keywords
HERE transformation function
Page 168
DETACH program instruction
Syntax
DETACH (logical_unit)
Function
Release a specified device from the control of the application program.
Usage Considerations
Detaching the robot causes a BREAK in continuous-path motion.
DETACH automatically forces an FCLOSE if a disk file or graphics window is open on the
specified device.
The robot is automatically attached to task 0 when the EXECUTE monitor command or
program instruction is processed to initiate that task and the DRY.RUN system switch is
disabled. All the other logical units are automatically detached when program execution
begins. (Other events that cause automatic detachment are listed below.)
Parameter
Details
This instruction releases the specified device from control by the application program. (No
error is generated if the device was not attached.)
Control of the specified device can be returned to the program with the ATTACH instruction.
When logical_unit is 0 (or is omitted), the program releases control of the robot. While the
robot is detached, robot power can be turned off and on, the pendant can be used to move
the robot, and a different robot can be selected (if more than one robot is connected to the
system controller). A delay of one system cycle (16 ms) occurs when a robot is detached.
This is useful for applications that require you to define where the robot should be located for
certain operations. For such tasks a teaching program can DETACH the robot and then
output directions to you on the system terminal or the pendant. You can then use the
pendant to move the robot to the desired locations. The system terminal or the pendant can
be used for accepting input from you (the latter can be read by using the PENDANT function).
Page 169
DETACH program instruction
When a disk logical unit is detached, any device that was specified by the corresponding
ATTACH instruction is forgotten. Thus, a subsequent ATTACH instruction must specify the
device again if the default device is not desired.
The following events automatically DETACH all the logical units (except the robot) from the
affected program task:
Note, however, that if a program terminates execution "abnormally", all of its devices remain
attached, except that the terminal and the manual control pendant are detached. (Abnormal
termination of program execution refers to any cause other than HALT or STOP instructions.)
If the task is subsequently resumed, the program automatically reattaches the terminal and
pendant if they were attached before the termination.
NOTE: It is possible that another program task attached the terminal or pendant in the
meantime. This results in an error message when the stopped task is restarted.
Related Keyword
ATTACH program instruction
Page 170
DEVICE program instruction
Syntax
DEVICE (type, unit, error, p1, p2, ...) out[i], in[j], out_trans, in_trans
Function
Send a command or data to an external device and, optionally, return data back to the
program. (The actual operation performed depends on the device referenced.)
Usage Considerations
The syntax contains optional parameters that apply only to specific device types and
commands.
Parameters
0 = Belt encoder
1 = (Not used)
2 = Force Processor Board (for Omron Adept use only)
3 = Robot device (i.e., servo, for Omron Adept use only)
4 = Vision
5 = 1394 bus (for Omron Adept use only)
error Optional real variable that receives a standard system error number if
this instruction failed. If this parameter is omitted, any device error
stops program execution. If the error parameter is specified, the
program must explicitly check it to detect errors.
p1, p2, Optional real values, variables, or expressions, the values of which are
... sent to the device as part of the command. The number of parameters
specified, and their meanings, depend upon the particular device type
being accessed.
Page 171
DEVICE program instruction
out[] Optional real array that contains data values that are sent to the device
as part of a command. The actual data sent depends upon the device
type and command being sent to the device.
in[] Optional real array that receives any data values returned from the
device as the result of the command. The actual data returned depends
upon the device type and the command.
Details
DEVICE is a general-purpose instruction for accessing external devices. For more information
and examples, see the section External Encoder Device in the eV+ Language User's Guide.)
Related Keywords
DEVICE real-valued function
Page 172
DEVICE real-valued function
Syntax
DEVICE (type, unit,error, p1, p2,...)
Function
Return a real value from a specified device. The value may be data or status information,
depending upon the device and the parameters.
Usage Considerations
The syntax contains optional parameters that may be useful only for specific device types
and information requests.
Parameters
0 = Belt encoder
1 = (Not used)
2 = Force Processor Board (for Omron Adept use only)
3 = Robot device (i.e., servo, for Omron Adept use only)
4 = Vision
5 = 1394 bus (for Omron Adept use only)
unit Real value that indicates the device unit number. The value must be in
the range 0 to (max -1), where max is the maximum number of devices
of the specified type. The value should be 0 if there is only one device of
the given type.
error Optional real variable that receives a standard system error number,
which indicates if this function succeeded or failed. If this parameter is
omitted, any device error stops program execution. If error is specified,
the program must check it to detect errors.
p1, p2, Optional real values that are sent to the device as part of the request.
... The number of values specified and the meanings of the values depend
upon the particular device type.
Page 173
DEVICE real-valued function
Details
DEVICE is a general-purpose function for returning data and status information from external
devices. For details and examples see the supplementary documentation for specific devices.
For information on use of the DEVICE function to access external encoders, see the section
External Encoder Device in the eV+ Language User's Guide.
For systems equipped with ACE Sight, the DEVICE instruction is used to configure vision
system memory allocation and frame buffer configuration.
Related Keywords
DEVICE program instruction
Page 174
DEVICES program instruction
Syntax
DEVICES (type, unit, error, p1, p2, ...) $out, $in
Function
Send a command or data to an external device and optionally return data. The actual
operation performed depends on the device referenced.
Usage Considerations
The syntax contains optional parameters that may be useful only for specific device types
and commands.
Parameters
0 = Belt encoder
1 = (Not used)
2 = Force Processor Board (for Omron Adept use only)
3 = Robot device (i.e., servo, for Omron Adept use only)
4 = Vision
5 = 1394 bus (for Omron Adept use only)
unit Real value that indicates the device unit number. The value must be in
the range 0 to (max -1), where max is the maximum number of devices
of the specified type. The value should be 0 if there is only one device of
the given type.
error Optional real variable that receives a standard system error number if
this instruction failed. If this parameter is omitted, any device error
stops program execution. If the error parameter is specified, the
program must check it to detect errors. The value is negative if there
was an error. Otherwise, the positive value indicates the number of
data bytes that were returned in the $in parameter.
p1, p2, Optional real values that are sent to the device as part of a command.
... The number of values specified and the meanings of the values depend
upon the particular device type.
Page 175
DEVICES program instruction
$out Optional string expression, variable, or array that defines a string value
to be sent to the device as part of the command. The actual data that
should be sent depends upon the device type and the command.
$in Optional string variable or array that receives any data values returned
from a device as the result of the command. The actual data returned
depends upon the device type and the command.
The error variable receives the number of input bytes returned. When
the $in parameter is specified as an array, up to 512 bytes may be
returned, packed in up to four successive string array elements.
Details
DEVICES is a general-purpose instruction for accessing external devices. It is similar to the
DEVICE program instruction except that data items are sent and received as strings rather
than real values.
NOTE: Similar to the CALL and CALLS instruction pair, this instruction is a string-based
version of the DEVICE instruction. Thus, the name DEVICES can be thought of as "device
s", rather than the plural of "device".
For details and examples see the supplementary documentation for specific devices.
Related Keywords
DEVICE program instruction
Page 176
DISABLE program instruction
Syntax
DISABLE switch, ... , switch
Function
Turn off one or more system control switches.
Usage Considerations
If a specified switch accepts an index qualifier and the index is zero or omitted (with or
without the brackets), all the elements of the switch array are enabled.
Parameter
Details
System switches control various aspects of the operation of the eV+ system, including some
optional subsystems such as vision. The Switch entry in the index for this document directs
you to the detailed descriptions of these switches.
Other system switches are available when options are installed. Refer to the option
documentation for details.
When a switch is disabled, or turned off, the feature it controls is no longer functional or
available for use. Turning a switch on with the ENABLE monitor command or program
instruction makes the associated feature functional or available for use.
NOTE: The system switches are shared by all the program tasks. Thus, care should be
exercised when multiple tasks are disabling and enabling switches-otherwise, the
switches may not be set correctly for one or more of the tasks. Disabling the DRY.RUN
switch does not have an effect until the next EXECUTE command or instruction is
processed for task #0, an ATTACH instruction is executed for the robot, or a CALIBRATE
command or instruction is processed.
Page 177
DISABLE program instruction
The SWITCH monitor command or the SWITCH real-valued function can be used to
determine the status of a switch at any time. The SWITCH program instruction can be used,
like the DISABLE instruction, to disable a switch.
Example
DISABLE MESSAGES ;Turns off the MESSAGES switch.
Related Keywords
ENABLE monitor command
Page 178
DISTANCE real-valued function
Syntax
DISTANCE (location_1, location_2)
Function
Determine the distance between the points defined by two location values.
Parameter
location_1 Transformation value that defines the first point of interest. This
can be a function, a variable, or a compound transformation.
location_2 Transformation value that defines the second point of interest. This
can be a function, a variable, or a compound transformation.
Details
Returns the distance in millimeters between the points defined by the two specified
locations. The order in which the locations are specified does not matter. Also, the
orientations defined by the locations have no effect on the value returned.
Example
The statement
x = DISTANCE(HERE, part)
sets the value of the real variable x to be the distance between where the robot tool point is
currently located and the point defined by the transformation part.
Related Keyword
IDENTICAL real-valued function
Page 179
DN.RESTART program instruction
Syntax
DN.RESTART
Function
Restarts DeviceNet communication if the CanBus goes offline.
Details
The eV+ DeviceNet interface goes offline if you disconnect it from the actual network or if too
many errors occur during operation. DN.RESTART forces eV+ to reinitialize the DeviceNet
interface as if you rebooted your system.
Related Keywords
DEVICENET monitor command
Page 180
DO program instruction
DO program instruction
Syntax
DO
Function
Introduce a DO program structure.
Usage Considerations
The DO program structure must be concluded with an UNTIL instruction.
Details
The DO structure provides a way to control the execution of a group of instructions based on
a control expression. The syntax for the DO structure is as follows:
DO
group_of_steps
UNTIL logical_expression
2. The logical expression is evaluated. If the result is FALSE, return to item 1. Otherwise,
proceed to item 3.
3. Program execution continues at the first instruction after the UNTIL step.
When this structure is used, it is assumed that some action occurs within the group of
enclosed instructions that changes the result of the logical expression from TRUE to FALSE
when the structure should be exited. Alternately, logical_expression can be replaced with an
expression that evaluates the state of a digital I/O signal (see example).
Note that the group of instructions within the DO structure is always executed at least one
time. (The WHILE structure differs in that respect.)
There do not need to be any instructions between the DO and UNTIL instructions. When
there are no such instructions, the UNTIL criterion is continuously evaluated until it is
satisfied, at which time program execution continues with the instructions following the
UNTIL instruction.
Example
The following example uses a DO structure to control a task that involves moving parts from
one place to another. The sequence assumes that the digital signal line buffer.full changes to
Page 181
DO program instruction
the on state when the parts buffer becomes full. (The robot should then perform a different
sequence of motions.)
.
.
DO
CALL get.part()
CALL put.part()
UNTIL SIG(buffer.full)
.
.
Related Keywords
DO monitor command
Page 182
DOS program instruction
Syntax
DOS string, error
Function
Execute a program instruction defined by a string expression.
Usage Considerations
Before the instruction is executed, the string must be translated from ASCII into the internal
representation used by eV+. Thus, the instruction executes much more slowly than a
normal program instruction.
The string cannot define a declaration statement or most of the control structure
statements.
The DOS instruction is ignored if the string defines a comment line or a blank line.
Parameters
error Optional real variable that receives any parsing or execution error
generated by the instruction. The value is set to 1 if the instruction
succeeds. If the instruction fails, a standard eV+ error number is
returned.
Details
The DOS (DO String) instruction provides a means for modifying a program on the fly. That
is, the embedded program instruction, which is defined by a string expression, is executed as
though it had been entered in the program as a normal instruction.
The instruction executes in the context of the current program. Thus, any subroutine
argument, automatic variable, or local variable can be accessed.
If a variable referenced in the instruction is not found in the current program context, the
variable is assumed to be global. Any new variables that are created by the instruction (for
Page 183
DOS program instruction
example, in an assignment statement) are created as globals. Normal variable type checking
is performed, and errors are generated if there are type conflicts.
The single-line control statements GOTO, IF ... GOTO, CALL, and CALLS are allowed and
execute normally. The multiline control structures (for example, CASE ... END, IF ... ELSE ...
END) cannot be executed by the DOS instruction.
Examples
DOS "var = 123"
Causes the variable var to be assigned the value 123. If var is undefined, a new global
variable named var is created. Any errors cause the program to stop executing.
Causes the instruction contained in the string variable $ins to be executed. If an error occurs,
an eV+ error code is placed in the real variable status and execution continues.
Related Keywords
DO monitor command
Page 184
DRIVE program instruction
Syntax
DRIVE joint, change, speed
Function
Move an individual joint of the robot.
Usage Considerations
The DRIVE instruction can be executed by any program task as long as the task has attached
a robot. The instruction applies to the robot selected by the task.
If the eV+ system is not configured to control a robot, executing the DRIVE instruction
causes an error.
If the AMOVE instruction has been executed to prepare for motion of an extra axis, execution
of the DRIVE instruction cancels the effect of the AMOVE instruction.
Parameters
change The change desired in the joint position. This can be specified by a
constant, a variable, or an expression. The value can be positive or
negative.
The value is interpreted in the units used to measure the joint position.
That is, a change for a rotary joint must be the number of degrees the
joint is to move; a change for a linear joint must specify the number of
millimeters to move.
speed The temporary program speed to be used for the motion, considered as
a percentage of the current monitor speed setting. Again, this can be
specified by a constant, a variable, or an expression.
Details
Operates the single specified robot joint, changing its position by change amount (in
degrees or millimeters). The joint number, joint, can be 1, 2, ..., n, where n is the number of
joints the robot has.
The speed of the motion is governed by a combination of the speed given in this instruction
and the monitor SPEED setting. That is, the regular program speed setting is not used. (See
Page 185
DRIVE program instruction
the SPEED monitor command and the SPEED program instruction for explanations of motion
speeds.)
The duration setting established by the DURATION instruction also affects the execution time
of the motion.
Example
Change the angle of joint 2 by driving the joint 62.4 degrees in the negative direction at a
speed of 75% of the monitor speed:
DRIVE 2,-62.4,75
Related Keywords
SELECT program instruction
Page 186
DRY.RUN system switch
Syntax
... DRY.RUN
Function
Control whether or not eV+ communicates with the robot.
Usage Considerations
The DRY.RUN switch can be enabled or disabled by an application program, but the new
setting of the switch does not take effect until the next time any of the following events
occur:
Before an application program changes the setting of the DRY.RUN switch, the program
must have the robot detached. Otherwise, an error results when the attempt is made to
change the switch setting.
Details
This system switch can be used to stop eV+ from sending motion commands to the robot
and expecting position information back from the robot. Thus, when the system is in
DRY.RUN mode, application programs can be executed to test for such things as proper
logical flow and correct external communication without having to worry about the robot
running into something. (Also see the TRACE system switch.)
The pendant can still be used to control the robot while the system is in DRY.RUN mode.
The DRY.RUN switch is sampled whenever a robot is attached. (Note that task #0 attempts
to attach the robot when program execution begins or is resumed.) The DRY.RUN setting for
a task can be changed during execution by DETACHing the robot, changing DRY.RUN, and
then ATTACHing the robot.
NOTE: Do not allow multiple tasks to change DRY.RUN simultaneously, since the
DRY.RUN state can then be different from that expected. Your programs should use a
software interlock in this case.
Page 187
DRY.RUN system switch
Related Keywords
DISABLE monitor command
Page 188
DURATION program instruction
Syntax
DURATION time ALWAYS
Function
Set the minimum execution time for subsequent robot motions.
Usage Considerations
Unless the ALWAYS parameter is specified, only the next robot motion is affected.
DURATION 0 ALWAYS is assumed whenever program execution is initiated and when a new
execution cycle begins.
The DURATION instruction affects the DRIVE instruction but not the DELAY instruction.
The setting of the monitor SPEED command affects the results of the DURATION setting.
The DURATION instruction can be executed by any program task as long as the robot
selected by the task is not attached by any other task. The instruction applies to the robot
selected by the task.
If the eV+ system is not configured to control a robot, executing the DURATION instruction
causes an error.
Parameters
time Real-valued expression that specifies the minimum length of time (in
seconds) that subsequent robot motions take to perform (see below).
ALWAYS Optional keyword that determines how long the new duration will have
an effect.
Page 189
DURATION program instruction
Details
This instruction sets the minimum execution time for subsequent robot motions. For any
motion, the time specified by the DURATION instruction has no effect if the duration setting is
less than the time computed by the eV+ robot-motion trajectory generator (considering the
current motion speed and acceleration settings). However, if the duration is longer than the
time computed by the trajectory generator, the motion is slowed so that its elapsed time
corresponds approximately to the specified duration.
NOTE: Actual motion times may differ slightly from the duration setting due to
quantization effects and due to acceleration and deceleration profiling.
The duration instruction does not specify the duration of an entire motion but instead
specifies the minimum time of the constant-velocity segment plus one-half the acceleration
and deceleration segments. In this way, continuous-path motions (in which individual
motions are blended together) get the correct duration, but a single motion takes longer than
the specified duration. In other words, the time of motion is primarily defined either by the
value of DURATION or SPEED, using whichever value gives the longer time.
This instruction is very useful. Consider, for example, a situation where the value of a
periodic, external signal is employed to continuously correct the path of the robot while the
robot is moving. The DURATION instruction can be used to match the motion execution time
to the sensor sampling rate and processing time. This ensures that the robot is kept in motion
while new information is being processed. A sample program of this type is shown later.
Example
The following example reads an external sensor and moves to the computed robot location.
This sequence is repeated 20 times at intervals of 96 milliseconds (6/TPS seconds). This
assumes the default period (tick) of 16 milliseconds for the eV+ trajectory generator. Note
that the motion speed is set to a very large value to make sure the motion is paced by the
duration setting.
Related Keywords
ACCEL program instruction
Page 190
DURATION program instruction
Page 191
DURATION real-valued function
Syntax
DURATION (select)
Function
Return the current setting of one of the motion DURATION specifications.
Usage Considerations
The DURATION function returns information for the robot selected by the task executing the
function.
If the eV+ system is not configured to control a robot, the DURATION function does not
generate an error due to the absence of a robot. However, the information returned by the
function may not be meaningful.
Parameter
Details
This function returns the user-specified minimum robot motion duration (in seconds)
corresponding to the select parameter value. (See the description of the DURATION
program instruction for an explanation of the specification of motion duration times.)
Different select values determine when the duration time returned applies, as listed below.
(All other values for the select parameter are considered invalid.)
Page 192
DURATION real-valued function
Related Keywords
CONFIG real-valued function
Page 193
DX, DY, DZ real-valued function
Syntax
DX (location)
DY (location)
DZ (location)
Function
Return a displacement component of a given transformation value.
Parameter
Details
These three functions return the respective displacement components of the specified
transformation value.
NOTE: The DECOMPOSE instruction can also be used to obtain the displacement
components of a transformation value. If the rotation components are desired, that
instruction must be used. DECOMPOSE is more efficient if more than one element is
needed and the location is a compound transformation.
Example
Consider a transformation start with the following components:
The following function references will then yield the indicated values:
Related Keywords
DECOMPOSE program instruction
RX transformation function
RY transformation function
Page 194
DX, DY, DZ real-valued function
RZ transformation function
Page 195
ELSE program instruction
Syntax
ELSE
Function
Separate the alternate group of statements in an IF ... THEN control structure.
Usage Considerations
ELSE can be used only within an IF ... THEN ... ELSE ... END control structure.
Details
Marks the end of a group of statements to be executed if the value of the logical expression in
an IF logical_expr THEN control structure is nonzero, and the start of the group of
statements to be executed if the value is zero.
Related Keyword
IF ... THEN program instruction
Page 196
ENABLE program instruction
Syntax
ENABLE switch, ..., switch
Function
Turn on one or more system control switches.
Usage Considerations
The ENABLE monitor command can be used when a program is executing.
If a specified switch accepts an index qualifier and the index is zero or omitted (with or
without the brackets), all the elements of the switch array are enabled.
Parameter
Details
System switches control various aspects of the operation of the eV+ system, including some
optional subsystems such as vision. The Switch entry in the index for this document directs
you to the detailed descriptions of these switches.
Other system switches are available when options are installed. Refer to the option
documentation for details. For example, the switches associated with the ACE Sight options
are described in the ACE Sight User's Guide.
When a switch is enabled, or turned on, the feature it controls is functional and available for
use. Turning a switch off with the DISABLE monitor command or program instruction makes
the associated feature not functional or available for use.
NOTE: The system switches are shared by all the program tasks. Thus, care should be
exercised when multiple tasks are disabling and enabling switches. Otherwise, the
switches may not be set correctly for one or more of the tasks.
Disabling the DRY.RUN switch does not have an effect until the next EXECUTE command
or instruction is processed for task #0, an ATTACH instruction is executed for the robot, or
a CALIBRATE command or instruction is processed.
Page 197
ENABLE program instruction
The SWITCH monitor command or the SWITCH real-valued function can be used to
determine the status of a switch at any time. The SWITCH program instruction can be used,
like the ENABLE instruction, to set a switch.
Example
ENABLE MESSAGES ;Turns on the MESSAGES switch.
Related Keywords
DISABLE monitor command
Page 198
$ENCODE string function
Syntax
$ENCODE (output_specification, output_specification, ...)
Function
Return a string created from output specifications. The string produced is similar to the
output of a TYPE instruction.
Parameter
An output specification can consist of any of the following components (in any order)
separated by commas:
1. A string expression.
Details
This function makes strings normally produced by the TYPE instruction available within a
program. That is, $ENCODE does not generate any output but, rather, creates a string value.
The following format specifiers can be used to control the display of numeric values. These
settings remain in effect for the remainder of the function parameter list unless another
specifier is used.
For all these specifiers, if a value is too large to be displayed in the given field width, the field
is filled with asterisk characters (*).
The following format specifications accept a zero as the width field. This causes the
actual field size to vary to fit the value and all leading spaces to be suppressed. This is
useful when a value is displayed within a line of text or at the end of a line.
Page 199
$ENCODE string function
The following specifiers can be used to insert special characters in the string:
/Cn Include the characters carriage return (CR) and line feed (LF) n
times.
If the string resulting from the $ENCODE function is output to the terminal, this
results in n blank lines if the control specifier is at the beginning or end of the
function parameter list; otherwise, n -1 blank lines result.
Example
The program statement:
adds a formatted representation of the value of count to the string contained in $output.
Page 200
$ENCODE string function
The $ENCODE function provides a way of adding format control to the output from PROMPT
instructions. This is shown by the following example, in which the value of motor is displayed
as part of the prompt message to you.
This PROMPT instruction beeps the terminal (/B), and displays the following user prompt
when the value of motor is 3:
Related Keyword
TYPE program instruction
Page 201
END program instruction
Syntax
END
Function
Mark the end of a control structure.
Usage Considerations
Every END instruction must be part of a CASE, FOR, IF, or WHILE control structure.
Details
Every CASE, FOR, IF, and WHILE control structure must have its end marked by an END
instruction. The eV+ editor displays an error message when program editing is exited if the
correct number of END instructions do not exist in a program (that is, if there are too few or
too many).
Related Keywords
CASE program instruction
Page 202
.END keyword
.END keyword
Syntax
.END
Function
Mark the end of the eV+ program.
Usage Considerations
The eV+ editors automatically add this line to the end of every program.
Details
Normally, you will not need to concern yourself with the .END step of programs-it is created
automatically by the eV+ editors. The only time you will see this step while working with the
eV+ system is when you issue a LISTP monitor command. Then you will see an .END step as
the last step of each program.
The .END is important, however, when a program is created on another computer for
transfer to the eV+ system. In that case, the programmer must be sure to include a line
starting with .END at the end of each program (the remainder of the line is ignored by eV+).
Programs missing the .END instruction do not load correctly into the eV+ system.
Related Keyword
.PROGRAM program instruction
Page 203
ERROR real-valued function
Syntax
ERROR (source, select)
Function
Return the error number of a recent error that caused program execution to stop or caused a
REACTE reaction.
Usage Considerations
Executing a REACTE statement clears any errors for the current task and prevents the
ERROR function from returning errors as expected.
A FIFO buffer is available that receives all asynchronous errors that occur from the time an
enable power request is issued (using ENABLE POWER or the MCP) until power is disabled for
any reason. The FIFO is accessed using the ERROR( ) real-valued function.
The asynchronous FIFO is not valid while the robot is in the power-down initialization state.
User programs should wait until STATE(1) <> 0 before calling ERROR( ) with a source
parameter > 1000.
Page 204
ERROR real-valued function
Parameters
source Real value, variable, or expression (interpreted as an integer) whose value
selects the source of the error code as follows:
-2 Return additional error code for current robot.
0 < source ≤ 27
Page 205
ERROR real-valued function
1 If the most recent error (for the specified program task) had
an error code in the range -1100 to -1199, return the
variable part of the corresponding error message as a
numeric value. If the most recent error had an error code in
the range -1000 to -1099, return the variable portion of the
corresponding error message as a bit mask indicating the
joints or motors to which the error applies. Zero is returned if
the error did not have a variable portion in its message. (Also
see select = 3 below.)
Details
An eV+ task can access any errors that result in robot power being disabled. These errors
include the asynchronous messages that previously were output only to the monitor
window.
This function is especially useful in a REACTE subroutine program to determine why the
REACTE was triggered.
NOTE: The ERROR function does not report errors reported by the IOSTAT function.
See System Messagesfor a list of all the eV+ error messages and their error numbers.
As noted above, when the select parameter is 1, the value returned by this function should
be interpreted as a 6-bit numeric value. The following program illustrates how the value
should be interpreted.
Page 206
ERROR real-valued function
RETURN
.END
Related Keywords
$ERROR string function
Page 207
$ERROR string function
Syntax
$ERROR (error_code)
Function
Return the error message associated with the given error code.
Parameter
Details
All the error codes returned by the IOSTAT function and by the ERROR real-valued function
can be converted into their corresponding eV+ error message strings with this function. (The
ERROR real-valued function must be used to determine the variable portion of the error
message for an error code less than or equal to -1000.)
See System Messages on page 584 for a list of all the eV+ error messages and their error
codes.
Example
The following program segment displays an error message if an I/O error occurs:
Related Keywords
ERROR real-valued function
Page 208
ESTOP program instruction
Syntax
ESTOP
Function
Assert the emergency-stop signal to stop the robot.
Details
This instruction immediately asserts the controller emergency-stop signal and then proceeds
with a normal power-down sequence. It is functionally identical to pressing the E-STOP
button on the pendant or Front Panel .
Related Keywords
BRAKE program instruction
Page 209
EXECUTE program instruction
Syntax
EXECUTE /C task_num program(param_list), cycles, step
Function
Begin execution of a control program.
Usage Considerations
A program cannot already be active as the specified program task.
Parameters
The parameters are evaluated in the context of the new task that
is started (see below).
Page 210
EXECUTE program instruction
Details
This command initiates execution of the specified control program. The program is executed
cycles times, starting at the specified program step.
After a program initiates execution of another program, the initiating program can use the
STATUS and ERROR real-valued functions to monitor the status of the other program.
The optional /C qualifier has an effect only when starting execution of task 0. When /C is not
specified, an EXECUTE instruction for task 0 fails if the robot cannot be attached; attachment
requires that the robot be calibrated and that arm power be enabled (or that the DRY.RUN
switch is enabled). When /C is specified, an execute instruction for task 0 attempts to attach
the robot, but allows execution of task 0 to continue without any indication of error if the
robot cannot be attached.
Certain default conditions are assumed whenever program execution is initiated. They are
equivalent to the following program instructions:
CPON ALWAYS
DURATION 0 ALWAYS
FINE 100 ALWAYS
LOCK 0
MULTIPLE ALWAYS
NULL ALWAYS
OVERLAP ALWAYS
SPEED 100,100 ALWAYS
SELECT ROBOT = 1
Page 211
EXECUTE program instruction
NOTE: Each time an execution cycle is initiated, the execution parameters are reset to
their default values. This includes motion speed, robot configuration, and servo modes.
However, the robot currently selected is not changed.
If step is specified, the program begins execution at that step for the first pass. Successive
cycles always begin at the first executable step of the program.
All the instruction parameters are evaluated in the context of the new task that is started.
This can lead to unexpected results when the EXECUTE program instruction is used, and an
attempt is made to pass a task-dependent value (for example, the TASK real-valued
function). In such a case, if you want the task-dependent value to reflect the invoking task,
you must assign the task-dependent value to a variable and pass that variable.
Examples
Initiate execution (as task #0) of the program named assembly, with execution to continue
indefinitely (that is, until execution is aborted, a HALT instruction is executed, or a run-time
error occurs):
EXECUTE 0 assembly, -1
Initiate execution, with program task #2, of the program named test. The parameter values
1 and 2 are passed to the program.
EXECUTE 2 test(1,2)
The following program segment shows how an application program can be initiated from
another application program (the ABORT and CYCLE.END program instructions are used to
make sure the specified program task is not already active):
Related Keywords
ABORT monitor command
Page 212
EXECUTE program instruction
XSTEP monitorcommand
Page 213
EXIT program instruction
Syntax
EXIT count
Function
Branch to the statement following the nth nested loop of a control structure.
Usage Considerations
This instruction works with the FOR, WHILE, and DO control structures.
Parameter
count Optional integer value (expressions and variables are not acceptable)
specifying how many nested structures to exit. The default value is 1.
Details
When an EXIT instruction is reached, the control structure is terminated and execution
continues at the first instruction following the outermost control structure exited.
Example
If input signal 1001 is set, exit one control structure; if 1002 is set, exit three control
structures:
27 FOR i = 1 TO 40
28 WHILE ctrl.var DO
29 DO
30 IF SIG(1002) THEN
31 EXIT 3 ; Jump to step 40
32 END
33 IF SIG(1001) THEN
34 EXIT ; Jump to step 37
35 END
36 UNTIL FALSE
37 count = count+1
38 END
39 END
Related Keywords
DO program instruction
Page 214
EXIT program instruction
Page 215
FALSE real-valued function
Syntax
FALSE
Function
Return the value used by eV+ to represent a logical false result.
Usage Considerations
The word "false" cannot be used as a program name or variable name.
Details
This named constant is useful for situations where true and false conditions need to be
specified. The value returned is zero.
Example
The following program loop will execute continuously until the subroutine cycle returns a
FALSE value for the real variable continue:
DO
CALL cycle(continue)
UNTIL continue == FALSE
Related Keywords
OFF real-valued function
Page 216
FCLOSE program instruction
Syntax
FCLOSE (logical_unit)
Function
Close the disk file, graphics window, or graphics icon currently open on the specified logical
unit.
Usage Considerations
No error is generated if a file or graphics window is not open on the logical unit, although the
IOSTAT real-valued function returns an error code.
When a graphics window is closed, the window is not deleted from graphics memory and its
stacking and display status are not changed.
Parameter
Details
After a program has finished accessing a file that has been opened via an FOPEN instruction,
the program must close the file by executing an FCLOSE instruction. FCLOSE frees the file
for access by the eV+ monitor and other programs. In addition, for files that have been
opened for writing, FCLOSE writes out any data still buffered by eV+ and updates the file
directory information. Thus, if this operation is not performed, the disk file may not actually
contain all of the information written to it.
If a program is finished accessing a graphics window, or needs to reuse its logical unit
number, the window can be closed with this instruction. After a window is closed, it can be
deleted with an FDELETE instruction or it can be opened again later with an FOPEN
instruction.
NOTE: Reopening a window resets all its text and graphics attributes (for example, color,
font ID, character path and orientation, texture, logical operation, and enabled events),
which must be explicitly reset by the program before attempting output to the window.
An FCLOSE operation is automatically performed on a logical unit when the unit is detached,
when the program that issued the FOPEN completes execution, or when a KILL of the
program task is performed.
Page 217
FCLOSE program instruction
The IOSTAT real-valued function should be used to check for successful completion of a close
operation. (The error code for File not opened will be returned if there was no file or window
currently open on the specified logical unit.)
Related Keywords
ATTACH program instruction
Page 218
FCMND program instruction
Syntax
FCMND (logical_unit, command_code) $out_string, $in_string
Function
Generate a device-specific command to the input/output device specified by the logical unit.
Usage Considerations
The logical unit referenced must have been previously attached.
As appropriate, the current default device, unit, and directory path are considered for any
disk file specification (see the DEFAULT command).
Parameters
Details
This instruction allows a program to generate device-specific command sequences. For
example, this instruction can be used to send a command to the disk to delete a file or to
rename a file. Since these are maintenance operations, which are not generally performed
by eV+ programs, no special-purpose eV+ program instructions exist for performing these
operations.
Any error in the specification of this instruction (such as attempting to access an invalid unit)
will cause a program error and will halt program execution. However, errors associated with
performing the actual operations (such as device not ready) do not halt program execution
since these errors can occur in the normal operation of a program. These normal errors can
Page 219
FCMND program instruction
be detected by using the IOSTAT function after performing the FCMND. In general, it is good
practice always to test whether each FCMND operation completed successfully using IOSTAT.
6 Rename a file. The $out_string parameter must contain the new name
of the file (including any required disk unit and directory path
specification). The $in_string variable must contain the old file name.
8 Format the disk. The $out_string parameter must contain the name of
the disk unit to format, followed by any required qualifiers. The data
contained in $out_string must be identical to that of the argument list of
a FORMAT monitor command. On completion, the $in_string variable
will contain text indicating how many bad blocks were located.
Page 220
FCMND program instruction
19 Assert the creation date/time for the file currently open on the specified
logical unit. This command can be issued at any time a disk file is
opened. Once asserted, when the file is closed, the file's creation date
and time are set equal to the specified values rather than the current
date and time. Also, if this command is issued when the file is closed,
eV+ does not automatically assert the not archived bit. The input string
must contain date and time, where:
21 Read the creation date/time for the file currently open on the specified
logical unit. This command can be issued any time after a file has been
opened. Normally, this command returns the values that are read from
the disk directory at the time the file was opened. However, if an
FCMND 19 instruction has been issued to assert file creation date and
time, FCMND 21 returns the value set by FCMND 19. The string
returned by this command contains date and time (use INTB to extract
the values), where
102 Clear the type-ahead buffer for a serial line, or clear the event queue for
a graphics window. This command, which is recognized only by the
serial communication lines and the graphics logical units, does not
process any arguments.
Page 221
FCMND program instruction
106 Read modem control flags. Modem control flags are returned in the first
byte of a one-byte string. Bits within that byte show the current state of
the modem control lines for the serial port attached to the lun specified
in the FCMND instruction. The bits are interpreted as follows (LSB is 1):
Page 222
FCMND program instruction
500 Return information about DDCMP status. (This FCMND is present in all
eV+ systems that support DDCMP.) The FCMND reply string may be
parsed using INTB and LNGB functions to extract the binary data, as
described in the following code. When the instruction
Function Notes
Page 223
FCMND program instruction
600 Initiate a close connection from the TCP server side for the client
identified by the handle number handle in the instruction FCMND (lun,
600) $INTB(handle). Note, however, that close-connection requests are
more commonly initiated by the client side.
601 Initiate a PING command (see the eV+ Operating System Reference
Guide for details on the PING monitor command). The resulting IOSTAT
value is either 1, indicating the client was found on the network, or -
562, indicating a network timeout.
Page 224
FCMND program instruction
761 Used for reading CanBus status. The CanBus is the bus that DeviceNet
runs on. When the instruction
FCMND (lun,761) "", $input
is executed, the string variable $input returns the status shown in the
following table.
Function Notes
Page 225
FCMND program instruction
1 Online
2 Bus warning
3 Bus off
4 Activity detected
5 (reserved)
6 Transmit timeout
8 (reserved)
9 (reserved)
10 (reserved)
11 (reserved)
12 (reserved)
16 Scanner active
76- Used for generic I/O to the DeviceNet scanner. This FCMND reads from the
2 scanner input area. When the instruction
FCMND(lun, 762) $INTB(macid)+$INTB(offset)+$INTB
(count), $input
is executed, macid> is the MAC ID to read from, offset is the read offset into
Page 226
FCMND program instruction
the input area (it is device-dependent), and count is the number of bytes to
read. The input is returned by the string variable $input. See the MV Controller
User's Guide for details on the MACID statement in DeviceNet configuration.
76- Used for generic I/O to the DeviceNet scanner. This FCMND writes to the
3 scanner output area. When the instruction
FCMND(lun, 763) $INTB(macid)+$INTB(offset)+$INTB
(count)+$output
is executed, macid is the MAC ID to write to, offset is the write offset into the
output area (it is device-dependent), and count is the number of bytes to
write. The output bytes are contained in the string variable $output. See the
MV Controller User's Guide for details on the MACID statement in DeviceNet
configuration.
76- This command code provides the same support as command 761 except that it
4 returns a 32-bit counter instead of a 16-bit counter. If FCMND 764 is used for
an AWC controller, a 32-bit counter is returned, but the counter still rolls over
at 16 bits. The syntax for this command is as follows:
FCMND(lun, 764) "", $input
This is used for reading the CanBus status. The CanBus is the bus upon which
DeviceNet runs. The status is returned in $input.
76- Used for determining the DeviceNet status with the following eV+ code:
8
AUTO lun, macid, status, $error[25], $input
Page 227
FCMND program instruction
Examples
Return modem control bit flags for the serial port attached to logical unit 10:
Format the disk loaded in drive A in double-sided, double-density format and return the string
containing the bad-block count in $bad:
Specifya DDCMP time-out interval of 2 seconds, with maximums of 20 time-outs and 8 NAK
retries.
Page 228
FCOPY program instruction
Related Keywords
ATTACH program instruction
Syntax
FCOPY err, $new_file = $old_file
Function
Copy the information in an existing disk file to a new disk file.
Parameters
$new_file String constant, variable, or expression that specifies the file for the
new disk file to be created. If the period (".") and filename extension
are omitted, the default is a blank extension. The current default
device, unit, and directory path are considered as appropriate (see
the DEFAULT command).
Page 229
FCOPY program instruction
Details
If the new file already exists, or the old file does not exist, an error is reported and no copying
takes place. (You cannot overwrite an existing file-the existing file must first be deleted with
an FDELETE command.)
If the file to be copied has the special "read-only" attribute, the new file will also have that
attribute. Files with the "protected" attribute cannot be copied. (See FDIRECTORY for a
description of file protection attributes.) When a file is copied, the file creation date and time
are preserved along with the standard file attributes. The only attribute that is affected is the
"archived" bit, which is cleared to indicate that the file is not archived.
Example
Create a file named "newfile.v2" on disk device "D" that is an exact copy of the existing file
named "oldfile.v2" on disk device "D":
Related Keywords
FCOPY monitor command
Page 230
FDELETE program instruction
Syntax
FDELETE (logical_unit) object
Function
Delete the specified disk file, the specified graphics window and all its child windows, or the
specified graphics icon.
Usage Considerations
The logical unit number must be attached, but no file or window can be currently open on
that logical unit.
The window cannot be deleted if it (or any of its child windows) is open as any other logical
unit or by any other program task.
Parameters
For disk files, the string may contain an optional disk unit and an
optional directory path, and must contain a file name, a period (.),
and a file extension. The current default disk unit and directory
path are considered as appropriate (see the DEFAULT command).
For graphics windows, the string must fully specify the position in
the window tree of the window to be deleted.
For graphics icons, the string must specify the name of the icon,
followed by /ICON.
Details
If a disk logical unit number is specified, the object parameter is interpreted as the
specification of a disk file to be deleted. If the deletion fails for any reason (for example, the
file does not exist or the disk is protected), an error will be returned via the IOSTAT real-
valued function.
Page 231
FDELETE program instruction
NOTE: In order to delete a file from a 3.5 inch diskette, the write-protect slider must be in
the position that covers the hole.
If the logical unit number specified is for a graphics window, the object parameter is
interpreted as the specification of a graphics window or icon to be deleted. When a window is
specified, that window and all of its child windows are deleted. If any of the window's children
cannot be deleted, the specified window is not affected and an error is returned (via the
IOSTAT real-valued function). When a window is deleted, it is erased from the display. (A
window must be FCLOSEd before it can be FDELETEd.)
When a graphics logical unit is accessed, a *Protection error* message is reported (via
IOSTAT) if a system window or icon is specified.
Examples
Delete the disk file defined by the file specification in the string variable $file:
Delete the top-level window named TEST and all of its child windows. The logical unit defined
by main must be a graphics logical unit:
Delete the graphics window named ERROR, which is a child of the top-level window named
VISION:
Related Keywords
ATTACH program instruction
Page 232
FEMPTY program instruction
Syntax
FEMPTY (logical_unit)
Function
Empty any internal buffers in use for a disk file or a graphics window by writing the buffers to
the file or window if necessary.
Usage Considerations
When accessing a file, the file must be open for random access on the specified logical unit
(see the FOPEN_ instructions).
When accessing a graphics window, this instruction is useful only for a window that is opened
in buffered mode. (That is, the /BUFFERED attribute was specified in the FOPEN instruction
that opened the window.)
Parameter
Details
During random-access I/O of a disk file, eV+ writes data to the disk in blocks of 512 bytes
(characters). For efficiency, when a record with a length of less than 512 bytes is written
using a WRITE instruction, that data is stored in an internal buffer and might not actually be
written to the disk until a later time.
When a disk logical unit is referenced, the FEMPTY instruction directs eV+ to write its internal
buffer contents immediately to the disk file. That is useful, for example, in applications where
data integrity is especially critical (see FOPEN for details on defeating buffering).
When a window logical unit is referenced, the FEMPTY instruction forces all buffered graphics
output to be immediately written to the window.
The IOSTAT real-valued function can be used to determine if any error results from an
FEMPTY operation.
Examples
Empty the internal output buffer for logical unit 5 and write it to the disk immediately:
FEMPTY (5)
Page 233
FEMPTY program instruction
Empty the internal buffer for graphics logical unit 20 by writing it to the window immediately:
FEMPTY (20)
Related Keywords
ATTACH program instruction
Page 234
FINE program instruction
Syntax
FINE tolerance ALWAYS
Function
Enable a high-precision feature of the robot hardware servo.
Usage Considerations
Only the next robot motion will be affected if the ALWAYS parameter is not specified.
If the tolerance parameter is specified, its value becomes the default for any subsequent
FINE instruction executed during the current execution cycle (regardless of whether
ALWAYS is specified).
This is the default state of the eV+ system. FINE 100 ALWAYS is assumed whenever
program execution is initiated and when a new execution cycle begins.
The FINE instruction can be executed by any program task as long as the robot selected by
the task is not attached by any other task. The instruction applies to the robot selected by
the task.
If the eV+ system is not configured to control a robot, executing the FINE instruction causes
an error.
Parameters
tolerance Optional real value, variable, or expression that specifies the percentage
of the standard fine tolerances that are used for each joint of the robot
attached by the current execution task.
ALWAYS Optional qualifier that establishes FINE as the default condition. That is,
FINE will remain in effect continuously until disabled by a COARSE
instruction. If ALWAYS is not specified, the FINE instruction will apply
only to the next robot motion.
Details
Enables the high-precision feature in the robot motion servo system so that only small errors
in the final positions of the robot joints are permitted at the ends of motions. This produces
high-accuracy motions but increases cycle times since the settling time at the end of each
motion is increased.
If the tolerance parameter is specified, the new setting takes effect at the start of the next
motion. Also, the value becomes the default for any subsequent FINE instruction executed
Page 235
FINE program instruction
during the current execution cycle (regardless of whether or not ALWAYS is specified).
Changing the FINE tolerance does not affect the COARSE tolerance.
If the tolerance parameter is omitted, the most recent setting (for the attached robot) is
used. The default setting is restored to 100 percent when program execution begins, or a
new execution cycle starts (assuming that the robot is attached to the program).
Examples
Enable the high-precision feature only for the next motion:
FINE
Enable the high-tolerance feature for the next motion, with the tolerance settings changed
to 50% of the standard tolerance for each joint (that is, a tighter tolerance):
FINE 50
FINE ALWAYS
Related Keywords
COARSE program instruction
Page 236
FLIP program instruction
Syntax
FLIP
Function
Request a change in the robot configuration during the next motion so that the pitch angle
of the robot wrist has a negative value.
Usage Considerations
Configuration changes cannot be made during straight-line motions.
If the selected robot does not support a flip configuration, this instruction is ignored by the
robot.
The FLIP instruction can be executed by any program task as long as the robot selected by
the task is not attached by any other task, however if the robot is not attached, this
instruction has no effect. The instruction applies to the robot selected by the task.
If the eV+ system is not configured to control a robot, executing the FLIP instruction causes
an error.
Details
Asserting a FLIP configuration forces the wrist joint to have a negative rotation (top robot in
FLIP/NOFLIP). Asserting a NOFLIP configuration forces a wrist joint to have a positive
rotation (bottom robot in FLIP/NOFLIP). Wrist joint angles are expressed as ±180°.
Page 237
FLIP program instruction
FLIP/NOFLIP
The following figures illustrate FLIP versus NOFLIP configurations of a Viper 650 robot.
Page 238
FLIP program instruction
Example
The following eV+ code snippet demonstrates the use of the FLIP and NOFLIP program
instructions:
Related Keywords
CONFIG real-valued function
Page 239
FLIP program instruction
Page 240
FLTB real-valued function
Syntax
FLTB ($string, first_char)
Function
Return the value of four bytes of a string interpreted as an IEEE single-precision floating-
point number.
Parameters
Details
Four sequential bytes of the given string are interpreted as being a single-precision (32-bit)
floating-point number in the IEEE standard format. This 32-bit field is interpreted as follows:
where
fraction is a binary fraction with an implied 1 to the left of the binary point.
For 0 < exp < 255, the value of a floating-point number is:
For exp = 0, the value is zero; for exp = 255, an overflow error exists.
Page 241
FLTB real-valued function
The main use of this function is to convert a binary floating-point number from an input data
record to a value that can be used internally by eV+.
Examples
FLTB($CHR(^H3F)+$CHR(^H80)+$CHR(0)+$CHR(0)) ;Returns 1.0
FLTB($CHR(^HC0)+$CHR(^H40)+$CHR(0)+$CHR(0)) ;Returns -3.0
Related Keywords
ASC real-valued function
Page 242
$FLTB string function
Syntax
$FLTB (value)
Function
Return a 4-byte string containing the binary representation of a real value in single-precision
IEEE floating-point format.
Parameter
value Real-valued expression, the value of which is converted to its IEEE
floating-point binary representation.
Details
A real value is converted to its binary representation using the IEEE single-precision
standard floating-point format. This 32-bit value is packed as four successive 8-bit characters
in a string. See the FLTB real-valued function for a more detailed description of IEEE floating-
point format.
The main use of this function is to convert a real value to its binary representation in an
output record of a data file.
Example
$FLTB(1.215)
;Returns a character string equivalent to:
$CHR(^H3F)+$CHR(^H9B)+$CHR(^H85)+$CHR(^H1F)
Related Keywords
$CHR string function
Page 243
FOPEN program instruction
Syntax
FOPEN (logical_unit, mode) attribute_list
Function
Create and open a new graphics window or TCP connection, or open an existing graphics
window for subsequent input or output.
Usage Considerations
The logical unit must be attached before an open operation will succeed.
Parameters
mode Optional expression that applies only to TCP logical units and
selects the type of TCP connection:
0 = Client mode, 16 = Server mode.
Page 244
FOPEN program instruction
Details
A TCP/IP connection can be opened in either server mode or client mode. In server mode, one
or more clients (depending on the value assigned to /CLIENTS) are allowed to connect to the
server for subsequent communication.
To establish a client-server connection, the client must know the port number for the server.
For this reason, when using the FOPEN instruction for opening a server connection, the port
is explicitly defined using the /LOCAL_PORT attribute. Note that the server does not need to
know the port number used by the client.
Port numbers 0 through 255 are used by standard TCP application packages. For example,
FTP uses ports 20 and 21. By convention, if you are writing your own custom protocol, use a
port number greater than 255.
The following table shows valid TCP attributes for the FOPEN instruction.
Attribute: /CLIENTS
Attribute: /LOCAL_PORT
Page 245
FOPEN program instruction
assigned.
Attribute: /REMOTE_PORT
Examples
Set up a TCP server with local port #260 to accept 5 client connections:
Set up a TCP client connection that connects to port number 260 on the server called
server1:
Related Keywords
ATTACH program instruction
Page 246
FOPEN_ program instruction
Syntax
FOPEN_ (lun, record_len, mode) file_spec
Function
Open a disk file for read-only, read-write, read-write-append, or read-directory, as indicated
by the last letter of the instruction name.
l FOPENA
l FOPEND
l FOPENR
l FOPENW
Usage Considerations
A logical unit must be attached before an open operation will succeed.
No more than 60 disk files and 160 network files can be open by the entire system at any
time. That includes files opened by all of the program tasks and by the system monitor (for
example, for an FCOPY command).
Parameters
lun Real-valued expression defining the logical unit number of the disk
device to be accessed. (See the ATTACH instruction for a description
of unit numbers.)
Page 247
FOPEN_ program instruction
If this bit is clear, eV+ will read a record as soon as the file is opened
(a preread) and after each READ instruction in anticipation of
subsequent READ requests. If this bit is set, no such prereads are
performed.
If this bit is clear, the file will be accessed sequentially. That is, records
are read or written in the order they occur in the file.
If this bit is set, the file is accessed using random access (which is
allowed only for disk files with fixed-length records). In random-
access mode, the record-number parameter in the READ or WRITE
instruction specifies which record is accessed.
If set for a disk file being opened for write access, the physical disk is
written every time a record is written. In addition, the directory or file
allocation information is updated with each write. This mode is
equivalent to (but faster than) closing the file after every write. It is
much slower than normal buffered mode, but it guarantees that
information that is written will not be lost due to a system crash or
power failure. This mode is intended primarily for use with log files
that are left opened over an extended period of time and
intermittently updated. For these types of files, the additional
(significant) overhead of this mode is not as important as the benefit.
The current default disk unit and directory path are considered as
appropriate (see Using Directories for additional information on disk
units and directory paths.)
Details
This instruction opens a disk file so that input/output (I/O) operations can be performed.
When the I/O operations are complete, the file should be closed using an FCLOSE or DETACH
instruction.
Page 248
FOPEN_ program instruction
FOPENA Opens a file for read-write-append access. If the specified file does not
already exist, the file is created.
If the file already exists, no error occurs, and the file position is set to
the end of the file. Write operations then append to the existing file.
FOPEND Opens a disk directory for reading. The file name and extension in the
file_spec parameter are used to prepare a file name template for use
when read operations are later performed. Those read operations
return only records from the disk directory file that match the file
name template. Any attempt to write to the directory file causes an
error. (For information on the format of directory records, see the
section Accessing the Disk Directories in the eV+ Language User's
Guide.)
FOPENR Opens a file for read-only access. If the file does not already exist, an
error occurs. Any attempt to write to the file causes an error.
FOPENW Opens a file for read-write access. If the file already exists, an error
occurs.
Example
FOPENR (5) "data.dat"
Page 249
FOPEN_ program instruction
Open the file named data.dat on the default device for read-only access with variable-length
records (record length omitted). Since the mode parameter is omitted, prereads will occur
and the records will be accessed sequentially (which is required for variable-length records).
Open the file named x.d on the device D for read-write access using fixed-length records of 32
characters each. The mode value 3 has both bits 1 and 2 set; thus, prereads are to be
disabled and random access is to be used.
Open the current default directory to find all the files with the extension DAT.
Related Keywords
ATTACH program instruction
Page 250
FOR program instruction
Syntax
FOR loop_var = initial TO final STEP increment
Function
Execute a group of program instructions a certain number of times.
Usage Considerations
An END instruction must be included in a program to match every FOR.
Parameters
loop_var Real valued variable that is initialized when the FOR instruction is
executed and is incremented each time the loop is executed (cannot
be a specified value or expression).
initial Real value that determines the value of the loop variable the first time
the loop is executed.
final Real value that establishes the value to be compared to the loop
variable to determine when the loop should be terminated.
increment Optional real-value that establishes the value to be added to the loop
variable every time the loop is executed. If omitted, the increment
defaults to one, and the keyword STEP may also be omitted.
Details
The instructions between the FOR statement and the matching END statement are
executed repeatedly, and loop_var is changed each time by the value of increment.
1. When the FOR statement is first entered, set loop_var to the initial value.
Page 251
FOR program instruction
l If increment is negative and loop_var is less than (that is, more negative
than) final, skip to item 7 below.
5. When the END step is reached, add the value of increment to the loop variable.
7. Continue program execution at the first instruction after the END statement. loop_
var retains the value it had at the time of the test in item 3 above.
Note that the group of instructions in the FOR structure may not be executed at all if the test
in item 3 fails the first time.
The values of initial, increment, and final when the FOR statement is first executed
determine how many times the group of instructions are executed. Any changes to the
values of these parameters within the FOR loop have no effect on the processing of the FOR
structure.
Changes to the loop variable within the loop affect the operation of the loop and should
normally not be done.
NOTE: If initial, final, or increment are not integer values, rounding in the floating point
computations may cause the loop to be executed more or fewer timer than expected.
Example
The following example sets all elements of a 10x10 array to 0:
FOR i = 1 TO 10
FOR j = 1 TO 10
array[i,j] = 0
END
END
Related Keywords
DO program instruction
Page 252
FORCE._ program instruction
Syntax
FORCE._
Function
Adept Intelligent Force Sensing option status and control instructions.
Usage Considerations
The forms of FORCE._ areis:
Details
These instructions are part of the Omron Adept Intelligent Force Sensing System. See the
Adept Intelligent Force Sensing System User’s Guide for full syntax and details.
A "stop-on-digital-signal" functionality is available. With this feature, any Omron Adept robot
system can be programmed to stop rapidly on a digital-input latch event. For example, this
feature could be used during high-speed assembly searches.
This feature, which operates like an AdeptForce (stop-on-force) guarded move, is enabled
and disabled with the program instructions "FORCE.MODE (2)" and "FORCE.MODE (-2)",
respectively. For more details on the Adept Intelligent Force Sensing System (stop-on-force)
Guarded move, see the Adept Intelligent Force Sensing System User's Guide.
1. Using the ACE Controller Config Tools, change the TRAJ_RATE system parameter to
the value 250 Hz / 4 ms. This will increase the speed of response.
2. Using the ACE Controller Config Tools, add a poslatch clause to the robot statement.
Page 253
FORCE._ program instruction
For example, the clause "poslatch 1001" will cause a position latch to occur on the
leading edge of a change in input signal 1001. An example of this clause is shown in
the following code:
After a "stop-on-digital-signal" occurs, the LATCHED() function returns the signal number
that triggered the latch (e.g. 1001) to indicate that the event had occurred, and the
transformation function LATCH() and the precision-point function #PLATCH() return the
position of the robot at the time of the event. The real-valued function STATE(2) can be used
Page 254
FORCE._ program instruction
to determine the state of the stopped motion. STATE(2) has the value 10 after a stop-on-
digital-signal event has occurred.
Related Keywords
LATCH transformation function
Page 255
FRACT real-valued function
Syntax
FRACT (value)
Function
Return the fractional part of the argument.
Parameter
Details
The fractional part of a real value is the portion to the right of the decimal point (when the
value is written without the use of scientific notation).
The value returned has the same sign as the function argument.
Examples
FRACT(0.123) ;Returns 0.123
FRACT(-5.462) ;Returns -0.462
FRACT(1.3125E+2) ;Returns 0.25 (1.3125E+2 = 131.25)
Related Keyword
INT real-valued function
Page 256
FRAME transformation function
Syntax
FRAME (location_1, location_2, location_3, location_4)
Function
Return a transformation value defined by four positions.
Parameters
Details
While the robot can be used to define an X, Y, Z position very accurately, it is often difficult to
define precisely an orientation. For applications such as palletizing, the FRAME function is
very useful for accurately defining a base transformation whose position and orientation are
determined by four positions. This function returns a transformation value that is computed
as follows:
2. Its positive X axis is parallel to the line passing through the points defined by
location_1 and location_2, in the direction from location_1to location_2.
3. Its X-Y plane is parallel to the plane that contains the points defined by location_1,
location_2, and location_3.
4. Its positive Y direction is from the computed X axes (as defined above), toward the
point defined by location_3.
Page 257
FRAME transformation function
Example
The following instruction defines the transformation base.frame to have the same X, Y, Z
position as origin, its X axis parallel to the line from center to x, and its Y axis approximately in
the same direction as the line from center to y.
Related Keyword
TRANS transformation function
Page 258
FREE real-valued function
Syntax
FREE (memory, select)
Function
Return the amount of unused free memory storage space.
Parameters
memory Optional real value, variable, or expression (interpreted as an integer) that
specifies which portion of system memory is to be examined, as shown
below. The value zero is assumed if the parameter is omitted.
0 Program memory
1 Obsolete
2 Obsolete
2 Obsolete
NOTE: If both parameters are omitted, the parentheses must still be included.
Details
This function returns the information displayed by the FREE command. Unlike the FREE
command, however, this function returns only one value, determined by the values specified
for the memory and select parameters.
Page 259
FREE real-valued function
Related Keyword
FREE monitor command
Page 260
FSEEK program instruction
Syntax
FSEEK (logical_unit, record_number)
Function
Position a file open for random access and initiate a read operation on the specified record.
Usage Considerations
A file must be open for random access on the specified logical unit (see the FOPEN_
instruction).
For efficiency in most applications, the file should be opened in no preread mode.
Parameters
Details
When a file is open for random access, system performance can be improved by overlapping
the time required for disk file access with processing of the current data. By using the FSEEK
instruction, an application program can initiate a disk seek and possible read operation
immediately after a READ instruction is processed but before processing the data.
Any error in the specification of this instruction (such as referencing an invalid unit) causes a
program error and halts program execution. However, errors associated with performing the
actual seek operation (such as end of file or device not ready) do not halt program execution
since these errors may occur in the normal operation of a program. These normal errors can
be detected by using the IOSTAT function after performing the subsequent READ operation.
In general, it is good practice always to test whether each file operation completed
successfully by testing the value from IOSTAT.
Example
; Seek record number 130 in the file open on logical unit 5:
FSEEK (5, 130)
Page 261
FSEEK program instruction
Related Keywords
ATTACH program instruction
Page 262
FSET program instruction
Syntax
FSET (logical_unit) attribute_list
Function
Set or modify attributes of a serial line or a network device.
Usage Considerations
If a window has been referenced, it must have been opened already with an FOPEN
instruction. If a serial line is referenced, it must have been attached already with an ATTACH
instruction.
The use of this instruction withnetwork devices applies only to systemswith the appropriate
license(s).
As with all eV+ I/O instructions, the IOSTAT real-valued function should be used after each
FSET instruction to determine the success of the FSET request.
Parameters
Details
Page 263
FSET program instruction
You can use the attributes listed in the following table when accessing these devices with the
FSET instruction:
Attribute Description
You may define new nodes on the network using the FSET program instruction to access a
logical unit that has been attached to the TCP device. The string used with the FSET
Page 264
FSET program instruction
instruction has the same format as that used with the NODE statement in the eV+
configuration file (see the later example).
Examples
Serial
The following example attaches serial line 2 and sets the baud rate to 38400:
Network
Related Keywords
FOPEN program instruction
Page 265
GETC real-valued function
Syntax
GETC (lun, mode)
Function
Return the next character (byte) from a device or input record on the specified logical unit.
Usage Considerations
The logical unit must be attached by the program for normal, variable-length record
input/output.
Parameters
If this bit is clear, program execution is suspended until the next byte is
received. If the bit is set and no bytes are available, the function
immediately returns the error code for *No data received* (-526).
NOTE: A -526 error may be returned by the first no-wait GETC even
if there are bytes queued.
If this bit is clear, input from the terminal is echoed back to the source.
If the bit is set, characters are not echoed back to the source. (This bit is
ignored for the serial lines.)
Details
The next byte from the device is returned. When reading from a record-oriented device such
as the system terminal or a disk file, the carriage-return and line-feed characters at the end
Page 266
GETC real-valued function
of records are also returned. When the end of a disk file is reached, a Ctrl+Z character (26
decimal) is returned.
When reading from the terminal, GETC will return the next character entered at the
keyboard. All control characters will be read, except Ctrl+S, Ctrl+Q, Ctrl+O, and Ctrl+W,
which will have their normal terminal control functions.
When reading from the serial line, GETC will return the next data byte immediately,
unmodified. (Note that if the serial line is configured to recognize Ctrl+S and Ctrl+Q
automatically as control characters, then those characters are not returned by the GETC
function.)
Normally, the byte value returned is in the range 0 to 255 (decimal). If an input error occurs,
a negative error code number is returned. The meanings of the error codes are listed in the
section System Messages.
Example
The following program segment reads characters from a disk file until a comma (,) character,
a control character, or an I/O error is encountered. The characters are appended to the string
variable $field. (The disk file must have already been opened for accessing variable-length
records.)
$field = ""
c = GETC(5)
WHILE (c > ^H1F) AND (c <> ',) DO
$field = $field+$CHR(c)
c = GETC(5)
END
IF c < 0 THEN
TYPE $ERROR(c)
HALT
END
Related Keywords
ATTACH program instruction
Page 267
GET.EVENT real-valued function
Syntax
GET.EVENT (task)
Function
Return events that are set for the specified task.
Usage Considerations
Do not confuse GET.EVENT with the GETEVENT program instruction, which returns
information from a graphics window or the terminal.
Parameter
NOTE: The basic system allows 7 tasks (0–6). The eV+ Extensions
option allows 28 tasks (0–27).
Details
The events are returned in a value that should be interpreted as a sequence of bit flags, as
detailed below.
This bit being set indicates that a system input/output operation has completed.
Related Keywords
CLEAR.EVENT program instruction
Page 268
GLOBAL program instruction
Syntax
GLOBAL type variable, ..., variable
Function
Declare a variable to be global and specify the type of the variable.
GLOBAL statements must appear before any executable statement in the program.
Parameters
Details
Variables that are not declared to be AUTO or LOCAL are GLOBAL by default. Undeclared
scalar variables default to double precision.
Global variables can be seen by any program that does not declare a LOCAL or AUTO variable
of the same name. Thus, if program_a declares var1 to be a GLOBAL variable and
program_b declares var1 to be AUTO, program_b cannot use or alter GLOBAL var1. A new
copy of variable var1 that is specific to program_b is created each time program_b
executes.
Page 269
GLOBAL program instruction
Examples
GLOBAL $str_1, $str_2, x ;create 2 string and 1 untyped
variable
GLOBAL LOC #ppoint_1 ;create 1 global precision point
variable
GLOBAL var_1, var_2 ;create 2 double prec. reals
Related Keywords
AUTO program instruction
Page 270
GOTO program instruction
Syntax
GOTO label
Function
Perform an unconditional branch to the program step identified by the given label.
Parameter
label Label of the program step to which execution is to branch. Step labels
are integer values that range in value from 0 to 65535.
Details
This instruction causes program execution to jump to the line that contains the specified
step label. Note that a step label is different from a line number. Line numbers are the
numbers automatically assigned by the eV+ program editors to assist the editing process.
Step labels must be explicitly entered on program lines where appropriate.
Example
The following program segment asks you to enter a number from 1 to 100. If the number
input is not in that range, the GOTO 10 instruction at line number 27 causes execution to
jump to step label 10 (at line number 23).
21 ; Get a number from the user
22
23 10 PROMPT "Enter a number from 1 to 100: ", number
24
25 IF (number < 1) OR (number > 100) THEN
26 TYPE /B, /C1, *Invalid response*, /C1
27 GOTO 10
28 END
Related Keywords
DO program instruction
Page 271
GOTO program instruction
Page 272
HALT program instruction
Syntax
HALT
Function
Stop program execution and do not allow the program to be resumed.
Usage Considerations
The PROCEED command cannot be used to resume program execution after a HALT
instruction causes the program to halt.
HALT forces an FCLOSE and/or DETACH on the disk and serial communication logical units as
required.
Details
Causes a BREAK and then terminates execution of the application program regardless of any
program loops remaining to be completed (see the EXECUTE command and instruction). The
message (HALTED) is displayed.
Related Keywords
PAUSE program instruction
Page 273
HAND real-valued function
Syntax
HAND
Function
Return the current hand opening.
Usage Considerations
The HAND function returns information for the robot selected by the task executing the
function.
If the eV+ system is not configured to control a robot, use of the HAND function does not
generate an error due to the absence of a robot. However, the information returned by the
function may not be meaningful.
Details
This function returns 0 if the hand is closed or 1 if the hand is opened or relaxed.
Related Keywords
CLOSE program instruction
Page 274
HAND.TIME system parameter
Syntax
... HAND.TIME
Function
Establish the duration of the motion delay that occurs during OPENI, CLOSEI, and RELAXI
instructions.
Usage Considerations
The current value of the HAND.TIME parameter can be determined with the PARAMETER
monitor command or real-valued function.
The value of the HAND.TIME parameter can be modified only with the PARAMETER monitor
command or program instruction.
If the eV+ system is controlling more than one robot, the HAND.TIME parameter controls
the hand operation times for all the robots.
Details
The OPENI, CLOSEI, and RELAXI instructions are used to operate the hand after the robot
has stopped moving. The HAND.TIME parameter determines the time allotted to the hand
actuation before the next robot motion can be initiated.
The value for this parameter is interpreted as the number of seconds to delay. It can range
from 0 to 10 18. Because of the way eV+ generates time delays, the HAND.TIME parameter is
internally rounded to the nearest multiple of 0.016 seconds.
This parameter is set to 0.05 seconds when the eV+ system is initialized.
Example
Set the hand operation delay time to 0.5 seconds:
Related Keywords
CLOSEI program instruction
Page 275
HAND.TIME system parameter
Page 276
HERE program instruction
Syntax
HERE location_var
Function
Set the value of a transformation or precision-point variable equal to the current robot
location.
Usage Considerations
The HERE instruction returns information for the robot selected by the task executing the
instruction.
If the eV+ system is not configured to control a robot, executing the HERE instruction does
not generate an error because of the absence of a robot. However, the location value
returned may not be meaningful.
Parameter
Details
This instruction sets the value of a transformation or precision-point variable equal to the
current robot location.
Normally, the robot location is determined by reading the instantaneous values of the joint
encoders. However, if the robot has either backlash or linearity compensation enabled, the
commanded robot location is used.
Examples
Set the transformation part equal to the current robot location:
HERE part
Assign the current location of the robot to the precision point #part:
Page 277
HERE program instruction
HERE #part
Related Keywords
HERE monitor command
Page 278
HERE transformation function
Syntax
HERE
Function
Return a transformation value that represents the current location of the robot tool point.
Usage Considerations
The current location is obtained by reading the instantaneous value of the joint encoders so
that it represents the actual location of the robot.
The HERE function returns information for the robot selected by the task executing the
function.
If the eV+ system is not configured to control a robot, use of the HERE function does not
generate an error due to the absence of a robot. However, the information returned by the
function may not be meaningful.
Example
Calculate the distance between the current robot location and the location the robot is
currently moving to:
Related Keywords
DEST transformation function
Page 279
ID real-valued function
ID real-valued function
Syntax
ID (component, device, board)
Function
Return values that identify the configuration of the current system.
Parameters
board Optional integer specifying the CPU of interest when the device
parameter value equals 4. Board #1 (the main CPU) is assumed if
this parameter is omitted.
Details
The ID function enables a program to access the information displayed by the ID monitor
command. The values of the components are the same as the fields displayed by that
command.
The function returns the value 0 for devices that do not exist. Device numbers that do not
exist return the value 0. For valid devices, an *Invalid argument* error message is reported
if the requested component is not valid.
The following table describes the type of information returned when the device parameter is
set at a specified value. To see the acceptable values for the component parameter and the
type of information returned for each device value, click on the device link in the table
below.
Page 280
ID real-valued function
CPU and board info device = 4 returns information about the CPU
and processor board (if the board parameter is
specified).
8 Not used.
Page 281
ID real-valued function
The value for the controller hardware configuration [returned by ID(11,1)] should be
interpreted as a bit field, as follows:
This bit is set if the system is an emulator (e.g. it runs on PC with virtual robot instead of
running on a SmartController-EX controlling real robots).
Pendant
Device number 4 refers to the system CPUs. (If the indicated board does not exist, all values
are returned as -1.)
5 CPU type:
8 = SmartController EX
Page 282
ID real-valued function
6 Bit field indicating which software modules are active on the board.
Bit definitions are provided in the following table.
Mask Value
Interpretation
Bit #
When Bit Set
Decimal Hexadecimal
1 1 1 Processor is
running the eV+
Operating
System
2 2 2 Obsolete
3 4 4 Processor is
running the
Servo software
Device number 8 returns information for the currently selected robot. The acceptable values
for the component parameter are the same as for a specified robot. (See the following
table.)
Device number 10 refers to the external encoders connected to the robot controller. The
acceptable values for the component parameter are the same as for a robot.
Device numbers 11, 12, ... refer to robot number 1, 2, ..., respectively, for each robot
connected to the controller. That is, a device number equal to 10+r refers to robot number r,
which can range from 1 to the value returned by the function SELECT(ROBOT, -1). The
number of the robot that is currently selected can be obtained with the function SELECT
(ROBOT).The acceptable values for the component parameter, and the corresponding
values returned, are listed in the following table.
Page 283
ID real-valued function
4 Value interpreted as bit flags for the robot joints that are enabled: bit
1 for joint 1, and so on. (The value is zero if the robot does not have
joints that can be disabled selectively. For example, this value is
defined for the X/Y/Z/Theta robot but is zero for the 4/5-axis SCARA
module.)
6 Obsolete
10 Obsolete
13 Returns the safety level for the robot. Possible values are:
Page 284
ID real-valued function
0 = eSeries Lite/eVario
1 = eSeries Standard
2 = eSeries Pro
3 = sSeries
16 Returns the first and second parts of the robot security ID (shown as
"aaaa-bbbb") below. (The value returned needs to be displayed in
hexadecimal format to look the same as "aaaa-bbbb".)
*The robot option words are described in the Robot Option Words topic
Device number 50 refers to the currently selected force sensor. Device numbers 51 through
66 refer to force sensors numbered 1 to 16, respectively.
See the documentation for the SELECT program instruction for an explanation of selecting
among multiple force sensors. The acceptable values for the component parameter, and the
corresponding values returned, are listed below.
3 Obsolete
Page 285
ID real-valued function
Related Keywords
ID monitor command
Page 286
$ID string function
Syntax
$ID (select)
Function
Return the system ID string.
Parameter
select Integer specifying the ID information to return. It may be:
Integer Description
-2 Returns the edit letter and issue number for the eV+
system.
Details
This function returns a string that identifies the release edition and date of the requested
system software component.
Related Keywords
ID monitor command
ID real-valued function
Page 287
IDENTICAL real-valued function
Syntax
IDENTICAL (location, location)
Function
Determine whether two location values are exactly the same.
Parameter
location Transformation value that defines one of the locations of interest. This
can be a function, a variable, or a compound transformation.
Details
This function returns the value TRUE if the positional and rotational components of the two
specified locations are exactly the same. Even a single-bit difference in any of the
components results in the value FALSE being returned.
Example
The statement
x = IDENTICAL(base.1:loc,part)
sets the value of the real variable x to TRUE if the value of loc relative to the base.1 frame is
exactly the same as the value stored in the variable part.
Related Keyword
DISTANCE real-valued function
Page 288
IF logical_expr THEN program instruction
Syntax
IF logical_expr THEN
first steps
ELSE
second steps
END
Function
Conditionally execute a group of instructions (or one of two groups) depending on the result
of a logical expression.
Usage Considerations
There must be a matching END statement for every IF... THEN in a program.
Parameters
Details
This control structure provides a means for conditionally executing one of two groups of
instructions. In detail, it is processed as follows:
Page 289
IF logical_expr THEN program instruction
5. Program execution continues at the first step after the END step.
There are no restrictions on the instructions that can be in either group in the structure.
Thus, nested IF structures can be used.
Examples
Consider the following segment of a eV+ program. If the value of row is greater than 5, the
expression row > 5 will be TRUE (-1.0), so step 22 is executed and 24 is not executed.
Otherwise, step 22 is not executed, but step 24 is executed:
21 IF row > 5 THEN
22 spacing = 10
23 ELSE
24 spacing = 20
25 END
The next program segment determines whether the variable input.signal has been defined. If
it has, the program checks the signal indicated by the value of input.signal and types different
messages depending on its setting. Note that the outer IF does not include an ELSE clause:
71 IF DEFINED(input.signal) THEN
72 IF SIG(input.signal) THEN
73 TYPE "The input signal is ON"
74 ELSE
75 TYPE "The input signal is OFF"
76 END
77 END
Related Keywords
CASE program instruction
Page 290
IF logical_expr GOTO program instruction
Syntax
IF logical_expr GOTO label
Function
Branch to the specified step label if the value of the logical expression is TRUE (nonzero).
Usage Considerations
In general, it is a better programming practice to use the IF ... THEN control structure rather
than this instruction.
Parameters
Details
If the value of the expression is nonzero, program execution branches and begins executing
the statement with a label matching the one specified. If the value of the expression is zero,
the next instruction is executed as usual.
If the specified statement label is not defined, the program is not executable. Any attempt to
branch to an undefined label is identified when the program editor is exited and when the
program is loaded into memory from a disk file.
Example
The most common use for IF...GOTO is as an exit-on-error instruction. The following code
checks each I/O operation and branches to a label whenever an I/O error occurs:
ATTACH(dlun, 4) "DISK"
IF IOSTAT(dlun) < 0 GOTO 100
FOPENW(dlun) "my_file"
IF IOSTAT(dlun) < 0 GOTO 100
...
FCLOSE(dlun) "my_file"
IF IOSTAT(dlun) < 0 GOTO 100
DETACH(dlun)
100 IF IOSTAT(dlun) < 0 THEN
TYPE $ERROR(IOSTAT(dlun))
END
Page 291
IF logical_expr GOTO program instruction
Related Keywords
GOTO program instruction
Page 292
IGNORE program instruction
Syntax
IGNORE signal
Function
Cancel the effect of a REACT or REACTI instruction.
Usage Considerations
Only digital I/O signals that are installed and configured as inputs are available for reaction
monitoring.
The IGNORE instruction must be executed by the same program task that initiated the
REACT or REACTI instruction.
Parameter
signal Digital input signal number in the range 1001 to 1012, an internal
signal in the range 2001 to 2008.
Details
Disables continuous monitoring of the specified signal, canceling the effect of the last REACT
or REACTI for this signal.
Example
Stop monitoring of the digital input or soft signal identified by the value of test.
IGNORE test
Related Keywords
LOCK program instruction
Page 293
INRANGE real-valued function
Syntax
INRANGE (location)
Function
Return a value that indicates whether a location can be reached by the robot and, if not, why
not.
Usage Considerations
The INRANGE function returns information for the robot selected by the task executing the
function.
Parameter
Details
The function returns a value that indicates whether or not the given location can be reached
by the robot. The value zero indicates that the specified location can be reached.
If the location cannot be reached, the returned value is a coded binary number that identifies
the reason. A bit equal to 1 in the value indicates that the corresponding robot constraint
would be violated, as shown in the table below:
Mask Value
Page 294
INRANGE real-valued function
Mask Value
If the motion system is configured to return motor-limit as well as joint-limit errors, bit 16
indicates whether a joint or motor would limit motion to location. If bit 16 is set, all the joints
passed their limit checks, and the indicated motor is limiting. Otherwise, the indicated joint is
limiting.
The mask values indicated above can be used with the BAND operator to determine if a
corresponding bit is set.
Page 295
INRANGE real-valued function
Example
Returns the value zero if the robot can reach the location defined by the compound
transformation pallet:hole.
INRANGE(pallet:hole)
If both joints 2 and 3 would prevent the motion from being made, the value returned would
be 6.
Related Keyword
SELECT program instruction
Page 296
INSTALL program instruction
Syntax
INSTALL password, op
Function
Install or remove software options available to Omron Adept systems.
Usage Considerations
You must have received the authorization password from Omron Adept. INSTALL can be run
only on CPU #1 in multiple CPU systems.
Parameters
Details
When you purchase additional software options from Omron Adept, the software is delivered
with a software license and authorization password that enables the software for a particular
controller. If the option is not enabled, the software does not load correctly.
The password is keyed both to the software option and the serial number of your controller.
The password cannot be used on any controller other than the one for which you purchased
the software option.
Example
If you purchased the AIM MotionWare software from Omron Adept and the password
provided with the option is 4EX5-23GH8-AY3F, the following instruction enables the
software option:
INSTALL "4EX5-23GH8-AY3F"
NOTE: Some options, such as AIM software, have additional software files that must be
copied to the hard drive. Other options, such as AdeptVision, are already resident and
need only to be enabled.
Page 297
INT real-valued function
Syntax
INT (value)
Function
Return the integer part of the value.
Parameter
Details
Returns the portion of the value parameter to the left of the decimal point (when the value is
written without the use of scientific notation).
The sign of the value parameter is preserved unless the result is zero.
Examples
INT(0.123) ;Returns 0.0
Related Keyword
FRACT real-valued function
Page 298
INTB real-valued function
Syntax
INTB ($string, first_char)
Function
Return the value of two bytes of a string interpreted as a signed 16-bit binary integer.
Parameters
first_char Optional real-valued expression that specifies the position of the first
of the two bytes in the string.
Details
Two sequential bytes of a string are interpreted as being a 2's-complement 16-bit signed
binary integer. The first byte contains bits 9 to 16, and the second byte contains bits 1 to 8.
The main use of this function is to convert binary numbers from an input data record to
values that can be used internally by eV+.
The expression
Examples
INTB($CHR(10)+$CHR(5)) ;Returns the value 2565
Page 299
INTB real-valued function
Related Keywords
ASC real-valued function
Page 300
$INTB string function
Syntax
$INTB (value)
Function
Return a 2-byte string containing the binary representation of a 16-bit integer.
Parameter
Details
The integer part of a real value is converted into its binary representation and the low 16 bits
of that binary representation are packed into a string as two 8-bit characters. Bits 9-16 are
packed first, followed by bits 1-8.
The main use of this function is to convert integers to binary representation within an output
record of a data file.
Example
$INTB(65*256+67) ;Returns the character string "AC".
Related Keywords
$CHR string function
Page 301
INVERSE transformation function
Syntax
INVERSE (transformation)
Function
Return the transformation value that is the mathematical inverse of the given
transformation value.
Parameter
Details
Mathematically, the value from this function is a transformation such that the value of the
compound transformation shown below is the identity transformation (or NULL).
INVERSE(trans):trans
Stated another way, consider a transformation x that defines the location of object A relative
to object B. Then INVERSE(x) is the transformation that defines the location of object B
relative to A.
Example
Consider the case where the location part_1 is known in robot coordinates, and you want to
find the location hole_1 with respect to part_1. We can use the compound expression:
part_1:hole_1
Suppose we move the robot to hole_1 and use the HERE command to define hole_pos as the
position of hole_1 in robot coordinates. In other words, we want to find hole_1, knowing the
values of part_1 and hole_pos, and knowing that:
We can then use the INVERSE function to determine hole_1 with the instruction:
Note that the SET instruction can be used without explicit use of INVERSE by using a
compound transformation on the left-hand side, with identical results. That is, the
instruction defines hole_1.
Page 302
INVERSE transformation function
Related Keywords
HERE program instruction
Page 303
IOSTAT real-valued function
Syntax
IOSTAT (lun, mode)
Function
Return status information for the last input/output operation for a device associated with a
logical unit.
Usage Considerations
IOSTAT returns information only for the most recent operation. If more than one operation
is performed, the status should be checked after each one.
Parameters
lun Real-valued expression whose integer value is the logical unit number
for the I/O device of interest. (See the description of ATTACH for
information on the logical unit numbers recognized by the eV+ system
and how logical units are associated with I/O devices.)
mode Optional expression that selects the type of I/O status to be returned for
the specified logical unit. The following table shows the effects of the
various mode values. (If the mode value is omitted, the value zero is
assumed.)
Page 304
IOSTAT real-valued function
Details
Unlike most eV+ instructions, I/O instructions do not force the program to stop when an
error is detected. Instead, the error status is stored internally for access with the IOSTAT
function. This feature allows the program to interpret and possibly recover from many I/O
errors.
When reading a file of unknown length, IOSTAT is the only method to determine when the
end of the file is reached.
IOSTAT Value
Returned on Description
EOF
Examples
Try to open a file for reading, and make sure the file exists. If the file does exist, record its size
(in bytes).
Read and display records until the end of the file is reached.
Page 305
IOSTAT real-valued function
FCLOSE (dlun)
DETACH (dlun)
In the following example a TCP server program segment performs a no-wait read and then
checks the status to determine whether a client connection or disconnection was made.
Related Keywords
ATTACH program instruction
Page 306
IPS keyword
IPS keyword
Syntax
SPEED value IPS ALWAYS
Function
Specify the units for a SPEED instruction as inches per second.
NOTE: To specify speed in millimeters per second, use the MMPS conversion factor.
Usage Considerations
IPS can be used only as a parameter for a SPEED program instruction.
The speed setting specified is scaled by the monitor speed in effect when the robot motion
occurs.
Speeds specified with the IPS parameter apply to straight-line motions. Joint-interpolated
motions do not maintain the specified tool speed.
Details
IPS is an optional parameter for the SPEED program instruction, which specifies the units to
be used for the speed value. That is, when IPS is specified in a SPEED instruction, the speed
value is interpreted as inches/second (for straight-line motions).
See the description of the SPEED program instruction for further details on setting motion
speeds with the IPS conversion factor.
Example
Set the robot tool tip speed to 20 inches/second for the next straight-line robot motion
(assuming the monitor speed is set to 100):
SPEED 20 IPS
Related Keywords
MMPS keyword
Page 307
JHERE program instruction
Syntax
JHERE variable1, ..., variablen
Function
Records the current robot joint positions in real or double-precision variables. This instruction
supports Micro eV+.
Parameters
Details
You can specify a maximum of 12 variables. The variables can be array elements with index
expressions.
You can omit variables from the list as desired. The following example records the joint-3 and
joint-5 positions respectively:
JHERE , , j3,,j5
If more variables are defined than there are joints for a robot, the extra variables are zero.
Related Keyword
JMOVE program instruction
Page 308
JMOVE program instruction
Syntax
JMOVE expression1,...,expressionn
Function
Moves all robot joints to positions described by a list of joint values. The robot performs a
coordinated motion in joint-interpolated mode. This instruction is supported by Micro eV+.
Parameters
NOTE: You must specify at least one expression (joint), in order to move the robot.
Details
You can specify a maximum of 12 expressions.
If an expression is omitted, that joint is not moved. The following example moves only joint 1
and joint 3.
JMOVE j1,,j3
If more expressions are specified than there are joints for a robot, the extra expressions are
ignored.
Related Keyword
JHERE program instruction
Page 309
JOG program instruction
Syntax
JOG (status) robot, mode, axis, speed, location, appro_dist
Function
Moves ("jogs") the specified joint of the robot, or moves the robot tool along the specified
Cartesian direction. Each time JOG is executed, the robot moves for up to 300 ms.
Usage Considerations
The specified robot cannot be attached by any other task when using a mode other than
COMP. Otherwise, the error message *Robot interlocked* is generated. The robot can be
attached by the current program, but it does not need to be attached. If the robot is not
attached when the JOG instruction is executed, remember to attach the robot after the JOG
instruction before executing any other motion instructions.
After the robot is moved with the JOG instruction, the system is left in MANUAL mode (i.e.,
as though a manual mode had been selected on the pendant). JOG mode 5 (or the pendant)
can be used to restore COMP mode. Otherwise, an error *COMP mode disabled* will be
returned when a task attempts to attach the robot.
If a joint is out of range, the JOG instruction can be used to bring the joint back into range.
See the Details section for more information.
Parameters
Page 310
JOG program instruction
6 unused.
(See the Details for information about errors associated with the
modes.)
axis Specifies the joint number or Cartesian coordinate (X=1, Y=2, ...),
depending on the specified jog mode (see above), for the desired
motion.
This parameter is ignored for modes 7 and 8, but a value must always
be specified.
speed Specifies the speed and direction of the motion. This is interpreted as a
percentage of the speed in manual mode. Values above 100 are
interpreted as 100%, values below -100 are interpreted as -100%.
If Free mode is specified, a positive speed will put the given joint in free
mode and a negative speed will put the joint out of free mode.
appro_dist Optional real-valued expression that specifies the distance along the
robot tool Z axis between the specified location and the actual desired
destination.
A positive distance sets the tool back (negative tool-Z) from the
specified location; a negative distance offsets the tool forward (positive
tool-Z). This parameter is used only for mode 7.
Page 311
JOG program instruction
Details
When the status variable is supplied, and there is an error, the JOG instruction does not
cause program execution to stop. The error is simply returned in the STATUS variable.
Each time the JOG instruction is executed, the robot moves for up to 300 ms. Another JOG
can be executed before the previous motion is completed. In fact, for extended smooth
motion, subsequent JOG instructions should be executed within 300 ms of the previous JOG
instruction. The keep-alive mode can be used for that purpose. The keep-alive mode will
have no effect after the timeout of 300 ms; it has an effect only before the robot stops.
The following error conditions can be reported when the instruction is processed:
l Mode 1: The error *Illegal joint number* (-609) is returned if FREE mode is not
permitted for the specified joint.
l Mode 2: The error *Joint control of robot not possible* (-938) is returned if the robot
does not support joint control.
l Mode 7: If the location cannot be reached, the motion stops at the limit of possible
motion and the error *Location out of range* (-610) is returned when the motion
stops. If any other motion error occurs during the motion (e.g., an obstacle is
encountered), the associated error is reported.
l Modes 7 and 9: The error *Missing argument* (-454) is returned if a location is not
specified. For mode 7, a straight-line motion is performed toward the specified location
if the location is specified with a transformation. A joint-interpolated motion is
performed if the location is specified with a precision point. However, if the robot does
not permit the type of motion associated with how the location is specified (e.g., the
Quattro robot does not permit joint-interpolated motion), the motion is performed in
the manner that is permitted by the robot.
When a robot joint is out-of-range, it can be driven into range in either of these ways:
l Go into MAN mode on the pendant, and manually control the joint.
l Put the pendant in COMP mode, and use the JOG instruction to move the joint back
into range. (JOG is allowed only in pendant COMP mode.)
NOTE: Use of COMP mode when a joint is out of range is very restricted. All motion
instructions (except JOG) return a *Position out of range* error in that situation.
In addition, JOG can move the joint only in the direction that moves the joint back
into range..
Examples
The following are some examples of proper use of the JOG instruction:
Page 312
JOG program instruction
Related Keywords
JMOVE program instruction
Page 313
KEYMODE program instruction
Syntax
KEYMODE first_key,last_key = mode
Function
Set the behavior of a group of keys on the pendant.
Usage Considerations
The pendant must be attached before KEYMODE can be processed. For details on the
pendant key numbers, see Programming the T20 Pendant in the eV+ Language User's
Guide.
Parameters
first_key Real-valued expression that defines the first key number in a set of
keys to be affected.
last_key Real-valued expression that defines the last key number in a set of
keys to be affected.
mode Real-valued expression that defines the key mode to be set for the
specified set of keys. The mode must have one of the following
values (the modes are described below):
0 Keyboard mode
1 Toggle mode
2 Level mode
Details
The various key modes are described below. See the description of the PENDANT real-valued
function for more information on interaction with the pendant.
0 - Keyboard Mode
Keys programmed in this mode function similar to a terminal keyboard. A program can use
the function PENDANT(0) to request the number of the next key pressed. The program then
wait until one of the keys programmed in KEYBOARD MODE is pressed. The number of the
key is returned. Type-ahead is not possible-the program does not see any keys that are
pressed while there is no PENDANT(0) function pending.
Page 314
KEYMODE program instruction
1 - Toggle Mode
The state of the key may be read back on the fly. When you press a key that is in this mode,
the internal state maintained by eV+ is toggled. Also, the LED on the key (if any) is toggled.
The LED is on when the key's state is ON. The state of the key is available even when the
pendant is not in USER mode, but only if the pendant is attached.
2 - Level Mode
The key's current level is maintained by the pendant and may be read on the fly. If the
pendant is not in USER mode, the level returned for the key is zero. The key's state is ON only
when it is actually being held down. This is useful, for example, for cursor control. The value
returned is not valid if the pendant is not attached.
Whenever a key is programmed in level mode, its repeat mode is turned off.
Attach/Detach Requirements
The pendant must be attached (with the ATTACH program instruction) before the program
can read keys using the PENDANT function, set the modes of any of the keys, or send text to
the display.
Defaults
The key modes default to keyboard mode when the pendant is attached.
Examples
Set the manual control soft keys to level mode.
KEYMODE 1,5 = 2
Related Keywords
ATTACH program instruction
Page 315
KILL program instruction
Syntax
KILL task_number
Function
Clear a program execution stack and detach any I/O devices that are attached.
Usage Considerations
KILL cannot be used while the specified program task is executing.
Parameter
Details
This operation clears the selected program execution stack, closes any open files, and
detaches any I/O devices that may have been left attached by abnormal program
termination.
The KILL instruction always accesses task #0 if the task number is omitted.
Related Keywords
ABORT monitor command
Page 316
LAST real-valued function
Syntax
LAST (array_name[])
Function
Return the highest index used for an array (dimension).
Usage Considerations
If an automatic variable is referenced (see the AUTO instruction), this function returns the
index specified in the AUTO statement that declared this array, regardless of which elements
have been assigned values.
Parameter
array_name[] Name of the array to be tested. Any type of eV+ array variable
can be specified: real-value, location, string, or belt. At least
one array index must be omitted (see below).
Details
This function can be used to determine which elements of an array have already been
defined. For one-dimension arrays (for example, part[ ]), this function returns the largest
array index for which an element is defined. (See the first example below.)
For multiple-dimension arrays (for example, $names[,]), this function returns the largest
array index for which an element is defined for the (left-most) dimension that is omitted
from the array specification. (See the second example below.) There cannot be an index
specified to the right of an omitted index.
Note that the value returned by this function is an index, not an array element.
Furthermore, the value is not a count of the array elements that are defined-it is the largest
index for which an array element is defined.
The value -1 is returned if the array does not have any elements defined for the requested
dimension. That is, -1 is returned if any of the following situations occur:
l The array has more or fewer dimensions than the number indicated in the function
call. (For example, LAST(a[ ]) will return -1 if the array a has two dimensions.)
l The specified dimension in a multiple-dimension array has not been defined at all. (For
example, LAST(a[20,]) returns -1 if LAST(a[,]) returns 19. That is, no elements a
[20,i] exist.)
Page 317
LAST real-valued function
The error *Illegal array index* results if there is not at least one blank index in the array
specification supplied to this function, or if there is an index specified to the right of a blank
index.
Examples
If the array part[ ] has all its elements defined from part[0] through part[10], the following
example returns the value 10 (not 11, the number of elements defined).
LAST(part[])
If the given two-dimension array has elements [2,0], [2,3], and [2,5] defined, the following
example returns the value 5 (regardless of the status of elements [i,j] for i other than 2).
LAST($names[2,])
Page 318
LATCH transformation function
Syntax
LATCH (select)
Function
Return a transformation value representing the location of the robot at the occurrence of the
last external trigger or Stop on Digital Signal.
Usage Considerations
LATCH(0) returns information for the robot selected by the task executing the function. If
the eV+ system is not configured to control a robot, use of the LATCH(0) function does not
generate an error because of the absence of a robot. However, the information returned by
the function may not be meaningful.
Parameter
Details
LATCH() returns a transformation value that represents the location of the robot when the
last external trigger occurred or the last Stop On Digital Signal occurred. The LATCHED real-
valued function should be used to determined when an external trigger has occurred and a
valid location has been recorded.
Operation of the external trigger can be configured from the eV+ System Configuration
Editor in the ACE software. For details, see the ACE User's Guide.with ACE.
See the Adept Intelligent Force Sensor User's Guide for details of the Stop on Digital Signal
option.
The DEVICE real-valued function may be used to read the latched value of an external
encoder
Related Keywords
DEVICE real-valued function
Page 319
LATCH transformation function
Page 320
LATCHED real-valued function
Syntax
LATCHED (select)
Function
Return the status of the position latch and which input triggered it or the status of the Stop
On Digital Signal.
Parameter
Details
This function returns a nonzero value if a position latch or the Stop on Digital Signal event
occurred (and thus the robot location or belt-encoder position has been latched) since the
LATCHED function was last used. Otherwise, the function returns the value FALSE. When
this function returns a nonzero value, the data for the latch event is made available for
retrieval by the following functions:
Page 321
LATCHED real-valued function
NOTE: After one or multiple nonzero values are returned by this function and the latch
buffer is empty, subsequent use of the function returns the value FALSE until the next
occurrence of a latch trigger.
Operation of the position latch can be configured from the eV+ System Configuration Editor
in the ACE software. For details, see the ACE User's Guide.
Related Keywords
DEVICE real-valued function
Page 322
LEFTY program instruction
Syntax
LEFTY
Function
Request a change in the robot configuration during the next motion so that the first two
links of a SCARA robot resemble a human's left arm.
Usage Considerations
Configuration changes cannot be made during straight-line motions.
If the selected robot does not support a left-handed configuration, this instruction is ignored
by the robot.
The LEFTY instruction can be executed by any program task as long as the robot selected by
the task is not attached by any other task, however if the robot is not attached, this
instruction has no effect. The instruction applies to the robot selected by the task.
If the eV+ system is not configured to control a robot, executing the LEFTY instruction
causes an error.
The following figure shows the LEFTY/RIGHTY configurations (top view of robot).
LEFTY/RIGHTY
Page 323
LEFTY program instruction
Related Keywords
CONFIG real-valued function
Page 324
LEN real-valued function
Syntax
LEN (string)
Function
Return the number of characters in the given string.
Parameter
Example
Return the number of characters in the string $str:
$str = "Hello"
str.len = LEN($str)
Page 325
LNGB real-valued function
Syntax
LNGB ($string, first_char)
Function
Return the value of four bytes of a string interpreted as a signed 32-bit binary integer.
Usage Considerations
Since single-precision numbers are stored internally with only 24 bits of significance, input
values that contain more than 24 significant bits are converted with some loss in precision.
Double-precision numbers are stored with 32 bits of significance with the MSB being the sign
bit. Doubles are converted with no loss of precision.
Parameters
$string String constant, variable, or expression that contains the four bytes
to be converted.
Details
Four sequential characters (bytes) of a string are interpreted as being a 2's-complement 32-
bit signed binary integer. The first of the four bytes contains bits 25 to 32 of the integer, the
second of the four bytes contains bits 17 to 24, etc.
For example, if first_char has the value 9, then the ninth character (byte) in the input string
contains bits 25 to 32 of the integer, the tenth byte of the string contains bits 17 to 24, and
so forth.
The main use of this function is to convert binary numbers from an input data record to
values that can be used internally by eV+.
Page 326
LNGB real-valued function
Example
Return the value 65541.
LNGB($INTB(1)+$INTB(5))
Related Keywords
ASC real-valued function
Page 327
$LNGB string function
Syntax
$LNGB (value)
Function
Return a 4-byte string containing the binary representation of a 32-bit integer.
Usage Considerations
Real values are rounded and any fractional part is lost. Values must be in the range
^H7FFFFFFF to -^H80000000
Parameter
Details
The integer part of a real value is converted into its binary representation; the low 32-bits of
that binary representation are packed into a string as four 8-bit characters. Bits 25 to 32 are
packed into the first byte, followed by bits 17 to 24 in the second byte, and so forth.
The main use of this function is to convert integer values to binary representation within an
output record of a data file.
Example
Returns the value $INTB(67)+$INTB(12345).
$LNGB(67*65536+12345)
Related Keywords
$CHR string function
Page 328
$LNGB string function
Page 329
LOCAL program instruction
Syntax
LOCAL type variable, ..., variable
Function
Declare permanent variables that are defined only within the current program.
Usage Considerations
Subroutines can be called simultaneously by multiple program tasks and recursively by a
single task. Local and global variables can be corrupted if such calls occur inadvertently.
Thus, the use of automatic variables in place of local variables is recommended.
LOCAL statements must appear before any executable statement in the program.
If a variable is listed in a LOCAL statement, any global variable with the same name cannot
be accessed directly by that program.
The values of local variables are not saved (or restored) by the STORE (or LOAD) monitor
command.
Parameters
Page 330
LOCAL program instruction
Details
This instruction is used to declare variables to be defined only within the current program.
That is, a local variable can be referenced only within its own program. Also, the names of
local variables can be selected without regard for the names of local variables defined in other
programs.
Local variables are allocated only once during program execution, and their values are
preserved between successive subroutine calls. These values are also shared if the same
program is executed by multiple program tasks.
If a program that uses LOCAL (or global) variables is called by several different program tasks,
or called recursively by a single task, the values of those variables can be modified by the
different program instances and cause very strange program errors. Therefore, automatic
variables should be used for all temporary local variables to minimize the chance of errors.
(See the AUTO instruction.)
Variables can be defined as automatic, global, or local. Once a variable has been assigned to a
class, an attempt to assign the variable to a different class will result in the error *Attempt to
redefine variable class*.
Variables can be defined only once within the same context (automatic, local, or global).
Attempting to define a variable more than once (that is, with a different type) will yield the
error *Attempt to redefine variable type*. For details, see Data Types and Operators in the
eV+ Language User's Guide.
Local variables can be referenced with monitor commands such as BPT, DELETE_, DO, HERE,
LIST_, POINT, TEACH, TOOL, and WATCH by using the optional context specifier @. The
general syntax is:
For more information on specifying program context, see the section Programming eV+ in
the eV+ Language User's Guide.
Example
Declare the variables loc.a, $ans, and i to be local to the current program:
Related Keywords
AUTO program instruction
Page 331
LOCK program instruction
Syntax
LOCK priority
Function
Set the program reaction lock-out priority to the value given.
Usage Considerations
LOCK 0 is assumed whenever program execution is initiated and when a new execution cycle
begins.
Changing the priority may affect how reactions are processed. Before using this instruction,
be sure you know what reactions are active (and their priorities).
Parameter
priority Real-valued expression with a value from 0 to 127, which becomes the
new reaction lock-out priority.
Details
When a program is EXECUTEd, it is placed on the execution stack. When the program's task
becomes the highest priority task in a time slice, the program's priority is set to 0 and it
begins execution. During actual execution, a program's task can be suspended at the end of
a time slice, in which case the task waits until the next time it is the highest priority task in a
time slice. The LOCK instruction does not affect the task priority value within a time slice: It
only changes the program priority of an executing program.
Program priority becomes important when a reaction routine (REACT, REACTE, REACTI) is
invoked. A program can defer execution of a REACT or REACTI routine by setting the
temporary program priority to a value higher than the REACT or REACTI program priority.
This is the function of a LOCK instruction. For example, if a LOCK instruction changes the
temporary program priority to 20, any REACT or REACTI interrupts with lower priority values
are deferred. (REACTE routines cannot be deferred by priority considerations.)
Deferred reactions are not ignored. Every time a new LOCK instruction is processed, any
deferred reaction programs are checked to see if their priority is high enough for them to
execute. As soon as the program priority is lowered, all pending reaction routines with a
higher priority are run according to their relative priority.
The PRIORITY real-valued function can be used to determine the program priority at any
time.
Page 332
LOCK program instruction
NOTE: Although a LOCK instruction can be used to change the program priority within a
reaction program, the priority still returns to its prereaction value when a RETURN is
executed in the program. This occurs only when executing a RETURN from a reaction
program.
Example
Increase the program priority by 10:
LOCK PRIORITY+10
Related Keywords
PRIORITY real-valued function
Page 333
MAX real-valued function
Syntax
MAX (value, ..., value)
Function
Return the maximum value contained in the list of values.
Parameter
Details
The list of values provided is scanned for the largest value, and that value is returned by the
function.
The sign of each value is considered. Thus, for example, the value -10 is considered larger
than -100.
Example
The program instruction:
max.value = MAX(x, y, z, 0)
sets max.value to the largest value of the variables x, y, and z, or to zero if all three
variables have values less than zero.
Related Keyword
MIN real-valued function
Page 334
MC program instruction
MC program instruction
Syntax
MC monitor_command
Function
Introduce a monitor command within a command program.
Usage Considerations
The MC instruction can be contained only within a command program. (Command programs
can contain only MC instructions, blank lines, and comment lines.)
Parameter
Details
Command programs are created using one of the eV+ editors. To indicate to the editor that a
command program, rather than a normal program, is being created, every operation line of a
command program must begin with the letters MC (that is, for Monitor Command follows)
followed by one or more spaces. As with regular application programs, command programs
can contain blank lines and comment lines to add clarity.
Every nonblank line of a command program must contain a monitor command (or a
comment). Monitor commands and program instructions cannot be mixed. Program
instructions can be included, however, by using the DO command. That is, to include an
instruction in a command program, you can type a line with the form mc do instruction. See
the eV+ Operating System Reference Guide for details on monitor commands.
Example
The following command program loads disk files, prepares for execution of a program, and
begins the execution. Note that a DO command is used to include a MOVE instruction:
1 .PROGRAM setup()
2 MC LOAD C:project
3 MC LOAD B:project.lc
4 MC SPEED 50
5 MC DO MOVE safe.loc
6 MC EXECUTE motion, -1
7 .END
Related Keywords
COMMANDS monitor command
Page 335
MC program instruction
Page 336
MCS program instruction
Syntax
MCS string
Function
Invoke a monitor command from an application program.
Parameter
string String value, variable, or expression that defines one of the eV+ monitor
commands listed below.
Details
Normally, monitor commands can be invoked only from the system terminal or from
command programs (which contain only monitor commands). The MCS instruction can be
used to invoke the following monitor commands from an application program:
Using these commands, an application program can store, load, and copy programs to and
from disk, and also delete programs from memory to make room for other programs.
Similarly, variables can be deleted from memory when they are no longer needed. Also,
vision prototypes can be renamed.Loading, storing, and deleting programs and global
variables is not interlocked for multi-task access in eV+. Therefore, if you are incorporating
multiple MCS instructions in a program, you will need to use TAS interlocks to prevent
multiple tasks from issuing the instructions. For details, see the TAS program instruction.
NOTE:If the monitor command specified in the string parameter contains a blank
program context (that is, it contains @), any variables listed in the command are treated
as though they are referenced within the program containing the MCS instruction. (See
the
eV+ Language User's Guide for more information on program context.)
Program execution is not stopped if an error occurs while processing the monitor command.
The ERROR real-valued function can be used after the MCS instruction to check for the
occurrence of an error.
Page 337
MCS program instruction
NOTE: If a DELETE_ command is used within a subroutine to delete one of the subroutine
parameters (that is, one of the variables in the .PROGRAM statement), the variable is not
deleted and no error condition is recorded.
Normal output by the monitor command to the system terminal is done if the MCS.MESSAGE
system switch is enabled. For example, the LOAD command outputs the .PROGRAM lines
from each program loaded. (The MCS.MESSAGE switch is normally disabled.)
If the FCOPY option is used, logical units 5 (disk #1) and 6 (disk #2) must be available. If
LOAD or STORE_ is used, logical unit # 5 must be available.
Example
The following program loads a disk file, executes the program in the file, and deletes the
program from the system memory. Another program file is then loaded into memory and
executed. (Although this simple example can also be implemented with a command program,
the following demonstrates use of the MCS instruction in a normal program.)
.PROGRAM admin()
MCS "LOAD C:setup"
CALL setup
MCS "DELETEP setup"
MCS "LOAD C:demo_1"
CALL demo_main
.END
Related Keywords
ERROR real-valued function
MC program instruction
Page 338
MESSAGES system switch
Syntax
... MESSAGES
Function
Enable or disable output to the system terminal from TYPE instructions.
Details
If this switch is enabled, output from TYPE instructions is displayed on the system terminal.
Otherwise, output is suppressed.
Related Keywords
DISABLE monitor command
Page 339
$MID string function
Syntax
$MID (string, first_char, num_chars)
Function
Return a substring of the specified string.
Parameters
string String variable, constant, or expression from which the substring is
extracted.
first_char Optional real-valued expression that specifies the first character of
the substring.
num_chars Real-valued expression that specifies the number of characters to be
copied to the substring.
Details
If first_char is omitted or has a value less than or equal to 1, the substring starts with the
first character of string. If first_char is larger than the length of the input string, the
function returns an empty string.
If there are fewer than num_chars characters from the specified starting character position
to the end of the input string, the output string consists of only the characters up to the end
of the input string. That is, no error results and the output string is not extended to the
requested length.
Example
The instructions below result in the string variable $substring containing the string cd, since
cd is the 2-character string that starts at character position 3 of the string abcde contained in
the string variable $string:
$string = "abcdef"
$substring = $MID($string, 3, 2)
Related Keyword
$UNPACK string function
Page 340
MIN real-valued function
Syntax
MIN (value, ..., value)
Function
Return the minimum value contained in the list of values.
Parameter
Details
The list of values provided is scanned for the smallest value, and that value is returned by the
function.
The sign of each value is considered. Thus, for example, the value -100 is considered smaller
than -10.
Example
The program instruction:
min.value = MIN(1000, x, y, z)
sets min.value to the smallest value of the variables x, y, and z, or to the value 1000 if all
three variables have values greater than 1000.
Related Keyword
MAX real-valued function
Page 341
MMPS keyword
MMPS keyword
Syntax
SPEED value MMPS ALWAYS
Function
Specify the units for a SPEED instruction as millimeters per second.
NOTE: To specify units in inches per second, use the IPS conversion factor.
Usage Considerations
MMPS can be used only as a parameter for a SPEED program instruction.
The speed setting specified is scaled by the monitor speed in effect when the robot motion
occurs.
Speeds specified with the MMPS parameter apply to straight-line motions. Joint-interpolated
motions do not maintain the specified tool speed.
Details
This is an optional parameter for the SPEED program instruction, which specifies the units to
be used for the speed value. That is, when MMPS is specified in a SPEED instruction, the
speed value is interpreted as millimeters/second (for straight-line motions).
See the description of the SPEED program instruction for further details on setting motion
speeds with the IPS conversion factor.
Example
Set the default program speed for straight-line motions to 10 millimeters per second
(assuming the monitor speed is set to 100):
Related Keywords
IPS keyword
Page 342
MOD operator
MOD operator
Syntax
... value MOD value ...
Function
Compute the modulus of two values.
Details
The MOD operator operates on two values, resulting in a value that is the remainder after
dividing the first value by the second value. (The second value cannot be zero.)
For details on how operators are evaluated within expressions, see the Order of Evaluation.
Examples
Return 1 (5/2 is 2 with a remainder of 1):
5 MOD 2
81 MOD 27
Page 343
MOVE and MOVES program instruction
Syntax
MOVE location
MOVES location
Function
Initiate a robot motion to the position and orientation described by the given location.
Usage Considerations
MOVE causes a joint-interpolated motion.
These instructions can be executed by any program task as long as the task has attached a
robot. The instructions apply to the robot selected by the task.
If the eV+ system is not configured to control a robot, executing these instructions causes
an error.
Parameter
Details
The MOVE instruction causes a joint-interpolated motion. That is, intermediate set points
between the initial and final robot locations are computed by interpolating between the initial
and final joint positions. Any changes in configuration requested by the program (for
example, by a LEFTY instruction) are executed during the motion.
The MOVES instruction causes a straight-line motion. During such a motion the tool is
moved along a straight-line path and is smoothly rotated to its final orientation. No changes
in configuration are allowed during straight-line motions.
Examples
Page 344
MOVE and MOVES program instruction
MOVES ref:place Move along a straight-line path to the location described by the
compound transformation ref:place.
Related Keywords
APPRO program instruction
Page 345
MOVEC program instruction
Syntax
MOVEC(angle, turn) location1, location2
Function
Initiate a circular/arc-path robot motion using the positions and orientations described by
the given locations.
Usage Considerations
This instruction can be executed by any program task as long as the task has attached a
robot. The instruction applies to the robot selected by the task.
If the eV+ system is not configured to control a robot, executing this instruction causes an
error.
Parameters
angle Real-valued expression that specifies the angle of the arc in degrees.
This parameter is optional if location2 is specified. angle can be a
positive or negative number but must be within [-360, +360].
turn Optional boolean expression that specifies whether the tool should
rotate with the arc. If turn is omitted or zero, then the tool orientation
will stay constant with a MOVEC(angle) center syntax and end at the
orientation of location2 for a MOVEC location1, location2 syntax. If
turn is non-zero, the tool orientation will be rotated by the angle of the
arc around the axis of the circle and maintain a constant orientation
relative to the trajectory. This is useful for dispensing applications.
Page 346
MOVEC program instruction
Details
This MOVEC program instruction syntax is designed to create a circle/arc path that starts
from the current robot position or, in case of Continuous Path, the current robot destination,
and ends at a location defined by location2. The intermediate location (location1) is used to
define the plane of the circle and the angle of the arc. See the following figure.
If the three points are aligned or two of them coincide, MOVEC will cause a straight-line
motion instead of creating a circle or arc.
If angle is specified then the robot will move by angle degrees and not necessarily end up at
location2. In other words, the angle has higher priority than location2 in defining the final
position.
When angle is specified, the orientation of location2 is ignored. The final orientation is
determined entirely by the turn parameter: if it is omitted or zero, then the final orientation
will be the orientation of the start position; if turn is non-zero, then the final orientation is the
one of the start position rotated by angle around the axis of the arc.
When turn is non-zero, MOVEC will generate an *invalid orientation* error for 4-axis robots
(like the Cobra and Quattro robots, or Python linear modules) if the plane of the circle is not
parallel to the XY plane of the Tool Center Point.
As with straight-line motion, circular motion is compatible with multi-turn rotation. This
means that if location2 is a precision point, the multi-turn joint can rotate more than 360
degrees.
MOVEC(angle,turn) center
This MOVEC program instruction syntax is designed to create a circle/arc path that starts
from the current robot position or, in case of Continuous Path, the current robot destination.
The path is centered around the center location; the end location is specified with angle
degrees.
Page 347
MOVEC program instruction
The plane of the circle is defined as the plane passing through the start position and parallel
to the XY plane of the center location. In other words, if the Z-orientation of the center
location is not perpendicular to the straight line passing through center and the start
position, then the center of the circle is not the location center; rather, it is the intersection
of the Z-axis of center and a plane that is perpendicular to this axis and passes through the
start position.
After the actual center of the circle is defined, the radius of the circle is simply the distance
from the start position to the actual center.
Examples
The following example shows MOVEC being used with transformations.
The following example shows MOVEC being used with Continuous Path. Also, see the
following figure.
MOVES p1
Page 348
MOVEC program instruction
MOVEC p2, p3
MOVES p4
BREAK
The following example shows MOVEC being used to create a full circle with an Cobra 600
robot.
MOVES start_pos
BREAK
; Do a full circle
MOVEC(360) center
BREAK
Page 349
MOVEC program instruction
NOTE: In the previous figure, note that "MOVEC(360,1) center" would have returned an
*invalid orientation* error because the Cobra robot cannot maintain a constant
orientation relative to a non-horizontal circle.
The following example shows MOVEC being used to create a half circle with rotating
orientation for dispensing with an Viper 650.
MOVES start_pos
BREAK
Page 350
MOVEC program instruction
MOVEC Creating a Half Circle with rotating orientation (e.g. the "turn"
parameter is set).
By changing the last 3 lines of the code, the example can be modified to create the same
motion but without rotating the orientation, as follows:
Page 351
MOVEC program instruction
Page 352
MOVEC program instruction
MOVEC Creating a Half Circle with constant orientation (e.g. the "turn"
parameter is omitted).
Related Keywords
APPRO program instruction
Page 353
MULTIPLE program instruction
Syntax
MULTIPLE ALWAYS
Function
Allow full rotations of the robot wrist joints.
Usage Considerations
Only the next robot motion is affected if the ALWAYS parameter is not specified.
This is the default state of the eV+ system. MULTIPLE ALWAYS is assumed whenever
program execution is initiated and when a new execution cycle begins.
The MULTIPLE instruction can be executed by any program task as long as the robot selected
by the task is not attached by any other task. The instruction applies to the robot selected by
the task.
If the eV+ system is not configured to control a robot, executing the MULTIPLE instruction
causes an error.
Parameter
Details
While MULTIPLE is in effect, full rotations of the wrist joints are used, as required, during
motion planning and execution.
Related Keywords
CONFIG real-valued function
Page 354
MULTIPLE program instruction
Page 355
NETWORK real-valued function
Syntax
NETWORK (component, code)
Function
Return network status and IP address information
Parameters
1 = TCP
3 = FTP
11 = Return AD1
12 = Return AD2
13 = Return AD3
14 = Return AD4
15 = Return NM1
16 = Return NM2
17 = Return NM3
18 = Return NM4
where ADn is the nth byte of the IP address and NMn is the nth byte
of the Network Mask
Details
This function returns one of the following values if status is requested (that is, if the code
argument is omitted or set to 0):
Page 356
NETWORK real-valued function
Value Meaning
1 Driver is running
Page 357
NEXT program instruction
Syntax
NEXT count
Function
Branch to the END statement of the nth nested loop, perform the loop test, and loop if
appropriate.
Usage Considerations
This instruction can be used with the FOR, WHILE, and DO control structures.
Parameter
Details
When a NEXT instruction is processed with count = 1, execution continues at the END of the
control structure. If count > 1, execution continues at the END of count number of nested
control structures.
Example
If error = 1, branch to the END of the innermost control structure. If error = 2, branch to the
END of the outermost control structure:
45 FOR i = 1 to 20
46 FOR j = 1 to 10
47 FOR k = 10 to 50
48 IF error == 1 THEN
49 NEXT ;branch to step 54
50 END
51 IF error == 2 THEN
52 NEXT 3 ;branch to step 56
53 END
54 END
55 END
56 END
57
Related Keywords
DO program instruction
Page 358
NEXT program instruction
Page 359
NOFLIP program instruction
Syntax
NOFLIP
Function
Request a change in the robot configuration during the next motion so that the pitch angle
of the robot wrist has a positive value.
Usage Considerations
Configuration changes cannot be made during straight-line motions.
If the selected robot does not support a no-flip configuration, this instruction is ignored by
the robot.
The NOFLIP instruction can be executed by any program task as long as the robot selected by
the task is not attached by any other task, however if the robot is not attached, this
instruction has no effect. The instruction applies to the robot selected by the task.
If the eV+ system is not configured to control a robot, executing the NOFLIP instruction
causes an error.
For more details, see the description of the FLIP program instruction.
Related Keywords
CONFIG real-valued function
Page 360
NONULL program instruction
Syntax
NONULL ALWAYS
Function
Instruct the eV+ system not to wait for position errors to be nulled at the end of continuous-
path motions.
Usage Considerations
Only the next robot motion is affected if the ALWAYS parameter is not specified.
NULL ALWAYS is assumed whenever program execution is initiated and when a new
execution cycle begins.
The NONULL instruction can be executed by any program task as long as the robot selected
by the task is not attached by any other task. The instruction applies to the robot selected by
the task.
If the eV+ system is not configured to control a robot, executing the NONULL instruction
causes an error.
Parameter
Details
When NONULL is in effect and a BREAK in the robot motion occurs, eV+ does not wait for the
servos to signal that all moving joints have reached their specified positions before it begins
the next motion. That is, at the end of the allotted time, eV+ assumes that the joints have
all reached their final positions and starts commanding the next motion.
Like COARSE mode, this mode allows faster motion if high final-position accuracy is not
required. However, since no position-error checking is done, large position errors can occur.
Related Keywords
COARSE program instruction
Page 361
NONULL program instruction
Page 362
NOOVERLAP program instruction
Syntax
NOOVERLAP ALWAYS
Function
Generate a program error if a subsequent motion is planned that causes a selected multi-
turn axis to move more than ±180 degrees to avoid a limit stop.
Usage Considerations
NOOVERLAP applies to the operation of the following robots/joints:
l For Viper and PUMA robots: joints 1, 4, and the final joint
OVERLAP ALWAYS is assumed whenever program execution is initiated and when a new
execution cycle begins.
The NOOVERLAP instruction can be executed by any program task as long as the robot
selected by the task is not attached by any other task. The instruction applies to the robot
selected by the task.
If the eV+ system is not configured to control a robot, executing the NOOVERLAP instruction
causes an error.
Parameter
Details
When NOOVERLAP is set, and the transformation destination of a joint-interpolated or
straight-line motion requires that a multiple-turn axis rotate more than ±180 degrees to
avoid a limit stop, a program error will occur (and the motion will not be performed). If the
destination is specified as a precision point, this test is not performed.
Page 363
NOOVERLAP program instruction
motion. The only conditions that force an axis to make a larger change are if SINGLE is
specified, or if a software limit stop would be violated.
As with other user program errors, the error condition generated as a result of the
NOOVERLAP test can be trapped by a standard REACTE subroutine if desired.
Related Keywords
MULTIPLE program instruction
Page 364
NORMAL transformation function
Syntax
NORMAL (transformation_value)
Function
Correct a transformation for any mathematical round-off errors.
Usage Considerations
For most robot programs, transformation normalizing never has to be performed.
Parameter
Details
Use this function after a lengthy series of computations that modifies a transformation
value. For instance, a procedural motion that incrementally changes the orientation of a
transformation should occasionally normalize the resultant value. Within a transformation,
the orientation of the robot is represented by three perpendicular unit vectors. Because of
the small inaccuracies that occur in computer computations, after being incrementally
modified many times, these vectors can become nonperpendicular or not of unit length.
The NORMAL function returns a transformation value that is essentially the same as the
input argument but has the orientation portion of the value corrected for any small buildup
of computational errors that may have occurred.
Page 365
NOT operator
NOT operator
Syntax
... NOT value ...
Function
Perform logical negation of a value.
Usage Considerations
The word "not" cannot be used as a program name or variable name.
Details
The NOT operator operates on a single value, converting it from logically true to false, and
vice versa. If the single value is zero, a -1.0 (TRUE) is returned. Otherwise, a 0.0 (FALSE)
value is returned.
Refer to the eV+ Language User's Guide for the order in which operators are evaluated
within expressions.
Examples
IF NOT initialized THEN ;If the variable "initialized" has
a
CALL appl.setup() ;FALSE value, the instructions in
the
initialized = TRUE ;IF structure will be executed.
END
Page 366
NOT.CALIBRATED system parameter
Syntax
... NOT.CALIBRATED
Function
Indicate (or assert) the calibration status of the robots connected to the system.
Usage Considerations
The current value of the NOT.CALIBRATED parameter can be determined with the
PARAMETER monitor command or real-valued function.
You can modify the value of this parameter at any time; refer to the next section for details.
Details
The value of this parameter, which can range from -1 to 32767, should be interpreted as a
bit mask. Bits 1 through 15 correspond to robots 1 through 15, respectively. For example,
the following values have the following interpretations:
Value of
Interpretation
parameter
On power-up, this parameter is set to indicate that all installed robots are not calibrated. If a
robot is not connected or not defined, its NOT.CALIBRATED bit is always off.
The CALIBRATE command and instruction attempt to calibrate any enabled ROBOT that has
its NOT.CALIBRATED bit set.
When the calibration operation completes, the NOT.CALIBRATEd bits are updated as
appropriate. For example, consider a system that has only one robot installed. If the
CALIBRATE command is issued, and it succeeds, NOT.CALIBRATED is set to 0. If three robots
are connected, and the CALIBRATE command succeeds in calibrating robots 1 and 2, but not
robot 3, NOT.CALIBRATED is set to 4 (binary 100-robots 1 and 2 calibrated, 3 not calibrated).
Page 367
NOT.CALIBRATED system parameter
The purpose of this parameter is to allow one of the bits to be set to force the corresponding
robot to be calibrated the next time a CALIBRATE command or instruction is executed. This
parameter can also be used to determine the calibration status of the robot(s).
The parameter value can be changed at any time. The following rules describe how a new
asserted value is treated:
l If the new value asserts that a robot is not calibrated, the eV+ system behaves as if
the robot is not calibrated whether or not the servo software believes that the robot is
not calibrated.
l If the new value asserts that a robot is calibrated, the servo software is checked and
eV+ tracks the calibrated/not calibrated state indicated by the servo software for that
robot.
Examples
Mark all installed robots as uncalibrated:
PARAMETER NOT.CALIBRATED = -1
PARAMETER NOT.CALIBRATED = 3
Related Keywords
CALIBRATE monitor command
Page 368
NULL program instruction
Syntax
NULL ALWAYS
Function
Instruct the eV+ system to wait for position errors to be nulled at the end of continuous path
motions.
Usage Considerations
Only the next robot motion is affected if the ALWAYS parameter is not specified.
This is the default state of the eV+ system. NULL ALWAYS is assumed whenever program
execution is initiated and when a new execution cycle begins.
The NULL instruction can be executed by any program task as long as the robot selected by
the task is not attached by any other task. The instruction applies to the robot selected by
the task.
If the eV+ system is not configured to control a robot, executing the NULL instruction causes
an error.
Parameter
ALWAYS Optional qualifier that establishes NULL as the default condition. That is,
if ALWAYS is specified, NULL remains in effect continuously until
disabled by a NONULL instruction. If ALWAYS is not specified, the NULL
instruction applies only to the next robot motion.
Details
When NULL is in effect and a BREAK in the robot motion occurs, eV+ waits for the servos to
signal that all moving joints have reached their specified positions before it begins the next
motion. The accuracy to which the electronics verify that all joints have reached their
destination positions is determined by the COARSE and FINE program instructions.
Related Keywords
COARSE program instruction
Page 369
NULL program instruction
Page 370
NULL transformation function
Syntax
NULL
Function
Return a null transformation value-one with all zero components.
Usage Considerations
The word "null" cannot be used as a program name or variable name.
Details
A null transformation corresponds to a null vector (X = Y = Z = 0) and no rotation (yaw =
pitch = roll = 0). Such a transformation is useful, for example, with a SHIFT function to
create a transformation representing a translation with no rotation.
Example
Define a new transformation (new.loc) to be the result of shifting an existing transformation
(old.loc) in the World coordinate directions.
Related Keywords
CONFIG real-valued function
Page 371
OFF real-valued function
Syntax
OFF
Function
Return the value used by eV+ to represent a logical false result.
Usage Considerations
The word "off" cannot be used as a program name or variable name.
Details
This named constant is useful for situations where on and off conditions need to be specified.
The value returned is 0.
Related Keywords
FALSE real-valued function
ON real-valued function
Page 372
ON real-valued function
ON real-valued function
Syntax
ON
Function
Return the value used by eV+ to represent a logical true result.
Usage Considerations
The word "on" cannot be used as a program name or variable name.
Details
This named constant is useful for situations where on and off conditions need to be specified.
The value returned is -1.
Related Keywords
OFF real-valued function
Page 373
OPEN program instruction
Syntax
OPEN
OPENI
Function
Open the robot gripper.
Usage Considerations
OPEN causes the hand to open during the next robot motion.
OPENI causes a BREAK in the current continuous-path motion and causes the hand to open
immediately after the current motion completes.
The OPEN instruction can be executed by any program task as long as the robot selected by
the task is not attached by any other task. The instruction applies to the robot selected by
the task.
The OPENI instruction can be executed by any program task as long as the task has attached
a robot. The instruction applies to the robot selected by the task.
If the eV+ system is not configured to control a robot, executing these instructions causes
an error.
Details
These instructions cause the control valves for the pneumatic hand to receive a signal to
open. If the OPEN instruction is used, the signal is sent when the next robot motion begins.
NOTE: You can use the Robot Configuration Utility program to set the digital signals that
control the pneumatic hand. The utility program is on the Utility Disk. See the manual
Instructions for Adept Utility Programs for information on use of the program.
l The signal is sent to the control valves at the conclusion of the current motion or
immediately if no motion is in progress.
l Robot motions are delayed for a brief time to allow the hand actuation to complete.
The length of the delay (in seconds) is the current setting of the HAND.TIME system
parameter.
Page 374
OPEN program instruction
Examples
During the next robot motion, cause the pneumatic control valves to assume the open state:
OPEN
Cause the pneumatic control valves to assume the open state at the conclusion of the
current motion:
OPENI
Related Keywords
CLOSE program instruction
Page 375
OR operator
OR operator
Syntax
... value OR value ...
Function
Perform the logical OR operation on two values.
Details
The OR operator operates on two values, resulting in their logical OR combination. For
example, during the OR operation
c = a OR b
a b c
That is, the result is TRUE if either (or both) of the two operand values is logically TRUE. To
review the order of evaluation for operators within expressions, see the section Order of
Evaluation in the eV+ Language User's Guide.
Example
In the following sequence, the instructions immediately following the IF instruction are
executed if either ready is TRUE (that is, nonzero) or count equals 1. The instructions are not
executed if both ready is FALSE and count is not equal to 1.
Page 376
OR operator
Related Keywords
AND operator
BOR operator
XOR operator
Page 377
OUTSIDE real-valued function
Syntax
OUTSIDE (low, test, high)
Function
Test a value to see if it is outside a specified range.
Parameters
low Real value, expression, or variable specifying the lower limit of the range
to be tested.
high Real value, expression, or variable specifying the upper limit of the
range to be tested.
Details
Returns TRUE (-1) if test is less than low or greater than high. Returns FALSE (0)
otherwise.
Related Keywords
MAX real-valued function
Page 378
OVERLAP program instruction
Syntax
OVERLAP ALWAYS
Function
Disable the NOOVERLAP limit-error checking either for the next motion or for all subsequent
motions.
Usage Considerations
OVERLAP applies to the operation of the following robots/joints:
l For Viper and PUMA robots: joints 1, 4, and the final joint
This is the default state of the eV+ system. OVERLAP ALWAYS is assumed whenever
program execution is initiated and when a new execution cycle begins.
The OVERLAP instruction can be executed by any program task as long as the robot selected
by the task is not attached by any other task. The instruction applies to the robot selected by
the task.
If the eV+ system is not configured to control a robot, executing the OVERLAP instruction
causes an error.
Parameter
Details
If OVERLAP is specified, the settings of SINGLE and MULTIPLE affect the robot motion.
OVERLAP disables the limit-error checking of NOOVERLAP. The OVERLAP setting is applied
whenever program execution is initiated and when a new execution cycle begins.
Page 379
OVERLAP program instruction
Related Keywords
MULTIPLE program instruction
Page 380
PACK program instruction
Syntax
PACK string_array[index], first_char, num_chars = string
Function
Replace a substring within an array of (128-character) string variables, or within a
(nonarray) string variable.
Parameters
index Optional integer value that identifies the first array element to be
considered. The first_char value is interpreted relative to the
element specified by this index. If no index is specified, element
zero is assumed.
Page 381
PACK program instruction
Details
This instruction replaces a substring within an array of strings or within a string variable.
When an array of strings is being modified, the substring is permitted to overlap two elements
of the string array. For example, a 10-character substring whose first character is to replace
the 127th character in element [3] supersedes the last two characters in element [3] and
the first eight characters of element [4].
If the array element to be modified is not defined, the element is created and filled with ASCII
NUL characters (^H00) up to the specified start of the substring. Similarly, if the array
element to be modified is too short, the string is padded with ASCII NUL characters to the
start of the substring.
In order to efficiently access the string array, this function assumes that all of the array
elements, from the start of the array until the element before the element accessed, are
defined and are 128 characters long. For multidimensional arrays, only the right-most array
index is incremented to locate the substring. Thus, for example, element [2,3] is followed by
element [2,4].
When a string variable is modified, the replacement is done in a manner similar to that for an
individual array element. However, an error results if the operation causes the string to be
longer than 128 characters.
Example
The instruction below replaces 11 characters within the string array $list[ ]. The replacement
is specified as starting in array element $list[3]. However, since the first character replaced is
to be number 130, the 11-character substring actually replaces the second through 12th
characters of $list[4].
Related Keywords
$MID string function
Page 382
PANIC program instruction
Syntax
PANIC
Function
Simulate an external E-Stop or panic button press; stop all robots immediately, but do not
turn off HIGH POWER.
Usage Considerations
If the eV+ system is controlling more than one robot, all the robots are stopped.
This instruction has no effect on nonrobot systems.
Details
This instruction performs the following actions:
l Stops execution of the robot control program if the robot is attached and no REACTE
has been executed to enable program processing of error.
Unlike pressing the emergency stop button on the pendant, high power is left turned on
after a PANIC instruction is processed.
Related Keywords
ABORT monitor command
Page 383
PARAMETER program instruction
Syntax
PARAMETER parameter_name = value
Function
Set the value of a system parameter.
Usage Considerations
If the specified parameter accepts an index qualifier and the index is zero or omitted (with or
without the brackets), all the elements of the parameter array are assigned the value given.
Parameters
Details
This instruction sets the given system parameter to the value on the right. The parameter
name can be abbreviated to the minimum length that identifies it uniquely.
NOTE: A regular assignment statement cannot be used to set the value of a system
parameter.
The parameter names acceptable with the standard eV+ system are summarized in the
section Parameters in the eV+ Language User's Guide.
Other system parameters are available when options are installed. Refer to the option
documentation for details. For example, the parameters associated with the AdeptVision
options are described in the section Descriptions of Vision Keywords in the AdeptVision
Reference Guide.
Page 384
PARAMETER program instruction
Example
Set the TERMINAL system parameter to 4:
PARAMETER TERMINAL = 4
Related Keywords
BELT.MODE system parameter
Page 385
PARAMETER real-valued function
Syntax
PARAMETER (parameter_name)
PARAMETER (parameter_name[index])
Function
Return the current setting of the named system parameter.
Parameters
Details
This function returns the current setting of the given system parameter. The parameter
name can be abbreviated to the minimum length that identifies it uniquely.
Other system parameters are available when options are installed. Refer to the option
documentation for details. For example, the parameters associated with the AdeptVision
options are described in the section Descriptions of Vision Keywords in the AdeptVision
Reference Guide.
Examples
The following example illustrates how the current setting of the TERMINAL parameter can be
displayed on the system terminal during program execution:
The PARAMETER function can also be used in any expression to include the value of a
parameter. For example, the following program statement can be used to increase the time
delay for hand actuation:
Note that the left-hand occurrence of PARAMETER is the instruction name and the right-
hand occurrence is the function name.
Page 386
PARAMETER real-valued function
Related Keywords
BELT.MODE system parameter
Page 387
PAUSE program instruction
Syntax
PAUSE
Function
Stop program execution but allow the program to be resumed.
Usage Considerations
Unlike HALT and STOP, the PAUSE instruction does not force FCLOSE or DETACH on the disk
or serial communication logical units. If the program has a file open and you decide not to
continue execution of the current program, you should issue a KILL command (with the
appropriate task number) to close all files and detach all logical units.
Details
Causes a BREAK and terminates execution of the application program, displaying the
message (PAUSED). Execution can subsequently be continued by typing proceed and the
appropriate task number, and pressing the RETURN key.
When debugging a program, a PAUSE instruction can be inserted to stop program execution
temporarily while the values of variables are checked.
NOTE: Any robot motion in progress when a PAUSE instruction is processed completes
normally.
Related Keywords
HALT program instruction
Page 388
#PDEST precision-point function
Syntax
#PDEST
Function
Return a precision-point value representing the planned destination location for the current
robot motion.
Usage Considerations
The #PDEST function returns information for the robot selected by the task executing the
function.
If the eV+ system is not configured to control a robot, use of the #PDEST function does not
generate an error because of the absence of a robot. However, the information returned by
the function may not be meaningful.
Details
The #PDEST function can be used to determine the robot's destination before its motion was
interrupted.
The #PDEST function is equivalent to the DEST transformation function and can be used
interchangeably with DEST, depending upon the type of location information that is desired.
Please refer to the description of the DEST function for more information on the use of both
the #PDEST and DEST functions.
Related Keywords
DEST transformation function
Page 389
PDNT.CLEAR program instruction
Syntax
PDNT.CLEAR
Function
Clears the current notification window or custom message window on the T20 pendant, if
any, and returns the T20 pendant back to the Home screen.
Usage Considerations
Parameters
None
Details
None
Example
The following code:
PDNT.CLEAR
Related Keywords
PDNT.WRITE program instruction
Page 390
PDNT.NOTIFY program instruction
Syntax
PDNT.NOTIFY $title, $msg
Function
Creates a pendant notification.
Usage Considerations
The pendant does not need to be attached using an ATTACH instruction prior to using this
function.
Parameters
$title Optional string constant, variable, or expression that contains the title
of the pendant notification.
Details
PDNT.NOTIFY is used to create a simple notification box on the T20 Pendant screen that can
be cleared by pressing the OK or Cancel buttons on the pendant or with a eV+call to
PDNT.CLEAR.
Example
The following code:
PDNT.NOTIFY “Manual Mode”, “To enable power, press and hold the
enable switch.”
Page 391
PDNT.NOTIFY program instruction
Related Keywords
PDNT.WRITE program instruction
Page 392
PDNT.WRITE program instruction
Syntax
PDNT.WRITE (msgsize) $title, $msg, $f1, $f2, $f3, $f4
Function
Sets the pendant's Custom Message screen.
Usage Considerations
The pendant does not need to be attached using an ATTACH instruction prior to using this
function.
Parameters
msgsize Optional Real value, variable, or expression whose value represents the
array size of $msg.
$title Optional string constant, variable, or expression that contains the title
of the pendant’s Custom Message screen.
$msg Optional string constant, variable, or expression that contains the body
of the pendant’s Custom Message screen. This can accept html tags to
create an html-formatted text box. If $msg is an array and msgsize > 1,
it will concatenate all the elements of the array. See the example code
that follows.
$f1 Optional string constant, variable, or expression that contains the label
of the F1 Key of the Custom Message Screen.
$f2 Optional string constant, variable, or expression that contains the label
of the F2 Key of the Custom Message Screen.
$f3 Optional string constant, variable, or expression that contains the label
of the F3 Key of the Custom Message Screen.
$f4 Optional string constant, variable, or expression that contains the label
of the F4 Key of the Custom Message Screen.
Details
PDNT.WRITE is used to set the screen of the T20 Pendant. This is used to create a user
interface to program the pendant through eV+. The screen can be either updated with a
Page 393
PDNT.WRITE program instruction
subsequent PDNT.WRITE or cleared with a PDNT.CLEAR. While the screen is displayed, all
green keys, as well as Select Robot, are active, so that the robot can always be jogged. All
other keys have no effect aside from being sent to the eV+ software.
Example
The following code:
AUTO $testmsg[0]
Page 394
PDNT.WRITE program instruction
Tag Example
Related Keywords
PDNT.NOTIFY program instruction
Page 395
PENDANT real-valued function
Syntax
PENDANT (select)
Function
Return input from the manual control pendant.
Usage Considerations
The pendant must be attached using an ATTACH instruction prior to using this function. See
Details below.
Parameter
Details
The value returned depends upon the select parameter as follows:
select> 0
Immediately returns a value that reflects the actual state of the key with the given key
number at the instant the function is called. The state of the key depends upon the key
mode setting for that key. See the KEYMODE program instruction for information about
setting key modes and see the section Programming the pendant in the eV+ Language
User's Guide, for a table of the key numbers. The value returned is meaningful only if the
pendant is connected.
If a key is in keyboard mode, the value ON (-1) indicates that the key is pressed. The value
OFF (0) indicates that the key is not pressed.
If a key is in level mode, the value ON (-1) indicates that the pendant is attached in USER
mode and that the key is pressed. The value OFF (0) indicates that the pendant is not in
USER mode, or that the key is not pressed.
If a key is in toggle mode, the value ON (-1) indicates that the key is on and the value OFF
(0) indicates that the key is off. If the pendant is not in USER mode, the value returned still
accurately reflects the state of the toggled key.
select = 0
Returns the key number of the next keyboard mode key pressed. Program execution is
suspended until a keyboard mode key is pressed. If no key is programmed in this mode, an
Page 396
PENDANT real-valued function
error occurs.
select = -2
Returns the current value from the speed label, in the range of 0 to 100 (decimal). When the
Pendant Jog mode is COMP, the monitor speed is returned. In other jog modes, the jog speed
is returned.
select = -3
1 Home screen
2 Other screens
3 Error screen
select = -4
Returns the version number of the manual control software. This is the same as the value
returned by the real-valued function ID(1,2). The value -1 is returned if the pendant is not
connected to the system.
Examples
This example sets the manual control soft keys to keyboard mode, and then waits for one of
them to be pressed (also see the section Soft Signals in the eV+ Language User's Guide).
This example sets the DONE key to level mode and loops until the key is pressed.
Page 397
PENDANT real-valued function
Related Keywords
ATTACH program instruction
Page 398
#PHERE precision-point function
Syntax
#PHERE
Function
Return a precision-point value representing the current location of the currently selected
robot.
Usage Considerations
The function #PHERE is considered to be a precision-point name. Thus, the # character
must precede the function name whenever it is used.
PHERE is a reserved word in eV+ and cannot be used for a variable or program name.
Details
The PHERE real-valued function is equivalent to the program instruction HERE #pp.
Example:
The following example shows #PHERE being used to set a precision point value, in this case
#pp.
Related Keyword
HERE program instruction
Page 399
PI real-valued function
PI real-valued function
Syntax
PI
Function
Return the value of the mathematical constant pi (3.141593).
NOTE: TYPE, PROMPT, and similar instructions display the result of the above example as
a single-precision value. However, pi is actually stored and manipulated as a double-
precision value. The LISTR monitor command displays real values to full precision.
Usage Considerations
The word "pi" cannot be used as a program name or variable name.
Page 400
PING monitor command
Syntax
PING node
Function
Test the network connection to a node.
Usage Considerations
This command is relevant only to controllers with the AdeptNet option.
Parameters
Details
This command tests the network connection to a named or addressed node. If the node
responds, the command displays Success. If the node does not respond within 5 seconds,
the command displays Node not reachable.
Examples
To determine if a node named server2 is successfully connected, type
ping server2
The response Node not reachable indicates that the connection was not successful.
Related Keywords
FSET monitor command
Page 401
#PLATCH precision-point function
Syntax
#PLATCH (select)
Function
Return a precision-point value representing the location of the robot at the occurrence of the
last external trigger or a Stop on Digital Signal.
Usage Considerations
The function name #PLATCH is considered to be a precision-point name. Thus, the #
character must precede all uses of the function.
#PLATCH(0) returns information for the robot selected by the task executing the function. If
the eV+ system is not configured to control a robot, use of the #PLATCH function does not
generate an error because of the absence of a robot. However, the information returned by
the function may not be meaningful.
Parameter
Details
#PLATCH( ) returns a precision-point value that represents the location of the robot when
the last trigger occurred. The LATCHED real-valued function should be used to determine
when an external trigger has occurred and a valid location has been recorded.
Operation of the external trigger can be configured from the eV+ System Configuration
Editor in the ACE software. For details, see the ACE User's Guide.
See the Adept Intelligent Force Sensor User's Guide for details of the Stop on Digital Signal
option.
Related Keywords
LATCH transformation function
Page 402
POS real-valued function
Syntax
POS (search_string, sub_string, start)
Function
Return the starting character position of a substring in a string.
Parameters
Details
Returns the character position in search_string where sub_string begins. If the substring
does not occur within the search string, a value of 0 is returned.
When checking for a matching substring, uppercase and lowercase letters are considered to
be the same.
Examples
POS("file.ext", ".") ;Returns 5
POS("file", ".") ;Returns 0
POS("abcdefgh", "DE") ;Returns 4
POS("1-2-3-4", "-", 5) ;Returns 6
Page 403
POWER system switch
Syntax
... POWER
Function
Control or monitor the status of high power.
Usage Considerations
Using this switch to turn on high power is potentially dangerous when performed from a
program because the robot can be activated without direct operator action. Turning on high
power from the terminal can be hazardous if you do not have a clear view of the robot
workspace or do not have immediate access to an Emergency Stop button.
Details
Enabling this switch is equivalent to pushing the COMP/PWR button on the pendant to turn
on high power. If there is no error condition that prevents power from coming on, the
enabling process proceeds to the second step, in which you must press the HIGH POWER
button on the FP. (Systems not subject to European certification do not require the second
step.)
Disabling this switch requests the robot to perform a controlled deceleration and power-down
sequence. This sequence consists of:
1. Decelerating all robots according to the user-specified parameters. (See the following
Note.)
3. Waiting for the user-specified brake-delay interval. (See the following Note.)
5. Asserting the backplane Emergency Stop signal and deasserting the High Power
Enable (HPE) signal.
Note that DISABLE POWER may take an arbitrarily long time due to long deceleration times
and long brake turn-on delays. (Use the ESTOP command or program instruction when you
Page 404
POWER system switch
desire an immediate shutdown.) The value of this switch can be checked at any time with the
SWITCH real-valued function to determine if high power is on or off.
To disable power from a robot program without generating an error condition, the program
must either be in DRY.RUN mode or DETACH the robot from program control. See the
DRY.RUN switch or DETACH program instruction for details.
Example
The following program segment detaches the robot, turns high power off, and waits for you to
turn high power back on.
Related Keywords
DISABLE monitor command
Page 405
#PPOINT precision- point function
Syntax
#PPOINT (j1_value, j2_value, j3_value, j4_value, j5_value, j6_value, j7_value, j8_value,
j9_value, j10_value, j11_value, j12_value)
Function
Return a precision-point value composed from the given components.
Usage Considerations
The #PPOINT function name is considered to be a precision-point name. Thus, the #
character must precede all uses of the function.
Parameters
j3_value
...
j12_value
Details
Returns a precision-point value composed from the given components, which are the
positions of the first through last robot joints, respectively.
Examples
Assume that you want to perform a coordinated motion of joints 2 and 3 of a robot with 4
joints, starting from its current location. The following program segment performs such a
motion:
Page 406
#PPOINT precision- point function
The following steps lead to the same final location, but the robot joints are not moved
simultaneously with this method.
Related Keywords
DECOMPOSE program instruction
Page 407
PRIORITY real-valued function
Syntax
PRIORITY
Function
Return the current reaction lock-out priority for the program.
Usage Considerations
The name "priority" cannot be used as a program name or variable name.
This function returns the reaction lock-out priority, not the program priority of the executing
program.
Details
The reaction lock-out priority for each program task is set to zero when execution of the task
is initiated. The priority can be changed by the program at any time with the LOCK
instruction, or the priority is set automatically when a reaction occurs as prescribed by a
REACT or REACTI instruction.
The PRIORITY function can be used to determine the current setting of the reaction lock-out
priority for the task executing the function.
Example
This example raises the priority, performs some operation that requires a reaction routine to
be locked out, and then restores it to its previous value.
Related Keywords
LOCK program instruction
Page 408
PROCEED program instruction
Syntax
PROCEED task
Function
Resume execution of an application program.
Usage Considerations
A program cannot resume if it has completed execution normally or has stopped due to a
HALT instruction.
Parameter
Details
This instruction resumes execution of the specified program task at the step following the one
where execution was halted due to a PAUSE instruction, an ABORT instruction, a breakpoint,
a watchpoint, single-step execution, or a runtime error.
If the specified task is executing and the program is at a WAIT or WAIT.EVENT instruction (for
example, waiting for an external signal condition to be satisfied), typing proceed has the
effect of skipping over the WAIT or WAIT.EVENT instruction.
This instruction has no effect if the specified task is executing and the program is not at a
WAIT or WAIT.EVENT instruction.
PROCEED differs from RETRY in the following manner: If a program instruction generated an
error, RETRY attempts to reexecute that instruction, but PROCEED resumes execution at the
instruction that follows. If a robot motion was in progress when the program stopped, RETRY
attempts to complete that motion, but PROCEED goes on to the next motion.
Related Keywords
ABORT monitor command
Page 409
PROCEED program instruction
XSTEP monitorcommand
Page 410
.PROGRAM program instruction
Syntax
.PROGRAM program_name(argument_list) ;comment
Function
Define the arguments that are passed to a program when it is invoked.
Usage Considerations
This instruction is inserted automatically by the eV+ editors when a new program is edited.
Parameters
Details
The eV+ editors automatically enter a .PROGRAM line when you edit a new program. They
also prevent you from deleting the line or changing the program name. You can, however,
edit the line to add, delete, or modify the argument list. (The RENAME monitor command
must be used to change the program name.)
The variables in the argument list are considered automatic variables for the named
program. (See the AUTO instruction.)
When a program begins execution (for example, via an EXECUTE command or instruction or
a CALL instruction), the arguments in the .PROGRAM instruction are associated with those in
the EXECUTE or CALL. This association allows values to be passed between a program and its
caller.
Page 411
.PROGRAM program instruction
See the description of the CALL instruction for an explanation of how the program arguments
receive their values from a calling program and return their values to the calling program. The
following rules apply to any program argument that is omitted when the program executes:
l Real-valued scalar parameters can be assigned a value within a program if they are
omitted.
l Location, string, and belt (scalar or array) parameters, and real-valued array
parameters, cannot be assigned a value within a program if they are omitted. (AUTO
variables can be used to work around this restriction, as shown in the example below.)
However, undefined parameters can be passed as program arguments and then be
assigned a value.
NOTE: If a program attempts to assign a value to one of these omitted variables, the error
*Undefined value* results. In that case, the error refers to the variable on the left side of
the assignment instruction.
The DEFINED real-valued function can be used within a program to check whether a program
parameter is defined (meaning both: passed as a argument, and as an argument that has
been assigned a value previously). The example below shows how a program can be written
to accommodate undefined or omitted parameters.
A comment can be included on the .PROGRAM line, which is displayed when the program is
loaded from the disk and by the DIRECTORY command.
Examples
Define a program that expects no arguments to be passed to it:
.PROGRAM get()
Define a program that expects a string-valued argument and either a location or real-valued
argument (the type of the second argument is determined by its use in the program):
The following program segment shows how a program can be written to deal with undefined
or omitted parameters. The example shows part of the program example, which has a real-
valued parameter and a string parameter.
.PROGRAM example(real, $string)
AUTO $internal.var
; Check for undefined or omitted real-valued scalar parameter.
IF NOT DEFINED(real) THEN ;If parameter is undefined
Page 412
.PROGRAM program instruction
Refer to the DEFINED function for more details and for testing nonreal arguments.
Related Keywords
CALL program instruction
XSTEP monitorcommand
Page 413
PROMPT program instruction
Syntax
PROMPT output_string, variable_list
Function
Display a string on the system terminal and wait for operator input.
Parameters
Details
Displays the text of the output string on the system terminal, and waits for you to type in a
line terminated by pressing the RETURN key.
1. If a list of real-valued variables is specified as the variable list, the line is assumed to
contain a list of numbers separated by space characters and/or commas. Each
number is converted from text to its internal representation, and its value is stored in
the next variable contained in the variable list. If more values are read than the
number of variables specified, the extra values are ignored. If fewer values are read,
the remaining variables are set to zero. If data is read that is not a number, an error
occurs and program execution stops. Each PROMPT instruction should request only
one value to avoid confusion and to reduce the possibility of error.
2. If a single string variable is specified as the variable list, the entire input line is stored
in the string variable. The program must then process the string appropriately.
If you press the RETURN key, or press CTRL+C, an empty line is read. This results in all the
real variables being set to zero, or the string variable being assigned an empty string.
If you press CTRL+Z, an end-of-file error condition results. If there is no REACTE instruction
active, program execution is terminated and an error message is displayed. Thus, CTRL+Z
can be a useful way to abort program execution at a PROMPT.
Examples
Consider the instruction:
Page 414
PROMPT program instruction
on the system terminal to ask you to type in the desired value. After you type a number and
press the RETURN key, the variable part.count is set equal to the value typed, and program
execution resumes.
Even if you enter characters that are not valid for numeric input, eV+ does not output an
error message. The application program can use the various string functions to extract
numeric values from the input string.
If you want to include format specifications in the string output to the terminal (such as /Cn
to skip lines), you can use either the $ENCODE function or the TYPE instruction. For example,
the instruction
beeps the terminal, spaces down a line, spaces over ten spaces, outputs the string, and waits
for your input. (Note that a + sign has to be used between the $ENCODE function and the
quoted string because the entire output_string parameter must be a single string
expression.)
or
Note that /S must be included in the TYPE instructions as shown to have the prompt string
output on one line, and to have the cursor remain on that line.
Related Keywords
GETC real-valued function
Page 415
RANDOM real-valued function
Syntax
RANDOM
Function
Return a pseudorandom number.
Usage Considerations
The word "random" cannot be used as a program name or variable name.
Details
Returns a pseudorandom number in the range 0.0 to 1.0, inclusive. Thus, each time the
RANDOM function is evaluated, it returns a different value.
The numbers generated by this function are pseudorandom because the sequence repeats
after this function has been called 2 24 (16,777,216) times.
Page 416
REACT program instruction
Syntax
REACT signal_num, program, priority
Function
Initiate continuous monitoring of a specified digital signal and automatically trigger a
subroutine call if the signal properly transitions.
Usage Considerations
The REACT (and REACTI) instruction can be executed by any of the program tasks. That is,
each task can have its own, independent reaction definition.
Any of the first twelve external input signals (1001 to 1012) can be simultaneously
monitored.
Reactions are triggered by signal transitions and not levels. Thus, if a signal is going to be
monitored for a transition from off to on and the signal is already on when a REACT (or
REACTI) instruction is executed, then the reaction does not occur until the signal goes off
and then on again.
A signal must remain stable for at least 18 milliseconds to assure detection of a transition.
NOTE:If software signals are being used to trigger reactions, the WAIT instruction (with
no argument) should be used as required to ensure that the signal state remains
constant for the required time period.
The requested signal monitoring is enabled as soon as a REACT (or REACTI) instruction is
executed. Because of the way eV+ processes program instructions, this can result in an
effect on the motion initiated by the motion instruction preceding the REACT (or REACTI)
instruction in the program. (See the section Motion Control Examples in the eV+ Language
User's Guide for a discussion of robot motion processing.)
Parameters
Page 417
REACT program instruction
transitions properly.
Details
When the specified signal transition is detected, eV+ reacts by checking the priority specified
with the REACT instruction against the program priority setting at that time. (The program
priority is always set to 0 when execution begins. It can be changed with the LOCK
instruction.) If the REACT priority is greater than the program priority, the normal program
execution sequence is interrupted and the equivalent of a CALL program instruction is
executed. Also, the program priority is temporarily raised to the REACT priority, locking out
any reactions of equal or lower importance. When a RETURN instruction is executed in a
reaction subroutine, the program priority is restored to the value it had before the reaction
program was invoked.
If the REACT priority is less than or equal to the program priority when the signal transition is
detected, the reaction is queued and does not occur until the program priority is lowered.
Therefore, depending upon the relative priorities, there can be a considerable delay between
the time a signal transition is noticed by eV+ and the time the reaction program is actually
invoked.
If multiple reactions are pending because of a priority lockout, the reaction with the highest
priority is serviced first when the locking priority is lowered. If multiple pending reactions have
the same priority, the one associated with the highest signal number is processed first.
The subroutine call to program is performed such that when a RETURN instruction is
encountered, the next instruction to be executed is the one that follows the last instruction
processed before the reaction program was initiated. If there is a sequence of instructions
that you do not want interrupted by a reaction program, you should use the LOCK instruction
to raise the program priority during that sequence.
l A REACT (or REACTI) instruction is executed that refers to the same signal. That is, if
the signal specified in a REACT instruction is already being monitored by a previous
REACT or REACTI instruction, the old instruction is canceled when the new REACT
instruction is executed.
Page 418
REACT program instruction
Example
The instruction below monitors the external input signal identified by the value of the
variable test. If the desired signal transition occurs (as specified by the sign of the value of
test), program execution branches to program delay as soon as the program priority drops to
0 (since no priority is specified in the instruction). (The program priority is raised to 1 [the
default value] when the subroutine is invoked; the program priority returns to 0 when the
program returns.)
Related Keywords
IGNORE program instruction
Page 419
REACTE program instruction
Syntax
REACTE program_name
Function
Initiate the monitoring of errors that occur during execution of the current program task.
Usage Considerations
The main purpose for the REACTE instruction is to allow for an orderly shutdown of the
system if an unexpected error occurs. If a robot hardware error occurs, for example, a
REACTE program can set external output signal lines to shut down external equipment.
Using the REACTE instruction for other purposes requires extreme caution.
The REACTE instruction can be executed by any of the program tasks. That is, each task can
have its own, independent REACTE definition. (A task cannot directly trap errors caused by
another task, but tasks can signal each other via global variables or software signals.)
The ERROR real-valued function must be called before a REACTE with no program name,
since the REACTE clears the previous errors
Parameter
program_name Optional name of the program that is to be called when a program
error occurs. If no program is specified, the previous REACTE is
canceled, and any pending error message is discarded.
Details
If an error occurs after a REACTE instruction has been executed, the specified program is
invoked, rather than stopping normal program execution. (The program is invoked as
though by the CALL program instruction.) The ERROR real-valued function can be used
within the error-handling program to determine what error caused the program to be
invoked.
There are several special considerations that must be kept in mind when using this facility:
l The program priority is raised to 254 when the error-handling program is invoked,
locking out all reaction programs.
l Execution of the program task stops if an error occurs while the system is processing a
previous error.
l There must be room on the user program stack for one more subroutine. Therefore,
Page 420
REACTE program instruction
the error *Too many subroutine calls* cannot be processed. (See the STACK monitor
command.)
l Before the error-handling program is entered, a DETACH instruction for the robot
(logical unit number 0) is effectively executed. Thus, an ATTACH instruction must be
executed for the robot before program control of the robot can resume.
l Unlike REACT and REACTI, execution of the REACTE error-handling program is never
deferred because of priority considerations.
Example
Initiate monitoring of errors so that the program error.trap is executed if any error should
occur during execution of the current program task:
REACTE error.trap
Related Keywords
ERROR real-valued function
Page 421
REACTI program instruction
Syntax
REACTI signal_num, program, priority
Function
Initiate continuous monitoring of a specified digital signal. Automatically stop the current
robot motion if the signal transitions properly and optionally trigger a subroutine call.
Usage Considerations
For most applications, the REACTI instruction should be used only in a robot control program.
(See below for more information.)
When a REACTI triggers, the robot that is stopped is the one selected by the task at the time
of the trigger, regardless of which robot was selected at the time the REACTI instruction was
executed.
Also see the considerations listed for the REACT program instruction.
Parameters
If the signal number is positive, eV+ looks for a transition from off to
on; if signal is negative, eV+ looks for a transition from on to off.
program Optional name of the subroutine that is called when the signal
transitions properly.
priority Optional real-valued expression that indicates the relative
importance of this reaction as explained below. The value of this
expression is interpreted as an integer value and can range from 1 to
127. If this argument is omitted, it defaults to 1. See the LOCK
instruction for additional details on priority values.
Details
When the specified signal transition is detected, eV+ reacts by immediately stopping the
current robot motion. If a program is specified, eV+ then continues processing the reaction
just as it would for a REACT instruction. (See the description of the REACT instruction for a
full explanation of this processing).
Page 422
REACTI program instruction
When REACTI is used by a program task that is not actually controlling the robot, care must
be exercised to make sure the robot control program does not nullify the intended effect of
the reaction subroutine. That is, if your application has one program task monitoring the
signal and a different program task controlling the robot, you should keep the following points
in mind when planning for processing of the reaction:
l The robot motion in process at the time of the reaction is stopped, as if a BRAKE
instruction were executed, but execution of the robot control program is not directly
affected.
l A REACTI (or REACT) instruction is executed that refers to the same signal. That is, if
the signal specified in a REACTI instruction is already being monitored by a previous
REACTI or REACT instruction, the old instruction is canceled when the new REACTI
instruction is executed.
If you do not want the robot motion to stop until the reaction program is actually called, you
should use a REACT instruction and put a BRAKE instruction in the reaction program.
Example
The instruction below initiates monitoring of external input signal #1001. The robot motion is
stopped immediately if the signal ever changes from on to off (since the signal is specified as a
negative value). A branch to program alarm then occurs when the program priority falls
below 10 (if it is not already at or below that level).
Related Keywords
IGNORE program instruction
Page 423
READ program instruction
Syntax
READ (lun, record_num, mode) var_list
Function
Read a record from an open file or from an attached device that is not file oriented. For an
network device, read a string from an attached and open TCP connection.
Usage Considerations
The logical unit referenced by this instruction must have been attached previously.
For file-oriented devices, a file must already have been opened with an FOPEN_ instruction.
Parameters
record_num Optional real-valued expression that specifies the record to read for
file-oriented devices opened in random-access mode (see the
FOPEN_ instructions). For nonfile-oriented devices or for sequential
access of a file, this parameter should be 0 or omitted. Records are
numbered from one to a maximum of 16,777,216.
mode Optional real-valued expression that specifies the mode of the read
operation. Currently, the mode is used only for the terminal and
serial I/O logical units. The value is interpreted as a sequence of bit
flags as detailed below. (All bits are assumed to be clear if no mode
value is specified.)
Page 424
READ program instruction
NOTE: For a no-wait READ to access a serial line, the line must
be configured to use DDCMP.
If this bit is clear, input from the terminal is echoed back to the
source. If the bit is set, characters are not echoed back to the
source. (This mode bit is ignored for the serial lines.)
Details
This is a general-purpose data input instruction that reads a record from a specified logical
unit. A record can contain an arbitrary list of characters but must not exceed 512 characters
in length. For files that are opened in fixed-length record mode, this instruction continues to
read characters until it has read exactly the number of characters specified during the
corresponding FOPEN_ instruction.
For variable-length record mode (with most devices), this instruction reads characters until
the first carriage-return (CR) and line-feed (LF) character sequence (or Ctrl+Z) is
encountered. Thus, for example, if you perform a variable-length record mode read from the
disk, you receive all the characters until a CR and LF are encountered.
The special character Ctrl+Z (26 decimal) indicates the logical end of the file, which is
reported as an error by the IOSTAT function. No input characters can be read beyond that
point.
READ operations from the terminal, the pendant, and the serial lines are always assumed to
be in variable-length record mode. Except as noted below, the records are terminated by CR
and LF (which are not returned as part of the record). Thus, a READ from these devices is not
complete until a CR and LF are received as input. For example, if you perform a READ from
the terminal, you receive all the characters until the RETURN key is pressed.
NOTE:When a CR is received from the system terminal, eV+ automatically adds a LF.
Similarly, the pendant's DONE key is interpreted as CR and LF.
The GETC real-valued function can be used instead of the READ instruction if you want to
receive the CR and LF characters at the end of a record.
When a READ instruction accesses a serial line configured to use DDCMP, the record may
contain arbitrary data, including CR and LF characters.
If bit 1 is set in the mode value, a read operation that is not complete does not cause the
program to wait, but returns immediately with the error *No data received* (error code -
Page 425
READ program instruction
526). Then, additional READ instructions must be executed, until one is complete, in order to
obtain the data in the variable list. The IOSTAT function can be used to determine when such
a READ is complete.
Once a record has been read, it is processed in one of the following two ways:
2. If the var_list parameter is a list of string variables, the entire record is stored in the
string variables as follows. The first 128 bytes in the record are copied to the first
string variable. If there are more than 128 bytes in the record, the second string
variable is filled with the next 128 bytes. This continues until the entire record has
been processed or all the string variables have been filled.
If there is not enough data to fill all the string variables, the unused string
variables are set to the empty string (""). If there is too much data for the
number of string variables specified, an error is reported by the IOSTAT real-
valued function.
Any error in the specification of this instruction (such as attempting to read from an invalid
unit) causes a program error and halts program execution. However, errors associated with
performing the actual read operation (such as end of file or device not ready) do not halt
program execution since these errors may occur in the normal operation of a program. These
normal errors can be detected by using the IOSTAT function after performing the read. In
general, it is good practice always to test whether each read operation completed
successfully by testing the value from IOSTAT.
The READ instruction with TCP/IP reads data until either the input string is full or the buffer
is empty, at which point the instruction returns. READ with TCP/IP does not allow fixed-
length records and does not terminate when encountering a delimiter.
Page 426
READ program instruction
Example
Read a line of text from the disk and store the record in the string variable $disk.input:
For an example of using the READ instruction with the TCP device, refer to the Example
section for the IOSTAT real-valued function.
Related Keywords
ATTACH program instruction
Page 427
READY program instruction
Syntax
READY
Function
Move the robot to the READY location above the workspace, which forces the robot into a
standard configuration.
Usage Considerations
Before executing this instruction with the DO monitor command (DO READY), make sure
that the robot will not strike anything while moving to the READY location.
The READY instruction can be executed by any program task as long as the task has
attached a robot. The instruction applies to the robot selected by the task.
If the eV+ system is not configured to control a robot, executing the READY instruction
causes an error.
Details
This instruction always succeeds, regardless of where the robot is located at the time.
A Cobra robot has the following configuration when it is at the READY location:
l The alignment keyway in the end-effector flange is directed along the positive X axis
(that is, the tool X axis is parallel to the world X axis)
The following table lists the joint positions for the READY locations for various Omron Adept
robots.
Viper Viper
Cobra Cobra Cobra Quattro
Joint 650/850 1700/
350 600 800 650/800
/1300 1700D
Page 428
READY program instruction
Viper Viper
Cobra Cobra Cobra Quattro
Joint 650/850 1700/
350 600 800 650/800
/1300 1700D
Related Keyword
SELECT program instruction
Page 429
RELAX and RELAXI program instruction
Syntax
RELAX
RELAXI
Function
Limp the pneumatic hand.
Usage Considerations
RELAX causes the hand to limp during the next robot motion.
RELAXI causes a BREAK in the current continuous-path motion and causes the hand to limp
immediately after the current motion completes.
The RELAX instruction can be executed by any program task as long as the robot selected by
the task is not attached by any other task. The instruction applies to the robot selected by
the task.
The RELAXI instruction can be executed by any program task as long as the task has
attached a robot. The instruction applies to the robot selected by the task.
If the eV+ system is not configured to control a robot, executing these instructions causes
an error.
Details
These instructions turn off both the open and close pneumatic control solenoid valves,
causing the pneumatic hand to become limp. If the RELAX instruction is used, the signal is
sent when the next robot motion begins.
l The signals are sent to the control valves at the conclusion of the current motion or
immediately if no motion is in progress.
l Robot motions are delayed for a brief time to allow the hand actuation to complete.
The length of the delay (in seconds) is the current setting of the HAND.TIME system
parameter.
Related Keywords
CLOSE program instruction
Page 430
RELAX and RELAXI program instruction
Page 431
RELEASE program instruction
Syntax
RELEASE
Function
Allow the next available program task to run.
Details
This instruction releases control to another task that is ready to run. For more information
on task scheduling, see the section Scheduling of Program Execution Tasks in the eV+
Language User's Guide.
This instruction can be used in place of the WAIT instruction (with no arguments) in cases
where other tasks must be given an opportunity to run, but a delay until the next trajectory
cycle is not desired.
Related Keywords
WAIT program instruction
Page 432
RESET program instruction
Syntax
RESET
Function
Turn off all the external output signals.
Details
The RESET program instruction is useful in the initialization portion of a program to ensure
that all the external output signals are in a known state.
Related Keywords
BITS monitor command
IO monitor command
Syntax
RETRY task
Function
Repeat execution of the last interrupted program instruction and continue execution of the
program.
Page 433
RETRY monitor command
Usage Considerations
RETRY cannot be processed when the specified task is executing.
A program cannot be resumed if it has completed execution normally or has stopped due to a
HALT instruction.
Parameter
Details
This instruction restarts execution of the specified task similar to the PROCEED instruction.
After a RETRY instruction, however, the point at which execution resumes depends on the
status at the time execution was interrupted. If a program step or robot motion was
interrupted before its completion, use of a RETRY instruction causes the interrupted
operation to be completed before execution continues normally. This allows you to retry a
step that has been aborted or that caused an error.
If no program step or robot motion was interrupted, the RETRY instruction has the same
effect as the PROCEED instruction.
NOTE: When a RETRY instruction is used to resume an interrupted motion, all motion
parameters are restored to the settings in effect before the motion was interrupted.
Related Keywords
PROCEED program instruction
XSTEP monitorcommand
Syntax
RETRY task
Page 434
RETRY monitor command
Function
Repeat execution of the last interrupted program instruction and continue execution of the
program.
Usage Considerations
RETRY cannot be processed when the specified task is executing.
A program cannot be resumed if it has completed execution normally or has stopped due to a
HALT instruction.
Parameter
Details
This instruction restarts execution of the specified task similar to the PROCEED instruction.
After a RETRY instruction, however, the point at which execution resumes depends on the
status at the time execution was interrupted. If a program step or robot motion was
interrupted before its completion, use of a RETRY instruction causes the interrupted
operation to be completed before execution continues normally. This allows you to retry a
step that has been aborted or that caused an error.
If no program step or robot motion was interrupted, the RETRY instruction has the same
effect as the PROCEED instruction.
NOTE: When a RETRY instruction is used to resume an interrupted motion, all motion
parameters are restored to the settings in effect before the motion was interrupted.
Related Keywords
PROCEED program instruction
XSTEP monitorcommand
Page 435
RETURN program instruction
Syntax
RETURN
Function
Terminate execution of the current subroutine, and resume execution of the suspended
program at its next step. A program may have been suspended by issuing a CALL, CALLP, or
CALLS instruction, or by the triggering of a REACT, REACTE, or REACTI condition.
Details
A RETURN instruction in a main program has the same effect as a STOP instruction.
A RETURN instruction is assumed if program execution reaches the last step of a subroutine.
However, it is not good programming style to use this feature-an explicit RETURN instruction
should be included as the last line of each subroutine.
The effect of a RETURN instruction in an error reaction subroutine differs slightly. In that
case, if the reaction subroutine was invoked because of a program error (as opposed to an
asynchronous servo error or PANIC button press), the statement that caused the error is
executed again. That is, the error may occur again immediately. The RETURNE instruction
should be used in error reaction subroutines to avoid that situation.
If a RETURN instruction is used to exit from a reaction routine, the program reaction priority
is restored to whatever it was before the reaction routine started execution.
Related Keywords
CALL program instruction
Page 436
RETURNE program instruction
Syntax
RETURNE
Function
Terminate execution of an error reaction subroutine and resume execution of the last-
suspended program at the step following the instruction that caused the subroutine to be
invoked.
Details
The RETURNE instruction is intended for use in error reaction subroutines. That is,
subroutines that are invoked, through the REACTE mechanism, as a result of an error during
program execution.
If a RETURNE instruction is used to exit from an error reaction routine, the program reaction
priority is restored to whatever it was before the error reaction routine started execution.
NOTE: Because of the forward processing ability of eV+, the instruction that is the source
of an error may not be the one executing when the error is actually registered. For
example, when a MOVE instruction is processed, the robot begins moving, but during the
motion several additional instructions may be processed. If an envelope or similar error
occurs after this forward processing, the RETURNE is based on the instruction processing
when the error occurs, not the MOVE instruction.
It may be helpful to note that the RETURNE instruction behaves similarly to the PROCEED
command. The RETURN instruction behaves similarly to the RETRY command (except that
with RETURN an interrupted robot motion is not restarted).
A RETURNE instruction in a program that is not executed in response to an error has the
same effect as a RETURN instruction. RETURNE, however, takes slightly longer to execute
than does RETURN.
Related Keywords
REACTE program instruction
Page 437
RIGHTY program instruction
Syntax
RIGHTY
Function
Request a change in the robot configuration during the next motion so that the first two
links of the robot resemble a human's right arm.
Usage Considerations
Configuration changes cannot be made during straight-line motions.
If the selected robot does not support a right-handed configuration, this instruction is
ignored by the robot.
The RIGHTY instruction can be executed by any program task as long as the robot selected
by the task is not attached by any other task, however if the robot is not attached, this
instruction has no effect. The instruction applies to the robot selected by the task.
If the eV+ system is not configured to control a robot, executing the RIGHTY instruction
causes an error.
See LEFTY/RIGHTY.
Related Keywords
CONFIG real-valued function
Page 438
ROBOT system switch
Syntax
... ROBOT [index]
Function
Enable or disable one robot or all robots.
Usage Considerations
The ROBOT system switches may be modified only when both of the following conditions are
satisfied:
2. When the eV+ system was booted from disk, at least one robot started up without
reporting a fatal error.
Some controllers do not allow a robot to be calibrated unless all robots with lower index
numbers are enabled.
Parameter
Details
When the eV+ system starts up (after booting from disk), all the robots that started up
without reporting a fatal error are enabled by default, and all the corresponding ROBOT
switches are enabled. After start up, the ROBOT switches can be used to selectively disable
robots. For example, this can aid in the debugging of individual robots.
The ROBOT switches may be modified only for robots that are present and that started up
without a fatal error.
When a robot is disabled by use of the ROBOT switch, that robot is bypassed when:
l Power is enabled for all robots with the COMP/PWR button on the pendant or with the
POWER system switch.
Page 439
ROBOT system switch
l All the robots are calibrated via the CALIBRATE monitor command or program
instruction.
Motion instructions should not be executed for a robot that has been disabled.
The settings of these switches can be checked at any time with the SWITCH monitor
command or real-valued function to determine which robots are enabled.
Related Keywords
DISABLE monitor command
Page 440
ROBOT.OPR program instruction
Syntax
ROBOT.OPR (function_code) exp1, exp2, ..., expn
Function
Execute operations that are specific to the currently selected robot or robot module.
Usage Considerations
ROBOT.OPR is a general-purpose instruction whose interpretation varies from one robot type
to another.
Parameters
function_code Optional real value that specifies a function for the selected robot
module.
NOTE: An *Invalid argument* error is returned if the "function_code" value used is not
valid. The same error is returned if an "exp" value exceeds its allowable range. The valid
"function_code" and "exp" values are described in the device module documentation for
your robot. See the Adept Robot Device Modules menu in the Adept Document Library to
access the device module for your robot.
Details
This instruction executes operations that are specific to the currently selected robot or robot
module. If the selected robot does not support any special operations, this instruction has no
effect.
The following table shows the "function" and "exp" values for the supported robot modules.
For additional details about the applicability and use of this instruction, refer to the
documentation for your specific robot module. See the Adept Robot Device Modules menu to
access the documentation for the device module for your robot.
NOTE: Only device modules for non-Omron Adept robots are documented.
Page 441
ROBOT.OPR program instruction
Robot exp1,
function_
Modul- exp2,...exp- Description
code
e n
XY3 When the system is first booted, the first Z/Theta pair is selected as the
(modul- primary head, and the second and third heads are not slaved. The
e ID ROBOT.OPR program instruction must be executed to specify a different
21) primary head, and to slave heads.
2. Before you slave one head to another head, you should ensure that the
Z and Theta values for the slave head are identical to those of the primary
head. If any differences exist, at the start of the next motion, the axes of
the slave head will quickly jump to the same joint positions as the primary
head.
Page 442
ROBOT.OPR program instruction
Robot exp1,
function_
Modul- exp2,...exp- Description
code
e n
position-
offset
values that
are added
to the
commande-
d Z and RZ
positions
for each
slave axis
DLT For this robot, this instruction sets the Cartesian acceleration parameters
(modul- to one of three sets of values. The purpose of this operation is to adjust
e ID the dynamic performance of the robot depending upon the payload being
27) carried.
Page 443
ROBOT.OPR program instruction
Robot exp1,
function_
Modul- exp2,...exp- Description
code
e n
2 1-3 kg
3 3-5 kg
Quattro For this robot, this instruction sets the Cartesian acceleration parameters
650 to one of two sets of values. The purpose of this operation is to adjust the
Robot1 dynamic performance of the robot depending upon the payload being
carried.
Page 444
ROBOT.OPR program instruction
Robot exp1,
function_
Modul- exp2,...exp- Description
code
e n
Paramete- Intende-
r Set d Notes
Number Payload
1 Default Parameter
sets 1-7 are
available
with all
2 0-1 kg Quattro
robots.
3 1-2 kg
NOTE:
Payloads
greater
4 2-4 kg than 6 kg
with a
Quattro
650
5 4-6 kg robot, or
4 kg with
a Quattro
800
6 6-8 kg robot,
should be
used only
with the
7 8-10 kg P30
(fixed)
platform.
8 10-12 kg These
selections
are available
only with
9 12-15 kg the Quattro
650H/650H-
S robots.
1. The Quattro 650 robot device module (QPL) is not published, because this is an
Page 445
ROBOT.OPR program instruction
Robot exp1,
function_
Modul- exp2,...exp- Description
code
e n
Related Keyword
ROBOT.OPR real-valued function
Page 446
ROBOT.OPR real-valued function
Syntax
ROBOT.OPR (mode, index)
Function
Returns robot-specific data for the currently selected robot.
Parameters
mode, The values of these two parameters select what robot-specific data is
index returned.
Details
The following table shows the mode and index information for the supported robot modules.
For additional details about the applicability and use of this instruction, refer to the
documentation for your specific robot module. See the Adept Robot Device Modules menu to
access the documentation for the device module for your robot.
NOTE: Only device modules for non-Omron Adept robots are documented.
2 1, 2 Always 0
Page 447
ROBOT.OPR real-valued function
1 The Quattro 650 robot device module (QPL) is not published, because this is an
Omron Adept robot.
Related Keywords
ROBOT.OPR program instruction
Page 448
RUNSIG program instruction
Syntax
RUNSIG signal_num
Function
Turn on (or off) the specified digital signal as long as execution of the invoking program task
continues.
Usage Considerations
Only one RUNSIG signal can be in effect for each program task.
Parameter
Details
This instruction causes the specified digital signal to be turned on (or off) as soon as the
instruction is executed. The signal is turned off (or on) as soon as execution of the invoking
program task stops (or the STOP instruction is executed).
Only one signal can be activated by a RUNSIG instruction at any one time (for each program
task). An error condition results unless a program cancels the first RUNSIG before
attempting to initiate a second.
If program execution is interrupted after a RUNSIG instruction has been executed, the
specified signal returns to the selected state again if a PROCEED or RETRY command is
issued. If an SSTEP or XSTEP command is issued, the signal returns to the specified state
during execution of the instruction that is invoked. Similarly, processing of a DO command
temporarily activates the RUNSIG signal for the corresponding program task. (The EXECUTE
command and instruction cancel any previous RUNSIG for the specified program task.)
Page 449
RUNSIG program instruction
Example
Turn on the digital signal identified by the value of the variable run.signal (assuming the
value is positive):
RUNSIG run.signal
The signal remains on throughout execution of the current program. The signal goes off
when execution ends.
Related Keywords
IO monitor command
Page 450
RX, RY, RZ transformation functions
Syntax
RX (angle)
RY (angle)
RZ (angle)
Function
Return a transformation describing a rotation.
Parameter
Details
These functions generate a transformation whose value consists of a rotation about the axis
associated with the function name and a zero displacement
(X, Y, Z = 0).
Example
Produce a transformation that describes a pure 30-degree rotation about the World X axis:
RX(30)
Related Keyword
DX real-valued function
DY real-valued function
DZ real-valued function
Page 451
SCALE transformation function
Syntax
SCALE (transformation BY scale_factor)
Function
Return a transformation value equal to the transformation parameter with the position
scaled by the scale factor.
Parameters
Details
The value returned is equal to the value of the input transformation parameter value except
that the X, Y, and Z position components are multiplied by the scale factor parameter. The
rotation components have their values unchanged.
Example
If the transformation x has the value:
Related Keyword
SHIFT transformation function
Page 452
SCALE.ACCEL system switch
Syntax
... SCALE.ACCEL [robot_num]
Function
Enable or disable the scaling of acceleration and deceleration as a function of program speed,
as long as the program speed is below a preset threshold.
Parameter
Details
This switch is enabled when the eV+ system is initialized.
When this switch is enabled and the program speed is below the preset threshold value, the
effective acceleration and deceleration for that robot are calculated as follows:
For example, if program speed 50% is specified and the threshold value is 150, the effective
acceleration and deceleration are 50% of the current settings. If the program speed is higher
than 150% with the threshold set to 150, the current acceleration and deceleration are
used without modification.
All robot modules have the SCALE.ACCEL speed threshold set by default to a very large
value, effectively forcing the scaling of accelerations and deceleration for all speeds when this
switch is enabled.
Page 453
SCALE.ACCEL system switch
CAUTION: For program speeds over 100%, if the default setting for
the SCALE.ACCEL limit is used and SCALE.ACCEL is enabled, the
robot is driven at much higher rates of acceleration and
deceleration, as compared to V+ 11.0.
If the SCALE.ACCEL switch is disabled for a robot, accelerations and decelerations are not
scaled based on the program speed. In this case, accelerations and decelerations are higher
than normal at reduced speeds. This is particularly noticeable at very slow speeds. As a result,
robot motions may appear to be more rough or jerky.
Example
Turn off acceleration scaling for robot #2:
DISABLE SCALE.ACCEL[2]
Related Keywords
ACCEL program instruction
Page 454
SCALE.ACCEL.ROT system switch
Syntax
... SCALE.ACCEL.ROT [robot_num]
Function
Specify whether or not the SCALE.ACCEL switch takes into account the Cartesian rotational
speed during straight-line motions.
Parameter
Details
If SCALE.ACCEL.ROT is enabled for a selected robot, the lesser of the Cartesian linear and
rotational speeds is used to scale acceleration and deceleration during straight-line motions.
If SCALE.ACCEL.ROT is disabled for a selected robot, only the Cartesian linear speed is
considered when SCALE.ACCEL is in effect. The SCALE.ACCEL.ROT switch is enabled for all
robots by default when the eV+ system is initialized.
Example
Cause SCALE.ACCEL not to use Cartesian rotational speed for robot #2:
DISABLE SCALE.ACCEL.ROT[2]
Related Keywords
ACCEL program instruction
Page 455
SELECT program instruction
Syntax
SELECT device_type = unit
Function
Select a unit of the named device for access by the current task.
Usage Considerations
The SELECT instruction needs to be used only if there are multiple devices of the same type
connected to your system controller. This option is available only if your system is equipped
with the eV+ Extensions option.
The SELECT instruction affects only the task in which the instruction is executed.
The instruction SELECT ROBOT can be executed only if there is no robot attached to the
current task. (If there is any doubt about whether or not a robot is attached, a program
should execute a DETACH instruction before executing the SELECT instruction.)
Parameters
Details
SELECT ROBOT
In a multiple-robot system, this program instruction selects the robot with which the current
task is to communicate. (The SELECT monitor command specifies which robot the eV+
monitor is to access.) The program instruction specifies which robot receives motion
instructions (for example, APPROACH and MOVE) and returns robot-related information (for
example, for the HERE function).
Each time a program task begins execution, robot #1 is automatically selected. If a robot is
selected, information about the robot (for example, its current position) can be accessed. In
order for a program to move a robot, however, the robot must be selected and attached
(with the ATTACH instruction).
Page 456
SELECT program instruction
In order for any task to change its selected robot, no robot can be attached by the task. More
than one task can have a particular robot selected, but only one task can have a robot
attached. If a robot is already attached to a different task, an ATTACH waits or generates an
error (depending on the mode parameter for the ATTACH instruction).
SELECT VISION
In a system with multiple vision systems, this instruction selects the vision system with
which the current task is to communicate. (The SELECT monitor command specifies which
vision system the eV+ monitor is to access.) This program instruction specifies which vision
system receives vision instructions (for example, ENABLE VISION) and also which system
returns vision-related information (for example, from the VSTATUS function).
The vision system currently selected by the monitor is automatically selected when a
program begins execution.
SELECT FORCE
In a system with multiple force sensors, this monitor command or program instruction
selects the force sensor with which the current task is to communicate. The SELECT monitor
command specifies which force sensor the eV+ monitor is to access. The program instruction
specifies which force sensor receives force instructions (for example, FORCE.READ) and
returns force sensor-related information (for example, for the LATCH function).
Each time a program task begins execution, force sensor #1 is automatically selected.
Example
The following program selects robot #3 and moves it. This program is normally not executed
by task #0, since that task is attached to robot #1 by default.
.PROGRAM test()
SELECT ROBOT = 3 ;Select robot 3
ATTACH (0,1) ;Get control of robot 3 without waiting
IF IOSTAT(0) < 0 THEN
TYPE /B, "Error attaching robot: ", $ERROR(IOSTAT(0))
PAUSE
END
MOVE x ;Move robot 3 to location "x"
MOVE y ;Move robot 3 to location "y"
Page 457
SELECT program instruction
The following program segment selects vision system #2 and accesses that system.
.PROGRAM vision.2()
SELECT VISION = 2 ;Select vision system #2
ENABLE VISION ;Enable that vision system
VSTATUS(1,0) status[] ;Get status information
IF status[0] == 0 THEN ;If vision system is idle,
VPICTURE(1) ;take a picture
END
.END
The following program selects force sensor #2 and reads the current forces from it.
.PROGRAM test()
SELECT FORCE = 2 ;Select force sensor 2
FORCE.READ f[] ;Read sensor 2 forces
TYPE "Current forces on sensor", SELECT(FORCE), /S
TYPE "are ", /F0.1, f[0], /X1, f[1], /X1, f[2]
.END
Related Keywords
ATTACH program instruction
Page 458
SELECT real-valued function
Syntax
SELECT (device_type, mode)
Function
Return the unit number that is currently selected by the current task for the device named.
Parameters
Details
This function returns either the number of the specified device that is currently selected, or
the total number of devices connected to the system controller. Multiple devices of the same
type are supported only if your system includes the optional eV+ Extensions software.
If the eV+ system is not configured to control a robot, the selected robot is always #1, and
the total number of robots is zero.
Examples
Return the unit number of the robot selected for the current task:
our.robot = SELECT(ROBOT)
num.robots = SELECT(ROBOT,-1)
Related Keywords
SELECT monitor command
Page 459
SELECT real-valued function
Page 460
SET program instruction
Syntax
SET location_var = location_value
Function
Set the value of the location variable on the left equal to the location value on the right of the
equal sign.
Parameters
location_var Single location variable or compound transformation that ends with
a transformation variable.
location_value Location value of the same type as the location variable on the left
of the equal sign, defined by a variable or function (or compound
transformation).
Details
An error message is generated if the right-hand side is not defined or is not the same type of
location representation (that is, transformation or precision point).
If a compound transformation is specified to the left of the equal sign, only its right-most
relative transformation is defined. An error condition results if any other transformation in
the compound transformation is not already defined.
If a transformation variable is specified on the left-hand side, the right-hand side can contain
a transformation, a compound transformation, or a transformation function.
Examples
Set the value of the transformation pick equal to the location of corner plus the location of
shift relative to corner:
Set the value of the precision point #place equal to that of the precision point #post:
Set the value of the transformation part to the current robot location, relative to the
transformation pallet.
Page 461
SET program instruction
Related Keywords
HERE monitor command
Page 462
SET.EVENT program instruction
Syntax
SET.EVENT task, flag
Function
Set an event associated with the specified task.
Parameters
NOTE: All 28 tasks are available only in systems equipped with the
optional eV+ Extension.
Details
This instruction sets the event associated with the specified task. For example, if a task had
been suspended by a WAIT.EVENT 1 instruction, executing the SET.EVENT instruction for
that task causes it to resume execution (during the next available time slice for which it is
eligible).
Related Keywords
CLEAR.EVENT program instruction
Page 463
#SET.POINT precision point function
Syntax
#SET.POINT
Function
Return the commanded joint-angle positions computed by the trajectory generator during
the last trajectory-evaluation cycle.
Usage Considerations
The name "set.point" cannot be used as a program or variable name.
Details
For each trajectory-evaluation cycle, joint-angle positions are computed, converted to
encoder counts, and sent to the servos as the commanded motor positions. You can use this
function to capture these positions.
Page 464
SETBELT program instruction
Syntax
SETBELT %belt_var = expression
Function
Set the encoder offset of the specified belt variable equal to the value of the expression.
Usage Considerations
This option is available only if your system is equipped with the eV+ Extensions option.
The SETBELT instruction is generally used in conjunction with the BELT real-valued function
to set the effective belt position to zero. (See Details section and WARNING below.)
SETBELT cannot be executed while the robot is moving relative to the specified belt variable.
The belt variable referenced must have been defined already using a DEFBELT instruction.
Parameters
%belt_var Name of belt variable associated with the encoder offset to be set.
Details
When computing the position of a belt associated with a belt variable, eV+ subtracts the
offset value from the current belt position value and uses the difference, modulo
16,777,216.
The expression value is normally a signed number in the range -8,388,608 to 8,388,607. If
the number is outside this range, its value modulo 16,777,216 is used.
The SETBELT instruction is generally used in conjunction with the BELT real-valued function
to set the effective belt position to zero. This must be done each time the robot will perform a
sequence of motions relative to the belt, and must be done shortly before the first motion of
such a sequence.
Page 465
SETBELT program instruction
during active belt tracking. Unpredictable robot motion may result if the
difference does exceed this value while tracking the belt.
The SETBELT instruction can be used to synchronize robot motion with the encoder value
latched by an external signal or by the AdeptVision system. See the LATCHED real-valued
function and the DEVICE real-valued function for more information.
Example
The following example waits for a digital signal and then sets the belt position to zero. That is
done by setting the belt offset equal to the current belt position. Finally, the robot is moved
onto the belt.
WAIT sig(1001)
SETBELT %belt1 = BELT(%belt1)
MOVES %belt1:pickup
Related Keywords
BELT real-valued function
Page 466
SETDEVICE program instruction
Syntax
SETDEVICE (type, unit, error, command) p1, p2, ...
Function
Initialize a device or set device parameters. (The actual operation performed depends on the
device referenced.)
Usage Considerations
The syntax contains optional parameters that apply only to specific device types and
commands.
Parameters
0 = Belt encoder
1 = (Not used)
2 = Force Processor Board (for Omron Adept use only)
3 = Robot device (i.e., servo, for Omron Adept use only)
4 = Vision
5 = 1394 bus (for Omron Adept use only)
unit Real value, variable, or expression (interpreted as an integer) that
indicates the device unit number. The value must be in the range 0
to (max -1), where max is the maximum number of devices of the
specified type. The value should be 0 if there is only one device of the
given type.
error Optional real variable that receives a standard system error number
that indicates if this instruction succeeded or failed. If this parameter
is omitted, any device error stops program execution. If an error
variable is specified, the program must explicitly check it to detect
errors.
command Real value, variable, or expression that specifies which device
command or parameters are being set by this instruction. Some
commands are standard and recognized by all devices. Other
commands apply only to particular device types.
p1, p2, ... Optional real values, variables, or expressions, the values of which
are sent to the device as data for a command. The number of
parameters specified and their meanings depend upon the particular
Page 467
SETDEVICE program instruction
Details
SETDEVICE is a general-purpose instruction for initializing external devices. It initializes the
software and allows various parameters associated with the device to be set.
See the supplementary documentation for specific devices for details and examples.
For information on using the SETDEVICE instruction to access external encoders, see the
section External Encoder Device in the
eV+ Language User's Guide.
Related Keywords
DEVICE program instruction
Page 468
SHIFT transformation function
Syntax
SHIFT (transformation BY x_shift, y_shift, z_shift)
Function
Return a transformation value resulting from shifting the position of the transformation
parameter by the given shift amounts.
Parameters
z_shift
Details
The value returned is equal to the value of the input transformation parameter value except
that the three shift parameter values are added to the X, Y, and Z position components. If
any shift parameter is omitted, its value is assumed to be zero.
Example
If the transformation x has the value:
Related Keywords
SCALE transformation function
Page 469
SIG real-valued function
Syntax
SIG (signal_num, ..., signal_num)
Function
Returns the logical AND of the states of the indicated digital signals.
Parameter
Details
Returns a TRUE (-1) or FALSE (0) value obtained by performing a logical AND of the states of
all the indicated digital signals. That is, SIG will return TRUE if all the specified signal states
are TRUE. Otherwise, SIG will return FALSE.
The magnitude of each signal_num parameter determines which digital or internal signal is
to be considered. Signals 1 - 8 and 33 - 512 are digital outputs. Signals 1001 - 1012 and
1033 - 1512 are digital inputs. Signals 2001 to 2512 are internal (software) inputs or
outputs. Only digital signals that are actually installed can be used. You can use the IO
monitor command (or the SIG.INS function) to check your current digital I/O configuration.
Signals 3001 and 3002 refer to the robot selected by the current task. Signal 3001 is the
state of the hand-close solenoid. Signal 3002 is the state of the hand-open solenoid.
If the sign of a signal_num parameter is positive, the signal is interpreted as being TRUE if
it has a high value. If the sign of a signal_num parameter is negative, the signal is
interpreted as being TRUE if it has a low value.
Example
Assume that the following digital I/O signals are installed and have the indicated values.
Page 470
SIG real-valued function
Related Keywords
BITS monitor command
IO monitor command
Page 471
SIG.INS real-valued function
Syntax
SIG.INS (signal_num)
Function
Return an indication of whether a digital I/O signal is installed in the system, or whether a
software signal is available in the system.
Parameter
signal_num Real-valued expression that defines the number of the digital I/O or
software signal to check. (The absolute value is used, so negative
signal numbers are allowed.)
Details
This function returns TRUE (-1) if the specified digital I/O or software signal is available for
use by the system. Otherwise, FALSE (0.0) is returned. The function always returns TRUE if
signal_number is zero.
This function can be used to make sure the digital I/O signals are installed as expected by the
application program.
Example
The following program segment checks whether digital I/O signal #12 is installed as an input
signal (referenced as signal #1012). A message is displayed on the system terminal if the
signal is not configured correctly:
in.sig = 1012
IF NOT SIG.INS(in.sig) THEN
TYPE "Digital I/O signal ", in.sig, "is not installed"
END
Related Keywords
BITS monitor command
IO monitor command
Page 472
SIG.INS real-valued function
Page 473
SIGN real-valued function
Syntax
SIGN (value)
Function
Return the value 1, with the sign of the value parameter.
Parameter
Details
This function returns -1.0 if the value of the parameter is less than zero. If the parameter
value is greater than or equal to zero, +1.0 is returned.
Example
SIGN(0) ;Returns 1.0
SIGN(0.123) ;Returns 1.0
SIGN(-5.462) ;Returns -1.0
SIGN(1.3125E+2) ;Returns 1.0
Page 474
SIGNAL program instruction
Syntax
SIGNAL signal_num, ..., signal_num
Function
Turn on or off external digital output signals or internal software signals.
Parameter
Details
The magnitude of a signal_num parameter determines which digital or internal signal is to
be considered. Only digital output signals (numbered from 1 to 8 and 33 to 512) and internal
(software) signals (numbered from 2001 to 2512) can be specified. Only digital signals that
are actually installed and configured as outputs can be used. To check your current digital I/O
configuration, use the IO monitor command. Signals 3001 and 3002 refer to the robot
selected by the current task. Signal 3001 is the state of the hand-close solenoid. Signal 3002
is the state of the hand-open solenoid.
If the sign of the signal_num parameter is positive, the signal is turned on. If the sign of
the signal_num parameter is negative, the signal is turned off.
NOTE: All eV+ digital output instructions do not wait for a 16 millisecond eV+ cycle, they
are turned on immediately. However, digital inputs are checked every 16 milliseconds by
the eV+ operating system. Allowing the possibility to turn on and off a signal before the
system can read the output.
Examples
Turn off the external output signal specified by the value of the variable reset (assuming the
value of reset is positive), and turn on external output signal #4:
SIGNAL -reset, 4
Turn external output signal #1 off, external output signal #4 on, and internal software
signal #2010 on:
Page 475
SIGNAL program instruction
Related Keywords
BITS monitor command
IO monitor command
Page 476
SIN real-valued function
Syntax
SIN (value)
Function
Return the trigonometric sine of a given angle.
Usage Considerations
The angle parameter must be measured in degrees.
The parameter is interpreted as modulo 360 degrees, but excessively large values may cause
a loss of accuracy in the returned value.
Parameter
Details
Returns the trigonometric sine of the argument, which is assumed to have units of degrees.
The resulting value is always in the range of -1.0 to +1.0, inclusive.
Examples
SIN(0.123) ;Returns 2.146753E-03
SIN(-5.462) ;Returns -0.09518556
SIN(30) ;Returns .5
NOTE: TYPE, PROMPT, and similar instructions output the results of the above examples
as single-precision values. However, they are actually stored and manipulated as double-
precision values. The LISTR monitor command displays real values to full precision.
Page 477
SINGLE program instruction
Syntax
SINGLE ALWAYS
Function
Limit rotations of the robot wrist joint to the range -180 degrees to +180 degrees.
Usage Considerations
Only the next robot motion is affected if the ALWAYS parameter is not specified.
MULTIPLE ALWAYS is assumed whenever program execution is initiated and when a new
execution cycle begins.
The SINGLE instruction can be executed by any program task as long as the robot selected
by the task is not attached by any other task. The instruction applies to the robot selected by
the task.
If the eV+ system is not configured to control a robot, executing the SINGLE instruction
causes an error.
Parameter
ALWAYS Optional qualifier that establishes SINGLE as the default condition. That
is, if ALWAYS is specified, SINGLE remains in effect continuously until
disabled by a MULTIPLE instruction. If ALWAYS is not specified, the
SINGLE instruction applies only to the next robot motion.
Details
When moving to a transformation-specified location, the robot normally moves the wrist
joint the minimum distance necessary to achieve the required orientation. In some cases,
this action can move the wrist close to a limit stop so that a subsequent straight-line motion
hits the stop.
Specifying SINGLE causes subsequent motion(s) to force the wrist back to near the center of
its range, so that straight-line motions will not fail in this way.
SINGLE is commonly specified during an APPRO to pick up an object whose position and
orientation were unknown at robot programming time. Once the object is acquired, the wrist
motion can be kept to a minimum.
Related Keywords
CONFIG real-valued function
Page 478
SINGLE program instruction
Page 479
SOLVE.ANGLES program instruction
Syntax
SOLVE.ANGLES o.jts[o.idx], o.flags, error = trans, i.jts[i.idx],i.flags
Function
Compute the robot joint positions (for the current robot) that are equivalent to a specified
transformation.
Usage Considerations
Since the computation performed by this instruction is a function of the geometry of the
robot (link dimensions, number of axes, tool offsets, base offsets), robots with different
geometric parameters yields different results. In fact, since robots of the same general type
may differ slightly in their dimensions, this instruction may return slightly different results
when executed on two different robot systems of the same type.
The SOLVE.ANGLES instruction returns information for the robot selected by the task
executing the instruction.
If the eV+ system is not configured to control a robot, executing this instruction does not
generate an error because of the absence of a robot. However, the information returned may
not be meaningful.
Parameters
o.jts Real-valued array in which the computed joint angles are returned. The
first specified element of the array contains the position for joint #1,
the second element contains the value for joint #2, etc. For rotating
joints, the joint positions are in degrees. For translational joints, the
joint positions are in millimeters.
If a computed joint position is outside the working range for the joint,
the limit stop closest to the initial joint position (as indicated by i.jts[ ])
is returned.
o.flags Real variable that receives a bit-flag value that indicates the
configuration of the robot corresponding to the computed joint
positions. The bit flags are interpreted as follows:
Page 480
SOLVE.ANGLES program instruction
Bit 1 (LSB) RIGHTY If this bit is set, the position has the
(mask value = 1) robot in a right-arm configuration.
Otherwise, the position has the
robot in a left-arm configuration.
error Real variable that receives a bit-flag value that indicates whether any
joint positions were computed to be outside of their working range, or
whether the XYZ position of the destination was outside the working
envelope of the robot. The bit flags are interpreted as follows:
1 1 ^H1
2 2 ^H2
Page 481
SOLVE.ANGLES program instruction
3 3 ^H4
4 4 ^H8
5 5 ^H10
6 6 ^H20
7 7 ^H40
8 8 ^H80
9 9 ^H100
10 10 ^H200
11 11 ^H400
12 12 ^H800
i.jts Real array that contains the joint positions representing the starting
Page 482
SOLVE.ANGLES program instruction
location for the robot. These values are referenced: (1) for multiple-turn
joints to minimize joint rotations, and (2) when a computed joint
position is out of range to determine which limit stop to return.
The first specified element of the array must contain the position for
joint #1. The second element must contain the value for joint #2, etc.
For rotating joints, the joint positions are assumed to be in degrees. For
translational joints, the joint positions are assumed to be in millimeters.
i.flags Real value, variable, or expression whose value is interpreted as bit flags
that indicate: (1) the initial configuration of the robot, (2) any changes
in configuration that are to be made, and (3) special operating modes.
The bit flags are interpreted as follows:
Page 483
SOLVE.ANGLES program instruction
Bit 10: Change to When bit 9 is set and this bit is set,
RIGHTY (mask value = the instruction attempts to compute
^H200) joint positions for a right-arm
configuration. If bit 9 is set and this
bit is 0, the instruction attempts to
compute a set of joint positions for a
left-arm configuration.
Bit 12: Change to When bit 11 is set and this bit is set,
BELOW (mask value = the instruction attempts to compute
^H800) joint positions for an elbow-down
configuration. If bit 11 is set and this
bit is 0, the instruction attempts to
compute joint positions for an
elbow-up configuration. This bit is
ignored for robots, like the SCARA
configurations, that do not have an
elbow that moves in a vertical plane.
Page 484
SOLVE.ANGLES program instruction
wrist.
Bit 14: Change to FLIP When bit 13 is set and this bit is set,
(mask value = ^H2000) the instruction attempts to compute
joint positions for a FLIP wrist
configuration. If bit 13 is set and this
bit is 0, the instruction attempts to
compute joint positions for a NOFLIP
wrist configuration. This bit is
ignored if the robot does not have a
three-axis wrist.
Bit 21: Avoid degeneracy When this bit is set, if the computed
(mask value = value of joint #2 is within 10
^H100000) degrees of having the outer link
straight out (that is, joint 2 between
-10 and +10 degrees in value), an
out-of-range error for joint 2 is
signaled.
Bit 22: Single-turn joint When this bit is set, the computed
4 (mask value = value of joint 4 is restricted to the
^H200000) range of -180 to +180 degrees.
Details
This instruction computes the joint positions that are equivalent to a specified transformation
value using the geometric data of the robot connected to the system. The specified
transformation is interpreted to be the position and location of the end of the robot tool in the
World coordinate system, taking into consideration the current TOOL transformation and
BASE offsets.
Page 485
SOLVE.ANGLES program instruction
Example
The instructions below do not perform any useful function but are intended to illustrate how
the SOLVE.ANGLES instruction operates. After execution of these instructions, both the jts2
and jts arrays contain approximately the same values. Any differences in the values are due
to computational round-off errors:
HERE #cpos
DECOMPOSE jts[] = #cpos
SOLVE.TRANS new.t, error = jts[]
SOLVE.ANGLES jts2[], flags, error = new.t, jts[], SOLVE.FLAGS(jts
[])
Related Keywords
DECOMPOSE program instruction
Page 486
SOLVE.FLAGS real-valued function
Syntax
SOLVE.FLAGS (joints[index])
Function
Return bit flags representing the robot configuration specified by an array of joint positions.
Usage Considerations
The SOLVE.FLAGS function returns information for the robot selected by the task executing
the function.
If the eV+ system is not configured to control a robot, use of the SOLVE.FLAGS function
causes an error.
Parameters
joints Real array that contains the robot joint positions. The first specified
element of the array must contain the position for joint #1, the second
element must contain the value for joint #2, etc. For rotating joints,
the joint positions are assumed to have units of degrees. For
translational joints, the joint positions are assumed to have units of
millimeters.
Details
This function returns bit flags that indicate the configuration of the robot (for example,
RIGHTY or LEFTY) for a given set of joint positions. This function is useful for providing the
configuration data required by the SOLVE.ANGLES program instruction.
The bits of the value returned by this function are interpreted as follows:
If this bit is set, the position has the robot in a right-arm configuration. Otherwise, the
position is for a left-arm configuration.
Page 487
SOLVE.FLAGS real-valued function
If this bit is set, the position has the robot configured with the elbow below the line from the
shoulder to the wrist. Otherwise, the robot elbow is above the shoulder-wrist line. (This bit is
always 0 when a SCARA robot is in use.)
If this bit is set, the position has the robot configured with the pitch axis of the wrist set to a
negative angle. Otherwise, the wrist pitch angle has a positive value. (This bit is always 0
when the robot does not have a three-axis wrist, as is the case for a four-axis SCARA robot.)
Related Keywords
ABOVE program instruction
Page 488
SOLVE.TRANS program instruction
Syntax
SOLVE.TRANS transform, error = joints[index]
Function
Compute the transformation equivalent to a given set of joint positions for the current robot.
Usage Considerations
Since the computation performed by this instruction is a function of the geometry of the
robot (link dimensions, number of axes, tool offsets, base offsets), robots with different
geometric parameters yield different results. In fact, since robots of the same general type
may differ slightly in their dimensions, this instruction may return slightly different results
when executed on two different robot systems of the same type.
The SOLVE.TRANS instruction refers to the robot selected by the task executing the
instruction.
If the eV+ system is not configured to control a robot, executing the SOLVE.TRANS
instruction does not generate an error because of the absence of a robot. However, the
information returned may not be meaningful.
Parameters
transform Transformation variable or transformation array element in which the
result is stored.
error Real variable that is set to a eV+ error code if a computational error
occurred during processing of the instruction. This variable is set to 0 if no
error occurs. (The only error that is currently reported is arithmetic
overflow [-409], so this parameter can be considered as returning a TRUE
or FALSE value.)
joints Real-valued array that contains the joint positions that are to be
converted to an equivalent transformation. The first specified element of
the array must contain the position for joint #1, the second element
must contain the value for joint #2, etc. For rotating joints, the joint
positions are assumed to have units of degrees. For translational joints,
the joint positions are assumed to have units of millimeters.
index Optional integer value that identifies the array element that contains the
position for joint #1. If no index is specified, element zero must contain
the position for joint #1.
Page 489
SOLVE.TRANS program instruction
Details
This instruction converts a set of joint positions to an equivalent transformation value using
the geometric data of the robot connected to the system. The computed transformation
represents the position and orientation of the end of the tool in the World coordinate system
taking into consideration the current TOOL transformation and BASE offsets.
Example
The series of instructions below computes the position and orientation to which the robot is
moved if its current location is altered by rotating joint #1 by 10 degrees:
HERE #cpos
DECOMPOSE joints[1] = #cpos
joints[1] = joints[1]+10
SOLVE.TRANS new.trans, error = joints[1]
Related Keywords
DECOMPOSE program instruction
Page 490
SPEED program instruction
Syntax
SPEED speed_factor, r_speed_factor units ALWAYS
Function
Set the nominal speed for subsequent robot motions.
Usage Considerations
SPEED 100,100 ALWAYS is assumed whenever program execution is started and when a
new execution cycle begins.
Motion speed has different meanings for joint-interpolated motions and straight-line
motions.
The speed of robot motions is determined by a combination of the program speed setting and
the monitor speed setting.
The SPEED instruction can be executed by any program task as long as the robot selected by
the task is not attached by any other task. The instruction applies to the robot selected by
the task.
If the eV+ system is not configured to control a robot, executing the SPEED instruction
causes an error.
Parameters
speed_factor Real value, variable, or expression whose value is used as a new
speed factor. The value 100 is considered normal full speed, 50 is 1/2
of full speed, and so on. If IPS or MMPS is specified for units, the value
is considered the linear tool tip speed.
r_speed_factor Optional real value, variable, or expression whose value is used as a
new straight-line motion rotational speed factor. The value 100 is
considered normal full speed, 50 is 1/2 of full speed, etc.
units Optional keyword—either IPS (for inches per second), MMPS (for
millimeters per second), or MONITOR—that determines how to
interpret the speed_factor parameter.
ALWAYS Optional qualifier. If specified, the program speed_factor will be in
effect until the next SPEED instruction changes program speed.
Otherwise, it is in effect only for the next motion instruction
(including APPROaches and DEPARTs).
Page 491
SPEED program instruction
Details
If the units parameter is omitted, this instruction determines the program speed—the
nominal robot motion speed, assuming that the monitor speed factor is 100%.
If MONITOR is specified for units, the monitor speed is set. In this case, the parameter r_
speed_factor is ignored and ALWAYS is assumed. The speed at which motions are actually
performed is determined by combining the values specified in this instruction with the
current program speed setting. Monitor speed changes take place immediately, including the
remaining portion of a currently executing move.
The effects of changing program speed and monitor speed differ slightly for continuous-path
motions. As the robot moves through a series of points, the robot comes as close to the points
as possible while maintaining the program speed and specified accelerations. As program
speed increases, the robot makes coarser approximations to the actual point in order to
maintain the program speed and accelerations.
When the monitor speed is increased, the path of the robot relative to the commanded
destination points is not altered but the accelerations are increased. For applications where
path following is important, the path can be defined with the monitor speed set to a low
value, and then accurately replayed at a higher monitor speed.
When the Monitor speed is set, its value is limited to a maximum of 100%. No error is
reported if a higher speed setting is specified.
When the program speed is set, its value is limited to a maximum that depends on the robot
being controlled. No error is reported if a higher speed setting is specified. The maximum
speed value for the current robot is returned by the real-valued function SPEED(8).
During straight-line motions, if a tool with a large offset is attached to the robot, the robot
joint and flange speeds can be very large when rotations about the tool tip are made. The r_
speed_factor parameter permits control of the maximum tool rotation speeds during
straight-line motions.
1. If the units parameter is also omitted, the rotational speed is set to the value of
speed_factor.
When IPS or MMPS are specified, the speed_factor is converted internally to the
corresponding nominal speed. If the SPEED real-valued function is then used to read the
Page 492
SPEED program instruction
program speed, the value returned is a percentage speed factor and not an absolute speed
setting.
Remember, the final robot speed is a combination of the monitor speed (SPEED monitor
command), the program speed (SPEED instruction), and the acceleration or deceleration
(ACCEL program instruction).
Examples
Set the program speed to 50% for the next motion (assuming the monitor speed
is 100):
SPEED 50
Set the nominal tool tip speed to 20 inches per second (assuming the monitor speed is 100)
for straight-line motions. Rotations about the tool tip is limited to 40% of maximum. The
settings remains in effect until changed by another SPEED instruction.
SPEED 50 MONITOR
Related Keywords
ACCEL program instruction
IPS keyword
MMPS keyword
Page 493
SPEED real-valued function
Syntax
SPEED (select)
Function
Return one of the system motion speed factors.
Usage Considerations
The SPEED function returns information for the robot selected by the task executing the
function.
If the eV+ system is not configured to control a robot, use of the SPEED function does not
generate an error because of the absence of a robot. However, the information returned by
the function may not be meaningful.
Parameter
Details
This function returns the system motion speed factor corresponding to the select parameter
value. The acceptable parameter values, and the corresponding speed values returned, are:
Page 494
SPEED real-valued function
Note that the value returned should be interpreted as a percentage of normal speed, even if
the program speed was set by a SPEED program instruction that specified a speed setting.
(See the SPEED program instruction.)
Example
The following program segment makes one motion at 1/2 of the permanent program speed:
Related Keywords
ACCEL real-valued function
Page 495
SQR real-valued function
Syntax
SQR (value)
Function
Return the square of the parameter.
Parameter
Details
This is a convenience function that computes the square of a value. That is, the result is
equal to (value * value).
Examples
SQR(0.123) ;Returns 0.015129
SQR(4) ;Returns 16
SQR(-5.462) ;Returns 29.83344
SQR(1.3125E+2) ;Returns 17226.56
NOTE: TYPE, PROMPT, and similar instructions output the results of the above examples
as single-precision values. However, they are actually stored and manipulated as double-
precision values. The LISTR monitor command displays real values to full precision.
Page 496
SQRT real-valued function
Syntax
SQRT (value)
Function
Return the square root of the parameter.
Parameter
Details
Returns the square root of the argument if the argument is greater than zero. An error
results if the argument is less than zero.
The square root of a number is defined to be the number that, when multiplied by itself,
yields the original number.
Examples
SQRT(0.123) ;Returns 0.3507136
SQRT(4) ;Returns 2.0
SQRT(-5.462) ;Returns *Negative square root*
SQRT(1.3125E+2) ;Returns 11.45644
NOTE: TYPE, PROMPT, and similar instructions output the results of the above examples
as single-precision values. However, they are actually stored and manipulated as double-
precision values. The LIST and LISTR monitor command displays real values to full
precision.
Page 497
STATE real-valued function
Syntax
STATE (select)
Function
Return a value that provides information about the robot system state.
Usage Considerations
The STATE function returns information for the robot selected by the task executing the
function.
Parameter
System Settings
Page 498
STATE real-valued function
Details
When select = 1, the function value returns information about the overall robot state as
follows:
1 A fatal error has occurred and robot power cannot be turned on.
6 Not used.
11 Front panel power light is blinking rapidly (4 Hz). Robot power will be
turned on when: the COMP/PWR button on the pendant is pressed.
NOTE: Pressing the front panel power light when it is blinking rapidly will
cause robot power to be turned off fully. The normal process will be
required to turn power back on.
Page 499
STATE real-valued function
When select = 2, the function value returns information about the current or previous
robot motion as follows. These modes can change only when the robot is under program
control-that is, when STATE(1) = 7.
motion.
When select = 3, the function value returns information about the current manual control
mode as follows (see JOG program instruction for more information):
Page 500
STATE real-valued function
1 Free-joint mode.
6 Unused
7 JogTo mode
8 Align mode
9 Frame mode
hardware status to be read by programs. Interpret the value as a set of bit flags, each of
which indicates a corresponding condition.
Page 501
STATE real-valued function
1
If eV+ is detecting a hardware ESTOP condition Bit 4 is non-zero. 2The HIGH
POWER button will not function if its light bulb is burned out or missing.
When select = 5, the function value indicates the settings of the switch on the Front Panel.
For more information, refer to the Adept SmartController User's Guide.
1 Automatic mode.
2 Manual mode.
When select = 6, the function returns an indication of whether or not the real-time path-
modification facility (alter mode) is enabled. If zero is returned, alter mode is disabled for the
Page 502
STATE real-valued function
current motion. If a nonzero value is returned, alter is enabled, and the low byte of this value
contains bits that correspond to the mode specified in the ALTON instruction that initiated the
path modification.
When select = 7, the function returns an indication of whether or not the real-time path-
modification facility (alter mode) is enabled for the next planned motion. If zero is returned,
alter mode is disabled for the next motion. If a nonzero value is returned, alter is enabled, and
the low byte of this value contains bits that correspond to the mode specified in the ALTON
instruction that initiated the path modification. (This option is available only if your system is
equipped with the eV+ Advanced Trajectory Control License.)
When select = 8, the number of the robot selected by the manual control pendant is
returned.
When select = 9, the function returns the time (in seconds) left until completion of the
current motion. Zero indicates that no motion is in progress. For continuous-path motions,
the value of STATE(9) decreases during each motion until the transition to the next motion,
and then the value suddenly changes to the time left in the next motion. That is, STATE(9)
does not reach 0 before it is reset to reflect the next motion.
When select = 10, the function returns the percentage of the current motion that has
completed. The value 100 indicates that no motion is in progress. For continuous-path
motions, the value of STATE(10) increases during each motion until the transition to the
next motion, and then the value suddenly changes to close to 0 to reflect the start of the
next motion. That is, STATE(10) does not reach 100 before it is reset to reflect the next
motion.
When select = 11, the function returns detailed information on which portion of the
acceleration profile is currently being generated for the selected robot.
Page 503
STATE real-valued function
motions
8 Ramping up deceleration
9 Constant deceleration
When select = 12, the function returns a flag that is set to nonzero when an ALTER
program instruction is executed for the currently selected robot, and cleared after the
trajectory generator processes the posted ALTER data. This flag can be used to coordinate
the execution of ALTER instructions with the processing of the data by the trajectory
generator.
When select = 13, the function returns the trajectory generator execution rate in Hertz.
That is, if the trajectory generator is executed every 16ms, this function returns the value
62.5.
When select = 15, the function returns the number of the motion that is being executed by
the selected robot. This number is zeroed when a program that is attached to the robot first
begins executing. The counter is reset to 1 at the start of each EXECUTE cycle. The value is
incremented each time the trajectory generator begins evaluating a new motion (or
transitions to a new continuous-path motion). The value of STATE(15) ranges from 0 to
^HFFFF. After reaching ^HFFFF, the value rolls back to 0.
Instructions that affect one or more subsequent motions (e.g., ACCEL, AMOVE, ABOVE,
BELOW, DURATION, FLIP, LEFTY, NOFLIP, MULTIPLE, RIGHTY, SINGLE, SPEED, SPIN, TOOL,
UNIDIRECT, ...) do not affect the value of STATE(15), because those instructions do not
actually initiate a motion.
NOTE: Functions do not affect the value of STATE(15), because a function does not
cause a motion. Location-valued functions (e.g., DEST, FRAME, INVERSE, SCALE, SHIFT,
TRANS, etc.) simply compute location values.
When select = 19, the function returns a flag that indicates if the current motion (or the
previously executed motion if the robot is stopped) is an optimized move (i.e., MOVEF or
MOVESF). The possible values returned by this function are:
Page 504
STATE real-valued function
When select is 20 through 27, the function returns detailed information on the planned
execution time of the current motion (or the previously executed motion if the robot is
stopped). Note, unlike STATE(9) that returns the remaining motion execution time corrected
for the monitor speed setting, the values returned by STATE(20) through STATE(27) are the
planned values and are not affected by the setting of the monitor speed value. The values
returned by these functions (in units of seconds) are:
When select = 30, the function returns the state of the Front Panel power light. The possible
values returned by this function are:
0 Light is off.
Page 505
STATE real-valued function
1 Light is on.
When select = 40, the function returns a flag that is set to nonzero when the currently
selected robot is tracking a belt.
Example
The following example shows how the STATE function can be used to determine whether or
not a REACTI was triggered during a robot motion:
REACTI 1001 ;Setup the reaction
MOVES final ;Start the robot motion
BREAK ;Wait for the motion to complete
CASE STATE(2) OF ;Decide what happened
VALUE 2:
TYPE "Motion completed normally"
VALUE 6:
TYPE "Motion stopped by REACTI"
VALUE 8:
TYPE "Motion stopped by panic button"
END
Related Keywords
SELECT program instruction
Page 506
STATUS real-valued function
Syntax
STATUS (program_name)
Function
Return status information for an application program.
Usage Considerations
The use of STATUS with a null program name to determine the task number is obsolete. The
TASK real-valued function is more efficient and should be used instead.
Parameter
Details
This function returns information about the execution status of the specified program.
If no program name is specified (that is, the parameter string is empty [ ]), the task number
of the program containing the function call is returned. This allows a program to determine
which system task it is executing as. (Tasks and task numbers are described in the section
Scheduling of Program Execution Tasks in the eV+ Language User's Guide.)
If a program name is specified as the function parameter, the status of that program is
returned as follows:
Value
Program status
returned
-1 Not executing.
-2 Not defined.
-3 Interlocked because of
write.
Page 507
STATUS real-valued function
Value
Program status
returned
-4 Not executable.
-5 Interlocked because of
read.
A program is considered not executable when it contains a structure error or a bad line.
NOTE: If a program is being executed by multiple tasks, the STATUS function returns -5.
There is no way to use the STATUS function to determine when the program ceases to be
executed by one of those tasks. The STATUS function does not return -1 until all the tasks
stop executing the program.
The function returns a not defined status if an invalid program name is specified (for example,
if the name does not start with a letter).
Example
The following program segment demonstrates how the STATUS function can be used to
decide whether or not to initiate execution of an application program:
IF STATUS("pc.main") == -1 THEN
EXECUTE 1 pc.main
END
NOTE: The STATUS function does not return -1 if the program is being executed by any
program task. Thus, this example may not be appropriate for some situations. (See the
example shown for the EXECUTE instruction for another technique for initiating execution
of another program task.)
Related Keywords
DEFINED real-valued function
Page 508
STOP program instruction
Syntax
STOP
Function
Terminate execution of the current program cycle.
Usage Considerations
STOP does not halt program execution if there are more program cycles to execute.
The PROCEED command cannot be used to resume program execution after a STOP
instruction causes the program to halt.
If program execution is halted by a STOP instruction, FCLOSE and/or DETACH are forced on
all attached I/O devices.
Details
Counts one more program cycle as complete and one less remaining. If the result is that no
more cycles are remaining, program execution halts.
If more cycles are remaining, the internal robot motion parameters are reinitialized, and
program execution continues with the first step of the main program (even if the STOP
occurred within a subroutine or reaction program).
Terminates execution of the current program unless more program loops (see the EXECUTE
command and instruction) are to be completed, in which case execution of the program
continues at its first step. Thus, the STOP instruction is used to mark the end of a program
execution pass. Note that the HALT instruction has a different effect-it cancels all remaining
cycles.
A RETURN instruction in a main program has the same effect as a STOP instruction. A main
program is one that is invoked by an EXECUTE command or instruction, or a PRIME or XSTEP
command, whereas a subroutine is a program that is invoked by a CALL, CALLP, or CALLS
instruction (or a reaction) within another program.
Related Keywords
ABORT monitor command
Page 509
STOP program instruction
Page 510
STRDIF real-valued function
Syntax
STRDIF ($a, $b)
Function
Compare two strings byte by byte for the purpose of sorting. This function always compares
bytes exactly. It ignores the setting of the UPPER system switch.
Parameters
Details
This function compares strings byte by byte, using the unsigned byte values without any
case conversion. That is, the function ignores the setting of the UPPER system switch. The
two strings can have different lengths. The returned values and their meanings are as
follows:
Returned
Interpretation
value
Note that the value is FALSE (0) if the strings are the same.
Example
Sort two names in alphabetical order:
$name[0] = "Michael"
$name[1] = "MARK"
CASE STRDIF($name[0],$name[1]) OF
VALUE -1, 0:
Page 511
STRDIF real-valued function
$list[0] = $name[0]
$list[1] = $name[1]
VALUE 1:
$list[0] = $name[1]
$list[1] = $name[0]
END
TYPE "Names in alphabetic order: ", $list[0], " ", $list[1]
Related Keyword
UPPER system switch
Page 512
SWITCH program instruction
Syntax
SWITCH switch_name = value
Function
Enable or disable a system switch based on a value.
Usage Considerations
If the specified switch accepts an index qualifier and the index is zero or omitted (with or
without the brackets), all the elements of the switch array are set according to the value
given.
Parameters
Details
Sets the given system switch to the setting implied by the value on the right of the equal
sign.
The switch name can be abbreviated to the minimum length that identifies it uniquely.
For details on switch names, see the section Switches in the eV+ Language User's Guide.
Other system switches are available when options are installed. Refer to the option
documentation for details. For example, the switches associated with the AdeptVision
options are described in the AdeptVision Reference Guide.
Page 513
SWITCH program instruction
Example
The following program statements show how the SWITCH real-valued function and
instruction can be used to save the setting of a system switch, and later restore it,
respectively:
Related Keywords
DISABLE monitor command
Page 514
SWITCH real-valued function
Syntax
SWITCH (switch_name)
SWITCH (switch_name[index])
Function
Return an indication of the setting of a system switch.
Parameters
Details
This function returns FALSE (0.0) if the specified switch is disabled. Otherwise, TRUE (-1) is
returned.
The switch name can be abbreviated to the minimum length that identifies it uniquely.
For details on switch names, see the section Switches in the eV+ Language User's Guide.
Other system switches are available when options are installed. Refer to the option
documentation for details. For example, the switches associated with the AdeptVision
options are described in the AdeptVision Reference Guide.
Example
This program segment checks whether the DRY.RUN switch is enabled. If it is, a message is
displayed on the system terminal:
IF SWITCH(DRY.RUN) THEN
TYPE "DRY RUN mode is enabled"
END
Related Keywords
DISABLE monitor command
Page 515
SWITCH real-valued function
Page 516
$SYMBOL string function
Syntax
$SYMBOL (pointer)
Function
Determine the user symbol that is referenced by a pointer previously obtained with the
SYMBOL.PTR real-valued function.
Usage Considerations
The pointer value must have been obtained with the SYMBOL.PTR real-valued function.
Parameter
Details
This function can be used to determine the user symbol (that is, program or variable name)
that is pointed to by a pointer previously determined with the SYMBOL.PTR real-valued
function.
A null string is returned if the pointer value is zero or invalid, or if the symbol has been
deleted since the pointer was defined.
Example
After the SYMBOL.PTR function has been used to set the values of elements of the array
my.pgm.ptr[ ] (for example, see the dictionary page for the CALLP instruction), the
following instruction can be used to display the program name that is referenced by one of
the pointers:
Related Keyword
CALLP program instruction
Page 517
SYMBOL.PTR real-valued function
Syntax
SYMBOL.PTR (string, type)
Function
Determine the value of a pointer to a user symbol in eV+ memory.
Usage Considerations
The value returned by the function is meaningful only to the CALLP instruction and the
$SYMBOL string function.
Parameters
type Optional real value, variable, or expression that specifies the type of
symbol to be referenced. Currently the only value supported is zero,
which specifies that the string parameter defines a program name. The
value zero applies if the parameter is omitted.
Details
The SYMBOL.PTR function can be used to obtain a pointer to a user symbol (that is, a
program or variable name) in eV+ memory. Such a pointer can then be used elsewhere in
the program by the CALLP instruction and the $SYMBOL function. Refer to the descriptions
of those keywords for more information.
The function returns the value zero if the specified symbol is not defined.
Example
Refer to the dictionary page for the CALLP instruction.
Related Keywords
CALLP program instruction
Page 518
$SYS.INFO string function
Syntax
$string = $SYS.INFO(mode,$stg)
Function
This function provides general system information. For example, it provides access to the
ActiveVR log data.
Usage Considerations
The AVR.LOG switch must be disabled before calling the $SYS.INFO function using mode 1.
Input Parameters
Value Description
Details
Returns the information requested by the mode and $string input parameters. If the mode is
invalid, $SYS.INFO returns an empty string rather than generating an execution error.
Page 519
$SYS.INFO string function
Mode 1
$SYS.INFO(1,$string) returns an entry from the ActiveVR log. The entry returned is identified
by the $string parameter, which should be defined as follows:
$string = $ENCODE(item)
The returned value is an empty string if any error occurs. Otherwise, it is an ASCII string
containing one or three numeric values. If item #0 was requested, the string contains a
single integer value. If a log entry was requested, the string contains timestamps and the
logged instruction in the same format as the trace messages displayed when AVR.TRACE is
enabled. That is, the string for the log entry has the format:
where:
NOTE: Because of the way eV+ processes motion instructions, the value of tend-tstart
does not indicate how long it took to perform a motion. It indicates how long the
instruction had to wait for any previous motion to complete.
Related Keywords
AVR system switch
Page 520
TAS real-valued function
Syntax
TAS (variable, new_value)
Function
Return the current value of a real-valued variable and assign it a new value. The two actions
are done indivisibly so that no other program task can modify the variable at the same time.
Usage Considerations
The eV+ system does not enforce any protection scheme for global variables that are shared
by multiple program tasks. It is the programmer's responsibility to keep track of the usage of
such global variables. The TAS real-valued function (or the similar CAS function) can be used
to implement logical interlocks on access to shared variables.
This function can also be used to work around a restriction on the simultaneous access of
global arrays by multiple program tasks -- program execution can fail if two or more tasks
attempt to increase the size of an array at the same time. For a detailed description of this,
see the "Global Array Access Restriction" section of the information about Arrays, in the eV+
Language User's Guide.
Parameters
variable Name of the real-valued variable to be tested and assigned the new
value given. (If the variable is not defined when the function is
executed, the function returns the value 0.)
new_value Real value, variable, or expression that defines the new value to be
assigned to the specified variable.
Details
Because the different program tasks execute simultaneously, time-sharing the system
processor, it is possible for any task to be interrupted by another in the middle of performing
some computation or storing data into variables. When data is shared by two or more tasks,
the programs must implement an interlock scheme to prevent the data from being accessed
when it is only partially updated.
The TAS function can be used to allow multiple eV+ tasks to modify shared data structures.
That is, the function provides a way for a task to lock out others while the locking task
modifies the data structures. Note that without the TAS function, a much more complicated
polling scheme would be needed to administer the control variable (i.e., to prevent more
than one program from setting the control variable simultaneously).
Page 521
TAS real-valued function
As an example of the use of shared variables, consider this eV+ program that increments and
decrements a global variable:
.PROGRAM tas_test()
AUTO i
FOR i = 1 TO 1E+06
counter = counter+1
counter = counter-1
END
.END
If the variable counter starts at 0, and the program tas_test is run simultaneously in tasks
1 and 2, one might expect that counter will have the value 0 after execution completes. In
fact, it usually will not have that value! Since the two tasks are modifying the same variable
at the same time, the value gets corrupted.
.PROGRAM tas_test()
AUTO i
FOR i = 1 TO 1E+06
; Wait for access to the shared variable to be
; unlocked, and set the lock for our access.
WHILE TAS(locked,TRUE) DO
WAIT
END
; Access the shared variable.
counter = counter+1
counter = counter-1
; Release access to the shared variable.
locked = FALSE
END
.END
Now, when the program is executed simultaneously in two (or more) tasks. The value of the
variable counter will always end up the same as before the program starts. That's because
each task blocks the other task(s) while accessing the shared variable.
(The global variable locked does not need to be initialized before the program is executed,
because the TAS function returns FALSE if the variable is not defined. Thus, the lock implicitly
starts out being off.)
NOTES: The lock should be released as soon as possible, because the other task could be
waiting for it to be released.
Take care to make sure the lock is always released after it gets applied. Otherwise the
other task could be blocked forever, and the current task would also be blocked the next
time it tries to acquire the lock.
Page 522
TAS real-valued function
Example
The following example shows the key aspects of using the TAS real-valued function to ensure
exclusive access by an application program to data that is also used by another program task.
(The same instruction sequence must be used in any other application program that wants
to access the data.)
The real-variable data.locked has the value FALSE when the data is not interlocked, and the
value TRUE when the data is interlocked. This variable is set to TRUE with the TAS function,
so that we can detect if the other program task has already set it to TRUE. Since TAS tests
and sets the value indivisibly, there is no chance of both programs setting data.locked to
TRUE simultaneously without the conflict being detected.
Use of the "semaphore" variable data.locked involves the three steps shown below.
; Step1: Look for the lock variable to have the "unlocked" setting (FALSE),
; and simultaneously apply the "lock" setting (TRUE). This loop will
cycle
; continuously until another task sets the lock variable to the
"unlocked"
; setting (FALSE), at which time this task asserts the lock for
itself.
The WHILE loop causes program execution to be blocked until the variable data.locked is
found to have the value FALSE. Thus, the program is blocked if the other program has locked
the semaphore variable in order to access the shared data. Note that the TAS function will
set the variable data.locked to TRUE each time the function is executed, but that will have no
effect if the variable already has that value.
Once the program gains exclusive access to the shared data, it can safely access the data.
The last instruction releases the data for access by the application executing as the other
program task.
Related Keyword
CAS real-valued function
Page 523
TASK real-valued function
Syntax
TASK (select, task_num)
Function
Return information about a program execution task.
Parameters
task_num Optional integer value that specifies which system program task is to
be accessed (see below).
Details
This function returns various information about the system program execution tasks. (See
the eV+ Language User's Guide for an explanation of execution tasks.)
The select parameter determines the type of information that is returned as follows:
select = 0 Task number: The function returns the number of the task
executing the current program.
select = 1 Task run state: Returns the run state for the task specified by the
task_num parameter. The value returned should be interpreted as
follows:
Value Interpretation
0 Idle.
Page 524
TASK real-valued function
Value Interpretation
4 Executing.
Bit
Bit # Indication if bit is set
mask
Examples
Display the task number the program is running in:
TYPE "This program is running as task number :", TASK()
The following program segment demonstrates how the TASK function can be used to decide
whether to initiate execution of a program (named pc.job.2) with task #2:
Related Keywords
ERROR real-valued function
Page 525
TASK real-valued function
Page 526
TIME program instruction
Syntax
TIME time_string
Function
Set the date and time.
Parameter
time_string String expression whose value specifies the date and time to be set.
The value of the string must have one of these formats (see
below):
dd-mmm-yy hh:mm:ss dd-mmm-yyyy hh:mm:ss
dd-mmm-yy hh:mm dd-mmm-yyyy hh:mm
Details
The system clock is set equal to the value of the string expression.
The system clock is maintained automatically and should be changed only when its setting is
incorrect (e.g., the controller is moved to a different time zone).
l The date and time are displayed when the eV+ system is booted from disk.
l Whenever a new disk file is created, the date and time are recorded with the file
name. (The FDIRECTORY command displays the dates and times for files.)
l The date and time are appended to the message indicating that an application
program has terminated execution.
l The date and time are displayed by the TIME monitor command.
l The date and time are available to an application program by use of the $TIME() and
$TIME4() string functions.
The individual elements of the date and time specification are defined as follows:
Element Description
mmm The month, specified as a 3-letter abbreviation (JAN, FEB, MAR, APR,
MAY, JUN, JUL, AUG, SEP, OCT, NOV, or DEC)
Page 527
TIME program instruction
Element Description
Example
TIME "23-JUN-99 16:10:25"
Related Keywords
TIME monitor command
Page 528
TIME real-valued function
Syntax
TIME (string, select)
Function
Return an integer value representing either the date or the time specified in the given string
parameter.
Parameters
string Optional string variable, constant, or expression that specifies the date
and time in the format described below. (See below for details.)
Details
This function can be used to encode the date and time into compact (unsigned 16-bit)
integer formats. After the integer date and time values are obtained, they can be
arithmetically compared to other date and time values to determine before and after
conditions.
NOTE: You should not try to manipulate the encoded integer values to perform date or
time arithmetic. For example, you should not attempt to add days to an encoded date
value.
If the string parameter is supplied, both the date and the time must be specified in the
string. The value of the string must have one of the following formats:
Page 529
TIME real-valued function
(The function returns the value -1 if the input string does not have an acceptable format [see
the example below].)
Element Description
mmm The month, specified as a 3-letter abbreviation (JAN, FEB, MAR, APR,
MAY, JUN, JUL, AUG, SEP, OCT, NOV, or DEC)
If the string parameter is not supplied and the select parameter is 1, the current date of the
system clock is returned. In addition, the current time of the system clock is stored in the
(internal) administrative data for the program task. If the string parameter is not supplied
and the select parameter is 2 or 3, the selected time value is returned for the system-clock
time previously saved.
Example
The following program segment shows how the TIME real-valued function can be used to
make sure you enter a valid date and time after a prompt:
PROMPT "Enter the date and time (dd-mmm-yy hh:mm:ss): ", $time
WHILE (TIME($time,1) == -1) DO ;Make sure it's valid
TYPE /B, " Cannot interpret date/time."
PROMPT "Try again (dd-mmm-yy hh:mm:ss): ", $time
END
TIME $time ;Set system time
Related Keywords
TIME monitor command
Page 530
TIME real-valued function
Page 531
$TIME string function
Syntax
$TIME (date, time)
Function
Return a string value containing either the current system date and time or the specified
date and time.
Parameters
date Optional integer value representing the year, month, and day (see
below). The value is interpreted as follows (month ranges from 1 to 12):
date = (year-1980)*512 + month*32 + day
time Optional integer value representing the hour, minutes, and seconds
past midnight (see below). The value is interpreted as follows (hour
ranges from 0 to 23):
time = hour*2048 + minute*32 + second/2
NOTE: This function always returns a string containing both the date and the time. That
can result in an erroneous date string if the date parameter is omitted when the time
parameter is specified.
Details
If both the date and time parameters are omitted, this function returns the current system
date and time in the format described below. (An empty string is returned if the system clock
has not been initialized.)
If the date and time parameters are specified, their values are converted to an ASCII string
in the format described below, and the string is returned. This operation is used to decode
the output values generated by the TIME real-valued function.
The date and time are output in the format dd-mmm-yy hh:mm:ss, in which the individual
elements are defined as follows:
Element Description
mmm The month, specified as a 3-letter abbreviation (JAN, FEB, MAR, APR,
Page 532
$TIME string function
Element Description
NOTE: The $TIME() function converts passed arguments (instead of the system time)
when either the date or the time parameter is supplied. However, the function always
tries to generate a string representation of both parameters. You get the date 01-Jan-80 if
you do not provide a date value. The time substring is 00:00:00 if you do not specify a
time value. The following expressions can be used to return only the date and the time,
respectively:
$date = $MID($TIME(date,),1,9)
$time = $MID($TIME(,time),11,8)
Related Keywords
TIME monitor command
Page 533
$TIME4 string function
Syntax
$TIME4 (date, time)
Function
Return a string value containing either the current system four-digit date and time or the
specified four-digit date and time.
Parameters
date Optional integer value representing the year, month, and day (see
below). The value is interpreted as follows (month ranges from 1 to 12):
date = (year-1980)*512 + month*32 + day
time Optional integer value representing the hour, minutes, and seconds
past midnight (see below). The value is interpreted as follows (hour
ranges from 0 to 23):
time = hour*2048 + minute*32 + second/2
NOTE: This function always returns a string containing both the date and the time. That
can result in an erroneous date string if the date parameter is omitted when the time
parameter is specified.
Details
If both the date and time parameters are omitted, this function returns the current system
date and time in the format described below. (An empty string is returned if the system clock
has not been initialized.)
If the date and time parameters are specified, their values are converted to an ASCII string
in the format described below, and the string is returned. This operation is used to decode
the output values generated by the TIME real-valued function.
The date and time are output in the format dd-mmm-yyyy hh:mm:ss, in which the
individual elements are defined as follows:
Element Description
mmm The month, specified as a 3-letter abbreviation (JAN, FEB, MAR, APR,
Page 534
$TIME4 string function
Element Description
NOTE: The $TIME4() function converts passed arguments (instead of the system time)
when either the date or the time parameter is supplied. However, the function always
tries to generate a string representation of both parameters. You get the date 01-Jan-80 if
you do not provide a date value. The time substring is 00:00:00 if you do not specify a
time value. The following expressions can be used to return only the date and the time,
respectively:
$date = $MID($TIME4(date,),1,11)
$time = $MID($TIME4(,time),13,8)
Related Keywords
TIME monitor command
Page 535
TIMER program instruction
Syntax
TIMER timer_number = time_value
Function
Set the specified system timer to the given time value.
Usage Considerations
Times measured by eV+ are precise only to within 1 millisecond (0.001 seconds); shorter
times cannot be measured.
Timers with numbers <= 0 are read-only and cannot be set with this instruction.
Parameters
timer_number Real-valued expression interpreted as the (integer) number of the
timer to be set. The value must range from 1 to 15.
time_value Real-valued expression interpreted as the time, in seconds, to which
the timer is set. This parameter may specify fractions of a second
and may be negative.
Details
When used as described in the examples below, the timers can be used to measure an
interval of 596 hours from when they were set by the TIMER instruction. Timers have a
resolution of one millisecond and a maximum count of > 2.E+009.
Use the TIMER real-valued function to read the instantaneous value of a system timer.
Example
The following examples show two ways to wait for a certain amount of time, using the TIMER
instruction and real-valued function. Each example first sets the timer, and then waits until
the timer value has changed by the delay period:
Related Keyword
TIMER real-valued function
Page 536
TIMER real-valued function
Syntax
TIMER (timer_number)
Function
Return the current time value of the specified system timer.
Usage Considerations
The accuracy and resolution of the timers vary according to which timer is selected. DOUBLE
variables should be used to achieve maximum resolution. See the Details section below.
Parameter
Value Description
Page 537
TIMER real-valued function
Value Description
Details
Timers -1 and -2
If you don't want to use timers 1 through 15, or need more than 15 timers, Timers -1 and -2
may be used as follows:
Note that timer -3 provides a better method for computing such intervals provided that a
DOUBLE value can be used.
The type of eV+ variable used in time computations affects the maximum interval that can
be computed with full resolution:
l Standard REAL variables have only 24 bits of resolution, which limits the time interval
to 16,777,216 (2 24) counts. This limit corresponds to about 4.6 hours for millisecond
Page 538
TIMER real-valued function
l DOUBLE REAL variables have 52 bits of precision, which stores the full resolution of
the various timers. This is the default type used when none is explicitly specified.
Example
The following example shows how the TIMER instruction and real-valued function can be
used to time the execution of a subroutine:
Related Keyword
TIMER program instruction
Page 539
TOOL program instruction
Syntax
TOOLtransformation_value
Function
Set the internal transformation used to represent the location and orientation of the tool tip
relative to the tool mounting flange of the robot.
Usage Considerations
The TOOL instruction causes a BREAK in continuous-path motion.
The TOOL instruction can be executed by any program task as long as the robot selected by
the task is not attached by any other task. The instruction applies to the robot selected by
the task.
If the eV+ system is not configured to control a robot, executing the TOOL instruction causes
an error.
Parameter
Details
Causes a BREAK in the robot continuous-path motion and sets the value of the tool
transformation equal to the transformation value given.
Refer to the TOOL monitor command for a complete description of the effect of this
instruction. (For information on how to define a tool transformation, see the section Tool
Transformations in the eV+ Language User's Guide.)
Related Keywords
SELECT program instruction
Page 540
TOOL transformation function
Syntax
TOOL
Function
Return the value of the transformation specified in the last TOOL command or instruction.
Usage Considerations
The command LISTL TOOL can be used to display the current tool setting.
The TOOL function returns information for the robot selected by the task executing the
function.
If the eV+ system is not configured to control a robot, use of the TOOL function does not
generate an error because of the absence of a robot. However, the information returned by
the function may not be meaningful.
Examples
Display the value of the current TOOL transformation from the system prompt:
LISTL TOOL
Related Keywords
SELECT program instruction
Page 541
TPS real-valued function
Syntax
TPS
Function
Return the number of ticks of the system clock that occur per second (Ticks Per Second).
Usage Considerations
The name "tps" cannot be used as a program name or variable name.
Example
The following example shows how an event can be tested each system clock tick, with a
time-out of 5 seconds, using the TPS function and the WAIT instruction.
Page 542
TRANS transformation function
Syntax
TRANS (X_value, Y_value, Z_value, y_value, p_value, r_value)
Function
Return a transformation value computed from the given X, Y, Z position displacements and
y, p, r orientation rotations.
Parameters
Z_value
y_value Optional expressions for the yaw, pitch, and roll orientation
components, respectively.
p_value
r_value
Details
The input parameter values are used to compute a transformation value that can be
assigned to a location variable or used in a compound transformation or motion request.
Examples
If r s the radius of a circle and angle is the angle of rotation about the circle, then the
transformation:
TRANS(r*COS(angle), r*SIN(angle), 0, 0, 0, 0)
If frame is a transformation defining the position of the center of the circle and the plane in
which it lies, the following program segment moves the robot tool point around the circle in
steps of 1 degree.
Page 543
TRANS transformation function
Related Keywords
DECOMPOSE program instruction
DX real-valued function
DY real-valued function
DZ real-valued function
Page 544
$TRANSB string function
Syntax
$TRANSB (transformation, double_precision)
Function
Return a 48-byte or 96-byte string containing the binary representation of a transformation
value.
Parameter
Details
This function converts the given transformation value to the binary representation of its
twelve (internal) components. The twelve values defining the transformation are the
components of a 3-by-4 transformation matrix, stored by column. Each of the twelve 32-bit
values is packed as four successive 8-bit characters in a string, resulting in a total of 48 or 96
characters. (The IEEE single-precision or double-precision standard floating-point format is
used for the conversion. See the description of the FLTB or DBLB real-valued function for
details of the IEEE floating-point format.)
The main use of this function is to convert a transformation value to its binary
representation in an output record of a data file.
Related Keywords
$FLTB string function
Page 545
TRANSB transformation function
Syntax
TRANSB (string, first_char, double_precision)
Function
Return a transformation value represented by a 48-byte or 96-byte string.
Parameters
Details
48 or 96 sequential bytes of the given string are interpreted as being a set of twelve single-
precision (32-bit) or double-precision (64-bit) floating-point numbers in the IEEE standard
format. (See the description of the FLTB or DBLB function for details of the floating-point
format.) The twelve values are interpreted as the components of a 3-by-4 transformation
matrix, stored by column.
The main use of this function is to convert the binary representation of a transformation
value from an input data record to values that can be used internally by eV+.
Page 546
TRANSB transformation function
Related Keywords
FLTB real-valued function
Page 547
TRUE real-valued function
Syntax
... TRUE
Function
Return the value used by eV+ to represent a logical true result.
Usage Considerations
The word "true" cannot be used as a program name or variable name.
Details
This named constant is useful for situations where true and false conditions need to be
specified. The value returned is –1.
Example
The following program loop executes continuously until the subroutine process returns a
TRUE value for the real variable error:
DO
CALL process(error)
UNTIL error == TRUE
WHILE TRUE DO
CALL move.part()
END
Related Keywords
FALSE real-valued function
ON real-valued function
Page 548
$TRUNCATE string function
Syntax
$TRUNCATE (string)
Function
Return all characters in the input string until an ASCII NUL (or the end of the string) is
encountered.
Parameter
Details
This function is similar to performing a $DECODE operation with an ASCII NUL (^H00)
specified as the break character. $TRUNCATE differs from such a $DECODE operation in two
ways:
Because of its simplicity, the $TRUNCATE function executes much faster than the $DECODE
function.
Example
The instruction below sets the value of the string variable $substring equal to abcdef.
(Obviously, this is an artificial situation, since one would never want to perform a
$TRUNCATE operation when the result is apparent from the input. However, it is presented
to illustrate that this function can scan an arbitrary string expression and return the first
substring delimited by a NUL.)
$substring = $TRUNCATE("abcdef"+$CHR(0)+"ghijk")
Related Keyword
$DECODE string function
Page 549
TYPE program instruction
Syntax
TYPE output_specification, ..., output_specification
Function
Display the information described by the output specifications on the system terminal. A
blank line is output if no argument is provided.
Usage Considerations
No output is generated if the MESSAGES system switch is disabled.
Program execution normally waits for the output to be completed before continuing. There is
an output specification described below that can be used to prevent waiting if it is undesirable
for execution to be delayed.
The output from a single TYPE instruction cannot exceed 512 characters. (The /S format
control specifier described below can be used to output longer messages.)
Parameter
An output_specification can consist of any of the following components (in any order)
separated by commas:
1. A string expression.
Details
The following format-control specifiers can be used to control the way in which numeric
values are displayed. These settings remain in effect for the remainder of the instruction,
unless another specifier is used to change their effect.
For all these display modes, if a value is too large to be displayed in the specified field width,
the field is filled with asterisk characters (*).
/D Use the default format, which displays values to full precision with a single leading space.
(Scientific notation is used for values greater than or equal to 1,000,000.)
NOTE: The following format specifications accept a zero as the field width (n). That
causes the actual field size to vary to fit the value, and causes all leading spaces to be
suppressed. That is useful when a value is displayed within a line of text or at the end of a
line.
Page 550
TYPE program instruction
/Gn.m Output values in F format with m digits in the fractional parts if the values
are larger than 0.01 and will fit in fields n spaces wide. Otherwise /En.m
format is used.
The following specifiers can be used to control the appearance of the output.
/Cn Output the characters carriage return (CR) and line feed (LF) n times. This
will result in n blank lines if the control specifier is at the beginning or end
of an output specification; otherwise, n-1 blank lines will result.
/S Do not output a carriage return (CR) or line feed (LF) after displaying the
current line.
/Un Move the cursor up n lines. This will work correctly only if the TERMINAL
parameter is correctly set for the terminal being used.
/N Initiate output without having program execution wait for its completion.
A second output request will force program execution to wait for the first
output if it has not yet completed.
Example
Assume that the real variable i has the value 5 and that array element point[5] has the value
12.666666. Then, the instruction
sounds a beep at the system terminal (/B) and display the message
Page 551
TYPE program instruction
Point 5 = 12.67
Point 5 = *****
because the value (1000.00) is too large to be displayed in the specified format (/F5.2). (The
instruction can display any value for point[5] if the format specification were /F0.5.)
Related Keywords
$ENCODE string function
Page 552
$UNPACK string function
Syntax
$UNPACK (string_array[index], first_char, num_chars)
Function
Return a substring from an array of 128-character string variables.
Parameters
index Optional integer value(s) that identifies the first array element to
be considered. The first_char value is interpreted relative to the
element specified by this index.
The value of first_char can be greater than 128. In that case the
array element accessed follows the element specified in the
function call. For example, a value of 130 corresponds to the
second character in the array element following that specified by
index.
Details
This function extracts a substring from an array of strings. Substrings are permitted to
overlap two string array elements. For example, a 10-character substring whose first
character is the 127th character in element [3] is composed of the last two characters in
element [3] followed by the first eight characters of element [4].
In order to efficiently access the string array, this function assumes that all of the array
elements are defined and are 128 characters long. For multidimensional arrays, only the
Page 553
$UNPACK string function
right-most array index is incremented to locate the substring. Thus, for example, element
[2,3] is followed by element [2,4].
Example
The instruction below sets the value of the string variable $substring equal to a substring
extracted from the string array $list[]. The substring is specified as starting in element $list
[3]. However, because the first character is to be number 130, the 11-character substring
actually consists of the second through 12th characters of $list[4]:
Related Keywords
$MID string function
Page 554
UNTIL program instruction
Syntax
UNTIL expression
Function
Indicate the end of a DO ... UNTIL control structure and specify the expression that is
evaluated to determine when to exit the loop. The loop continues to be executed until the
expression value is nonzero.
Usage Considerations
UNTIL must be used in conjunction with a DO control structure. See the description of the
DO instruction for details.
Parameter
Details
If the expression in the UNTIL statement is zero, program execution continues with the
statement following the matching DO statement. If the expression is nonzero, program
execution continues with the statement following the UNTIL statement.
Example
The following example is a loop that continues to prompt you to enter a number until you
enter one that is greater than or equal to zero:
DO
PROMPT "Enter a positive number: ", number
UNTIL number >= 0
Related Keyword
DO program instruction
Page 555
UPPER system switch
Syntax
... UPPER
Function
Control whether or not the case of each character is ignored when string comparisons are
performed.
Usage Considerations
The switch value is shared globally by all program tasks. If you change the value in one task,
it affects comparisons in all other tasks. Therefore, do not change this switch during normal
program execution.
Details
When this switch is enabled and two strings are compared using the operators <, <=, ==,
<>, >=, or >, all lowercase characters are treated as though they were uppercase
characters. That is, when UPPER is enabled, both of the following comparisons yields a TRUE
value:
When UPPER is disabled, the case of characters is considered during string comparisons.
Then, for example, the comparison on the left above results in a FALSE value, while the
comparison on the right yields a TRUE value.
By default, UPPER is enabled, so that string comparisons are performed without considering
the case of the characters.
The STRDIF real-valued function always compares strings considering their case. You can
leave UPPER enabled always and then use STRDIF in situations where case is important.
Related Keywords
DISABLE monitor command
Page 556
UPPER system switch
Page 557
VAL real-valued function
Syntax
VAL (string)
Function
Return the real value represented by the characters in the input string.
Usage Considerations
The input string can be a number in scientific notation.
The input string can contain leading number base indicators (^H, for example).
The input string can contain a + or - sign before the numeric part of the string, but after any
optional base indicator.
Any character that cannot be interpreted as part of a number or as a base indicator marks
the end of the characters that are converted.
Parameter
Examples
VAL("123 Elm Street") ;Returns the real value 123
VAL("1.2E-2") ;Returns the real value 0.012
VAL("^HFF") ;Returns the real value 255
Related Keywords
ASC real-valued function
Page 558
VALUE program instruction
Syntax
VALUE expression_list:
Function
Indicate the values that a CASE statement expression must match in order for the program
statements immediately following to be executed.
Usage Considerations
VALUE must be part of a CASE control structure. See the description of the CASE instruction
for details.
Parameter
Related Keywords
ANY program instruction
Page 559
WAIT program instruction
Syntax
WAIT condition
Function
Put the program into a wait loop for one trajectory cycle. If a condition is specified, wait until
the condition is TRUE.
Usage Considerations
l A WAIT with no condition specified is useful in programs that need to perform an
operation only once each trajectory cycle. For more information, see Details and
Example 1.
l To wait for a specific time period, use the WAIT.EVENT program instruction rather
than the WAIT program instruction.
l During execution, use the PROCEED monitor command to cancel a WAIT instruction
in an application program.
Parameter
condition Optional real value, variable, or expression that is tested for a TRUE
(nonzero) or FALSE (zero) value.
Details
If no condition is supplied with the WAIT instruction, program execution is suspended until
the next trajectory cycle. Trajectory cycles occur at 16, 8, 4 or 2 millisecond intervals,
depending on the system configuration.
If you need to guarantee at least a trajectory cycle delay (for example, while manipulating
signals monitored by REACT or REACTI), you should execute two consecutive WAIT
instructions (with no arguments).
If a condition is specified, WAIT will suspend program execution until the condition exists. For
example, the state of one or more external signals can be used as the condition for
continuation.
Example
Stop program execution while external input signal #1001 is on and #1003 is off. Poll once
eacheV+ trajectory cycle:
Page 560
WAIT program instruction
WAIT
END
Related Keywords
RELEASE program instruction
Page 561
WAIT.EVENT program instruction
Syntax
WAIT.EVENT mask, timeout
Function
Suspend program execution until a specified event has occurred, or until a specified amount
of time has elapsed.
Usage Considerations
If a WAIT.EVENT instruction in an application program has execution suspended, the
WAIT.EVENT can be canceled with the PROCEED monitor command.
Parameters
mask Optional real value, variable, or expression that specifies the events for
which to wait. The value is interpreted as a sequence of bit flags, as
detailed below. (All the bits are assumed to be clear if no mask value is
specified.)
If this bit is set, the desired event is the completion of any input/output
operation by the current task.
timeout Optional real value, variable, or expression that specifies the number of
seconds to wait. No time-out processing is performed if the parameter is
omitted, or the value is negative or zero (see below for more details).
Details
This program instruction is used to suspend program execution until a specified event has
occurred, or until a specified amount of time has elapsed in the timeout clock. The program
waits efficiently.
When the program resumes execution after a WAIT.EVENT instruction, the GET.EVENT
function can be used to verify that the desired event has actually occurred. This is the only
way to distinguish between the occurrence of an event and a time-out (if one was specified).
If the mask parameter has the value zero (or is omitted), this instruction becomes a very
efficient way to suspend program execution for the time period specified by the timeout
parameter.
Page 562
WAIT.EVENT program instruction
If the timeout parameter is omitted (or has a negative or zero value), this instruction
suspends program execution indefinitely until the specified event occurs.
If both mask and timeout are zero or omitted, this instruction does nothing.
WAIT.EVENT 1 waits for an event to be signaled for a task. Events are signaled by either a
SET.EVENT program instruction, or by a pending no-wait I/O instruction when the I/O
operation is completed.
In general, there is no way to tell why the event was set. It may have been set by an I/O
operation, a SET.EVENT program instruction, or an internal system process (such as a
triggered REACT condition). For this reason, it is necessary to test for the desired condition
after executing the WAIT.EVENT. For I/O, repeat the no-wait I/O operation or use the IOSTAT
() function. For SET.EVENT issued by other tasks, define and check a global variable.
To avoid race conditions where the event is set or cleared between testing and waiting, use
the following loop in the waiting task (the statement order is critical).
1. CLEAR.EVENT
5. WAIT.EVENT 1
6. GOTO step 1
If using SET.EVENT to signal another task, use the following sequence (the statement order
is critical).
Examples
Suspend program execution for 5.5 seconds:
WAIT.EVENT , 5.5
Suspend program execution until the completion of any system input/output, or until
another program task sets events using the SET.EVENT instruction:
WAIT.EVENT 1
Suspend program execution for five seconds, until the completion of any system
input/output, or until another program task uses the SET.EVENT instruction to set events.
(The current program should use the GET.EVENT function to decide whether an event has
occurred or five seconds has elapsed.)
Page 563
WAIT.EVENT program instruction
WAIT.EVENT 1, 5
Related Keywords
CLEAR.EVENT program instruction
Page 564
WHILE program instruction
Syntax
WHILE condition DO
Function
Initiate processing of a WHILE structure if the condition is TRUE or skipping of the WHILE
structure if the condition is initially FALSE.
Usage Considerations
Every WHILE statement must be part of a complete WHILE ... DO ... END structure.
Parameter
Details
This structure provides another means for executing a group of instructions until a control
condition is satisfied (compare it with the DO structure). The complete syntax for the WHILE
structure is
WHILE condition DO
group_of_steps
END
3. Return to item 1.
4. Continue program execution at the first instruction after the END step.
Unlike the DO structure described elsewhere, the group of instructions within the WHILE
structure may not be executed at all. That is, if the condition has a FALSE value when the
WHILE is first executed, then the group of instructions are not executed at all.
When this structure is used, it is assumed that some action occurs within the group of
enclosed instructions that will change the result of the logical expression from TRUE to
FALSE when the structure should be exited.
Page 565
WHILE program instruction
Example
The following example uses a WHILE structure to monitor a combination of input signals to
determine when a sequence of motions should be stopped. In this example, if the signal from
either part feeder becomes zero (assumed to indicate the feeder is empty), then the
repetitive motions of the robot stops and the program continues.
Note that if either feeder is empty when the WHILE structure is first encountered, then
execution immediately skips to step 27:
20 feeder.1 = 1037
21 feeder.2 = 1038
22 .
23 WHILE SIG(feeder.1, feeder.2) DO
24 CALL move.part.1()
25 CALL move.part.2()
26 END
27
28 ; Either feeder #1 or feeder #2 is empty
29 .
30 .
31 .
Related Keywords
DO program instruction
Page 566
WINDOW program instruction
Syntax
WINDOW %belt_var = location, location, program, priority
Function
Set the boundaries of the operating region of the specified belt variable for conveyor tracking.
Usage Considerations
This option is available only if your system is equipped with the eV+ Extensions option.
The belt variable referenced must have already been defined using a DEFBELT instruction.
Parameters
Details
The operating window defined by this instruction is used both at motion planning time and
motion execution time to determine if the destination of the motion is within acceptable
limits.
Page 567
WINDOW program instruction
When a motion is being planned, the destination of the motion is compared against the
operating window. If a window violation occurs, the window violation program is ignored and
a program error may be generated depending upon the setting of the BELT.MODE parameter
and the nature of the error.
When a motion relative to the belt is being executed or after the motion is completed and the
robot continues to track the destination, the destination is compared against the window
every eV+ trajectory cycle. If a window violation occurs and a program has been specified, the
program is automatically invoked subject to its priority level, and the robot continues to track
the belt and follow its continuous path motion. (The presumption is made that the specified
program directs the robot as required to recover from the window violation.)
If no program has been specified, the robot is immediately stopped and a window violation
program error is signaled. If a REACTE has been posted, the REACTE routine is activated.
Otherwise, program execution is terminated.
Example
The working window for the belt variable %belt1 is defined by locations win1 and win2. If a
window violation ever occurs while the robot is tracking the belt, the program belt.error is
executed as a subroutine:
Related Keywords
BELT system switch
Page 568
WINDOW real-valued function
Syntax
WINDOW (transformation, time, mode)
Function
Return a value that indicates where the location described by the belt-relative
transformation value is relative to the predefined boundaries of the working range on a
moving conveyor belt.
Usage Considerations
This option is available only if your system is equipped with the eV+ Extensions option.
The BELT system switch must be enabled before this function can be used.
The belt variable referenced in the compound transformation must have already been
defined using a DEFBELT instruction.
Parameters
Details
The value returned, which is a distance in millimeters, should be interpreted as described
below. (Note that the definitions of upstream and downstream depend on the value of the
Page 569
WINDOW real-valued function
1. If the value of the mode expression is less than or equal to zero (the default), the value
returned is interpreted as follows (see the following figure):
>0 The location is inside the window, closest to the upstream window
boundary; the distance to the boundary is the returned value.
2. If the value of the mode expression is greater than zero, the value returned is
interpreted as follows (see the following figure):
Page 570
WINDOW real-valued function
Note that the value returned by the WINDOW function always becomes more positive as the
test location moves downstream (except for the discontinuity at the middle of the window
when the mode value is less than or equal to zero).
Example
distance = WINDOW(%belt1:pick.up, 2, 1)
The distance is nonzero if, in two seconds, the location will be outside the operating window
for %belt1. Otherwise, distance is zero if the location is within the window.
Related Keywords
BELT real-valued function
Page 571
WINDOW real-valued function
Page 572
WRITE program instruction
Syntax
WRITE (lun,record_num) format_list
Function
Write a record to an open file, or to any I/O device. For a network device, write a string to an
attached and open TCP connection.
Usage Considerations
Except for the monitor window or console serial port, the device to receive the output must
have been attached. If the output is to a disk file, the file must have been opened with an
FOPENA or FOPENW instruction.
Program execution waits for the write operation to complete unless there is a /N format
specifier in the format list.
Parameters
When accessing the TCP device, you can include the /N specifier to
prevent the eV+ system from waiting for a write acknowledgment.
Page 573
WRITE program instruction
Details
This is a general-purpose data output instruction that writes a record to a specified logical
unit. A record can contain an arbitrary list of characters, but must not exceed 512 characters
in length.
For files that are opened in fixed-length record mode, this instruction appends NULL
characters to the output record if it is shorter than the file records.
When accessing the TCP/IP device, the record_num parameter enables a server to
communicate with multiple clients on a single logical unit. Handles are allocated when a client
connects to the server and deallocated when a client disconnects. During a connection the
read instruction that receives data from the TCP logical unit returns the client handle. A write
instruction can then use the handle value to send data to the corresponding client.
Examples
You can write a message to the manual control pendant with the following instructions:
A file with variable-length records can be written to the system disk drive with instructions
such as the following:
Write the string $str to the client defined by the handle, which must have been defined
previously when the a message was received. Do not wait for acknowledgment:
Related Keywords
ATTACH program instruction
Page 574
WRITE program instruction
Page 575
XOR operator
XOR operator
Syntax
... XOR value ...
Function
Perform the logical exclusive-OR operation on two values.
Details
The XOR operator operates on two values, resulting in their logical exclusive-OR
combination. For example, during the exclusive-OR operation
c = a XOR b
a b c
That is, the result is TRUE if only one of the two operand values is logically TRUE. To review
the order of evaluation for operators within expressions, see the section Order of Evaluation
in the eV+ Language User's Guide.
Example
In the following sequence, the instructions immediately following the IF are executed when
not_eq_one is TRUE and count does not equal 1, or when not_eq_one is FALSE and count
equals 1. Otherwise, they are not executed.
Related Keywords
AND operator
Page 576
XOR operator
BXOR operator
OR operator
Page 577
ID Option Words
ID Option Words
The following topics are described in this chapter:
Page 578
Introduction to ID Option Words
The ID command displays various option words as hexadecimal values; the ID function
makes the same values available to programs. This appendix describes the following:
Mask Value
Bit # Interpretation When Bit Set
Decimal Hexadecimal
Page 579
Robot Option Words
Mask Value
Bit # Interpretation When Bit Set
Decimal Hexadecimal
The real-valued functions ID(11,8) and ID(11,10+robot) return the second option word for
the selected and specified robot, respectively. The interpretations of the bits in this option
word are described in the following table.
Mask Value
Bit # Interpretation When Bit Set
Decimal Hexadecimal
4 8 8
Whenusing the Cobra 600, 800 or 800
Inverted robots: Robot has the joint 4
quill encoder disabled.
Page 580
System Option Words
Mask Value
Bit # Interpretation When Bit Set
Decimal Hexadecimal
The option words should be interpreted as bit fields, which indicate information about the
system configuration. The interpretations of the bits in the first system option word [returned
by the function ID(5)] are described in the following table.
Page 581
System Option Words
Mask Value
Bit # Interpretation When Bit Set
Decimal Hexadecimal
NOTES:
1. The External encoder bit is used with robot systems to indicate the "conveyor
tracking" capability. With non-robot systems it is used to indicate the "external
encoder option".
The interpretations of the bits in the second software option word [returned by the function
ID(6)] are described in the following table.
Mask Value
Bit # Interpretation When Bit Set
Decimal Hexadecimal
6 32 20 Vision is enabled
Page 582
Processor Option Word
Mask Value
Bit # Interpretation When Bit Set
Decimal Hexadecimal
NOTES:
1. This bit tracks the "eV+ Extensions" bit in the first option word.
Mask Value
Bit # Interpretation When Bit Set
Decimal Hexadecimal
Page 583
System Messages
System Messages
The following topics are described in this chapter:
Page 584
Introduction to System Messages
In eV+, each error message is normally assigned an error number (or code) and an associated
error string. The following numbering conventions are used to identify the type of system
message generated:
l Warning Messages (numbers 50 to 299) list warning messages that you may receive.
l Error Messages (negative numbers) list the error messages that you may receive.
Most message codes associated with errors can be made available to a program by the ERROR
function, which returns the code of the latest error that occurred. In addition, the $ERROR
function returns the error message associated with any eV+ error code.
Documentation
The eV+ system message documentation allows you to look up the details of an error
message either alphabetically by the message string, or numerically by the system code. For
details, see Related Topics.
For each message, the documentation includes the message code, the text of the message,
and sometimes a comment about the applicability of the message. Angle brackets (<...>) are
used to enclose a description of an item that appears in that position. All numbers are
decimal.
Updates
Changes to eV+ system messages are summarized in the eV+ Release Notes.
Related Topics
Alphabetical List of eV+ System Messages
Page 585
System Messages - Alphabetical List
Almost every eV+ system message has a numeric code that can be used to identify the
message within an eV+ program. The ERROR and IOSTAT functions return this code. The
$ERROR string function returns the error message corresponding to an error code.
All of the eV+ messages are described in this section. Each description includes the text of
the message, its error code if applicable, an explanation of the likely cause of the message,
and a suggestion of what action you should take. The error code for each message is listed
after the error text, for all those messages that have a code.
The system messages are arranged alphabetically by system message text. Click an
underlined letter to jump to the first message that begins with that letter. For a list of the
system messages sorted by numerical codes, see System Messages - Numerical List.
A B C D E F G H I J K L M
N O P Q R S T U V W X Y Z
NOTE:If the system has more than one robot connected and an error is associated with a
specific robot, the robot number is appended to the error message in the form (Robot #).
User action: Retry the operation that failed. Reinitialize your servo network. Reboot your
robot controller. If the problem persists, contact Omron Adept Customer Service.
Aborted (-400)
Explanation: The last command requested, or the program that was executing, has been
aborted at your request.
User action: No response is required if the eV+ system is intended to be used in Digital
Workcell simulation mode. Otherwise, the command DISABLE ADW should be entered and
the controller should be rebooted.
Page 586
System Messages - Alphabetical List
User action: Check the program logic and remove redundant ATTACH instructions.
User action: Include the REAL or LOC type specification parameter in the AUTO statement
that declares the variable, or reference the variable in a program instruction in a manner that
makes its type clear.
User action: To have eV+ continue, type y followed by a carriage return. An n followed by a
carriage return or just a carriage return causes the command to be aborted.
Page 587
System Messages - Alphabetical List
User action: Change the program in order not to modify the variable while the robot is
tracking it.
User action: Modify the program to include the variable in only one of these places.
User action: If the new use of the variable is correct, you must delete all references to the
incorrect variable and then reenter the statement that caused the error. If the new use is
incorrect, use a different variable name. If there is a conflict with a global variable, either use
a DELETE_ command to delete that variable, or make the conflicting variable AUTO or LOCAL
to the current program.
User action: None required for this message, but subsequent commands in the auto-
startup command program may require user action.
WARNING: The robot may begin to move during the automatic start-
up procedure. If necessary, you can stop the robot by pressing
EMERGENCY STOP or the controller or PANIC on the pendant.
Page 588
System Messages - Alphabetical List
User action: Correct the problem that is causing the motion system to report the error.
User action: Enter the FORMAT command again-use a different diskette if the error persists.
User action: Enter an ENABLE BELT command and retry the operation.
User action: After saving the programs, power down the controller and power it up again. If
this error occurs repeatedly, contact Omron Adept Customer Service.
User action: Modify the program so that the robot does not move outside the belt window.
Consult the BELT.MODE parameter and the WINDOW instruction for different ways to define
the belt window.
User action: Enter a PROCEED (Ctrl+P), RETRY, SSTEP (Ctrl+Z), or XSTEP (Ctrl+X)
command to resume program execution.1 Otherwise, enter any other monitor command.
Page 589
System Messages - Alphabetical List
User action: Enter a new BPT command specifying a step after the first executable
statement. That is, after the .PROGRAM statement, any AUTO and LOCAL statements, and
all comments and blank lines at the start of the program.
User action: Reissue the CALIBRATE command or instruction with the proper mode. The
default mode of zero causes CALIBRATE to automatically load the required programs from
disk, perform the calibration, and then delete the programs. Alternatively, issue a
CALIBRATE command or instruction with mode "1" (which causes the calibration programs
to be loaded into memory), and then reissue the CALIBRATE command or instruction that
was originally attempted.
User action: Retry the CALIBRATE command or instruction after making sure that the
robot is not blocked. If the problem persists, contact Omron Adept Customer Service.
*Canceled* (-358)
Explanation: An editor, debugger, or pendant operation has been terminated due to
operator intervention.
User action: This is usually an informative message to acknowledge the cancellation of the
operation.
Page 590
System Messages - Alphabetical List
User action: Either disable ALTER mode or stop tracking the belt.
User action: Stop execution of the program task being debugged, or continue without using
debug editor mode.
User action: Modify the arguments for the GSLIDE instruction to have the slide bar created
within the window.
User action: If the program name was entered incorrectly, enter the command again with
the correct name. Do not select read-only access (with /R) when creating a new program.
User action: To change the .PROGRAM statement, replace it with another .PROGRAM
statement. To delete lines at the beginning of the program, move down to line 2 before
issuing delete commands.
Page 591
System Messages - Alphabetical List
User action: Enter another command or exit the editor and reenter from the eV+ monitor.
User action: You can use Shift+Copy to deposit the contents of the attach buffer into the
current program. You can also use Esc+K to delete lines from the attach buffer (99 Esc+K
deletes up to 99 lines from the buffer).
User action: Restore the missing file from the eV+ distribution disk to the current default
directory, or to the directory \CALIB\ on the local "C" or "D" drive.
User action: Use the EXECUTE or PRIME command, or the pendant PRIME function, to
restart the program from the desired instruction.
User action: Verify the spelling and usage, and reenter the line. In the case of an error
while loading from the disk, edit the affected programs to correct the indicated lines-they
have been converted to bad lines.
User action: Edit the command program to use the DO command to include the program
instruction, or remove the MC instruction from the normal program.
Page 592
System Messages - Alphabetical List
User action: Stop the program currently executing and then retry the operation.
User action: Enter any desired new components, separated by commas, or press the Return
key to indicate that no changes are desired.
User action: Enter the desired replacement string. Note that if you press Return, the string
to be searched for is erased (that is, an empty string is used for the replacement).
User action: Change the application program to prevent the deadlock situation.
Command? (None)
Explanation: A SEE editor extended command has been initiated with the X command.
User action: Enter the desired extended command, or press Return to cancel the request.
User action: Make sure the remote device is communicating. Make sure connections to the
remote device are operating properly.
Page 593
System Messages - Alphabetical List
User action: Modify the program to service the I/O device more often, add a handshaking
protocol, or slow down the transmission rate to eV+.
User action: Select COMP mode on the pendant or enable DRY.RUN mode from the
terminal, then reissue the command.
User action: Select automatic mode by moving the switch on the front panel to the
automatic position, or by activating the proper switch on a custom control panel. Retry the
previous command.
Page 594
System Messages - Alphabetical List
User action: Select manual mode by moving the switch on the front panel to the manual
position, or by activating the proper switch on a custom control panel. Retry the previous
operation.
User action: Select network mode by moving the switch on the front panel to the network
position, or by activating the proper switch on a custom control panel. Retry the previous
operation.
User action: Edit the program to correct the control structure. (Note that the actual error
may not be at the indicated step.) If the error occurs in response to a BPT command, you can
type dir /? to identify programs that are not executable and thus might contain the control-
structure error.
User action: Contact Omron Adept Application Engineering. Please record the details of
exactly what you were doing at the time the error occurred.
Page 595
System Messages - Alphabetical List
User action: Attempt the transfer again. If the problem persists, contact Omron Adept
Customer Service.
User action: Attempt the read again. Make sure the correct diskette is being used, that it is
properly installed in the drive, and that it is formatted. (Recall that formatting a diskette
erases its contents.)
User action: Make sure the instruction's parameters are valid. Refer to the documentation
for the device type referenced for information on how to determine what has caused the
error.
User action: Delete unneeded disk files, or use another drive or diskette. Reconfigure your
system so the maximum number of axes per CPU is not exceeded.
User action: Verify that the device was correctly specified. Verify that the device hardware
is present and is configured properly.
Page 596
System Messages - Alphabetical List
User action: Check the program code to make sure the requested device has not already
been attached. If the error occurs during power-up initialization of the eV+ system, enter the
SRV.NET monitor command and look for multiple nodes that are reporting the same input or
output block number.
(2) A limited-access device like the terminal, the pendant, or a serial line is attached to a
different program task.
(3) You have tried to write into a pull-down window while it is displayed.
User action: (1) If the intended device is a system microfloppy disk drive, make sure the
diskette is correctly inserted and formatted.
(2) If a limited-access device is specified, ABORT and KILL the program task that has it
attached, or wait for the program task to release the device. If the intended device is on the
network, verify that the proper connections are made and that the remote system is
operating correctly. (2) ABORT and KILL the program task that has the device attached, or
wait for the task to release the device.
User action: Use software interlocks to prevent a second program task from accessing the
device after a reset operation has been requested. (Note that the requesting SETDEVICE
instruction waits for the reset to complete.) Refer to the documentation for the specific device
for information on its self-generated resets.
User action: Refer to the documentation for the sensing system for information on how to
determine the cause of the error.
Page 597
System Messages - Alphabetical List
User action: Check the documentation for the device type referenced to determine what
caused the error. Verify that the device hardware is configured properly.
User action: Unlike most other errors, this error can be ignored. Additional READ
instructions to the same directory correctly return additional contents of that directory.
User action: Delete the directory's contents before deleting the directory.
User action: Retry the operation that caused the error. If it persists, contact Omron Adept
Customer Service.
User action: Edit the .PROGRAM line so that all the arguments have unique names.
Page 598
System Messages - Alphabetical List
User action: Use the SRV.NET command to determine which nodes are causing this error.
Reinitialize your servo network. Reboot your robot controller. If a new servo node has been
added to the network, verify that its serial number is correct. If the problem persists, contact
Omron Adept Customer Service.
User action: Turn on Arm Power; reduce the speed and/or acceleration for the motion that
was in progress or for motions that preceded that motion; and repeat the motion that failed.
User action: Inspect the encoder wiring for intermittent connections or broken wires. Try
swapping the encoder cable with another. You can disable this error with the SPEC utility, but
do so only as a last resort.
User action: Make sure the encoder cable is properly connected. Try to run the conveyor at
a slower speed. Contact Omron Adept Customer Service if the error persists.
User action: Turn on high power, calibrate the robot, and try to perform the motion at a
slower speed. If the error persists, contact Omron Adept Customer Service.
Page 599
System Messages - Alphabetical List
User action: If safe to do so, attempt to enable HIGH POWER and note any different error
messages which occur. Verify that the CIP is connected securely. If this error occurs
frequently, contact Omron Adept Customer Service.
This error can result from redundant E-STOP channels that do not track each other within a
reasonable time.
User action: Hold the MCP enable switch and reenable HIGH POWER as desired. If this error
persists, contact Omron Adept Customer Service.
User action: If safe to do so, attempt to enable HIGH POWER and note any different error
messages that occur. If this error persists, contact Omron Adept Customer Service.
This error can be caused if redundant E-STOP channels do not track each other within a
reasonable time (around 0.5 sec).
User action: If an external E-STOP circuit is being used, verify that both channels are wired
and functioning properly.
User action: Verify that all E-STOP channels are wired and functioning properly and that
there is no external power source wired to the E-STOP circuit. Check that the E-STOP source
jumper on any connected robot is on the EXT position. If the problem persists, contact
Omron Adept Customer Service.
Page 600
System Messages - Alphabetical List
one of the two E-STOP Relays , a short circuit in one of the E-STOP channels , or the result of
a pair of contacts connected to the E-STOP channels being in the opposite state (one open,
the other closed).
User action: Check all user connections to each of the E-STOP channels (plugs fully seated,
contacts on each channel in the same closed state). If no problem is uncovered in the user
connections, call Omron Adept Customer Service.
User action: Check for a subsequent message. To determine if there was an unreported RSC
error, type listr error(task,4), where task is the number of the task that received the error.
If no additional information is available, call Omron Adept Customer Service.
User action: Check for a subsequent message. To determine if there was an unreported RSC
error, type listr error(task,4), where task is the number of the task that received the error.
User action: Unlatch the locking E-STOP button. Re-enable HIGH POWER as desired.
User action: Restore the front panel external input signal state. Re-enable HIGH POWER as
desired.
User action: Restore the state of the Line E-STOP input signal. Re-enable HIGH POWER as
desired.
Page 601
System Messages - Alphabetical List
User action: Hold the Pendant enable switch and re-enable HIGH POWER as desired.
User action: Unlatch the locking E-STOP button. Re-enable HIGH POWER as desired.
Code n Explanation
User action: Check for a subsequent message. To determine if there was an unreported
RSC error, type listr error(task,4), where task is the number of the task that received the
error. If no additional information is available, check for low air pressure, joint 1 overtravel,
or motor overheating.
Page 602
System Messages - Alphabetical List
User action: Hold the user enable switch and re-enable HIGH POWER as desired. If the
switch was already pressed, check the switch and the associated connectors and wiring.
User action: Restore the user E-STOP button circuit. Re-enable HIGH POWER as desired.
User action: Close the muted safety gate and re-enable HIGH POWER as desired. If the gate
was already closed, check the switch, the associated connectors, and wiring.
User action: None unless motion of the robot is desired. In that case, abort execution of the
program and disable the DRY.RUN switch.
User action: Use the SRV.NET command to determine which node is causing this error.
Verify that all servo network connectors are secure. Reinitialize your servo network. Reboot
your robot controller. If the problem persists, contact Omron Adept Customer Service.
Page 603
System Messages - Alphabetical List
User action: It would be appreciated if you would report the error to Omron Adept
Application Engineering. Please include the details of the error message and exactly what
you were doing at the time the error occurred.
To save programs that are in memory, you can restart eV+ temporarily by pressing Ctrl+G.
The robot servos do not function, but you can STORE the programs. Then power down the
controller and restart the system.
User action: To save programs that are in memory, you can restart eV+ temporarily by
pressing Ctrl+G. The robot servos do not function, but you can STORE the programs. Then
power down the controller and restart the system. If the problem persists, contact Omron
Adept Customer Service.
User action: It would be appreciated if you would report the error to Omron Adept
Application Engineering. Please include the details of the error message and exactly what
you were doing at the time the error occurred.
To save programs that are in memory, you can restart eV+ temporarily by pressing Ctrl+G.
The robot servos do not function, but you can STORE the programs. Then power down the
controller and restart the system.
User action: Power down the controller and try starting it again. If the problem persists,
contact Omron Adept Customer Service.
Page 604
System Messages - Alphabetical List
User action: It would be appreciated if you would report the error to Omron Adept
Application Engineering. Please include the details of the error message and exactly what you
were doing at the time the error occurred.
To save programs that are in memory, you can restart eV+ temporarily by pressing Ctrl+G.
The robot servos do not function, but you can STORE the programs. Then power down the
controller and restart the system.
User action: It would be appreciated if you would report the error to Omron Adept
Application Engineering. Please include the details of the error message and exactly what you
were doing at the time the error occurred.
To save programs that are in memory, you can restart eV+ temporarily by pressing Ctrl+G.
The robot servos do not function, but you can STORE the programs. Then power down the
controller and restart the system.
User action: Check the wiring of your E-STOP circuits. Verify that the Controller Interface
Panel (CIP) is connected properly. Contact Omron Adept Customer Service for assistance.
User action: None required if you do not intend to use the force-sensing system. Otherwise,
refer to the documentation for the force-sensing system for information on how to respond to
the error.
User action: Power down the controller and try starting it again. If the problem persists,
contact Omron Adept Customer Service.
Page 605
System Messages - Alphabetical List
User action: It would be appreciated if you would report the error to Omron Adept
Application Engineering. Please include the details of the error message and exactly what
you were doing at the time the error occurred.
To save programs that are in memory, you can restart eV+ temporarily by pressing Ctrl+G.
The robot servos do not function, but you can STORE the programs. Then power down the
controller and restart the system.
User action: Verify that all servo interface boards are correctly installed and configured (use
the SPEC.V2 utility for motor mapping). If the problem persists, contact Omron Adept
Customer Service.
User action: Power down the controller and try starting it again. Make sure that the boot
disk you are using is valid for your controller. Use the CONFIG_C utility program to make
sure the serial I/O configuration is correct. If the problem persists, contact Omron Adept
Application Engineering.
User action: Power-down and restart your controller. Try a different boot device. Reload
your system software. If this problem persists, contact Omron Adept Customer Service for
assistance.
Page 606
System Messages - Alphabetical List
User action: Check any user manual mode switch that may be in use. Verify that the CIP is
connected securely. Restart your eV+ system to clear the error and repeat the test. If the
problem persists, contact Omron Adept Customer Service.
User action: It would be appreciated if you would report the error to Omron Adept
Application Engineering. Please include the details of the error message and exactly what you
were doing at the time the error occurred.
To save programs that are in memory, you can restart eV+ temporarily by pressing Ctrl+G.
The robot servos do not function, but you can STORE the programs. Then power down the
controller and restart the system.
User action: It would be appreciated if you would report the error to Omron Adept
Application Engineering. Please include the details of the error message and exactly what you
were doing at the time the error occurred.
To save programs that are in memory, you can restart eV+ temporarily by pressing Ctrl+G.
The robot servos do not function, but you can STORE the programs. Then power down the
controller and restart the system.
User action: Power down the controller and restart. If the problem persists, contact Omron
Adept Customer Service.
User action: Power down the controller and restart. If the problem persists, contact Omron
Adept Customer Service.
Page 607
System Messages - Alphabetical List
User action: Power down the controller and restart, making sure you are using the correct
system disk. If the problem persists, contact Omron Adept Customer Service.
User action: Power down the controller and restart. Use the CONFIG_C.V2 utility to verify
that a servo process is enabled for this CPU. If the problem persists, contact Omron Adept
Customer Service.
User action: It would be appreciated if you would report the error to Omron Adept
Application Engineering. Please include the details of the error message and exactly what
you were doing at the time the error occurred.
To save programs that are in memory, you can restart eV+ temporarily by pressing Ctrl+G.
The robot servos do not function, but you can STORE the programs. Then power down the
controller and restart the system.
User action: If then value is one of those listed above, reduce the complexity of the
offending expression. If the value is not one of those listed, an internal problem with eV+ is
indicated. In that case, it would be appreciated if you would report the error to Omron Adept
Application Engineering. Please include the details of the error message and what you were
doing at the time the error occurred.
To save programs that are in memory, you can restart eV+ temporarily by pressing Ctrl+G.
The robot servos do not function, but you can STORE the programs. Then power down the
controller and restart the system.
Page 608
System Messages - Alphabetical List
User action: Power down the controller and try starting it again. If the problem persists,
contact Omron Adept Customer Service.
User action: Power down the controller and try starting it again. If the problem persists,
contact Omron Adept Customer Service.
User action: It would be appreciated if you would report the error to Omron Adept
Application Engineering. Please include the details of the error message and exactly what you
were doing at the time the error occurred.
To save programs that are in memory, you can restart eV+ temporarily by pressing Ctrl+G.
The robot servos do not function, but you can STORE the programs. Then power down the
controller and restart the system.
User action: It would be appreciated if you would report the error to Omron Adept
Application Engineering. Please include the details of the error message and exactly what you
were doing at the time the error occurred.
To save programs that are in memory, you can restart eV+ temporarily by pressing Ctrl+G.
The robot servos do not function, but you can STORE the programs. Then power down the
controller and restart the system.
User action: Reissue the storage request with a different file name, or delete the old file.
Page 609
System Messages - Alphabetical List
User action: Modify the program to use a different logical unit number for the file or window
you want to open, or perform an FCLOSE operation on the file or window currently open on
the specified logical unit number before performing the FOPEN operation.
User action: Modify the program to open the file or graphics window before attempting to
read or write data.
User action: Retry the operation with a correct file name or subdirectory name. Verify that
syntax of the directory path is correct. Verify that any default directory path specified by the
DEFAULT command is correct. Verify that the total directory path is not too long when the
default is combined with the current file specification.
User action: Close the file, open a new file, and retry the previous operation.
Page 610
System Messages - Alphabetical List
Find: (None)
Explanation: While initiating a string search or replacement operation, the SEE editor is
prompting for the string to be found in the program.
User action: Enter the desired search string, or press Return to cancel the request.
User action: Move the cursor to below the .PROGRAM line of the program before attempting
to insert or deposit statements.
User action: If a crash occurred, ensure that the work area is cleared. If the limit was
exceeded in normal operation, the limit should be increased or Protect mode should be
disabled. Enable high power with the pendant and continue operation.
User action: Replace the HIGH POWER lamp. See the MV Controller User's Guide. Re-enable
HIGH POWER as desired.
Page 611
System Messages - Alphabetical List
User action: Save all your programs and variables on disk and then reboot the system from
disk. Contact Omron Adept Customer Service if the problem repeats.
User action: Save new or modified programs, restart the controller, and reload the
programs. If the problem persists, contact Omron Adept customer service.
User action: Attempt to save as much as possible onto disk. Issue ZERO 1 and ZERO 2
monitor commands to delete graphics data. If the error persists, power down the controller
and restart the system.
(HALTED) (8)
Explanation: A HALT instruction has been executed, and thus execution of the current
program has terminated.
User action: Any monitor command can be entered, but PROCEED cannot be used to
resume program execution.
User action: Turn on high power and try to perform the motion at a slower speed. Make
sure that nothing is obstructing the robot's motion. If the error recurs, contact Omron Adept
Customer Service.
Page 612
System Messages - Alphabetical List
User action: Install the needed hardware or remove the instruction that addresses the
hardware.
User action: Verify that the servos for this motor are properly configured. If the problem
persists, contact Omron Adept Customer Service.
User action: If working from the keyboard, reissue the enable power monitor command and
promptly press the high power on/off button when instructed to do so. If working from the
MCP, follow the procedure appropriate for enabling high power for the safety category of your
system. Promptly press the high power on/off button when instructed to do so. If the timeout
period is too short, adjust it by using the ACE controller config tools to change the POWER_
TIMEOUT statement in the eV+ configuration data.
User action: Reenter the line, using a different variable name if necessary.
User action: Correct the signal number and check your digital I/O configuration.
Page 613
System Messages - Alphabetical List
User action: Retype the line containing the expression, being careful to follow the eV+
syntax rules.
User action: Use a different command, change to debug editor mode, or exit from the
program debugger.
User action: Change to editing the program in read-only mode, or use a different editor
command.
User action: It would be appreciated if you would report the error to Omron Adept
Application Engineering. Please include the details of the error message and exactly what
you were doing at the time the error occurred.
User action: Correct the I/O command as required to suit the device. If you continue to
have difficulty, contact Omron Adept Application Engineering for assistance.
Page 614
System Messages - Alphabetical List
Either there is a syntax error, or the requested redirection is not allowed for your I/O
configuration.
User action: Check the syntax of the offending statement. Make sure that the requested
redirection device is allowed on your I/O configuration.
User action: Verify the spelling of the command name and enter the command again. Use
the DO command to invoke a program instruction from the terminal.
User action: Perform the appropriate operation sequence before retrying the desired
motion.
User action: Check the instruction executing when the error occurred. Make sure all
conditions necessary for its successful completion are met.
Page 615
System Messages - Alphabetical List
User action: Move below the first line of the program, or reenter the line correctly. (With
the eV+ SEE editor, you can press the Undo function key or press Esc+Ctrl+C to cancel the
changes you have made to a .PROGRAM line.)
User action: Edit the program to specify a correct record length or specify sequential-access
mode.
User action: Edit the program to use the belt variable correctly.
User action: Edit the program to use a logical unit number appropriate for the instruction.
User action: Edit the command program and delete the command causing the error.
Page 616
System Messages - Alphabetical List
User action: Stop the SPIN trajectory with a SPIN or BRAKE instruction before executing a
regular motion instruction.
User action: Make sure there is no file being accessed by Kermit, and retry the failed
operation.
On SmartController systems, this error displays if the Cat 3 option is selected while running a
SmartController with an old CIM board. If eV+ detects a 1394 Cat 3 robot when the Cat 3
option is not selected on the SmartController, the message includes the number of the robot
associated with the error.
User action: Make sure that the correct robot and controller are being used together. Install
(or remove) the appropriate EN954 Safety Category license in the controller.
User action: Be sure that the hardware for the I/O device is properly installed. Repeat the
failed I/O operation. If the problem persists, contact Omron Adept Customer Service.
Page 617
System Messages - Alphabetical List
User action: Power down the controller and restart. If the problem persists, contact Omron
Adept Customer Service. (You can prevent this error from being reported by enabling the
DRY.RUN system switch.)
User action: Try the operation again. If the error recurs, use another diskette.
User action: Correct the problem that caused the robot motion to terminate prematurely
and reexecute or skip the multiple-segment motion.
User action: The parameter code specified is not valid for the tool being referenced. Correct
the eV+ code.
Page 618
System Messages - Alphabetical List
User action: Verify the range of arguments for the function, program instruction, or editor
command being used.
User action: If a FORMAT command has been entered, verify the command syntax and
retry the command. Otherwise, try a different diskette or reformat the current one.
Remember that formatting erases all information on the diskette. If the diskette was created
on an IBM PC, be sure it was formatted with one of the formats accepted by the eV+ system.
User action: Attempt the operation again. If the error repeats, report the situation to
Omron Adept Application Engineering.
Page 619
System Messages - Alphabetical List
User action: Make sure the correct device is being accessed. Power down the controller and
try starting it again. Make sure the boot disk you are using is valid for your controller. Use the
CONFIG_C utility program to make sure the serial I/O configuration is correct. If the problem
persists, contact Omron Adept Application Engineering for assistance.
If the error resulted from a disk I/O operation, it indicates that the disk controller hardware is
not configured correctly. Omron Adept Customer Service should be contacted in that case.
User action: Change to editing the program in read-write mode, or use a different editor
command.
User action: Verify that the network software version on the remote node is compatible
with the network software on the local node. DISABLE and ENABLE the affected network
nodes and retry the operation. If this error occurs repeatedly, contact Omron Adept
Application Engineering for assistance. (For more information about Kermit, see Kermit
Communication Protocol.)
Page 620
System Messages - Alphabetical List
User action: Correct the definition of the destination transformation. For example, you may
need to correct the base transformation in the compound transformation. (For SCARA robots,
the p component of all destination transformations should be approximately 180 degrees.)
User action: Attempt the operation again. Contact Omron Adept Customer Service if the
error repeats.
User action: Make sure your system disk has been configured correctly. Contact Omron
Adept Application Engineering for assistance.
Page 621
System Messages - Alphabetical List
User action: Power down the controller and try starting it again. Make sure that the boot
disk you are using is valid for your controller. If the problem persists, contact Omron Adept
Customer Service for assistance.
User action: Remove the program from the stack by allowing the task to run until the
desired program executes a RETURN instruction, or issue a KILL monitor command to clear
the stack. If you are using the SEE program editor, press the Undo key to allow you to
continue editing.
User action: Abort the currently executing task, or execute the program as a different task,
if possible.
User action: Try your command again. If the problem persists, contact Omron Adept
Customer Service.
Page 622
System Messages - Alphabetical List
User action: Retry the operation. If the problem persists, it would be appreciated if you
would report the error to Omron Adept Application Engineering. Please include the details of
the error message and exactly what you were doing at the time the error occurred.
User action: Specifying a file that is not a directory, repeat the operation; or perform the
correct directory operation.
User action: Select a different mode of control. For example, on the pendant you can use
WORLD or TOOL mode.
User action: Modify the specified destination location (e.g., if a precision point is specified).
Press the Brake Release button, and manually move the robot to a different location. If the
problem persists, contact Omron Adept Customer Service for assistance.
User action: Enter the program step as two or more separate steps.
User action: Verify that you are using location functions and operations correctly and edit
the program as required.
Page 623
System Messages - Alphabetical List
User action: Verify that you are using location functions and operations correctly and edit
the program as required.
User action: Enter the keystrokes to define the macro and then enter Z to terminate the
definition.
User action: Make sure that the manual brake-release button (usually located on the
robot) is not active. If the problem persists even though the button is not pressed, call
Omron Adept Customer Service.
User action: Make sure the pendant is connected properly. If the problem persists, contact
Omron Adept Customer Service.
User action: Toggle the auto/manual switch. Restart the servos and reboot the controller.
Check the safety-related cables. If the problem persists, contact Omron Adept Customer
Service.
User action: If safe to do so, toggle the auto/manual key switch and attempt to enable
HIGH POWER again. Reseat the plug affixed to the JAWC connector on the CIP and the plug
affixed to the CIP connector on the AWC. Verify that the CIP is connected securely. If this
error persists, contact Omron Adept Customer Service.
Page 624
System Messages - Alphabetical List
User action: If safe to do so, toggle the auto/manual key switch and attempt to enable
HIGH POWER again. Reseat the plug affixed to the JAWC connector on the CIP and the plug
affixed to the CIP connector on the AWC.Verify that the CIP is connected securely. If this
error persists, contact Omron Adept Customer Service.
User action: Hold the MCP enable switch and re-enable HIGH POWER as desired. If this error
occurs frequently, contact Omron Adept Customer Service.
User action: Hold the MCP enable switch and re-enable HIGH POWER as desired. Reseat the
plug affixed to the JAWC connector on the CIP and the plug affixed to the CIP connector on
the AWC.
User action: Power down the controller and start it again. If the error persists, contact
Omron Adept Customer Service.
User action: Edit the program to make sure that AUTO and LOCAL statements are preceded
only by blank lines, comments, or other AUTO and LOCAL statements.
Page 625
System Messages - Alphabetical List
User action: Verify the operation syntax and reenter the line.
User action: Reenter the line with correctly matching left and right brackets.
User action: Insert a quote mark at the end of the string. Strings may not cross line
boundaries.
User action: Turn high power back on and restart the program. If the error persists,
implement procedures appropriate for your AdeptMotion system. If the robot is a standard
Omron Adept product, contact Omron Adept Customer Service.
User action: Reduce the speed, acceleration, and/or deceleration of the robot motions, or
introduce delays in the application cycle to give the motor an opportunity to cool.
Page 626
System Messages - Alphabetical List
User action: Turn high power back on and restart the program. Remove the obstruction or
modify the program to have the robot follow a different path.
User action: Move the robot away from its limit stops and remove any unusual load. Turn
high power back on and try to calibrate again. Contact Omron Adept Customer Service if the
error persists.
User action: Use a different editor command or activate the program debugger with the SEE
editor DEBUG extended command or the DEBUG monitor command.
User action: Change the motion instruction to one that requests a straight-line motion.
Page 627
System Messages - Alphabetical List
User action: Manually move the robot back into range and re-enable power. Check the the
negative overtravel switch and its wiring. Use the CONFIG_C utility to adjust the robot soft
limits so they are inside the hard limits.
User action: Reestablish the network connection, and retry the original operation.
User action: Application dependent. If the indicated code does not having meaning for the
current application, verify that the remote computer is sending valid data.
Page 628
System Messages - Alphabetical List
User action: Make sure that the remote node is active and connected to the network. Make
sure that the local node is connected to the network.
User action: Retry the READ instruction for the UDP device. Change the parameters of the
sender to transmit smaller packets.
User action: (1) Close and reopen the DDCMP line; (2) check the remote program logic to
see why it restarted the protocol.
User action: Check network integrity. Make sure the server is up and running. Make sure
the correct IP address is being used.
Page 629
System Messages - Alphabetical List
User action: Restore the air pressure, turn high power back on, and resume program
execution. If the error persists, contact Omron Adept Customer Service.
User action: Verify the latch signal cabling. Verify the latch signal configuration in eV+.
User action: Continue polling the I/O device until data is received, or use a read request
that waits automatically for data to be received.
User action: Make sure that the proper logical connection was specified. Make sure that the
remote node is operating properly.
(2) The requested graphics window title, menu, or scroll bar does not exist.
User action: (1) Verify the file name--use the FDIRECTORY command to display the
directory of the disk.
User action: Make sure that the subdirectory name was entered correctly. Make sure that
the correct disk drive was referenced and that the correct diskette is loaded. Use an
Page 630
System Messages - Alphabetical List
FDIRECTORY command to display the directory containing the subdirectory. Make sure that
the default directory path is correct.
User action: Use the New or GoTo function-key command (or the N keyboard command)
to change to a new program.
User action: Make sure the system has been booted from the correct system disk (for
example, use the ID command to display the system identification). Change the program so
that it does not attempt to attach the robot.
User action: Specify a directory in the operation, or use the correct nondirectory operation.
User action: Edit the program to make sure it attaches a logical unit before attempting to
use it to perform I/O.
Page 631
System Messages - Alphabetical List
User action: Verify the proper way to access the serial line for the current configuration.
Use the configuration utility program to display the serial line configuration and change it if
desired.
User action: Reorganize the program logic to eliminate one or more nested subroutine calls
or reactions; eliminate some of the automatic variables that are allocated by the programs;
or use the STACK monitor command to increase the size of the stack for the program task.
The program may be restarted with the RETRY command.
User action: Delete unused programs and variables. If the memory is fragmented because
of numerous deletions, it can be consolidated by issuing the commands STORE save_all,
ZERO, and LOAD save_all. This writes the memory contents to the disk and reads them back
into memory. Note, however, that this procedure does not retain any variables that are not
referenced by any program in memory, nor does it retain the values of variables that are
defined to be AUTO or LOCAL.
User action: Enter a new search string, or consider this an informational message and
continue with other operations.
User action: Modify the eV+ configuration (using the ACE controller configuration tool) as
required to gain access to the server. You may also need to change the access setup on the
server itself.
User action: Upgrade to a newer version of eV+ or don’t use this keyword.
Page 632
System Messages - Alphabetical List
User action: If Digital Workcell simulation mode is to be terminated, turn off power to the
controller, and turn power back on to reboot the eV+ system. Otherwise, enter the eV+
monitor command ENABLE ADW to cancel the effect of the previous DISABLE command.
User action: If Digital Workcell simulation mode is to be used, turn off power to the
controller, start up the Digital Workcell software on the PC, and turn on power to the
controller. Otherwise, enter the eV+ monitor command DISABLE ADW to cancel the effect of
the previous ENABLE command.
User action: Make sure the belt encoder is connected properly. If the problem persists,
contact Omron Adept Customer Service.
User action: Before you can resume running the program, you must recalibrate the robot. If
the problem persists, contact Omron Adept Customer Service.
Page 633
System Messages - Alphabetical List
User action: Power down your controller and restart your system. If the error persists,
contact Omron Adept Customer Service.
User action: Move the robot away from the obstacle and continue the motion or modify the
executing application program to avoid the obstacle. For application programs, this error may
indicate that either the planned end point of the motion collides with an object or that a
collision has been detected in the middle of a straight-line motion.
User action: If ENABLE ADW was entered on purpose to restart the servos, enter "Y".
Otherwise enter "N". See the topic "Communicating with the Controller" in the Adept Digital
Workcell documentation for information about restarting the servos.
User action: Enter a PROCEED (Ctrl+P), RETRY, SSTEP (Ctrl+Z), or XSTEP (Ctrl+X)
command to resume program execution.2 Otherwise, enter any other monitor command.
User action: Power down the controller and try starting it again. Contact Omron Adept
Application Engineering if the problem repeats.
Page 634
System Messages - Alphabetical List
User action: Press the Brake Release button and manually move the robot joints so that the
moving platform is nearer to its "square" shape.
User action: Delete unused graphics items, or reduce the size of windows, to free up
graphics memory.
User action: Delete some of the programs or data in the system memory and retry the
operation. (Also see *Not enough storage area*.)
1. Too many ports are simultaneously in use for networking; there are no more buffers
available for incoming and outgoing packets.
3. Too many calls were made simultaneously from separate tasks to a nonfunctional server.
5. An incoming IP packet was fragmented into too many pieces and eV+ was unable to
reassemble it. (This is a highly unlikely occurrence.)
Page 635
System Messages - Alphabetical List
User action: Change the program to output less information from each instruction.
Remember that you can concatenate the output from separate instructions by using /S to
suppress the carriage return and line feed normally done at the end of each TYPE output.
User action: Manually move the robot back into range and re-enable power. Check the the
overtravel switch and its wiring. Use the CONFIG_C utility to adjust the soft limits for the
robot so they are inside hard limits.
User action: To continue the current motion, enter the RETRY monitor command. To
continue after the current motion, enter the PROCEED monitor command.
(PAUSED) (9)
Explanation: A PAUSE instruction has been executed, and thus the current program has
suspended execution.
User action: Any monitor command can be entered. To continue execution of the program,
type proceed followed by the task number if it is not 0.
User action: (1) Modify the program as required to prevent the invalid motion request.
(Because the robot did not actually move out of range, you do not need to move the robot
before continuing); (2) move the robot back into the working envelope. Correct whatever
caused the robot to get into the restricted area, and enable power.
Page 636
System Messages - Alphabetical List
User action: (1) Modify the program as required to prevent the invalid motion request
(Because the robot did not actually move out of range, you do not need to move the robot
before continuing.); (2) move the robot back into the working envelope. Correct whatever
caused the robot to get into the restricted area, and enable power.
User action: Manually move the robot back into range and re-enable power. Check the the
positive overtravel switch and its wiring. Use the CONFIG_C utility to adjust the soft limits for
the robot so they are inside the hard limits.
User action: You may need to restart or repeat any operations that were interrupted by the
controller AC power failure. Some reinitialization of the system may be required: for example,
any robot(s) connected to the controller must be recalibrated after a controller power failure.
User action: Verify the voltage on the AC input line. Lower the speed, acceleration or
deceleration of the robot. Reduce the payload if possible.
Page 637
System Messages - Alphabetical List
User action: When the high power on/off button on the Controller Interface Panel (CIP)
blinks, promptly press the button to complete the two-step process of enabling high power.
(You must press the button within the time period specified in the eV+ configuration data.)
User action: When the HIGH POWER ON/OFF button on the VFP blinks, promptly press the
button to complete the two-step process of enabling high power.
User action: It would be appreciated if you would report the error to Omron Adept
Application Engineering. Please include the details of the error message and exactly what
you were doing at the time the error occurred. You should store the programs that are in
memory, power down the controller, and start it again. (If the processor ID shown is 1, you
can restart eV+ by pressing Ctrl+G. The robot servos do not function, but you can STORE the
programs in memory.) If the problem persists, contact Omron Adept Customer Service.
User action: Modify the CALL, CALLS, or EXECUTE instruction, or the .PROGRAM statement
of the referenced program, so that the argument types match. If arguments are omitted in
Page 638
System Messages - Alphabetical List
the CALL, CALLS, or EXECUTE instruction, make sure the appropriate commas are included
to position the arguments that are present.
User action: Any monitor command can be entered, except that PROCEED cannot be used
to resume program execution.
User action: Any monitor command can be entered. To continue execution of the program,
type proceed or retry, or press the PROGRAM START button on the controller. (The
RUN/HOLD button can be held down to temporarily resume execution of the program if the
front-panel keyswitch is in the MANUAL position.)
User action: Abort the program or exit the editor as appropriate and retry the operation. You
can use the SEE editor in read-only mode to look at programs that are interlocked from read-
write access.
User action: Enter the name of the new program to be edited, or press Return to cancel the
request.
Page 639
System Messages - Alphabetical List
User action: Reenter the DO command and specify the correct program context or
eliminate references to automatic variables and subroutine arguments. Use the STATUS
command to determine which program is on the top of the stack.
User action: Enter a Y to have the program created. Any other input, including just
pressing Return, cancels the edit request.
User action: None required if the correct task number was specified. Otherwise, use the
STATUS command to determine which task number should have been used.
Page 640
System Messages - Alphabetical List
User action: Check the diskette to make sure the write-protect tab is in the correct position.
Use an FDIRECTORY command to display the disk directory. If the file has protected (P) or
read-only (R) protection, you cannot access it in the way attempted.
User action: Push, then release, then hold the enable switch within a limited time.
Alternately, you can change from manual mode to automatic mode.
User action: Change the macro definitions as necessary to make sure neither macro
invokes itself. You can have the U macro invoke the Y macro, or vice versa (but not both).
User action: Promptly release then press the button when this message is displayed. Make
sure that you press the Hold-to-run switch and not the Run/Hold button on the top of the
MCP.
User action: If this error occurs during startup, verify that all required network nodes are
connected. Use the SRV.NET monitor command to verify that the network nodes contain the
desired input blocks. Verify that the eV+ I/O configuration matches the network node digital
input configuration. If this error occurs during normal operation, reinitialize your servo
network or reboot your controller. If the problem persists, contact Omron Adept Customer
Service.
Page 641
System Messages - Alphabetical List
User action: Verify that all required network nodes are connected. Use the SRV.NET
monitor command to verify that the network nodes contain the desired output blocks. Verify
that the eV+ I/O configuration matches the network node digital output configuration.
User action: Check the server setup, and check the path that the eV+ system uses.
User action: Use a different name for the variable. You can, for example, append a prefix or
suffix to the attempted name.
User action: Press the DONE button on the pendant one or more times to exit the current
function.
User action: Check the program logic-remove redundant ATTACH instructions, or DETACH
the current robot before attempting to SELECT another robot.
Page 642
System Messages - Alphabetical List
User action: Verify that you have the required version of eV+ and that the kinematic
module supports the robot model and configuration options that you have selected. If you do
not have a license for the required kinematic module, either turn off the option or purchase
the required license.
User action: (1) Review the program logic and make sure the robot or device is being
controlled by only one program task; (2) Move CIP key switch to the automatic mode position
or set the user manual mode signals appropriately.
User action: Use the CONFIG_C and/or SPEC utilities to correct the module configuration.
User action: Use the CONFIG_C utility to add the robot module to the boot disk before
rebooting.
(1) The system is not configured to control a robot. (2) There is no robot connected to the
system. (3) The robot is attached to a different program task.
User action: (1) Make sure the system is booted from the proper system disk, or remove the
robot-control instruction.
Page 643
System Messages - Alphabetical List
(3) Modify the program logic as required to ensure that only one program task is controlling
the robot at any given time.
User action: If you want to use the robot, issue a CALIBRATE command or have your
program execute a CALIBRATE instruction. Or enable the DRY.RUN switch to allow program
execution without using the robot.
User action: (1) Push the brake release button at the robot base and move the joints back
into the normal working range. Turn on high power and continue program execution.
(2) Check the fan filter on the robot base, and check the ambient temperature of the robot.
Allow the robot to cool down, turn on high power, and continue program execution.
Page 644
System Messages - Alphabetical List
User action: Depends on the particular code value. In general, check the servo and amplifier
cabling. Power-down and restart your controller and servo nodes. If the problem persists,
contact Omron Adept Customer Service.
User action: None unless the calibration load fails. If the problem persists, contact Omron
Adept Customer Service.
User action: Power down the controller and make sure the robot cables are correctly and
securely connected. If the problem persists, contact Omron Adept Customer Service.
User action: Check the connections of the robot cables. Turn high power back on, calibrate
the robot, and resume program execution. If the problem persists, contact Omron Adept
Customer Service.
User action: If the problem persists, contact Omron Adept Customer Service.
Page 645
System Messages - Alphabetical List
number.
User action: Make sure that the correct type of robot is being used. Use the CONFIG_C
utility to change the module ID to -1 in the eV+ configuration data. Correct the module ID in
the RSC.
It is possible that the power lines to the RSC have an intermittent connection somewhere.
On FireWire Robots this error indicates that a robot amplifier has detected an under- or over-
voltage of its internal DC Bus. This may be due to AC power supply out of spec of 200-240V
or a motion that is too hard or too fast for the payload of the robot.
User action: If the problem persists, contact Omron Adept Customer Service.
User action: Turn high power back on and resume program execution. If the problem
persists, check the cabling to the robot. Contact Omron Adept Customer Service if no
solution can be found.
User action: Power down the controller and check the cables to the robot. If the problem
persists, contact Omron Adept Customer Service.
User action: None unless the calibration load fails or RSC communications fail. If the
problem persists, contact Omron Adept Customer Service.
Page 646
System Messages - Alphabetical List
User action: Power-down and restart your controller and servo nodes. If the problem
persists, contact Omron Adept Customer Service.
NOTE: If you are using an AIB robot, such as the Cobra 600/800, refer to the document
Status Code Summary for Embedded Products.
Because the status codes are related to hardware, refer to your robot hardware
documentation as your primary source of information for correct hardware and safety system
setup. You should also re-commission the robot. (For details, see the hardware
documentation for your robot.) If it does not resolve the problem, contact Omron Adept
Customer Service.
If one of these message codes occurs, stand away from the robot and attempt to enable
power again. If the same error code occurs again for no apparent reason, there may be a fault
with the sensor.
Because the status codes are related to hardware, refer to your robot hardware
documentation as your primary source of information for correct hardware and safety system
setup. You should also re-commission the robot. (For details, see the hardware
documentation for your robot.) If it does not resolve the problem, contact Omron Adept
Customer Service.
OR
A system with the PL=d Safety (according to ISO 13849) has not been successfully
commissioned with ACE Safety Commissioning Utility or has been decommissioned by the
internal self-checking firmware.
User action: Test the safety with the SAFE_UTL utility program or ACE Safety
Commissioning Utility before enabling power for the first time. You should then rerun the
Page 647
System Messages - Alphabetical List
SAFE_UTL utility program or ACE every three months to re-commission the robot. If you
have connected the robot to a different controller or replaced the controller or the SIO
module, repeat the test. (For details, see the documentation for the SAFE_UTL program or
the ACE User's Guide, and the hardware documentation for your robot.)
User action: This is an informational message. You can use the Repeat command to
perform the indicated search, or you can use Find (or Change) to initiate a new search (or
replacement) operation. The EXACT extended command controls the setting of the search
mode.
User action: This is an informational message. You can use the Repeat command to
perform the indicated search; or you can use Find (or Change) to initiate a new search (or
replacement) operation. The EXACT extended command controls the setting of the search
mode.
User action: Refer to your hardware documentation, consult with Omron Adept Customer
Service as needed for details about types and locations of fuses, and replace the fuse.
User action: Refer to your hardware documentation, and replace the fuse.
User action: Refer to your hardware documentation, and replace the fuse.
Page 648
System Messages - Alphabetical List
User action: Restart the servos and reboot the controller. Check the safety-related cables. If
the problem persists, contact Omron Adept Customer Service.
User action: Reboot eV+ and try again. Make sure your software is compatible with your
1394 nodes. Update the 1394 firmware.
User action: Use the SRV.NET monitor command to determine which network nodes are
causing this error. Verify that the proper eV+ software is being used. Verify that the servo
nodes were configured using the proper utility program version.
User action: Change one or more of the following: (1) move servo tasks off CPU #1 to allow
more time for trajectory generation, (2) upgrade the system processor to increase the
throughput, or (3) reduce the number of robots or axes that you are operating.
Page 649
System Messages - Alphabetical List
User action: Make sure nothing is obstructing the robot motion. Turn on high power and
try to perform the motion at a slower speed. If necessary, use the SPEC utility to increase
the maximum skew error.
User action: Try to perform the motion at a slower speed. Make sure nothing is obstructing
the robot's motion.
User action: Move the robot at a slower speed. If you are near a mechanical singularity,
move the robot using joint mode instead of world or tool mode.
Page 650
System Messages - Alphabetical List
User action: Report to Omron Adept Application Engineering the error and information
about any possible contributing circumstances. You can continue to use the system, but you
should keep in mind the possibility of a problem with the hardware.
User action: Make sure that you are using the calibration software (in the \CALIB\ directory)
that you received with the eV+ system you are using. If you are using the correct software,
note the code number, and call Omron Adept Customer Service.
User action: When an eV+ program is about to initiate robot motions, press the step button
and speed bar on the MCP. To continue the motion once it has started, you can release the
step button but must continue to press the speed bar. Set the controller to automatic mode.
User action: Configure the joint with continuous-rotation capability, or complete the belt
tracking or ALTER instruction before attempting to execute the SPIN instruction.
User action: High power must be re-enabled before robot motion may continue. If the trip
was not desired, make sure that Guarded Mode is disabled before the program relinquishes
control of the robot to the manual control pendant.
Page 651
System Messages - Alphabetical List
User action: Correct the source of the reported servo errors, referring to your system
hardware manual as required.
User action: Attempt to save as much as possible onto the disk. Then enter a ZERO
command or power down the controller and restart the system.
User action: Delete the configuration change request, or use a joint-interpolated motion
instruction.
User action: Review the syntax for the program instruction and edit the program to pass a
string of the correct length.
User action: Edit the program to generate strings of the proper length.
User action: Make sure that all the files within the subdirectory have been deleted. Make
sure that no other program tasks are referencing the subdirectory. Retry the delete
operation.
Page 652
System Messages - Alphabetical List
User action: Specify a shorter directory path in the file specification or in the DEFAULT
command. If you are accessing a foreign disk that contains more than 16 nested
subdirectories, you cannot read the files in subdirectories nested deeper than 16 levels. In
this case, you must use the system that created the disk to copy the files to a directory that is
nested less deeply.
User action: Review the description for the switch you are trying to enable, correct the error
condition, and try again.
User action: Check the SYSFAIL LEDs on the front edge of the boards. The board which has
failed should light its LED. Restart the system. Verify proper seating of the system boards and
correct device connections to the boards. Test the system with as many boards removed as
possible, adding boards back in until the problem board is identified. If the problem persists,
contact Omron Adept Customer Service.
User action: Check for a subsequent message. To determine if there was an unreported RSC
error, type listr error(task,4), where task is the number of the task that received the error.
If no additional information is available, call Omron Adept Customer Service.
Task = (None)
Explanation: The SEE editor DEBUG extended command has been used to initiate a
program debugging session for the current program. The debugger needs to know which
Page 653
System Messages - Alphabetical List
User action: Enter the desired task number, or press Return to access the same task used
for the last debugging session.
User action: Delete the existing template if it is no longer needed, or use a different
number in the VTRAIN.MODEL instruction.
User action: Check the position of the template in the image and make sure it is in the
desired place. Also, view the grayscale image in the current frame to make sure it is valid.
(For example, maybe a strobe light did not fire, or the lens cap is still on the camera.)
User action: Verify the correlation number supplied to the operation. Use the Models pull-
down menu in the vision window (or the VSHOW.MODEL program instruction) to get a list of
the templates currently defined in the vision system.
User action: Turn high power back on and restart the program. If the error persists, contact
Omron Adept Customer Service.
User action: For non-Omron Adept robots, use the SPEC utility to increase the value of the
high power time-out.
Page 654
System Messages - Alphabetical List
For Omron Adept robots, double-check your installation (cabling, AC power line voltages,
circuit breakers, amplifier retaining screws, cables, and contactors). For information about
the correct configuration for installation, refer to your Robot Instruction Handbook. Make
sure that the amplifier chassis is properly connected to a power source and is turned on. Try
again. If the problem persists, contact Omron Adept Customer Service.
User action: Do one or more of the following: (1) when toggling the MCP enable switch,
release it for a minimum of two seconds and a maximum of ten seconds, and then press it
back in; and (2) make sure that you are pressing the MCP enable switch and not the run/hold
button by mistake.
User action: Retry the motion after making any necessary program changes. If this error
occurs repeatedly, contact Omron Adept Application Engineering for assistance.
User action: Reenter the command or instruction but with the correct number of
arguments.
User action: Reenter the line with the correct number of indexes.
User action: Verify that multiple belts are not configured in eV+ with the same latch signal.
Check the belt latch cable quality.
Page 655
System Messages - Alphabetical List
User action: Specify all subsequent windows as /NOCLOSEABLE, or delete some existing
windows that appear in this pull-down.
(2) The eV+ Kermit driver experienced more errors than permitted by the KERMIT.RETRY
parameter.
User action: (1) Use the NET monitor command to determine the type of errors that have
occurred. Check for noise on the communication line, errors in the remote DDCMP
implementation, or program logic that sends messages faster than they can be processed.
Use the appropriate FCMND instruction to increase the maximum number of errors.
(2) Set the KERMIT.RETRY parameter to a larger value, increase the retry threshold on the
remote server, restart the Kermit session, and retry the operation that failed.
User action: Edit the program to wait for pending VLOCATE requests to complete before
issuing more.
User action: Where possible, change your window definitions to omit menu bars and scroll
bars. If necessary, use the utility program CONFIG_C to increase the number of window
buffers.
Page 656
System Messages - Alphabetical List
User action: Perform one or more of the following: (1) if the trajectory cycle time is less
than 16 msec, change it to the next longer time; (2) move servo tasks off CPU #1 to allow
more time for trajectory generation; (3) upgrade the system processor to increase the
throughput; (4) reduce the number of robots or axes that you are operating; or (5) if the
trajectory cycle time is set to 2 msec, make sure the servo interval is 1 msec.
User action: Verify that camera is plugged into the SmartVision EX vision controller. Make
sure the drivers are working properly. Change the camera if necessary.
User action: Verify the latch signal cabling. Verify the latch signal configuration in eV+.
User action: If the correct name was entered, create the program or variable using one of
the eV+ editors or the appropriate eV+ monitor commands, or by loading from a disk file.
(2) Using the SEE editor, an attempt has been made to use a macro, return to a memorized
cursor position, or perform a repeat string search or change without first performing the
appropriate initialization sequence.
User action: (1) Assign the variable a value or correct its name.
(2) Define the macro, record a cursor position, or enter the desired search/replacement string
(s).
User action: Change the monitor command to not reference the variables. Make sure that
the program is on the expected execution stack. You can place a PAUSE instruction or
breakpoint in the program to stop it while it is on the execution stack.
Page 657
System Messages - Alphabetical List
(2) If a program is reading a file, this error code merely indicates that the end of the file has
been reached and should not be interpreted as a real error.
(3) Treat the program as having been aborted early by user request.
User action: If safe to do so, attempt to enable HIGH POWER and note any different error
messages which occur. If this error persists, contact Omron Adept Customer Service.
User action: Continue to use the system. Contact Omron Adept Customer Service if this
error occurs repeatedly.
Page 658
System Messages - Alphabetical List
problem with the zero index signal, or the Counts per zero index configuration parameter
may be set incorrectly.
User action: Turn on high power, calibrate the robot, and continue to use the system. If this
error occurs repeatedly, contact Omron Adept Customer Service.
User action: If an external computer is communicating with eV+ when the error occurs,
verify that it is sending proper error codes. Otherwise, a software error is indicated. It would
be appreciated if you would report the error to Omron Adept Application Engineering. Please
include the details of the error message and exactly what you were doing at the time the
error occurred.
User action: Verify the spelling and syntax and reenter the line.
If the message occurred while loading a file from the disk, the file was probably created off-
line, or with a different eV+ system (different version or options), and the indicated line is not
compatible with the eV+ system in use.
User action: Correct the line or enter it again, making sure the spelling and usage are
correct. When using the SEE editor, an invalid statement is either converted to a bad line or
must be corrected before you can leave that line (depending on the setting of the AUTO.BAD
feature). In the case of an error while loading from the disk, edit the program to correct the
indicated instruction.
Page 659
System Messages - Alphabetical List
User action: Correct the line in the executing program or reenter the command with the
correct keyword.
User action: Make sure that the correct node address was specified. make sure that the
remote node is active and connected to the network. If explicit routing tables are used, make
sure that they specify this node.
User action: Verify the syntax for the operation and reenter the line, correcting the
mismatch. Delete conflicting global variables, if appropriate.
User action: None. This is an informational message. You may want to disable the
watchpoint to eliminate its slowing down of program execution.
User action: Verify that the eV+ controller is properly connected to the network. Reboot
eV+ and try again.
Page 660
System Messages - Alphabetical List
User action: Enter a CALIBRATE command or have your program execute a CALIBRATE
instruction.
User action: Use the FCOPY command if you want to move read-only programs from one
disk to another. Protected programs cannot be moved from one disk to another.
User action: If you want the PRIME command to change the monitor speed, type the
command enable set.speed at the keyboard.
User action: Do not use this system. The watchdog timer must be enabled for safe
operation of your system. The watchdog timer setting on the AWC cannot be changed by you.
Report this problem to Omron Adept Customer Service.
Page 661
System Messages - Numerical List
lost.
User action: Check your diskette to see if any data was lost. If so, it's too late now. Be more
careful in the future.
1 The command keys Ctrl+P, Ctrl+X, and Ctrl+Z are accepted only while using the eV+
The information for each message below consists of the message code, the text of the
message, and sometimes a comment about the applicability of the message. Angle brackets
(<...>) are used to enclose a description of an item that appears in that position. All numbers
are decimal.
The system messages are arranged numerically by system message code. For complete
details on a message, click the message number to view the complete documentation. For a
list of the system messages sorted alphabetically by the first character of the message, see
System Messages - Alphabetical List.
Warning Messages (number 50-299) lists warning messages that you may receive.
Error Messages (negative numbers) lists the error messages that you may receive.
Informational Messages
0 Not complete
Page 662
System Messages - Numerical List
execution)
3 Program completed
8 (HALTED)
9 (PAUSED)
11 Change?
15 Program HOLD
Page 663
System Messages - Numerical List
Warning Messages
53 *Protected program*
Error Messages
-2 *Obsolete keyword*
Page 664
System Messages - Numerical List
Page 665
System Messages - Numerical List
-358 *Canceled*
-400 Aborted
Page 666
System Messages - Numerical List
Page 667
System Messages - Numerical List
Page 668
System Messages - Numerical List
Page 669
System Messages - Numerical List
Page 670
System Messages - Numerical List
Page 671
System Messages - Numerical List
Page 672
System Messages - Numerical List
Page 673
System Messages - Numerical List
Page 674
System Messages - Numerical List
Page 675
System Messages - Numerical List
Page 676
System Messages - Numerical List
Page 677
System Messages - Numerical List
Page 678
System Messages - Numerical List
-999 Aborted
Page 679
System Messages - Numerical List
Page 680
System Messages - Numerical List
Page 681
Index
Index
Copyright Notice 3
Notice, copyright 3
Page 682
OMRON Corporation Industrial Automation Company Authorized Distributor:
Kyoto, JAPAN
Contact: industrial.omron.eu
Regional Headquarters
OMRON EUROPE B.V. OMRON ELECTRONICS LLC
Wegalaan 67-69, 2132 JD Hoofddorp 2895 Greenspoint Parkway, Suite 200 Hoffman Estates,
The Netherlands IL 60169 U.S.A.
Tel: (31)2356-81-300/Fax: (31)2356-81-388 Tel: (1) 847-843-7900/Fax: (1) 847-843-7787