User's Manual

Turbo PMAC User Manual
210 Making your Application Safe
For a LINEAR or CIRCLE-mode move executed with the special lookahead buffer active and exceeding
a desired position limit, the move will come to a stop along the programmed path exactly at the limit,
decelerating as controlled by the Ixx17 maximum-acceleration parameters for the motors in the
coordinate system. This is the equivalent of the \ quick-stop command. In this case, it is possible to
resume motion along the path after changing the offending limit parameter. (If bit 14 of Ixx24 is set to 1,
motion of these moves in lookahead mode will not stop on hitting a limit; instead, the commanded
position of the offending motor will saturate at the limit value.)
Motor variable Ixx41 defines the difference (in counts) between the motor’s actual and desired position
limits, permitting the desired position limits to be set inside the actual position limits. The positive
desired position limit is set at (Ixx13 - Ixx41); the negative desired position limit is set at (Ixx14 + Ixx41).
This can be important to ensure that the limit deceleration of path moves within lookahead stay on the
path, and to enable the program to be resumed if desired. Ixx41 should be set large enough to make sure
that the actual position during the deceleration from exceeding a desired position limit does not exceed
the actual position limit.
The software position limits are disabled automatically during homing search moves, until the homing
trigger is found. As soon as the trigger is found, the software limits are re-activated, using the new home
position as the reference. The software position limits are always referenced to the motor’s zero position,
whether established by a homing search move, an absolute position read, or just at power-up/reset. If the
programming origin of the axis assigned to the motor is offset, the software position limits are not
automatically offset with the programming origin.
Velocity Limits
Vector Velocity Limit
Turbo PMAC has a vector velocity limit parameter (Isx98), known as maximum feedrate for each
coordinate system. For programs run by this coordinate system, the value of any F (feedrate) command
in the program is compared to Isx98. If the value is greater than Isx98, the value of Isx98 is used instead
as the feedrate command. Isx98 is expressed in the same user velocity units (axis length units divided by
Isx90 milliseconds) as the feedrate command itself.
Motor Velocity Limit
Turbo PMAC has a programmable velocity limit parameter for each motor (Ixx16), in units of counts per
millisecond, which has several functions. First, it serves as the commanded velocity for the motor in
RAPID-mode moves if the motor’s rapid velocity-select parameter Ixx90 for the motor is set to the
default value of 1.
Second, for simple LINEAR-mode moves with move segmentation disabled (Isx13=0), Ixx16 serves as
the maximum velocity permitted. If the commanded velocity requested of a motor exceeds the limit for
the motor, the move is slowed so that the velocity limit is not exceeded. In a multi-axis programmed
move, all axes in the coordinate system are slowed proportionally so that no change in path occurs.
In addition, for LINEAR and CIRCLE-mode moves executed with segmentation enabled (Isx13>0) and
the special lookahead buffer active, it serves as the maximum velocity for each segment of the motion.
This can be particularly valuable for non-Cartesian systems programmed with Turbo PMAC’s kinematic
equations; very high motor velocities can inadvertently be commanded near “singularities.” The
lookahead algorithm can detect these problems beforehand, and slow the motion down along the path into
the problem point, observing the Ixx17 motor acceleration limits.
Velocities are compared to these limits assuming no feedrate override (% value of 100); if feedrate
override (a.k.a. time-base control) is used, the velocity limits scale with the override.