Reference Manual
PMAC 2 Software Reference
210 PMAC On-Line Command Specification
Remarks
This command establishes a two-dimensional position compensation table assigned to the
addressed motor. The next (Rows+1)*(Columns+1)-1 constants sent to PMAC will be
placed into this table. This type of table is usually used to correct a motor position (X, Y, or
Z-axis) as a function of the planar position of two motors (e.g. X and Y axes). Once defined,
the tables are enabled and disabled with the variable I51.
The table belongs to the currently addressed motor, and unless otherwise specified in the
command line, it will use the addressed motor both as the first-motor source position data and
as the target for its corrections. Each motor can only have one table that belongs to it (for a
total of eight tables in one PMAC), but it can act as a source and/or a target for multiple
tables.
Note:
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, 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.
The first source motor must be specified in the command line with #{RowMotor}. The
second source motor may be specified in the command line with #{ColumnMotor}; if it is
not specified, PMAC assumes that the second source motor is the currently addressed motor.
The target motor may be specified with #{TargetMotor}; if it is not specified, PMAC
assumes that the target motor is the currently addressed motor.
In other words, if only one motor is specified in the command line, it is the first (row) source
motor, and the second (column) source and target motors default to the addressed motor. If
two motors are specified in the command line, the first one specified is the first (row) source
motor, the second is the second (column) source motor, and the target motor defaults to the
addressed motor. If three motors are specified, the first is the first (row) source motor, the
second is the second (column) source motor, and the third is the target motor. None of these
motors is required to be the addressed motor.
It is strongly recommended that you explicitly specify both source motors and the target
motor in this command, to prevent possible confusion.
The table can operate as a function of either the desired (commanded) or actual position of
the source motors. 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. If the target motor is also one of the source motors, it is recommended that
desired position be used, especially in high-gain systems, to prevent interaction with the
servo dynamics.
The last two items on the command line, {RowSpan} and {ColumnSpan}, specify the
span of the compensation table for the two source motors, row and column respectively,
expressed in encoder counts of those motors. In use, if the source motor position goes
outside of the range 0 to {Span}, the source position is “rolled over” to within this range
along this axis before the correction is computed.
The count spacing between columns in the table is {RowSpan} divided by {Columns}.
The count spacing between rows in the table is {ColumnSpan} divided by {Rows}. Note
carefully the interaction between the row parameters and the column parameters.
On succeeding command lines will be given the actual correction entries of the table, given