User manual

Geo Brick User Manual
System Wiring 43
Encoder Loss Setup
Geo Brick controller has encoder-loss detection circuitry for each encoder input. Designed for use with
encoders with differential line-driver outputs, the circuitry monitors each input pair with an exclusive-or
(XOR) gate. If the encoder is working properly and connected to the Geo Brick, the two inputs of the pair
should be in opposite logical states – one high and one low – yielding a true output from the XOR gate.
Note
A single-ended encoder cannot be used on the channel Encoder-Loss Errors
For the Geo Brick Controller Encoder-loss detection bits come in the locations shown in the table below.
Channel# Address Description
Encoder #1 Y:$78807,0,1 Encoder #1 Loss Input Signal
Encoder #2 Y:$78807,1,1 Encoder #2 Loss Input Signal
Encoder #3 Y:$78807,2,1 Encoder #3 Loss Input Signal
Encoder #4 Y:$78807,3,1 Encoder #4 Loss Input Signal
Encoder #5 Y:$78807,4,1 Encoder #5 Loss Input Signal
Encoder #6 Y:$78807,5,1 Encoder #6 Loss Input Signal
Encoder #7 Y:$78807,6,1 Encoder #7 Loss Input Signal
Encoder #8 Y:$78807,7,1 Encoder #8 Loss Input Signal
As of this writing, there is no automatic action taken on detection of encoder loss. Users who want to
take action on detecting encoder loss should write a PLC program to look for a change in the encoder loss
bit and take the appropriate action. Generally, the only appropriate response is to kill (open loop, zero
output, disabled) the motor with lost encoder feedback; other motors may be killed or aborted as well.
This next example program reacts to a detection of encoder loss. This is a more serious condition than a
count error, so a “kill” command is issued when the loss is detected. The example is for a single axis only,
but is easy to duplicate for multiple axes.
; Substitutions and definitions
#define Mtr1OpenLoop M138 ; Motor status bit
Mtr1OpenLoop->Y:$0000B0,18,1 ; Standard definition
#define Enc1LossIn M180 ; Input loss-detection bit
Enc1LossIn->Y:$078807,0,1 ; Geo Brick Ch1 loss bit
#define Mtr1EncLossStatus P180 ; Internal latched status
#define Lost 0 ; Low-true fault here
#define OK 1 ; High is encoder present
; Program (PLC) to check for and react to encoder loss
OPEN PLC 18 CLEAR
; Logic to disable and set fault status
IF (Mtr1OpenLoop=0 AND Enc1LossIn=Lost) ; Closed loop, no enc
CMD^K ; Kill all motors
Mtr1EncLossStatus=1 ; Indicate encoder loss
ENDIF
; Logic to clear fault status
IF (Mtr1OpenLoop=1 AND Enc1LossIn=OK AND Mtr1EncLossStatus=0)
Mtr1EncLossStatus=0 ; Indicate valid encoder signal
ENDIF
CLOSE
For more details about Encoder Loss look into the Turbo USERs Manual chapter: Making Your
Application Safe.