Sinumerik 810D Program Stall Axes Freeze Mid-Block

David Krause14 min read
Motion ControlSiemensTroubleshooting
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 Definition: Axes Stall, Spindle Continues

The reported symptom is characteristic of a specific class of Sinumerik 810/810D/810DE/810M/810T faults: the NC program pointer (channel display) stops advancing at a specific NC block, the spindle continues rotating at its commanded speed, and all axes become unresponsive to feed commands. No follow-on NCK alarm is raised in many cases, which is why operators frequently report the controller as "hung" while the spindle drive still responds.

This combination — program frozen, spindle active, axes disabled, no alarm — almost always points to one of three underlying conditions, in order of statistical frequency on installed 810D/810DE production cells:

  1. PLC-controlled feedrate disable (DB21 signal active).
  2. Read-in disable / read-in inhibit at the channel level (PLC signal or M-code triggered).
  3. Auxiliary-function handshake failure — an M, H, or T function issued by the part program has not been acknowledged by the PLC within the configured timeout, so the channel interpreter holds at the block boundary while the spindle drive (which is a separate physical axis) keeps the last commanded speed.
Important: The 810D and 810M are NOT the same controller. The 810M is the older analog/three-axis variant (also badged 810T for turning, 810G for grinding, 810ME for exposed). The 810D is the digital drive-bus controller (SIMODRIVE 611D). The PLC interface bit addresses, alarm numbers, and diagnostic screens differ between these families. Always confirm the controller badge on the back of the NCU before troubleshooting — see Section 2.

2. Confirming the Controller Variant

Before any signal-level diagnosis, capture the following from the main screen header (top-right area, above the channel status line):

  • NCK software version — e.g., "SW 3.4", "SW 4.4 SP2", "SW 5.3". Bit addresses referenced later assume SW 3.x/4.x conventions.
  • NCU type — typically NCU 561.3 / 571.3 / 572.3 / 573.3 on 810D, or a CCU box on 810M/810T.
  • PLC firmware — read from the PLC service menu (Menu Select → Diagnosis → PLC). 810D systems usually show a S7-300 CPU 314C or 315-2 DP.
  • Channel configuration — single-channel or two-channel (810D supports up to two mode groups).

To force a deterministic identification: navigate MENU SELECT → STARTUP → NCK → IDENTIFICATION on 810D, or read the version screen on 810M via MENU SELECT → SETUP → VERSION. Record the field "Ident. No." and the build date.

3. Immediate Operator-Side Checks (Before PLC Diagnosis)

Run through these checks at the HMI before opening PLC logic. Each takes under 30 seconds and resolves roughly 40% of field reports:

  1. Feedrate override — verify the rotary switch is not at 0%. Many 810D cells use a keyed override that snaps to 0% on operator panel removal.
  2. Feedrate disable pushbutton — check the illuminated key. If lit, press it again. The LED is driven by PLC output, so a stuck input will keep the light on.
  3. Single-block mode — if SB1 or SB2 (program-level vs. block-level single-block) is active, the program will stop at every block boundary and require START to continue.
  4. Dry-run feedrate — if DRY is active and the dry-run rapid is set above the programmed contour feedrate, motion appears "frozen" because the channel may be waiting for a PLC acknowledge that a rapid block normally does not require. Toggle DRY off.
  5. Read-in disable key — the operator panel key "SKIP" or "RAPID OVERRIDE" plus a soft-key combination can latch read-in inhibit on 810D. Look for the soft-key indicator.
  6. Channel status line — read the message above the program display. Common strings: Feed disable, Read-in disable, M0 active, Auxiliary function acknowledge missing, Wait for PLC.
  7. Block display — note whether the displayed block number is the execution block or the interpolation block. If execution stops but interpolation continues by one block, read-in inhibit is engaged.

4. The Three-Fault Decision Matrix

