Skip to main content
CNC.wikiCNC.wiki

G00 Rapid Traverse Command: CNC Programming and Parameter Guide

Learn to program G00 rapid traverse on Fanuc, Siemens, and Mitsubishi CNC controls. Optimize rapid positioning parameters and resolve motion alarm codes.

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

CNC CARE Co-founder

Rapid Positioning Production Risks

A rapid tool movement during a setup check can instantly result in a devastating hard collision. When multiple axes are commanded in a rapid positioning block, the controller defaults to moving each axis independently at its maximum speed. This non-linear motion, commonly called a dog-leg trajectory, causes the tool to deviate from a straight-line path and crash directly into the workpiece, rotating chuck, or indexing turret. For instance, an unexpected curved path can trigger an immediate servo overload, snap the cutting tool, or warp the turret alignment. In extreme cases, the extreme rapid speed creates immense centrifugal force that can cause the chuck to lose its grip on the workpiece, throwing the raw stock across the enclosure and yielding an expensive scrap part.

Technical Summary

Technical SpecificationValue / Requirement
Command CodeG00 / G0
Modal GroupGroup 01, Modal
Supported BrandsFanuc, Siemens, Mitsubishi
Critical ParametersParameter 1401 bit 1 (LRP) for Fanuc, MD20730 $MC_G0_LINEAR_MODE for Siemens, #1086 G0Intp for Mitsubishi
Main ConstraintStrictly limited to positioning; never use for active material removal or workpiece cutting.

Quick Read

  • Programmers must never execute G00 rapid movements for active metal cutting, as the axes traverse at maximum machine capacity with no controlled cutting feedrate.
  • Operators must verify the active interpolation parameter—such as Fanuc's Parameter 1401 bit 1 (LRP) or Siemens' MD20730—to know whether the machine will move in a straight line or an independent "dog-leg" path.
  • Programmers should use specialized commands like Siemens' RTLION to force synchronized linear interpolation during rapid movements when navigating tight clearances.
  • Operators must ensure that manual reference position returns are completed immediately after powering up to prevent immediate axis travel inhibit alarms.
  • Programmers must strictly manage rotary axis speeds during rapid movements to prevent the centrifugal force from causing the spindle chuck to lose its physical grip on the workpiece.
  • Operators can utilize Mitsubishi's G00 dry run parameter #1085 (G00Drn) to validate motion paths at safe manual speeds before launching automatic cycles.

Basic Concepts of Rapid Traverse

The fundamental purpose of the G00 rapid traverse command is to reposition the cutting tool at the maximum physical traverse rate of the machine. This command is designed to minimize non-productive time, often referred to as 'air-cutting' time, during tool changes, cycle starts, and axis retractions. Because the CNC control commands the motors to run at their peak electrical and mechanical capacity, these movements are strictly non-cutting motions.

When moving multiple axes simultaneously, modern CNCs process axis movements in one of two distinct path interpolation styles: linear or non-linear. In non-linear interpolation, which is the factory default on many industrial machines, each servo motor accelerates to its maximum speed independently. The axis with the shortest travel distance completes its motion first, while the remaining axis continues to traverse. This creates an angled, two-part path known as a dog-leg trajectory rather than a straight-line vector.

Conversely, linear rapid interpolation forces all commanded axes to coordinate their acceleration and deceleration profiles. This synchronization ensures that the tool moves in a geometrically straight line from its current position to the destination endpoint, with all axes starting and stopping simultaneously. While linear rapid movement is highly predictable, it may slightly increase positioning time compared to non-linear positioning because the overall speed is limited by the slowest axis's physical acceleration limits.

Command Structure and Syntax

The G00 command requires specific coordinate addresses to identify the precise target position within the active coordinate system. Once commanded, G00 is modal, meaning the controller remains in rapid traverse mode for all subsequent coordinate inputs until another motion command from Group 01, such as linear interpolation G01 or circular interpolation G02, is explicitly programmed.

Depending on the machine geometry, G00 accepts absolute coordinates or incremental coordinates. Absolute coordinates target a specific physical position relative to the program origin, while incremental coordinates define a distance and direction relative to the tool's current coordinate location. Some controllers also permit advanced auxiliary parameters inside the rapid block to define in-position verification tolerances or custom override rates.

