Siemens Program Start Default Setting (MD20112) Configuration
Configure the Siemens MD20112 start mask parameter to prevent tool crash. Learn how to manage G-code reset behavior and avoid Alarm 10870 and Alarm 14710.
Introduction
If a CNC machine starts and automatically loads a default zero offset or legacy tool length that does not correspond to the active physical setup, the machine entirely loses its spatial orientation. Deprived of this accurate kinematic tracking, the spindle may violently plunge directly into a workholding vise jaw, collide with a rigid compensating chuck, strike a heavy fixture clamp, or crash into the opposing mechanics of a double turret during multi-channel machining. This catastrophic loss of dimensioning inevitably results in a severe hard collision, generates a completely destroyed scrap part, and forces the machine into a halted alarm code state (such as Alarm 14710 for an initialization sequence error). To prevent these hazards, programmers must configure the machine data parameters to govern how settings are initialized when a part program starts.
Technical Summary
| Field | Specification |
|---|---|
| Command Code | MD20112 $MC_START_MODE_MASK |
| Modal Group / Type | Channel-specific machine data parameter (UDWORD) |
| Brands | Siemens |
| Critical Parameters | MD20112 $MC_START_MODE_MASK, Bits 4...18 |
| Main Constraint | Initial movement must be programmed in absolute coordinates (G90) if tool length or frames are automatically applied at start. A transverse geometry axis must be pre-defined via MD20100 $MC_DIAMETER_AX_DEF if G96 constant cutting velocity is enabled via start mask reset positions. |
Quick Read
- Set Start Mask Value: Set the channel-specific machine data
MD20112 $MC_START_MODE_MASKbetween0and0x7FFFFto define G-code groups, tool offsets, and kinematic transformations at program start. - Configure Bit Range: Toggle bits 4 through 17 to determine if a function adopts its reset position (
0) or retains its current state (1) when the part program begins. - Enforce Absolute Movements: Program a mandatory
G90command in the very first motion block of the part program ifMD20112is configured to auto-activate tool offsets or work offsets. - Define Transverse Axis: Map the transverse axis in machine data
MD20100 $MC_DIAMETER_AX_DEFif constant cutting speed (G96/G961/G962) is activated at startup, avoiding Alarm 10870. - Validate Version Datatype: Verify if the system uses
DWORD(older versions) orUDWORD(newer SINUMERIK ONE and 828D) when writing to parameterMD20112. - Decouple Start and Reset: Keep reset state settings separate via
MD20110 $MC_RESET_MODE_MASKto maintain manual JOG values during stops but flush them on a new cycle start.
Basic Concepts
Machine initialization settings at program start dictate baseline states, including active planes, work offsets, and kinematic transformations, that take effect immediately upon cycle start. In Siemens SINUMERIK controls, the program start behavior is managed through the channel-specific parameter MD20112 $MC_START_MODE_MASK. This parameter acts as a bitmask, evaluating every time a part program starts to establish the initial control settings.
Understanding the machine data structure is essential for proper configuration, which is detailed further in MD Machine Data Structure. By setting specific bits, the control can be configured to either adopt default reset states or carry over settings from the manual JOG mode. For example, bits 4 through 17 define whether specific G-code groups and tool length compensations retain their current settings or revert to pre-defined reset configurations.
The control also supports setting data that works in tandem with machine data, as described in SD Setting Data Structure. During reset and start sequences, the system evaluates the combined state of MD20112 and other reset registers. If these values are mismanaged, the machine loses track of its reference frame, causing offsets to be applied incorrectly.
Command Structure
The parameter MD20112 $MC_START_MODE_MASK is a channel-specific machine data setting. It evaluates every time the part program starts to establish the baseline coordinate and kinematic configurations.
This setting is defined as a hexadecimal bitmask. The value range is 0 to 0x7FFFF, with a typical factory default of 0x400.
Syntax
; Channel data selection CHANDATA(1)
; Set start mode mask to hexadecimal 400 $MC_START_MODE_MASK = 'H400'
Parameters
| Parameter / Bit | Description | Value Range |
|---|---|---|
MD20112 $MC_START_MODE_MASK | Defines initial settings of the control at program start. | 0 to 0x7FFFF (Hexadecimal) |
Bits 4...18 | Bitmask where bits 4-17 define reset position/current setting retention for G-code groups and tool offsets. Bit 18 defines reference axis retention for constant cutting speed. | 0 (adopt reset position) or 1 (retain current setting) |
Brand Applications
Siemens
The practical programming effect of the Siemens Program Start Default Setting (MD20112 $MC_START_MODE_MASK) is the ability to dictate the absolute kinematic foundation of the machine at the exact millisecond the operator presses Cycle Start. By configuring this bitmask, programmers command the control to either cleanly inherit the active frames, active tool length compensations, and G-code groups from the previous manual JOG state, or force a strict, baseline initialization. Programmers and operators must watch the first motion block of their part program with extreme vigilance if MD20112 is parameterized to automatically activate a tool length compensation or a settable work offset (like G54). Safe use strictly dictates that the very first programming of the physical axes must use absolute coordinates (G90). If an incremental move is programmed while an unexpected tool length or frame offset is suddenly applied by the start mask, the tool will plunge unpredictably based on the previous offset state rather than the workpiece zero.
Siemens exhibits several distinct behaviors regarding program start configurations that clearly distinguish this brand from other control systems. First, Siemens strictly decouples the "Reset" state from the "Start" state. Rather than forcing a single, global initialization parameter, Siemens utilizes MD20110 ($MC_RESET_MODE_MASK) to define what happens when a program is aborted, and independently uses MD20112 ($MC_START_MODE_MASK) to define what happens when the cycle is actually initiated, allowing the machine to safely hold manual measurement data during a stop but cleanly flush it upon a new start.
Second, Siemens provides a dedicated, parallel start mask exclusively for the SERUPRO (Search Run via Program Test) feature. By utilizing MD22620 ($MC_START_MODE_MASK_PRT), developers can command the control to completely bypass the standard settings specifically during a block search, ensuring the machine safely approaches the contour without triggering live-machining offsets.
Third, Siemens natively integrates preemptive initialization error checking; if the start mask attempts to load an invalid kinematic state (such as constant surface speed without a defined transverse axis), the control actively intercepts the start and generates an initialization alarm before any physical machine motion occurs, preventing crashes before they begin.
Brand Comparison
| System Series / Mode | Data Classification | Reset & Start Behavior |
|---|---|---|
| Newer SINUMERIK ONE / 828D (Software Version >= 5) | UDWORD (Unsigned Double Word) | G-code reset behavior is managed via MD20152 $MC_GCODE_RESET_MODE working in tandem with start mask MD20112. |
| Legacy SINUMERIK 840D / 810D (Software Version < 5) | DWORD (Double Word) | G-code reset behavior relies purely on MD20110 $MC_RESET_MODE_MASK, lacking the parallel MD20152 parameter. |
| SERUPRO Block Search Mode (All Systems) | UDWORD / DWORD (Matches system default) | Bypasses normal program start settings using parallel start mask MD22620 $MC_START_MODE_MASK_PRT enabled via MD22621. |
Technical Analysis
The decoupling of reset and start states in Siemens SINUMERIK controls is a fundamental architectural choice. Unlike controls that use a single global reset state, Siemens manages the system shutdown and startup separately. When a program is aborted, the control evaluates MD20110 $MC_RESET_MODE_MASK, which can be configured to retain manual jog measurements or active offset frames. Upon the next cycle start, however, MD20112 $MC_START_MODE_MASK is evaluated, allowing the system to flush temporary offset data and initialize with a clean kinematic state.
Version differences also affect how G-code states are reset. In older systems (software version 4 and below), the reset state is controlled entirely by MD20110. In version 5 and newer, the parameter MD20152 $MC_GCODE_RESET_MODE was introduced to handle the G-code group reset behavior separately. This works in tandem with the program start mask to prevent conflicts where a start setting tries to inherit a state that has been cleared or altered during a reset.
The introduction of a parallel start mask for the SERUPRO feature resolves the risk of collision during program test or block search. By using MD22620 $MC_START_MODE_MASK_PRT (enabled via MD22621 $MC_ENABLE_START_MODE_MASK_PRT), the control uses a distinct set of initialization parameters specifically during search runs. This prevents the loading of standard machining offsets that could cause the tool to deviate from its safe search path.
Program Examples
The following example demonstrates how to set the channel-specific machine data parameter for program start default setting in a Siemens controller. Setting these values directly in a part program is common when resetting specific kinematic configurations for a channel. For more details on configuring axis properties, refer to MD10000 Siemens Axis Names.
1. Configuration of Start Mode Mask to Reset Settings
This code selects the active channel and resets the start mode mask. This configuration disables automatic activation of tool or frame offsets at program start, forcing the operator to program them explicitly.
; Select Channel 1 Data Area
CHANDATA(1)
; Reset start mode mask to 0 (default reset positions are adopted)
$MC_START_MODE_MASK = 0
2. Configuration of Start Mode Mask to Retain Settings
This code selects the active channel and sets the start mode mask to the typical hexadecimal value 400, which enables retention of specific active frames and G-code states at cycle start.
; Select Channel 1 Data Area
CHANDATA(1)
; Set start mode mask to hexadecimal 400
$MC_START_MODE_MASK = 'H400'
Dry Run Execution Procedure
Before running a new part program that relies on start mask default settings, performing a dry run ensures that offsets are applied correctly and no unexpected motion occurs. Follow these steps:
- Verify Machine State: Manually clear any workholding areas, ensuring there is no contact with the vise jaw, chuck, or clamp.
- Load MDA Mode: Switch the controller mode to Manual Data Automatic (MDA).
- Input Configuration Code: Enter the
CHANDATA(1)and$MC_START_MODE_MASK = 'H400'commands. - Execute the Block: Press Cycle Start. The control will update the channel parameter without physical axis movement.
- Switch to JOG: Verify on the HMI status screen that the active tool offset and coordinate frame match the expected reset positions.
Error Analysis
| Brand & Alarm Code | Trigger Condition | Operator Symptom | Root Cause / Practical Resolution |
|---|---|---|---|
| Siemens Alarm 14710 Initialization sequence error | An initialization block generated after a part program start contains incorrect machine data settings (dependent on MD20112). | Program execution is halted immediately at Cycle Start; an initialization error message is displayed on the screen. | The start mask attempts to load an invalid kinematic configuration. Verify that the machine data settings matching the start mask are valid, or configure MD20112 $MC_START_MODE_MASK to adopt default reset positions. |
| Siemens Alarm 10870 Facing axis not defined | Constant cutting speed (G96/G961/G962) is activated at program start, but no transverse axis has been defined. | NC Start is blocked, the machine refuses to execute motion, and the facing axis alarm code is shown. | The transverse geometry axis is missing. Define the transverse axis in parameter MD20100 $MC_DIAMETER_AX_DEF or modify the start settings in MD20112 to deactivate G96 at startup. |
| Siemens Alarm 14710 (Kinematic Option) Initialization sequence error | The start mask attempts to load active frames or kinematic transformations that are invalid for the channel. | Catastrophic loss of dimensioning is preempted; the controller halts program initialization before physical motion. | Incorrect configuration in the start mask. Change MD20112 $MC_START_MODE_MASK to 0 to prevent loading invalid frames, or verify channel kinematics. |
Application Note
A catastrophic hard collision, a completely destroyed scrap part, and a halted Alarm 14710 error state will occur if a program start mask automatically loads a default zero offset or tool length that does not correspond to the active setup. If the initial state mask is mismanaged, the spindle may violently plunge into a workholding vise jaw, collide with a rigid compensating chuck, strike a fixture clamp, or crash into the opposing mechanics of a double turret. Safe practice dictates that the first programmed axis movement must use absolute coordinates (G90) when MD20112 $MC_START_MODE_MASK is set to auto-activate tool length compensations or work offsets. If an incremental move is programmed while an unexpected offset is applied by the start mask, the tool will plunge unpredictably based on the previous offset state rather than the workpiece zero.
Related Command Network
- MD20110 $MC_RESET_MODE_MASK: Defines the basic control settings after system run-up or program Reset/End, working in tandem with the start mask settings.
- MD22620 $MC_START_MODE_MASK_PRT: Defines the start settings used during a SERUPRO block search to bypass standard start configurations.
- MD22621 $MC_ENABLE_START_MODE_MASK_PRT: Acts as a Boolean switch to enable or disable the parallel SERUPRO start mask.
- MD20152 $MC_GCODE_RESET_MODE: Manages the resetting of G-code groups in software version 5 and higher, supplementing the start and reset masks.
- MD20100 $MC_DIAMETER_AX_DEF: Defines the transverse axis required for constant cutting speed, preventing Alarm 10870 when G96 is activated at program start.
Conclusion
Configuring the program start default setting is a vital safeguard against kinematic disorientation on Siemens controllers. By decoupling start modes from reset modes and utilizing specialized settings for block searches, shops can maintain manual setup data while guaranteeing clean, predictable execution upon Cycle Start.
Frequently Asked Questions
How can I prevent the CNC spindle from plunging into a vise jaw when using a default start mask configuration?
Verify that the first programmed motion block in your part program uses absolute coordinates (G90) instead of incremental moves. This ensures that any tool length or work offset automatically loaded by the start mask is processed relative to the physical workpiece zero rather than executing an unpredictable incremental jump.
What action resolves Siemens Alarm 10870 when starting a program with constant cutting speed enabled?
Define the transverse geometry axis in parameter MD20100 $MC_DIAMETER_AX_DEF or modify the start mask in MD20112 so that G96 is not activated as a default reset position. This ensures the control has a valid radial reference axis to calculate constant surface speed.
Why does the Siemens control decouple the program start mask from the reset mode mask?
Decoupling allows the machine to retain manual measurement offsets during a mid-program reset (using MD20110) while ensuring that starting a new cycle (using MD20112) flushes legacy JOG data. Programmers should audit both parameters to ensure manual setup data does not persist into production runs.
Still not resolved?
Ask our AI assistant about this topic in natural language. Grounded in verified sources, no hallucinations.

