User's Manual
Turbo PMAC User Manual
Motor Compensation Tables and Constants 145
Examples:
These first three 3-line entries process 3 16-bit inputs on a 48-bit Acc-14D/V card
I8000=$378A00 ; Filtered parallel Y-data from first Acc-14D/V
I8001=$010000 ; Use 16 bits starting at bit 0
I8002=256 ; Max change of 256 LSBs per servo cycle
I8003=$378A00 ; Filtered parallel Y-data from first Acc-14D/V
I8004=$010010 ; LSB from bit 16, use 16 bits (high 8 bits from next address)
I8005=256 ; Max change of 256 LSBs per servo cycle
I8006=$378A01 ; Filtered parallel Y-data from first Acc-14D/V
I8007=$010008 ; LSB from bit 8, use 16 bits
I8008=256 ; Max change of 256 LSBs per servo cycle
These next several examples read MACRO registers unshifted
I8000=$2F8420 ; Unshifted unfiltered read of IC 0 Node 0 Reg 0 (address $078420)
I8001=$018000 ; Use 24 bits starting at bit 0
I8002=$2F8424 ; Unshifted unfiltered read of IC 0 Node 1 Reg 0 (address $078424)
I8003=$018000 ; Use 24 bits starting at bit 0
This next example reads data in byte-wide pieces from an Acc-14E
I8000=$F78C00 ; Read from $78C00
I8001=$314000 ; Filtered parallel Y-data 20 bits, low byte, start at bit 0
I8002=150 ; Max change of 150 LSBs per servo cycle
This example reads a timer register as parallel data for MLDT feedback
I8003=$378000 ; Filtered parallel read from Servo IC 0 Channel 1
I8004=$013000 ; Read 19 bits starting at bit 0
I8005=75 ; Max valid change of 75 LSBs per servo cycle
Exponential Filter
The conversion table can perform filtering functions on incoming data by executing the exponential-filter
entry. This entry implements a low-pass (single-pole IIR) filter on the source data. It is mainly useful for
master position data; its use for feedback data can be problematic because of the delays it introduces and
the resulting stability problems in the feedback loop.
This is a three-line entry. The first line uses a $D method digit, followed by the address. The source data
must be in the X-register of this address, and usually is the result of a previous entry in the conversion
table (addresses $3501 - $35C0).
The second line contains the maximum change in the source data that will be permitted in a single servo
cycle.
The third line contains the filter gain. Essentially, this is an inverse time constant; the gain term is set to
2
23
/(T
f
+1), where T
f
is the filter time constant expressed in servo cycles.
Example:
I8004=$07820C ; 1/T interpolation of Servo IC 2 Encoder 4
I8005=$D03504 ; Exponential filter of I8004 result
I8006=4000 ; Max permitted change (LSBs/servo cycle)
I8007=524288 ; Filter gain for 15-servo-cycle time constant [2
23
/(15+1)]
I1205=@I8007 ; Use filtered value as master position for Motor 12
Sum and Difference
A sum and difference entry in the conversion table can be used to do many useful tasks:
• Adding or subtracting two results in the table
• Changing the sign of a result in the table
• Integrating the value of a result in the table
• Integrating the sum or difference of two results in the table