Power Brick Controller User Manual
Manual Motor Setup
152
Example:
A serial encoder with 17 bits of single-turn position data located in the lower fields of serial data A register.
PowerBrick[].Chan[].SerialEncDataA
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Motor[].pAbsPhasePos
=
PowerBrick[].Chan[].SerialEncDataA.a
Motor[].AbsPhasePosFormat = $00001100
Rotary:
Motor[].AbsPhasePosSf = 2048 * NoOfPolePairs / 2
17
Linear:
Motor[].AbsPhasePosSf = 2048 * RES
mm
/ ECL
mm
Motor[].AbsPhasePosOffset
=
–PhaseForcePos
*
Motor[].AbsPhasePosSf
The PhaseForceTest value can be found by performing a manual force phasing (locking the motor onto
phase
B)
and
recording
the
17
bits
of
position
data.
PhaseForcePos
=
PowerBrick[].Chan[].SerialEncDataA & $00001FFF
.
Example:
A serial encoder with 20 bits of single-turn position data located in serial data A register and starting at bit
#4. The low nibble may contain other information, irrelevant to position data.
PowerBrick[].Chan[].SerialEncDataA
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Motor[].pAbsPhasePos = PowerBrick[].Chan[].SerialEncDataA.a
Motor[].AbsPhasePosFormat = $00001404
Rotary:
Motor[].AbsPhasePosSf = 2048 * NoOfPolePairs / (2
20
)
Linear:
Motor[].AbsPhasePosSf = 2048 * RES
mm
/ (ECL
mm
)
Motor[].AbsPhasePosOffset = –PhaseForcePos * Motor[].AbsPhasePosSf
The PhaseForceTest value can be found by performing a manual force phasing (locking the motor onto
phase
B)
and
recording
the
20
bits
of
position
data.
PhaseForcePos
=
(PowerBrick[].Chan[].SerialEncDataA & $00FFFFF0) / 16
.