1. Problem Overview
Siemens SIMATIC S5-928B CPU modules used in S5-135U and S5-155U systems occasionally exhibit a particularly confusing fault mode after mechanical maintenance. The front-panel STOP LED extinguishes (indicating the CPU has dropped out of STOP mode), but the RUN LED never illuminates. After ten minutes or more of waiting, the CPU remains non-responsive, the BASP (Befehlsausgabe Sperre — command-output disable) flag is asserted, and the programming console shows the processor sitting in RESTART mode without completing the warm-restart sequence. The control system is effectively frozen.
The original symptom is usually triggered by replacing the front-panel reset button or by disturbing the CPU module during service work. Three failure paths produce the same external observation (STOP off, RUN off, BASP on):
- Loose or incorrectly seated reset button — front-panel switch contact not closing cleanly so the CPU is unable to acknowledge operator commands.
- Stuck warm restart (OB21) due to corrupted volatile data (RAM battery dead, EPROM/EEPREM checksum mismatch, or download interrupted mid-write).
- Cold-restart (OB20) required because processor does not have valid system data areas to complete a warm or hot restart.
This article walks through field-proven diagnostic and recovery procedures for the S5-928B family, including ISTACK/BSTACK interpretation, memory and battery verification, mechanical reset-button inspection, overall reset sequence, and cold-restart execution via OB20.
2. Affected Hardware and System Context
The CPU 928B is the standard processor for the SIMATIC S5-135U and S5-155U PLC families. The relevant module variants (depending on firmware revision and date code) are 6ES5 928-3UB11, 6ES5 928-3UB12, and 6ES5 928-3UB21. The 928B replaces the older CPU 928 and 928A in most field installations and adds expanded bit-processing instructions, additional block types (FB/DB up to 255), and a larger addressable I/O area.
| Parameter | Specification |
|---|---|
| CPU designation | S5-928B (16-bit processor) |
| Typical hosts | S5-135U chassis (6ES5 135-3UA..) and S5-155U chassis (6ES5 155-3UA..) |
| Work memory | 16 / 32 / 64 KB RAM, expandable |
| Load memory | EPROM (5 V, 27C-type) or EEPROM submodule on front flap |
| Backup battery | 3.6 V lithium, located in power supply module (PS 951 / PS 957) and optional CPU battery holder |
| Programming software | STEP 5 (STL, LAD, CSF) |
| Front-panel elements | Mode selector switch, RUN LED (green), STOP LED (red), BASP LED (yellow), reset pushbutton |
| Operating modes | RUN, STOP, COLD RESTART (OB20), WARM RESTART (OB21), HOT RESTART (OB22) |
| Diagnostic stacks | ISTACK (interrupt stack), BSTACK (block stack) |
| Cycle-time register | Read via PLC > INFO > CYCLE in STEP 5 PG |
For the canonical reference set covering module pin-out, mode-switch positions, OB numbering, and LED behaviour, consult the SIMATIC S5-135U / S5-155U system manual set on the Siemens Industry Online Support portal. Search under "SIMATIC S5" → "S5-135U/155U Automation System" → "CPU 928B".
3. LED State Interpretation on CPU 928B
The CPU 928B front panel carries three status LEDs and one mode selector switch. Correct interpretation of these is the first step in distinguishing a hardware fault from a firmware/data fault.
| LED | Colour | OFF | Solid ON | Flashing |
|---|---|---|---|---|
| RUN | Green | CPU not in RUN | CPU in RUN, cyclic OB1 execution | Not used on 928B |
| STOP | Red | CPU not in STOP | CPU in STOP, OB1 not executing | Mode change pending / RESTART requested |
| BASP | Yellow | Outputs enabled | All process outputs forced to zero (safety state) | — |
The state described in the source incident — STOP LED off, RUN LED off, BASP LED on — is therefore:
- CPU has acknowledged the command to leave STOP and is attempting a transition (mode switch moved to RUN, or PG remote RUN command).
- CPU is NOT yet executing OB1 in cyclic mode.
- Outputs are held in safe-state zero, hence the BASP flag.
- The CPU is therefore trapped between modes, almost always inside the RESTART state machine.
BAS instruction. A persistent BASP after ten minutes, however, is a clear sign the RESTART sequence is not completing.4. Root-Cause Analysis
There are three documented root causes for the symptom "STOP off, RUN never on, BASP on, processor stuck in RESTART":
4.1 Cause A — Reset-button contact failure
If the front-panel reset button was just replaced, the most common cause is a poorly seated or soldered tactile switch. The 928B uses a small printed-circuit tactile switch on a flex-PCB that mounts to the front frame. After reassembly:
- The plunger must protrude
~3 mmthrough the front bezel when at rest. - Pressing the button must register a tactile click and be visible to the CPU as a momentary low on the RESET line.
- A button stuck in the depressed position holds the CPU in reset, preventing transition to RUN.
This was the verified root cause in the originating field case: the technician reported the problem was solved once the reset button was re-assembled correctly and verified to have a clean mechanical contact.
4.2 Cause B — Warm-restart (OB21) cannot complete
The 928B attempts a WARM RESTART by default when the mode switch is moved from STOP to RUN. A warm restart requires:
- Valid system data (SD) in RAM.
- Valid retentive flags, timers, and counters.
- A coherent process-image configuration (PIA) matching the hardware.
- Matching EPROM/EEPROM content (if loaded from submodule).
If any of the above is missing or corrupted, OB21 calls the S5 system error handler and the CPU remains in RESTART without transitioning to RUN. ISTACK will report a system error code (see Section 5).
4.3 Cause C — Cold-restart (OB20) is required
If the RAM battery is dead or has been removed during service, all retentive data is lost. The 928B detects this condition at power-up and requires an explicit cold restart, which the user triggers from the PG via PLC > COLD RESTART or by a hand-shake sequence on the mode selector. Simply moving the switch from STOP to RUN without a cold-restart command will leave the CPU in RESTART indefinitely.
5. ISTACK / BSTACK Diagnostic Procedure
The interrupt stack (ISTACK) and block stack (BSTACK) are the two primary diagnostic tools on S5-class CPUs. They are read with the STEP 5 programming console under PLC > INFO > ISTACK (or IST) and PLC > INFO > BSTACK (or BS).
5.1 Reading the ISTACK
- Connect the PG (e.g., PG 730, PG 740, PG 760) via the serial port on the CPU.
- Set PG to online:
ONLINE > ON. - Enter
IST(or navigate toPLC > INFO > ISTACK). - Capture the screen — it contains the exact stop cause and the active OB.
Typical ISTACK fields and their meaning on the 928B:
| Field | Meaning | Field-engineering interpretation |
|---|---|---|
| STUE / STOZ | Stack depth / last stack entry | Helps locate where the CPU stopped inside nested block calls. |
| USTACK | Interrupt stack pointer | Points to the deepest interrupt save area. |
| FE | Error LED state | Reports fault class: FE 0 = no fault, FE 2x = runtime, FE 4x = program, FE 8x = system. |
| SA | Operation code of fault | Identifies the failing instruction (e.g., SA=L PB 0 means block-call failed). |
| AKKU 1 / AKKU 2 | Accumulator 1 / 2 | Snapshot of working registers at fault time. |
| DB / DI | Active data blocks | Helps trace which DB was open when the fault occurred. |
| OB | Active organisation block | Reads OB 20 (cold restart in progress), OB 21 (warm restart), OB 22 (hot restart), OB 1 (cyclic), OB 24/25 (errors). |
5.2 Interpreting common ISTACK readings
| Symptom | ISTACK reading | Likely cause |
|---|---|---|
| STOP off, RUN off, BASP on, ten minutes elapsed | OB 21 active, FE 80, SA = "NOP 0" | Warm restart cannot complete — system data missing. |
| Same as above after overall reset | OB 20 active, FE 00, but OB 20 never returns | Battery dead, RAM empty, no cold-restart permitted. |
| CPU cycles between STOP and RUN every few seconds | OB 24 active, FE 22 | Checksum error on EPROM/EEPROM submodule. |
| PG shows "CPU in RESTART, BASP on" permanently | OB 21 active, no error code | Process-image mismatch, missing IM/CP, or front-panel reset line stuck. |
6. Memory and Battery Verification
Before launching any software recovery sequence, the physical state of the back-up battery and the memory submodule must be confirmed.
6.1 Battery check
- Power the CPU OFF at the chassis power switch. Wait five minutes for capacitor discharge.
- Open the front flap of the power supply module (PS 951 or PS 957).
- Measure the lithium battery voltage at the battery holder contacts using a calibrated digital multimeter.
| Battery state | Voltage under load (5 mA) | Action |
|---|---|---|
| Healthy | 3.40 V – 3.65 V | No action. |
| Aged but serviceable | 3.00 V – 3.40 V | Schedule replacement within next outage. |
| End-of-life | < 3.00 V or "BA" flag in PG | Replace immediately; expect retentive-data loss. |
| Removed / missing | 0 V | Replace; expect cold restart required at next power-up. |
BATTERY FAULT in the status line on power-up, and the BA flag (byte 2, bit 0 of system flags in S5-135U/155U) is set. Some 928B firmware revisions suppress the warning when the CPU enters STOP within a few seconds of power-up; therefore always measure, do not trust the warning flag alone.6.2 EPROM / EEPROM submodule check
- With power off, open the front flap of the CPU 928B.
- Remove the memory submodule carefully using the ejector lever (do not pull on the EPROM body).
- Inspect pins for oxidation, bending, or contamination. Clean with isopropyl alcohol if necessary.
- Verify the type label:
6ES5 375-0LA21(16 KB EPROM),6ES5 375-1LA21(32 KB),6ES5 375-0LC11(EEPROM 16 KB), or equivalent for the project's size. - Re-seat the submodule firmly and latch the lever.
- Apply power and re-read ISTACK.
7. Reset-Button Mechanical Integrity
The S5-928B front-panel reset button is a printed-circuit tactile switch that is field-replaceable on later module variants (it is soldered to the front-frame flex-PCB on earlier variants). The switch must satisfy three mechanical conditions:
-
Rest height: Plunger protrudes between
2.5 mmand3.5 mmthrough the front bezel. -
Travel: Total plunger travel at least
1.5 mm. -
Actuation force: Approximately
2.0 Nto3.5 N(tactile click must be felt).
7.1 Verification procedure
- De-energise the rack. Remove the CPU from the chassis.
- Visually inspect the reset button assembly — the tactile switch must sit flush on its pad and the plunger must be vertical, not canted.
- Press the button ten times with a fingertip; each press must produce an audible click and a clean release.
- With an ohmmeter across the switch contacts, verify open-circuit at rest and closed-circuit (less than
50 mΩ) when pressed. - If the button fails any of the above, replace the entire front-frame assembly rather than just the switch — partial repairs are a recurring source of intermittent contact faults.
Field evidence from the originating case shows that the entire incident was traced to a loose contact in the re-assembled reset button. Once the button assembly was properly seated, the CPU started and ran without further intervention.
8. Cold-Restart Execution via OB20
If ISTACK analysis indicates that OB20 is the active OB and the warm restart cannot complete (typically because of corrupted system data), an explicit cold restart must be performed.
8.1 STEP 5 cold-restart sequence from the PG
- Connect the PG. From the STEP 5 main menu select
ONLINE > ON. - Select
PLC > COLD RESTART(German STEP 5:AG > KALTSTART). - Confirm the prompt. The PG displays
OB 20 being processedfollowed byOB 1 activeon success. - If OB 20 is not present in the user project, the system enters STOP with
OB MISSING. In that case either load OB 20 from the EPROM submodule or generate it with STEP 5 utilities.
8.2 Manual cold-restart sequence using the mode selector
- Mode selector to
STOP. - Wait three seconds.
- Mode selector to
RUN. Hold for one second. - Return selector to
STOP. Hold for two seconds. - Mode selector to
RUNagain. The CPU performs a cold restart only if system data are corrupted; otherwise it performs a warm restart (OB21).
This hand-shake sequence is documented in the S5-135U/155U operator's manual and is the only field method for forcing OB20 without a PG attached.
9. Overall Reset Sequence
An overall reset (German: Gesamtlöschung) clears the work memory and reloads system data. It is performed from the STEP 5 PG via PLC > OVERALL RESET or by the equivalent keystroke RES followed by Y at the confirmation prompt.
- Power the chassis ON.
- Connect PG and go online.
- Issue
PLC > OVERALL RESETand confirm withY. - The PG shows
Reset in progressfor several seconds, thenReset complete. - All RAM-resident blocks (OB, PB, FB, SB, DB) are erased. EPROM/EEPROM contents are NOT touched.
- After reset the CPU is in STOP with empty RAM. Re-download the project from the PG.
- Switch to RUN; observe the LED sequence STOP → RUN.
10. Field Recovery Workflow
The recommended end-to-end procedure combines the diagnostic and corrective steps above into a single field-tested sequence.
- Verify mechanical state of the reset button (Section 7). This is the cheapest fix and the most likely cause after recent mechanical service.
- Read ISTACK and BSTACK (Section 5) before any software action, to capture the fault snapshot.
-
Measure battery voltage (Section 6.1). Replace if below
3.0 V. - Inspect and re-seat memory submodule (Section 6.2).
- Perform overall reset (Section 9).
- Re-download the entire project from PG to RAM. Confirm checksum against project archive.
- Attempt normal run by switching the mode selector to RUN.
-
If the CPU still does not enter RUN, read ISTACK again. If OB 20 is active, issue
PLC > COLD RESTARTfrom PG (Section 8.1). - If OB 21 is active with a checksum error, replace the EPROM/EEPROM submodule with a freshly programmed one.
- If no software cause is found, swap the CPU module with a known-good spare. The original is then treated as a suspected hardware fault in the front-panel interface or in the CPU's restart state machine.
11. Verification Checklist
After every corrective step, run the following checks before declaring the CPU healthy:
| Check | Expected result |
|---|---|
| LED state, mode switch RUN | STOP off, RUN solid green, BASP off after first scan cycle |
| ISTACK, OB field |
OB 1 active, FE 00 |
| Battery flag (BA) | Cleared after one hour of operation under load |
| Cyclic time, PG INFO > CYCLE | Within the project's nominal scan time (±10 %) |
| Output module LEDs | Driven by user program, BASP off |
| PG online update | Status display polls at PLC > STATUS without timeout |
| Operator panel / HMI handshake | Data exchange resumed, no comms alarm |
A CPU that satisfies all eight checks for at least one full production shift can be returned to service.
12. Related Fault Modes
The STOP-off / RUN-off / BASP-on symptom overlaps with several adjacent fault modes. The matrix below distinguishes them for rapid field triage.
| Symptom | ISTACK OB | Likely cause | First corrective action |
|---|---|---|---|
| STOP on, RUN off | — | CPU in user-initiated STOP | Move mode switch to RUN. |
| STOP off, RUN off, BASP off | — | Power supply failure or CPU not fully seated | Check PS 951/957, reseat CPU. |
| STOP off, RUN flashing | — | Not used on 928B — investigate firmware mismatch | Compare firmware version against project archive. |
| STOP off, RUN on, BASP on | OB 1 active | User program holds BASP | Inspect OB1 for SPA OB 0 / BAS logic. |
| STOP off, RUN off, BASP on | OB 20/21 active | Restart sequence not completing (this article) | Read ISTACK, perform cold restart, inspect reset button. |
| STOP off, RUN off, BASP off, PG "not responding" | — | Bus fault, CP/IM unplugged, address conflict | Verify IM/CP addressing with STEP 5 configuration table. |
13. Preventive Recommendations
- Apply a label on the front of every 928B CPU showing the date of the last battery replacement and the expected service life (typical five years for the 3.6 V lithium cell).
- Maintain a written project archive (printed listing, plus EPROM image) on a site-network drive so that the project can be re-burnt in under thirty minutes.
- Train maintenance staff on the difference between overall reset (work memory only) and cold restart (work memory plus retentive data plus process-image init).
- After every front-panel service (button replacement, bezel rework), perform a cold-restart test before re-installing the CPU in the live rack.
- Carry a known-good spare 928B module on-site. As the source incident shows, a module swap is often faster than chasing a firmware-level fault in real production.
14. Summary
The "STOP off, RUN never on, BASP on" symptom on a Siemens S5-928B CPU almost always falls into one of three buckets: a mechanically faulty reset button, a warm-restart that cannot complete, or a cold restart that was never executed. The diagnostic sequence is straightforward — read ISTACK and BSTACK, measure the battery, inspect the memory submodule, verify the reset button mechanically, then issue an overall reset and a cold restart. The fastest path to a confirmed root cause is mechanical inspection of the reset button assembly, because that single component is responsible for both the operator interface and the CPU reset line. Once the reset button is verified, the software recovery (overall reset → re-download → cold restart) almost always resolves the issue within fifteen minutes of PG time.
What does BASP on with both STOP and RUN LEDs off mean on an S5-928B?
It means the CPU has acknowledged a mode change out of STOP but is trapped inside the RESTART state machine and has not yet reached cyclic OB1 execution. BASP holds all outputs in safe-state zero until the user program releases it. Investigate reset-button mechanical integrity, RAM battery state, and the ISTACK active OB to find the cause.
How do I force a cold restart (OB20) on an S5-928B without a programming console?
Use the mode-selector hand-shake: STOP (3 s) → RUN (1 s) → STOP (2 s) → RUN. The CPU executes OB20 only if system data are corrupted; otherwise OB21 (warm restart) runs. For a guaranteed OB20 cold restart, a PG is required and you must issue PLC > COLD RESTART from the STEP 5 menu.
What battery voltage is the end-of-life threshold for the S5-928B back-up cell?
Replace the 3.6 V lithium cell when measured voltage drops below 3.0 V under a 5 mA load. Between 3.0 V and 3.4 V the battery is ageing but still serviceable. Above 3.4 V the battery is healthy. A dead battery causes retentive data loss and forces OB20 on the next power-up.
Does an overall reset clear retentive flags, timers, and counters on the 928B?
No. An overall reset clears the work memory only (OB, PB, FB, SB, DB blocks). Retentive flags (M 0.0 – M 199.7), retentive timers (T 0 – T 127 by default), and retentive counters (C 0 – C 127 by default) are reinitialised only on a cold restart (OB20). Use a cold restart, not an overall reset, when retentive data must be cleared.
Why does my spare CPU run correctly with the same EPROM but the original does not?
The EPROM/EEPROM submodule carries only the program code and configuration; the volatile system data areas, the restart flags, and the ISTACK/BSTACK pointers live in RAM backed up by the battery. If the original CPU's battery was removed or failed, its system data are empty or corrupted, so the same project image will not boot. Re-burning the EPROM does not help; you must also perform a cold restart to reinitialise the RAM-resident system data.