Address/ParameterDescriptionSystem Applicability
X, Y, ZTarget Cartesian coordinate endpoints.All Brands
U, WIncremental lathe coordinate endpoints.Mitsubishi, Fanuc (Lathe systems)
RP=Polar radius, absolute positive value.Siemens (Polar mode)
AP=Polar angle, absolute AC(...) or incremental IC(...) from +0 to 360 degrees.Siemens (Polar mode)
,IProgrammable in-position width to verify position accuracy before the next block.Mitsubishi
,FBlock-specific temporary rapid traverse feedrate override.Mitsubishi
PTarget position number.Fanuc Series 15-MA

Brand-Specific Applications

Fanuc

Fanuc controls manage the rapid positioning trajectory via Parameter 1401 bit 1 (LRP) and permit block-level feedrate control through Parameter 16050 bit 0 (GOF).

Programmers execute rapid traverse positioning using G00 X_ Y_ Z_ or lathe-specific coordinates.

  • Control Parameters: Parameter 1420 defines the rapid traverse rate for each axis at 100% override (valid data ranges: 30 to 240,000 mm/min for IS-B metric machines; 30 to 96,000 inch/min for IS-B inch machines). Parameter 1421 sets the F0 crawling feedrate (valid metric range: 30 to 15,000 mm/min).
  • Active Alarms: PS0224 occurs when G00 is commanded before a manual reference return at power-up. PS0015 triggers if simultaneous axes commanded exceed maximum settings. PS5007 triggers if the programmed distance exceeds allowable compensation boundaries.
  • Version Settings: Legacy Series 0 controllers utilize parameters 0518 to 0521 for axis-specific rapid rates. Modern controllers (Series 15, 16, 18, 21i, and 30i) standardize these under parameter 1420. Series 15-TA uses G00 X_ Z_ while Series 15-MA utilizes G00 P_.

Operating a Fanuc controller without verifying the LRP parameter configuration can result in a hard collision due to non-linear positioning path defaults.

Siemens

Siemens controls regulate the rapid traverse behavior using MD20730 and handle default axis positioning velocities via MD32060.

The rapid motion is programmed natively using G0 X... Y... Z... or with polar syntax G0 RP=... AP=....

  • Control Parameters: Machine data MD20730 $MC_G0_LINEAR_MODE defines whether rapid traverse uses linear interpolation. Machine data MD32060 $MA_POS_AX_VELO defines positioning axis velocity. MD20734 $MC_EXTERN_FUNCTION_MASK bit 4 enforces exact stop G09 in ISO dialect mode.
  • Active Alarms: Alarm 10861 occurs when rapid traverse is executed without a feed velocity while MD32060 is set to zero. Alarm 12701 is triggered if G00 is programmed inside a contour definition. Alarm 20062 occurs if a geometry axis is manually jogged while active in automatic or rotated frames.
  • Version Settings: Siemens supports native Siemens mode and ISO Dialect mode. ISO Dialect mode can force G00 exact stops via MD20734 bit 4, whereas native Siemens mode directly obeys G60 or G64 continuous-path mode settings.

Executing G00 positioning inside contour definitions is forbidden and will trigger a contour definition error, halting active machining cycles.

Mitsubishi

Mitsubishi controls manage rapid traverse rates through parameter #2001 and linear control acceleration profiles via parameter #2004.

The rapid positioning is programmed using G00 X_ Y_ Z_ a_ ,I_ ,F__; on milling systems or G00 X/U_ Z/W_ ,I_ ,F__; on lathes.

  • Control Parameters: Parameter #2001 rapid defines the base rapid rate per axis (setting range: 1 to 1,000,000 mm/min). Parameter #1086 G0Intp determines if G00 is non-interpolation (1) or linear (0). Parameter #1085 G00Drn enables dry run speed overrides. Parameter #2004 G0tL sets the linear acceleration time constant (range: 1 to 4000 ms).
  • Active Alarms: Alarm 0125 occurs when the rapid traverse override switch is set to "0" on the operation panel. Alarm 0105 indicates a hardware stroke end overtravel. Alarm Y51 0001 triggers when parameter #2004 G0tL is invalid.
  • Version Settings: Unidirectional positioning G60 is natively supported on Machining Center (M) systems but is completely unsupported on Lathe (L) configurations. High-cycle sampling for servo tuning during rapid movements is supported on M700V J0 or later but unsupported on standard M700/M70 configurations.

