Skip to main content

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:

  1. Zero all PID parameters (KP, KD, and KI) to disable closed loop position control
  2. Set a small offset (OF) to energize the motor phases, enough to allow the motor to move
  3. Use brushless degree (_BDm) to get the current commutation phase of the specified
    axis, m.
  4. 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.