PLC Simulator
sensors
encoder
motion
analog
fundamentals
plc programming

Incremental vs Absolute Encoder: Position Feedback for PLC Applications

By PLC Simulation Software9 min read

Incremental vs Absolute Encoder: Position Feedback for PLC Applications

TL;DR: An incremental encoder outputs a stream of pulses — the PLC counts them to track relative movement from a reference point. Position is lost on power-off; the machine must home on startup. An absolute encoder outputs a unique digital code for every shaft position — the PLC reads the current position on power-up without homing. Use incremental for velocity feedback and cost-sensitive applications; use absolute for vertical axes, long conveyor tracking, or any machine where homing on startup is dangerous or impractical.

Incremental vs absolute encoder — output type, position retention, and PLC input requirements

Rotary encoders are the position feedback backbone of factory automation. Every servo drive, stepper axis, conveyor length counter, and flow meter with shaft feedback uses an encoder. Picking the wrong type leads to either unnecessary cost (absolute encoder where incremental would do) or a dangerous machine that loses position on every power cycle.

Incremental Encoder: Count Pulses from a Reference

An incremental encoder produces a fixed number of pulses per shaft revolution (PPR — pulses per revolution). Most industrial incremental encoders output two square-wave channels, A and B, offset by 90° — this is quadrature encoding. The phase relationship between A and B tells the PLC which direction the shaft is rotating.

Channel A leads channel B when rotating clockwise. Channel B leads channel A when rotating counter-clockwise. The PLC's high-speed counter module (HSC) counts the rising and falling edges of both channels, giving 4× resolution (a 1000 PPR encoder gives 4000 counts per revolution in quadrature mode).

Index channel (Z): many encoders add a third channel, Z or I, that produces one pulse per revolution at a fixed reference position. The PLC uses the Z pulse to reset the position count to zero during homing — establishing the absolute reference the machine needs to know where it is.

Resolution: measured in pulses per revolution (PPR) or lines per revolution (LPR). Common industrial values: 100, 256, 500, 1000, 2500, 5000 PPR. For a 5000 PPR encoder in 4× quadrature mode: 20,000 counts/revolution.

Wiring: incremental encoders are almost always 5V or 24V line driver (RS-422 differential) outputs for noise immunity, or open collector (NPN or PNP) for shorter cable runs. Differential (RS-422) pairs: A+/A−, B+/B−, Z+/Z−. The PLC's HSC module must match the input type.

After power loss: the encoder outputs pulses from wherever the shaft currently is — it has no memory of absolute position. On power-up, the PLC's counter starts at zero. Without homing, the PLC does not know where the axis is. Every machine using incremental feedback must execute a homing cycle on startup.

Absolute Encoder: Position Without Homing

An absolute encoder encodes the exact angular position of the shaft as a unique digital word. A 12-bit single-turn absolute encoder has 4096 (2¹²) unique positions per revolution — at any shaft position, a different 12-bit code is output. On power-up, the encoder immediately reports the current position with no movement required.

Single-turn vs multi-turn:

  • Single-turn: encodes position within one revolution (0° to 359°). Repeats on every rotation. For machines that never rotate more than one turn between reference points.
  • Multi-turn: includes a gear train inside the encoder that tracks how many full rotations have occurred. A 12-bit single-turn + 12-bit multi-turn absolute encoder tracks 4096 positions × 4096 turns = 16 million unique positions. The internal gear train is battery-backed on some designs; on others (EnDat, HIPERFACE) the multi-turn count is maintained by counting pulses from a non-volatile energy-harvesting mechanism.

Interfaces: absolute encoders output their position word over a serial or parallel interface:

  • Parallel: each bit of the position word drives a separate wire. Simple but requires many wires (a 12-bit encoder needs 12 signal wires + power + common). Only practical for short cable runs.
  • SSI (Synchronous Serial Interface): a 2-wire clocked serial interface. The PLC or drive controller sends a clock, the encoder shifts out the position word synchronously. Most common for standalone absolute encoders connecting to PLC position modules.
  • EnDat, BiSS-C, HIPERFACE: high-speed serial protocols used between servo motors with integrated absolute encoders and servo drives. Not typically used with standalone PLCs.
  • IO-Link, CANopen, PROFIBUS, PROFINET: fieldbus-connected absolute encoders. The encoder appears as a device node on the network.

After power loss: the absolute encoder retains its position — or recovers it immediately from the shaft position on power-up (single-turn) or from a gear train counter (multi-turn). No homing is required.

Incremental vs absolute encoder comparison — output, position retention, wiring interface

Side-by-Side Comparison

| | Incremental | Absolute (Single-turn) | Absolute (Multi-turn) | |---|---|---|---| | Output | Pulse train (A/B/Z) | Digital position word | Digital position word (position + turn count) | | Position after power loss | Lost — requires homing | Retained (reads shaft angle instantly) | Retained (turn count + shaft angle) | | Interface | HTL/TTL square wave, RS-422 | Parallel, SSI | SSI, EnDat, HIPERFACE, fieldbus | | Homing required? | Yes — on every power-up | No | No | | Wiring | 4–6 wires (A/B/Z + power) | 12–20 wires (parallel) or 4 wires (SSI) | 4–6 wires (SSI / serial) | | Resolution | Counts per rev (configurable) | 2^N positions per rev | 2^N × 2^M positions total | | Relative cost | Lower | Higher | Highest | | Best for | Velocity, flow, conveyor length | Rotary table, turret index | Vertical axis, robot joint, linear stage |

How PLCs Read Incremental Encoders

