Skip to main content
CNC.wiki

G55 G-Code Guide: Workpiece Coordinate System 2 Secrets

Learn how to configure G55 Workpiece Coordinate System 2 on Fanuc, Siemens, and Mitsubishi CNC systems. Avoid crashes, manage offsets, and optimize programs.

Hakan Gündoğdu
Hakan Gündoğdu

CNC CARE Co-founder

Introduction

An improperly configured G55 workpiece coordinate offset on a CNC machining center or lathe triggers a devastating chain of physical events in a matter of milliseconds. When an operator registers incorrect offsets or modifies a G55 coordinate register during a single-block stop, the CNC control system executes subsequent absolute commands along a physically shifted trajectory. The cutting tool, driven by high-torque axis servomotors, bypasses established chuck barriers and safety envelopes, slamming the tool tip or rotating spindle directly into table-mounted workpiece clamps, a heavy fixture vise jaw, or the rotating jaws of a spindle chuck. This sudden physical impact results in a violent hard collision, shattering carbide cutting tools, damaging turret indexing gears, bending axis ball screws, and instantly converting expensive raw stock into a ruined scrap part while triggering high-current axis overload alarm codes.

Technical Summary

PropertyTechnical Specification
Command CodeG55 (Workpiece Coordinate System 2 Selection / Settable Zero Offset 2)
Modal GroupGroup 14 (Fanuc Milling), Group 12 (Fanuc Turning / Mitsubishi Lathe), Group 8 (Siemens Native), Group 14 (Siemens ISO Dialect)
Supported BrandsFanuc, Siemens, Mitsubishi
Critical ParametersFanuc Parameter 5040 Bit 3 (TCT), Siemens MD 28080 $MC_MM_NUM_USER_FRAMES, Mitsubishi Parameter #1151 rstint
Primary ConstraintsCannot combine with inclined surface/TCP control (Mitsubishi); parameters hard-locked on Siemens 802D sl; parameter changes blocked while offsets are active (Fanuc)

Quick Read

  • Coordinate Selection: Command G55 to activate the secondary workpiece coordinate system, shifting the coordinate origin relative to the machine reference zero without canceling active tool length or nose R compensations.
  • Subprogram Reusability: Clamp two identical workpieces (one under G54 and the other under G55) to machine matching geometries by calling the same subprogram with shifted zeroes.
  • G10 Programmable Writing: Use G10 L2 P2 in absolute (G90) or incremental (G91) mode to programmatically update G55 offset values from within the NC program.
  • Single-Block Modification Risk: Never resume machining immediately after altering G55 offsets during a single-block stop, as the change only takes effect from the subsequent block.
  • Active Offset Safety Lock: Always cancel active offsets using G49 before attempting to modify Fanuc parameter 5040 Bit 3 (TCT), or system alarms will trigger.
  • Bilingual Compiler Toggle: Remember to switch the Siemens control to ISO mode via G291 before executing standard G10 coordinate writing commands.
  • Motion Control Interlocks: Ensure that simple inclined surface control (G176) and tool center point control (G174) are deactivated on Mitsubishi machines before selecting G55.

Basic Concepts

Implementing the G55 workpiece coordinate system on a CNC 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.

Symmetrical contours or multiple workpiece setups can be machined dynamically across the machine bed by establishing independent coordinate origins. For example, an operator can secure one workpiece in a primary vise jaw registered under G54 and a second identical workpiece in a secondary vise jaw registered under G55. By simply switching coordinate systems and calling the same machining subprogram, the CNC executes the same program block sequence at the secondary location, reducing program length and minimizing programming errors.

When a coordinate transition to G55 is commanded, the CNC motion kernel does not cancel active tool length compensations or tool nose radius offsets. Instead, the control dynamically recalculates the active offset vectors and applies them directly relative to the newly selected G55 workpiece zero, ensuring a continuous contour transition without path interruption or axis dwell.

Command Structure

The G55 command acts as a modal switch that redirects all subsequent coordinate commands to the secondary workpiece coordinate register. The CNC controller references the coordinate offset values stored in the G55 register, which represent the absolute distance from the physical machine zero point to the workpiece zero point. Once G55 is executed, the control applies these offset values to all absolute coordinate moves until another workpiece coordinate system command, such as G54 or G56, is specified.

