Skip to main content
CNC.wiki

G60 Single-Direction Positioning Guide for Fanuc, Siemens, and Mitsubishi

Master G60 unidirectional positioning and exact stop check on Fanuc, Siemens, and Mitsubishi CNC controls to eliminate backlash and prevent tool collisions.

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

CNC CARE Co-founder

Introduction

Resuming automatic cycles after a manual intervention without correcting coordinate system shifts or active offsets can cause the tool carrier or indexing table to move along an uncompensated trajectory. The cutting tool or turret can bypass software limits and stored stroke barriers, such as chuck or tailstock barriers, driving the cutting tool directly into table-mounted workpiece clamps, a fixture vise jaw, or the rotating jaws of a spindle chuck. This unexpected movement results in a catastrophic hard collision, throwing high-current spindle overload alarm codes, and rendering the expensive raw material a completely ruined scrap part. To eliminate these physical risks and prevent dimensional drift in precision operations, CNC programmers implement specialized positioning strategies. Utilizing G60 secures machining paths across different control brands, contrasting with origin-shifting setups like the G59 Workpiece Coordinate System.

Technical Summary

SpecificationDetails
Command CodeG60
Modal GroupFanuc: Group 00 (unmodal/one-shot) or Group 01 (modal rapid positioning) via Parameter No. 5431 Bit 0 (MDL).
Siemens: Group 10 (modal exact stop deceleration check).
Mitsubishi: Group 00 (unmodal/one-shot) or Group 01 (modal rapid positioning).
BrandsFanuc, Siemens, Mitsubishi
Critical ParametersParameter No. 8209 / #8209 (G60 shift amount/creep distance), Parameter No. 2084 / #2084 (G60 target axis), MD 20150 ($MC_GCODE_RESET_VALUES), MD 20734 ($MC_EXTERN_FUNCTION_MASK).
Main ConstraintG60 single-direction/unidirectional positioning is strictly limited to Machining Center (milling / M-system) controls on Fanuc and Mitsubishi. Siemens native exact stop is modal but can be mapped to directed positioning under ISO Dialect Mode (G291).

Quick Read

  • Decide whether to enable Group 01 modal G60 or keep it as Group 00 one-shot via Parameter No. 5431 MDL on Fanuc systems.
  • Always match Parameter No. 8209 G60 shift amount to the machine indexing units to prevent Program Error P20.
  • Ensure feedrate F is declared greater than zero when G60 exact stop check is called on Siemens controls to avoid Alarm 14800.
  • Verify that Simple Inclined Surface Control G176 is cancelled before commanding G60 to prevent Program Error P951.
  • Use G188 to switch Mitsubishi controls to Machining Center mode to enable G60, as it is disabled under G189 Lathe mode.
  • Leverage G127 Manual Arbitrary Reverse Run on Mitsubishi systems to backtrack the tool without losing G60 coordinate offsets.

Basic Concepts

Implementing the G60 single-direction positioning command mathematically shifts rapid travel paths, ensuring high precision during fine machining operations such as boring, indexing, or pocketing. To mechanically eliminate the physical backlash inherent in ball screws and gears, the motion kernel forces the tool to approach the target coordinate from a constant, predefined direction. Unlike typical offset adjustments such as a G59 Programmable Zero Offset, which shift the origin, G60 alters the trajectory of the movement itself to guarantee repeatability.

