Delta Tau GEO BRICK LV User Manual

Page of 440
 
Turbo PMAC User Manual 
256
 
Setting Up a Coordinate System 
Multiple-Motor Axes 
More than one motor may be assigned to the same axis in a coordinate system.  This is common in gantry 
systems, where motors on opposite ends of the cross-piece are always trying to do the same movement.  
By assigning multiple motors to the same axis, a single programmed axis move in a program causes 
identical commanded moves in multiple motors.  This is commonly done with two motors, but up to eight 
motors have been used in this manner with Turbo PMAC.  Remember that the motors still have 
independent servo loops, and that the actual motor positions will not necessarily be exactly the same. 
Coordinating parallel gantry motors in this fashion is in general superior to using a master/slave technique 
(which can be done on Turbo PMAC with the position following feature described in the Synchronizing 
Turbo PMAC to External Events section of this manual).  In the master/slave technique, the actual 
trajectory of the master as measured at the encoder, with all of the disturbances and quantization errors, 
becomes the commanded trajectory for the slave, whose actual trajectory will have even more errors.  The 
roughness in the slave motor’s commanded trajectory makes it difficult or impossible to use feedforward 
properly, which introduces a lag.  True, if the master gets a disturbance, the slave will see it and attempt to 
match it, but if the slave gets a disturbance, the master will not see it. 
Care must be taken in the startup and homing of gantry motors that have a tight mechanical linkage.  In 
general, the motors will power up not quite in ideal alignment with each other.  The usual procedure is to 
do a homing search move on one motor with the second motor slaved to it, followed by an offset back out 
far enough that the second motor knows which way it has to go to its home trigger.  Next the second motor 
is made the master and is told to do a homing search move with the first motor slaved to it.  This will leave 
the first motor slightly off from its home position; it can now be told to go there with just a J=0 command.  
The slaving is then turned off, and the motors are commanded identically through joint axis commands. 
Phantom Axes 
An axis in a coordinate system can have no motors attached to it (a phantom axis), in which case 
programmed moves for that axis cause no movement, although the fact that a move was programmed for 
that axis can affect the moves of other axes and motors.  For instance, if sinusoidal profiles are desired on a 
single axis, the easiest way to do this is to have a second, phantom axis and program circularly interpolated 
moves. 
Axis Definition 
A coordinate system is established by using axis definition statements.  An axis is defined by matching a 
motor (which is numbered) to one or more axes (which are specified by letter).   
Matching Motor to Axis 
The simplest axis definition statement is something like #1->X.  This simply assigns motor #1 to the X-
axis of the currently addressed coordinate system.  When an X-axis move is executed in this coordinate 
system, motor #1 will make the move.   
Scaling and Offset 
The axis definition statement also defines the scaling of the axis’ user units.  For instance,  
#1->10000X also matches motor #1 to the X axis, but this statement sets 10,000 encoder counts to one 
X-axis user unit (e.g. inches or centimeters).  This scaling feature is used almost universally.  Once the 
scaling has been defined in this statement, you can program the axis in engineering units without ever 
needing to deal with scaling again. 
The statement #1->10000X+20000 also sets the axis zero at 20,000-count (2-user-unit) distance from 
the motor zero (home position).  This offset is rarely used.  Further, an axis definition statement can match 
a motor to a linear combination of Cartesian axes (see below), which allows for rotation of a coordinate 
system, or orthogonality correction.