In addition to manual offset entry on the control panel, G55 offsets can be modified programmatically during program execution. This is achieved using the programmable data input command G10, where address L2 designates standard workpiece coordinate writing, and address P2 selects the G55 register. This allows for dynamic adjustments, such as updating zero offsets to compensate for raw stock variation or chuck tightening width.

; Fanuc Milling Syntax
G90 G55 G00 X[x_coord] Y[y_coord] Z[z_coord] ;

; Fanuc Turning System A Syntax G55 X[x_coord] Z[z_coord] ; G55 U[x_incremental] W[z_incremental] ;

; Siemens Native SINUMERIK Mode Syntax G55 ;

; Mitsubishi and general ISO G10 Programmable Offset Syntax G90 G10 L2 P2 X[x_offset] Y[y_offset] Z[z_offset] ;

Address / ParameterSystem RoleValue / Range
L2Specifies standard workpiece coordinate system offset data inputConstant
P2Designates the target workpiece coordinate system (maps directly to G55)Constant
X, Y, ZAbsolute axis coordinate values or zero offsetsMachine travel range
U, WIncremental axis coordinates (lathe System A turning)Machine travel range

Brand Applications

Fanuc

On Fanuc controls, the G55 workpiece coordinate system shifts the absolute origin relative to the machine home. System configuration relies on Parameter 5040 Bit 3 to enable tool length compensation, and Parameter 0001 Bit 1 to manage legacy series program emulation.

The programming syntax for milling centers uses the G90 G55 G00 X__ Y__ Z__ command to rapid traverse to absolute coordinates. On lathes using G-code System A, absolute movements are commanded as G55 X__ Z__, while incremental adjustments are executed via G55 U__ W__. To programmatically modify the G55 offset register, the command G90 G10 L2 P2 X__ Y__ Z__ is executed.

CategoryItem / CodeDescription / Condition
ParametersParameter No. 5040 Bit 3 (TCT)Tool Change Type: Set to 1 to enable positive/negative tool length compensations (G43/G44) and cancel (G49).
ParametersParameter No. 0001 Bit 1 (FCV)Series 15 program format activation: If set to 1, control uses legacy program formats, modifying canned and repetitive cycle interpretation.
ParametersParameter No. 5431 Bit 0 (MDL)Group assignment of unidirectional positioning (G60). If 0, Group 00 (unmodal); if 1, Group 01 (modal).
ParametersParameter No. 3405 Bit 3 (G36)Determines whether G36 represents circular threading CCW (1) or automatic tool offset X-axis (0).
AlarmsAlarm PS1144Specified tool change T code inside active programmable parameter input (G10) block. Fix: Remove T code from the G10 block.
AlarmsAlarm PS0368Attempted to modify tool length compensation parameter TCT (Parameter No. 5040 Bit 3) while tool position or length offset is active. Fix: Deactivate offsets via G49 before modifying the parameter.
AlarmsAlarm PS0082Tool change T code specified in the same block as a G36 or G37 command. Fix: Separate T code and measurement block.
AlarmsAlarm PS0508Coordinate system rotation (G68) specified on parallel axes without program coordinate system alignment (G90 absolute move) in the preceding block. Fix: Program an absolute move command G90 for all parallel axes in the preceding block.
VersionsSeries 15 Format vs ModernLegacy Fanuc formats are emulated on modern controls using Parameter No. 0001 Bit 1 (FCV). Setting FCV to 1 changes cycle pocket and toolpath evaluations; running them with FCV set to 0 causes profile failures.

Operators must ensure that all active tool length offsets are cancelled using the G49 command before changing parameter values. Attempting to change compensation parameters while offsets are active will trigger system alarms and cause path deviations.

Siemens

On Siemens SINUMERIK controls, the G55 settable zero offset is managed under Group 8. System variables and memory allocations are configured via machine data parameters such as MD 28080 and MD 18800 to allocate user frames and enable bilingual compilation.

In native Siemens mode, switching to G55 is commanded with a bare G55 block. Under ISO Dial mode activated by G291, G55 is set programmably via G10 L2 P2 X__ Y__ Z__. Native frame manipulations are cleared or stacked using TRANS or ATRANS commands relative to the G55 frame.

