SINUMERIK: Running a Program at the Control
A SINUMERIK will not tell you it is idle because you never actually gave it a program. The Program Manager shows the file, the editor shows the code, the screen looks busy — and CYCLE START does nothing, because opening a program and selecting it for execution are two different acts with two different softkeys. This page walks the start sequence in the order the control expects it, then covers the function that earns its keep the day a tool breaks halfway through: Block Search, and the one search mode that will happily start you mid-part with no spindle running.
The Short Version
Four steps, in this order. Each one has its own failure message if you skip it, and those messages are collected at the bottom of this page.
• Machine ready. Siemens lists three preconditions before executing a program: the measuring system of the control is referenced with the machine, the necessary tool offsets and work offsets have been entered, and the safety interlocks implemented by the machine manufacturer are active.
• Reference the axes. An axis with an incremental measuring system must be referenced after power-on; an absolute measuring system does not.
• Select the program. Program Manager, pick the storage location, cursor on the program, Select softkey. The control switches you to the Machine operating area automatically when the selection succeeds — that switch is your confirmation.
• Press CYCLE START. Once the control is in AUTO you can start the selected program from any operating area.
Which Operating Mode Actually Runs a Program
SINUMERIK Operate splits the control into operating areas (Machine, Parameter, Program, Program Manager, Diagnosis, Startup) and, inside the Machine area, three operating modes. The modes are what the keys on the machine control panel select. Only one of the three executes a stored program.
| Mode | What it is for | Runs a program? |
|---|---|---|
| The three operating modes — one key each on the machine control panel | ||
| JOG | Preparatory work: reference the axes, measure tools, measure the workpiece, define the work offsets the program will use, traverse axes during an interruption, position axes | No |
| MDA / MDI | Enter and execute G-code commands non-modally to set up the machine or perform a single action — a tool change, a face mill, a pre-position | Blocks you type into the MDI buffer, not a stored program |
| AUTO | Automatic mode — execute a program completely or partially | Yes |
| The sub-modes that hang off them | ||
| REF POINT | Synchronize the control with the machine by approaching the reference point. Reached from JOG | No |
| REPOS | Reposition back to a defined position after you manually moved off the contour | No — but it is how you get back to one |
| TEACH IN | Create, edit and execute part programs by approaching and saving positions | Programs you teach, not ones you wrote at a CAM seat |
| Single block | Execute the selected program block by block. A function within AUTO, not a separate mode | Yes — one block per CYCLE START |
MDA is not a scratchpad you leave things in. It is a buffer. You type G-code or a standard cycle into the MDI editor and press CYCLE START and the control executes those blocks. You can load an existing program into the MDI buffer from the Program Manager, and you can save what you typed back out to the Program Manager with the Save MDI softkey — but until you do, it is transient. The Delete blocks softkey clears the window. This is the mode for “send the spindle to the tool change position and load T7”, not for running a part.
On the naming. Siemens uses MDA and MDI for the same thing and does not fully commit either way: the operating manual’s mode overview calls it MDI mode (Manual Data Input) and the chapter that covers it is headed MDA. The status display shows MDA. The key on most machine control panels is labelled MDA. Treat them as one mode.
Where the generations differ. On 840D sl and 828D (SINUMERIK Operate V4.8 SP3, 2018) the manual calls REF POINT and REPOS operating modes in their own right, and says TEACH IN is available in both AUTO and MDI. On SINUMERIK ONE (V6.23, 2024) the same manual section calls REF POINT and REPOS functions available in JOG, and lists TEACH IN under MDI only. The keys on the panel are the same; the vocabulary in the documentation moved. If you are reading an older manual against a newer machine, that is the drift you are seeing.
One structural point worth knowing on multi-channel machines: every channel behaves like an independent NC and processes at most one part program, but all channels in a mode group share one operating mode — they can never be in different modes at the same time. Pressing CHANNEL to switch channels is therefore also an implicit mode switch.
Selecting a Program Is Not the Same as Opening It
The Program Manager reaches every storage location the machine has: NC (the NC working memory), Local drive, network drives, USB drives, FTP drives and V24. Each gets its own horizontal softkey. Two of those softkeys are conditional: USB can only be operated when a stick is actually inserted in the operator panel’s front interface, and Local drive only appears if the machine carries the “Additional HMI user memory on NCU memory card” option.
To make a program the selected program: Program Manager → storage location → cursor on the directory → INPUT or right-cursor to open it → cursor on the program → Select softkey. When the selection succeeds, the control changes over to the Machine operating area on its own. In the Program Manager listing, selected (active) programs are identified with a green icon — that green icon is the fastest way to answer “is the thing I am looking at the thing that will run?”
What that means for the program you have open in the editor: nothing. Opening a file from the Program Manager with INPUT or a double-click loads it into the Program operating area for editing and simulation. It does not select it. The simulation you just ran is not evidence that the control will execute that file on the next CYCLE START; it is evidence that the file simulates. There is a bridge — the NC Execute softkey, offered from the program-correction editor, switches back to the Machine operating area and selects AUTO — but the ordinary editor path does not select anything.
⚠ Do not execute from the USB stick. Siemens marks this as a NOTICE, not a note: direct execution or simulation from a USB flash drive is not recommended, because there is no protection against contact problems, the stick falling out, breakage through knocking, or unintentional removal during operation — and disconnecting it during operation stops the machining and damages the workpiece. Copy to NC memory or the local drive and run from there. Programs on an FTP drive cannot be selected for execution at all; the manual is explicit that you cannot select a program directly on the FTP drive and change to execution in the Machine operating area.
If nothing is selected, there is no dedicated “you forgot to pick a program” alarm to hunt for. The tell is on the status display: the second line shows the program path and program name, and the third line shows the channel status. An empty program name and a channel sitting in Reset is the control telling you it has nothing loaded. Every procedure in the operating manual that starts a program opens with the same precondition sentence — a program must be selected for execution in AUTO mode — because the control genuinely has nothing to do without it.
Block Search: Starting Somewhere Other Than the Top
This is SINUMERIK’s answer to “the insert blew up in the third pocket and I do not want to re-cut the first two.” Block Search runs the program forward internally to a target you nominate, then hands you a machine that is in the state that block expects, without having traversed the axes to get there.
Three preconditions, all of them enforced: you have selected the desired program, the control is in the reset state, and the desired search mode is selected. Then Block search softkey, define the target, Start search.
There are four ways to name the target:
| Target definition | How | When |
|---|---|---|
| Cursor position | Place the cursor on a program block in the selected program and press Start search | The everyday case, main program only |
| Text search | Find text softkey, choose direction, enter the text. Press Start search again if the first hit is not the block you meant | Jumping to a named operation or a comment marker |
| Interruption point | Interrupt point softkey loads it. Higher level / Lower level move between program levels if the interruption was inside a subprogram | After a CYCLE STOP, RESET or power-off — the control saved the coordinates. Only available if an interruption point exists |
| Search pointer | One line per program level; level 1 is the main program, the rest are subprograms. Enter the target on the line matching the level it lives in | Reaching a point inside a subprogram when there is no interruption point. On 828D this needs the “Extended operator functions” option |
The search-pointer rule that trips people: the target specification must be unique. If a subprogram is called from two different places in the main program, entering a target only at level 2 is ambiguous — you must also specify a target at level 1 to say which call you mean. The P: field takes the pass number when a subprogram runs several times.
Searches can be cascaded: from the “search target found” state you can start another search, arbitrarily many times. From a stopped program run, a further cascaded search is only possible once the search target has been found.
Two CYCLE STARTs, not one
When the search reports the target found, you press CYCLE START twice, and the two presses do different things:
Block search -> target found
CYCLE START 1st outputs the auxiliary functions collected during the search
control goes to Stop state (alarm 10208 is shown here)
[optional] Overstore: add M functions, tool, feed, speed, positions
[optional] JOG + REPOS: hand-traverse to the setpoint instead of
letting the program approach it
CYCLE START 2nd execution continues from the target
The pause between them is not an inconvenience, it is the feature. Overstore executes technological parameters — auxiliary functions, feed, spindle speed, programmable instructions — as if they were in the part program, but valid for one run only; the stored program is not modified. Siemens documents this as the way to bring the machine into a state that the search did not produce but the continuation needs. If the search left you without coolant on, this is where you turn it on.
The Search Mode Is the Whole Ballgame
The target says where. The search mode says what the control reconstructs on the way there, and it is set separately, in the “Search Mode” window (Block search → Block search mode). It is one setting, machine-wide, and it survives a power cycle: the manual states the set mode is retained when the control is shut down, and the current mode is displayed in the title row when you next activate Search. Somebody else’s choice from last week is still in force.
| Search mode | What it does | Use it when |
|---|---|---|
| With calculation — without approach | Calculates through to the target. The end position of the target block, or the next programmed position, is then approached using the interpolation type valid in the target block. Only the axes programmed in the target block move | You want to reach a specific position in any circumstance, e.g. a tool change position |
| With calculation — with approach | Calculates through to the target, then finds the end position of the block before the target with CYCLE START. From there the program runs exactly as in normal execution | You want to get back on the contour. The normal choice for resuming a part |
| With calculation — skip extcall | Same, but EXTCALL programs are skipped to speed the search up | Long external programs — with a caveat, below |
| Without calculation | No calculation is performed at all. The control skips straight to the target block. All settings required for execution have to be programmed from the target block — feedrate, spindle speed, and the rest | A quick search in the main program, when you know the state is already right |
| With program test (SERUPRO) | Multi-channel block search with calculation. Every block is calculated, no axis motion whatsoever is executed, but all auxiliary functions are output. The NC runs the program in program-test mode, stops at the start of the target block, and deselects program test. Coordinates parallel events such as synchronized actions on single-channel systems too | The most faithful reconstruction, and on SINUMERIK ONE the milling manual marks the “without approach” variant as recommended |
⚠ Without calculation is the one that hurts. The other modes walk the program and accumulate state. This one does not: it skips the calculation up to the target block, which means the tool offset, the work offset, the plane, the feedrate, the spindle speed and the M-functions that were established above your target block were never established at all. Siemens puts the consequence in the mode’s own description — all settings required for execution have to be programmed from the target block. Start a mid-part block from a program whose T-call, G54 and M3 S live in the header, and the control will run that block with whatever happens to be modal right now. It is fast for exactly one reason: it does no work on your behalf.
Two more places the calculation can silently come up short. Skip extcall speeds the search by ignoring EXTCALL programs, and the manual attaches a NOTICE: important information such as modal functions located in the EXTCALL program is not taken into account, and after the target is found the program may not be executable at all — such information should be programmed in the main program. And on machines with a swivel head or table: if a rotary axis is traversed between a CYCLE800 call and the target block, problems will occur when calculating the block search. Where you can, put the search target before that rotary motion.
⚠ Risk of collision. Siemens attaches this NOTICE to Block Search itself, in every generation of the manual: pay attention to a collision-free start position and appropriate active tools and other technological values; if necessary, manually approach a collision-free start position, and select the target block considering the selected block search variant. Separately: it must be ensured during a block search that the correct tool is in the working position before execution commences. The search reconstructs the control’s state, not the spindle’s contents.
One exception to that last point, and it is a real convenience: in ShopMill machining-step programs, the tool change has been automated — any tool change that is required is performed automatically with this type of block search. Plain G-code programs get no such help. Two other ShopMill notes from the same manual: with with calculation – with approach, the search in a ShopMill program is only performed on G-code blocks; and the search variant used for ShopMill machining-step programs can be fixed by the machine builder via MD 51024, for the single-channel ShopMill view. There is also a dedicated block search for a position pattern, where you nominate the starting hole — and in ShopMill programs, the technology to start with as well. That one needs the ShopMill/ShopTurn option.
REPOS: Getting Back to the Contour
Block Search solves “start somewhere else.” REPOS solves the other half: you stopped, you jogged away to look at the part or change an insert, and now the tool is nowhere near where the program left off.
When you interrupt a program in AUTO with CYCLE STOP, the control saves the coordinates of the interrupt position. Anything you then traverse in manual mode is tracked as the REPOS offset and displayed in the actual-value window; you can show it in either the machine coordinate system or the workpiece coordinate system. Pressing REPOS, selecting the axes one at a time and pressing the direction keys moves them back to the interrupt position. The interrupt position itself is not passed — the control blocks it — and feed and rapid override are in effect the whole way.
⚠ Risk of collision. When repositioning, the axes move at the programmed feedrate with linear interpolation — in a straight line from where they are now to the interrupt point. Move the axes to a safe position first. And note what happens if you skip REPOS entirely: if you jog the axes after an interruption and then simply switch back to automatic and start, the control traverses the axes in straight lines back to the point of interruption by itself. Choosing not to use REPOS does not mean the move does not happen; it means it happens without you choosing the path.
REPOS also composes with Block Search. After a search finds its target, if you would rather not let the program approach the setpoint automatically, you can change to JOG for the REPOS function and traverse there by hand before the second CYCLE START.
Two housekeeping points on interruptions. CYCLE STOP halts immediately without finishing the current block, and the next start resumes at the same location. RESET cancels: the next start begins from the beginning of the program. And if you need to fix the program while it is interrupted, the correction rules are state-dependent — in Stop state you may only change lines that have not been executed yet; in Reset state you may change any line.
Proving Out: Program Control
The Prog. ctrl. softkey, available in AUTO and MDA, opens a window of checkboxes that change how the selected program executes without changing the program. Whichever ones you tick appear as abbreviations in the status display, which is also how you catch the ones somebody left on.
| Abbrev. | Function | What it actually does |
|---|---|---|
PRT | No axis motion | The program starts and executes with auxiliary function outputs and dwell times, but the axes do not traverse. Checks programmed positions and M-function output |
DRY | Dry run feedrate | Replaces the velocities programmed with G1, G2, G3, CIP and CT with the dry run feedrate — and applies instead of a programmed revolutional feedrate too. Value is set under Settings for Automatic Operation |
RG0 | Reduced rapid traverse | Rapid traverse is reduced to the percentage entered in RG0. Gotcha: RG0 has no effect if you leave it at the default 100 % |
M01 | Programmed stop 1 | Execution stops at every block containing M01. CYCLE START continues |
M101 | Programmed stop 2 | Stops at every block where “cycle end” is programmed. The display label can be changed by the machine builder |
SB | Single block variant | Three settings, chosen with SELECT — see below |
SKP | Skip blocks | Blocks marked / or /x are skipped. The number of skip levels is a machine datum; on 828D, more than two levels needs the “Extended operator functions” option |
DRF | Handwheel offset | Additional offset via the electronic handwheel during automatic machining. On 828D this needs the “Extended operator functions” option |
MRD | Measurement result display | Shows the measurement-results screen during machining |
CST | Configured stop | Stops at points you defined as stop-relevant before the program started — G0/G1 transitions, WAIT markers, cycle calls. Present on 840D sl and SINUMERIK ONE |
GCC | Jobshop conversion | A jobshop (ShopMill/ShopTurn) program is converted to a G-code program on execution. Listed on 840D sl / 828D |
⚠ Do not machine with DRY active. Siemens’ own caution: do not machine any workpieces when dry run feedrate is active, because the altered feedrates might cause the permissible tool cutting rates to be exceeded and the workpiece or machine tool could be damaged. DRY is a proving aid, and it stays on until you untick it — check the status display before the first real cut.
Single block has three depths, and the difference matters when your program is mostly cycles:
| Setting | Stops after |
|---|---|
SB1 Single block, coarse | Every machine-function block — but not inside cycles |
SB2 Data block | Every block, including data blocks — still not inside cycles |
SB3 Single block, fine | Every machine-function block, including inside cycles |
Pick the variant in the SBL field under Program Control, then press SINGLE BLOCK and CYCLE START. Between blocks the channel status line reads Stop: Block in single block ended. Press SINGLE BLOCK again to deselect it and the next CYCLE START runs to the end. If you are running a canned-cycle-heavy program in SB1 and it appears to blow through an entire pocketing cycle on one press, that is SB1 doing exactly what it says — move to SB3.
Before any of that, there is simulation: opening a program in the Program operating area and pressing Simulation calculates the whole program and displays the result graphically with no axis motion. Two things to know — the machine-panel override rotary switch does not affect it (change the simulation feedrate under Program control, range 0–120 %), and switching to another operating area exits the simulation, so restarting it starts again from the beginning of the program. Simultaneous recording, which draws the same picture while the machine is actually cutting, is a separate option (“Simultaneous recording (real-time simulation)”), as is the 3D view (“3D simulation of the finished part”).
Alarms While Trying to Start
The curated set — the ones that stop you before the first chip, rather than the full alarm list. Every one of these carries the same number and text on SINUMERIK ONE (V6.23) and on 840D sl / 828D (V4.8 SP3); the page numbers differ, the alarms do not. Placeholders in the alarm text are shown as Siemens writes them: %1 is the channel number and so on.
| Message | Number | What it means and what to do |
|---|---|---|
| The machine is not ready for a start | ||
| Emergency stop | 3000 | The EMERGENCY STOP request is applied to the NCK/PLC interface. Reaction includes NC start disable in the channel. Remove the cause, acknowledge via the PLC interface, then RESET in all channels of the mode group. |
| Channel %1: NC start without reference point | 10203 | NC start was pressed in MDI or AUTOMATIC and at least one axis that needs referencing has not reached its reference point. Reference the axes. Whether referencing is required before NC start at all is set by the builder in MD20700 $MC_REFP_NC_START_LOCK. |
| Channel %1: Axis %2 not referenced | 17810 | A JOG-mode function (fixed-point approach, JOG to position, JOG in circles) was activated on an unreferenced axis. Reference it. |
| Channel %1: Program %2 cannot be started due to global start disable. | 16956 | The program is selected but a global start disable is set. Delete the start disable and restart. Only displayed if the builder enabled it via MD11411 $MN_ENABLE_ALARM_MASK bit 6. |
| The control will not accept the action you just took | ||
| Channel %1: Program control: action ... only possible in reset state | 16912 | Exactly what Block Search and program selection demand. Siemens’ own example: program selection through the HMI can only be performed in Reset state. Press RESET, or wait for processing to finish. |
| Channel %1: Action ... not allowed in current mode | 16909 | A different operating mode must be active for the function you tried. Check the mode. This is the one you get pressing a Machine-area function from the wrong mode. |
| Channel %1: Program control: action ... not allowed in the current state, action ... active | 16925 | Rejected because a mode or sub-mode change is in progress. The manual’s example is literally pressing Start during the switch from AUTO to MDI, before the NCK confirmed the new mode. Repeat the action. |
| Channel %1: Mode change is not allowed | 16911 | You are in Overstore. Exit Overstore before changing modes. |
| Channel %1: Block %2 program %3 not existing or will be edited | 14011 | A subprogram call was cancelled because the subprogram could not be opened — not in part program memory, not in the search path (_N_SPF_DIR or the cycle directories), not released or currently being edited, or a bad absolute path. The “being edited” branch is the one that catches people: close the subprogram in the editor. |
| After a block search | ||
| Channel %1: Continue program with NC start | 10208 | Not a fault. After a block search with calculation the control is in the desired state; press NC Start, or change the state first with Overstore or JOG. This is the alarm sitting on screen between your two CYCLE STARTs. |
| Channel %1: Internal NC stop after block search | 10209 | Internal alarm that only triggers an NC Stop reaction, raised when the last action block is loaded in the main run or when 10208 was suppressed. Behaviour depends on MD11450 $MN_SEARCH_RUN_MODE. |
| Channel %1: Search run in a protected program section. | 16951 | Your search target lies inside a section protected with IPTRLOCK/IPTRUNLOCK (or implicitly via MD22680 $MC_AUTO_IPTR_LOCK). Reaction includes NC start disable. Pick a target outside the protected section. |
| Channel %1: Search run with hold block | 16950 | Informational. The search did not land on the interruption block but on a “hold block” shortly before it, to keep you out of a critical program area such as gear hobbing. Intended behaviour. |
Two navigation notes for anything not in this table. NC alarms live in 000000–009999 (general), 010000–019999 (channel) and 020000–029999 (axis/spindle); cycle alarms in 060000–064999; SINUMERIK Operate’s own alarms in 150000–159999. And if the number you are staring at starts with a 7, it is not Siemens’ — PLC alarms in the range 500000–999999 are configured and described by the machine OEM, so 700000–799999 is your builder’s manual, not this one. Note also that alarm ranges 120000–129999 and 130000–139999 are reserved for HMI-Advanced and HMI-Advanced OEM — the older HMI that predates SINUMERIK Operate. Everything described on this page is Operate; if your screen does not look like it, check which HMI you are on before following any softkey path here.
Habits That Prevent Most of This
Check the search mode before every block search, not after. It persists across a shutdown and it is displayed in the title row of the Search window for exactly that reason. “Without calculation” left on from someone else’s quick look is the single most expensive setting on the control.
Trust the green icon, not the screen. The program you are looking at in the editor is not necessarily the program that will run. The Program Manager marks the selected one green, and a successful Select throws you into the Machine operating area — if it did not, it did not select.
Read the status display before you start. Three lines tell you almost everything: active mode, program path and name, and channel status plus the active program controls. DRY or PRT still ticked from proving out the last job is a status-display problem, not a mystery.
Use the pause between the two CYCLE STARTs. After a block search that is your one clean opportunity to fix what the search could not reconstruct — coolant, a missing M-function, a spindle that should be turning — using Overstore, without editing the program.
Run part one in SB3, not SB1. If the program is cycle-heavy, SB1 will not stop inside the cycle where the interesting motion is. SB3 costs a few extra presses and shows you the moves that actually cut.
Decide before you jog. The moment you stop a program, decide whether you are resuming it or restarting it. Resuming means CYCLE STOP, jog if you must, then REPOS back. Restarting means RESET. Drifting between the two — jogging away from a stopped program and then just pressing start — is how you get an unplanned straight-line move back to the interruption point.
See Also
Sinumerik 828D Alarms & Diagnostics for looking up any alarm number and the number-range map, SINUMERIK Family Guide (828D / 840D sl / ONE) to work out which control and software version you are sitting at, and Sinumerik Programming Basics for the language the programs are written in. If your machine swivels, Swivel Plane (CYCLE800) covers the cycle that makes block search calculation fragile across rotary moves. Running Fanuc-format code on a Siemens is Sinumerik ISO Mode. For the same operator workflow on a Heidenhain — and the sharp contrast between Block Scan and SINUMERIK’s search modes — see Heidenhain: Running a Program at the Control.
References
- Siemens AG, SINUMERIK ONE — Universal, Operating Manual, CNC system software V6.23, 01/2024, A5E48384812B AG — modes of operation (5.3), MDA (5.9), machining the workpiece (7.1–7.9), settings for automatic mode (7.16), simulating machining (8), managing programs (13).
- Siemens AG, SINUMERIK ONE — Milling, Application Manual, CNC system software V6.23, 01/2024, A5E48384797B AG — block search including ShopMill behaviour and block search for position pattern (7.7).
- Siemens AG, SINUMERIK 840D sl / 828D — Universal, Operating Manual, CNC system software V4.8 SP3, 08/2018, 6FC5398-6AP41-0BA0 — modes of operation (4.3), machining the workpiece (6.1–6.9), 828D option gating on search pointer, skip levels and handwheel offset.
- Siemens AG, SINUMERIK 840D sl — Universal, Operating Manual, CNC system software V4.92, 06/2019, A5E44903533B AB — block search modes and program control including CST and MRD.
- Siemens AG, SINUMERIK ONE, SINAMICS S120 — Alarms, Diagnostics Manual, CNC software V6.23, 01/2024, A5E48124459B AJ — alarm number ranges (3.2) and alarms 3000, 10203, 10208, 10209, 14011, 16909, 16911, 16912, 16925, 16950, 16951, 16956, 17810.
- Siemens AG, SINUMERIK 828D, SINAMICS S120 — Alarms, Diagnostics Manual, CNC software V4.8 SP3, 08/2018, 6FC5398-8BP40-6BA1 — same alarm numbers and texts verified for the 828D generation.
Have a question or want to contribute?
Contact us with corrections, additions, or topics you'd like covered.
Get in Touch