Skip to main content
CNC.wiki

G09 Exact Stop: CNC Non-Modal Deceleration Guide for Sharp Corners

Master G09 and G9 exact stop non-modal deceleration on Fanuc, Siemens, and Mitsubishi CNC controls to prevent corner rounding and collision risks.

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

CNC CARE Co-founder

Introduction

Running a high-speed profile milling or turning path without deceleration checks can cause a tool turret to overshoot critical transition corners and crash directly into a table vise jaw or rotating chuck. In continuous-path modes, the controller begins executing the subsequent block before the active axis motion physically finishes. This path blending rounds off sharp corners, but near tight workholding clearances, it can trigger a devastating hard collision, shatter the cutting tool, and turn a high-value workpiece into a ruined scrap part. The non-modal exact stop command—programmed as G09 on Fanuc and Mitsubishi systems, or G9 on Siemens SINUMERIK—provides a critical safety check by forcing the machine axes to decelerate to a complete stop and verify their positioning coordinates before proceeding.

Technical Summary

Technical SpecificationDetails
Command CodeG09 (Fanuc, Mitsubishi) / G9 (Siemens)
Modal GroupGroup 00 (Fanuc, Mitsubishi) / Group 11 (Siemens) — Non-modal (One-shot)
Supported BrandsFanuc, Siemens, Mitsubishi
Critical ParametersFanuc: No. 1497 (Segment threshold); Siemens: MD20734 (Function mask); Mitsubishi: sv024 (In-position check width)
Main ConstraintMust be programmed in each block where exact stop deceleration check is required; increases cycle times if overused.

