Troubleshooting CPU 928B STOP: ISTACK Overflow and DB1-FE Errors

David Krause17 min read
PLC HardwareSiemensTroubleshooting
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

1. Problem Overview

After replacement of a SIMATIC S5 CPU 928B in an S5-150U or S5-155H rack, the new module remains in STOP. The STOP LED flashes slowly (about 0.5 Hz) and the BASF (BASP — command output disable) LED is lit steadily. The user program was downloaded from the programmer (PG) using STEP 5 and the CPU performed the initialization phase without reporting a syntax error, yet the user program is never released for cyclic execution.

The first reaction of most field engineers is to inspect the ISTACK and BSTACK in PLC → ISTACK / PLC → BSTACK and search for an obvious cause. With the CPU 928B, that first inspection is often inconclusive: every documented bit on the surface screen (NAU, PEU, BAU, STUEB, STUEU, DOPP) appears to be clear, and yet the CPU does not leave STOP. This is one of the classic "hidden STOP" failures of the S5 platform. It is almost always produced by one of three underlying conditions:

  • Block stack overflow (STUEB) buried in a deeper BSTACK layer rather than at depth 01.
  • A DB1-FE (DB 1 error) flagged in the BSTACK control bits with a depth-01 ISTACK entry of LEVEL: 0002 — i.e. the failure occurred during the cold restart sequence rather than during cyclic operation.
  • An URGELOE (overall-reset performed) control bit set because the CPU executed a cold-restart request but the operator aborted it; a manual cold restart is then required before any OB can run.

This reference walks through the layered interpretation of the ISTACK/BSTACK, the meaning of every control bit, the role of the system status words RS3 and RS4, and the exact operator sequence to clear the CPU back to RUN.

2. LED Pattern Decoding

Before opening STEP 5, decode the front-panel LEDs of the CPU 928B. The combination of LED states narrows the failure class before any software tool is opened.

STOP LED BASF LED RUN LED Interpretation
Slow flash (~0.5 Hz) ON OFF CPU in STOP after a programmed error (OB not loaded, DB1 error, nesting overflow). User program cannot be started automatically.
Steady ON ON OFF CPU in STOP by mode selector — operator-initiated STOP. Cyclic program halted cleanly; no ISTACK entry required.
Fast flash (~2 Hz) ON OFF CPU is requesting an OVERALL RESET. Memory initialization failed or a cold restart was aborted.
Slow flash OFF OFF CPU halted by a hardware fault (watchdog, parity, memory failure). Re-seat module and inspect for a faulty I/O card before clearing.
OFF ON ON Cold restart or warm restart in progress.

Field rule: If BASF is lit, the CPU has issued a command-output disable to all digital output modules. No actuator will receive a setpoint until the BASP is released by a successful cold/warm restart — regardless of any PG-side "force" attempts.

3. ISTACK Structure on the CPU 928B

The Interrupt Stack (ISTACK) is a 13-level ring buffer resident in the CPU's system memory. Each entry records the state of the CPU at the moment an event interrupted the cyclic program: which OB was active, the current accumulator contents, the conditional code bits, and the control-bit byte that names the interrupting cause.

Depth assignment:

  • Depth 01 — last (most recent) cause of interruption. This is the screen STEP 5 opens by default.
  • Depth 02 … 13 — progressively older causes. Scroll up with the PG arrow keys to read them.

If an ISTACK overflow occurs because more than 13 events were queued without being acknowledged, the CPU drops immediately into STOP. Once this has happened, the operator must perform a power-off / power-on and a cold restart — the ISTACK cannot be cleared by a simple mode-selector toggle.

Key fields shown on each ISTACK entry:

Field Meaning
LEVEL Restart level that was active when the event occurred. 0001 = cyclic (warm restart completed), 0002 = cold restart in progress, 0003 = warm restart in progress.
OB Organization block that was being processed (OB 1, OB 13, OB 21, OB 22, OB 31, OB 34, OB 251, etc.).
DB Currently open data block.
ACCU 1 / ACCU 2 Contents of the accumulators at the moment of interruption — useful for tracing the last comparison.
CC1 / CC0 / OVFL Condition code bits. Useful for diagnosing divide-by-zero or arithmetic overflow traps.
Control bits Single-byte bitmap naming the interrupting cause. See Section 5.
Address Return address inside the current block (block number + statement number offset).