CategoryItem / CodeDescription / Condition
ParametersMD 28080 $MC_MM_NUM_USER_FRAMESNumber of work offsets: Defines the total user frames allocated in memory (G54-G59, G505-G599).
ParametersMD 18800 $MN_MM_EXTERN_LANGUAGEActivation of external NC languages: Must be set to 1 to activate the external ISO Dialect compiler (required for G291/G10).
ParametersMD 20734 $MC_EXTERN_FUNCTION_MASK (Bit 13)Forces internal preprocessor stop (STPPRE) during G10 write commands for immediate synchronization in the main run block.
ParametersMD 20150 $MC_GCODE_RESET_VALUES[n]Determines default active G-codes for G groups upon reset or Power-On (e.g., Group 8 default: G500 or G54).
ParametersMD 24004 $MC_CHBFRAME_POWERON_MASKControls whether channel-specific basic frame is reset after Power-On.
AlarmsAlarm 61800Toggled G291 or executed G10 offset modification while external language machine data MD 18800 is disabled. Fix: Enable MD 18800 $MN_MM_EXTERN_LANGUAGE or option bit 19800.
AlarmsAlarm 14800Movement commanded in G55 block but programmed path feedrate F evaluates to F0 and "Fixed feedrates" function is inactive. Fix: Specify a non-zero feedrate.
AlarmsAlarm 12080Compiler parsed unrecognized commands or experienced formatting conflicts (e.g., native Siemens commands in ISO dialect mode). Fix: Ensure compiler mode matches G-code syntax (e.g., use G290 for native).
AlarmsAlarm 14060Programmed block skip level evaluates to < 1 or > 9. Fix: Correct the skip level in comment/code.
VersionsSINUMERIK 840D sl vs 802D slCompact SINUMERIK 802D sl has hard-locked parameters (MD 10604, MD 10706, MD 20154) that cannot be adjusted, and lacks collision avoidance options. Global parameters are fully adjustable on 840D sl and 828D.
VersionsMulti-Edge TurningAdvanced turning preparatory functions G51.2 (ON) and G50.2 (OFF) are supported on 840D sl but omitted on 802D sl.
VersionsBlock Skip levelsSiemens treats / and /1 as separate skip levels which must be activated independently, unlike original ISO controls. Configured via MD 10706 SLASH_MASK.

Operators must program working area limitations (G25/G26 or WALIMON/WALIMOF) to define active protected zones around sensitive equipment like the spindle or turret to prevent collisions during coordinate shifts.

Mitsubishi

On Mitsubishi controls, G55 belongs to G-code Group 12 modal commands. Modal retention during NC resets is configured using Parameter #1151, and coordinate resolution is defined using Parameter #1003.

To select the G55 coordinate system, the command G90 G55 G00 X__ Y__ Z__ is executed. Programmable zero offset input is achieved via G90 G10 L2 P2 X__ Y__ Z__, where P2 corresponds to G55. Alternatively, offset values can be written directly to system variable #5241 for the X-axis.

CategoryItem / CodeDescription / Condition
ParametersParameter #1151 rstintReset Initial: If 0, active workpiece coordinate modals are preserved in background during NC reset (Reset 1).
ParametersParameter #1210 RstGmd/bitFModal G-code Reset Setting: Configures if modal coordinate system selections are initialized or retained upon reset.
ParametersParameter #1003 iunitInput Setting Unit: Defines coordinate input resolution (B to E) and setting boundaries.
AlarmsProgram Error (P951)Executed workpiece coordinate system selection (G54 to G59) while Simple Inclined Surface Control (G176) is active. Fix: Deactivate simple inclined surface control before coordinate shift.
AlarmsProgram Error (P942)Executed coordinate system selection while Simple Tool Center Point Control (G174) is active. Fix: Deactivate tool center point control before coordinate shift.
AlarmsProgram Error (P953)Executed workpiece coordinate system selection while Tool Axis Direction Control (G53.1 or G53.6) is active. Fix: Cancel tool axis direction control first.
AlarmsProgram Error (P35)G10 L2 Pn command is specified with a parameter value range exceeding the maximum limit (e.g., P7 or higher, or out-of-range offset). Fix: Limit P address from P1 to P6 for standard offsets.
VersionsM80V Type B Series constraintsExecuting extended workpiece coordinate setups during active high-speed machining or high-accuracy control modes is blocked and triggers Program Error (P39) or (P34).

