Reference Manual

Turbo PMAC/PMAC2 Software Reference
Turbo PMAC On-line Command Specification 305
It is strongly recommended that both source motors and the target motor is specified 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 as integer
numerical constants in text form. The units of these entries are 1/16 count, and the entries must be integer
values. The first entry is the correction at one column spacing from the zero position of the RowMotor,
and the zero position of the ColumnMotor. The second entry is the correction at two column spacings
from the zero position of the RowMotor, and the zero position of the ColumnMotor, and so on. Entry
number Columns is the correction at RowSpan counts of the RowMotor, and at the zero position of the
ColumnMotor (this entry should be zero to use the table along the edge, to match the implied zero
correction at the origin). These entries should be considered as constituting Row 0 of the table.
The next entry (entry Columns+1, the first entry of Row 1) is the correction at the zero position of the
RowMotor, and one row spacing of the ColumnMotor. The following entry is the correction at one
column spacing of the RowMotor and one row spacing of the ColumnMotor. The entry after this is
the correction at two column spacing of the RowMotor and one row spacings of the ColumnMotor.,
and so on. The last entry of Row 1 (entry 2*Columns+1) is the correction at one row spacing of the
RowMotor, and RowSpan counts of the ColumnMotor.
Subsequent rows are added in this fashion, with the corrections of the entries for Row n being at n row
spacings from the zero position of the ColumnMotor. The last row (row Rows) contains corrections at
ColumnSpan counts of the ColumnMotor.
The size of the table is limited only by available data buffer space in Turbo PMAC’s memory.
The following chart shows the order of entries into a 2D table with r rows and c columns, covering a span
along the row motor of RowSpan, and along the column motor of ColSpan:
Column Motor
Position v
Col 0
Col 1
Col 2
(Col j)
Col c
Row Motor
Position >
0
RowSpan/c
2*RowSpan/c
RowSpan
Row 0
0
[0]
E
1
E
2
E
c
Row 1
ColSpan/r
E
c+1
E
c+2
E
c+3
E
2c+1
Row 2
2*ColSpan/r
E
2c+2
E
2c+3
E
2c+4
E
3c+2
(Row i)
(E
ic+I+j
)
Row r
ColSpan
E
rc+r
E
rc+r+1
E
rc+r+2
E
rc+r+c
There are several important details to note in the entry of a 2D table:
The number of rows and number of columns is separated by a period, not a comma.