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.
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
| Specification | Details |
|---|---|
| Command Code | G60 |
| Modal Group | Fanuc: 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). |
| Brands | Fanuc, Siemens, Mitsubishi |
| Critical Parameters | Parameter 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 Constraint | G60 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 Reference | Description | Valid 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 ;
| Type | Identifier | Description |
|---|---|---|
| Parameter | Parameter No. 5431 Bit 0 (MDL) | Toggles G-code group assignment of G60 between Group 00 and Group 01. |
| Parameter | Parameter No. 8209 | Sets the final creep positioning direction and distance for each axis. |
| Alarm | Program Error (P61) | G60 commanded on an NC system without the unidirectional positioning option enabled. |
| Alarm | Program Error (P20) | Parameter 8209 shift amount is not in the indexing unit, or command is indivisible. |
| Version Difference | Milling vs. Turning | G60 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 ;
| Type | Identifier | Description |
|---|---|---|
| Parameter | MD 20150 | Configures reset position of G groups (defaults to G60 exact stop or G64 continuous path). |
| Parameter | MD 20734 Bit 4 | Controls G00 rapid interpolation deceleration (0 = exact stop G60; 1 = exact stop G09). |
| Alarm | Alarm 14800 | Programmed path velocity is zero or undefined after G60 exact stop selection (feedrate F = 0). |
| Alarm | Alarm 12080 | Native Siemens commands called under G291 ISO dialect mode with MD 20734 Bit 3 = 0. |
| Version Difference | 840D sl vs. 802D sl | MD 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 ;
| Type | Identifier | Description |
|---|---|---|
| Parameter | Parameter #2084 G60_ax | Designates specific axes for automatic unidirectional positioning during G00 positioning. |
| Parameter | Parameter #8209 G60 shift amount | Sets the last positioning direction and distance for each axis. |
| Alarm | Program Error (P61) | G60 command programmed on NC system without the unidirectional positioning option. |
| Alarm | Program Error (P951) | G60 command executed while Simple Inclined Surface Control (G176) is modal. |
| Version Difference | Machining Center vs. Lathe | G60 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 / Specification | Fanuc | Siemens | Mitsubishi |
|---|---|---|---|
| Function | Unidirectional / single-direction positioning | Exact stop - deceleration (G290); Directed positioning (G291) | Unidirectional / single-direction positioning |
| Modal Group | Group 00 (one-shot) or Group 01 (modal) | Group 10 (modal) | Group 00 (one-shot) or Group 01 (modal) |
| Fine/Coarse Control | Parameter-based checks | Modal sub-codes G601, G602, G603 | Parameter-based checks |
| Automated G00 mode | Yes (using Parameter No. 2084 / 8209) | No | Yes (using Parameter #2084 / #8209) |
| Lathe Support | No (Milling only) | Yes (ISO Mode G291 support) | No (Milling only) |
| Compiler format switch | No | Yes (bilingual G290/G291 toggle) | Yes (Format switch G188/G189) |
| Reverse run tracking | No | No (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
| Brand | Alarm Code | Trigger Condition | Operator Symptom | Root Cause / Fix |
|---|---|---|---|---|
| Fanuc | Program 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. |
| Fanuc | Program 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. |
| Fanuc | Program 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. |
| Siemens | Alarm 14800 | Programmed 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. |
| Siemens | Alarm 12080 | Native 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. |
| Mitsubishi | Program 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.

- 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.