Reference Guide

PMAC Quick Reference Guide
40 Programming PMAC
PMAC Position Registers
The PMAC Executive position window or the online command P reports the value of the actual position
register plus the position bias register plus the compensation correction register and if bit 16 of Ix05 is 1
(handwheel offset mode) minus the master position register:
M175->X:$002A,16,1 ; Bit 16 of I105
M162->D:$002B ; #1 Actual position (1/[Ix08*32] cts)
M164->D:$0813 ; #1 Position bias (1/[Ix08*32] cts)
M167->D:$002D ; #1 Present master ((handwheel) pos (1/[Ix07*32] cts
; of master or (1/[Ix08*32] cts of slaved motor)
M169->D:$0046 ; #1 Compensation correction
32*I108
M167)*M175M169M164(M162
P100
++
=
P100 will report the same value as the online command P or the position window in the PMAC Executive
program.
The addresses given are for Motor #1. For the registers for another motor x add (x-1)*$3C – (x-1)*60 –
to the appropriate motor #1 address.)
M161->D:$0028 ; #1 Commanded position (1/[Ix08*32] cts)
The motor commanded position registers contain the value in counts where the motor is commanded to
move. It is set through JOG online commands or axis move commands (X10) inside motion programs.
To read this register in counts:
P161 = M161 / (I108*32)
M162->D:$002B ; #1 Actual position (1/[Ix08*32] cts)
The actual position register contains the information read from the feedback sensor after it has been
converted properly through the encoder conversion table and extended from a 24-bits register to a 48-bits
register.
To read this register in counts:
P162 = M162 / (I108*32)
M163->D:$080B ; #1 Target (end) position (1/[Ix08*32] cts)
This register contains the most recent programmed position and it is called the target position register. If
I13>0, PMAC is in segmentation mode and the value of M163 corresponds to the last interpolated point
calculated.
To read this register in counts:
P163 = M163 / (I108*32)
M164->D:$0813 ; #1 Position bias (1/[Ix08*32] cts)
This register contains the offset specified in the axis definition command #1->X + <offset>.
The online command {axis}={constant}or the motion program command PSET adds the
specified offset to the existing M164 offset:
M164 = M164 + <new_offset>.
To read this register in counts: P164 = M164 / (I108*32)
M165->L:$081F ; &1 X-axis target position (engineering units)
M165 contains the programmed axis position through a motion program, X10 for example, in engineering
units. It also gets updated by the online command “{axis}={constant}or the motion program
command PSET.
M166->X:$0033,0,24,S ; #1 Actual velocity (1/[Ix09*32] cts/cyc)
M166 is the actual velocity register. For display purposes use the Motor filtered actual velocity, M174.
To read this register in cts/msec:
P166 = M166 * 8388608 / (I109 * 32 * I10 * (I160+1))
M167->D:$002D ; #1 Present master ((handwheel) pos (1/[Ix07*32] cts
; of master or (1/[Ix08*32] cts of slaved motor)