Programming an isolated letter G without a numerical value on a Mitsubishi control will cause it to be processed as G00, triggering immediate, unplanned rapid traverse movement.

Brand Comparison

Comparative CategoryFanucSiemensMitsubishi
Interpolation ToggleConfigured via global parameter 1401 bit 1 (LRP). Cannot toggle mid-program.Dynamically selectable mid-program using G-codes RTLION (linear) or RTLIOF (non-linear).Configured via global parameter #1086 G0Intp. Cannot toggle mid-program.
Programmable Rapid FeedrateParameter 16050 bit 0 (GOF) allows block F-code to override standard rapid feedrate.— (no source)Supported directly in block syntax using the ,F address (e.g., G00 X100. ,F1000).
In-Position Width ControlModally controlled using G09 or G61 exact stop parameters globally.Deceleration windows and exact stop criteria managed dynamically via modal G60 variants.Supported directly in block syntax using the ,I address (e.g., G00 X100. ,I50).
Isolated G Command Handling— (no source)— (no source)Processes an isolated G without a value as a native G00, launching rapid axis movement.

Technical Analysis

The analytical differences in G00 implementation across Fanuc, Siemens, and Mitsubishi reveal distinct design philosophies for rapid traverse. Fanuc relies heavily on hard-coded machine parameters. Changes to the interpolation path, such as toggling between non-linear dog-leg motion and synchronized linear motion, require modifying global parameter settings (Parameter 1401#1) which cannot be altered on a block-by-block basis in a standard part program. This design prioritizes system stability and consistency at the expense of local programming flexibility.

In contrast, Siemens provides an exceptionally dynamic approach that shifts control to the programmer. By using Siemens-specific commands like RTLION and RTLIOF, a programmer can switch the interpolation behavior of rapid blocks multiple times within the same program. This allows non-linear dog-leg paths for fast clearances in open space, and strict linear paths when navigating close to fixtures. Furthermore, Siemens treats the traditional exact stop command G60 purely as a velocity deceleration command because axial backlash is inherently managed by its background compensation algorithms.

Mitsubishi takes a hybrid approach, offering block-specific syntax features that bypass standard G-code modality limitations. The introduction of the ,F rapid feedrate address allows a programmer to locally slow down a rapid move to suppress physical gantry vibration without changing modal feedrates or parameters. Additionally, Mitsubishi's implementation of a constant-gradient multi-step acceleration and deceleration model maps axis rapid movement directly to peak servo motor torque characteristics, minimizing cycle times. However, its parsing logic presents a unique hazard: any isolated letter G is treated as a default G00 command, requiring rigorous programming syntax checking.

Program Examples and Dry Runs

Fanuc Example

; Fanuc Mill: Rapid position to X100. Y100.
G00 X100. Y100. ;

dry run

During a dry run of this Fanuc block with Parameter 1401 bit 1 (LRP) set to 0 (non-linear interpolation), the operator will observe the X-axis and Y-axis motor drives accelerate independently to their maximum feedrates defined by Parameter 1420. If the current position is X0 Y0, both axes will traverse at maximum speed. Because the travel distances are equal, the tool path appears linear. However, if the target is X100 Y50, the Y-axis completes its travel first, causing the tool trajectory to bend into a dog-leg shape. If LRP is set to 1, the control coordinates the axis speeds to traverse in a synchronized straight line. If the rapid override is set to the F0 crawling position, the axes will creep at the feedrate configured in Parameter 1421.

Siemens Example

; Siemens Polar: Rapid position using polar coordinates
G0 RP=16.78 AP=45 ;

dry run

During a dry run of this Siemens polar positioning block, the controller calculates the Cartesian target from the polar radius RP of 16.78 mm and the counter-clockwise absolute polar angle AP of 45 degrees. The operator will observe both physical coordinate axes move synchronously to reach the calculated Cartesian target. If the RTLIOF command is active, the axes will traverse independently at their maximum velocities, resulting in a curved positioning path. If RTLION is active, they will interpolate synchronously in a straight vector. If the positioning velocity machine data MD32060 is set to zero and no feedrate is active, the block will fail immediately upon execution, throwing Alarm 10861.

Mitsubishi Example

; Mitsubishi Lathe: Rapid traverse with specific feedrate and in-position width
G00 X100. Z100. ,I50 ,F1000 ;

dry run

During a dry run of this Mitsubishi block, the operator will observe the X and Z axes accelerate toward the target coordinates. Rather than traversing at the maximum rapid rate set by parameter #2001, the axes are constrained to a maximum temporary speed of 1000 mm/min due to the local ,F1000 address, which suppresses structural vibration. As the axes reach X100. Z100., the controller will pause block execution to verify that the axis positioning error is within the 50-micron tolerance specified by the ,I50 address before executing the subsequent line of code. If parameter #1085 (G00Drn) is enabled, the block will ignore the ,F limit and traverse at the manual dry run setup speed.

Error Analysis

BrandAlarm CodeTrigger ConditionOperator SymptomRoot Cause & Corrective Fix
FanucPS0224An automatic operation G00 command is issued after power-up before manual reference position return is executed.The machine execution halts instantly and the CNC screen displays the "ZERO RETURN NOT FINISHED" message.The absolute position detector is absent, parameter 1005 bit 0 (ZRNx) is set to 0, and manual reference return was skipped. Fix: Toggle the control to manual reference return mode and home all axes before running the automatic cycle.
FanucPS0015A G00 block contains coordinate addresses for more simultaneous axes than supported by the system configuration.Cycle start is interrupted and the screen displays the "TOO MANY SIMULTANEOUS AXES" alarm.The program is written for a higher-spec machine option than the active hardware supports. Fix: Edit the G-code program block to split axis movements across separate consecutive blocks.
FanucPS5007The programmed rapid positioning coordinate exceeds the maximum allowable distance limit.The execution halts mid-cycle or before axis movement begins, displaying the "TOO LARGE DISTANCE" alarm.Improper offset values or excessive tool wear compensations push the calculated travel distance beyond system limits. Fix: Check the active G-code coordinate parameters, inspect tool wear offsets, and recalibrate compensation values.
SiemensAlarm 10861A G00 rapid traverse block is executed with no axis velocity programmed and MD32060 is set to zero.The automatic cycle halts instantly and displays "velocity of positioning axis is zero".The default positioning speed parameter MD32060 $MA_POS_AX_VELO is unconfigured (set to zero). Fix: Edit the machine parameter MD32060 to a non-zero value or program an active feedrate within the block.
SiemensAlarm 12701A rapid traverse G00 command is programmed inside an active contour definition block.The control throws the "illegal interpolation type for contour definition active" alarm and stops execution.The contour definition syntax strictly permits G01 linear interpolation; G00 is invalid. Fix: Modify the contour definition program block to utilize G01 linear cutting feed instead of G00 rapid positioning.
SiemensAlarm 20062Manual JOG rapid traverse of a geometry axis is commanded while the axis is busy via PLC axial control.The coordinate axis refuses manual input and displays the "Axis already active" message.A JOG movement is attempted during an active PLC positioning sequence or inside an active rotated coordinate frame. Fix: Wait for the automatic axis positioning sequence to complete or clear the active PLC commands.
MitsubishiAlarm 0125The rapid traverse override switch on the machine panel is set to "0" during G00 execution or single block stop.Axis movement immediately stalls and the control displays the "Rapid override zero" error.The physical override dial is set to zero, or a PLC sequence has forced a rapid override limit of zero. Fix: Turn the rapid traverse override dial to a value greater than zero, and verify the PLC sequence program for faults.
MitsubishiAlarm 0105An axis physical movement triggers the hardware limit switch at the end of travel.The machine triggers an emergency-style halt and displays "HW /stroke end axis exists".An incorrect G00 target coordinate, excessive offset compensation, or lack of tool clearance drove the axis into the physical hardware stroke limit. Fix: Manually jog or use the handwheel to back the affected axis away from the hardware limit switch.
MitsubishiAlarm Y51 0001The primary linear rapid traverse time constant has not been set or is out of range.The controller fails to parse rapid motion blocks and throws the "Parameter G0tL illegal" alarm.The rapid acceleration parameter #2004 G0tL is unconfigured (set to 0) or exceeds the 1 to 4000 ms range. Fix: Access the axis specification parameter settings and set parameter #2004 G0tL to a valid value within range.

Application Note

A devastating mechanical failure will occur if an operator attempts a manual rapid traverse on a geometry axis while it is active in automatic mode. On Siemens controls, if a frame for a rotated coordinate system is active and another geometry axis within it is already being traversed in JOG mode, or if a clamping axis is actively locked during rapid movement, the controller will immediately halt and trigger Alarm 20062. This prevents severe mechanical strain and physical twisting of the ball screw. In similar fashion, on Mitsubishi systems, a collision will occur if an isolated letter G is programmed by itself without a numeric value. The control will process the instruction as a G00 command, immediately launching high-speed axis movement. To avoid these catastrophic errors, programmers must enforce strict G-code syntax checks, verify that parameter #1085 (G00Drn) is used to dry-run the tool path at safe manual speeds, and ensure that all clamping axes are completely released before rapid commands are executed.

Related Command Network

  • G01 (Linear Interpolation): Defines linear cutting movements at a programmed feedrate (F-code), acting as the primary mode for active metal removal.
  • G02 / G03 (Circular Interpolation): Executes counter-clockwise and clockwise circular cutting paths at controlled feedrates.
  • G04 (Dwell): Introduces a programmed pause in axis motion for a specified duration, ensuring the tool resides at a coordinate before subsequent rapid moves.
  • G28 (Return to Reference Position): Executes a rapid positioning move through an intermediate coordinate directly to the machine's primary homing reference point.
  • RTLION / RTLIOF (Siemens Rapid Interpolation Toggle): Controls whether Siemens rapid traverse G00 blocks execute via straight-line linear interpolation or independent non-linear axis paths.

Conclusion

Mitigating rapid positioning risks requires a disciplined combination of parameter management and code validation. Modern CNC programmers must treat G00 as a precision positioning command rather than a simple speed shortcut. By standardizing linear rapid traverse parameters, enforcing dry runs, and mapping brand-specific alarms like Fanuc's PS0224, operators can eliminate collision risks and maximize active spindle cutting time.

Frequently Asked Questions

Why does my G00 command move in a curved path instead of a straight line?

By default, many controllers use non-linear positioning (dog-leg motion) to move each axis at its maximum speed independently. The axis with the shorter distance finishes first, creating a curved trajectory that can cause a collision. To fix this, change the path interpolation parameter—such as Fanuc's Parameter 1401#1 (LRP) to 1, Siemens' MD20730 to 1, or Mitsubishi's parameter #1086 (G0Intp) to 0—to force synchronized linear movement.

What causes Fanuc alarm PS0224 and how can I resolve it?

Fanuc alarm PS0224 (ZERO RETURN NOT FINISHED) occurs when an automatic positioning command like G00 is executed immediately after powering up the machine without performing a manual reference position return first. This happens when absolute position detectors are not installed and parameter 1005 bit 0 (ZRNx) is set to 0. To fix it, switch the machine control panel to manual reference return mode, jog all axes to their home positions, verify the homing indicator lights illuminate, and then restart the automatic cycle.

Can I command a specific rapid feedrate directly in a G00 block?

Generally, rapid rates are fixed by machine parameters, but Mitsubishi provides a unique syntax that allows you to specify a block-specific rapid speed. By appending a ,F address (e.g., G00 X100. Z100. ,F1000), you can temporarily limit rapid movement to 1000 mm/min to suppress mechanical vibration without switching to G01 cutting mode. On Fanuc, you must enable Parameter 16050 bit 0 (GOF) to allow F-code control, while Siemens relies strictly on hardware overrides or manual dial controls.

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 - 2005)
  • Ö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