User 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. 










