DO(REQUIRED) @0(TASK NUMBER) JMOVE(MOVE COMMAND) 10(BY HOW MUCH)
ESTOP
(activates e-stop)
EXECUTE taskNum program
(executes the program on the directed task number)
LIST expression
(lists the value of the expression)
PANIC
(stops all robots without turning off power)
PARAMETER parameter[i]=val
(sets the parameter to val)
PARAMETER parameter[i]
(displays parameter val)
PARAMETER
(displays all paramter values)
STORE
(stores RAM into NVRAM)
SWITCH switch[i]
(display setting of switch)
WHERE
(displays robot position and configuration)
USEFUL COMMANDS
JMOVE j1,..,jn (joint interpreted move to joint values. ommited values “,,” are not moved)
MOVE loc (joint interpolated move to ‘loc’)
MOVES loc (straight line move to ‘loc’)
SIG
ACCEL acceleration(0-100), deceleration(0-100)
APPRO location, distance (joint interpolated movement to z above location by distance)
APPROS location, distance (staight-line movement to z above location by distance)
AUTO var, var, var.. (local non-pervasive variable)
LOVAL var, var, var.. (local pervasive variable)
GLOBAL var, var, var.. (globale variable)
NOTE ON VARIABLES: MUST BE DECLARED AFTER PROGRAM STATEMENT, BEFORE EXECUTABLES
BITS firstRegisterIndex, numRegisters=value (changes output parsing ‘value’ in binary over outputs begining at ‘firstRegisterIndex’ and indexing for numRegisters)
BRAKE (stops robot motion imediately at decel rate. program then proceeds)
BREAK (pauses program until current motion is complete. program then proceeds)
CALL program (JSR)
COARSE tolerance (makes movement less precisse but faster, the larger the tolerance, as a percent, the less accurate the move)
DECOMPOSE array[i]=loc (takes the 6 position variables of ‘loc; and places them into the array begining at index=’i’. in the event of a multidimension array, [i_1,i_2,i_n], only ‘i_n’ will be incremented
DELAY time (delays all motion for time, in seconds, all other aspects of program will run up until next motion)
DEPART distance (moves tool upwards by distance)
DRIVE joint, change, speed (moves the joint at speed as %*monitor speed to incremental change)
FINE tol (adjust motion tolerance to ‘tol’ which is a percent of standard, so smaller is tighter)
HALT (hard program exit, blows through all stacks)
HERE loc (sets the location or location offset as the current robot position)
JHERE var1,...,varn (sets current joint values to variables in sequence)
LEFTY (makes robot move as left handed arm)
RESET (turns off all external output signals)
RETURN
RIGHTY (sets robot in right handed mode)
SET loc1=loc2 (sets ‘loc1’ equal to ‘loc2’)
SET loc1=loc2:tran (sets ‘loc1’ equal to the result of ‘loc2’ post transformation
SIGNAL reg1,..,regn (turns register on or off. positive value is on negativ value is off)
MULTIPLE (allows complete wrist movement)
SINGLE (limits wrist movement to +/* 180 of center)
SPEED var (sets speed to var, 100 is standard % speed, MMPS gives mm/s)
STOP (equivalent to RETURN in the primary frame)
SWITCH switch=var (sets the switch value to ‘var’)
TIMER timer=time (sets the timer, 1-15, to the time, in seconds precise to milliseconds, time will count to zero)
TOOL val (sets the tool offset to val)
WAIT bool (waits until the boolean is true)
REFERENCE FRAMES
HERE frame:loc (defines loc at the current location as a transformation from frame)
MOVE loc:loc (moves to the vector of loc+loc)
TRANS(x,y,z,r,p,q) (returns the transformation)
CONTROL STRUCTURES
END (needed after everything
EXIT (blows out all control structures)
FOR var = i_0 TO i_f inc
GOTO label (labels are done as integers at line start)
SYSTEM SWITCHES
AUTO.POWER.OFF (if on then power will shut off for motion errors
DRY.RUN (will run without any robot motion)
ESTOP.SIGNAL (determines whether estop status is output to DO 1)
POWER (changes high power state)
UPPER (for all boolean operations with strings, all characters are interpreted as uppercase)
TRANSFORMATION STUFF
FRAME(loc1, loc2, loc3, loc4) (sets up a really accurate axis system)
INVERSE(transformation)
RX(ang) (rotates about the X-axis)
RY(ang) (rotates about the Y-axis)
RZ(ang) (rotates about the Z-axis)
SCALE(trans, scale) (returns the transformation by scale)
SHIFT(trans BY x,y,z) (returns trans shifted by x,y,z)
TOOL (returns the tool offset)
TRANS(x,y,z,y,p,r) (returns trans defined by values)
FUNCTIONS
SIG(sig1,..,sign) (returns logical and of input signals)
INRANGE(loc) (returns values indicating whether loc is inrange. If 0, loc is in range. If bit 14 is active (8192), loc is too close. If bit 15 is active (16384), loc is too far.)
var BAND var (binary and)
STATE(select) (returns a value indicating various factors defining the state of the robot)
PASSING ARGS
for undefined args use DEFINED to test arg list
INTERUPTS
REACT
REACTE
REACTI
STARTUP ROUTINE
this can be done as a seperate program which is called from elsewhere
initialize global variables
set I/O ports as logically named global vars. Ex.: cycle.start = 1001
set signals to startup preffered state
set up transformations ex: SET pallet = TRANS(62.4,-215.978,293.898,0,180,-46.208)
CONSOLE OUTPUT:
TYPE output1,..,output n (outputs with modified text, limited to 512 char)
/S (acting as a modifier will prevent Carriage Return)
Ex: TYPE /S, "This "
SETTING UP AUTOSTART
Create a program named AUTO, as well as any other programs required for the application. The AUTO program should initialize the application and possibly start other user programs in tasks 0, 1, and 2.
Create and initialize any global variables to be used by the application, for example, arm positions.
Use the STORE monitor command to store all programs and variables on NVRAM.
ENABLE AUTOSTART in the monitor
SIGNALS
signals are simply booleans.
1-8 are outputs
2001-2512 are soft software signals
THINGS TO LOOK INTO
CALIBRATE (command that calibrates encoders?)
EVENT
TOOL
KILL
EXECUTE
<> (appears to be !=)
do you need to declare global variables which have already been initialized?