Reference Guide

PMAC Quick Reference Guide
44 Motion Programs
If calculations stop on condition 1 or 2, the calculation flag is cleared and will not be set again until actual
motion progresses into the next move (1) or a new RUN command is given (2). If calculations stop on
conditions 3 or 4, the flag remains set, so calculations will resume at the next RTI. In these cases there is
an empty (no-motion) loop, the motion program acts much like a PLC 0 during this period.
If PMAC cannot finish calculating the trajectory for a move by the time execution of that move should
begin, PMAC will abort the program, showing a run-time error in its status word.
Coordinate Systems
A coordinate system in PMAC is a grouping of one or more motors for the purpose of synchronizing
movements. A coordinate system (even with only one motor) can run a motion program; a motor cannot.
PMAC can have up to eight coordinate systems, addressed as &1 to &8, in a flexible fashion (e.g. eight
coordinate systems of one motor each, one coordinate system of eight motors, four coordinate systems of
two motors each, etc.).
In general, if certain motors should move in a coordinated fashion, put them in the same coordinate
system. To move them independently of each other, put them in separate coordinate systems. Different
coordinate systems can run separate programs at different times (including overlapping times), or even
run the same program at different (or overlapping) times.
A coordinate system must be established first by assigning axes to motors in axis definition statements. A
coordinate system must have at least one motor assigned to an axis within that system, or it cannot run a
motion program, even non-motion parts of it. When a program is written for a coordinate system, if
simultaneous motions are wanted of multiple motors, their move commands are simply put on the same
line and the moves will be coordinated.
Axis Definitions
An axis is an element of a coordinate system. It is similar to a motor, but not the same thing. An axis is
referred to by letter. There can be up to eight axes in a coordinate system, selected from X, Y, Z, A, B, C,
U, V, and W. An axis is defined by assigning it to a motor with a scaling factor and an offset (X, Y, and
Z may be defined as linear combinations of three motors, as may U, V, and W). The variables associated
with an axis are scaled floating-point values.
In the vast majority of cases, there will be a one-to-one correspondence between motors and axes. That
is, a single motor is assigned to a single axis in a coordinate system. Even when this is the case, however,
the matching motor and axis are not completely synonymous. The axis is scaled into engineering units,
and deals only with commanded positions. Except for the PMATCH function, calculations go only from
axis commanded positions to motor commanded positions, not the other way around.
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 crosspiece 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. Commonly, this is done with two motors, but up to eight
motors can be used in this manner with PMAC. Remember that the motors still have independent servo
loops, and that the actual motor positions will not necessarily be exactly the same.
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.