Operators must be aware that if coordinate offset values are modified during a single-block stop, the new settings will only apply starting from the next block. Resuming machining immediately will execute coordinates using the old offset, risking a serious collision.

Brand Comparison

Comparison TopicFanucSiemensMitsubishi
G-code Group AssignmentGroup 14 (Milling), Group 12 (Turning)Group 8 (Native SINUMERIK Mode), Group 14 (ISO Dialect Mode)Group 12 (Lathe System)
Incremental Command SyntaxCombined address characters U and W (Turning System A)Modally managed via G91 or specific active frame offsetsModally managed via G91
Bilingual Compiler RequirementNot required; continuous parsingBilingual compiler toggling via G290 (Native) and G291 (ISO Dialect)Not required; modal format switch via G188/G189
Active Offset Parameter InterlockRigorous software lock; tool parameter changes block and trigger Alarm PS0368 under active offsetsFlexible cutting edge registers (D codes); parameter suppressions are configurableSoftware-locked interlock during active G52 local shift on older firmware versions (Program Error P438)
Programmable Shift MethodsStandard G10 offset inputsFrame structures (TRANS/ATRANS) with coordinate stacking and suppressionG52 local coordinate offset commands and direct system variable writing
Manual Reverse Run SupportNot supported for active coordinate trackingDeselects G55 modals during native frame rollbackG127 manual arbitrary reverse run tracks and maintains active G55 coordinates

Technical Analysis

The architectural handling of absolute and incremental coordinate transitions during a G55 active state varies significantly across the three controllers. Fanuc lathe programming (G-code System A) allows absolute axis coordinates (X, Z) and incremental axis coordinates (U, W) to be combined in the same program block without executing a modal G90/G91 switch. In contrast, Siemens and Mitsubishi systems rely on Group 3 modal tables or axis-specific modifiers to dictate coordinate translation. This makes Fanuc's dual-address system highly efficient for lathe work but requires programmers to be cautious of axis address conventions.

Bilingual compilation and frame stacking further differentiate Siemens from its Japanese counterparts. Siemens SINUMERIK controls require the programmer to execute a G291 command to switch the compiler to ISO Dialect mode to parse standard G10 or G55 blocks, and a G290 command to return to native Siemens mode. Siemens also manages zero offsets within a multi-level frame stack, allowing baseline G55 offsets to be dynamically layered with absolute (TRANS) or additive (ATRANS) frames. However, because native absolute frames are substituting commands, executing a bare TRANS block to cancel a temporary translation automatically wipes out active rotations (ROT) or mirroring (MIRROR) layered on top of G55, whereas Fanuc and Mitsubishi handle coordinate rotations and mirroring through independent, individually cancelable modal groups.

Tool compensation interlocks and manual intervention capabilities introduce distinct safety and operational behaviors. Fanuc controls enforce a strict software-locked interlock that blocks any modification to tool length compensation parameters, such as Parameter 5040 Bit 3, while active tool offsets are applied, triggering Alarm PS0368 if violated. Siemens and Mitsubishi handle length offsets via active cutting edge registers (D codes), offering greater program flexibility. However, Mitsubishi implements a specialized manual arbitrary reverse run (G127) function that allows operators to manually wind the handwheel backward during a run; the Mitsubishi motion kernel tracks and recovers active G55 offsets during this reverse trace. Fanuc lacks this reverse tracing capability, and Siemens automatically deselects zero offset modals during native frame rollback.

Program Examples

Fanuc Example

O1001 ;
N10 G90 G21 G40 G49 G80 ;
N20 G10 L2 P2 X-250.5 Y-150.0 Z-400.2 ;
N30 G00 G90 G55 X0 Y0 ;
N40 G43 H01 Z50.0 M03 S1500 ;
N50 G01 Z-5.0 F150.0 ;
N60 X50.0 Y50.0 ;
N70 G00 Z100.0 M05 ;
N80 G49 G53 G00 X0 Y0 Z0 ;
N90 M30 ;

