User's Manual

PMAC User Manual
166 Writing Programs for PMAC
Motion Program Trajectories
Among the PMAC outstanding characteristics are the power and flexibility of its trajectory generation
algorithms. These algorithms allow a variety of difficult maneuvers to be performed, and permit the
choice of tradeoffs between ease of use and degree of control. It is important to remember that these
trajectories are series of commanded positions only. It is up to the servo loops for each axis to try to
make the actual positions match the commanded positions. All the times, speeds, distances, and profiles
discussed in this section are commanded ones, unless otherwise noted.
Linear Blended Moves
The easiest class of moves to make is the linear blended move category. In this type of move, an axis
moves toward the target position at a designated speed, accelerating to and decelerating from this speed in
a controlled fashion. If more than one move is specified in succession with no pause in between, the first
move will blend into the second with the same type of controlled acceleration as is done to and from a
stop.
Linear blended move mode is the default mode for motion programs. If in another move mode, the
program can be put into this mode with the LINEAR statement. The program can be taken out of
LINEAR mode with another move mode statement (e.g. CIRCLE1, CIRCLE2, RAPID, PVT, SPLINE).
It is good programming practice to declare the LINEAR mode in each program, and not rely on the
default. The LINEAR statement is equivalent to the RS-274 G-Code G01.
Acceleration Parameters
The acceleration to and from velocity can be constant, providing trapezoidal velocity profiles, it can be
linearly varying, and yielding S-curve velocity profiles, or it can be a combination of the two. Specify the
time for the full acceleration (TA — default parameter is coordinate system I-variable Ix87), and the time
in each half of the S (TS — default parameter Ix88). If the specified TA time is less than twice the
specified TS time, the TA time used will be twice TS (to get pure S-curve acceleration, set TA to 0).
PMAC can only use integer values for TA and TS. If a non-integer value is specified, PMAC will round
it to the nearest integer before using it in trajectory calculations.
Acceleration Limit
If the acceleration thus specified exceeds the maximum programmed acceleration (set by Ix17 in
counts/msec
2
) for any motor involved in the move, the acceleration for all motors in the move is
decreased in proportion so that no motor exceeds this limit. The path through space is not changed, nor is
the shape of the velocity profile for any motor. To specify acceleration rate directly, TA and TS should
be set to very small to violate the limit, in which case the acceleration is controlled by the motors' I-
variables Ix17.
When too Effective
When blending linear moves together, the Ix17 limit is enforced even for the intermediate decelerations to
a stop that are removed to blend into the next move. As PMAC calculates each move in the blended
sequence, it has to assume that it could be the last move in the sequence, and it will try to make sure that
the deceleration to a stop at the programmed position obeys this limit. This can result in a deceleration
time longer than the programmed move time (specified either directly with TM, or indirectly by distance
over F feedrate), which will cause the move to execute at lower than the programmed speed. This can be
especially limiting when moves are broken into very small pieces to be blended together. The Ix17 limit
must be set higher than the top speed divided by the smallest segment time in order not to limit the speed.
This can make it too high for effective acceleration control.