Feed rate for all linear axes can be specified in per-minute fashion (either inches or millimeters per minute). For many machines, feed rate can also be specified in per-revolution fashion (either inches or millimeters per revolution). This makes feed rate specification easy. But one constant headache for programmers is that feed rate for most rotary axes must be specified in degrees per minute.
Determining degrees per minute feed rate is cumbersome. This feed rate is based upon the amount of rotary axis departure, the cutting tool’s position relative to the center of rotation and the desired per-minute feed rate in either inches or millimeters per minute. And the actual value of the feed rate word in degrees per minute can be misleading. For a motion that requires a large rotary axis departure with the tool close to the center of rotation, the feed rate word’s value may exceed a value of 300 degrees per minute (F300.0)!
For these reasons, CNC setup people and operators may be reluctant to modify feed rate for rotary axis motions. Again, a cumbersome calculation must be made, and they may not believe the results of their calculations. If a mistake is made, the results could be disastrous.
If your machine has custom macro B (or any version of parametric programming), you can create an arithmetic function within the control that determines feed rate in degrees per minute. The function will accept input (arguments) in the form of desired per minute feed rate, the tool’s position relative to the center of rotation, the amount of angular departure and the variable number in which the calculated degrees per minute feed rate will be stored. The function will calculate the degrees per minute feed rate based on the input data and store the results in the specified variable. This variable will be used to specify the feed rate in the rotary axis command.
Our example is shown in the inch mode, but it would be easy to modify this example for Metric.
Here is an example call statement to invoke the custom macro that calculates degrees per minute feed rate. It will be placed in the program just prior to the rotary axis command.
N055 G65 P1000 F4.5 D2.25 B30.0 R101.0 (Invoke custom macro to calculate dpm feed rate)
N060 G91 G01 B30.0 F#101 (Make rotary axis motion at calculated feed rate.)
In line N055, we’re calling program O1000 and passing the desired ipm feed rate with F, the distance from the tool tip to center of rotation with D, the incremental angular departure of the rotary axis with B, and the return variable number with R. In line N060, we’re using the feed rate calculated by the custom macro (variable #101). Note that this example uses the incremental mode to rotate the axes, but you could program this motion in the absolute mode as well. Just remember that in line N055, B must specify an incremental rotary axis departure amount.
Now here’s the short custom macro:
O1000 (Calculate degrees per minute feed rate)
#[#18] = #2 / [#2 / [[3.1416 * 2 * #7] * #2 /360] / #9] (Store dpm feed rate in variable)
M99 (End of custom macro)
The calculation being done in this custom macro is based upon the formula: DPM = Angular departure distance / time required for motion.
Time is equal to motion distance divided by the desired inches per minute feed rate. We calculate motion distance by determining the circumference of the tool tip circle (pi times 2 times the radius) and multiplying it times the portion of a full circle being machined (angular departure divided by 360).
You may be thinking that the programmer should be doing this calculation while programming the job. But remember, one of the goals of this technique is to help setup people and operators easily modify the feed rate for motions involving the rotary axis. In this example, if the operator wants to change the feed rate for this motion, he or she simply specifies a new inches per minute feed rate in line N055 with the F word.
While this specific technique may not be important to you (maybe you don’t even have a rotary axis), be thinking of times when your setup people and operators must perform calculations prior to editing a program.
Truly, any time you see employees using a calculator prior to modifying a program, it should be taken as a signal that this technique can simplify their efforts.