SINUMERIK 840C Error 43 PLC-CPU Not Ready: Restoring S5 Blocks

David Krause14 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

SINUMERIK 840C Error 43 PLC-CPU Not Ready: Restoring Missing S5 PLC Blocks

The SINUMERIK 840C controller family, used extensively on late-1980s through mid-1990s Index G300 lathes, turning centers, and machining cells, depends on a SIMATIC S5 PLC subsystem for all discrete I/O, axis enables, spindle logic, tool changer sequencing, hydraulic/coolant interlocks, and operator-panel handshake. When the machine comes up with alarm 43 "PLC-CPU not ready for operation" and the PLC service page reports cause 0005 / ZInfo 0000 0000 0000 0000, the controller is signalling that the S5 CPU has either stopped, is in cold-restart, or is rejecting the cyclic program because a block referenced by another block is not present in the loaded image. The most common trigger after a power-supply replacement is a corrupt or incomplete PLC backup on the machine hard disk, where organisation blocks, program blocks, or sequence blocks are missing from the EPROM/Flash image even though the NCK archive was restored successfully.

This technical reference walks through the diagnostic steps, block-level analysis, and recovery procedure that have proven reliable on 840C retrofit work. It assumes the engineer has STEP 5 V7.x installed on a PG with a CP (e.g., CP5611, MPI/AS511 converter), access to the original commissioning archive, and the ability to stop and restart the machine safely.

1. Problem Overview

Item Value
Machine Index G300 CNC Lathe
Controller SINUMERIK 840C
Alarm Number 43 — "PLC-CPU not ready for operation"
PLC Service Cause 0005
PLC Service ZInfo 0000 0000 0000 0000
Trigger Event Power supply to PLC-CPU blown, replaced with new unit
Reset Attempted General reset (PLC, NCK, DATA); backup reload from machine hard disk
Symptoms After Reset Same alarm 43, machine configuration recognised (5 axes, drives), PLC refuses to enter RUN
Blocks Observed in STEP 5 FBs, FXs, DBs visible; OB/PB/SB blocks apparently missing or unreferenced
Critical distinction: Alarm 43 from the NCK side is not the same as an S5 "OB not loaded" or "stack overflow" stop. The PLC service page in the 840C diagnostics menu translates the underlying S5 CPU stop reason into a Siemens-specific cause code. Cause 0005 consistently maps to a CALL or JU/JC jump into an unloaded block.

2. SINUMERIK 840C Architecture and the PLC Subsystem