Quick Read

  • Use for Critical Corners: Program G09/G9 only at critical sharp transition corners to prevent trajectory rounding without unnecessarily increasing cycle times.
  • Verify In-Position Widths: Check and configure servo positioning windows (such as Fanuc parameters, Siemens machine data, or Mitsubishi #2224 sv024) to control settle tolerances.
  • Insert in Subprograms for Cycles: Place exact stop commands directly in subprogram profile paths rather than canned cycles to ensure the deceleration check is executed.
  • Manage Zero Offset Retractions: Ensure zero offset suppression commands (G53/SUPA) safely cancel tool offsets by verifying tool carrier parameters like Siemens MD10760.
  • Avoid Look-Ahead Buffer Depletion: Prevent overcutting and cutter radius compensation gouging on Fanuc by limiting non-motion blocks under active G41/G42.
  • Monitor Active Transformation Conflicts: Separate exact stops from conflicting codes like Mitsubishi's G43.7 (Tool Position Compensation) or G68.1 (3D Coordinate Conversion) to avoid program compile errors.

Basic Concepts

At high feedrates, continuous-path cutting modes allow coordinate axes to transition to subsequent blocks before the active coordinate movement is physically completed. This path blending causes outside corners to round off. By programming a non-modal exact stop, the operator forces the axes to decelerate to zero velocity at the end of the programmed block. This delay lets the physical tool position catch up to the target coordinates, preserving profile accuracy on the workpiece.

However, because the axes must decelerate to a complete stop, utilizing exact stop on consecutive blocks adds significant cycle time. Programmers should reserve G09/G9 strictly for critical transition corners. When the axes settle, the control verifies that the lag falls within the designated in-position width before launching the subsequent block, balancing spatial precision and mechanical machine shock.

Command Structure

The non-modal exact stop command is a one-shot instruction that must be declared in the specific block where a deceleration check is required. It only affects the motion commands (such as G01 linear interpolation, or G02 and G03 circular interpolation) defined within that same block. If no motion is programmed in the block, the command does not execute a deceleration check.

Once programmed, the control suspends continuous path execution at the end of the block. The system verifies that the servo axes have arrived within the configured in-position tolerance. When the positioning criteria are met, the block transition occurs and the subsequent NC block is launched. This block-by-block control allows localized precision without disrupting the global modal cutting mode.

Syntax:

  • Fanuc / Mitsubishi: G09 G01 X_ Y_ Z_ F_ ;
  • Siemens: G9 G01 X_ Y_ Z_ F_ [G601/G602/G603] ;

Parameters:

BrandParameterDescriptionValue Range
FanucParameter No. 1497Sets the critical segment length threshold for the automatic exact stop check function.Positive integers
FanucParameter No. 5040 Bit 3 (TCT)Controls the tool length compensation shift type.Binary (0 or 1)
FanucParameter No. 3401 Bits 7 (GSC) and 6 (GSB)Selects G-code System A, B, or C to determine group and modal assignment.Binary combinations (00, 01, 10, or 11)
FanucParameter No. 3402 Bit 6 (CLR)Determines whether modal G-codes are placed in the default cleared state at power-up/reset.Binary (0 or 1)
Siemens$MC_EXTERN_FUNCTION_MASK (MD20734) Bit 3Controls the ISO Dialect translator behavior for handling scanner errors.0 (scanner errors generate alarms) or 1 (scanner errors bypassed)
Siemens$MC_EXTERN_FUNCTION_MASK (MD20734) Bit 4Controls exact stop execution on rapid traverse (G00) blocks.0 (G00 continuous path if G64 is active) or 1 (G00 always enforces exact stop)
Siemens$MC_GCODE_RESET_VALUES (MD20150)Defines the default G-group reset states at power-on.E.g., G60 (Exact stop) or G64 (Cutting mode)
MitsubishiServo Parameter #2224 sv024Sets the basic cutting feed in-position check width in microns.Microns
MitsubishiParameter #2077 G0inpsSets the positioning (G00) in-position check width in microns.Microns
MitsubishiParameter #2078 G1inpsSets the cutting feed (G01) in-position check width in microns.Microns
MitsubishiParameter #1148 I_G611Determines default modal state of high-accuracy control at power-on.0 (OFF / G64) or 1 (ON / G61.1)
MitsubishiParameter #1306 InpsTypDictates the deceleration check method (command, smoothing, or in-position).Deceleration, smoothing, or in-position checks
MitsubishiParameter #3004 Bit 2G09 check OFF system register variable to disable checking on-the-fly.0 (Active exact stop check) or 1 (Disabled on-the-fly)

Brand Applications

Fanuc

Fanuc G09 exact stop is a non-modal Group 00 command that suspends continuous-path mode. It ensures sharp external profiles during high-speed milling or turning by decelerating the axes to zero velocity.

The standard block layout is: G09 G01 X150.0 Y100.0 F200.0 ;

CategoryDetails
ParametersParameter No. 1497 (segment length threshold), Parameter No. 5040 Bit 3 (TCT), Parameter No. 3401, Parameter No. 3402.
AlarmsAlarm PS0368 (modifying Parameter No. 5040 while offsets are active), Alarm PS0010 (improper G-code or disabled option), Alarm PS0306 (chamfering axis mismatch), Alarm PS0051 (invalid chamfering sign).
VersionsSeries 15 program format vs. Series 30i/31i/32i-B Plus (controlled by Parameter No. 0001 Bit 1 FCV = 1, which switches interpretation and disables modern canned cycles).

Warning: Inserting non-motion blocks (such as dwells G04 or parameter sets G10) while cutter radius compensation (G41/G42) is active can deplete the look-ahead buffer, causing axis movement to halt or gouge the stock. Programmers must cancel tool offsets prior to modifying parameter configurations.

Siemens

Siemens SINUMERIK controls designate the non-modal exact stop as G9 in Group 11. It allows precise positioning at block boundaries, and transitions can be managed via Group 12 positioning windows.

The standard block layout is: G9 G01 X150.0 Y120.0 F500.0 G601 ;

CategoryDetails
Parameters$MC_EXTERN_FUNCTION_MASK (MD20734) Bit 3 and Bit 4, $MC_GCODE_RESET_VALUES (MD20150).
AlarmsAlarm 14800 (programmed path velocity less than or equal to zero), Alarm 12080 (syntax error in G291 ISO mode), Alarm 14060 (skip level out of range).
VersionsSINUMERIK 840D sl vs. 802D sl (Group 20 G51.2 multi-edge turning and inverse-time feedrate G93 are fully supported on 840D sl but unavailable on 802D sl).

Warning: Retracting axes near physical workholding devices using offset suppression (G53, G153, or SUPA) can cause hard collisions if tool compensations are not suppressed due to parameter MD10760 settings. Avoid setting positioning windows too tight to prevent unnecessary settle delays.

Mitsubishi

Mitsubishi CNC systems execute G09 to check coordinate positioning and prevent mechanical machine shock when axis feedrates change. The command is active only for cutting moves in the declared block.

The standard block layout is: G09 G01 X100.000 F150 ;

CategoryDetails
ParametersServo Parameter #2224 sv024 (cutting feed check width), Parameter #2077 (G00 check width), Parameter #2078 (G01 check width), Variable #3004 Bit 2.
AlarmsProgram Error P45 (G09 while tool position compensation G43.7 is active), Program Error P923 (G09 with 3D coordinate conversion G68.1), Program Error P33 (illegal G-code command format).
VersionsM8 Series vs. Legacy (sequence number address N supports up to 8 digits on M8 Series; M80V TypeB restricts G09 when combined with spline G05.1 Q2 or inclined surface G68.2).

Warning: Combining G09 with advanced transformations or compensation changes (e.g., tool position compensation or coordinate conversions) triggers compile errors (P45, P923, P33). Ensure that unclamp M-codes are timed correctly with deceleration to avoid synchronization alarms.

Brand Comparison

TopicFanucSiemensMitsubishi
Command designationG09 (Group 00 unmodal exact stop check)G9 (Group 11 unmodal exact stop check)G09 (Group 00 unmodal exact stop check)
Modal alternativeG61 (Group 13 modal exact stop mode)G60 (Group 10 modal exact stop mode)G61 (Group 13 modal exact stop mode)
In-position criteriaGlobal in-position parameter checksGroup 12 block changes (G601/G602/G603)Split parameters #2077 (G00) and #2078 (G01)
Translation supportStandard Fanuc interpreterBilingual translators (G290/G291) and MD20734Fanuc legacy translation
Programmatic bypass— (no source)Scanner error bypass via MD20734 Bit 3System register #3004 Bit 2 (G09 check OFF)

Technical Analysis

Analyzing deceleration behaviors reveals structural differences between Fanuc, Siemens SINUMERIK, and Mitsubishi controls. While Fanuc and Mitsubishi treat exact stop as an unmodal Group 00 command, Siemens separates modal exact stop (G60) into Group 10 and non-modal exact stop (G9) into Group 11. This separation allows Siemens to govern block transitions using an independent Group 12, where programmers choose between fine positioning (G601), coarse positioning (G602), or setpoint interpolation (G603) windows. Fanuc and Mitsubishi, by contrast, rely on global parameter settings or axis-specific registers rather than G-code selections to dictate settling criteria.

Mitsubishi also allows programmers to override exact stop checks dynamically. By setting System Variable #3004 Bit 2 to 1, the controller ignores G09 checks on-the-fly, an operation not supported in standard Fanuc configurations. For high-speed rapid traverse, Mitsubishi also integrates G09 as a direct override to its block overlap (G0.5 P1) function, canceling the overlap and enforcing zero velocity. Siemens manages translation of Fanuc G09 files through bilingual G291 interpreter modes, utilizing machine data $MC_EXTERN_FUNCTION_MASK Bit 3 to handle syntax scanner errors, whereas Fanuc maintains a conservative look-ahead buffer philosophy where non-motion compensation blocks are heavily restricted to prevent vector calculation failures.

Program Examples

Fanuc Example

G09 G01 X150.0 Y100.0 F200.0 ;
G09 G02 X80.0 Y40.0 R30.0 F120.0 ;
G09 G01 Z-35.0 F150.0 ;

Dry Run Explanation:

  1. In the first block, the tool executes linear interpolation at 200.0 mm/min to X150.0 and Y100.0. The G09 command forces the axes to decelerate to zero velocity at the endpoint, checking that the actual tool position matches the target coordinate before proceeding.
  2. In the second block, the tool moves along a clockwise circular arc of radius 30.0 mm to coordinates X80.0 and Y40.0. Axis feedrate decelerates to zero at the arc boundary to verify the positioning accuracy.
  3. In the third block, the Z-axis plunges to Z-35.0 at 150.0 mm/min, bringing axis speed to a complete stop at the bottom to perform an in-position check before subsequent coordinate moves.

Siemens Example

G9 G01 X150.0 Y120.0 F500.0 G601 ;
G9 G02 X80.0 Y40.0 CR=30.0 F250.0 G602 ;
G64 ;
G9 G01 Z-25.0 F120.0 ;

Dry Run Explanation:

  1. The first block commands a linear movement to X150.0 and Y120.0 at a feedrate of 500.0 mm/min. The G9 command triggers a non-modal exact stop, and the G601 setting ensures the block transition is delayed until the axes enter the "fine" positioning window.
  2. The second block executes a clockwise circular interpolation to X80.0 and Y40.0 with a 30.0 mm radius. The transition occurs when the axes enter the "coarse" positioning window set by G602.
  3. The third block activates continuous-path mode G64, allowing subsequent blocks to blend feedrates.
  4. The fourth block executes a non-modal exact stop Z-axis plunge to Z-25.0, halting the axis completely before the control reverts to G64 continuous-path blending.

Mitsubishi Example

G09 G01 X100.000 F150 ;
G09 G02 X50.0 Y50.0 R25.0 F120 ;
G09 G01 Z-50.0 F100 ;

Dry Run Explanation:

  1. The first block performs linear interpolation to X100.0 at 150 mm/min. G09 forces the X-axis to decelerate to a complete stop, verifying that axis lag is within the cutting feed in-position width parameter #2078 before proceeding.
  2. The second block moves the tool along a clockwise circular path to X50.0 and Y50.0 with a 25.0 mm radius, checking the exact stop criteria at the corner transition.
  3. The third block plunges the Z-axis to Z-50.0, decelerating feedrate to zero at the bottom to verify positioning status.

Error Analysis

BrandAlarm CodeTrigger ConditionOperator SymptomRoot Cause / Fix
FanucAlarm PS0368Modifying Parameter No. 5040 Bit 3 (TCT) while coordinate or tool offsets are active.The CNC system displays PS0368 and halts execution immediately.Tool offsets must be canceled prior to altering tool length compensation shift parameters.
FanucAlarm PS0010Programming an invalid G-code or calling a function with disabled software options.CNC monitor shows "IMPROPER G-CODE" and stops program compilation.Verify G-code syntax and ensure corresponding software features are enabled on the control.
SiemensAlarm 14800Commanding axis motion with a path velocity equal to zero or omitting the F word.The controller interrupts the NC program and displays a zero velocity error.Specify a valid, non-zero feedrate (F word) in the active block or enable fixed feedrate functions.
SiemensAlarm 12080Syntax error in ISO Dialect mode G291 when compiler encounters an unmapped command.The ISO translation process halts with a syntax error display.Correct the unmapped block syntax, or enable MD20734 Bit 3 to bypass scanner errors to the native translator.
MitsubishiProgram Error P45Programming G09 exact stop in the same block as active Tool Position Compensation G43.7.The control rejects the block layout and outputs Program Error P45.Avoid combining G43.7 with G09 in the same block; cancel or isolate offsets before deceleration checks.
MitsubishiProgram Error P923Commanding G09 in the same block as a 3D coordinate conversion G68.1.NC compilation stops with a coordinate transformation conflict error P923.Program G09 separately or cancel active G68.1 coordinate rotations before executing the exact stop check.

Application Note

Gouging high-value raw stock and rendering workpieces scrap occurs when programmers insert dwells (G04) or parameter modifications (G10) under active cutter radius compensation (G41/G42) alongside G09 blocks. In Fanuc systems, parsing more than two consecutive non-motion blocks exhausts the look-ahead compensation buffer, preventing the toolpath planner from calculating correct offset vectors. Operators must configure chuck boundaries on the Barrier Chuck and Barrier Tailstock screens of the HMI panel. If a coordinate offset shift or a look-ahead buffer error pushes the tool turret into these virtual electronic exclusion zones, the controller immediately halts axis movement and triggers Alarm PS0452, preventing a physical hard collision between the tool turret and the rotating chuck jaws. Similarly, on Mitsubishi systems, operators must avoid activating C-axis clamping codes (clmp_M) before the axis has finished decelerating under G09, as a mismatch in the unclamp delay (clmp_D) will trigger a synchronization alarm, fracture the drill tool, and ruin the workpiece.

Related Command Network

  • G08 Look-Ahead Control: Modal look-ahead control command used on Fanuc and Mitsubishi to buffer multiple blocks and prevent path rounding, which G09 overrides locally.
  • G07.1 Cylindrical Interpolation: Standard cylindrical interpolation command that maps flat coordinates onto a rotary cylinder axis, where G09 can be used to ensure precise corner transitions on the wrapped profile.
  • G07 Cylindrical Interpolation (Siemens): Siemens-specific cylindrical interpolation command where exact stop checks (G9) ensure the tool does not overshoot wrapped rotary boundaries during transition cuts.
  • G61 (Exact Stop Mode): Modal exact stop command that enforces deceleration checks on every block until canceled, serving as the modal equivalent to the one-shot G09 command.
  • G64 (Continuous Path Mode): Modal cutting mode that deactivates G61 exact stops, allowing smooth continuous-path blending between coordinate movements.

Conclusion

Optimizing machining cycles requires a selective approach to programming exact stops. Place G09 or G9 only at critical external sharp corners, pockets, or workholding retraction transitions to prevent dimensional rounding. For non-critical paths, rely on continuous-path blending or look-ahead control to keep feedrates high and cycle times minimal. Before running new programs, verify axis-specific in-position parameters and configure Chuck and Tailstock barriers to ensure workholding clearances are maintained during high-feed transitions.

FAQ

How does G09 differ from G61 or G60?

G09 (G9 on Siemens) is a non-modal, one-shot command that only forces deceleration at the end of the specific block in which it is programmed. G61 (G60 on Siemens) is modal, meaning the control will execute deceleration and in-position checks at the end of every block until the mode is explicitly canceled by programming G64 (continuous-path mode).

Can G09 be programmed inside canned or fixed cycles?

No, programming G09 in the same block as a canned cycle (such as G81 to G89 or roughing cycles like G71) will either cause the CNC to ignore the command or trigger a formatting alarm. To perform an exact stop deceleration check on the contour path of a canned cycle, the G09 command must be programmed directly into the subprogram contour profile blocks.

What happens if the positioning window parameters are set too small?

If the positioning window parameters (such as Mitsubishi sv024 or Siemens G601/G602 limits) are set excessively small, the servo axes will take a long time to settle within the designated tolerance. This increases the idle time at block transitions, significantly inflating the overall part cycle time without providing a measurable improvement in workpiece quality.

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