Which Is Faster, G00 or G01?

Special thanks to Kyle A. Thornley, Technical Instructor at GE Fanuc Automation, for explaining the principles described in this article.

Related Topics:

Special thanks to Kyle A. Thornley, Technical Instructor at GE Fanuc Automation, for explaining the principles described in this article. Hopefully I can relate them to you as well as he did to me. 

Admittedly, the title to this article is a trick question. Of course a CNC machine's rapid rate is faster than its maximum feed rate, usually about twice as fast. To minimize air-cutting time during approach and retract motions to and from the tool-change position (or whenever a lengthy non-cutting movement is required), rapid motion (G00) will outperform a straight-line cutting motion (G01). So here's a great rule-of-thumb: If you're not cutting, you should be rapiding.

However, there are times when using G01 will actually cause faster motion than G00. When making short movements (under one inch, for instance), you probably know the machine will never reach its rapid rate. You might also know that several factors (the machine size, weight of the workholding setup, axis drive system and so on) determine how long the motion must be before the machine reaches its rapid rate. And, of course, it will take as long to slow down at the end of a motion as it did to speed up. These functions are commonly referred to as the machine's acceleration/deceleration (accel/decel) characteristics, and several adjustable parameters control how a given machine will respond.

What you might not know (I didn't until Mr. Thornley explained it) is that with most controls the method for acceleration and deceleration is different for rapid motion than it is for straight-line motions. This difference means that most machines will respond to G01 motions faster than to rapid motions when short motions are commanded! Why? Rapid motion is commonly handled with exponential accel/decel while straight-line motion is commonly handled with linear accel/decel. This has to do with the parameters that control how long it will take for a given machine's acceleration and deceleration during rapid and straight-line movements. One parameter, for example, determines how long a time constant will be. Another parameter controls how many time constants will be required for accel/decel.

Look at the illustrations on page 160. We'll say that the time constant for our example machine is 100 milliseconds (0.1 second). Notice that for this machine, it takes five time constants (500 ms) to accelerate to the machine's rapid rate (and it will take just as long to decelerate). For any motion under one second, this machine will not reach its rapid rate. From the middle illustration you can see that before the machine reaches its rapid rate it must begin slowing down. Most service engineers would agree that this also puts unnecessary stress on the axis drive system.

On the other hand, notice that straight-line motion is handled with linear accel/decel and only two time constants are required for acceleration and deceleration. Even though the machine will be moving at a slower rate of motion, it will respond faster (with less stress on the machine's drive system) to motions given in G01 mode.

Determining how much faster a given machine will respond can be difficult to predict. But we offer a test you can perform on your existing machines to determine what benefits you can gain by making short motions with G01 instead of G00. Develop a program that repeats the following commands fifty times. (Using a CNC text editor with copy and paste functions will help.)

G91 G00 X0.5 (Rapid over 0.5 inch)
G01 Z-0.35 F10.0 (Simulate spot drilling a hole)
G00 Z0.35 (Rapid out of hole)

Then run the program and time how long it takes to execute.

Next, develop a similar program that contains fifty executions of these following commands. (If you're using a CNC text editor simply change all G00 words to G01 F200.0.)

G91 G01 F200.0 X0.5 (Fast feed over 0.5 inch)
G01 Z-0.35 F10.0 (Simulate spot drilling a hole)
G01 F200.0 Z0.35 (Fast feed out of hole)

Run this program and time it, and then compare that with the time it took to run the first test program. You'll likely be surprised by the difference!