4. BSTACK Structure on the CPU 928B

The Block Stack (BSTACK) records the call nesting of FB/FC/SB/DB at the moment the CPU stopped. While the ISTACK tells you why the CPU stopped, the BSTACK tells you where in your program the CPU was executing when it stopped.

  • Depth 01 — innermost call: the block currently being processed.
  • Depth 02 … 7 — outer callers, in reverse chronological order.

If nesting exceeds 7, the CPU raises STUEB (block stack overflow) and goes to STOP. STUEB appears at the depth at which the overflow actually occurred — which is not necessarily depth 01. Always scroll the BSTACK upward in STEP 5 to look for the STUEB marker; do not assume depth 01 carries every fault flag.

5. Control-Bit Reference Table

The eight control bits displayed in the lower portion of the ISTACK screen are a one-byte bitmap. Use this reference rather than guessing from the abbreviation alone.

Bit Mnemonic Full name Triggering condition
7 FE-STP Error stop Stop mode caused by any of: NAU, PEU, BAU, STUEB, STUEU, DOPP, or a CPU fault.
6 URGELOE Overall reset performed CPU executed an overall reset and now requires a manual COLD RESTART before user program execution can begin.
5 ANL-ABB Restart aborted Restart was interrupted before completion (e.g. mode selector moved mid-restart). COLD RESTART required.
4 DB1-FE DB 1 error Error evaluating DB 1 while building the process-image address list. See Section 6.
3 STUEU ISTACK overflow More than 13 nested interrupt events — CPU is in STOP, POWER OFF/ON and cold restart required.
2 STUEB BSTACK overflow More than 7 nested block calls — typically a runaway FB/FC recursion or a forgotten BE.
1 PEU Peripherals not ready I/O module not inserted, defective, or addressed without a P/Q/PI/QI assignment.
0 BAU Battery not ready Backup battery missing, exhausted, or fuse blown on the CPU.

An additional bit — DOPP (double call) — appears in some firmware versions and indicates that the same OB was re-entered before it completed (e.g. a cyclic interrupt OB 13 re-triggering itself).

Reading rule: A bit is "active" only when an X appears directly below it in the screen print. A bit that is merely highlighted by the mouse cursor is not set. Do not interpret visual highlighting as a fault flag.

6. Root Cause — DB1-FE (DB 1 Error)

DB1-FE is the single most common hidden cause of CPU 928B STOP after a CPU swap. DB 1 is a system data block — not a user-created one — that defines the process-image update list and the assignment of interrupt/timeout OBs. The CPU 928B evaluates DB 1 only during a COLD RESTART (LEVEL 0002), which is exactly why an ISTACK entry with LEVEL: 0002 paired with an X-marked DB1-FE bit is a coherent, diagnosable signature.

Two conditions trigger DB1-FE:

  1. DB 1 does not exist in multiprocessor operation. In an S5-155H, S5-135U, or S5-155U configured with multiple CPUs, every CPU expects DB 1 to be present in the common memory. If the user program was transferred without DB 1 — or with a project that was edited for single-processor operation — every CPU will report DB1-FE.
  2. Incorrect DB 1 address list during COLD RESTART. The address list inside DB 1 contains PI/PQ byte addresses that the CPU scans to refresh the process image. Any byte that does not physically correspond to an inserted input/output module will produce a PEU or DB1-FE flag at cold restart.

Note that in multiprocessor operation the system checks DB 1 across all restart types, but DB 1 parameters are evaluated only during COLD RESTART — which is why a manual warm restart from STEP 5 will not clear the error.

7. System Status Words RS3 and RS4

When the ISTACK and BSTACK do not give a clean cause, the next layer of diagnostic information lives in the system status words RS3 and RS4. These are 16-bit words maintained by the CPU operating system and are documented in the CPU 928B programming manual (Chapter 5.5.2 for interpretation, Chapter 8.3.4 for memory addresses).

