User's Manual

PMAC User Manual
174 Writing Programs for PMAC
Feedrate Axes
If a multi-axis move is specified by feedrate (and not time), there is further flexibility by specifying which
axes control the vector feedrate, using the FRAX command (on-line or buffered), and velocity is
apportioned among these axes so that their vector combination (root of sum of squares) is the specified
velocity. PMAC calculates the move time as the vector distance of the feedrate axes divided by the
programmed feedrate. There is no need to compute each axis’ velocity individually for each different
angle of movement. If a simultaneous move is requested of a non-feedrate axis, that move is completed
in the same time as that computed for the feedrate axes. The default feedrate axes for a coordinate system
are the X, Y, and Z axes.
Note:
If a feedrate-specified move is requested only of non-feedrate axes, PMAC
calculates the vector distance to be zero (because none of the feedrate axes move),
yielding a zero move time. Therefore, the move time will be controlled by the
acceleration time and/or the motor velocity limits.
Example Vector Feedrate Calculations
INC ; Dist = SQRT(3
2
+ 4
2
) = 5
FRAX(X,Y) ; Move Time = 5/10 = 0.5
X3 Y4 F10 ; Vx = 3/0.5 = 6
; Vy = 4/0.5 = 8
INC ; Dist = SQRT(3
2
+ 4
2
) = 5
FRAX(X,Y) ; Move Time = 5/10 = 0.5
X3 Y4 Z12 F10 ; Vx = 3/0.5 = 6
; Vy = 4/0.5 = 8
; Vz = 12/0.5 = 24
INC ; Dist = SQRT(3
2
+ 4
2
+ 12
2
) = 13
FRAX(X,Y,Z) ; Move Time = 13/10 = 1.3
X3 Y4 Z12 F10 ; Vx = 3/1.3 = 2.31
; Vy = 4/1.3 = 3.08
; Vz = 12/1.3 = 9.23
INC ; Dist = 0
FRAX(X,Y,Z) ; Move Time = 0/10 = 0 (<TA)
C10 F10 ; Acceleration limited move
Velocity Limit
The velocity thus requested of each motor is constrained by the velocity limit for that motor (Ix16). If a
request exceeds this limit, all motors involved in the move are slowed in proportion, so that the motor
does not exceed its limit, but the path in space is preserved.
Note:
If PMAC is operating in move segmentation mode (I13>0), which is required for
circular interpolation, this Ix16 velocity limit is not observed.
The Blending Function
If more than one move is specified in succession without any intervening dwell commands, each motor
blends smoothly from its velocity for the first move to the velocity for the second move according to the
acceleration and S-curve values in force at the time. This change in speed (which can be a zero change)
starts at the point where the first move would start to decelerate to a stop at its specified end position, not
at the first move's endpoint itself. (However, if Ix92 is set to one, blended moves in that coordinate
system always come to a stop before the next move.)