G55 Settable Zero Offset 2 Guide for Siemens SINUMERIK CNC
Master the Siemens G55 settable zero offset. Learn how parameters like MD 28080 configure work coordinate frames and prevent tool collisions on SINUMERIK controls.
Introduction
An uncompensated path deviation on a Siemens SINUMERIK machining center or turning lathe can cause a catastrophic physical collision within milliseconds. If a program is aborted mid-cycle or reset before a G55 zero offset cancellation is executed, or if an operator performs an incomplete axis reset using a G92.1 command, the control's remaining axes retain their shifted values. Upon resuming automatic execution, the tool revolver (turret) or spinning spindle travels along an unexpected trajectory that is physically shifted by the G55 offset amount. When this uncompensated path deviation occurs in close proximity to workholding, the tool tip can drive directly into table-mounted workpiece clamping setups, a fixture vise jaw, or the rotating chuck jaws of the spindle. The resulting high-impact crash shatters the carbide cutting tool, damages the precision axis guides, triggers axis-overload alarm codes such as Alarm 14800, and converts raw stock into a completely ruined scrap part.
Technical Summary
| Property | Technical Specification |
|---|---|
| Command Code | G55 |
| Modal Group | Group 8 (Modal) |
| Function | Workpiece Coordinate System 2 / Settable Zero Offset 2 |
| Supported Brand | Siemens (SINUMERIK) |
| Critical Parameters | MD 28080 $MC_MM_NUM_USER_FRAMES, MD 24000 $MC_FRAME_ADD_COMPONENTS |
| Main Constraints | Fine offsets require MD 24000 = 1; compiler mode toggles via G290 and G291 for G10 compatibility. |
Quick Read
- Origin Shift: Program G55 to select the second settable zero offset, shifting the origin from the machine absolute zero (M) to the workpiece coordinate system (W).
- Dual Component Registry: Manage zero offsets via coarse and fine offset components, which are mathematically added together to determine the active workpiece zero.
- Bilingual Compiler Toggle: Switch to ISO Dialect mode using G291 to execute legacy G10 L2 P2 offset writing blocks, then return to native SINUMERIK mode with G290.
- Axial Offset Interlock: Configure machine parameter MD 24000 $MC_FRAME_ADD_COMPONENTS = 1 before writing or executing axial offsets via G58/G59 with G55 to avoid system faults.
- Substituting Frame Risk: Avoid executing a bare TRANS command in subprograms to clear shifts, as it substitutes all active frames and deletes coordinate rotations or mirroring.
- Independent Block Skip: Activate block skip characters / and /1 separately in the control settings, since Siemens treats them as independent block skip channels.
Basic Concepts
Activating the G55 zero offset on Siemens controls shifts the program coordinate system origin from the machine's absolute zero point (M) directly to the workpiece local reference point (W). Positional movements following G55 are programmed on this workpiece coordinate system. The actual distance between the machine zero and the workpiece zero depends entirely on the workpiece type and how it is physically clamped. In turning applications, this zero offset is typically entered to compensate for the tightening clearance of the chuck. For machining center applications, the offset defines the physical distance from the basic machine zero point to the workpiece origin located on a workpiece fixture. Every individual user zero offset (G54 to G599) consists of a coarse offset and a fine offset. When G55 is called in a program, the coarse and fine offsets are mathematically added together to determine the active workpiece zero.
Implementing the G55 workpiece coordinate system (often referred to as the G55 Workpiece Coordinate System) on a Siemens control shifts the active absolute coordinate registers relative to the basic machine coordinate system. This preparatory command establishes a localized program zero point directly on the raw stock, allowing programmers to define toolpaths relative to the physical part geometry rather than the machine reference datum.
Command Structure
In native Siemens SINUMERIK mode, G55 is a modal preparatory function belonging to G group 8. When G55 is executed, subsequent absolute positioning coordinates are referenced to the second settable zero offset. This offset remains active in the channel until deactivated by selecting a different zero offset, such as G54 Workpiece Coordinate System, or selecting the G500 zero-frame.
When compiling legacy ISO programs, the control must be toggled to ISO Dialect mode via G291. Under this compiler mode, programmers can write or update the G55 register using the G10 L2 P2 data setting command. Here, address L2 specifies standard workpiece coordinate system data input, and address P2 selects the second workpiece coordinate system, corresponding to G55.
; Native Siemens mode syntax G55
; ISO Dialect mode syntax (toggled via G291) G10 L2 P2 X__ Y__ Z__
- G55: Selects the second settable zero offset / workpiece coordinate system.
- G10: Activates programmable data input to modify offset registers.
- L2: Specifies standard workpiece offset coordinate data input.
- P2: Designates G55 zero offset register (maps to G55 in ISO Dialect mode).
- X, Y, Z: Coordinates representing absolute offsets (under G90) or incremental additions (under G91).
Brand Applications
Siemens
On Siemens SINUMERIK controls, the G55 zero offset shifts the coordinate reference system from machine absolute coordinates to the local workpiece coordinates. System setup and offset memory configuration are managed through specific machine data (MD) parameters. The control utilizes a bilingual interpreter to transition between native SINUMERIK programming and legacy ISO Dialect instructions.
| Category | Item / Code | Description / Condition |
|---|---|---|
| Parameters | MD 28080 $MC_MM_NUM_USER_FRAMES | Defines the total number of adjustable user frames/settable zero offsets (G54 to G57, G505 to G599) allocated in the control memory. |
| Parameters | MD 18601 $MN_MM_NUM_GLOBAL_USER_FRAMES | Configures the maximum number of global user frames available (value range: 1 to 93). |
| Parameters | MD 24000 $MC_FRAME_ADD_COMPONENTS | Enables fine offsets. Must be set to 1 to write or execute axial offsets via G58/G59 in conjunction with G55. If set to 0, using G58/G59 will trigger a system fault. |
| Parameters | MD 20734 $MC_EXTERN_FUNCTION_MASK (Bit 13) | Forces an internal preprocessor stop (STPPRE) during G10 write commands to ensure immediate coordinate synchronization in the main run block. |
| Parameters | MD 18800 $MN_MM_EXTERN_LANGUAGE | Activates the external NC language interpreter required to process ISO G-codes and the G291 compiler mode. |
| Parameters | MD 20150 $MC_GCODE_RESET_VALUES[3] | Determines the default active G-code of Group 8 at reset or power-on (default is 1, which corresponds to G500). |
Operators must configure working area limitations (G25/G26 or WALIMON/WALIMOF) to define active electronic envelopes around sensitive equipment such as the tool revolver (turret), measuring stations, or spindle. This shields workholding setups from accidental overtravel when G55 offset changes are executed.
Brand Comparison
| Comparison Topic | SINUMERIK 840D sl / 828D | SINUMERIK 802D sl |
|---|---|---|
| Machine Data Parameters | Machine data parameters (such as MD 10604, MD 10706, MD 20154) are fully adjustable by the programmer or setup operator. | Machine parameters are hard-locked and cannot be adjusted by the operator; global user frames are fixed. |
| Multi-Edge Turning Options | Supports advanced turning preparatory functions G51.2 (multi-edge turning ON) and G50.2 (OFF). | Preparatory functions G51.2 and G50.2 are omitted from the control compiler. |
| Collision Avoidance Options | Includes comprehensive collision avoidance and dynamic working area limit packages. | Lacks advanced machine collision avoidance options; relies solely on standard boundary parameters. |
Technical Analysis
Three key programmatic and architectural behaviors clearly distinguish Siemens controls from Fanuc and Mitsubishi controls during zero offset handling and programming:
First, Siemens operates on a bilingual toggled compiler model (G290/G291) to parse standard G-codes. While Fanuc and Mitsubishi controls interpret coordinate offsets and register shifts natively within a single continuous program flow, Siemens requires the programmer to explicitly switch the compiler to ISO Dialect mode via G291 to compile blocks containing legacy ISO styles, such as G10 offset inputs. The program must then command G290 to switch back to native SINUMERIK mode to process advanced parametric frames (TRANS/ROT/SCALE/MIRROR) and native zero offsets.
Second, Siemens manages coordinate transformations as dynamic, modular components of a "frame" memory stack. G55 serves as the baseline settable frame. On top of this baseline G55 frame, programmers can dynamically chain programmable absolute offsets (TRANS/ROT/SCALE/MIRROR) or additive modifiers (ATRANS/AROT/ASCALE/AMIRROR) within the same program block. However, absolute frames are substituting instructions. Programming a bare TRANS command to clear a temporary shift automatically deactivates all other active frame transformations (such as coordinate rotations or mirroring), unexpectedly wiping out the current workpiece setup. In Fanuc and Mitsubishi, mirroring, scaling, and rotations belong to independent modal groups that can be canceled individually without affecting unrelated coordinate registers.
Third, Siemens treats block skip levels as separate, independent channels. Unlike the original ISO Dialect where the / and /1 skip characters represent the exact same level, Siemens treats / and /1 as separate skip levels that must be activated independently. If an operator runs a legacy program containing both skip styles on a Siemens control without separately configuring these skip levels, blocks designed to be skipped may execute, resulting in unexpected axis travel and catastrophic workpiece collisions.
Program Examples
N10 G90 G710 G40 ; Sets native Siemens mode, absolute coordinates, metric units, and cancels tool radius compensation
N20 G291 ; Switches the compiler to ISO Dialect mode to parse legacy blocks
N30 G10 L2 P2 X-250.5 Y-150.0 Z-400.2 ; Writes workpiece offset coordinates to G55 (P2)
N40 G290 ; Switches the compiler back to native Siemens SINUMERIK mode
N50 G55 G00 X0 Y0 ; Activates G55 settable zero offset and rapid positions X and Y to origin
N60 T1 D1 M3 S1500 ; Loads tool T1, activates tool edge D1, and starts spindle CW at 1500 rpm
N70 G00 Z50.0 ; Rapid moves Z-axis to safety height
N80 G01 Z-5.0 F150.0 ; Feeds tool linearly to a depth of Z-5.0 at 150.0 mm/min
N90 TRANS X20.0 Y20.0 ; Sets an absolute programmable zero offset frame relative to G55
N100 G01 X30.0 Y30.0 ; Executes linear move relative to the shifted coordinate origin
N110 TRANS ; Deactivates the programmable offset, returning to the baseline G55 zero point
N120 G00 Z100.0 M5 ; Retracts tool to safety height and stops spindle
N130 G500 G00 X0 Y0 Z0 ; Deactivates settable frames via G500 and returns to machine zero
N140 M30 ; Ends program execution and rewinds memory
Dry Run Walkthrough
- N10: Sets native Siemens SINUMERIK mode absolute coordinate system (
G90), metric dimensioning (G710), and cancels tool radius compensation (G40). - N20: Switches the compiler interpreter to ISO Dialect mode (
G291) to parse legacy block formatting. - N30: Programs absolute workpiece coordinate offset values for G55 (
P2) to X-250.5, Y-150.0, and Z-400.2 usingG10 L2. - N40: Toggles the compiler interpreter back to native Siemens mode (
G290) to execute native frames. - N50: Selects the second settable zero offset user frame (
G55) and rapid traverses (G00) the X and Y axes to the local program coordinate origin (X0,Y0). - N60: Selects tool
T1, activates cutting edge tool parameter registerD1, and starts the spindle rotation clockwise at1500 rpm(M3). - N70: Rapid moves the Z-axis to a safety clearance height of
Z50.0relative to the active G55 workpiece zero. - N80: Moves the tool linearly (
G01) to a cutting depth ofZ-5.0at a feedrate of150.0 mm/min. - N90: Programmatically applies an absolute coordinate translation frame (
TRANS X20.0 Y20.0), shifting the active workpiece coordinate system origin by 20.0 mm along the X and Y axes relative to G55. - N100: Linear feeds the tool to coordinates
X30.0,Y30.0evaluated relative to the newly shifted local coordinate origin. - N110: Executes a bare
TRANScommand with no axis inputs, which acts as a substituting command to deactivate all active programmable frame components, returning the active coordinate origin directly to the baseline G55 frame. - N120: Rapid retracts the Z-axis to
Z100.0and commands a spindle stop (M5). - N130: Deactivates the G55 settable zero offset user frame using
G500and rapid positions the machine axes back to machine coordinate zero (X0 Y0 Z0). - N140: Ends program execution and rewinds control memory (
M30).
Error Analysis
| Alarm Code | Trigger Condition | Operator Symptom | Root Cause / Fix |
|---|---|---|---|
| Siemens Alarm 18312 | Program attempts to write or execute axial offsets via G58 or G59 with G55 while machine parameter MD 24000 is set to 0. | Execution halts instantly; the control panel displays "channel %1 block %2 frame: Fine offset not configured". | Root Cause: Fine offsets are disabled in machine configuration. Fix: Set parameter MD 24000 $MC_FRAME_ADD_COMPONENTS = 1 to enable fine offsets. |
| Siemens Alarm 14800 | Movement is commanded (such as G01) but the active programmed path feedrate F evaluates to F0, and the "Fixed feedrates" function is not active. | Execution halts; control displays "Channel %1 Set %2 programmed path velocity is less than or equal to zero". | Root Cause: Travel commanded with zero feedrate. Fix: Specify a non-zero feedrate value F in the active block or modals. |
| Siemens Alarm 14060 | Programmed block skip level is evaluated with an out-of-range value (less than 1 or greater than 9). | Execution halts; control displays "Impermissible skip level for differential block skip". | Root Cause: Invalid skip level input. Fix: Specify block skip level strictly within the range of 1 to 9. |
| Siemens Alarm 12080 | The control compiler parses unrecognized commands or formatting conflicts (such as running native SINUMERIK commands like G500 under G291 ISO mode). | Execution halts; the control panel displays "Syntax error / Unknown block". | Root Cause: Native commands compiled under ISO mode. Fix: Ensure correct G-code syntax or switch to native mode (G290) before commanding native instructions. |
Application Note
A catastrophic mechanical crash shatters the carbide tool tip, damages the precision axis guides, and destroys the raw stock when G55 offset variables are modified incorrectly or when manual adjustments are made during an interrupted program run. On the shop floor, if an operator pauses automatic machining at a single-block stop or aborts execution mid-cycle and executes manual axis movements or a G92.1 command with missing axis arguments, the remaining unprogrammed axes retain their shifted values. Upon resuming automatic execution, the tool revolver (turret) will travel along a path that is physically shifted by the uncompensated G55 offset amount. The cutting tool can travel on an unadjusted path, driving the tool revolver (turret) or spinning spindle directly into table-mounted workpiece clamping setups, a fixture vise jaw, or the rotating chuck jaws of the spindle. To prevent these catastrophic collisions, programmers must configure programmable working area limitations (G25/G26 or WALIMON/WALIMOF) to define active electronic envelopes that shield surrounding equipment against accidental overtravel.
Related Command Network
- G54 to G57, G505 to G599 (Settable Zero Offsets): Calls the primary and subsequent settable zero offset user frames to define the active workpiece coordinate system. Link: G54 Settable Zero Offset or G54 Workpiece Coordinate System
- G53 / G153 / SUPA (Offset Suppression): Non-modally deactivates active settable zero offsets, programmable frames, and basic frames to enable safe axis positioning relative to machine coordinate zero.
- TRANS / ATRANS (Programmable Zero Offsets): Applies absolute or additive coordinate translations, shifting the coordinate origin relative to the active G55 workpiece zero.
- G58 / G59 (Axial Programmable Offsets): Replaces or adds translation components of the programmable zero offset for specific axes, acting as absolute coarse and additive fine offsets.
- G290 / G291 (Compiler Mode Selection): Toggles the control interpreter between native Siemens SINUMERIK mode and legacy ISO Dialect mode.
Conclusion
To ensure collision-free setups, always pair the activation of G55 zero offsets with explicit frame cancellation routines, verify machine parameter settings before attempting fine offsets, and implement active working area limitations to isolate workholding zones.
FAQ
How does SINUMERIK calculate the active workpiece coordinate system when G55 is called?
The Siemens control mathematically adds the coarse offset and the fine offset defined within the active G55 user frame register. Operators must verify both coordinate registers on the zero offset screen to ensure no unintended residual shifts are applied before executing automatic machining.
What triggers Siemens Alarm 18312 when programming offsets with G55?
Alarm 18312 is triggered when a program attempts to write or execute axial offsets via G58 or G59 while the machine parameter MD 24000 ($MC_FRAME_ADD_COMPONENTS) is set to 0. Changing MD 24000 to 1 allocates the necessary memory to resolve the fault.
Why does a bare TRANS command cause coordinate errors in a G55 setup?
The TRANS command is a substituting instruction, meaning that programming it without axis parameters clears all other active frame components, such as rotations or mirroring. To prevent unintended coordinate resets, ensure any frame modifications are chained additively using ATRANS or that transformations are intentionally reconstructed.
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
G71 Metric Dimensioning Guide for Siemens SINUMERIK Controls
Learn how to program G71 and G710 metric dimensioning on Siemens SINUMERIK controls, including parameter MD 10240, alarm codes, and G-code syntax errors.
G69 Balance Cut Cancel: Coordinate Recovery & Crash Prevention
Learn how to program the G69 balance cut cancel command for Fanuc, Siemens, and Mitsubishi turning centers. Cancel dual slide synchronization and prevent crashes.
G70 CNC Finishing Cycle Guide for Fanuc, Siemens, and Mitsubishi
Learn the G70 finishing cycle for CNC turning. Master syntax, parameters, and alarm codes for Fanuc, Siemens CYCLE95, and Mitsubishi controls to avoid crashes.
G69 Coordinate System Rotation Cancel: Modals, Alarms, and Setup
Learn to cancel G68 facing turret mirrors and coordinate rotations using G69 on Fanuc, Siemens, and Mitsubishi CNCs to prevent turret crashes.