The 840C is built around two cooperating processors. The NCK (numerical control kernel) handles interpolation, axis position control, and operator interface. The PLC-CPU is a discrete SIMATIC S5-135U or S5-150U module (depending on the machine's option list) installed in the same rack as the NCK. Communication between the two is via a dual-port RAM (DPR) and a defined mailbox of interface DBs.

Subsystem Hardware Responsibility
NCK NC CPU module, servo/feed cards, MMC Path interpolation, axis drives, NC program interpreter
PLC-CPU SIMATIC S5-135U/150U CPU with EPROM/Flash card Discrete I/O scan, machine sequencing, HMI handshake, safety chain
DPR / Mailbox Dual-port RAM + DB10/DB11 area Cyclic status exchange (NCK ↔ PLC)
HMI OP030 / OP031 operator panel Display alarms, machine status, operator commands

The PLC program is stored on a Flash card (or EPROM module) plugged into the S5 CPU. When the CPU boots it copies blocks from the card into internal RAM, performs a cold-restart sequence, and signals readiness to the NCK via the mailbox. If the cold-restart fails — typically because an OB, PB, SB, or referenced FB/FX/DB is missing — the CPU enters the STOP state with a diagnostic buffer entry that the 840C interprets as cause 0005.

When the PLC power supply was replaced, the new unit started clean, but the Flash card image had been either overwritten by a partial backup reload, or had never contained the complete original program. A general reset clears work flags, counters, timers, and process images but does not reload program blocks from disk — that operation requires a deliberate PLC menu restore in the 840C service screen or an explicit Flash card write through STEP 5.

3. Decoding Alarm 43 — "PLC-CPU not Ready for Operation"

Alarm 43 is generated by the NCK at power-on and whenever the PLC readiness handshake bit transitions low. The NCK monitors a dedicated flag in the DPR mailbox (typically DB10, byte 0 — bit conventions vary by SW version) and declares the PLC not ready if the bit is not asserted within the configured PLC startup time-out (default ~6 seconds on 840C; can be stretched to 20 s on heavily loaded machines).

Observed Cause Meaning (typical)
0001 PLC CPU in STOP — no OB1 cycle
0002 PLC CPU cold-restart fault
0003 PLC CPU manual restart pending
0004 PLC CPU warm restart fault
0005 CALL/JU to a block not loaded into S5 RAM
0006 Stack overflow (I-STACK / B-STACK)
0007 Substitution error / parameter error
0008 Timeout on I/O update
0009 Communication fault with NCK

Cause 0005 with ZInfo 0000 0000 0000 0000 narrows the problem to a missing block. The ZInfo normally contains the block number and block type when the CPU captures the failure; a value of zero indicates that the CPU either failed before populating the diagnostic buffer (incomplete image) or the buffer itself was cleared by the reset sequence. Either way the recovery path is the same: confirm exactly which blocks are loaded and which blocks the program tries to call.

4. Root Cause Analysis — Why the Error Persists After Reset

Resetting the NCK and PLC and reloading the backup from the machine hard disk is the textbook first step, but on a 840C installation it can mask the actual problem for three reasons:

  1. The NCK backup and the PLC backup are separate archives. The 840C stores the NCK archive under a different path than the S5 program. Reloading the NCK restores axes, drives, lead-screws, and tool tables — which is why the machine appears correctly configured (5 axes, drives recognised) even with a totally missing PLC program.
  2. The PLC backup on the machine hard disk may itself be incomplete. 840C service technicians frequently make a single backup after a software option change and never re-archive. If the file has bit-rot, been partially overwritten, or was made before a late-stage modification, the PLC image returned to the Flash card is missing blocks.
  3. The general reset procedure overwrites the PLC runtime data but does not erase the Flash card. If the Flash card was never re-written with the recovered program, the CPU boots from the (still corrupted) image on the card.
Field experience: On the Index G300 platform, the PLC archive is typically named *.S5D or *.S5 and lives in a directory named PLC or PGARCH at the root of the 840C system hard disk. The NCK archive is in NCK or NC. Both must be present and dated to the same commissioning event. If only one archive exists, treat the machine as having an incomplete backup.

5. Diagnostic Procedure with STEP 5 V7.3

Connect a programming device with STEP 5 V7.3 to the S5 CPU via the MPI/AS511 port. The PLC-CPU on a 840C is online as long as the CPU is not in hard STOP; if the CPU is in STOP, you can still read the diagnostic buffer and the block directory.

5.1 — Read the PLC Diagnostic Buffer

From the STEP 5 online editor, open PLC > Diagnostic Buffer (or equivalent in V7.3). Look for entries with stop cause, stack content, and block reference. Common messages related to cause 0005 include:

  • OB not loaded — OB1 or OB21/OB22 missing
  • PB not loaded — referenced PBx absent
  • FB not loaded — referenced FB/FX absent
  • SB not loaded — step sequence block missing
  • DB not loaded — called DB not generated

5.2 — Compare Block Directory vs. Program Cross-Reference

Open the online block directory (PLC > Block Directory or Project > Blocks) and capture the full list of blocks present in the CPU. Then open the offline project (the archive extracted from the machine) and compare. The mismatch is your smoking gun.

Block Type Function Typical Count on G300 Lathe Failure Impact
OB (Organisation) Cyclic/scheduled — OB1 main cycle, OB21/OB22 restart 2–4 CPU goes STOP immediately on cold restart
PB (Program) Structured program sections (mode, axis, spindle, aux) 20–60 Specific machine function unavailable; can cause STOP if PB called from OB1
SB (Sequence) Step-graph sequences (tool changer, tailstock, chuck) 5–20 Sequence not executed; STOP if SB is referenced from OB1
FB (Function) Reusable code with parameter interface 50–200 Called block logic skipped or substituted error
FX (Extended FB) FB with extended address space 10–50 Same as FB
DB (Data) Process data, setpoints, flags 30–120 Parameter substitution error; can STOP CPU if mandatory DB absent
DX (Extended DB) Extended data blocks 5–30 Same as DB

The report that only FBs, FXs, and DBs are visible is a strong indicator that the OB and PB/SB layer is missing. Without OB1 the CPU never enters the cyclic program, so the PLC service flags "not ready" even though all the function blocks were loaded.

5.3 — Capture the Block Cross-Reference

In STEP 5 V7.3 use Editor > Cross-Reference List or PLC > Reference Data to generate a list of every CALL/JU from each loaded block. Blocks that are called but absent in the online image are the missing targets. Pay special attention to:

  • CALL FB 100 from OB1 — but FB 100 is not present
  • CALL PB 30 from OB1 — but PB 30 not loaded
  • CALL SB 5 from PB 12 — but SB 5 not loaded

6. S5 Block Structure Reference

Understanding what each block type is for helps identify the gap when only some block types survive a backup.

Block Memory Required (approx.) Where It Should Reside
OB1 2–8 KW Flash card, mandatory for cyclic run
OB21 / OB22 2–6 KW each Flash card, restart handling
PB0–PBn 0.5–8 KW each Flash card
SB0–SBn 0.5–4 KW each Flash card, often optional
FB0–FB255 2–16 KW each Flash card
FX0–FX255 2–32 KW each (extended) Flash card
DB0–DB255 1–256 DW each Flash card (initial) + RAM
DX0–DX255 1–256 DW each (extended) Flash card + RAM

Note: KW = Kilo-Word (1 KW = 16-bit S5 word). DW = Data Word. The above sizes are typical; actual sizes vary with program complexity.

7. Recovery Procedure — Step by Step

7.1 — Prerequisites

  • STEP 5 V7.3 installed on a PG with serial/MPI interface (CP5611 or AS511 converter)
  • Original commissioning archive on PG, USB stick, or CD-ROM (the complete S5 program, not just the NCK archive)
  • Documentation set for the machine: parts list, PLC program listing, IO assignment sheet
  • Backup of the current (non-working) PLC image for forensic purposes
  • Access to the Flash card or EPROM module on the S5 CPU

7.2 — Recover the Missing Blocks

  1. Connect STEP 5 to the S5 CPU. Read the current block directory to confirm what is loaded.
  2. Open the offline project from the original commissioning archive.
  3. Compare offline vs. online block lists. Note every block missing online.
  4. Generate the cross-reference list to verify the missing blocks are indeed called.
  5. In the offline project, select all blocks. Force PLC > Download with the option Replace blocks and Include all block types.
  6. Confirm the online block directory now matches the offline image. Pay particular attention to OB1 and OB21/OB22.

7.3 — Reset the PLC

After the block image is corrected, perform a PLC overall reset from the 840C service menu:

Menu → Commissioning → PLC → Overall Reset → Yes

or via STEP 5:

PLC → CPU Functions → Overall Reset

This clears work flags, counters, timers, and process images but leaves the loaded program intact. The PLC should transition to RUN within a few seconds.

7.4 — Reload the Flash Card (if backup was on Flash)

If the S5 CPU boots from a Flash card and the Flash card itself is corrupt, the blocks must be written back to Flash using a S5 programmer (PG with EPROM/Flash programming adapter) or by booting from RAM long enough to perform a Flash update:

  1. Place CPU in STOP.
  2. Insert an empty (or formatted) Flash card in the programming socket.
  3. From STEP 5 select PLC → EPROM → Write Flash.
  4. Mark all blocks to be written.
  5. Confirm write and verify each block after the write completes.
  6. Power-cycle the PLC-CPU and verify it boots cleanly from Flash.

8. Hardware Verification After Power Supply Replacement

The replacement of the power supply module is the original trigger and should not be overlooked. After replacing an S5 power supply, verify the following before trusting any software fix:

Check Acceptance Criterion
Output voltage on the PSU +5 V DC ±2%, ripple < 50 mV pk-pk
Battery for RAM backup Voltage > 3.0 V, holder clean, no corrosion
Backplane connectors Fully seated, no bent pins, no debris
Earth bonding of new PSU chassis < 0.1 Ω to cabinet earth
CPU mode selector Returned to RUN after programming
Flash card seating Fully inserted, latch engaged
CPU fault LED Extinguished after a successful restart

A marginal PSU can produce intermittent "block not loaded" symptoms because the Flash card read returns garbage; replacing the PSU alone may not cure the problem if the card has been corrupted.

9. Commissioning and Final Verification

Once the PLC program is restored and the CPU is in RUN, validate the system from bottom up:

  1. PLC service page: Confirm PLC-CPU ready = TRUE, cause code = 0000, ZInfo = 0000 0000 0000 0000. Alarm 43 should clear.
  2. NCK reference: Drive the machine back to reference in each axis (REF mode) and confirm all axes home without alarm.
  3. I/O handshake: From the 840C diagnostic page, force individual outputs and confirm the corresponding LEDs/contacts. Cross-check against the IO assignment sheet.
  4. Mode switching: Verify JOG, MDI, AUTO, and TEACH-IN modes are recognised by the NCK and that the PLC enables the corresponding functional groups.
  5. Tool changer dry-run: In MDI, call T1 M6 and observe the tool changer sequence. Verify PLC drives chuck, arm, clamp, and unclamp in the correct order with the expected interlocks.
  6. Spindle test: Spindle start/stop, direction reversal, and orient. Confirm spindle actual speed matches commanded within tolerance.
  7. Coolant, hydraulics, lubrication: Verify each auxiliary with the relevant NCK M-function.
  8. Safety chain: Test emergency stop, guard interlock, and axis drive enable. The PLC must drop the drive enable and the NCK must drop axis enables within the configured reaction time.

For a 840C Index G300 lathe, a typical full commissioning dry-cycle (axes referenced, tool change, spindle cycle, tailstock advance/retract, chuck open/close) takes 60–90 minutes once the PLC is ready.

10. Preventive Measures and Documentation

  • Two independent archives. Maintain the S5 program and the NCK archive on at least two separate media (machine hard disk + external USB stick + DVD). Verify checksum or file size after each save.
  • Date-stamp and version label. Embed a comment block in OB1 with the archive date, machine serial number, and SW version. This makes cross-checks fast.
  • Annual battery check. The S5 CPU backup battery should be replaced every 2–3 years. Mark the replacement date on the cabinet door.
  • Document hardware swaps. Whenever the PSU, battery, or Flash card is replaced, save a fresh archive immediately afterwards and verify boot.
  • Photograph the Flash card label. Keep a record of the Flash card P/N and firmware version alongside the S5 program listing.

11. Related Siemens Documentation

12. Frequently Asked Questions

What does Siemens alarm 43 "PLC-CPU not ready for operation" mean on a SINUMERIK 840C?

Alarm 43 indicates the NCK has not received the readiness handshake from the PLC CPU within the configured time-out (default ~6 s). The 840C diagnostic page PLC Service > Cause reports the underlying S5 stop reason; cause 0005 specifically means a CALL or jump instruction referenced a block that is not loaded in the S5 RAM/Flash image.

Why does alarm 43 return immediately after a general reset and backup reload?

A general reset clears PLC runtime data only; it does not rewrite the program blocks on the Flash card. If the original PLC backup on the machine hard disk is incomplete (only FBs/FXs/DBs, no OB/PB/SB), the CPU still finds a CALL to an unloaded block on cold restart. The PLC archive and the NCK archive are stored separately on 840C; restoring one does not restore the other.

Is it possible to recover an 840C PLC program when only FBs and DBs survive?

Yes, provided the original commissioning archive (paper or electronic) is available. Compare the offline project to the online block directory, identify every missing OB/PB/SB/FB/FX/DB, and download them with STEP 5 V7.x using "Replace blocks — include all block types." OB1 and OB21/OB22 are mandatory for cyclic run.

Can a blown power supply corrupt the S5 Flash card?

Yes. A reverse polarity, over-voltage, or repeated brown-out during writes can leave the Flash image incomplete. After replacing the PSU, verify the Flash card by reading it in a S5 programmer; if the read returns errors, the card must be erased and re-written from a verified archive. Replace the S5 backup battery at the same time as the PSU.

How long should an 840C PLC cold-restart take on a healthy machine?

A correctly loaded 840C PLC cold-restart completes in 3–6 seconds. The PLC service page then reports cause 0000, ZInfo 0000 0000 0000 0000, and the readiness handshake flag goes high. If the page still reports cause 0005 after 20 s, the CPU is in STOP and the block image must be inspected with STEP 5 before the machine can be returned to production.

Back to blog