FM 350-2 Counter Module: Troubleshooting 24V HTL Encoder Pulse Failures
The Siemens FM 350-2 counter module is an 8-channel, 24 V function module for the S7-300 / S7-400 automation system. It is commonly deployed in packaging lines, machine tools, and material-handling cells where incremental encoders provide position or speed feedback. When a replacement 24 V HTL (push-pull) encoder is installed and the module returns zero counts, the root cause is almost always a wiring or commissioning issue rather than an encoder-incompatibility problem. This reference walks through the diagnostic sequence, the supported encoder types, the exact terminal assignments, and the STEP 7 software checks that recover counting operation.
1. Problem Description
A factory retrofits a damaged incremental encoder on a machine that uses an FM 350-2 counter module. The replacement unit is a 24 V HTL incremental encoder (EIL580-series, 1024 ppr). After the swap, the application program reads a constant zero in the counter value, even though the encoder shaft is rotated. A direct voltage check at the front connector of the FM 350-2 shows the count pulses on track A but never on track B.
Symptoms observed in the field:
- Counter DB load value (e.g.,
DBx.LOAD_VALUE) never updates. - User_Stat peripheral address returns zero or stuck values.
- LED on the FM 350-2 for the active channel does not toggle on rotation.
- Voltmeter at terminals A0/B0 shows the expected 24 V level on A, but the B input is dead.
2. Root Cause Analysis
The FM 350-2 natively supports 24 V encoders in the following configurations, per the official Siemens operating instructions:
- NAMUR encoders to DIN 19234, wired to terminals A0–A7 with diagnostic capability.
- 24 V incremental encoders, with track A on A0–A7 and track B on B0–B7.
- 24 V pulse encoder with direction level, count signal on A0–A7, direction level on B0–B7.
- 24 V pulse encoders, single-channel on A0–A7.
Per the Siemens FM 350-2 manual excerpt, HTL (push-pull) outputs are fully supported on the 24 V inputs; no level-shifter or 5 V interface is required. The most common reasons for a zero-count condition on a 24 V HTL encoder are listed below in the Troubleshooting Matrix (Section 9). In the case described in the field report, the root cause was a physically damaged Track B output in the replacement encoder, not a wiring or configuration defect.
3. Prerequisites
- STEP 7 V5.5 (or TIA Portal V20 with FM 350-2 HSP) installed and licensed.
- FM 350-2 GSD/HSP installed and hardware catalog updated.
- 24 V DC power supply sized for the encoder load (typical incremental encoder 40–100 mA, plus FM 350-2 backplane current).
- Spare incremental encoder with 24 V HTL (push-pull) outputs.
- Multimeter or oscilloscope for signal verification at the front connector.
- Wiring diagram from the machine tool builder identifying the active channel (1–8) and the configured operating mode (count, measure, or gate control).
4. Hardware Wiring Procedure
The FM 350-2 front connector accepts encoder signals and 24 V encoder supply through dedicated terminals. The following table maps the required connections for a single-channel 24 V incremental encoder on Channel 1.
| FM 350-2 Terminal | Signal | Encoder Wire (typical) |
|---|---|---|
| A0 | Track A pulse (count input, channel 1) | Encoder pin A / phase A |
| B0 | Track B pulse (direction input, channel 1) | Encoder pin B / phase B |
| 21 (+) | External 24 V encoder supply positive | Encoder +V (24 V) |
| 22 (-) | External 24 V encoder supply reference | Encoder 0 V / GND |
| N.C. | Track N (index) — only wired if zero marker is evaluated | Encoder pin N (optional) |
Wiring steps:
- Open the front connector cover of the FM 350-2.
- Verify the encoder cable shield is bonded to the module's shield terminal using a low-impedance clamp, not a flying lead.
- Connect encoder pin A to terminal A0; connect encoder pin B to terminal B0.
- Connect encoder +V (typically brown wire) to terminal 21; connect encoder 0 V (typically blue wire) to terminal 22.
- Route the 24 V supply for terminals 21/22 from a separate 24 V DC bus, not from the S7-300 backplane. The Siemens manual explicitly states: "You must connect the encoder supply for the 24-V encoders via an external 24 VDC voltage supply."
- Tighten the front connector screws and close the cover.
5. Software Configuration in STEP 7 / TIA Portal
After wiring, the module must be parameterized in HW Config to declare the count mode, the pulses-per-revolution value, and the active operating mode for each channel.
5.1 Operating modes per channel
- Counting mode (continuous / single / periodic) — most common for position feedback.
- Measuring mode — used for time-based pulse measurement.
- Gate control mode — for start/stop-controlled counting windows.
5.2 Critical configuration parameters
| Parameter | Typical Value (1024 ppr HTL) | Notes |
|---|---|---|
| Pulses per encoder revolution | 1024 | Match the encoder datasheet exactly. |
| Count direction | Normal (or invert per wiring) | Set in HW Config or in DB. |
| Signal evaluation | Single (track A only) or Quad (A + B with 1x/2x/4x) | Quad 4x: 4096 counts/rev at 1024 ppr. |
| Gate function | Cancel / Abort / Interrupt | Determines what happens at gate close. |
| Upper count limit | 0x7FFFFFFF (max 31-bit) | Default 24-bit, can be set to 31-bit. |
| Hardware interrupt | On comparison, gate close, overflow | Optional. |
5.3 User program integration
The FM 350-2 ships with the FC2 CNT2_CTR function block for general counting operations. It must be called from a cyclic OB (typically OB1) to keep the user DB current and to trigger commands such as CTRL_DQ0, SET_DQ0, or READ_DQ0.
ST call example in OB1:
// Call FC2 "CNT2_CTR" with the counter DB
CALL FC2 // CNT2_CTR
DB_NO := 10 // Instance DB number
I0 := FALSE
I1 := FALSE
SET_DQ0 := FALSE
CTRL_DQ0 := FALSE
READ_DQ0 := FALSE
RES_ERROR := FALSE
PARA := FALSE
READ_ERR := FALSE
ACT_CNT := FALSE
If FC2 CNT2_CTR is not called, the counter will not start, and the user DB will not be refreshed even though the hardware inputs are wired correctly.
6. Verification Procedure
- Power-up check: Apply 24 V to the encoder and confirm the encoder LED (if present) is lit. Measure 24 V between terminals 21 (+) and 22 (-) of the FM 350-2 front connector.
- Signal check at A0: With an oscilloscope or multimeter in AC mode, rotate the encoder shaft slowly. Verify a clean 24 V square wave on terminal A0 (and B0 for quadrature).
-
Online parameter check: Open the counter DB online in STEP 7. Inspect the
CHECKBACK_SIGNALS.PARAbit — this confirms the parameter set was accepted by the module. A 0 in PARA indicates a parameterization error. - User_Stat peripheral read: The FM 350-2 provides a peripheral address range (P-area) per channel. Read the User_Stat words to confirm the actual count register is incrementing. The P-address is assigned in HW Config; typical base is PIW 288 onward.
-
Program-level verification: In OB1, set a temporary variable to
DB10.Counter_1_Actual_Valueand monitor it in the VAT table. Manually rotate the encoder 1024 ppr in quadrature-4x mode and confirm 4096 counts are registered. - Hardware interrupt test: If a hardware interrupt is configured (e.g., on comparison match), trigger the event and verify OB40 fires.
7. Root Cause of the Reported Field Failure
In the field report, the field engineer verified the following sequence:
- A 24 V HTL encoder was installed as a direct replacement for the original unit.
- Track A produced 24 V pulses at terminal A0, and the count value advanced.
- Track B produced no signal at terminal B0, breaking the quadrature relationship.
- When a 5 V TTL encoder was temporarily substituted, both A and B inputs registered 5 V pulses at the FM 350-2 (open-collector behavior into the 24 V input stage).
The diagnosis: the replacement 24 V HTL encoder's pin B output transistor was physically damaged — likely an ESD event during handling or a defect from the supplier. The FM 350-2 and the wiring were correct. The remediation was to swap the encoder for a new, verified unit.
8. Encoder Selection Guidance
For any FM 350-2 retrofit, the replacement encoder must satisfy the following minimum electrical requirements:
| Specification | Required Value | Reason |
|---|---|---|
| Supply voltage | 24 V DC ±20% | Matches the 21/22 supply input and input thresholds. |
| Output type | HTL (push-pull) or open-collector NPN with pull-up | Natively supported by FM 350-2 input stage. |
| Output high level (V_OH) | ≥ 18 V at rated load | FM 350-2 24 V input recognizes 11–30 V as high. |
| Output low level (V_OL) | ≤ 5 V at rated load | FM 350-2 24 V input recognizes 0–5 V as low. |
| Max count frequency | 10 kHz / 20 kHz / 200 kHz — verify against FM 350-2 variant | Exceeding the count frequency triggers diagnostic interrupt. |
| Channel count | Single-ended A and B, with optional N (index) | Not differential RS-422. |
The EIL580-SC10.5FN.01024.A encoder used in the reported case is a 24 V HTL push-pull unit with 1024 pulses per revolution — fully compatible with the FM 350-2. The GI355.A60C323 original is a legacy Hengstler unit, no longer in production; the EIL580 from the same vendor is a drop-in modern replacement.
9. Troubleshooting Matrix
| Symptom | Likely Root Cause | Diagnostic Step | Remediation |
|---|---|---|---|
| Zero counts, no pulses at A0 | No 24 V supply at terminals 21/22; encoder wire break; encoder power supply failed | Measure V between 21 and 22 | Restore 24 V supply; re-pull encoder cable |
| Counts present on A but not B | Damaged encoder B output; broken B wire; missing B wiring to B0 | Scope terminal B0 while rotating shaft | Replace encoder; repair wire; rewire to B0 |
| Counts increment only in one direction | Quadrature mode set to single-channel; direction level inverted | Check HW Config operating mode | Set to quadrature 1x/2x/4x; invert direction if mechanical orientation requires |
| Counter holds at last value | Gate input inactive or FC2 not called | Check gate function and OB1 call of FC2 CNT2_CTR | Activate gate per HW Config; add CALL FC2 to OB1 |
| CHECKBACK_SIGNALS.PARA = 0 | Parameterization rejected (invalid pulses/rev, invalid operating mode) | Read diagnostic interrupt OB82 | Correct parameter set; download HW Config |
| User_Stat values frozen | Wrong peripheral address used; OB1 not refreshing DB | Compare P-address in HW Config vs. PIW used in program | Correct the P-address or rewrite to read from the instance DB |
| SF (red) LED on FM 350-2 | Wire break on track A or B; missing encoder supply; group error | Open module diagnostics in STEP 7 | Resolve the diagnostic message; restart module |
| Counts drop / jitter at speed | Max count frequency exceeded; cable too long; missing shield bond | Calculate frequency = rev/s × ppr; check cable ≤ 50 m for 24 V HTL | Lower mechanical speed, use shorter shielded cable, re-bond shield |
10. STEP 7 Quick Diagnostic Procedure
- Open SIMATIC Manager → online → accessible nodes → select the FM 350-2.
- Right-click → Module Information → Diagnostics. Note any pending diagnostic interrupts (OB82).
- Open the counter DB online. Inspect:
-
CHECKBACK_SIGNALS.PARA— must be 1. -
CHECKBACK_SIGNALS.ACT_CNT— must be 1 (count active). -
CHECKBACK_SIGNALS.GATE— must be 1 (gate open).
-
- Add a VAT to monitor
DBx.Actual_Valuein real time. - Rotate the encoder slowly and confirm the value changes by the expected count increment.
11. Field-Commissioning Checklist
- Encoder datasheet pulses/rev value matches the HW Config parameter exactly.
- Encoder supply is 24 V DC from a clean, dedicated bus, not backplane-derived.
- Cable shield bonded at FM 350-2 end only, with 360° clamp to the shield bar.
- Track A on A0, Track B on B0, supply on 21/22 — verified with continuity tester.
- FC2 CNT2_CTR is called from OB1 with the correct DB number.
- HW Config downloaded and the SF LED is off after restart.
- Counter value advances correctly when the shaft is rotated by hand.
- Quadrature 4x verified: 1024 ppr × 4 = 4096 counts per mechanical revolution.
12. Related Siemens Documentation
For deeper configuration and parameterization reference, consult the following official Siemens resources:
- FM 350-1 Counter Module Operating Instructions (PDF) — covers 24 V incremental encoder wiring, pulse-per-revolution parameters, and measuring ranges.
- Using FM 350-2 from the User Program (S7-300, S7-400) — official TIA Portal V20 documentation for FC2 CNT2_CTR, encoder selection, and count direction configuration.
Frequently Asked Questions
Does the FM 350-2 support 24 V HTL (push-pull) encoders?
Yes. The FM 350-2 supports 24 V incremental encoders, 24 V pulse encoders with direction level, 24 V pulse encoders, and NAMUR encoders per DIN 19234. Connect Track A to terminals A0–A7, Track B to B0–B7, and 24 V supply to terminals 21 (+) and 22 (-).
Can the FM 350-2 read 5 V TTL encoders?
The FM 350-2 is a 24 V module. While some 5 V open-collector TTL encoders may produce counts when biased by the 24 V supply, this is not a guaranteed behavior. Use a true 24 V HTL or push-pull encoder for reliable production operation.
Why does my counter DB show zero even though pulses are present at the terminal?
Verify that FC2 CNT2_CTR is called from OB1 with the correct instance DB number. Without the cyclic call, the user DB is never refreshed. Also confirm CHECKBACK_SIGNALS.PARA = 1, indicating the parameter set was accepted.
How do I check the actual count value in real time?
Open the counter DB online in STEP 7 and add it to a VAT table. The Actual_Value word/DWord field updates with each cycle. For higher-resolution verification, also read the FM 350-2 peripheral address (e.g., PIW 288) and confirm it matches.
What is the maximum count frequency of the FM 350-2?
Count frequency is variant-dependent; common FM 350-2 versions support up to 10 kHz, 20 kHz, or 200 kHz per channel. Always verify the exact variant ordered (e.g., 6ES7350-2AH01-0AE0) against the encoder's maximum output frequency to avoid overflow diagnostic interrupts.