1. Problem Description
Engineers commissioning or maintaining a Siemens S7-400H redundant station built around the CPU 414-4H (order number 6ES7 414-4HM14-0AB0) frequently report a two-stage fault signature immediately after a STEP 7 program download, a cold restart, or a forced re-link of the redundant pair:
- Rack 0 (master) completes the download and reaches RUN within seconds. The user program executes and the process responds to the I/O.
- Rack 1 (reserve) remains in STOP with the STOP LED blinking continuously at the slow self-test rate. The reserve never issues a LINK-UP request and never enters redundant RUN. In some plants the master also reports Partner not available or Update aborted.
The same signature has been reproduced on the CPU 412-3H (6ES7 412-3HJ14-0AB0) and the CPU 417-4H (6ES7 417-4HT14-0AB0) when both racks carry firmware V4.5.0. The fault is not a wiring, fiber-optic, or backplane problem. It is a known firmware defect (event 4550 8F37 0039) caused by the interaction between the forcing function and the code memory self-test.
2. Affected Hardware Matrix
| CPU | Order Number (MLFB) | Firmware Branch | V4.5.0 Affected | V4.5.1 Fixed |
|---|---|---|---|---|
| CPU 412-3H | 6ES7 412-3HJ14-0AB0 | V4.5.x | Yes | Yes |
| CPU 414-4H | 6ES7 414-4HM14-0AB0 | V4.5.x | Yes | Yes |
| CPU 417-4H | 6ES7 417-4HT14-0AB0 | V4.5.x | Yes | Yes |
All three H-CPUs share the same firmware branch and the same forcing engine. The defect is documented in the Siemens product support database for firmware V4.5.0 with active force job and code memory test enabled. Always verify the order number on the front-panel label; mixed order numbers in a redundant pair are not supported and produce a different link-up failure mode.
3. H-System Operating States from POWER ON to Redundant RUN
The transition path the reserve CPU must follow is fixed by the S7-400H firmware. Knowing the path is the fastest way to localize which transition is stuck when the STOP LED blinks indefinitely.
- POWER ON → STOP (both racks): After the PS 405 or PS 407 power supply comes up, both CPUs sit in STOP. The rack is electrically healthy but no program runs.
- Master → STARTUP: The CPU in Rack 0 is the master by parameter assignment (or by the lowest rack number when both racks are equally configured). It executes OB 100 (restart) or OB 102 (cold restart) according to the startup type set in HW Config.
- Master → SINGLE mode: After a successful startup the master runs alone. The reserve is still in STOP. During the upcoming LINK-UP no block may be open in the Monitor window and no variable table (VAT) may be active; closing them in STEP 7 prevents an inadvertent re-trigger of the V4.5.0 forcing race.
- LINK-UP request from the reserve: The reserve CPU (Rack 1) requests LINK-UP. The master and reserve compare their user program images block by block. If differences are detected, the master pushes the program to the reserve over the fiber-optic pair.
- UPDATE phase: After a successful LINK-UP, the master copies all dynamic data to the reserve: process image of the inputs (PII), process image of the outputs (PIQ), timers (T), counters (C), bit memory (M), and data blocks (DB).
- REDUNDANT mode: Both CPUs run the user program in lockstep. Event-synchronous I/O updates occur on the active backplane bus, and either CPU is hot-swap-capable.
Total time from cold restart of Rack 1 to redundant RUN is dominated by the code memory self-test. A healthy V4.5.0 station typically completes the test in 20 to 30 minutes; a station carrying the forcing defect can stay in the self-test for up to 90 minutes and then fail with diagnostic event 4550 8F37 0039.
4. Cold Restart and Self-Test Timing
The slow STOP LED blink (about 0.5 Hz) is the H-system code memory self-test. The blink rate is fixed by firmware and is identical on every H-CPU; the duration scales with the work-memory footprint and the number of blocks in the program.
| Workload Class | Approx. Code / Work Memory | Typical Self-Test Duration on V4.5.0 |
|---|---|---|
| Small (OB 1 plus a handful of FBs) | < 200 KB | 15 to 20 min |
| Medium | 200 KB to 1 MB | 20 to 30 min |
| Large | 1 MB to 4 MB | 30 to 45 min |
| Very large / many FBs and DBs | > 4 MB | 45 to 60 min |
When SFC 90 is used to disable the test (see Section 7), the self-test no longer runs and the reserve typically reaches LINK-UP in 3 to 5 minutes regardless of program size.
5. Root Cause: V4.5.0 Forcing + Code Memory Self-Test Collision
The forcing function of H-CPUs at firmware V4.5.0 collides with the code memory self-test when both are active in the same time window. The collision does not produce an immediate error; instead it corrupts the force-job table in a way that surfaces only after several minutes of sustained forcing.
Siemens categorises the failure as a two-sided defect: both the master and the reserve CPU are affected, and the diagnostic buffer of the CPU that crashes first records the event before the partner CPU drops out.
5.1 Trigger Conditions
- Firmware V4.5.0 installed on both H-CPUs.
- A force job is active in STEP 7 (or TIA Portal) and has been applied for an extended period.
- The code memory test is enabled in the CPU properties (default in H-CPUs at V4.5.0).
5.2 Typical Time to Failure
The defect is reported in the field across a window of 1 to 90 minutes of sustained forcing. A short force pulse (a few seconds for a single bit) does not trigger the bug; the crash probability grows with the total time the force table remains active. Forcing during a switchover is the worst case because the force table is being moved between CPUs at the exact moment the memory test runs.
6. Diagnostic Buffer Event Decoding
The diagnostic buffer of an S7-400 CPU uses a four-level event record. The forcing fault records as follows:
| Field | Value | Meaning |
|---|---|---|
| Event ID (high word) | 4550 | STOP caused by a system-level fault |
| Event ID (low word) | 8F37 | Two-sided defect, force job in collision with code memory test |
| Additional info word 1 | 0039 | Force job aborted by code memory test in progress |
| Additional info word 2 | Force-table index | Pointer to the corrupted force entry |
If a force job has been running for several minutes, the diagnostic buffer of the first CPU to fail will contain event 4550 8F37 0039 within one minute of the actual fault. The partner CPU records a partner-loss entry (typically 65280 0001 0001) within the next cycle. Read the buffer on the master first; the reserve may have already crashed before the buffer could be written to the MMC.
7. Workaround: Disable the Code Memory Self-Test via SFC 90
The official workaround from Siemens for plants that cannot immediately upgrade to V4.5.1 is to disable the code memory self-test in the user program. This is the only field-proven mitigation; clearing the force job alone is not sufficient because the test continues to run in the background and re-triggers the race.
7.1 Required Block Call
- Call SFC 90 (code memory self-test control) once in the startup OB.
- Use
OB 100for warm restart orOB 102for cold restart. - Set
MODE := 20(function code: code memory test control). - Set
SUBMODE := 1(action: disable code memory test).
7.2 STL Snippet for OB 100 / OB 102
CALL SFC 90
MODE := 20 // code memory test control
SUBMODE:= 1 // 1 = disable test
RET_VAL:= MW 100 // error code (0 = OK)
BE
7.3 SCL / Structured Text Equivalent
// Place at the end of OB 100 / OB 102
"SFC90_DB".MODE := 20;
"SFC90_DB".SUBMODE := 1;
"SFC90_DB".RET_VAL := 0;
SFC90_DB();
7.4 Download and Restart Procedure
- Open the project in STEP 7 V5.5 SP4 or later (TIA Portal V13 SP1 or later also supports S7-400H).
- Insert the SFC 90 call at the end of OB 100 and/or OB 102.
- Save and compile. Resolve any compiler warnings about the instance DB.
- Take Rack 0 offline; download the entire program to the master in standalone mode.
- Power down Rack 0; power up Rack 1 and download the same program to the reserve in standalone mode.
- Power up both racks. The reserve will now skip the self-test and reach LINK-UP in 3 to 5 minutes.
8. Alternative Workarounds
- Remove all force jobs before commissioning or switchover. With the code memory test still active and forcing absent, the V4.5.0 bug cannot trigger. This is the simplest field mitigation.
- Disable forcing in HW Config CPU properties for the duration of the test campaign. This is acceptable for new commissioning but blocks in-process debugging.
- Run only one rack at a time (single mode). With Rack 1 powered down, the redundant code path is not exercised and the collision cannot occur. This is a temporary measure only; the station loses hot-standby redundancy.
- Shorten force duration to seconds at a time. The race condition is probabilistic; force jobs under about 30 seconds rarely trigger the bug.
None of the alternatives replace SFC 90 in production. Treat them as stopgaps until V4.5.1 can be installed.
9. Forcing and Manual Switchover
A second related symptom appears during manual switchover with a force job still active. The operator initiates a switchover (HMI switchover button, STEP 7 Switchover command, or a loss-of-master condition). The reserve CPU, which was previously the partner, becomes the new master and re-runs its startup. The force job, which was set on the previous master, is not part of the redundant data set - it is local to the CPU that received it. The new master therefore restarts without the force table, and any logic that depends on forced bits in OB 1 behaves as if the forces had been cleared.
The reported signature is: The standby CPU went to RUN by warm restart during switchover, but my forced values disappeared. This is expected behaviour on H-CPUs at V4.5.0 and is the same mechanism that triggers the V4.5.0 crash when the test runs at the same time.
9.1 Recommended Procedure Before Manual Switchover
- Open STEP 7 and connect online to the active master.
- Select
Force > Stop Forcing(orForce > Delete Force Job). - Confirm the force table is empty:
Force > Display Force Jobsshould show zero entries. - Wait at least one full OB 1 cycle so the force table is de-allocated from the work memory.
- Issue the switchover command. Both racks must return to redundant RUN within 3 seconds.
- Re-apply forces on the new master only after redundant RUN is established.
10. Step-by-Step Commissioning Procedure on V4.5.0
-
Verify order numbers. Both CPUs must show
6ES7 414-4HM14-0AB0(or the equivalent 412-3H / 417-4H MLFB). Mismatched order numbers are an instant red flag and are not supported by the H-system link-up. - Check firmware version. In HW Config, right-click the CPU > Object Properties > Diagnostics / Information. Confirm both racks show firmware V4.5.0 or newer. Mixed firmware in a redundant pair is rejected by the link-up check.
- Power up Rack 0 alone. Wait for RUN. This validates the master image, the user program, and the SYNC-module fiber-optic link.
- Insert the SFC 90 workaround in OB 100 / OB 102 (when no F-program is present) before the second rack comes online.
-
Download to the master with
PLC > Download to Target System > Entire Program. This transfers OB 100 / OB 102 with the workaround to the running master. - Power up Rack 1. The reserve will now skip the self-test and reach LINK-UP in 3 to 5 minutes instead of 20 to 30 minutes.
-
Verify redundant RUN. In STEP 7,
PLC > Redundancy > Operating Statemust show both CPUs as RUN (redundant). - Test switchover. Trigger a manual switchover. Both racks must reach RUN within 3 seconds; the diagnostic buffer must contain the partner-specific switchover entry.
- Plan the firmware upgrade to V4.5.1 at the next planned outage. V4.5.1 is a free-of-charge firmware update; it removes the forcing + memory test collision and allows the SFC 90 workaround to be removed.
11. Firmware Upgrade Path to V4.5.1
The corrected firmware V4.5.1 is the recommended long-term fix and is required wherever an F-program is in use. The upgrade procedure is asymmetric because both racks must be in the same firmware state before they can re-link.
- Obtain the firmware file from the Siemens Industry Online Support portal under the CPU 414-4H entry (or the equivalent 412-3H / 417-4H entry). Typical file name pattern:
CPU_414-4H_V45_1.fw. - Power down Rack 1. Upgrade the reserve first using
SIMATIC Manager > PLC > Update Firmware. - After Rack 1 returns to RUN, switch over so the upgraded CPU becomes the master.
- Power down the former master (now reserve) and upgrade it.
- Re-link the pair and verify redundant RUN. The SFC 90 workaround can now be removed.
12. Verification Checklist and Troubleshooting Matrix
12.1 Verification Checklist
| Check | Pass Criterion |
|---|---|
| Order numbers match on both racks | 6ES7 414-4HM14-0AB0 on Rack 0 and Rack 1 |
| Firmware version | V4.5.0 with SFC 90 workaround or V4.5.1 without workaround |
| Force table empty during switchover |
Force > Display Force Jobs shows zero entries |
| Diagnostic buffer on master (24 h) | No event 4550 8F37 0039 |
| Diagnostic buffer on reserve (24 h) | No event 4550 8F37 0039 |
| Manual switchover round-trip | Both racks return to redundant RUN within 3 s |
| Code memory test | Disabled (workaround) or removed (V4.5.1) |
| F-program present? | If yes, V4.5.1 mandatory; SFC 90 workaround forbidden |
12.2 Troubleshooting Matrix
| Symptom | Likely Cause | Action |
|---|---|---|
| Reserve STOP LED blinks > 60 min | Forcing + code memory test (V4.5.0) | Read diagnostic buffer; apply SFC 90 workaround; clear forces |
| Reserve reaches LINK-UP then drops back to STOP | Forced bit on input/process image with F-program | Remove forces; check F-I/O consistency |
| Both CPUs crash within seconds of switchover | Stale force table; race on master/role change | Clear forces before switchover; upgrade to V4.5.1 |
| Reserve returns to RUN after switchover but forces vanished | Forces are local to the CPU that received them | Re-apply forces on the new master after switchover |
| Diagnostic buffer shows 4550 8F37 0039 on either CPU | V4.5.0 forcing + memory test collision | Apply SFC 90 workaround; schedule V4.5.1 upgrade |
| STOP LED blinks at ~2 Hz (fast) | Hardware fault, not H-system self-test | Check EVENT log; verify wiring; check fiber-optic pair |
| STOP LED solid, no blink | CPU in STOP because of parameter error | Read diagnostic buffer; check HW Config consistency |
| Reserve LED is LINK but does not go UPDATE | SYNC module or fiber-optic problem | Replace SYNC module pair; re-seat fiber-optic cables |
| Only STOP LED blinking, all others off | Self-test still running; wait 20-30 min | Confirm no force job is active; do not power-cycle |
What does it mean when the STOP LED on the reserve CPU blinks continuously on an S7-400H?
It indicates the H-system code memory self-test is running. On V4.5.0 the test takes 20-30 minutes; with SFC 90 (MODE = 20, SUBMODE = 1) active, it completes in 3-5 minutes. A continuous slow blink for more than 60 minutes on V4.5.0 with an active force job points to diagnostic event 4550 8F37 0039.
Which H-CPUs are affected by the V4.5.0 forcing + memory test bug?
CPU 412-3H (6ES7 412-3HJ14-0AB0), CPU 414-4H (6ES7 414-4HM14-0AB0), and CPU 417-4H (6ES7 417-4HT14-0AB0) when running firmware V4.5.0. Firmware V4.5.1 corrects the issue.
How do I disable the code memory self-test as a workaround?
Call SFC 90 in OB 100 or OB 102 with MODE = 20 and SUBMODE = 1. The call must be present in both racks; download to each in standalone mode. Do not use this workaround if an F-program is present - upgrade to V4.5.1 instead.
Why do my forced values disappear after a manual switchover?
Force jobs are local to the CPU that received them and are not part of the redundant data update. After a switchover, the new master has no force table. Clear forces before the switchover and re-apply them on the new master only after redundant RUN is established.
Can I run mixed firmware in an S7-400H redundant pair?
No. Both racks must carry the same firmware version. A mixed pair is rejected by the H-system link-up check and the reserve will not leave STOP. Always upgrade the reserve first, switch over, then upgrade the former master.
How long should the H-system self-test take on a healthy CPU 414-4H?
On V4.5.0 with the test enabled, expect 20-30 minutes for a medium program (200 KB to 1 MB) and 30-60 minutes for larger programs. With the SFC 90 workaround active, the test is skipped and LINK-UP completes in 3-5 minutes.