Physically, the tool path executes in two stages: first, the tool travels at rapid traverse (G00) to an intermediate position overshooting the target by the creep distance set in Parameter No. 8209 (or Parameter #8209 on Mitsubishi), stops or decelerates once, and then advances to the final coordinate end point in the specified final advance direction. This behavior prevents dimensional drift and ensures that the mechanical slack in the drive system is always pushed in the same direction.

This positioning behavior is highly robust, executing even if Z-axis cancel or machine lock options are active (where the coordinate display updates while the axis remains stationary). If a mirror image is active, the tool moves in the opposite direction to the intermediate point, but the final approach within the creep distance remains unaffected, protecting the geometry from variations.

Command Structure

Programmers must explicitly declare G60 positioning to switch from standard bidirectional motion to unidirectional creep. The control evaluates the current tool location relative to the target, determines if the path requires a direction reversal, and executes the overshoot step automatically. This ensures that the final movement toward the coordinate always occurs under identical mechanical load conditions.

If the tool approach direction is already aligned with the programmed creep vector, the overshoot does not trigger, and the controller feeds directly to the target. However, if the motion requires a reverse approach, the axis travels past the target by the parameterized creep distance, decelerates to a complete stop, and then advances in the positive creep direction.

Syntax

; Fanuc and Mitsubishi Milling Controls
G60 X[coordinate] Y[coordinate] Z[coordinate] [additional axis] ;

; Siemens Native Mode G60 [G601/G602/G603] G01 X[coordinate] Y[coordinate] Z[coordinate] F[feedrate] ;

; Siemens ISO Dialect Mode G291 ; G60 X[coordinate] Y[coordinate] Z[coordinate] ;

Parameters

Parameter ReferenceDescriptionValid Range / Options
Parameter No. 8209 (Fanuc) / Parameter #8209 (Mitsubishi)Sets the final creep positioning direction and distance (creep distance/shift amount) for each axis.Real values matching the indexing unit.
Parameter No. 2084 (Fanuc) / Parameter #2084 (Mitsubishi)Designates target axis for automatic unidirectional positioning during G00 rapid movements.Axis index number.
Parameter No. 5431 Bit 0 (MDL) (Fanuc)Toggles G-code group assignment of G60 between one-shot and modal.0 (Group 00 / unmodal) or 1 (Group 01 / modal).
MD 20150 (Siemens)Configures reset position of G groups (defaults to G60 exact stop or G64 continuous path).Array indices.
MD 20734 Bit 4 (Siemens)Controls G00 rapid interpolation deceleration behavior.0 (exact stop G60) or 1 (exact stop G09).

Brand Applications

Fanuc

On Fanuc controls, G60 is programmed to prevent mechanical backlash. The system utilizes Parameter No. 8209 to define the creep distance. Standard rapid traverse blocks can automatically undergo unidirectional approach on the designated axes by configuring Parameter No. 2084.

Format example: G60 X150.0 Y100.0 Z-50.0 ;

TypeIdentifierDescription
ParameterParameter No. 5431 Bit 0 (MDL)Toggles G-code group assignment of G60 between Group 00 and Group 01.
ParameterParameter No. 8209Sets the final creep positioning direction and distance for each axis.
AlarmProgram Error (P61)G60 commanded on an NC system without the unidirectional positioning option enabled.
AlarmProgram Error (P20)Parameter 8209 shift amount is not in the indexing unit, or command is indivisible.
Version DifferenceMilling vs. TurningG60 is supported exclusively on Milling systems.

Warning: Resuming automatic cycles after a manual intervention without correcting these values can cause the tool carrier to bypass software limits, driving the turret directly into workpiece clamps or spindle chucks, resulting in a hard collision.

Siemens

On Siemens controls, G60 functions as a modal exact stop deceleration command. Under native Siemens SINUMERIK mode, parameters such as MD 20150 control group resets.

Format example: G60 G601 G01 X150.0 Y100.0 Z-10.0 F1000 ;

TypeIdentifierDescription
ParameterMD 20150Configures reset position of G groups (defaults to G60 exact stop or G64 continuous path).
ParameterMD 20734 Bit 4Controls G00 rapid interpolation deceleration (0 = exact stop G60; 1 = exact stop G09).
AlarmAlarm 14800Programmed path velocity is zero or undefined after G60 exact stop selection (feedrate F = 0).
AlarmAlarm 12080Native Siemens commands called under G291 ISO dialect mode with MD 20734 Bit 3 = 0.
Version Difference840D sl vs. 802D slMD 10604 WALIM_GEOAX_CHANGE_MODE is locked on 802D sl but editable on 840D sl.

Warning: If the limits are configured too tightly, the machine will dwell longer at each block transition, which significantly increases cycle times and can lead to tool dwell marks on the workpiece.

Mitsubishi

On Mitsubishi controls, G60 is used as a unidirectional positioning command. The controller relies on Parameter #8209 to define the creep distance. Automatic unidirectional positioning during G00 rapid movements can be configured via Parameter #2084.

Format example: G60 X150.0 Y100.0 Z-50.0 ;

TypeIdentifierDescription
ParameterParameter #2084 G60_axDesignates specific axes for automatic unidirectional positioning during G00 positioning.
ParameterParameter #8209 G60 shift amountSets the last positioning direction and distance for each axis.
AlarmProgram Error (P61)G60 command programmed on NC system without the unidirectional positioning option.
AlarmProgram Error (P951)G60 command executed while Simple Inclined Surface Control (G176) is modal.
Version DifferenceMachining Center vs. LatheG60 is supported exclusively on Machining Center systems and is not available on standard Lathe systems.

Warning: Programmers must never turn off the synchronized spindle rotation command while a workpiece is actively chucked by the reference spindle and synchronized spindle, as this causes a sudden spindle stop and a highly hazardous situation.

Brand Comparison

Feature / SpecificationFanucSiemensMitsubishi
FunctionUnidirectional / single-direction positioningExact stop - deceleration (G290); Directed positioning (G291)Unidirectional / single-direction positioning
Modal GroupGroup 00 (one-shot) or Group 01 (modal)Group 10 (modal)Group 00 (one-shot) or Group 01 (modal)
Fine/Coarse ControlParameter-based checksModal sub-codes G601, G602, G603Parameter-based checks
Automated G00 modeYes (using Parameter No. 2084 / 8209)NoYes (using Parameter #2084 / #8209)
Lathe SupportNo (Milling only)Yes (ISO Mode G291 support)No (Milling only)
Compiler format switchNoYes (bilingual G290/G291 toggle)Yes (Format switch G188/G189)
Reverse run trackingNoNo (modals deselected)Yes (special storage block under G127)

Technical Analysis

The G60 command represents fundamentally different motion control functions across the major controller brands. On Fanuc and Mitsubishi systems, G60 is designed strictly as a unidirectional positioning command that shifts tool paths to overshoot the target coordinate and approach from a constant direction. This behavior mechanically cancels the backlash inherent in ball screws and gears. Conversely, native Siemens SINUMERIK mode implements G60 as an exact stop deceleration check. Instead of overshooting coordinates to solve backlash, the Siemens control monitors axis deceleration to ensure all geometry axes settle within a specified tolerance window (such as the fine, coarse, or interpolation end states) before executing the next NC block. Siemens only emulates directed backlash-elimination positioning when toggled into ISO Dialect mode via G291.

Modality configurations also highlight critical architectural differences between these systems. Fanuc permits the G60 positioning command to switch between unmodal and modal states dynamically by editing Parameter No. 5431 MDL, enabling programmers to toggle G60 between a one-shot Group 00 command or a modal Group 01 command. Siemens manages its exact stop G60 rigidly as a modal command within Group 10, lacking a parameter-driven modal group switcher. Additionally, Fanuc and Mitsubishi support fully automated, axis-based unidirectional positioning without explicit G60 programming by utilizing Axis-specific configuration parameters (such as Parameter No. 2084 or Parameter #2084), which automatically modify standard rapid traverse blocks. Siemens exact stop check cannot be mapped as an axis-specific, overshooting rapid traverse modifier of this kind.

Mitsubishi offers advanced software integration that sets it apart from Fanuc and Siemens, specifically through its bimodal Program Format Switch compiler. Toggling G188 switches the interpreter to machining center format (M-system) and maps Group 12 workpiece coordinate selections dynamically to Group 14, where G60 is compiled, while G189 switches the compiler back to lathe formats and disables G60. Additionally, Mitsubishi integrates G60 coordinate modals with its Manual Arbitrary Reverse Run G127 function, using a specialized modal information storage block to track and maintain active offsets during handwheel rollback. While Siemens features separate modal G-codes to define exact stop block change criteria and supports zero offset suppression through G53, G153, and the high-level SUPA command, Fanuc and Mitsubishi rely on standard non-modal suppression, lacking a multi-level structure like SUPA.

Program Examples

Fanuc Program Example

G90 G00 X0 Y0 ;
G60 X150.0 Y100.0 Z-50.0 ;
G00 B90.0 ;

dry run

The controller coordinates absolute movement to position the tool carrier at the start point. When the G60 block is executed, the axis coordinates move at rapid traverse toward X150.0, Y100.0, and Z-50.0. The motion kernel calculates the path to overshoot each target axis by the creep distance configured in Parameter No. 8209. The tool carrier decelerates to a stop at this intermediate overshoot position and then feeds in the positive creep direction to the final target coordinates. In the next block, Axis B moves to 90.0 degrees, automatically executing a unidirectional approach based on Parameter No. 2084.

Siemens Program Example

G290 ;
G60 G601 G01 X150.0 Y100.0 Z-10.0 F1000 ;
G291 ;
G60 X100.0 Y50.0 ;

dry run

Command G290 switches the interpreter to native Siemens SINUMERIK mode. The next block activates modal G60 exact stop deceleration check along with G601 to select the exact stop fine window. The tool moves to X150.0, Y100.0, and Z-10.0 using linear interpolation at a feedrate of 1000 mm/min. The control halts block transition until the axes have settled within the fine tolerance window. G291 then toggles the compiler back to ISO Dialect mode. Under G291, G60 acts as a unidirectional positioning command, causing the tool to approach X100.0 and Y50.0 with an overshoot and creep movement to eliminate backlash.

Mitsubishi Program Example

G90 G00 X0 Y0 ;
G60 X150.0 Y100.0 Z-50.0 ;
G00 B90.0 ;

dry run

The system establishes absolute coordinates and positions the tools at X0, Y0. Command G60 is programmed to execute unidirectional positioning to X150.0, Y100.0, and Z-50.0. The motion kernel calculates the path, overshooting each target axis by the creep distance set in Parameter #8209, halts, and then feeds to the final target in the designated direction. The final block commands a rapid position on Axis B, triggering automatic unidirectional positioning based on Parameter #2084.

Error Analysis

BrandAlarm CodeTrigger ConditionOperator SymptomRoot Cause / Fix
FanucProgram Error (P61)G60 commanded on an NC system without the unidirectional positioning option enabled.System stops block execution and displays alarm code P61 on the screen.Remove the G60 command from the program or contact the machine tool builder to enable the option.
FanucProgram Error (P20)Parameter 8209 shift amount is not in the indexing unit, or command is indivisible in command unit.The control rejects the command, halts motion, and triggers alarm P20.Align the shift amount in Parameter No. 8209 and the programmed coordinates with the indexing units.
FanucProgram Error (P951)G60 command is executed while Simple Inclined Surface Control (G176) is modal.The motion path aborts, and the console displays alarm P951.Cancel Simple Inclined Surface Control G176 before programming the G60 command.
SiemensAlarm 14800Programmed path velocity is zero or undefined after G60 exact stop selection.The control halts tool movement and displays Alarm 14800.Declare a path velocity F greater than zero in the active block or preceding blocks.
SiemensAlarm 12080Native Siemens commands called under G291 ISO dialect mode with MD 20734 Bit 3 = 0.Interpreter fails to parse the block and raises Alarm 12080.Configure MD 20734 Bit 3 = 1, or use the correct G290 native command interpreter.
MitsubishiProgram Error (P923)3D coordinate conversion (G68.1) commanded in the same block as G60 unidirectional positioning.The block fails to compile, and the operator panel shows alarm P923.Program 3D coordinate conversion G68.1 and G60 in separate blocks.

Application Note

When programming G60 for rotary table indexing, setup engineers must synchronize clamp and unclamp cycles with the creep motion. During single-block operations, the physical axis stop occurs exactly at the intermediate position defined by Parameter No. 8209 G60 SHIFT. At this intermediate point, the control outputs the table unclamp M-codes, allows the indexing unit's clamp to engage/disengage, and then performs the final creep approach. If the coordinate system or indexing resolution is misconfigured, the control aborts with Program Error (P20). Resuming automatic cycles after a manual intervention without correcting these values can cause the turret to move along an uncompensated trajectory, bypassing software limits and stored stroke barriers. This drives the cutting tool or turret directly into workpiece clamps, a fixture vise jaw, or the rotating jaws of a spindle chuck, causing a hard collision, high-current overload alarm codes, and rendering the raw material a completely ruined scrap part.

Related Command Network

  • G59 Workpiece Coordinate System — A coordinate offset setup that shifts the program origin, which works independently of G60 backlash-elimination trajectories.
  • G59 Programmable Zero Offset — A Siemens command that dynamically shifts coordinate offsets, which differs from G60 by altering origin registers rather than motion deceleration checks.
  • G54.1 Additional Workpiece Coordinate Systems — Extends the available coordinate frames for multi-fixture setups, often used in conjunction with G60 to maintain positioning accuracy across multiple parts.
  • G00 (Rapid Positioning) — Can automatically trigger unidirectional positioning when parameters No. 2084 and No. 8209 are configured.
  • G09 (Exact Stop) — Represents a one-shot deceleration check used to verify coordinate arrival before starting the next block, similar to Siemens G60 exact stop.

Conclusion

Securing high precision in pocketing and indexing operations requires careful selection of G60 single-direction positioning or exact stop modes. Operators must ensure that backlash shift parameters and coordinate system offsets are fully aligned before resuming automatic machining runs. Maintaining correct parameter settings and respecting axis boundaries protects the machine spindle, workpiece clamps, and turret components from severe physical impact damage.

FAQ

Why does G60 cause a Program Error P20 on Fanuc systems

This alarm is triggered when the G60 shift amount in Parameter No. 8209 is not set in indexing units, or when the programmed move distance is indivisible by the command system unit. To resolve this, operators must inspect Parameter No. 8209 and update the shift amount to match the indexing resolution of the target axis.

How does Siemens G60 differ from Fanuc G60 in native mode

On Siemens controls, G60 modal exact stop does not overshoot coordinates to cancel backlash. Instead, it forces all axes to decelerate to a complete stop and verify they have reached the exact positioning tolerance window before entering the next block. Programmers should define suitable tolerance levels (G601, G602, or G603) to optimize cycle times without leaving tool marks.

Can G60 unidirectional positioning be used on standard lathes

No, G60 single-direction positioning is restricted to machining centers (milling mode) on both Fanuc and Mitsubishi controls. On Mitsubishi, G60 is disabled under G189 lathe mode and causes compilation faults if programmed, so operators must utilize G188 to switch to machining center format before executing G60 positioning blocks.

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