Problem Statement: "Stop: Block in single block ended" Prevents Cycle Start
On a SINUMERIK 840D sl, the Single Block (SBL) function is selected through the operator panel, but the channel status line reports "Stop: Block in single block ended" immediately after the first NC block is interpreted. The Cycle Start key on the Machine Control Panel (MCP) appears to have no effect — the program remains parked at the block boundary and never advances, even on a newly commissioned machine with all MCP keys confirmed operational. This is a NC/PLC interface mismatch, not a hardware failure, and can be diagnosed and repaired without disassembly.
Affected Systems and Versions
- Controller: SINUMERIK 840D sl on NCU 710 / NCU 720 / NCU 730.
- HMI: SINUMERIK Operate (PCU 50.x, PCU 70.1, or TCU).
- Operator interface: MCP 483, MCP 310, HT 8, or HT 10. PROFINET-connected and PROFIsafe variants are included.
- NCK software 4.x and 6.x are the typical release bands; the channel interface DB21/DB22 is the same across all of them, but the SBL continuation path is PLC-application dependent.
- Reference platform: SINUMERIK product portal and the Siemens Industry Online Support documentation tree (search ID 109768530 family for the 840D sl PLC Interface Description / Lists Manual).
SBL Signal Map (Channel Interface)
The single-block function is implemented as a small set of NCK/PLC handshake signals. All of the following must be in the correct state for the program to advance from an SBL stop:
| Signal | Direction | Function |
|---|---|---|
| DB21.DBX0.4 | PLC → NCK | Single Block (SBL) active, level-controlled |
| DB21.DBX0.5 | PLC → NCK | M01 selective stop active |
| DB21.DBX7.0 | PLC → NCK | NC-Start (rising edge) — generic start, also resumes from SBL on some FB1 variants |
| DB21.DBX7.1 | PLC → NCK | Single Block Continue (rising edge) — explicit SBL resume pulse |
| DB21.DBX6.0 | PLC → NCK | Feed-rate / rapid traverse disable |
| DB21.DBX6.1 | PLC → NCK | Read-in disable (freezes the decoder) |
| DB21.DBX6.4 | PLC → NCK | Delete distance-to-go |
| DB21.DBX35x.0 | NCK → PLC | Channel active / interrupted / reset status |
| DB21.DBX35x.5 | NCK → PLC | Interpreter "waiting" status |
The SBL stop is signalled by the NCK writing "Stop: Block in single block ended" to the channel status and freezing the interpreter. The PLC must deliver a rising edge to one of the two resume bits (DBX7.0 or DBX7.1) to advance. The exact bit used for SBL continue is defined by the machine builder's PLC application; the field report cited DBX7.1, but you must always cross-check the actual machine project.
SBL Continue vs. NC-Start — Which Edge Resumes the Program?
Modern 840D sl applications (NCK software 4.5+ with the Siemens standard FB1) differentiate the start pulse into two parallel paths:
- DB21.DBX7.0 — NC-Start, rising edge. Used at program start, after M0, after M30, after reset, and at the very first SBL stop on a fresh selection of SBL.
- DB21.DBX7.1 — SBL Continue, rising edge. The NCK expects this bit to toggle once per block boundary while SBL is active and the channel is in the "Block in single block ended" state.
Root Cause Hierarchy (Ranked by Field Frequency)
| # | Cause | Quick verification |
|---|---|---|
| 1 | PLC sets DBX7.0 (NC-Start) but not DBX7.1 (SBL continue) on the MCP rising edge | Cross-reference the NC-Start FB in the PLC project |
| 2 | SBL continue pulse width is less than one OB1 cycle (glitch) or generated on falling edge | Trace DBX7.1 in a PLC watch table with a 10 ms trigger |
| 3 | MCP NC-Start switch contact bounce, defect, or wiring break | Force DBX7.1 from the PG; if forced, the NC resumes, the MCP is the fault |
| 4 | Read-in disable (DBX6.1) set by a parallel path (modal M0, ASUB, M60, dry-run) | Read all interlocks in the NC-Start FB and in M decoder |
| 5 | A modal ASUB or PROG_EVENT is interrupting the main run | Inspect _N_PROG_EVENT_SPF and $AC_ASUP |
| 6 | SERUPRO (block search with calculation) is still active | Check $AC_SERUPRO, DBX1.0 (SERUPRO enable) |
| 7 | Channel status word indicates interpreter not ready | Read $AC_STAT bit pattern |
| 8 | PLC OB1 cycle is too long, NCK rejects the start pulse as glitch | Monitor OB1 cycle time, target < 8 ms |
| 9 | PROFINET/PROFIBUS latency between MCP and PLC drops the start pulse | Inspect the input image twice in OB1, verify device diagnostics |
| 10 | Wrong channel referenced — DB21 active but the program is in channel 2 (DB22) | Verify the channel shown on the HMI matches the DB number used in the PLC |
For a "new machine, all buttons working" scenario as described, causes 1–3 dominate. Causes 4–10 are progressively less likely and should be ruled out only after the wiring and PLC logic have been checked.
Diagnostic Procedure
This sequence does not require disassembly and can be executed on the installed machine with the doors closed, drives enabled, and AUTOMATIC mode selected.
- Confirm that the channel status line actually reads "Stop: Block in single block ended" and not a related message such as "Stop: M0 effective", "Stop: Read-in disable", or "Wait: Aux function acknowledgment missing". The exact text determines which control bit is missing.
- Open SINUMERIK Operate: Menu → Diagnostics → NC/PLC variables. Add the following tags to a watch list, selecting channel 1 (or 2, 3, 4, 5, 6 as needed):
- DB21.DBX0.4 — SBL active
- DB21.DBX7.0 — NC-Start
- DB21.DBX7.1 — SBL continue
- DB21.DBX6.0 — Feed disable
- DB21.DBX6.1 — Read-in disable
- DB21.DBX35x.0 — Channel status
- $AC_STAT — current channel status word
- Force DB21.DBX7.1 from the PLC programming device using Monitor/Modify with Trigger (rising-edge trigger). Press the MCP NC-Start key and observe:
- If the bit does not toggle to TRUE for at least one PLC cycle, the wiring or the MCP button is suspect.
- If the bit toggles but the NCK does not resume, the SBL signal mapping in the machine configuration is wrong.
- If forcing the bit from the PG works, the PLC application code is the problem. If the forced bit also fails, the NCK channel is in a different state (read-in disable, interpreter waiting, ASUB active).
- If SBL resumes only when forced and not when the MCP key is pressed, replace the MCP NC-Start switch or check the input card mapping (typical addresses: I0.0..I2.7 on the MCP backplane for classic MCP, or input slot 1 for PROFINET MCPs).
PLC Signal Verification — Concrete Watch Table
Insert the following watch table in STEP 7 / TIA Portal to capture a 2-second window around an NC-Start attempt:
| Tag | Address | Expected (SBL on, NC-Start pressed) |
|---|---|---|
| SBL active | DB21.DBX0.4 | TRUE |
| NC-Start pulse | DB21.DBX7.0 | TRUE for 1 OB1 cycle |
| SBL continue pulse | DB21.DBX7.1 | TRUE for 1 OB1 cycle |
| Feed disable | DB21.DBX6.0 | FALSE |
| Read-in disable | DB21.DBX6.1 | FALSE |
| Channel status ready | DB21.DBX35x.0 | TRUE |
If "NC-Start pulse" toggles but "SBL continue pulse" does not, you have confirmed Cause 1. The fix is a one-line patch in the NC-Start handler FB in the PLC.
MCP / HMI Button Chain (Hardware Path)
The MCP NC-Start key is wired to a discrete input on the PLC. Standard mapping per the SINUMERIK 840D sl Operator Components manual:
| Function | Classic MCP address | PROFINET MCP slot |
|---|---|---|
| NC-Start | I 0.0 | Slot 1 / byte 0 / bit 0 |
| NC-Stop | I 0.1 | Slot 1 / byte 0 / bit 1 |
| Reset | I 0.2 | Slot 1 / byte 0 / bit 2 |
| SBL key | I 0.4 | Slot 1 / byte 0 / bit 4 |
| M01 key | I 0.5 | Slot 1 / byte 0 / bit 5 |
PROFINET-connected MCPs exchange these signals over a cyclic PROFINET slot. A mismatch in slot assignment after a PLC project restore is a common cause of the symptom on machines that have been recently upgraded. Cross-check the device configuration in TIA Portal under Devices & Networks → MCP → Slot assignment.
SERUPRO and Block-Search Interference
If a "Block search with calculation" (SERUPRO) has been executed and not properly closed, the channel remains in a state where the NC-Start signal is interpreted as "continue SERUPRO" rather than "start program". Verify:
$AC_SERUPRO == 0-
$AC_PROGinRUNNINGorSTOPPED - DB21.DBX1.0 (SERUPRO enable) is FALSE
If $AC_SERUPRO is non-zero, perform an NCK reset (DB21.DBX7.3 rising edge for ≥ 2 seconds) and re-enter the program. Refer to the SINUMERIK 840D sl Basic Functions manual, section "Block search with calculation (SERUPRO)".
SBL State Machine (Channel Behaviour)
The SBL function is best understood as a four-state machine driven by the three bits above. The transitions below are the only legal ways to move between states:
Symptom mapping to the diagram: the channel sits in SBL PAUSE and never takes the resume edge back to RUNNING because the PLC never delivers the DBX7.1 rising edge.
Resolution — Concretely
Scenario A — new machine, MCP key wired but SBL does not advance (cause 1):
- Open the PLC project and locate the FB that processes the NC-Start MCP key (commonly FB1 or a user-specific NC-Start handler).
- Add a parallel branch that sets DB21.DBX7.1 on the same rising edge that sets DB21.DBX7.0. The Siemens example FB in the toolbox (FB1 NC-Start) shows the canonical pattern.
- Make the SBL continue pulse the same width as the NC-Start pulse (one OB1 cycle, then reset).
- Reload the PLC project. Use Operate → Commissioning → PLC → "Reload PLC program" or power-cycle the NCU.
- Run a test program of two linear moves (e.g.
G01 X10 F1000; G01 X20 F1000;) with SBL active. The first move should execute on one NC-Start press, the second on the next press.
Scenario B — MCP NC-Start key suspected defective (cause 3):
- Disconnect the MCP NC-Start wire at the PLC input terminal.
- Force DB21.DBX7.0 and DB21.DBX7.1 from the PG with a one-second pulse.
- If the NCK accepts the start command, replace the MCP NC-Start switch (snap-action, IP65 rated, panel-mounting type per the MCP-483 service manual) or the MCP front panel assembly.
- For PROFINET MCPs, verify that the I/O slot is in cyclic exchange; check the I/O device diagnostics in STEP 7 / TIA Portal for any PROFINET alarm.
Scenario C — ASUB or PROG_EVENT interference (causes 4–6):
- Add a one-shot pulse monitor on DB21.DBX6.1 across a five-second window. If it toggles, identify the source (search the PLC for any write to
DB21.DBX6.1in cross-reference). - Read
$AC_ASUPand_N_PROG_EVENT_SPFfrom the NC directory. If an event-driven ASUB is firing on every block boundary, that ASUB must end withREPOSAandM30, or be disabled withSETINT(0). - Reset the channel (DB21.DBX7.3 rising edge) and re-test.
Verification
After applying the patch, confirm the following in this exact order:
- Channel status line shows "Stop: Block in single block ended" only on the block boundary; the next NC-Start press resumes the next block.
- A test program of ten
G01moves with SBL on advances exactly one move per NC-Start press. - A second test with SBL off advances continuously, exactly as before.
- DB21.DBX35x.0 (channel active) transitions 0 → 1 → 0 on each block boundary.
-
$AC_STATbit 0 toggles on each NC-Start. - PLC OB1 cycle time remains below 8 ms (excessive cycle time will cause the NCK to reject the start pulse on the next boundary as a glitch).
Field Tips and Common Pitfalls
- Some HMI skins do not show the SBL indicator lamp. Always confirm SBL state by reading DB21.DBX0.4 from a watch table rather than relying on the HMI display.
- On a two-channel machine, the second channel uses DB22 with the same bit layout. Forgetting to cross-reference the DB number is a common source of confusion — the HMI may show channel 2 active while the PLC drives channel 1.
- If the machine was upgraded from 840D classic to 840D sl, the legacy DB36/DB38 (old channel interface) may still be partially mapped. Force the DB21/DB22 signals to confirm the active interface is the one the PLC is writing to.
- The "SBL continue" signal is rising-edge sensitive. Holding the NC-Start key does not generate repeated edges; the operator must release and re-press.
- On S7-1500 with TIA Portal V18+, MCP inputs are debounced by default. A 100 ms debounce is acceptable, but a 500 ms debounce on a 50 ms NC-Start pulse will swallow the press. Set debounce to 5 ms for NC control inputs.
- For safety-integrated MCPs (PROFIsafe variant), the input is delayed by the F-host cycle (typically 16 ms). This is normally transparent but combines with PLC cycle time to extend the apparent pulse width — the pulse must still be at least one full OB1 cycle after debounce.
- Disable the "Block search with calculation" mode ($AC_SERUPRO == 0) before re-testing SBL; otherwise the NC-Start is consumed by SERUPRO continuation.
- Avoid writing to DB21.DBX7.0 / DBX7.1 from a non-OB1 context (e.g. cyclic interrupt OB35). The NCK expects the start pulse to be a clean OB1-cycle-wide event; writes from interrupt OBs can produce double edges.
Related Machine Data (Reference Values)
The following NC machine data influence the SBL behaviour. They should not be changed without consulting the machine builder's commissioning record, but they explain the wider operating envelope:
| MD | Meaning | Typical default |
|---|---|---|
| MD20150 | Default G code initial setting (G00/G01 etc.) | — |
| MD20270 | Default block search mode | — |
| MD20105 | PROG_EVENT switch, block-change ASUB trigger | 0 / 1 |
| MD11600 | Restart behaviour on NCK reset | — |
| MD20108 | SERUPRO enable mask | 0 |
Always validate the values in the specific machine's commissioning archive before adjusting any of the above; the defaults in this article are illustrative only.
What does "Stop: Block in single block ended" mean on a Sinumerik 840D sl?
It is the NCK's status message indicating the interpreter has paused at a block boundary because the SBL input (DB21.DBX0.4) is active. The program is frozen and waits for a rising edge on the resume bit. The most common cause of the operator-visible symptom (no response to Cycle Start) is that the PLC is delivering a rising edge to DB21.DBX7.0 (NC-Start) but not to DB21.DBX7.1 (SBL continue), so the NCK never receives the second pulse.
Which PLC bit resumes the program from an SBL stop on the 840D sl?
It is machine-builder dependent. Standard 840D sl FB1 applications use DB21.DBX7.0 for NC-Start and DB21.DBX7.1 for the SBL continue pulse (rising edge, one OB1 cycle wide). Some legacy applications route both through DBX7.0. Open the actual PLC project and confirm which bit the NC-Start handler drives before troubleshooting further.
Can I test SBL without an MCP by forcing the PLC bit?
Yes. From STEP 7 or TIA Portal, open the online PLC, navigate to Watch & Force Table, and write a one-cycle rising edge to DB21.DBX7.1 (or DBX7.0, depending on the machine). If the NCK resumes the next block when the bit is forced but not when the MCP key is pressed, the MCP switch or its wiring is at fault, not the PLC logic.
Why does SBL sometimes work on a 2-channel machine but fail on a specific channel?
Each channel has its own SBL control bits: channel 1 is DB21, channel 2 is DB22, channel 3 is DB23, and so on. The MCP NC-Start key is typically wired to one channel at a time (selected by the channel-select switch). If the channel-select is on channel 2 but the PLC program only drives DB21.DBX7.1, the rising edge is delivered to the wrong channel and channel 2 will appear to ignore SBL continue. Verify channel selection in the HMI and the corresponding DB number in the PLC.
Is the issue ever caused by firmware or NCK software version?
Not directly, but certain NCK software releases changed the default SBL handling between FB1 variants. After a firmware upgrade, re-validate the NC-Start FB and the default SBL continue assignment. If the FB1 standard block was reimported during the upgrade, the SBL continue branch may have been overwritten. Always back up the PLC project before any NCK firmware change.
How do I confirm the MCP NC-Start key is generating a valid pulse?
Add DB21.DBX7.0 to a PLC watch table with a 10 ms trigger, press the MCP key once, and verify the bit toggles TRUE for at least one OB1 cycle. If the bit never toggles, the MCP switch or its input module is suspect. If the bit toggles but the NCK does not advance, the wiring of DB21.DBX7.1 is missing from the PLC application code.