Reference Manual

Turbo PMAC/PMAC2 Software Reference
Turbo PMAC Global I-Variables 133
Ixx75 tells Turbo PMAC the distance between the zero position of an absolute sensor used for power-on
phase position (specified by Ixx81 and Ixx91) and the zero position of Turbo PMAC's commutation
cycle.
It is used to reference the phasing algorithm for a PMAC-commutated motor with an absolute sensor
(Ixx81 > 0). If Ixx80 bit 0 is 1 (Ixx80 = 1 or 3), this is done automatically during the power-up/reset
cycle. It will also be done in response to a $ on-line command to the motor, or a $$ on-line command to
the coordinate system containing the motor.
Ixx75 is also used by the SETPHASE command (on-line, motion-program, or PLC-program). When the
SETPHASE command is given, the value of Ixx75 is immediately copied directly into the motor’s phase
position register. Typically, this operation is used to correct the phasing, usually at the encoder index
pulse, after an initial rough phasing (e.g. from Hall commutation sensors).
The proper value for this parameter can be found with a simple procedure that should be done with an
unloaded motor, after satisfactory operation has been achieved using a power-on phasing search.
Define an M-variable to the absolute sensor if using one.
Define an M-variable to the internal phase position register. Mxx71 is the suggested M-variable.
Give the motor an O0 command.
Put a bias (a magnitude of 2000 is usually good) on the A phase (higher-numbered DAC of a pair for
Turbo PMAC) by setting Ixx29; use a positive bias if Ixx82>0 for digital current loop closure or if
Ixx82=0 and Ixx72>1024 (e.g. 1365 or 1536); use a negative bias if Ixx82=0 and Ixx72<1024 (e.g.
683 or 512).
Also, put a bias in the opposite direction of the same magnitude on the B phase by setting Ixx79. The
motor should lock in on a position like a stepper motor.
Now remove the A-phase bias by setting Ixx29 back to zero, or at least to the value found to force
zero current in the phase, and the motor should lock in on another position. This position is the zero
position of the phasing cycle.
If there is an absolute sensor, after sure that the motor has settled, read the position of the absolute
sensor by querying its M-variable value. Then:
Take the negative of this value, multiply it by Ixx70, and put the resulting value in Ixx75.
Now, with Ixx79 returned to zero or the proper bias, and Ixx81 pointing to the absolute sensor, give
the motor a $ command. The motor should be properly phased.
If doing this to use the SETPHASE command at a known position such as the index, set the internal
phase position register to 0 with Mxx71. Then:
Return Ixx79 to zero or the proper bias, and close the loop with a J/ command.
Now move to the reference position (e.g. do a homing search move with the index pulse as the
trigger) and make sure it is settled there with minimal following error (some integral gain should be
used).
Read the value of Mxx71 at this point and set Ixx75 to this value.
Remember to save these variable values before doing a full reset on the card.
See Also
I-variables Ixx01, Ixx70 Ixx74, Ixx76 Ixx83
Setting Up Turbo PMAC Commutation