Building a Siemens S5/S7 Module Test Bench for Spare Verification
When a plant runs legacy SIMATIC S5 controllers alongside S7-300/S7-400 systems, the spare-parts inventory is often a mix of factory-new and refurbished (used) modules. Field engineers need a fast, repeatable method to confirm that a spare AI, AO, DI, DO, or CPU module is functional before installing it on a running machine. Hot-swapping modules on a live PLC rack is slow, risks wiring errors, and exposes production to unnecessary downtime. A dedicated test bench solves this problem by isolating module verification from the controlled process.
This reference covers a complete bench design for both SIMATIC S5 (S5-90U/95U/115U/135U/155U families) and SIMATIC S7-300/400 spares, including Report System Error (RSE) configuration in STEP 7, diagnostic buffer decoding, organization block (OB) fault codes, and pass/fail criteria. Procedures apply whether modules are pulled from a working machine, sourced from surplus stock, or salvaged from decommissioned racks.
1. Why Hot-Swapping Spare Modules Is the Wrong Approach
The naive workflow—stop equipment, stop PLC, disconnect one module at a time, rewire the spare, power up, test, restore—is both unsafe and inefficient on a production line:
- Downtime cost. Each cycle typically takes 20–45 minutes per module including wiring, restart, and verification.
- Wiring fatigue. Repeatedly disconnecting front connectors from terminals such as the 6ES5 730-... series front connectors breaks screw clamps and stranded-wire strands.
- Cross-contamination risk. A faulty spare installed next to a working module can propagate faults through the backplane, especially on S5-115U/135U/155U with EU (expansion unit) cabling.
- No diagnostic capture. Intermittent faults may pass when the spare is briefly installed but fail later in service. A controlled bench records the full diagnostic buffer.
A bench isolates the module under test, exercises every channel under load, and captures OB82/OB84/OB86/OB122 entries before the module is ever shipped to the field.
2. Prerequisites
Before building the test bench, confirm the following:
- Working CPU. One fully functional CPU per family (S5-95U, S5-115U, S7-314, S7-414, etc.) acts as the master. Keep firmware versions consistent with the field fleet.
- STEP 7 V5.5 SPx with SIMATIC Manager installed on a Windows 7 / XP / Windows 10 (compatibility mode) PC. The Report System Error wizard requires STEP 7 V5.3 or later.
- PC Adapter USB (6ES7 972-0CB20-0XA0) or CP 5611 / CP 5613 MPI/Profibus card for S7-300/400.
- PG 740 / PG 760 programmer or equivalent with S5-DOS / STEP 5 software for the S5 side.
- Reference signal sources: 24 V DC bench supply (Phoenix Contact QUINT or Siemens SITOP), 0–10 V / 4–20 mA calibrator (Beamex MC6 or WIKA CPH7000), decade resistance box, and a 4-wire PT100 simulator.
- Loads: 24 V lamp bank or programmable electronic load for DO verification, dummy transducers for AI channels.
- Documentation: The Siemens S5-115U manual set (6ES5 998-0SH12 / -0SH22), the S7-300 Module Data manual, and the S7-400 Reference Manual.
3. Test Bench Architecture
The recommended topology separates S5 and S7 racks on independent frames but shares the 24 V DC supply and signal-conditioning block.
Figure 1 — Test bench topology with isolated S5 and S7 racks sharing a conditioned signal/load panel.
4. S5 Test Bench — Hardware and Test Points
4.1 Racks and Power
Use the original Siemens S5 racks:
- CR 700-0 (central rack) for S5-115U with up to 8 slots.
- ER 701-0 (expansion rack) connected via IM 306 / IM 308 for additional modules.
- PS 905 / PS 907 power supplies rated at 115/230 V AC input, 24 V DC / 5 V DC outputs.
4.2 Common S5 Spare Module Catalog Numbers
| Module family | Function | Typical MLFB (6ES5 ...) | Channels | Notes |
|---|---|---|---|---|
| 6ES5 430-4UA12 | DI 24 V DC | 24 V DC sink | 32 | Group-fault LED indicator |
| 6ES5 431-4FA10 | DI 110 V AC | 110 V AC | 16 | Optically isolated groups |
| 6ES5 440-4UA12 | DO 24 V DC, 0.5 A | 24 V DC source | 32 | Short-circuit proof per group |
| 6ES5 441-4UA12 | DO 24 V DC, 2 A | 24 V DC source | 16 | Watch heatsink tab temp |
| 6ES5 450-4UA12 | DO relay 230 V AC | Relay, dry contact | 16 | Mechanical life 10⁶ cycles |
| 6ES5 460-4UA12 | AI ±10 V / 4–20 mA | 12-bit | 8 | Configure via DIP on side |
| 6ES5 465-4UA12 | AI for PT100 / NI100 | 4-wire RTD | 4 | Linearization in CPU FW |
| 6ES5 470-4UA12 | AO ±10 V | 12-bit | 8 | Short-circuit proof |
| 6ES5 475-4UA12 | AO 4–20 mA | 12-bit | 8 | Load ≤ 600 Ω |
| 6ES5 941-7UB11 | CPU 941 (S5-115U) | Programming unit | — | 48 KB code / 48 KB data |
| 6ES5 948-3UA11 | CPU 948 (S5-135U) | Programming unit | — | Hot standby capable |
4.3 Wiring Convention
S5 front connectors are the 6ES5 730-... series with screw or cage-clamp terminals. Build pigtails that replicate field wiring: short jumper wires from a 24 V DC source through 1 kΩ resistors simulate field sensors for DI, while 24 V lamps with 470 Ω dropping resistors load the DO outputs.
5. S5 Verification Procedure
5.1 CPU Self-Test
- Insert CPU with no EPROM/EEPROM initially. Power up — the BASP LED must light, and the CPU should request a memory reset (STOP mode with "REORG" if a memory card is inserted).
- Insert EPROM/EEPROM with a known-good test program (FB-only OB1 echo: increment a counter and toggle an output on each scan).
- Set the mode selector to RUN. The CPU must transition STOP → RUN within 3 seconds without triggering the SF (group fault) LED.
- Read the diagnostic buffer via STEP 5 / COM 115/155. Acceptable entries: power-on, mode change, restart. Unacceptable: CPU fault, ISTACK overflow, module pull/plug during RUN when no module was removed.
5.2 Digital Input Modules
- Apply 24 V DC to channel 0 via the front connector. The corresponding LED must light within 50 ms.
- In STEP 5, monitor the process image input byte. Bit 0 must transition 0 → 1.
- Cycle each channel with a debounced toggle switch. Verify both LED and process image.
- For 110 V AC modules, use an isolated variac — never connect bench mains directly to module terminals without an isolation transformer.
5.3 Digital Output Modules
- Drive each output high via the test program. Verify the channel LED and measure voltage at the load terminal (should drop ≤ 0.5 V at rated load).
- Apply a 10 % over-current condition (e.g., 0.55 A on a 0.5 A module) for 60 s. The module must fold back or trip the group fuse without latching the CPU into STOP.
- For relay modules, exercise each contact with an ohm-meter: closed resistance < 100 mΩ, open resistance > 100 MΩ.
5.4 Analog Input Modules
- Apply 0 V, 5 V, and 10 V from the calibrator to channels 0–7.
- Read the raw value from the process image. For a 12-bit bipolar module the expected linear mapping is:
Value = (Vin / 10 V) * 2048 + 2048
Example: Vin = +5.000 V -> Value = 1024 + 2048 = 3072 decimal (0xC00)
Example: Vin = -10.000 V -> Value = -2048 + 2048 = 0 (under-range clamp)
- Acceptance: every channel within ±2 LSB of expected at all three test points. Reject if any channel drifts > 4 LSB over 5 minutes.
- For RTD modules (6ES5 465), verify linearity at 0 °C, 100 °C, and 200 °C with PT100 simulator.
5.5 Analog Output Modules
- Set each channel to 0 %, 50 %, 100 % from the test program.
- Measure with a 6½-digit DMM at the front connector.
- Acceptance: ±0.3 % of full scale (typical Siemens 12-bit AO spec).
6. S7 Test Bench — Report System Error Setup
The S7-300/S7-400 side uses the STEP 7 "Report System Error" (RSE) wizard to generate automatic diagnostics. Once configured, the CPU writes diagnostic messages to the diagnostic buffer and to DB 125 (S7-300) or DB 126 (S7-400), where they can be retrieved from the HMI or engineering station.
6.1 Configuration Steps in SIMATIC Manager
- Open HW Config for the bench station.
- Insert the CPU (e.g., 6ES7 314-6CG03-0AB0) and add all slave modules that will be exercised (SM 321, SM 322, SM 331, SM 332).
- Select the CPU row, then choose Options → Report System Error.
- In the wizard, enable diagnostics for:
CPU diagnostics : YES
OB82 (diagnostic interrupt) : YES (used)
OB83 (module pull/plug) : YES (used)
OB84 (CPU/IM failure) : YES (used)
OB85 (OB not loaded) : YES (used)
OB86 (rack failure) : YES (used)
OB121 (programming error) : YES (used)
OB122 (I/O access error) : YES (used)
Generate DB 125 / DB 126 : YES
Send to HMI / WinCC : optional
- Compile and download to the CPU. RSE installs OB82, OB83, OB84, OB85, OB86, OB121, OB122 (these are now present in the S7 program).
- Open CPU Messages via PLC → CPU Messages. Faulty modules will surface here with event IDs.
6.2 Diagnostic Buffer Readout
After each module test cycle, perform PLC → Diagnostics/Settings → Clear/Reset Diagnostic Buffer only if desired, then run the test and read the buffer in chronological order. Key event IDs for module faults:
| Event ID (hex) | Meaning | Likely cause on test bench |
|---|---|---|
| 0x2520 | OB82 start — diagnostic interrupt | Module channel wire-break or short |
| 0x2521 | OB82 end — diagnostic interrupt cleared | Channel fault gone after load step |
| 0x2540 | OB83 — module inserted | Module pull/plug during RUN, expected during test |
| 0x2541 | OB83 — module removed | Same, expected |
| 0x2544 | OB83 — module parameter error | Wrong HW Config slot, bad firmware |
| 0x35xx | Module diagnostic interrupt | Wire-break on AI/DI, over-temp on DO, range error on AI |
| 0x39xx | Communication fault | Profibus slave not on bench yet — OK for CPU-only test |
| 0x4940 | OB121 — programming error | Test FB uses wrong DB number |
| 0x4980 | OB122 — I/O access error | Test program reads slot not present |
7. Organization Block (OB) Fault Reference
The OB priority and reaction table is essential for interpreting diagnostic buffer entries.
| OB | Priority | Class | If OB missing → CPU goes to | Test-bench relevance |
|---|---|---|---|---|
| OB82 | 7 | Diagnostic interrupt | STOP | Most module-channel faults |
| OB83 | 7 | Module pull/plug | STOP | Hot-swap testing of ET200 |
| OB84 | 7 | CPU/IM rack failure | STOP | Detects backplane fault in spare CPU |
| OB85 | 7 | OB-not-loaded fault | STOP | Test program error, not module fault |
| OB86 | 7 | Rack failure (PROFIBUS DP) | STOP | Verifies DP slave IM on spare |
| OB121 | Same as OB1 | Programming error | STOP | Test FB bug — fix, not module reject |
| OB122 | Same as OB1 | I/O access error | STOP | Same as above |
8. Pass/Fail Decision Matrix
| Symptom observed | Suspected fault | Action |
|---|---|---|
| BASF / SF LED steady after power-up | CPU hardware fault, missing memory submodule | Reject |
| Single DI channel dead, others OK | Opto-coupler blown | Reject module |
| All DI channels dead on one group | Group fuse or DC-DC converter fault | Reject — group fault not repairable |
| DO output stuck ON | Output transistor shorted | Reject — risk of overdriven field device |
| AI channel drifts > 4 LSB | Input amp aging, dirty connector | Clean front connector, retest; reject if persistent |
| AO channel off by > 1 % FS | DAC reference drift | Reject |
| CPU enters STOP with SF after warm restart | Battery low on CPU | Replace battery, retest; accept if restarts clean |
| OB84 during restart | Backplane / IM fault | Reject CPU |
| OB122 reading PIW 752 (slot not configured) | Test program bug | Fix FB, not a module issue |
9. Commissioning Verification Steps
Run this checklist every time the bench is re-cabled or a new CPU firmware is installed:
- Confirm the SITOP PSU voltage is 24.0 V ±0.2 V DC under load.
- Confirm the calibrator has been calibrated within the last 12 months (NIST or accredited lab traceable).
- Power the rack with no module under test — CPU must complete power-on self-test within 5 s and reach RUN on a clean test FB.
- Insert a known-good reference module (kept on the bench as a golden unit). Confirm all tests pass.
- Insert the spare module and run the full test sequence.
- Save the diagnostic buffer and a screenshot of HW Config showing the module present in green.
- Tag the module with a barcode label: PASS / FAIL, date, technician initials, firmware version.
10. Troubleshooting Common Bench Issues
| Symptom | Probable cause | Fix |
|---|---|---|
| CPU will not go RUN; SF + BF LEDs | DP slave not plugged | Disable DP master in HW Config for CPU-only test |
| STEP 7 cannot find CPU via MPI | Wrong MPI address, baud rate mismatch | Set MPI address = 2, baud = 187.5 kbps default |
| DI input reads random toggling | Floating input, no pull-down | Add 10 kΩ pull-down to M at each input |
| AO output 1 V offset at 0 % | Module needs recalibration | Reject — module cannot be recalibrated in field |
| PG 740 cannot communicate with S5 CPU | TTY current loop cabling wrong polarity | Swap pins 2 and 3 on the 15-pin PG connector |
| Test FB goes STOP with OB85 | Background OB missing | Insert empty OB100 / OB1 to clear OBs |
| Diagnostic buffer fills instantly | Loose front connector | Re-seat connector, retighten screws |
11. Documentation and Records
Maintain a CSV or relational log per spare:
Module_MLFB,Serial_No,Family,Firmware,Test_Date,Technician,Pass_Fail,Notes
6ES7 322-1BL00-0AA0,S730-2204-AK08,S7-300 DO16,FW V3.0,2026-01-14,JD,PASS,Channel 12 within 1 LSB
6ES5 460-4UA12,S540-0612-118,S5-115U AI8,n/a,2026-01-14,JD,FAIL,Channel 3 reads 8 LSB high
6ES7 314-6CG03-0AB0,S7314-AK21-0928,S7-300 CPU314C-2,FW V3.3,2026-01-14,JD,PASS,Clean OB82 after 24h burn-in
This log feeds the inventory system and provides evidence during quality audits for ISO 9001 or equivalent quality management systems.
12. References in Procedure
- Siemens SIMATIC S5-115U Manual Set (6ES5 998-0SH12)
- S7-300 Module Data (manual collection)
- STEP 7 V5.5 Report System Error — function manual
- S7-300 CPU 31xC and CPU 31x — Operating Instructions
How can I check Siemens S5 spare modules quickly without stopping a live PLC?
Build a dedicated offline test bench with a working CPU, the same rack type (CR 700-0 for S5-115U), a 24 V DC supply, signal calibrator, and lamp load bank. Insert the spare module, exercise every channel via a STEP 5 test FB, read the diagnostic buffer, and tag the module PASS or FAIL. This avoids any production downtime.
What does the STEP 7 "Report System Error" wizard do for module testing?
The wizard installs OB82, OB83, OB84, OB85, OB86, OB121, and OB122 in the S7 program and creates DB 125 (S7-300) or DB 126 (S7-400). When a module on the bench generates a diagnostic interrupt — wire-break, over-temp, parameter error — the CPU writes a structured entry to the diagnostic buffer and to the DB so it can be displayed in CPU Messages or on an HMI.
Which event IDs in the S7 diagnostic buffer indicate a faulty module?
Event 0x2520 / 0x2521 marks an OB82 diagnostic interrupt start/end (channel-level fault). 0x35xx entries are module diagnostic interrupts with channel status. 0x2544 indicates a module parameter error — the slot configuration does not match the inserted module. 0x4940 / 0x4980 are programming and I/O access errors that usually indicate a test FB bug, not a module fault.
What is the expected raw value for a Siemens 6ES5 460-4UA12 AI module at +5 V input?
The module is a 12-bit bipolar ADC. The transfer function is Value = (Vin / 10 V) × 2048 + 2048. At +5.000 V the expected value is 1024 + 2048 = 3072 decimal (0xC00). Acceptance on the test bench is ±2 LSB; reject any channel drifting more than 4 LSB over a 5-minute hold.
Why does my S7-300 CPU stay in STOP with SF + BF LEDs on the test bench?
The BF (bus fault) LED indicates that the configured DP master cannot find its slave. For a CPU-only module test, open HW Config, double-click the DP master, and either disable it or remove the slave from the configuration. Re-download the hardware configuration. The CPU should then transition to RUN cleanly on a minimal test FB.
Can I use the same test bench for both S5-115U and S7-300 modules?
Yes, with separate physical racks and power supplies. The S5 side runs STEP 5 on a PG 740 / PG 760, while the S7 side runs STEP 7 V5.5 with the Report System Error wizard on a Windows PC. Sharing the 24 V DC supply and signal conditioning block is fine as long as the grounds are kept isolated between the two racks to avoid ground-loop-induced ADC errors.