Controls
Encoder
An encoder is the feedback sensor on a servo motor that reports shaft position, and from it speed, so the controller can close the position loop on that axis.
What it is
Each robot axis has an encoder on the back of its servo motor. The controller compares where it commanded the axis to be with where the encoder says it is, and drives current to close the gap. FANUC calls its encoder a pulsecoder.
Encoders come in two kinds. An incremental encoder counts pulses from a reference and loses its place at power-off. An absolute encoder reports a unique position for each shaft angle, so the controller knows where the axis is the moment it powers up. Industrial robot arms generally use absolute encoders, which is why they don't need a homing move at startup.
How it actually works
A FANUC pulsecoder sends position to the controller as serial data, a fresh absolute reading each servo cycle. Tracking multiple turns needs the rotation counter to keep running while the cabinet is off, so a battery feeds the encoders through the power-down. If that battery goes flat with the power off, the absolute count is gone and the axis needs re-mastering before it can run programs.
Because the link is serial, many encoder alarms are communication alarms. SRVO-068 DTERR means the encoder didn't answer a data request, SRVO-069 CRCERR means the data arrived corrupt, and SRVO-063 RCAL flags a rotation counter that miscounted, often from electrical noise. Causes run from a loose connector or a badly grounded cable shield up to the motor itself, which on modern FANUC arms is replaced together with its pulsecoder. One trap: a ground fault on the battery line in one axis's cable can throw DTERR on a different axis.
How it differs
- Resolver · A resolver is an analog rotary transformer that measures angle from induced voltages. It's rugged and tolerates heat and vibration, but needs a converter to produce a digital position. An optical or magnetic encoder outputs position digitally. Both can close the same servo loop.
- Mastering · The encoder reports where the shaft is. Mastering tells the controller which encoder count equals the joint's mechanical zero. A healthy encoder with lost mastering still counts correctly; the controller just can't turn those counts into true joint angles.
Where you meet it in the field
- SRVO-068 DTERR alarm (pulse coder no response) · The encoder didn't answer the controller's data request, most often a connector, shield ground, or cable problem.
- SRVO-063 RCAL alarm (rotation counter abnormal) · The pulsecoder's rotation counter miscounted; check for the communication alarms first, since they're often the real cause.
- Pulsecoder · FANUC's absolute encoder, its battery, and the three families of alarms it throws.
- Troubleshooting a Noisy FANUC Pulsecoder Signal on R-30iB · Tracking down grounding and shielding faults that corrupt the feedback stream.
Common questions
- Why does my robot need re-mastering after the encoder battery died?
- The battery keeps each pulsecoder's rotation counter alive while the controller is off. Once it goes flat with the power off, the absolute count is lost. A fresh battery powers the encoder again but can't bring the count back, so the axis has to be mastered again.
- SRVO-068 is posting on J5. Is the J5 motor bad?
- Check cheaper things first. Reseat the feedback connectors, confirm the shield is grounded in the cabinet, and test the cable before ordering a motor. A grounded battery line in another axis's encoder cable can also throw DTERR on J5, so if J5 checks clean, look at the other cables.
- Can I replace just the encoder on a FANUC motor?
- On modern FANUC arms the pulsecoder ships as part of the motor assembly, so a field replacement is the whole motor. Master that axis afterward, since the new encoder has no reference to the joint's zero.