Symptom on 810D Main Screen Channel State Bit Most Likely Cause First Action
"Feed disable" in header Channel status Feed disable = 1 PLC signal DB21.DBX6.0 = TRUE (or V380x 30000.0 on older mappings) Inspect PLC UDT for the FDD logic; check door interlock, jog-mode inhibit, or feed-hold requestor
"Read-in disable" in header, current block complete Channel status Read-in disable = 1 PLC signal DB21.DBX6.1 = TRUE, or M0/M1 in part program with optional stop set Issue NC-START; if it advances one block, the disable is by design (M0/M1), check operator mode
No header text, but "Wait for acknowledgment of aux function" or blinking M/T/H number Channel status Aux. function acknowledgment = 1 PLC did not process the last M/T/H word within timeout (typ. 5 s) Cross-check PLC DB for the pending M/T word; verify the FC/FB that services it
Header reads "Block search" or "Wait for axis enable" Channel status Axis enable = 0 Drive enable chain not closed (STO, pulse enable, or terminal 663/65 open) Check 611D terminal 663 (enable) and 65/9 (pulse enable); inspect PLC FB drive start
Channel display shows M0 active even though program contains no M0 Channel status Programmed stop = 1 M01 selected (optional stop) and PLC signal DB21.DBX4.0 (optional stop) = 1 Disable M01 via PLC or operator panel; check program for stray M01

5. Reading the Channel Status Display (810D HMI)

The 810D HMI exposes channel status bits in two places: the header text and the dedicated Diagnosis → Channel Status screen. The latter is binary-decoded and is the authoritative source.

Navigation: MENU SELECT → DIAGNOSIS → CHANNEL STATUS → CHANNEL 1. The screen renders a hex word for each of three status groups:

  • NCK channel status word (status word A) — interpreter state, reset, fault, M0/M1.
  • Channel status word (status word B) — feed disable, read-in disable, single block, dry run, override.
  • Channel status word (status word C) — auxiliary-function handshake, axis enable, mode group state.

On a frozen machine, capture all three hex values and cross-reference against the bit map in the Sinumerik 810D/840D Basic Programming Manual (PGAs). The exact address names vary between SW 2.x and SW 4.x; the principles are stable across versions.

6. PLC Interface Signal Map (Sinumerik 810D, SW 4.x)

The following bit assignments are typical for the 810D with one channel. Always verify against the version-specific Siemens manual before making PLC changes. The reference work is the Sinumerik 840D sl / 810D Lists Manual (FB/FC/DB signal description).

Signal DB21.DBX (Channel 1) Direction Effect when TRUE
Feed disable (FDD) 6.0 PLC → NCK All path axes decelerate to 0 at max jerk; spindle unaffected
Read-in disable (RID) 6.1 PLC → NCK Current block completes, no new block loaded; spindle unaffected
Optional stop (M01) 4.0 PLC → NCK M01 acts as programmed stop (otherwise skipped)
Single block (SB) 12.0 PLC → NCK Stop after each block
Dry run feedrate (DRY) 24.7 PLC → NCK Replace programmed F with dry-run rapid for all G01/G02/G03
Aux. function acknowledgment (ACK) 30.5 (aux. output) / 32.5 (ack back) PLC ↔ NCK PLC echoes the receipt of an M/T/H word; missing → channel waits
NC-START 7.1 PLC → NCK Latches interpreter forward (edge-triggered)
NC-STOP 7.0 PLC → NCK Halts interpreter at block end (axes decelerate)
Spindle enable 2.1 PLC → NCK Allows spindle motion; usually latched independently of FDD/RID
The precise byte offset (DBX) is version-dependent. SW 2.x and SW 3.x used a different bit layout in DB21–DB30 for two-channel systems. Cross-check with the project's installed SINUMERIK HMI Pro or Operate documentation.

7. Fault-Path 1: Feedrate Disable Active

The most common single cause of "axes frozen, spindle turning" on an 810D is a stuck Feedrate Disable (FDD) bit from the PLC. Typical sources:

  • Safety door interlock — a guard door micro-switch is open or its 24 V is missing. The PLC forces FDD until the door is closed and the interlock acknowledge is satisfied.
  • Jog-mode inheritance — some PLC logic forces FDD when the mode group is in JOG but the operator key is in AUTO. This is a logic bug, not an electrical one.
  • Channel-specific kill — some machines (especially retrofits) route one channel's feed disable from another's alarm. Verify which DB21 instance is bound to the active channel.
  • M00/M01 with PLC race — if the PLC sets FDD at the same instant M00 fires, the channel display shows M00 but FDD is the actual inhibitor. After NC-START the M00 clears but FDD may not.
  • Tool-change window — the PLC often asserts FDD + RID during a tool-change handshake. A tool changer fault that never completes leaves both latched.

