Selecting Incremental Encoder PPR: Programmable or Divider

Claire Rousseau6 min read
Motion ControlSchneider ElectricTechnical Reference
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

You can get a specific pulses-per-revolution (PPR) value from an incremental encoder in three ways. The first is a programmable-PPR encoder. SICK offers these, and several models in Schneider Electric's Osicoder series set resolution with switches or by programming. The second is a bus encoder such as the XCC35 on CANopen, where you scale resolution in software. The third is a standard fixed-PPR encoder followed by an integer divider module such as the Altrup DEE1-2424. Which one fits depends on the three checks below, taken in order.

Check 1: Fixed or field-adjustable resolution

Write down the exact counts per revolution the receiving device needs. Then note whether that value will ever change: product changeover, gearbox swap, or a spares policy that covers several machines with one part number.

  • One fixed value, available as a catalog PPR: buy the standard encoder. Stop here.
  • One fixed value, not a catalog PPR: go to Check 2.
  • Value changes, or one spare must cover several PPRs: a programmable-PPR encoder is the primary candidate. Go to Check 2 to confirm the interface.

Programmable encoders cost more per unit than fixed ones. The Schneider units are reported as competitively priced, so request a quote before defaulting to the divider route.

Check 2: Pulse train or CANopen position

Identify the input on the receiving device: a high-speed counter or drive encoder input (A/B quadrature, optionally Z), or a fieldbus port.

  • Pulse input (HSC card, drive feedback, counter module): you need an encoder with an A/B output stage. Choose a switch-configured or programmable incremental model, or use the divider route in Check 3.
  • CANopen master available: a bus encoder such as the XCC35 sends position as a data value, not as pulses. You set resolution through the device configuration, and the controller reads scaled position directly. A pulse counter cannot read this unit.

This split matters because "programmable resolution" means two different things. On a pulse encoder it changes the physical edge rate on the A/B lines. On a bus encoder it changes only the scaling of the transmitted value. Confirm which one the datasheet describes before you order.

Check 3: Integer division from a stock encoder

An integer divider outputs one pulse for every N input pulses:

PPR_out = PPR_encoder / N      (N = integer set on the divider)
  1. Calculate N = PPR_encoder / PPR_target. If N is a whole number, the divider route works. Go to step 3.
  2. If N is not a whole number, pick a different source encoder whose catalog PPR is an integer multiple of the target. Example with assumed values: a 360 PPR target cannot come from 1024 PPR (N = 2.844), but it can come from 3600 PPR with N = 10. If no catalog PPR works, return to the programmable-encoder route.
  3. Check the divider input frequency: f_in (Hz) = PPR_encoder × rpm_max / 60. Compare it with the divider's maximum input frequency on its datasheet. A 3600 PPR source at 3000 rpm produces 180 kHz. That example is derived from the assumed values above.
  4. Confirm on the divider datasheet whether it passes direction information, meaning quadrature A/B output rather than a single pulse line. Also confirm its supply voltage and its input and output signal levels. A single-channel divided output loses direction sensing at the counter.

A divider only reduces resolution. It cannot create a PPR higher than the source encoder provides.

Setting the resolution and matching the output stage

Prerequisite: have the encoder manual open at the resolution table and the output-stage specification, and have the receiving input's specification to hand.

  1. Set the PPR. On switch-configured units, set the DIP or rotary switches to the code for the target PPR from the manual's table. On software-configured units, write the resolution with the manufacturer's tool or through the bus configuration.
  2. Cycle power. Many switch-set encoders read the setting only at power-up. Check the manual for this behavior, and power-cycle after every change regardless.
  3. Set the counter edge evaluation. The controller count per revolution equals PPR × the evaluation mode (x1, x2, or x4). Record which mode is active in the HSC or drive configuration before you scale anything.
  4. Check the output frequency limit. Calculate f = PPR × rpm_max / 60 and compare it with both the encoder's maximum output frequency and the counter's maximum input frequency. If either is exceeded, lower the PPR or the speed.

Count errors after a resolution change

Symptom at the counter Likely cause Next check
Count per rev is 2× or 4× the set PPR Counter in x2/x4 evaluation while the scaling assumes x1 HSC edge mode setting
Count per rev still matches the old PPR Switch setting not read, or unit not power-cycled Cycle power and re-read the switch table
Correct at low speed, short at high speed Encoder, divider, or counter frequency limit exceeded Recalculate f against all three datasheets
Count increments in both directions of rotation Single-channel divider output, or A/B wiring issue Divider output type; swap-test A and B
Random drift, extra counts Signal level mismatch or noise on long cable runs Output stage vs input type; use shielded twisted-pair cable
Fractional or non-repeating counts per rev with a divider Target PPR is not an integer fraction of the source PPR Recompute N (Check 3)

One-revolution and full-speed count verification

  1. Static count. Mark the shaft and zero the counter. Turn exactly one revolution, or ten revolutions to average out marking error. The expected reading is PPR × edge multiplier × revolutions. Do not move to the next step until the reading is exact.
  2. Direction. Reverse the shaft through the same revolutions. The counter must return to zero. If it does not, inspect the A/B phasing or the divider output type.
  3. Index pulse (if used). Confirm Z fires once per revolution at the new setting. On a divided signal, check whether the divider passes Z at all.
  4. Full-speed count. Run at maximum rpm for a timed interval with a measured speed. The expected count is PPR × multiplier × rpm × t / 60. Missing counts mean you have hit a frequency limit, which sends you back to the frequency step above.
  5. Final check. After the full-speed run, stop, return the shaft to the marked position, and confirm the counter reads the same value it held before the run. An unchanged reading confirms no pulses were lost or added.

FAQ

What happens if the target PPR isn't an integer fraction of my encoder's PPR?

An integer divider cannot produce it, and the count per revolution will not repeat cleanly. Pick a source encoder whose PPR is an exact multiple of the target (for example 3600 for 360), or use a programmable-PPR encoder.

What happens if I change the encoder's PPR switches with power applied?

Many switch-configured encoders read the setting only at power-up, so the old resolution stays active. Cycle power and repeat the one-revolution count test to confirm the new value.

What happens if the counter runs x4 evaluation on a programmable encoder?

The controller sees four counts per programmed pulse, so a 500 PPR setting reads 2000 per revolution. Either program the PPR at one quarter of the required count, or set the counter to x1 and scale for that.

What happens if a CANopen encoder like the XCC35 is wired to a high-speed counter input?

Nothing useful: a CANopen encoder transmits position as bus data and has no A/B pulse output for a counter to read. Use it only with a CANopen master, or choose a pulse-output programmable encoder.

Can a pulse divider module increase encoder resolution?

No. A divider such as the DEE1-2424 outputs one pulse per N input pulses, so it only lowers PPR. For higher resolution, change the encoder or use the counter's x2/x4 edge evaluation.

Back to blog