Reference Manual

Turbo PMAC/PMAC2 Software Reference
Turbo PMAC Global I-Variables 44
Note:
If I11 is greater than zero, defining a definite time for calculations, and Turbo
PMAC cannot complete the calculations for the first move of a sequence by the
end of the I11 time, Turbo PMAC will terminate the running of the program with a
run-time error.
I12 Lookahead Time Spline Enable
Range: 0 - 1
Units: none
Default: 0
I12 permits the enabling of a new lookahead technique called time splining. If I12 is set to 1, all coordinate
systems that are executing lookahead will use this technique. If I12 is set to 0, none of them will.
Time splining permits smoother transitions from one vector velocity to another during lookahead when
there is little or no change in direction. As long as the commanded vector velocity going into lookahead
does not change by more than a factor of two in a single Isx13 segment, the velocity change will be made
without any velocity undershoot.
Without this technique, large changes in vector velocity that have to be extended by lookahead can cause
significant velocity undershoot.
Setting I12 to 1 adds a small but potentially significant computational load to the lookahead calculations.
I13 Foreground In-Position Check Enable
Range: 0 - 1
Units: none
Default: 0
I13 controls whether the activated motors on Turbo PMAC check for in-position as a foreground servo-
interrupt task or not. If I13 is set to the default value of 0, in-position checking is done as a lower-priority
background task only. If I13 is set to 1, a basic in-position check operation is done for all active motors
every servo interrupt as well.
The foreground in-position check function is intended for very rapid move-and-settle applications for
which the background check is too slow. Enabling this function permits the fastest possible assessment of
whether a motor is in position.
For the foreground check to consider a motor to be in position, the following four conditions must all be
met:
1. The motor must be in closed-loop control;
2. The desired velocity must be zero;
3. The magnitude of the following error must be less than the motor’s Ixx28 parameter;
4. The move timer for the motor must not be active.
Note:
Unlike the background in-position check, there is no capability in the foreground
check to require these conditions be true for Ixx88+1 consecutive scans.
If the foreground check decides that the motor is in position, it sets bit 13 of the motor status word
(Y:$0000C0 for Motor 1) to 1; if it decides that the motor is “not in position”, it sets this bit to 0. This
foreground status bit is distinct from the background motor status bit at bit 0 of the same word. The
coordinate system’s in-position status bit, which is the logical OR of the background motor in-position
bits for all of the motors in the coordinate system, is not affected by the foreground in-position check.
Setting I13 to 1 to enable the foreground in-position check adds about 5% to the required time of the
servo-interrupt tasks for each active motor.