User's Manual

PMAC User Manual
138 Setting Up a Coordinate System
Coordinating parallel gantry motors in this fashion is in general superior to using a master/slave technique
(which can be done on PMAC with the position following feature described in the Synchronizing 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 then 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 Statements
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 almost universally used. Once the scaling has been
defined in this statement, the axis can be programmed in engineering units without ever needing to deal
with the 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 section below), which allows for rotation of a
coordinate system, or orthogonality correction.