Troubleshooting SINUMERIK 840D PL Cycle Stop Button Failure on Giddings & Lewis Borers
The SINUMERIK 840D Powerline (PL) controller used on Giddings & Lewis horizontal boring machines (PT1800, HBM480 and similar models) implements the Cycle Start / Cycle Stop operator controls as a latched PLC application that drives a small number of fixed NCK/PLC interface signals in DB21 of the channel DB. When the NC Stop path is broken inside that interface, the HMI button can be pressed without effect, and the spindle/axes continue to drive through the part program. The fault is intermittent, recovers after Reset or after a Single Block break, and is a classic symptom of either a PLC-side latch that never releases, an NCK signal acknowledgement that is suppressed, or a channel state that has been forced into a non-decodable condition (e.g. rapid-block-look-ahead overflow, a subprogram nesting error, or an auxiliary-function acknowledgement pending).
This article documents the symptom as reported in the field, maps the affected signals against the official Siemens NC variables interface, walks the signal from the pushbutton to the NCK, identifies the most likely root causes, and gives an engineer-ready diagnostic and recovery procedure.
1. Problem Description
Equipment. A Giddings & Lewis PT1800 horizontal borer (also reported on a sibling HBM480), controlled by a SINUMERIK 840D with Powerline (PL) NCU and an MMC/HMI version from the SW 5.x to SW 6.x generation. The PLC is the standard SIEMENS 840D PLC firmware (typically a 314-style STEP 7 program, branded SIMATIC S7 PLC with FM/NC/CP modules), compiled with the supplied machine manufacturer toolbox (the G&L “Gluing” PLC is layered on top of the basic Siemens 840D PLC).
Symptom.
- The Cycle Start pushbutton (wired to PLC input
I2.1) starts the cycle and the axes move as expected. - Pressing the Cycle Stop pushbutton (wired to PLC input
I2.0) does not interrupt the running part program in AUTO mode or the manual data input (MDA) execution. - The Cycle Stop and Cycle Start hardware inputs both toggle correctly in the PLC status table when monitored during the fault condition; the HMI key is being seen by the PLC.
- The marker
M66.2(“NC Start Active in channel 1”) remains SET in spite of the NC Stop press. - The interface bit
DB21.DBX35.0(program status “NC start active”) does not clear when NC Stop is asserted. - The interface bit
DB21.DBX7.3(“NC stop from PLC”) is set by the PLC, but the NCK acknowledgement bitDB21.DBX7.0(“NC stop acknowledged”) does not go high (it should pulse even momentarily when the NCK accepts the stop). - Performing a warm/cold RESET and re-starting the cycle makes Cycle Stop work normally for some time, after which the fault returns intermittently.
- Enabling Single Block (SBL) at the moment the fault is active causes the part program to stop at the end of the current block, and from that point on Cycle Stop behaves normally again until the next cycle.
2. Relevant SINUMERIK NCK/PLC Interface Signals
The 840D exchanges runtime control with the PLC exclusively through a small set of fixed DBs. The channel-relevant bits used by the Cycle Start/Stop path live in the channel DB (DB21 for channel 1, DB22 for channel 2, etc.). The interface is defined in the Siemens List Manual – SINUMERIK 840D sl/840Di sl/840D/840Di/802D sl, NC variables and interface signals (also called the NCK-PLC interface manual) and is identical for Powerline and Solution Line with the same SW level. The following table lists the signals touched by the Cycle Stop investigation.
| Signal | Direction | Meaning | Notes |
|---|---|---|---|
DB21.DBX7.0 |
NCK → PLC | NC stop acknowledged (channel 1) | Pulses high when the NCK accepts and acts on a stop request. Its absence means the NCK never started the stop ramp. |
DB21.DBX7.1 |
NCK → PLC | NC stop, axes still under control | Rises when a stop is acknowledged but axes remain under closed-loop control (braking along contour). |
DB21.DBX7.2 |
NCK → PLC | NC stop, all axes stopped | Rises when the NC has completed the stop sequence. Used by the PLC to release interlocks. |
DB21.DBX7.3 |
PLC → NCK | NC stop from PLC (channel 1) | Level-driven: while high the NCK must execute a stop. Often self-latching inside the PLC; must be cleared in a defined manner. |
DB21.DBX7.4 |
PLC → NCK | NC stop, axes plus spindle | Triggers a stop including the spindle (analogous to DB21.DBX7.3 for the spindle path). |
DB21.DBX7.7 |
PLC → NCK | Reset (channel 1) | Resets the channel; clears the start latch and any active alarm from the channel perspective. |
DB21.DBX35.0 |
NCK → PLC | Program status — NC start active | Mirrors whether the part program is currently running under NC start. Used by the PLC to confirm the channel is alive. |
DB21.DBX35.1 |
NCK → PLC | Program status — NC wait for auxiliary function | Important for stop-pending diagnosis: if high, the NCK is waiting for an M/H/T acknowledgement from the PLC. |
DB21.DBX35.2 |
NCK → PLC | Program status — NC stop active | Set while the NCK is in the stop sequence; should rise together with DBX7.0. |
DB21.DBX319.0 |
PLC → NCK | NC start (channel 1) | The edge-triggered NC start the PLC issues in response to the operator’s Cycle Start key. |
DB21.DBX319.1 |
PLC → NCK | NC start disable | Used to inhibit start; should be checked when stops appear to be ignored. |
DB10.DBX56.1 |
NCK → PLC | NC ready | Indicates the NCK is in cyclic operation. Loss of NCK readiness can also cause stop-handling problems. |
Reference: SINUMERIK 840D sl/840Di sl/840D/840Di/802D sl – List Manual (NC variables and interface signals), the canonical Siemens document for the bits in DB21/DB10/DB11.
3. Normal Signal Flow for Cycle Start and Cycle Stop
The expected interaction is the following closed loop, traced in the order the signals must rise and fall. Any deviation in this sequence is the diagnostic surface you trace on a fault.
3.1 Cycle Start path
- Operator presses the Cycle Start key. The hardware input is wired into the PLC (in the G&L machine
I2.1). The input de-bounces inside the PLC firmware or in a customer FB. - The PLC sets marker
M66.2(NC Start Active, channel 1) – this is a SET coil on the rising edge ofI2.1with conditions such asAUTOmode, no feed/spindle inhibit, NCK ready (DB10.DBX56.1), reset state cleared, no active alarm, etc. - On the same scan the PLC raises
DB21.DBX319.0(NC start edge) for one PLC cycle. The NCK detects this edge and starts the part program in the selected channel. - Once the NCK has started decoding the program it sets
DB21.DBX35.0(NC start active) high; this signal stays high for the entire duration of the program execution. - The PLC can read
DB21.DBX35.0and re-latchM66.2so the marker stays true even after the pushbutton is released (the pushbutton only produces an edge; latching is what keeps the cycle alive).
3.2 Cycle Stop path
- Operator presses the Cycle Stop key. PLC input
I2.0rises. - The PLC latches the stop request and sets
DB21.DBX7.3(NC stop from PLC). The signal is level-driven; the PLC keeps it high until the NCK acknowledges. - The NCK receives the request and ramps the axes/spindle to a stop. Internally it sets
DB21.DBX35.2(NC stop active) andDB21.DBX7.1(axes still under control), and finallyDB21.DBX7.0(stop acknowledged) andDB21.DBX7.2(all axes stopped). - With
DB21.DBX35.0cleared, the PLC dropsM66.2via the reset coil, which in turn drops the latchedDB21.DBX319.0and clears its own internal Cycle Start latching. - When the operator releases the stop key, the PLC drops
DB21.DBX7.3provided the NCK has acknowledged. The machine is now in a stopped, reset state ready for a new start.
DB21.DBX7.0 is the canary: if the NCK never acknowledges, the stop never completes and the operator-visible behaviour is exactly what is reported — Cycle Start remains ‘active’ because M66.2 is latched and DB21.DBX35.0 never clears.4. Tracing the Fault – Cross-Reference, Status and Cross-Check
The reporter has already done two of the most useful steps. Capture them in your diagnostic checklist as the first items to run on a similar symptom.
4.1 Confirm the input edges
Open the PLC status table (STEP 7 → Monitor/Modify) and force-online the cycle. Watch I2.0 and I2.1 on the HMI pushbutton view. Both should toggle with the key presses. If one does not, the fault is wiring or HMI key matrix, not software.
4.2 Cross-reference the affected bit
From STEP 7, right-click I2.0 and run Cross References. A missing reference — as the reporter found — means that the bit is not read in user ladder/ST. Either the input is read in a system FB that does not appear in the user cross-reference view, or a hardware/CP/IM address has shifted and the symbol is dangling. Check the symbol table for I2.0; if the comment is blank or the address is overlaid with another, the cross-reference shows zero hits, but the FB is still using it under the old address.
4.3 Watch the marker
Open the Status view on the FB that contains M66.2 (in this case FB250). The SET coil is being driven by DB21.DBX35.0; the RESET coil should be driven by the negation of DB21.DBX35.0 and the stop chain. The fact that DB21.DBX35.0 itself is not dropping is the key clue — the fault is upstream of FB250.
4.4 Watch the NCK side
From the HMI go to Diagnosis → Service Display → Interface signals (or in classic MMC Commissioning → NC/PLC interface). Inspect:
-
DB21.DBX7.3– must be 1 when Cycle Stop is pressed. -
DB21.DBX7.0– must pulse 1 once the NCK has acknowledged. If it stays 0, the NCK has not accepted the stop. -
DB21.DBX35.0– must drop to 0 at the same instant the acknowledgement pulse is high. If it stays 1, the NCK is still interpreting the channel as running. -
DB21.DBX35.1– if 1, the NCK is waiting for an auxiliary function (M/H/T) acknowledgement. A missed M-finish from the PLC is a frequent cause of ‘NC start won’t release’. -
DB10.DBX56.1– NC ready. Loss of NCK readiness also manifests as a stuck start.
4.5 Test the Single Block break-out
Enable Single Block and step the cycle to the next block boundary. If Cycle Stop then works, the part program itself is the source of the issue: the NCK is in a block that never reaches a decoder rest state (for example, a block with no axis move but a wait, a polar coordinate transform, a modal subroutine in an unusual state, or a block that issues an asynchronous subprogram call inside a look-ahead that cannot be cancelled cleanly).
5. Root Cause Analysis
The combination of facts — (a) inputs work, (b) PLC issues DB21.DBX7.3, (c) the NCK does not assert DB21.DBX7.0 or clear DB21.DBX35.0, and (d) Single Block restores normal stop behaviour — reduces the search space to four families of root cause, listed in order of statistical probability on a 840D PL cell.
5.1 Auxiliary function (M/H/T) acknowledgement is pending
The single most common cause on a 840D PL is an M-function the PLC never finishes. The NCK has issued an M/S/T to the PLC (DB21.DBX(60+8*n).0 … ), the PLC is expected to perform the auxiliary action and pulse DB21.DBX(60+8*n).1 back. If the PLC never sets the finish bit, the NCK stays in ‘wait for auxiliary function’ (DBX35.1 = 1) and the decoder does not advance, so it cannot react to a stop edge cleanly. Confirm by checking DB21.DBX35.1 and by inspecting the M/S/T handshake bits for the current part program.
5.2 Asynchronous subprogram / ASUB / modal call stack
A modal subroutine that contains an asynchronous subprogram call (SETINT, INIT, or an ASUB triggered by a fast input) can lock the interpreter into a state where the decoder is in a non-stoppable context. Single Block breaks the chain at the next block boundary; a normal stop request from the PLC has no effect because the NCK is executing interpreter-internal subprogram linkage.
5.3 Look-ahead overflow / block buffer full / compressor hang
On a long block of compressed motion (e.g. a spline block, a 5-axis compressor block, or a long G01 with many tool-radius-compensation nodes) the look-ahead can saturate. The NCK is technically still running (DBX35.0 = 1) but the stop sequence can’t be inserted at a block end. Single Block reduces the look-ahead to one block and the stop can take effect. Check for NC alarm 10911 ‘Look-ahead buffer overflow’ or 10763 ‘Block buffer full’, and check whether the part program is using a compressor (COMPON/COMPCURV) or a long spline chain.
5.4 PLC latch, level vs. edge, and double-latching
The PLC may be latching the Cycle Stop signal at the wrong edge, or latching it after the start latch with a dominant reset. Verify the FB that writes DB21.DBX7.3. Common mistakes are:
- Using a SET coil on
DB21.DBX7.3keyed off the start markerM66.2rather than the stop input. The coil is set on Start, never reset, and a Stop that the operator expects to drop the marker simply re-asserts it through the dominant SET. - Writing both
DB21.DBX7.3andDB21.DBX7.4from the same coil without an OR, creating a race that the NCK handles differently in different SW versions. - Resetting
M66.2on the falling edge ofDB21.DBX35.0rather than the falling edge ofDB21.DBX7.0; if the NCK is slow to acknowledge, the marker never clears and the next start latches it back ON immediately.
5.5 HMI / MCP / handwheel addressing conflict
On a G&L retrofit the MCP keys are often mapped through an FB2 (key handling) and an FB9 (MCP). If two MCPs are addressed (e.g. an MCP 483 plus a secondary hand-held unit) the input bytes may overlap; pressing Stop on one MCP may be seen as a Start on the other, or the I-address may be configured as input on one slot and output on the other. The PLC status check the reporter did only shows the byte is changing, not that it is configured as an input. Confirm the hardware configuration in STEP 7 → HW Config for the IM/CP.
5.6 NCK in a non-decodable state (alarm pending)
An NC alarm in the channel (e.g. 26017 ‘ASUB not possible’, 14011 ‘Channel not ready’, 14007 ‘Program error’) can leave the channel in a state where the start latch is held but the stop is also being suppressed. Check the alarm history for the channel (Diagnosis → Alarm Log) before the fault cleared.
6. Step-by-Step Diagnostic and Recovery Procedure
- Lock out the machine. Apply the local lockout/tagout (LOTO) procedure before opening any enclosure. Identify the affected machine, the channel, the program, and the operator. Record the active part program number and tool table.
-
Capture the state. From the HMI dump the NCK service display for channel 1 (Diagnosis → Service Display → Axis / Channel state), the alarm history (Diagnosis → Alarm Log), and the PLC status table (STEP 7 → Monitor/Modify). Save screenshots of
DB21.DBX7.0/7.3/35.0/35.1/35.2during the fault. - Confirm input wiring. With a multimeter on the relevant terminal block verify that the Cycle Stop pushbutton is closing its contact. Replace the switch if the contact resistance is > 100 mΩ at rated current.
-
Watch
DB21.DBX7.3at the HMI while pressing Cycle Stop. If it does not go high the PLC is not translating the input, the fault is in the PLC program. If it does go high the fault is in the NCK’s handling of the stop. -
Check the auxiliary-function handshake. In the channel interface view, find the active M/S/T (decode the current block in Diagnosis → Current Block Display). Watch the change bits
DB21.DBX(60+8*n).0and the finish bitsDB21.DBX(60+8*n).1. An M-finish that is never sent is the most frequent root cause of ‘stuck start’ symptoms on 840D PL. - Test the Single-Block escape. With the cycle running, set Single Block = 1 from the HMI. If the program halts at the end of the current block and Cycle Stop works from that point, the fault is one of the decoder-related causes (5.2 or 5.3). Open the part program and look for the offending block (compressor, ASUB, modal call, SPLINE, 5-axis transformation, long block with tool compensation).
-
Test the Reset escape. With the cycle running, pulse channel reset (
DB21.DBX7.7= 1 for one cycle, or use the HMI reset key). If Reset clears the fault and a fresh cycle runs and stops cleanly for a long time, the issue is most likely a PLC latching/state-machine bug that Reset re-initialises. -
Cycle the NCK readiness. Toggle NCK ready (
DB10.DBX56.1is read-only; do this by issuing a full NCK reset, e.g. via the HMI Commissioning → NC Reset). If the fault is gone after a full NCK reset, the issue is a corrupted NCK runtime state – check the CF card for bad-block errors. -
Review the FB that drives the latch. Open
FB250in STEP 7. The SET/RESET pair onM66.2and onDB21.DBX7.3/DB21.DBX7.4must be unambiguous. Replace the SET/RESET pair with an SR flip-flop with priority on Reset. Re-compile and re-download to the PLC. -
Verify with a test program. Load a short 5-block test program that issues one M30 and one M-code (e.g. M08 coolant on, M09 coolant off) into AUTO mode. Run it, press Cycle Stop in the middle, and confirm
DB21.DBX7.0pulses andM66.2clears within 1 second. - Verify on the production program. Re-run the original part program that triggered the fault and execute it three times end-to-end with Cycle Stop exercised at multiple block positions. If the fault does not return, release the machine. If the fault returns, escalate to a Siemens service request with the captured service display screenshots.
7. PLC Ladder Reference – Cleaned-Up Cycle Start/Stop Latch
The pattern below is a small drop-in replacement for the FB250 latching that is robust against the most common edge conditions. The principle is: use a priority-reset SR flip-flop on M66.2; clear the NC stop request DB21.DBX7.3 only after the NCK has acknowledged (DB21.DBX7.0); issue DB21.DBX319.0 as a one-shot on the rising edge of M66.2; and use a state flag (here M67.0) to debounce the cycle. The ladder is structured so that no SET coil can dominate a RESET coil.
// FB250 - Cycle Start / Stop state machine (ST)
FUNCTION_BLOCK FB250
VAR
StartEdge : BOOL; // rising edge of Cycle Start input I2.1
StopEdge : BOOL; // rising edge of Cycle Stop input I2.0
NC_Ready : BOOL; // DB10.DBX56.1
NC_Stop_Ack: BOOL; // DB21.DBX7.0 (NC stop acknowledged)
NC_Running : BOOL; // DB21.DBX35.0 (NC start active)
Wait_Aux : BOOL; // DB21.DBX35.1 (wait for aux function)
Auto_OK : BOOL; // AUTO mode, no alarms, spindle enable
M66_2 : BOOL; // NC Start Active, channel 1
M67_0 : BOOL; // cycle-running debounce
END_VAR
BEGIN
StartEdge := I2.1 AND NOT I2_1_old;
StopEdge := I2.0 AND NOT I2_0_old;
I2_1_old := I2.1;
I2_0_old := I2.0;
// Allow start only when NC is ready, AUTO is selected, no alarms,
// spindle/feed enables are present, and we are not already running.
Auto_OK := DB11.DBX0.0 AND NOT DB21.DBX36.6 // AUTO mode and no channel alarm
AND DB31.DBX1.7; // axis 1 feed enable
// Priority-Reset SR on the start marker.
IF (StopEdge OR NC_Stop_Ack) THEN
M66_2 := FALSE; // reset wins
ELSIF StartEdge AND Auto_OK AND NC_Ready THEN
M66_2 := TRUE; // set only if conditions met
END_IF;
// Issue NC start edge to the NCK only on the rising edge of M66.2.
M66_2_Rise := M66_2 AND NOT M66_2_Old;
M66_2_Old := M66_2;
DB21.DBX319.0 := M66_2_Rise; // NC start edge (1 PLC cycle)
// Hold the NC stop request to the NCK until it acknowledges.
// Always re-assert if the user is still holding the stop key.
IF (StopEdge OR I2.0) AND NOT NC_Stop_Ack THEN
DB21.DBX7.3 := TRUE; // NC stop from PLC
DB21.DBX7.4 := TRUE; // NC stop incl. spindle
ELSIF NC_Stop_Ack THEN
DB21.DBX7.3 := FALSE;
DB21.DBX7.4 := FALSE;
END_IF;
// Drop the running flag only after the NCK has stopped everything.
M67_0 := M66_2 AND NC_Running AND NOT Wait_Aux;
// Mirror to HMI for diagnostics.
HMI_Cycle_Active := M66_2;
HMI_Stop_Ack := NC_Stop_Ack;
END_FUNCTION_BLOCK
Key invariants of the above:
- The start marker
M66.2can be cleared either by an explicit stop edge from the operator or by the NCK stop acknowledgement. There is no path by which a stale set can survive a real stop. -
DB21.DBX7.3is re-asserted as long as the operator is holding the stop key, and dropped only after the NCK has acknowledged – matching the level-driven semantics of the NCK interface. -
DB21.DBX319.0is a strict one-cycle pulse on the rising edge of the start marker. It is never re-issued whileM66.2is held high, so the NCK cannot mis-interpret it as a second start.
8. Verification Checklist
| # | Test | Expected Result | Pass / Fail |
|---|---|---|---|
| 1 | Press Cycle Start in AUTO, no program selected. |
I2.1 rises, M66.2 stays 0 (no program/no start), no NC alarm. |
_________ |
| 2 | Press Cycle Start with a valid program in AUTO. |
DB21.DBX319.0 pulses, DB21.DBX35.0 rises, axes start. |
_________ |
| 3 | Press Cycle Stop during motion. |
DB21.DBX7.3 = 1, DB21.DBX7.0 pulses within 1 s, DB21.DBX35.0 drops, M66.2 clears, axes stop on contour. |
_________ |
| 4 | Press Cycle Stop with the operator holding the key for 5 s. | Stop is maintained, NCK stays in stop state, DBX7.2 = 1 at the end. |
_________ |
| 5 | Run the part program and press Stop at every block boundary. | Stop works on every press, no need to press Reset. | _________ |
| 6 | Force a long compressor block, run, press Stop. | Stop acknowledged within the look-ahead horizon (typically < 2 s for a 100-block look-ahead). | _________ |
| 7 | Issue an M08 / M09 sequence in the part program, press Stop while waiting for M-finish. | PLC sends M-finish within 200 ms, NCK acknowledges stop, no alarm 14011. | _________ |
| 8 | Cycle power, re-run the production program, exercise Stop 10 times. | Zero failed stop events. | _________ |
9. Related Alarm and Event Codes
| Alarm | Meaning | Connection to the stop fault |
|---|---|---|
| 10911 | Look-ahead buffer overflow | Compressor/long block; single-block escape works around it. |
| 10763 | Block buffer full | Same family; indicates the NCK cannot accept more blocks for interpolation. |
| 14011 | Channel not ready | Channel in an internal state; reset required. |
| 14007 | Program error | Program decoding error; check with the alarm log. |
| 26017 | ASUB not possible | An asynchronous subprogram cannot be started; can leave the interpreter in a stuck state. |
| 20150 | PLC sign-of-life failure (only on SL) | Can leave the channel with the start latch held. |
| 70000–70024 | Compile-cycle / OEM alarms | The G&L toolbox may emit OEM-specific alarms; check Diagnosis → Alarm Log → Details. |
10. Field-Engineer Notes and Caveats
- On Powerline 840D, the bit addresses in
DB21are stable across the SW 5.x and SW 6.x lines. A migration to SW 6.4 or later (or to Solution Line 840D sl) does not change the meaning ofDBX7.0/7.3/35.0/35.1/35.2, but it does change the access method (PROFINET/PROFIBUS-based PLC vs. the older MPI/PPI bridge) and the cycle time of the PLC, which can alter the debounce behaviour of the HMI key. - The G&L PT1800 and HBM480 ship with a custom PLC that wraps the standard Siemens 840D basic PLC plus the manufacturer toolbox. The toolbox may add additional interlocks (e.g. spindle at speed, axis positioned, gear stage confirmed) that are wired into the SET coil of
M66.2indirectly. After replacing the latching FB, review the OEM toolbox for any of its FBs that also write toM66.2– duplicate writers are a frequent cause of the fault returning after a “fix”. - The 840D PL is end-of-life at the component level (NCU hardware), but the interface and the fix philosophy still apply to the Solution Line NCU 710.1/710.2/710.3 generation. Refer to SINUMERIK 840D sl Operator Components and Service Documentation for the SL cross-reference.
- Do not attempt to force
DB21.DBX35.0from the PLC – it is a status bit, read-only from the PLC side. The PLC can only influence it indirectly by issuingDB21.DBX319.0/DB21.DBX7.3and resetting the channel. - When you cannot reproduce the fault on the bench, leave the PLC status monitor on
DB21.DBX7.0/7.3/35.0/35.1/35.2running on the HMI for a full shift. The intermittent nature almost always gives itself up within 8 hours of real production.
11. Frequently Asked Questions
What does it mean when DB21.DBX35.0 stays high after NC Stop?
DB21.DBX35.0 is the NCK-to-PLC status bit ‘NC start active’. If it does not clear when DB21.DBX7.3 is asserted, the NCK has not accepted the stop – the most common cause is a missed M/S/T-finish (check DB21.DBX35.1), a compressor/long-block look-ahead condition, or a PLC latch that re-asserts the start bit. Confirm DB21.DBX7.0 does not pulse; if it does not, the NCK is in a non-decodable state and the channel needs a reset.
Why does Single Block restore the NC Stop function?
Single Block reduces the look-ahead horizon to one block and forces the decoder to stop at the next block boundary. That breaks the chain of decoder-internal state (compressor state, ASUB linkage, modal subprogram nesting) that was preventing the NCK from acknowledging the stop request. The stop works after SBL because the NCK is now at a clean decoder rest state where it can insert the stop ramp.
Is the Cycle Stop bit edge-triggered or level-triggered on the 840D?
The PLC→NCK signal DB21.DBX7.3 is level-triggered: the NCK executes the stop as long as the bit is high. The PLC typically holds the bit until DB21.DBX7.0 (NC stop acknowledged) pulses, then drops it. The PLC→NCK signal DB21.DBX319.0 (NC start), in contrast, is edge-triggered: it must be pulsed for exactly one PLC cycle on the rising edge of the operator’s start key.
Which Siemens manual documents the DB21 interface signals?
The canonical document is the List Manual – SINUMERIK 840D sl/840Di sl/840D/840Di/802D sl, NC variables and interface signals (Siemens order number 6FC5297–…AD, also distributed through the Siemens Industry Online Support as the List Manual entry). It contains the bit-by-bit description of DB21.DBX7.0 through DBX7.7 and DBX35.0 through DBX35.7, and the change/finish bits for M/S/T.
Can a 840D PL channel be reset without losing the operator’s offsets?
Yes. A channel-specific reset (DB21.DBX7.7 = 1 for one cycle) clears the start latch and any channel-internal alarm, and stops the running program, without touching the tool table, work offsets G54–G599, settable frames $P_UIFR, or the part-program pointer beyond the most recent BLOCKNO. A full NCK reset (NCU Reset button) is more invasive and re-initialises the NCK runtime; use it only if the channel reset does not clear the fault.
What is the difference between NC Stop and Feed Hold on a 840D?
NC Stop (DBX7.3/7.4) is a full channel stop that brings the spindle to a controlled stop and resets the start latch. Feed Hold is a feed-rate override / rapid override zero, not an NCK-level stop, and it does not clear DB21.DBX35.0. If the operator presses a key that you expect to stop the cycle but the spindle continues to spin, the wiring is almost certainly connected to a feed-hold input, not to the NC Stop input – verify the I-address and the HMI MCP map.