Loss of an encoder can result in the motor running away unconditionally with brush DC motors or trapezoidal commutated brushless motors. This is a dangerous situation in motion control systems. With Galil sinusoidal brushless servo drives, encoder loss will not cause a runaway condition and it is possible to have an emergency controlled move to a safe position.
The following steps can be taken with Galil controllers to drive to a known location when an encoder failure is detected:
- Zero all PID parameters (KP, KD, and KI) to disable closed loop position control
- Set a small offset (OF) to energize the motor phases, enough to allow the motor to move
- Use brushless degree (_BDm) to get the current commutation phase of the specified
axis, m. - Increment or decrement BD to step the motor through the electrical cycle.
Following is a simple subroutine that will gracefully drive the motor to a known location:
#POSERR
TL1;’ Torque Limit = 1
N=@INT[_BDA];’ N = Brushless Degrees axis A (integer)
M=10;’ Set time delay
#L;’ Beginning of loop
BDA=N;’ Set to original position of motor
WTM;’ Wait before increment
N=N+1;’ Increment the degree by 1
JP#L,N<360;’ Jump to the beginning of the loop until electrical zero
N=0
MG"AT ELEC ZERO"
JP#L
This feature is supported by the DMC-4000, DMC-41x3 and the DMC-3x0xx series controllers with integrated sine drives.