Delta Tau GEO BRICK LV User Manual

Page of 440
Turbo PMAC User Manual 
Motor Compensation Tables and Constants 
165 
Joining the Loops 
After the inner loop is working properly, and have done the basic setup of the outer loop, join the loops 
together. 
To Integrate Outer Loop Command or Not 
Sometimes the output from the outer loop will be numerically integrated before being used as a position 
input to the inner loop.  If it is integrated, the outer loop’s command itself will effectively be a velocity 
value; if it is not integrated, the value will be a position value.  In general, if the steady-state condition 
with the outer loop engaged has a non-zero velocity, as in web-tensioning applications, this value should 
be integrated.  However, if the steady-state condition is at zero velocity, as in part-insertion applications, 
integration should not be used. 
Outer Loop Output Address: Ixx02 
The key to this technique is to link the output of the outer loop to the master position of the inner loop.  
The Ixx02 variable for the outer loop’s motor that specifies the address of the servo output can specify 
any open register.  This is just a temporary holding register for the value, so it does not need to be the 
register of an output device.  Commonly the open RAM registers in the address range $0010F0 - $0010FF 
are used to hold this value. 
If Ixx01 for this motor is set to 2, the register specified by Ixx02 will be an X register.  (Note that the 
outer-loop motor will never be commutated, so it will never be necessary to set bit 0 of Ixx01 to 1.)  If 
you do not need to integrate this value before using it for the inner loop (the decision is discussed below), 
writing this value to an X register will permit the inner loop to read this value directly, without any 
processing by the encoder conversion table.  However, if the value must be integrated, Ixx01 for the 
outer-loop motor should be set to 0 so the value is written to a Y register. 
Integrating in the Conversion Table 
If the command output of the outer loop is integrated before using it as an input into the inner loop, treat 
the holding register the same as the register from an Acc-28 A/D converter.  A conversion-table entry that 
integrates a register of Acc-28 style has a leading hex method digit of $5.  The register is to be treated as a 
signed quantity, so the bit-19 mode switch bit is set to 0.  For example, if the holding register were at 
address Y:$0010F0, the entry’s first line would be $5010F0. 
The second line of the entry is an offset value that is subtracted from the reading before integration.  Since 
this is using a computed and not measured value, this should be set to 0. 
Inner Loop Master Address: Ixx05 
The Ixx05 master position address variable for the inner loop’s motor contains the address of the result in 
the encoder conversion table.  This must be an X register.  If the outer loop wrote its output directly to an X 
register, the inner-loop motor’s Ixx05 can contain the address of this same register.  For example, if Motor 4 
were to pick up a value left in open register X:$10F1, this could be specified with I405=$10F1
If the outer-loop’s command were processed through the conversion table, this Ixx05 will contain the 
address of the result in the conversion table.  Remember that you can set this address by reference to the 
conversion-table I-variable number.  If the conversion-table entry were set up with I8004 and I8005, you 
could specify the use of the resulting value for Motor 5 with I505=@I8005
Inner-Loop Following Enable and Mode: Ixx06 
The Ixx06 variable for the inner loop’s motor controls whether or not the outer loop is engaged.  When bit 
0 of Ixx06 is set to 0, the outer loop is not engaged, and the inner loop will function independently.  When 
bit 0 of Ixx06 is set to 1, the outer loop is engaged, and its output will command a modification to the 
total commanded position of the inner loop.