Reference Manual

Turbo PMAC/PMAC2 Software Reference
Turbo PMAC On-line Command Specification 303
Note:
Turbo PMAC will reject this command, reporting an ERR003 if I6=1 or 3, if any
COMP buffer exists for a lower numbered motor, or if any TCOMP, BLCOMP,
TBUF, ROTARY, LOOKAHEAD, or GATHER buffer exists. Any of these
buffers must be deleted first. COMP buffers must be defined from high-numbered
motor to low-numbered motor, and deleted from low-numbered motor to high-
numbered motor.
It is possible to directly specify a source motor (with #{source}), or source and target motors (with
#{source},#{target}), in this command. Either or both of them may be different from the motor
to which the table "belongs". (In other words, just because a table belongs to a motor does not necessarily
mean that it affects or is affected by that motor’s position.)
The table can operate as a function of either the desired (commanded) or actual position of the source
motor. If a D is entered immediately after the source motor number (which must be explicitly declared
here), the table operates as a function of the desired position of the source motor; if no D is entered, the
table operates as a function of the actual position of the source motor.
The last item on the command line, {count length}, specifies the span of the compensation table in
encoder counts of the source motor. In use, if the source motor position goes outside of the range 0 to
count-length, the source position is rolled over to within this range before the correction is computed.
The spacing between entries in the table is {count length} divided by {entries}.
On succeeding lines will be given the actual entries of the table. The units of these entries are 1/16 count,
and the entries must be integer values. The first entry is the correction at one spacing from the motor zero
position (as determined by the most recent home search move or power-up/reset), the second entry is the
correction two spacings away, and so on. The correction is the amount added to the nominal position to
get the corrected position. The correction at the zero position is zero by definition.
The last entry in the table represents the correction at {count length} distance from the motor’s zero
position. Since the table has the capability to roll over, this entry also represents the correction at the
motor’s zero position. If it is set to a non-zero value, the correction at zero will also be non-zero.
Example:
#1 DEFINE COMP 4,2000 ; Create table for motor 1
ERR003 ; Turbo PMAC rejects this command
DELETE GATHER ; Clear other buffers to allow loading
DELETE ROTARY
#8DEFINE COMP 500,20000 ; Uses motor 8 as source and target, 500 entries,
; spacing of 40 counts
#7DEFINE COMP 256,#3D,32768 ; Belongs to motor 7, uses #3 desired position as
; source, #7 as target, 256 entries, spacing of 128 counts
#6 DEFINE COMP 400,#5,#4,40000 ; Belongs to motor 6, uses #5 as source, #4 as target,
; 400 entries, spacing of 100 counts
#5 DEFINE COMP 200,#1D,#1,30000 ; Belongs to motor 5, uses #1 desired position as
; source and target, 200 entries, spacing of 150 count
I51=1 ; Enable compensation tables
See Also:
Leadscrew compensation (Setting Up a Motor)
I-variable I51
On-line commands {constant}, LIST COMP, LIST COMP DEF, DELETE COMP, DELETE
GATHER, DELETE ROTARY, SIZE
DEFINE COMP (two-dimensional)
Function: Define two-dimensional position compensation table