User's Manual

Turbo PMAC User Manual
Setting Up the Servo Loop 191
Entering the Table
The backlash compensation tables are entered and operated much like the position leadscrew
compensation tables. However, there are no cross-axis or multi-axis backlash compensation tables. The
table belonging to a motor provides a backlash correction to that motor as a function of that motor’s
position. Backlash compensation tables must be defined in order from those belonging to higher-
numbered motors to those belonging to lower-numbered motors.
The backlash compensation table for a motor is declared with the on-line command DEFINE
BLCOMP{entries},{count length} for the addressed motor. {entries} defines the number
of points in the table, and {count length} defines the span of the table in counts of the motor. The
spacing between entries in the table is therefore {count length} / {entries}.
The first entry in the table defines the table’s backlash at one spacing from the zero position of the motor,
the second entry at two spacings, and so on. Typically, the last entry in the table is 0.
Calculating the Backlash
The value of backlash distance for a given motor position derived from the backlash table is added onto
the Ixx86 “constant” backlash parameter. The backlash distance from the table at motor position 0 (home
position) is zero by definition, so if a backlash table is used, Ixx86 should contain the amount of backlash
at the home position. The table then should hold the differences from this amount. The contribution from
the backlash table for a given motor position is calculated by linearly interpolating between adjacent
entries.
The backlash table for a motor is active only if the most recent commanded direction of movement is
negative; it is still active if the motor is currently commanded to stand still but reached this position by
traveling in the negative direction. In operation, the table reads the present nominal motor position and
computes a weighted average of the two closest table entries, creating a first-order interpolation between
table points.
The backlash compensation is defined directly for a range of motor position starting a zero counts and
going in the position direction to the count length declared by the last argument in the DEFINE BLCOMP
command. The spacing between entries is this length divided by the number of entries (which is the first
argument in the command). The first entry in the table defines the correction at one spacing from the zero
position of the motor, the second entry at two spacings, and so on.
Outside this range, the uncorrected position is “rolled over” to within this range before the compensation
is done. This rollover occurs exactly as for leadscrew compensation tables; refer to that description for
details.
Reporting Table Information
The header information for a backlash compensation table – entered with the DEFINE BLCOMP
command – can be queried with the LIST BLCOMP DEF command. The contents of the table can be
queried with the LIST BLCOMP command
Deleting Tables
The DELETE BLCOMP command erases the backlash table for the presently addressed motor. Backlash
compensation tables must be deleted in order from those assigned to the lower-numbered motors to those
assigned to higher numbered motors.
Enabling and Disabling Backlash
The constant backlash parameter Ixx86 is always (potentially) active; that is, there will be backlash
compensation anytime Ixx86 is a non-zero value. Backlash tables are active if I51 is set to 1; they are
inactive if I51 is set to 0.