Word Address (CPU 928B) Content
RS3 EA03h Reason for STOP / restart level / pending OB / accumulator snapshot.
RS4
EA04h
Extended fault code, double-call flag, parity-error location.

To read them in STEP 5:

  1. Open PLC → PLC Memory.
  2. Enter address EA03 for RS3 and EA04 for RS4.
  3. The two-byte content is displayed in hexadecimal. Decode it against the bit assignments in Chapter 5.5.2 of the CPU 928B manual.

An alternative — and often faster — path is to open PLC → PLC System Parameters from the STEP 5 menu. The dialog exposes the relevant restart type, the active OB, and the most recent fault class without requiring a memory dump.

8. Reading the ISTACK Diagnostic Data — Memory Map

The diagnostic data the CPU exposes is laid out in a small reserved region of system memory. The addresses below are valid for the CPU 928B in the S5-150U / S5-155U / S5-135U / S5-155H platforms:

Address Width Content
EA00h…EA02h 3 bytes Restart type, level, and pending OB request vector.
EA03h 2 bytes RS3 — reason for STOP and CPU operating-state code.
EA04h 2 bytes RS4 — extended fault class and parity/timeout indicators.
EA05h…EA07h 3 bytes Reserved for Siemens diagnostic extensions.

Endianness: STEP 5 displays these words in big-endian (high byte first) when using the "PLC Memory" dialog. If you script a memory dump via the COM port, decode byte-swapped on a PC unless your host script explicitly handles the S5 word order.

9. State-Machine Reference for CPU 928B Operating Modes

The CPU 928B has six valid operating-mode transitions. Knowing which transitions are legal avoids operator actions that corrupt the ISTACK or DB1 evaluation.

STOP (operator) STOP (fault, slow flash) OVERALL RESET req. COLD RESTART WARM RESTART RUN (cyclic) STOP (HW fault) programmed error moved selector operator action to WARM RESTART power-on successful OB 1 memory/IO fault

10. Operator Procedure — Overall Reset

Use the overall-reset sequence when the CPU's internal memory needs to be re-initialized — for example, after a code download that has overwritten the runtime system, after a new CPU replacement, or whenever the STOP LED is fast-flashing because the system program has detected a RAM or memory-card inconsistency.

  1. Switch the mode selector from RUN to STOP. The CPU enters STOP and the STOP LED is lit steadily.
  2. Hold the momentary-contact position OVERALL RESET on the selector. While held, rotate the selector through STOP → RUN → STOP in one continuous motion.
  3. Release the selector. If the request was accepted, the STOP LED begins fast-flashing (~2 Hz). This is the visible acknowledgement.
  4. To cancel an overall-reset request that you no longer want to execute, perform a cold restart or manual warm restart instead — the system program will discard the pending reset.

Failure mode to recognize: If the request reappears after every overall reset, the CPU has detected a recurring initialization failure. Common causes are a corrupted memory card or a CPU module that is itself defective. Replace the memory card first; if the request still returns, replace the CPU.

11. Cold Restart vs Warm Restart

Pick the restart that matches the state of the system — choosing the wrong one is a common cause of an immediate re-entry into STOP.

Restart type
Trigger Process-image state OBs executed When to use
Manual warm restart Mode selector RUN, after STOP Retained (depends on OB 21 / OB 22 logic) OB 21, OB 1 Process may continue from where it left off. Use when RETAIN area is critical.
Automatic warm restart Power-on with retentive memory valid Retained OB 21, OB 1 Power-returns scenarios.
Cold restart STEP 5 command or power-on with overall-reset pending Reset to zero; DBs re-loaded OB 20, OB 21 (optional), OB 1 Mandatory after overall reset, after CPU replacement, or when DB1-FE is flagged.

When the control bits show URGELOE or DB1-FE, the cold restart is mandatory — a warm restart will not re-evaluate DB 1 and will not release the CPU from STOP.

12. Step-by-Step Diagnostic Procedure

