Reference Manual

Turbo PMAC/PMAC2 Software Reference
Turbo PMAC On-line Command Specification 304
Scope: Motor-specific
Syntax: DEFINE COMP {Rows}.{Columns}, #{RowMotor}[D],
[#{ColumnMotor}[D], [#{TargetMotor}]],
{RowSpan},{ColumnSpan}
DEF COMP...
where:
{Rows} is a positive integer constant representing the number of rows in the table, where each row
represents a fixed location of the second (column) source motor;
{Columns} is a positive integer constant representing the number of columns in the table, where
each column represents a fixed location of the first (row) source motor;
{RowMotor} is an integer constant from 1 to 32 representing the number of the first source motor;
defaults to addressed motor; if a D is specified after the source motor number, the desired position of
the motor is used to calculate the correction; otherwise the actual position is used;
{ColumnMotor} is an integer constant from 1 to 32 representing the number of the second source
motor; if a D is specified after the source motor number, the desired position of the motor is used to
calculate the correction; otherwise the actual position is used;
{TargetMotor} is an integer constant from 1 to 32 representing the number of the target motor;
defaults to addressed motor;
{RowSpan} is the span of the table, in counts, along the first (row) source motor’s travel;
{ColumnSpan} is the span of the table, in counts, along the second (column) source motor’s travel.
This command establishes a two-dimensional position compensation table assigned to the addressed
motor. The next (Rows+1)*(Columns+1)-1 constants sent to Turbo 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 32 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, Turbo
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, Turbo 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.