Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations IDS on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

Inverse time feed rate

Status
Not open for further replies.

MagicSam

Aerospace
Oct 17, 2007
2
I'm looking for a good description of the inverse time feed rate function (G93) used on CNC controls. A good description would be in English, describe applications for the function including why this function is prefered over others, show examples and go beyond the mathematical explanation of the formulas used.
 
Replies continue below

Recommended for you

Taken from MMS online:

"C. Inverse Time Feed Control

Most NC programmers think of the F-register in a CNC controller as the method for specifying linear velocity, i.e. uPM or uPR. This is true for two- and three-axis linear motion, but when rotary motion is to be controlled, the F-register takes on a different meaning. When combined linear/rotary motion exists, most good CNC controllers require the inverse of the amount of time necessary to make the move, and since each move has a different distance, the corresponding time varies for each block as well. The exact reasoning behind using the inverse value rather than the direct time in minutes or seconds is simply a historical matter.

Calculating the F-Code
The constant used to calculate the inverse time code is normally 1 minute, such that the equation is:

F(code) = 1(minute) / (time = 3D distance/velocity)
The 3D distance of the move is calculated in model coordinate space at the NC control point, not in machine coordinate space and not necessarily at the tool tip. For example, a 5-inch move at 50 IPM takes 5 50ths of a minute, yielding an inverse time calculation of 1/.1 and an F-code of F10. The same 5-inch move at 700 IPM would be 1(minute) / (time = 5 / 700) or (1/(5/700)) or (1/.0071428) or F1400.168

Variations To The Equation
If this value exceeds the F-Register format, the common reaction of a postprocessor is to output the maximum value of the F-register (F999.99 if the F-register format is 3.2), a signal to the part programmer that a problem exists. When this happens the CNC machine does not achieve the programmed velocity, and unless the F-register can be re-assigned, the machine simply cannot process the move(s) faster.

Since the typical CNC's F-register has a 3.2 or at most a 3.3 format, the need obviously exists for some way of controlling the results of the equation to avoid "over-stuffing" the F-register. If the machine normally operates at a high (over 500-1000 uPM) velocity, the machine tool builder sometimes changes the interpretation of the numerator in the inverse time equation to 1(second), or in extreme cases 1(millisecond). When the numerator is 1 second the above F1400.168 would then be coded as 1 / (time = 5 / (700/60)), or F23.333.

Invoking Inverse Time Mode
Most CNC controllers equipped with inverse time require a G93 to declare the feed mode on the initial move containing rotary motion. The general rule is: If a G93 is required to invoke inverse time mode, a G94 or G95 is also required to cancel it. This means the first of a sequence of normal XYZ linear moves with no rotary A/B/C word(s) will require a G94 and an F that is interpreted in uPM.

Most controllers that support G93 inverse time require an F-code on every move, even if it does not change from the previously programmed value. A "feed hold" will occur if this rule is violated. This situation normally happens when machining a cylindrical or spherical surface since the chordal moves are of equal distance and the velocity is constant. There is a spec setting that forces redundant F-codes for inverse time which should be set unless it is specifically known that the F-register is modal.

Poor Man's Inverse Time Feed
Because inverse time calculations can appear confusing for the uninitiated five-axis programmers, some machine builders have attempted to simplify five-axis programming by offering a form of "poor man's" rotary feed control where the CNC operator manually sets the fourth and fifth axis radius values.

This type of feed control can work well for machining simplistic cylindrical or spherical shapes, but since the tool tip is normally in a state of constant change relative to the center of each rotational axis when in five-axis contouring mode (especially true when machining doubly curved surfaces), the true tool tip velocity is never truly maintained.

A good post will automatically generate inverse time feed calculations, and you can scale the F register to achieve minute-based or second-based calculations.

Radial Mode Feed Control
Some controllers (mostly European) use two radius registers to tell the CNC the radial distance from the tool tip to the centerline of rotation. The Deckel MillPlus CNC uses B40=r1 and C40=r2 to control feed, and they (B40/C40) only need to be stated if/when they change. This syntax is quite verbose (a typical block might read B40=rr.rrrr C40=rr.rrrr) when compared to the single Fff.ffff required to support inverse time. However, the feed rate is expressed in a single F-code at the beginning of the program making it much easier for the operator to edit feedrates at the machine since there's only one block to change."

If that's not clear enough, think about it like a record player. The closer you move to the center of rotation, the slower your linear velocity is. Say you are cutting a part by rotating a rotary table, and you would like to feed at 10 linear inches per minute. How can you just give a F10.0? What if the part you were cutting was 30 inches in diameter? What if it was 1 inch in diameter? The controller doesn't know what diameter you're cutting. F10.0 means nothing to your controller. So, to correct for this, we use inverse time feed. Some controllers may vary, but most I've seen are calculated by 'Speed(IPM or MMPM)/Distance)'. For example, you want to move at 10 IPM and your move is 2 inches long. Your feedrate in G93 would be 5. So you can see very small moves give you huge feedrates, expect to see F1500.0 or more. Most controls also need a F on every G01, G02, or G03 line. The F will most likely vary every line. Hope this answers your question.
-Derek

 
Status
Not open for further replies.

Part and Inventory Search

Sponsor