Reference Manual

Turbo PMAC/PMAC2 Software Reference
Turbo PMAC Global I-Variables 109
Note:
It is possible to set this parameter outside the range -2
35
to +2
35
(+64 billion) if a
couple of special things are done. First, the Ixx08 scale factor for the motor must
be reduced to give the motor the range to use this position (motor range is
+2
42
/Ixx08). Second, the variable value must be calculated inside Turbo PMAC,
because the command parser cannot accept constants outside the range +2
35
(e.g. to
set I127 to 100 billion, use I127=1000000000*100).
Example:
Motor #4 drives a rotary table with 36,000 counts per revolution. It is defined to the A-axis with #4-
>100A (A is in units of degrees). I427 is set to 36000. With motor #4 at zero counts (A-axis at zero
degrees), an A270 move in a program is executed in Absolute mode. Instead of moving the motor from 0
to 27,000 counts, which it would have done with I427=0, PMAC moves the motor from 0 to -9,000
counts, or -90 degrees, which is equivalent to +270 degrees on the rotary table.
Ixx28 Motor xx In-Position Band
Range: 0 - 8,388,607
Units: 1/16 count
Default: 160 (10 counts)
Ixx28 specifies the magnitude of the maximum following error at which Motor xx will be considered “in
position” when not performing a move.
Several things happen when the motor is “in-position”. First, a status bit in the motor status word (bit 0
of Y:$0000C0 for Motor 1) is set. Second, if all other motors in the same coordinate system are also “in-
position”, a status bit in the coordinate system status word (bit 17 of Y:$00203F for C.S. 1) is set.
Third, for the hardware-selected (FPD0/-FPD3/) coordinate system if I2=0 (Turbo PMAC only) or for
the software addressed (&n) coordinate system if I2=1 outputs to the control panel port (Turbo PMAC
only) and to the interrupt controller are set.
Technically, five conditions must be met for a motor to be considered “in-position:
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 this parameter;
4. The move timer must not be active;
5. The above four conditions must all be true for (Ixx88+1) consecutive scans.
The over timer is active (the motor running a program/definite-time move status bit is 1) during any
programmed or non-programmed move, including DWELLs and DELAYs in a program to have this bit
come true during a program, do an indefinite wait between some moves by keeping the program trapped
in a WHILE loop that has no moves or DWELLs.
To have a status bit indicating whether the magnitude of the following error is above or below a threshold
(condition 3 only), use the warning following error status bit with Ixx12 as the threshold.
If global variable I13 is set to 1, Turbo PMAC also performs an in-position check every servo cycle as
part of the foreground tasks. In this check, it only evaluates the first four conditions listed above. This
task controls a separate motor status bit: foreground in-position (bit 13 of Y:$0000C0 for Motor 1). This
function can be used when the background in-position check is not fast enough.
Note:
The units of this parameter are 1/16 of a count, so the value should be 16 times the
number of counts in the in-position band.