- CNC CARE Co-Founder (May 2025 - Present)
- Mitsubishi Electric NC Sales & Service Section Manager (2008 - 2025)
- Reis CNC Service Engineer (2003 - 2008)
- Ören Kalıp CNC Mold Line Team Leader (1999 - 2002)
With over 25 years of experience working in all areas of the CNC machine industry, I continue my activities as a co-founder of CNC CARE, where we offer brand-independent consulting, engineering, and original spare parts services.
Related Articles
Other articles on this topic
G27 Reference Position Return Check: CNC Guide for Multi-Brand Systems
Master the CNC G27 reference position return check on Fanuc, Siemens, and Mitsubishi controls. Learn parameters like MD 34100 and fix Alarm 61816.
Siemens SINUMERIK G26 Upper Working Area & Spindle Speed Limit
Master the Siemens SINUMERIK G26 command for upper working area and spindle speed limits. Learn syntax, parameters like SD 43420, and alarms to avoid crashes.
G26 Spindle Speed Fluctuation Detection ON: CNC Programming Guide
Learn how to configure G26 on Fanuc, Siemens, and Mitsubishi CNC controls to prevent spindle speed fluctuations, set travel limits, and avoid tool crashes.
G25 Lower Working Area and Spindle Speed Limit: Siemens CNC
Master G25 lower working area and spindle speed limits on Siemens SINUMERIK controls. Avoid chuck collisions and configure safety parameter SD 43430.