Diagnostic procedure:

  1. Open STEP7 / TIA Portal and connect to the PLC (MPI/PROFIBUS).
  2. Monitor DB21.DBX6.0 online. Confirm it is TRUE.
  3. Cross-reference the FDD logic. On 810D PLC packages built with the Siemens standard machine template, FDD is set in FC100 (or the equivalent user FC) from inputs such as door-closed, jog-feed enable, axis-clamped, and emergency-stop-decelerated.
  4. Force each contributor to FALSE in sequence (use Variable Table VAT) and observe which release frees FDD.
  5. Fix the upstream logic; do not simply override FDD in the DB — that masks the safety case.

8. Fault-Path 2: Read-In Disable Active

Read-in Disable (RID) is the second-most common cause. It differs from FDD in one critical way: the current interpolation block completes before the halt. If the part program issues a long G01 block and the PLC asserts RID mid-block, the axes glide to the end of that block, then stop — the spindle may continue because the spindle is on its own command structure.

Common RID sources:

  • M0 programmed stop — by definition an unconditional halt. M0 must be cleared by NC-START. If the operator expects the program to continue after the spindle spin-up but the program was written with M0, the channel will appear "stuck".
  • M1 optional stop — only halts if PLC signal DB21.DBX4.0 = TRUE (operator toggle). Toggle off via the HMI if M01 was unintended.
  • WAIT/GET markers — WAITM, WAITE, GET, RELEASE instructions in multi-channel programs cause channel synchronization stalls. With only one channel configured, an orphaned WAITM will hang indefinitely.
  • PLC-set RID for tool measurement — many cells assert RID when the probe fires, then expect NCK to retract and the PLC to release. A probe that fails to fire (broken cable, no trigger) holds RID forever.
  • Block search residue — after a BLOCKEINLESEN (block search) on 810D, RID is latched until NC-START resumes. If the operator hits RESET but does not START, the channel stays in "search-collected" state with RID active.

Diagnostic procedure:

  1. Inspect the channel status word for the RID bit.
  2. Check the part program around the freezing line. Look for M0, M1, WAITM(n), SETM(n), GOTO to a non-existent label, or a CALL to a missing subroutine.
  3. If the part program is clean, monitor DB21.DBX6.1. Trace its contributors in the PLC.
  4. If RID is latched from a block search: press NC-START; the next block will load and run, clearing RID.

9. Fault-Path 3: Auxiliary-Function Acknowledge Failure

When the channel issues an M, T, or H word to the PLC, it waits for the PLC to acknowledge receipt within the configured time (default 5.0 s, adjustable in MD 10100 / MD 10110 on SW 3.x). If the PLC never sets the matching acknowledge bit, the interpreter hangs at the block boundary with the M/T/H number blinking on the channel display.

This is the classic "spindle-on-axes-off" symptom when:

  • The spindle was started with an M3/M4 in the previous block, and the PLC correctly acknowledged that.
  • The next block contains a tool change (T word) or coolant (M8) that the PLC was supposed to handle, but the acknowledgment FB is broken or never reached.
  • The PLC crashed (SF/STOP LED on) — the entire handshake is dead, but the spindle drive is on its own 611D bus and continues.

Diagnostic procedure:

  1. Note the M/T/H word displayed in the channel. Example: T=5 M=8.
  2. Open the PLC online. Check CPU status — if STOP or DEFECT, fix PLC first; everything downstream is moot.
  3. If PLC RUN, open the FC that services auxiliary-function decoding (typically FC10–FC19 in the Siemens 810D example project).
  4. Monitor the relevant DB — e.g., DB21.DBW10 (M function decode) and the corresponding acknowledgment DB21.DBX30.5.
  5. Use a VAT to force the ack bit high; if the channel advances, the PLC is the cause and the FC must be repaired.
Spindle keeps running: Drives on 611D are autonomous once enabled. The spindle's M3/M4 command from a previous block was acknowledged then, and the speed setpoint is held by the drive itself. The NCK feed disable or read-in disable on the channel does not retract an active spindle run command.

10. Special Cases on 810M / 810T (Analog Family)

The older 810M / 810T / 810G / 810ME analog family uses a different PLC interface — typically DB32 for fixed I/O and a smaller channel DB set. Symptoms overlap but the bit names and addresses differ. The feed disable on 810M is a discrete hardwired input (pin X121 on the NCU) routed through the PLC, not the digital DB21 bit. Diagnosis on these systems should reference the Sinumerik 810M Installation and Start-Up Guide, and PLC access is via the COM810/PG 675/PG 685 programmer using S5-DOS.