Follow this sequence on-site. It is the order in which information becomes available with the least disruption to the running process.

  1. Capture the LED pattern before opening any software. Note STOP flash rate, BASF, and RUN.
  2. Connect PG via COM1 (TTY 20 mA) or the PG connector on the CPU front panel. If using an MPI/PC adapter, verify the baud rate matches the CPU (default 9600 on CPU 928B).
  3. Open STEP 5, online, and select the project that was active on the failed CPU.
  4. Open PLC → ISTACK. Note the depth of every entry — write down LEVEL, OB, DB, and the control-bit byte for each depth from 01 upward.
  5. Open PLC → BSTACK. Walk the call nesting from depth 01 upward. Look for STUEB or any DB1-FE marker. STUEB rarely appears at depth 01.
  6. Read RS3 and RS4 from memory addresses EA03 and EA04. Use PLC → PLC Memory. Decode the bits per the CPU 928B manual Chapter 5.5.2.
  7. Cross-check with PLC → PLC System Parameters. This dialog presents the restart type and active OB without manual memory decoding.
  8. Resolve the cause — see the decision matrix in Section 13.
  9. Perform the operator procedure (Section 10) and confirm RUN LED stays lit, BASF is off, and OB 1 is being cyclically processed.

13. Decision Matrix — ISTACK/BSTACK Signature → Action

Signature observed Most likely cause Action
LEVEL: 0002 at depth 01, X on DB1-FE, no other Xs DB 1 missing or address list invalid Re-create DB 1 in the project (multiprocessor operation requires DB 1 in every CPU) and re-transfer, then COLD RESTART.
STUEB set at depth > 1 in BSTACK Runaway FB/FC recursion or missing BE Trace the call nesting shown; insert missing BE; verify recursion termination condition.
STUEU set, fast-flash STOP ISTACK overflow — more than 13 events queued POWER OFF / POWER ON, then COLD RESTART. Investigate interrupting OB (OB 13, OB 34) for re-entrancy.
X on URGELOE, no other Xs CPU executed overall reset; awaiting cold restart Run COLD RESTART from STEP 5 or perform the operator sequence (Section 10).
X on PEU Peripheral module missing or wrong address Verify that every byte referenced in DB 1 corresponds to an inserted module; reseat modules.
X on BAU Battery exhausted or missing Replace backup battery (the CPU has one on-board lithium cell); perform COLD RESTART.
X on DOPP Double-call: same OB re-entered before completion Audit the time-driven OB (OB 13, OB 34, OB 251) for a CALL to itself or for an unhandled interrupt storm.
No Xs visible but CPU in STOP Cause buried in deeper BSTACK layer or in RS3/RS4 Read RS3/RS4 from EA03/EA04; suspect a faulty I/O module as a common hidden cause.

14. Diagnostic Flowchart

CPU 928B in STOP Read ISTACK depth 01 X on DB1-FE ? Re-create DB1, cold restart Read BSTACK depths 02-07 STUEB set ? Trace call nesting, add BE Read RS3 (EA03), RS4 (EA04) Decode fault class, fix I/O YES NO YES NO

15. Verification Checklist

Once the CPU transitions out of STOP, confirm the following before handing the system back to operations.

  • STOP LED — off (or steady on if the operator deliberately held STOP).
  • BASF LED — off. Outputs released.
  • RUN LED — on.
  • ISTACK depth 01 — no X on any control bit.
  • BSTACK — depth 01 shows OB 1, depth 02 shows OB 100/101 (or expected startup OB), deeper depths show the expected FB nesting.
  • RS3 at EA03 — value 0000h (or the expected warm-restart completion code for your firmware).
  • Process image — first scan of OB 1 has completed (verify by setting a marker at the end of OB 1 and observing it via PG).
  • Outputs — pull a test output and verify physical response within one OB 1 cycle.

16. Field-Engineered Caveats

Reading the screen correctly. STEP 5 highlights the row under the mouse cursor in reverse color. A field engineer unfamiliar with the tool will mistake the highlight for an active X. Confirm every suspected bit with a screenshot rather than from memory.