Dry Run

  • N10: Initializes the control state, setting absolute programming mode (G90), metric input unit (G21), canceling tool radius compensation (G40), deactivating tool length compensation (G49), and canceling canned cycles (G80).
  • N20: Uses the programmable data setting command G10 with offset type L2 (workpiece coordinate offset) and target P2 (corresponding to G55) to load the absolute coordinate offset values X-250.5, Y-150.0, and Z-400.2 into the G55 register.
  • N30: Selects workpiece coordinate system 2 (G55) and rapid traverses the X and Y axes to the localized coordinate origin (X0, Y0).
  • N40: Activates positive tool length compensation (G43) using tool offset index H01, rapid moves the Z-axis to a safety height of Z50.0 relative to the G55 workpiece zero, and starts the spindle CW at 1500 rpm.
  • N50: Performs a linear feed plunge (G01) along the Z-axis to a depth of Z-5.0 at a feedrate of 150.0 mm/min.
  • N60: Interpolates linearly to coordinates X50.0, Y50.0 relative to the G55 program zero, machining the workpiece.
  • N70: Retracts the tool to a safety plane of Z100.0 at rapid traverse speed and stops the spindle (M05).
  • N80: Cancels tool length compensation (G49) and rapid traverses the axes directly to the machine coordinate system zero (G53 X0 Y0 Z0) for safe part loading.
  • N90: Ends the program and rewinds memory (M30).

Siemens Example

N10 G90 G710 G40 ;
N20 G291 ;
N30 G10 L2 P2 X-250.5 Y-150.0 Z-400.2 ;
N40 G290 ;
N50 G55 G00 X0 Y0 ;
N60 T1 D1 M3 S1500 ;
N70 G00 Z50.0 ;
N80 G01 Z-5.0 F150.0 ;
N90 TRANS X20.0 Y20.0 ;
N100 G01 X30.0 Y30.0 ;
N110 TRANS ;
N120 G00 Z100.0 M5 ;
N130 G500 G00 X0 Y0 Z0 ;
N140 M30 ;

Dry Run

  • N10: Sets native Siemens mode absolute coordinates (G90), metric units (G710), and cancels tool radius compensation (G40).
  • N20: Switches the compiler to ISO Dialect mode (G291) to interpret standard ISO G-codes.
  • N30: Writes workpiece offset coordinates X-250.5, Y-150.0, and Z-400.2 directly into the G55 offset registers using G10 L2 P2.
  • N40: Switches the compiler back to native Siemens SINUMERIK mode (G290).
  • N50: Activates the G55 settable zero offset user frame and rapid positions the X and Y axes to the program zero point (X0, Y0).
  • N60: Loads tool T1, activates active tool edge offset D1, and starts the spindle CW at 1500 rpm.
  • N70: Rapid moves the Z-axis to a safety clearance plane of Z50.0 relative to the G55 zero frame.
  • N80: Feeds the tool linearly to a depth of Z-5.0 at a path feedrate of 150.0 mm/min.
  • N90: Commands an absolute programmable zero offset TRANS X20.0 Y20.0, shifting the program origin by 20 mm in both X and Y axes relative to the active G55 coordinate system.
  • N100: Executes a linear interpolation command to X30.0, Y30.0 evaluated from the newly shifted local coordinate origin.
  • N110: Executes a bare TRANS command, which cancels the active local frame transformation, returning the program origin directly to the baseline G55 zero point.
  • N120: Retracts the tool to safety height Z100.0 and stops the spindle.
  • N130: Deactivates all active settable frames using G500 and rapid traverses the axes to machine zero.
  • N140: Ends program execution and rewinds memory (M30).

Mitsubishi Example

N10 G90 G21 G40 G49 G80 ;
N20 G90 G10 L2 P2 X-250.5 Y-150.0 Z-400.2 ;
N30 G90 G55 G00 X0 Y0 ;
N40 M06 T01 ;
N50 G43 H01 Z50.0 M03 S1500 ;
N60 G01 Z-5.0 F150.0 ;
N70 #5241 = -252.0 ;
N80 G01 X50.0 Y50.0 ;
N90 G00 Z100.0 M05 ;
N100 G49 G53 G00 X0 Y0 Z0 ;
N110 M02 ;