Note also that 810M does NOT support the same digital read-in inhibit semantics; the closest equivalent is the "block-by-block" mode selected by a panel key.

11. Reading NCK Alarms Concurrently

Even when no alarm is on the main screen, the alarm history may show a cleared warning. Press ALARM on the HMI to display the active alarm list, then DELETE to view the history (SW 4.x) or SHIFT + ALARM on older SW.

Common alarm numbers associated with the symptom:

  • Alarm 16700 / 16710 — feed disable / read-in disable active on channel.
  • Alarm 15100 / 15180 — auxiliary function acknowledgment missing.
  • Alarm 27000 / 27001 — axis enable missing or pulled.
  • Alarm 7000–7099 range — PLC-driven user alarms from FC/FB logic.

Clear the alarm list and run the program again with PLC monitoring open — if the alarm reappears, note the exact number and time-stamp relative to the freeze. Use the Sinumerik Alarm Documentation portal to look up the alarm number.

12. Verification Procedure

Once a fix is applied, run the following validation sequence:

  1. Reset the controller — RESET on the operator panel.
  2. Check all status bits return to FALSE — DB21.DBX6.0, DB21.DBX6.1, DB21.DBX4.0, DB21.DBX12.0, DB21.DBX24.7. The channel status display should show "Reset".
  3. Run a dry bench-mark program — a 5-line test that does M3 S500, G01 X50 F500, M5, M30. Watch the channel status throughout.
  4. Run the original faulting program in single block — step through every block; note the M/T/H words and confirm each is acknowledged within ~1 s.
  5. Run the original program in AUTO with continuous execution — confirm full pass without freeze.
  6. Cycle count verification — run at least 10 production cycles to detect intermittent issues (e.g., a sticky door interlock that only fails on a certain axis position).

13. Field-Proven Shortcuts

  • The 30-second giveaway: if the channel status word B has bit 0 (FDD) set, the answer is in the PLC safety chain — do not chase a part-program bug.
  • The 5-minute giveaway: if pressing the operator panel "Feed Disable" toggle does not change the channel status, the PLC input module is stuck or the PLC program is not seeing the input — check the wiring, then the FC.
  • Cross-check the spindle bit: spindle keep-on while axes stall means the spindle was enabled by an earlier block that was acknowledged; the current block is failing, not the spindle block.
  • Watch the HMI time: if the channel display shows the same block for over 5 s and no alarm clears, you are in an aux-ack stall, not a motion stall.
  • Back-up the project before changes: always do a PLC → Upload to PG and an NCK → Upload before modifying live PLC logic.

14. Frequently Asked Questions

Why does my Sinumerik 810D spindle keep turning but the axes stop mid-program?

The spindle is driven independently once enabled. When the channel hits a feedrate disable (DB21.DBX6.0), read-in disable (DB21.DBX6.1), or an unacknowledged auxiliary function, the path axes halt at the block boundary while the spindle drive holds its last commanded speed. Check the channel status word on the HMI under DIAGNOSIS → CHANNEL STATUS.

What is the difference between feedrate disable and read-in disable on 810D?

Feedrate disable (DB21.DBX6.0) immediately decelerates all path axes to zero within the current block. Read-in disable (DB21.DBX6.1) allows the current block to finish, then halts the interpreter — no new blocks are loaded. Both can cause a freeze, but only feedrate disable stops axes mid-motion.

How do I find which M or T function is waiting for PLC acknowledgment?

Press ALARM on the 810D HMI to view active alarms; an aux-function-ack alarm shows the M/T number. Alternatively, go to DIAGNOSIS → CHANNEL STATUS and read the channel status word C, or monitor DB21.DBX30.5 and the M/T decode word DB21.DBW10 online in STEP7.

Is the 810M the same as the 810D for PLC interface purposes?

No. The 810M (analog) and 810D (digital) use different PLC interfaces. The 810D routes feed/read-in disable through DB21 digital bits; the 810M uses hardwired discrete inputs on the NCU plus a smaller DB set. Always confirm the controller badge before interpreting bit addresses.

Can a tool-change PLC fault cause the symptom described?

Yes. Many part programs issue a T word followed by M6. If the PLC fails to acknowledge the T or M6 — for example because the carousel is not in position or the spindle-orientation sensor is faulty — the channel stalls waiting for ack, the spindle keeps running from a prior M3, and the axes cannot continue to the next block. Inspect the tool-change FC and the spindle-orientation signal chain.

Back to blog