CPU replacement and user-program retention. The CPU 928B holds the user program in battery-backed RAM. When the replacement module was powered up, it ran the previously loaded program if any — or stayed empty. After transferring the user program from the PG, the CPU must be COLD-RESTARTED before OB 1 is allowed to run, even if the syntax check passed during download. This single step catches many "STOP after CPU swap" calls.

Multiprocessor DB1. In an S5-155H with two CPUs, DB 1 must be present in both. If only one CPU was replaced and DB 1 was loaded only into the new one, the second CPU will report DB1-FE on every cold restart until DB 1 is loaded into it as well. Load the project into every CPU in the rack before issuing the restart.

Memory-card vs RAM. The CPU 928B supports both RAM and memory-card (EPROM/EEPROM) operation. After an overall reset on a RAM-only configuration, the CPU is empty and must be re-loaded. After an overall reset on a memory-card configuration, the CPU reloads from the card automatically. Confirm which mode the replacement CPU is in before assuming the user program is preserved.

Hidden I/O faults. When ISTACK/BSTACK show no obvious cause, a faulty digital or analog I/O module is a recurring hidden source. Power the rack down, reseat one module at a time, and power up between each reseat. When the CPU reaches RUN, the module that was last reseated is the suspect.

Firmware revision. The CPU 928B exists in several firmware versions (e.g. -3, -8, -8A). Some control-bit assignments and some restart behaviours differ slightly between firmware revisions. Always check the firmware sticker on the side of the module against the manual chapters referenced before applying a procedure written for a different revision.

17. Documentation References

The Siemens S5 documentation set is published on the Siemens Industry Online Support portal. The two chapters most often needed for this fault are:

  • CPU 928B programming manual — Chapter 5.3 (ISTACK/BSTACK structure) and Chapter 5.5.2 (system status words RS3/RS4).
  • CPU 928B reference manual — Chapter 8.3.4 (system memory addresses, including EA03/EA04).

Both are available via the Siemens Industry Online Support portal. Use the legacy S5 product tree (SIMATIC S5 → Central processing units → CPU 928B) to navigate to the documentation. The SIMATIC S5-135U/155U system manual is the recommended companion document for rack-level diagnostic procedures.

Why does the CPU 928B stay in STOP after a CPU replacement even though the user program transferred without errors?

The download only writes program and data blocks. The CPU must perform a cold restart to evaluate DB 1 and release OB 1 for cyclic execution. From STEP 5, use PLC → Cold Restart or perform the operator overall-reset sequence (Section 10) followed by RUN.

The ISTACK shows DB1-FE and LEVEL 0002. What does that combination mean?

DB1-FE (DB 1 error) combined with LEVEL 0002 (cold-restart level) means the CPU attempted to evaluate the system data block DB 1 during cold restart and the evaluation failed. Either DB 1 is missing — common in multiprocessor mode when only one CPU was loaded — or its address list references PI/PQ bytes that do not physically exist.

Where in memory can I read the system status words RS3 and RS4 on a CPU 928B?

RS3 is located at system address EA03h and RS4 at EA04h. In STEP 5, open PLC → PLC Memory, type the address, and read the two-byte value in hexadecimal. Decode the bits against Chapter 5.5.2 of the CPU 928B programming manual.

My ISTACK shows no X on any control bit but the CPU is in STOP. How do I find the cause?

Scroll upward through the BSTACK depths 02-07 looking for STUEB, and then read RS3 and RS4 from EA03 and EA04. A faulty I/O module is the most common hidden cause in this scenario; reseat modules one at a time with a power cycle between each.

Does an overall reset delete the user program on a CPU 928B?

On a RAM-backed CPU the user program is cleared and must be re-loaded from the PG. On a CPU configured with a memory card (EPROM/EEPROM), the CPU reloads from the card after the reset. Always confirm which retention mode the CPU is in before issuing an overall reset.

How do I cancel an overall-reset request that I no longer want to execute?

Perform a cold restart or a manual warm restart instead. The pending overall-reset request is discarded when one of those restarts is initiated. The fast-flashing STOP LED will return to slow-flash or steady as the new restart begins.

Back to blog