Wiring RS422 Incremental Encoders to Siemens S7 and ET 200SP

David Krause18 min read
Sensor IntegrationSiemensTechnical 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

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.

Rule of thumb: HTL tops out around 100-200 kHz on short, well-terminated cables. RS422 reliably runs at 1 MHz to 12 MHz on twisted pair, which is the range required for high-resolution feedback on servo axes and high-speed positioning.

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 Quadrature with 4× Evaluation A (true) /A (complement) Receiver measures V(A) - V(/A): differential, common-mode rejected

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
Siemens 5V RS422 Module Selection Flow 5V RS422 encoder? S7-1200 / S7-1500 CPU? YES → ET 200SP TM PosInput 1 NO → S7-300 retrofit 1Count 5V (PROFINET) FM 350-1 or SM 338

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:

  1. 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.
  2. 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.
  3. 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:

  1. 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.
  2. 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.
  3. 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.
RS422 Encoder Wiring Topology 5V RS422 Encoder A /A B /B N /N 5V 0V shielded twisted-pair cable PE TM PosInput 1 (6ES7138-6BA01-0BA0) A, /A (pin 1-2) B, /B (pin 3-4) N, /N (pin 5-6) 5V out (pin 7) S7-1200 CPU process image IDW 8-11

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.

  1. 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.
  2. 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
  3. 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.
  4. 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:

  1. Visual inspection. Verify encoder pinout, shield bonding, and 5V supply at the encoder. Measure 5V ±5% at the encoder terminals with the cable connected.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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:

  1. 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.
  2. 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.
  3. 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.

Back to blog