User's Manual

PMAC User Manual
Setting Up a Motor 79
Decoder/
Counter
Encoder
Conversion
(e.g. 1/T)
Position
Extension
Axis
Scaling
Done Always
24 bits
Integer
Count
Set to Zero on
Power-up/Reset
Done Always
Set to Zero on
Power-up/Reset
32
24 bits
Interpolated
Count
(1/32 ct)
Done for
Activated Motor
Ix08
48 bits
Extended
Count
(1/(Ix08 32)ct)
(fixed point)
Done for
Defined Axis
Can be Offset
(Axis offset, PSET,
{axis}= )
48 bits
User
Units
(floating point)
Encoder
Position
Encoder
Position
Moto
r
Position
Axis
Position
COMMAND
POSITION
ACTUAL POSITION
(PMATCH)
Axis Coefficients
Set to Zero on
Power-up/Reset
and Home
Capture Position (Mx03)
Compare Position (Mx03)
Phase Position (Mx01)
Input
Signal
Quadrature,
Parallel,
Analog,
etc.
Act. Pos.
"P", (Mx62)
Cmd., Target Pos.
(Mx61),(Mx63)
Move End Pos.
(Mx65)
Figure 12 PMAC Position Processing
Axis Position Scaling
Motor position is always kept in terms of counts. When a motor is assigned to an axis through an Axis
Definition statement, the scale factor in the statement determines what the units of the axis are (usually
inches, millimeters, degrees, etc.). Programmed moves are given for an axis, and PMAC converts this to
motor moves, using the scale factors from the Axis Definition statements. It is important to realize that
this conversion is for commanded positions only, and that the conversion normally goes only one-way:
from axis to motor. PMAC never computes actual axis positions.
Leadscrew Compensation
PMAC is capable of performing what is commonly called leadscrew compensation. This technique,
which also goes by other names, allows for a table of corrections to be entered into PMAC as a function
of motor position. PMAC can store up to eight of these compensation tables.
Each motor can have one table that belongs to it. Unless otherwise specified, the table uses position
information from this motor (source data) to determine the location in the table, and also adds its
correction to this motor (target data). However, the source motor, or both the source and the target
motors, may be specified to be motors other than the motor to which the table belongs. (If both motors
are different, the concept of the table belonging to a motor is useful only for PMAC’s bookkeeping
purposes.)
The compensation is performed inside the servo loop (every servo cycle) to obtain the maximum speed
and accuracy. PMAC takes the position of the source motor and finds the matching position in the table.
Typically this is between two entries in the table, so PMAC linearly interpolates between these two
entries to obtain the correction for the current servo cycle. It then adds this correction to the position of
the target motor. The entries of corrections in the table must be integer values, with units of 1/16 count
(so an entry of 48 represents three counts) of the target motor.
Multiple Tables Per Motor
A motor may provide the source data for up to eight compensation tables; it may also be the target of up
to eight motors.