Understanding Siemens Setting Data SD Parameter Structure
Learn how the Siemens Setting Data (SD) structure manages cycle tolerances, parameters like SD43790, and alarms like Alarm 4009 on SINUMERIK CNCs.
Introduction to Siemens Setting Data and Production Risks
A misconfigured measuring cycle tolerance or start position setting data on a Siemens control can trigger a devastating hard collision, destroying a scrap part and crashing the machine's axis motion directly into a workholding vise jaw. When an active probe detects a dimensional deviation or breaches a safe boundary, the controller relies on Setting Data parameters to determine whether to stop the machine or merely post a text warning. If these parameters are left at their volatile defaults, or if the alarm mask is incorrectly bypassed, the axes will continue traversing blindly, causing the uncalibrated tool to strike a rigid clamp, smash into a compensating chuck (triggering PLC Alarm 700013 'Operation while chuck is not locked'), or crash into a heavy double turret arrangement (resulting in PLC Alarm 700022 'Turret motor overload' and Alarm 700011 'Tool clamping timeout'). Understanding how Setting Data (SD) structures operate at runtime is critical to preventing these catastrophic physical failures.
Technical Summary of Setting Data
| Command / Code Group | Setting Data (SD) |
| Modal Group / Area | System Configuration / Setting Data |
| Supported Brand | Siemens |
| Critical Parameters | SD43790 $SA_OSCILL_START_POS, SD54657 $SNS_MEA_TOL_ALARM_SET_M0 |
| Main Constraint | Volatile on reset unless registered in MD10710 $MN_PROG_SD_RESET_SAVE_TAB; access restricted by Data Classes (S, M, I, U) based on keyswitch settings. |
Quick Read: Key Rules and Constraints
- Use direct alphanumeric addressing with the
$prefix (e.g.,$SA_OSCILL_START_POS[Z]) directly within G-code programs. - Understand that Setting Data changes are volatile and revert to defaults upon NC reset or M30 unless linked to the reset save table.
- Register critical Setting Data addresses in machine data
MD10710 $MN_PROG_SD_RESET_SAVE_TABto ensure persistence. - Configure
SD54657 $SNS_MEA_TOL_ALARM_SET_M0to1to generate an internal M0 stop when workpiece measuring tolerances are exceeded. - Be aware that axis-specific Setting Data like
SD43790is unlocked for operators (Protection Level 7) on grinding controls but locked (Protection Level 0) on basic turning/milling variants. - Ensure that the power-on initialization table
MD10709 $MN_PROG_SD_POWERON_INIT_TABdoes not contain invalid SD numbers to prevent boot halts with Alarm 4009.
Basic Concepts of SINUMERIK Setting Data
The practical programming effect of Siemens' Setting Data (SD) structure provides operators and programmers with a highly flexible, runtime-accessible layer of system configuration that does not require the dangerous, memory-reorganizing system reboots associated with altering deep Machine Data (MD). By interacting directly with setting data in the part program, developers can dynamically adjust spindle limitations, threading start angles, measuring cycle tolerances, and oscillation boundaries on the fly.
However, programmers and operators must watch for the inherent volatility of these parameters. If an operator relies on an NC program to shift a setting data parameter for a specialized cut, they must ensure this parameter is mapped to the reset save table. Without this protection, the control will silently revert to the original default state upon an NC reset or an M30 program end, leading to entirely unpredictable kinematic behaviors when the operator runs the second workpiece.
Command Structure, Address Syntax, and Access Classes
Siemens organizes and addresses Setting Data (SD) using a highly structured, alphanumeric format prefixed with a dollar sign ($). The naming convention relies on subsequent letters to define the exact data area. General setting data parameters are prefixed with $SN_, while channel-specific parameters are prefixed with $SC_.
Axis-specific setting data parameters use the $SA_ prefix. Beyond this, dedicated ranges for cycle configurations use the third letter S, resulting in prefixes such as $SNS_, $SCS_, or $SAS_ for cycle setting data. Active setting data files are saved with the .SEA file extension.
Data can be addressed directly in the NC part program, and axis-specific parameters can utilize the axis name or array position as an index, programmed within square brackets. Access is strictly governed by four distinct Data Classes mapped directly to a 7-tier keyswitch and password protection hierarchy. These classes prevent unauthorized operators from corrupting core machine kinematics while granting access to edit user-level setting data.
- System (S): Protection level 0. Reserved for control manufacturers.
- Manufacturer (M): Protection levels 1 and 2. For machine tool builders (OEMs).
- Individual (I): Protection levels 1, 2, or 3. For maintenance personnel.
- User (U): Protection levels 3, 4, and 7. For operators and programmers.
Address Syntax Format
$[Prefix]_[ParameterName]
$[Prefix]_[ParameterName][AxisIndex]
Key Setting Data Parameters
| Parameter | Description | Value Range |
|---|---|---|
SD43790 $SA_OSCILL_START_POS | Defines the start position of a reciprocating/oscillating axis. | DOUBLE (-1.0E+301 to 1.0E+301, mm or degrees) |
SD54657 $SNS_MEA_TOL_ALARM_SET_M0 | Dictates machine behavior when dimensional measuring tolerances are exceeded. | Integer (0: display alarm, continue; 1: generate internal M0) |
SD42000 $SC_THREAD_START_ANGLE | Channel-specific setting data used to program the thread start angle (SF) for operations like G33 thread cutting. | DOUBLE (mm or degrees) |
Brand Applications
Siemens
Siemens natively allows high-level, explicit alphanumeric addressing of Setting Data directly inside the standard part program using the $ prefix. Unlike other controls that obfuscate operational parameters behind cryptic, undocumented numbered macro variables, Siemens provides fully self-documenting syntax accessible right in the G-code editor. Programmers can also use R-Parameter Programming for mathematical calculations without affecting system setting data.
Second, Siemens maintains a rigorous segregation of its parameters through granular Data Classes (S, M, I, U) tied directly to a keyswitch hierarchy. This ensures operators can freely alter their own user-level setting data without ever risking the corruption of the manufacturer-level kinematics. Third, Siemens uniquely handles parameter persistence across resets via specific retention tables (like the PROG_SD_RESET_SAVE_TAB). Instead of forcing all parameter changes to be either purely volatile or permanently burned into the ROM, the developer can explicitly declare exactly which individual setting data variables should survive an NC reset, offering unparalleled control over the machine's initialization states.
- SD43790 $SA_OSCILL_START_POS: Defines the start position of an oscillating axis (DOUBLE, -1.0E+301 to 1.0E+301).
- SD54657 $SNS_MEA_TOL_ALARM_SET_M0: Dictates whether exceeding measuring tolerances triggers an M0 stop or just displays a message (0 or 1).
- SD42000 $SC_THREAD_START_ANGLE: Sets the thread start angle for G33 operations.
Siemens Control Variant and Series Comparison
| Control Variant / Series | Oscillation Parameter Access (SD43790) | Access Rights & Protection Levels |
|---|---|---|
| SINUMERIK 828D Grinding (828d-gce42 / 828d-gse42) | Unlocked to Protection Level 7 (User). Operators can edit freely. | Access rights are open to user levels, allowing runtime stroke adjustment. |
| SINUMERIK 828D Turning/Milling (828d-me42 / 828d-te42) | Locked behind Protection Level 0 (System). Requires manufacturer password. | Access is restricted to prevent unauthorized kinematic adjustments. |
| SINUMERIK 840D / 840D sl | Fully customizable. Protection levels can be reassigned by the OEM. | Access rights vary fundamentally by machine technology version and custom configurations. |
Technical Analysis of Setting Data Modality
The access control architecture of SINUMERIK Setting Data (SD) demonstrates how Siemens handles parameter isolation based on the specific machine technology profile. In grinding variants, the ability to change an oscillation start position dynamically is a standard operational requirement. Unlocking SD43790 $SA_OSCILL_START_POS to Protection Level 7 allows everyday operators to adapt the stroke at the control panel without requiring a technician. On basic milling and turning variants, however, reciprocating movement is not a primary process feature, meaning this same parameter is locked behind Protection Level 0 to safeguard the system against unintended coordinate offsets.
This technological segregation prevents operators from corrupting critical machine configurations while maintaining operational flexibility where it is needed. Siemens' alphanumeric addressing format prevents the programming errors common in other controllers. By using descriptive prefixes like $SA_ and $SC_, G-code programs remain readable and maintainable. For advanced path control, setting data can work alongside high-speed operations like tolerance-based smoothing (G645) to maintain surface quality while monitoring axis limits.
Program Examples for Siemens CNC Systems
The following G-code block demonstrates how to write and modify Siemens Setting Data parameters directly from a part program. These modifications adjust thread start angles, oscillation coordinates, and measuring alarm settings.
; Siemens Setting Data Adjustment Example
$SC_THREAD_START_ANGLE = 90.0 ; Set thread start angle for G33 to 90 degrees
$SA_OSCILL_START_POS[Z] = 15.5 ; Set Z-axis oscillation start position to 15.5 mm
$SNS_MEA_ALARM_MASK = 'H10000' ; Configure measuring cycle alarm mask
M30 ; End of program
dry run Analysis
Executing a dry run of this program checks the following execution sequence:
- The control reads the first block and dynamically updates the channel-specific thread start angle (
$SC_THREAD_START_ANGLE) to 90.0 degrees without interrupting active motions. - The control assigns the Z-axis reciprocating start position to 15.5 mm using
$SA_OSCILL_START_POS[Z]. - The control updates
$SNS_MEA_ALARM_MASKto'H10000', modifying how the active probe handles alarm exceptions. - The program reaches
M30and ends. Since these values are volatile by default, they will revert to their original values upon reset unless they are registered in the reset save table.
Error Analysis and System Alarms
| Brand | Alarm Code | Trigger Condition | Operator Symptom | Root Cause / Corrective Fix |
|---|---|---|---|---|
| Siemens | Alarm 4009 | Invalid setting data number configured inside power-on initialization array (MD10709 $MN_PROG_SD_POWERON_INIT_TAB). | The NCK halts during run-up, displaying the invalid index and blocking system startup. | Enter a valid Setting Data number in the power-on initialization table, or set the index to zero to clear it. |
| Siemens | Alarm 62306 | Workpiece measurement detects that part dimensions exceed the configured tolerance limit. | The NCK triggers "Permissible dimensional difference exceeded" and halts execution if tolerance stop is active. | Check SD54657 $SNS_MEA_TOL_ALARM_SET_M0. Adjust workpiece positioning, check tool wear, or update tolerance boundaries. |
| Siemens | Alarm 61303 | The active measuring probe attempts to move or detect a surface outside of its defined safe boundaries. | The NCK displays "Beyond safe area" cycle alarm and halts physical axis movement. | Verify probe calibration, check the workpiece alignment inside the vise jaw or chuck, and adjust safe area boundaries in cycle parameters. |
Application Note: Configuring Safe Measuring Cycle Tolerances
A hard collision that smashes a spindle into a workholding vise jaw, strikes an incorrectly positioned clamp, or crashes into a compensating chuck (resulting in PLC Alarm 700013 "Operation while chuck is not locked") is the direct consequence of misconfigured Setting Data parameters during measuring cycles. If a tool or workpiece measurement breaches the safe area, the control triggers Alarm 62306 or Alarm 61303. However, if the tolerance stop Setting Data parameter MEA_TOL_ALARM_SET_M0 (SD54657) is left at 0, or if the alarm mask $SNS_MEA_ALARM_MASK is not configured to execute a safe retraction routine, the control will display a text message but will refuse to halt the physical axes. The machine will blindly continue traversing, causing severe structural damage and triggering overload faults like PLC Alarm 700022 "Turret motor overload" or Alarm 700011 "Tool clamping timeout". Safe programming dictates that measuring tolerance alarms must be strictly configured to generate an M0 stop to prevent subsequent motion.
Related Command Network
- MD10710 $MN_PROG_SD_RESET_SAVE_TAB: Retains specified Setting Data values in non-volatile memory across NC resets and program ends.
- MD10709 $MN_PROG_SD_POWERON_INIT_TAB: Sets which Setting Data parameters revert to their initial default values automatically upon control power-on.
- R-Parameter Programming: Operates as a runtime-accessible variable structure for part programming that does not require system reboots or affect system setting data.
- G33 Threading: Relies on channel-specific setting data
SD42000 $SC_THREAD_START_ANGLEto program the precise thread start angle.
Conclusion: Best Practices for Setting Data Management
Managing Siemens Setting Data requires establishing a clean mapping between program-driven parameter changes and non-volatile retention tables. Prioritize configuring measuring cycle alarm masks and tolerance stops to generate physical M0 interruptions, preventing axis movement during out-of-tolerance conditions. By maintaining proper keyswitch access levels and validating setting data addresses in the initialization arrays, operators can leverage dynamic runtime adjustments while safeguarding the machine from costly collisions.
Frequently Asked Questions
Why did my modified Setting Data revert to default values after an NC Reset?
Siemens Setting Data parameters are volatile by default and will clear upon an NC reset or M30 unless registered in the reset save table. To maintain custom values, add the Setting Data parameter index to the machine data array MD10710 $MN_PROG_SD_RESET_SAVE_TAB.
How does the keyswitch hierarchy affect Setting Data modification?
Setting Data is divided into Data Classes (System, Manufacturer, Individual, User) mapped to seven keyswitch protection levels. If a parameter is locked behind Protection Level 0 (System) on your machine model, you must use the appropriate password or keyswitch setting to modify it; otherwise, the edit will be blocked.
What happens if an invalid Setting Data number is added to the power-on initialization array?
Entering an incorrect or non-existent Setting Data parameter in MD10709 $MN_PROG_SD_POWERON_INIT_TAB will cause the control to halt during boot-up, displaying Alarm 4009. To resolve this, access the machine parameters during run-up and clear the invalid index or replace it with a valid Setting Data number.
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.