Dry Run

  • N10: Initializes the control parameters by setting absolute mode (G90), metric input unit (G21), and canceling active compensations and cycles.
  • N20: Programmably sets the workpiece coordinate offset values for G55 (P2) to X-250.5, Y-150.0, and Z-400.2 using the G10 L2 P2 structure.
  • N30: Selects the G55 coordinate system and rapid traverses the X and Y axes to local program coordinates X0, Y0.
  • N40: Executes a tool change command (M06) to load tool T01.
  • N50: Activates tool length compensation (G43) using tool offset register H01, rapid positions the Z-axis to Z50.0, and starts the spindle CW at 1500 rpm.
  • N60: Linear feeds the tool into the workpiece to a depth of Z-5.0 at a feedrate of 150.0 mm/min.
  • N70: Writes a value of -252.0 directly to system variable #5241, modifying the active X-axis G55 offset. Note that because this write occurs mid-program, the new offset only becomes active from the subsequent block.
  • N80: Performs a linear move to X50.0, Y50.0 evaluated from the newly updated X-axis offset value, machining the stock.
  • N90: Rapid retracts the Z-axis to Z100.0 and commands spindle stop (M05).
  • N100: Cancels tool length compensation (G49) and rapid traverses the axes to machine zero (G53 X0 Y0 Z0).
  • N110: Ends the program run (M02).

Error Analysis

BrandAlarm CodeTrigger ConditionOperator SymptomRoot Cause / Fix
FanucAlarm PS1144Specified tool change T code inside active programmable parameter input (G10) block.Program execution halts instantly; control panel displays "G10 FORMAT ERROR".Root Cause: Invalid command combination. Fix: Move the tool change T code to a separate block.
FanucAlarm PS0368Attempted to modify tool length compensation parameter TCT (Parameter No. 5040 Bit 3) while tool position or length offset is active.Execution halts; control panel displays "OFFSET REMAIN AT OFFSET COMMAND".Root Cause: Parameter change blocked while active offsets exist. Fix: Command G49 to cancel active offsets before changing parameter.
FanucAlarm PS0082Tool change T code specified in the same block as a G36 or G37 command.Execution halts; screen displays "G37 SPECIFIED WITH T CODE".Root Cause: Tool offset measurement block conflict. Fix: Move the T code to a separate block prior to measurement.
FanucAlarm PS0508Coordinate system rotation (G68) specified on parallel axes without program coordinate system alignment (G90 absolute move) in the preceding block.Execution halts; screen displays "G CODE TO NEED G90(PAC)".Root Cause: Parallel axes are not aligned. Fix: Program an absolute move command G90 for all parallel axes in the preceding block.
SiemensAlarm 61800Toggled G291 or executed G10 offset modification while external language machine data MD 18800 is disabled.Execution halts; control displays "External CNC system missing".Root Cause: External language compiler option is inactive. Fix: Set MD 18800 $MN_MM_EXTERN_LANGUAGE to 1 or enable option bit 19800.
SiemensAlarm 14800Movement commanded in G55 block but programmed path feedrate F evaluates to F0 and "Fixed feedrates" function is inactive.Execution halts; control displays "Channel %1 Set %2 programmed path velocity is less than or equal to zero".Root Cause: Axis movement commanded with zero feedrate. Fix: Specify a non-zero feedrate in the block or active modals.
SiemensAlarm 12080Compiler parsed unrecognized commands or experienced formatting conflicts (e.g., native Siemens commands in ISO dialect mode).Execution halts; control displays "Syntax error".Root Cause: Native commands compiled under ISO mode. Fix: Switch compiler to native mode via G290 before commanding native instructions.
SiemensAlarm 14060Programmed block skip level evaluates to < 1 or > 9.Execution halts; control displays "Impermissible skip level for differential block skip".Root Cause: Out-of-bounds skip level input. Fix: Correct block skip number to be between 1 and 9 in comment or code.
MitsubishiProgram Error (P951)Executed workpiece coordinate system selection (G54 to G59) while Simple Inclined Surface Control (G176) is active.Program execution halts; control panel displays "Program Error (P951)".Root Cause: Coordinate shift commanded during inclined machining mode. Fix: Command inclined surface cancel before coordinate selection.
MitsubishiProgram Error (P942)Executed coordinate system selection while Simple Tool Center Point Control (G174) is active.Program execution halts; control panel displays "Program Error (P942)".Root Cause: Coordinate shift commanded during tool center point control. Fix: Deactivate tool center point control before selecting coordinate systems.
MitsubishiProgram Error (P953)Executed coordinate system selection while Tool Axis Direction Control (G53.1 or G53.6) is active.Program execution halts; control panel displays "Program Error (P953)".Root Cause: Coordinate shift commanded during tool axis direction control. Fix: Cancel tool axis direction control first.
MitsubishiProgram Error (P35)G10 L2 Pn command is specified with a parameter value range exceeding the maximum limit (e.g., P7 or higher, or out-of-range offset).Program execution halts; control panel displays "Program Error (P35)".Root Cause: Workpiece offset system number is out of range. Fix: Limit the P address range from P1 to P6 for standard workpiece coordinate systems.

