Wiring RS422 Incremental Encoders to Siemens S7 and ET 200SP Modules
When retrofitting a machine, the encoder side often dictates the controller side. A 24V HTL incremental encoder can be wired into a standard S7-1200 digital input and the job is done. The same is not true of an RS422 incremental encoder, which transmits 5V differential signals on twisted pairs labelled A, /A, B, /B and N, /N. A CPU 313C high-speed counter that handled the old 24V encoders cannot be cross-wired to a 5V differential signal; the swing is wrong, the noise margin is wrong, and the cable is wrong. This reference walks through the signal theory, the four Siemens module families that can read RS422, the wiring and pinouts, the TIA Portal configuration, and a commissioning checklist with a fault matrix.
The RS422 Incremental Encoder Problem
Incremental encoders specified as "RS422" are EIA-422 differential transmitters, not RS-422 communication transceivers in the serial-port sense. The encoder produces three pulse trains (A, B, N) on twisted pairs. Each pair carries the same pulse logic, but one wire is the non-inverted (true) signal and the other is the inverted (complement) signal. The receiver inside the counter module looks at the difference between the two wires, not at the absolute voltage on a single wire, which is why a 5V encoder can be operated over a long cable in an electrically noisy cabinet.
Common encoders with this interface are the SICK DFS60, Hübner HOG 10, Heidenhain ROD 1000, Hengstler RI 58, and the Siemens-built incremental encoders such as 6FX2001-2E (referenced in the Siemens incremental encoder portfolio on SiePortal - Incremental encoders with RS422/HTL). The IRC3x5F / IRC3x8 series mentioned in older machine documentation uses the same 5V TTL/RS422 electrical layer.
RS422 vs HTL: Why 5V Differential
HTL (High Threshold Logic) is the 24V push-pull encoder standard. The signal swings from 0V to roughly 24V on a single wire, and the receiver is a 24V input. It is robust, simple, and cheap - but the long rise time of a 24V edge limits frequency. With a 5V encoder, the rise and fall times are far shorter, and edge counts per second can be an order of magnitude higher on the same cable.
The downstream benefits are visible in motion control. A 1024-ppr encoder turning at 3000 rpm produces 51,200 pulses per second. At 24V HTL with a 100 kHz input you can read it; at 5V RS422 with a 1 MHz input you can read a 20,000-ppr encoder on the same shaft without losing pulses, and the velocity-loop update rate becomes meaningful. Derivative (D) and second-derivative (D²) action in the position controller only work if the velocity signal has low quantisation noise, which in turn requires high pulse rates.
RS422 differential pairs also reject common-mode noise. A 10V common-mode spike on a 24V HTL line moves the input by 10V; the same spike on an RS422 pair adds equally to A and /A and is rejected by the differential receiver.
RS422 Electrical Specification
| Parameter | EIA-422 / RS422 encoder output | Receiver requirement (typical) |
|---|---|---|
| Logic low (V_OL) | ≤ 0.5 V | Differential input LOW: -0.2 V to 0.2 V after 100 Ω termination |
| Logic high (V_OH) | ≥ 2.5 V, typically 3.3-5 V | Differential input HIGH: ±0.2 V to ±5 V |
| Common-mode range | -7 V to +12 V | Receiver survives -7 V to +12 V common mode |
| Output current | ±20 mA minimum, ±150 mA max (driver-dependent) | 100 Ω termination resistor across A /A on the receiver side |
| Max cable length | 1200 m at 100 kBd; for encoders typically 50-100 m at 1 MHz | Counter module rated up to 1 MHz, 4 MHz, or 12 MHz depending on module |
| Cable type | Twisted pair, 100-120 Ω characteristic impedance, shielded | Shield bonded to encoder housing and to module PE at one end (or both ends via 1 nF cap) |
The output is a 26LS31-style line driver. The input is a 26LS32-style line receiver. The standard is "RS422" only in the electrical sense; the actual data are quadrature pulses, not a serial protocol.
Siemens Module Selection Matrix
| Module family | Part number | Input voltage | Max counter frequency | Channels | Notes |
|---|---|---|---|---|---|
| S7-1200 onboard HSC | CPU 121xC / 151x (built-in DI) | 24 V HTL only | 100 kHz / 200 kHz (CPU-dependent) | 4-6 HSC per CPU | Cannot read 5V RS422 directly. Use signal board or ET 200. |
| S7-1200 Signal Board SB 1221 DI 5 V DC | 6ES7221-3AD30-0XB0 | 5 V DC | 200 kHz | 4 DI | HSC-capable, suitable for 5V TTL or single-ended RS422 (one wire of pair only) |
| S7-1200 SM 1221 DI 5 V DC | 6ES7221-1BF32-0XB0 | 5 V DC | 200 kHz | 16 DI | Bulk DI; HSC only on first 4 channels, 5V tolerant |
| ET 200S 1Count 5V | 6ES7138-4DE02-0AB0 | 5 V DC | 1 MHz | 1 counter | Reads A, B, N differential; SSI variant available |
| ET 200S POS 1Count 5V | 6ES7138-4DL00-0AB0 | 5 V DC | 1 MHz | 1 positioning channel | Adds positioning function block support |
| ET 200SP TM PosInput 1 | 6ES7138-6BA01-0BA0 | 5 V RS422 (and 24 V HTL) | 1 MHz (RS422) / 200 kHz (HTL) | 1 counter | Current recommendation; integrates with TIA Portal V15+ |
| ET 200SP TM Count 2x24V | 6ES7138-6AA00-0BA0 | 24 V HTL | 200 kHz | 2 counters | Not RS422 - HTL only |
| FM 350-1 (S7-300) | 6ES7350-1AH03-0AE0 | 24 V or 5 V (variant) | 500 kHz | 1 counter | Legacy; one module per encoder; total cost ~€600 per channel |
| FM 350-2 (S7-300) | 6ES7350-2AH00-0AE0 | 24 V or 5 V (variant) | 10 MHz | 8 counters | Legacy fast counter, larger footprint |
| SM 338 POS-Input | 6ES7338-4BC00-0AB0 | 5 V RS422 | 1 MHz | 3 SSI absolute, 2 incremental | For SSI absolute or incremental encoders, S7-300 only |
For a new design, the ET 200SP TM PosInput 1 is the recommended platform. For an existing S7-300 retrofit, the FM 350-1 or SM 338 may be the path of least resistance, even though each channel is more expensive.
S7-1200 High-Speed Inputs (5 V DC) - Option A
The S7-1200 onboard DI are 24V HTL only and cannot be used with a 5V RS422 differential signal directly. There are three ways to bring 5V signals into an S7-1200:
- Signal Board SB 1221 DI 5V DC (6ES7221-3AD30-0XB0) - 4 DI on the bottom of the CPU, HSC capable to 200 kHz, 5V logic. Differential pairs cannot be read; only the non-inverted (A) signal is used. The encoder line driver can source this, but common-mode rejection is lost. Acceptable for cabinet-local encoders with short pigtail leads.
- SM 1221 DI 5V DC (6ES7221-1BF32-0XB0) - 16 DI per module, HSC capable on the first 4 channels. Same caveats as the signal board: 5V single-ended, not differential.
- External 5V to 24V level shifter - The legacy approach; not recommended for new designs. The Siemens support thread on SiePortal - S7-1212 interfacing RS422 TTL documents the level-shift approach and its limitations.
For an S7-1200 retrofit of an existing 5V RS422 encoder, the cleanest path is to add the ET 200SP TM PosInput 1 (next section) as a distributed I/O station on PROFINET and let the counter live on ET 200SP. This is the configuration Siemens support recommends on the same SiePortal thread on wiring a SICK incremental encoder with TTL/RS422.
ET 200S 1Count and Positioning Modules - Option B
The ET 200S 1Count 5V (6ES7138-4DA04-0AB0 for 24V, 6ES7138-4DE02-0AB0 for 5V) and POS 1Count 5V (6ES7138-4DL00-0AB0) accept differential A, B, N inputs on a D-sub connector or a push-in front connector. They sit on PROFINET or PROFIBUS on the ET 200S station and present the count value to the S7-1200 or S7-300 CPU via process image.
Wiring to a typical 5V RS422 encoder is:
- Encoder A → Module pin 1 (A+)
- Encoder /A → Module pin 2 (A-)
- Encoder B → Module pin 3 (B+)
- Encoder /B → Module pin 4 (B-)
- Encoder N → Module pin 5 (N+)
- Encoder /N → Module pin 6 (N-)
- Encoder 5V supply → Module pin 7 (5V out) or external 5V DC supply
- Encoder 0V → Module pin 8 (0V) or external 5V DC return
- Cable shield → Module housing or PE clamp at the cabinet entry
Frequency is 1 MHz on the differential inputs. This is the module family that resolved the original problem of four 5V encoders on an S7 platform at a per-channel cost that an engineer could justify over a single FM 350-1 per channel.
ET 200SP TM PosInput 1 (6ES7138-6BA01-0BA0) - Option C
The current Siemens recommendation for new installations is the ET 200SP TM PosInput 1, MLFB 6ES7138-6BA01-0BA0. The module is 15 mm wide, fits in an ET 200SP base unit, and reads either 5V RS422 or 24V HTL incremental signals at up to 1 MHz on the RS422 inputs.
Key parameters from the TIA Portal Manual - TM PosInput 1 RS422 encoder signals:
- Encoder types: incremental RS422, pulse-and-direction RS422
- Maximum input frequency: 1 MHz differential, 200 kHz HTL
- Counting range: 32-bit, signed
- Number of counters: 1 per module
- Terminal assignment (BaseUnit type A0 or A1): pins 1-8 carry A, /A, B, /B, N, /N, 24V out, 0V
- Connection technology: push-in spring terminals on the BaseUnit, no D-sub
- Supported in TIA Portal V15.1 and later
- Function blocks: TO_PositioningAxis (motion control library), PosInput technology object
For four encoders you would need four TM PosInput 1 modules, mounted in the same ET 200SP station on PROFINET. Total cost per channel is roughly half that of an FM 350-1 plus an IM 151 base.
FM 350-1 / FM 350-2 - Option D (Legacy)
The FM 350-1 counter module (6ES7350-1AH03-0AE0) and FM 350-2 (6ES7350-2AH00-0AE0) are S7-300 family modules. The FM 350-1 is a single-channel counter with 500 kHz maximum, available in 24V and 5V variants. The FM 350-2 is an 8-channel high-speed counter at 10 MHz.
These are still used on retrofits where the rest of the cabinet is S7-300 and the budget covers the per-channel cost (typically €500-€700 per FM 350-1 channel). They are configured with the FM 350-1 / FM 350-2 function blocks in STEP 7 (Classic) or with FB / DB initialisation in TIA Portal as compatible legacy modules.
If the design is S7-300 with mixed encoder types, the FM 350-2 is a strong fit. If the design is S7-1200 or S7-1500, drop the FM and use the ET 200SP TM PosInput 1.
Wiring, Pinouts, and Shielding
The three rules for reliable RS422 encoder wiring in an industrial cabinet:
- Twisted pair for each signal pair. A, /A must be on adjacent pins of the same twisted pair. Same for B, /B and N, /N. Do not put A on one pair and /A on a different pair.
- Shield bonded at one end, or both ends through a 1 nF / 100 nF Y-rated capacitor. Direct bonding at the cabinet entry and at the encoder housing minimises high-frequency common-mode current. If the encoder is mounted on a different ground potential than the cabinet, use a capacitor at one end to break the ground loop while keeping RF bond.
- 100 Ω termination across each pair, close to the receiver. The Siemens modules already include 100 Ω termination on the RS422 inputs - it is switched on by default in the device configuration. External termination is not normally required and can be removed.
Pin-to-pin cable for a 6-pin encoder (A, /A, B, /B, 5V, 0V) typically uses 3 twisted pairs with an overall braid shield. Encoder manufacturers specify a cable cross-section of 0.14 mm² to 0.34 mm² depending on the run length. The Siemens-assembled cable 6FX8002-2CA31 (and similar) is rated for trailing-chain applications up to 30 m or 50 m. For runs over 50 m, increase the wire cross-section or use a Siemens-recommended repeater.
For N (index) signals that are not used, twist /N with N and leave both pinned at the receiver. Do not leave /N floating on the receiver side, since the floating complement will inject noise.
TIA Portal Configuration
The configuration steps below apply to the ET 200SP TM PosInput 1; the same logic extends to the other modules.
- Add the module. In the TIA Portal project, open the ET 200SP device view and drag "TM PosInput 1" (6ES7138-6BA01-0BA0) into slot 1. The base unit (BU15-P16+A0+2B or BU15-P16+A1+2B) determines whether the encoder power is fed out on the module or taken from an external supply.
-
Set the module parameters. Open Properties → Module parameters:
- Operating mode: "Count" (raw count) or "PositioningAxis" (motion control)
- Encoder type: "Incremental RS422"
- Signal evaluation: "Single" (1×), "Double" (2×), or "Quadruple" (4×). Quadruple is the most common for position, as each edge of A and B increments or decrements the counter.
- Input frequency: set the maximum expected input frequency (e.g., 500 kHz)
- Direction of rotation: A leads B = positive, B leads A = negative
- Reset on N: enable if the index pulse is used for a home reference
- Assign PROFINET device name. Load the project to the ET 200SP station. The TM PosInput 1 will appear in the I/O address list, e.g., input word 8-11 for the count value.
- Read the count in user code. The count value is an input DWord (32-bit). In an OB with a known cycle time, copy IW / IDW into a global DB and scale to engineering units (mm, degrees, counts) using the encoder PPR, the gear ratio, and the lead of the screw or pulley.
Sample SCL:
// Read count value
"Count_Raw" := "TM_PosInput_1".CountValue; // DWord
// Reset on hardware N (rising edge of index)
IF "TM_PosInput_1".Status.N_Pulse THEN
"Count_Raw" := 0;
END_IF;
// Position in mm with 1024-ppr encoder and 10 mm/rev leadscrew, 1× evaluation
"Position_mm" := LREAL_TO_REAL(DINT_TO_LREAL("Count_Raw") * 10.0 / 1024.0);
For motion control (positioning), use the technology object "TO_PositioningAxis" instead of a raw count, and let TIA Portal generate the MC_Home, MC_MoveAbsolute, and MC_MoveJog calls.
Commissioning and Verification
A repeatable commissioning sequence:
- Visual inspection. Verify encoder pinout, shield bonding, and 5V supply at the encoder. Measure 5V ±5% at the encoder terminals with the cable connected.
- Wiring test with a multimeter. Disconnect encoder; at the receiver end, measure pin-to-pin resistance for each pair (~100 Ω), and pin-to-ground resistance (>10 MΩ). A short to ground or shield indicates cable damage.
- Pulse test. Rotate the encoder shaft by hand at a known angle and verify the count in the I/O monitor of TIA Portal. For 1024-ppr with 4× evaluation, 90° should produce 1024 counts.
- Direction test. Watch the count in online mode while rotating in the known positive direction. If it counts down, swap A and B in the module configuration.
- Index test. Rotate the shaft through one full turn and verify a single index pulse is seen in the status word. The N pulse should fire once per revolution.
- Speed test. Drive the motor to maximum speed, sample the count value at 1 ms intervals in the PLC trace, and confirm that the count change per millisecond is consistent with the encoder PPR. If the count loses steps (count change < expected) at speed, the cable is too long, the termination is wrong, or the input frequency limit is too low.
- Noise test. With the drive enabled, monitor the count value for jitter. A 1-2 LSB jitter on a clean 5V RS422 signal is normal; a step of 50 counts or more indicates noise pickup, missing termination, or a broken shield.
Troubleshooting Matrix
| Symptom | Likely cause | First check | Fix |
|---|---|---|---|
| Count does not change at all | Encoder supply missing | 5V at encoder terminals | Restore 24V / 5V supply; check BU type on ET 200SP |
| Count does not change at all | Wrong encoder type selected in module config | Module parameters → "Encoder type" | Set to "Incremental RS422" |
| Count changes by 1 count at a time, no direction sense | Operating in "Single" evaluation with one edge only | Module parameters → "Signal evaluation" | Change to "Double" or "Quadruple" |
| Count counts in wrong direction | A and B swapped at receiver | Online I/O monitor | Swap A and B at the module terminal OR invert direction in module config |
| Count is correct at low speed, loses steps at high speed | Input frequency limit too low | Module parameters → max frequency | Raise to 1 MHz on RS422 modules |
| Count is correct at low speed, loses steps at high speed | Cable too long or wrong type | Cable specification | Use Siemens 6FX8002 trailing-chain cable; max 50 m for 5V RS422 at 1 MHz |
| Count has 50+ count jitter at standstill | Shield not bonded | Continuity test on shield | Bond shield at one end, capacitor at the other |
| Count has 50+ count jitter at standstill | Missing 100 Ω termination on differential pairs | Module configuration | Enable internal termination in the module (default ON) |
| Index pulse not seen | /N pair not connected | Continuity test on N and /N | Wire both N and /N; do not leave /N floating |
| Index pulse not seen | "Reset on N" not enabled | Module parameters | Enable "Reset on N" or evaluate N in user code |
| Encoder "OK" status off in module diagnostics | Wire break or short circuit | Module diagnostic buffer | Read SF (system fault) LED pattern; look for "encoder wire break" diagnostic |
| Count is correct in test mode, wrong under motion | Vibration causing intermittent contact | Tighten connectors; inspect encoder mounting | Replace encoder; check coupling |
| Count overflows after a few hours | Counter is 32-bit unsigned; expected in long-running systems | Counter range | Use DINT and treat roll-over in user code, or use TO_PositioningAxis to handle wrap-around |
| Position is off by exactly a factor of 2 or 4 | Evaluation mode mismatch (1× vs 2× vs 4×) | Engineering units in trace | Set evaluation to match the assumed mode in the scaling calculation |
If the TM PosInput 1 enters a diagnostic state, the SF LED on the module turns red. The diagnostic buffer in TIA Portal lists the cause as a coded event:
- 0x0001: Encoder wire break
- 0x0002: Short circuit on 24V out
- 0x0010: Parameter assignment error
- 0x0020: Hardware fault (replace module)
The full diagnostic list is in the SIMATIC ET 200SP TM PosInput 1 manual under "Diagnostics".
Migration Path from 24V HTL to 5V RS422
When the encoder is fixed (the machine has the 5V RS422 encoder and there is no budget to swap it), the path is:
- Keep the S7-300 / S7-400 CPU if it is doing other work, and add FM 350-1 modules in the same rack. The FM 350-1 accepts 5V inputs in the -1AH03 variant.
- Move the CPU to S7-1200 or S7-1500, drop the 24V HSC on the CPU, and add an ET 200SP station on PROFINET with one TM PosInput 1 per encoder. This is the lowest-risk path because the encoder cables are still terminated at the same field connector; only the receiver moves from the FM 350-1 to the TM PosInput 1.
- Keep the existing CPU 313C (if the rest of the machine is S7-300) and add an ET 200S station with 1Count 5V modules for the four 5V encoders, while the CPU 313C HSC continues to handle any remaining 24V encoders. The ET 200S connects to the CPU 313C on PROFIBUS or PROFINET (via IE/PB Link).
For a one-channel retrofit where cost is the driver, a single TM PosInput 1 with PROFINET and a SIMATIC ET 200SP interface module (IM 155-6 PN ST) is the lowest cost-of-entry into the Siemens encoder ecosystem with 5V RS422. For multi-channel retrofits, the per-channel cost of FM 350-1 modules is roughly 2× the per-channel cost of ET 200SP TM PosInput 1 modules, and the FM 350-1 is one slot per channel vs. 15 mm per channel on ET 200SP.
FAQ
Can a 5V RS422 encoder be wired directly to the onboard DI of an S7-1200 CPU?
No. The onboard DI of an S7-1200 are 24V HTL inputs with a 100 kHz or 200 kHz limit, and they are not differential. Use the SB 1221 DI 5V DC signal board for single-ended 5V, or move to an ET 200SP TM PosInput 1 for true 5V RS422 differential input at up to 1 MHz.
What is the part number for the current Siemens RS422 incremental counter module?
The ET 200SP TM PosInput 1 is 6ES7138-6BA01-0BA0. It accepts 5V RS422 or 24V HTL incremental encoders, runs at 1 MHz differential, and is supported in TIA Portal V15.1 and later. See the SIMATIC ET 200SP TM PosInput 1 manual for full specifications.
Why is RS422 preferred over 24V HTL for high-speed encoders?
RS422 uses 5V differential pairs, which switch 5 to 10 times faster than a 24V HTL single-ended signal. Differential pairs also reject common-mode noise, so a 50 m cable in a noisy cabinet can carry 1 MHz pulses reliably while a 24V HTL line tops out at 100-200 kHz. The result is higher position resolution and lower velocity-loop quantisation noise.
How many ET 200SP TM PosInput 1 modules do I need for four 5V RS422 encoders?
One module per encoder. Each TM PosInput 1 is a single-channel counter in 15 mm of width. For four encoders, add an ET 200SP station with four TM PosInput 1 modules and one IM 155-6 PN interface module on PROFINET.
Is the FM 350-1 still recommended for new installations?
No. The FM 350-1 is an S7-300 legacy module and remains available for S7-300 retrofits where it is the lowest-risk drop-in. For new designs on S7-1200 or S7-1500, the ET 200SP TM PosInput 1 is the current recommendation, with lower per-channel cost, smaller footprint, and a single TIA Portal configuration tool.