Delta Tau GEO BRICK LV Guide D’Exploitation

Page de 760
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.