A PLC reads an incremental encoder through a High-Speed Counter (HSC) module or a dedicated counter module. The standard CPU digital input is too slow — inputs are scanned at the PLC cycle rate (1–50 ms), which is far too slow for a 5000 PPR encoder at 3000 RPM producing 250,000 pulses per second.

The HSC module has dedicated hardware counters that count pulses independently of the PLC scan cycle, typically up to 500 kHz or more. The PLC program reads the counter register value each scan to get position.

Example (Allen-Bradley 1769-HSC, CompactLogix):

  • Configure the HSC module for Channel A/B quadrature mode
  • Set accumulator rollover (max count) to the travel range in counts
  • In the PLC program: tag HSC.ACC contains the current position in counts
  • Homing routine: jog to a limit switch + Z pulse, reset the counter to zero, mark the machine as homed

Example (Siemens S7-1200 with HSC):

  • Assign the A and B input terminals to the HSC function in the device configuration
  • Set counting mode = A/B encoder in the HSC properties
  • PTO_COUNT or the High Speed Counter SFB returns the current count to a DINT tag

How PLCs Read Absolute Encoders

SSI interface: an SSI encoder requires a position module or a dedicated SSI input card. Siemens offers the SM1521 (SSI) for the S7-1500; Allen-Bradley offers the 1734-SSI POINT I/O module. The PLC program reads a DINT or INT tag containing the decoded position word directly.

Parallel interface: each bit wire connects to a standard digital input. The program assembles the integer position from individual input bits using bit manipulation. This only works for low-resolution encoders (8–10 bit) before the wiring count becomes impractical.

Fieldbus absolute encoders: the encoder appears as a standard device node. For PROFINET encoders, the PLC reads a consistent position process data word each cycle via standard I/O mapping — no special module needed.

Application Decision Guide

Use an incremental encoder when:

  • Velocity feedback for a conveyor or motor (counting pulses per time window)
  • Counting objects or measuring lengths (pulse count × pitch = distance)
  • Cost is a constraint and the machine homes safely on every startup
  • The axis is horizontal and position loss on e-stop is acceptable

Use an absolute encoder when:

  • Vertical axes (gravity will move the load if position is lost; absolute encoder means the machine knows where it is the moment power returns)
  • The machine cannot home automatically (insufficient travel, tooling interferes with home position sensor)
  • Conveyor systems where product tracking must survive a power interruption
  • Robot joints where homing every startup is unacceptably slow
  • Long linear axes where a power-down and unexpected move would cause a crash

Frequently Asked Questions

Q: Does an incremental encoder work with a VFD?

A: Yes. Incremental encoders are the standard feedback device for vector-mode VFDs. The encoder A/B output connects to the drive's encoder input card. The drive uses the pulse count to calculate actual motor speed for closed-loop vector control. Most VFD encoder inputs accept either differential (RS-422) or open-collector signals at 5V or 24V — check the drive specification.

Q: What does PPR mean on an encoder?

A: PPR stands for Pulses Per Revolution. A 1000 PPR encoder produces 1000 complete A-channel pulses per shaft revolution. In 4× quadrature mode (counting A and B rising and falling edges), the effective count per revolution is 4000. Do not confuse PPR with CPR (Counts Per Revolution), which is already the 4× figure.

Q: My absolute encoder gives a different position after every power-up. What is wrong?

A: The most common cause for single-turn absolute encoders is that the "different position" is the correct current shaft angle — the shaft moved while power was off. If the position is genuinely wrong (not reflecting the actual physical position), check the SSI clock polarity and clock frequency settings on the PLC module. Some encoders require a specific clock frequency range; outside that range the shift register reads incorrectly. Also verify that the encoder code type (binary vs Gray code) matches the module configuration — Gray code and binary produce completely different values for the same position.

Q: What is the difference between Gray code and binary code on an absolute encoder?

A: Gray code (reflected binary) is an encoding where adjacent positions differ by only one bit. This prevents the large position errors that would occur in straight binary when multiple bits change simultaneously (e.g., 0111 → 1000 requires all 4 bits to switch at once — if they switch at slightly different times, intermediate values like 1111 or 0000 appear briefly). Gray code guarantees single-bit transitions between adjacent positions, eliminating transient position spikes. Most SSI absolute encoders default to Gray code; the PLC module or driver library converts to binary. Ensure the module is configured for the code type your encoder outputs.


Explore how encoders connect to PLC programs with the interactive encoder sensor page — it shows the A/B quadrature pulse output and the direction logic in real time.

Practice building an encoder-based position counter in ladder logic with the encoder programming examples post, which covers Delta, Siemens, and Allen-Bradley High-Speed Counter configuration.

Share:X / TwitterLinkedIn

Practice this yourself in the simulator

3 scenarios free — no install, no credit card. Write real ladder logic against a live machine model.

Try the simulator free →

Related articles

sensors
proximity

Inductive vs Capacitive Proximity Sensors: Which One Do You Need?

Inductive sensors detect metal only. Capacitive sensors detect anything — metal, plastic, liquid, or powder. Learn how each works, how to wire NPN vs PNP output, and how to pick the right sensor for your application.

June 12, 2026 · 8 min read
communications
modbus

Modbus vs PROFIBUS: Two Industrial Protocols, Very Different Eras

Modbus vs PROFIBUS compared: register model vs device profile, RS-485 vs RS-485 DP, speed, diagnostics, vendor support, and when each protocol still makes sense in 2026.

June 12, 2026 · 9 min read
communications
modbus

Modbus vs RS-485: Protocol vs Physical Layer — The Confusion Explained

Modbus is a communication protocol. RS-485 is an electrical standard for wiring. They are not the same thing — Modbus RTU runs on RS-485, but so does PROFIBUS. Here is the difference, why it matters, and how to wire it correctly.

June 12, 2026 · 8 min read