Application Note

A catastrophic mechanical crash shatters the carbide tool tip, damages the axis ball screws, and destroys the raw stock when G55 offset variables are modified during a single-block stop or program interruption. On the shop floor, if an operator pauses execution at a single-block stop to update the G55 coordinate registers (for example, by entering a new offset value via G10 or modifying system variable #5241 on a Mitsubishi machining center), the motion kernel does not apply this update to the currently buffered movement block. The new setting only takes effect from the subsequent block. Consequently, when the operator presses cycle start, the machine resumes travel along a trajectory evaluated from the old, uncompensated offset values. The axis will drive the spindle or turret directly into table-mounted clamps, a fixture vise jaw, or the rotating jaws of a spindle chuck, causing a high-current axis overload alarm and turning the workpiece into scrap.

Related Command Network

  • G54 (Workpiece Coordinate System 1): Selects the primary workpiece coordinate system, serving as the default zero offset that is typically compared with or transitioned to G55 during multi-fixture setups. Link: G54 Workpiece Coordinate System
  • G53 (Machine Coordinate System Selection): Temporarily suppresses the active G55 workpiece coordinate system offset to allow non-modal movement commands relative to the machine's absolute reference zero for tool changes or safe axis retraction. Link: G53 Machine Coordinate Selection
  • G52 (Local Coordinate System): Establishes a temporary local shift relative to the active G55 workpiece coordinate system, shifting the coordinate origin without altering the baseline offset values stored in the G55 register. Link: G52 Local Coordinate System
  • G10 (Programmable Data Input): Updates coordinate system offset registers, such as G55, programmatically during execution using absolute or incremental inputs.

Conclusion

Executing G55 shifts absolute toolpaths relative to raw stock zero points, enabling multi-setup machining on a single table. Maximizing safety during coordinate shifts requires programmers to always retract the spindle to machine reference coordinates using G53 before calling G55, and operators must verify offset inputs using a dry run after any single-block intervention.

FAQ

Why does G55 cause a collision after modifying offsets during a single-block stop?

Modifying G55 coordinate offsets on the register screen or via G10 during a single-block pause does not affect the currently buffered motion block. The CNC control reads and processes the updated offset only from the next block. Operators must reset the control or rewind the program to force the interpreter to recalculate and apply the updated G55 coordinates before resuming movement.

How does G55 behave during a Siemens SINUMERIK native frame rollback?

When executing a manual arbitrary reverse run or native frame rollback on a Siemens control, the controller automatically deselects active G55 zero offsets to prioritize machine coordinate safety. Programmers must ensure that working area limitations (G25/G26) are programmed to define protected envelopes around fixtures when manually backing up axes.

What causes Alarm PS0368 to trigger when working with G55 on Fanuc controls?

Fanuc controls incorporate a software-locked safety interlock that prevents modifying tool length compensation parameters, such as Parameter 5040 Bit 3, while active tool offsets are applied. Programmers must execute a G49 command in the NC program to cancel all active tool length compensations before executing any parameter modifications.

Still not resolved?

Ask our AI assistant about this topic in natural language. Grounded in verified sources, no hallucinations.

Ask AI Assistant
Hakan Gündoğdu
Hakan Gündoğdu
  • 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