M94 Feed Forward FunctionThe M94 code is used for linear moves only, to increase accuracy during highspeed surfacing where radical changes in direction occur. These moves aregenerally at a feed rate of 50 ipm or higher. CNC programs for 3D surfaces usemany small linear moves (G1) to form surfaces and the G8 code is used toeliminate hesitation between each move. In most cases this is desirable,except where radical changes in direction occur.Figure 2-3 Feed Forward FunctionThe Feed Forward function affects the way the control accomplishes theacceleration and deceleration at the beginning and end of each move. When amove falls into the range assigned by the M94 parameters, the control willmonitor axis servo feedback to determine how to move, instead of usingreprocessed moves as it normally would.SPECIAL FEATURE9P WORDXXOF MOTIONDIRECTIONNOT APPLIEDDECELERATIONAPPLIEDDECELERATIONANGLETHE Q WORD LENGTHMOVE IS LESS THANWHEN THE PREVIOUSTHIS ANGLE IS USED Q WORD LENGTHLESS THAN
40Section 2: M FunctionsApril 2003FadalUser ManualThe M94 and its parameters must be on a line with NO other codes. It is modaland is canceled by an M95. It only operates with the -3 processors or higher,and is not operational in the G91.1 mode. Deceleration occurs when the angle between moves is smaller than the P wordand the move length is greater than or equal to the Q word. The Q word is not arequired parameter, and is used to filter out extremely small moves.M94 P91 Q.003 (This sets the decel/accel for any move that is both .003 or longer and smaller than 91 degrees from the last move).P WordThe P word sets the angular tolerance for the feed forward mode, and must beless than 180 degrees. When the angle between the current direction and thenext programmed direction is less than the P word, the machine initiates a highspeed deceleration to increase the accuracy of the directional change.Acceleration then begins regardless of the length of the following moves. Theacceleration may occur over an unlimited number of program blocks. Fullacceleration is accomplished over a distance of two hundred thousandthswhen no further deceleration is required.Q WordThe Q word is used to set the length tolerance for the feed forward mode. Whenthe length of the next programmed move is equal to or longer than the Q word,the control checks the angle between the current move and the next move. Ifthis angle is less than the P word value, deceleration occurs.Note: M94 and M94.1 can both be in effect at the same time.M94.1 Feed Forward by Feed Rate ModificationThe M94.1 code is another type of feed forward mode used for high speedsurfacing. The feed rate will be modified if the angle of the next move falls inthe range established by the parameters of the M94.1 code line.No other codes can be in the same line as the M94.1 and its parameters. Thefeed rate must be specified before the M94.1 line. No other F Word may bespecified after M94.1 until an M95.1 is used. G0 moves can be used afterM94.1 but will not be modified by the M94.1 coding. The M94.1 is modal andis canceled with an M95.1 code. It is available on -3 or higher controls. This isnot compatible with the G91.1 code.M94.1 P170 Q10. R0+50. R1+1. R2+15. TIME SAVER
April 2003Section 2: M Functions41FadalUser ManualEXAMPLE:The second move is 135 degrees from the first move, therefore the feed will bemodified because the move is less than 170 degrees (set with the P word).Because the second move is less than one inch (set by the R1+1 word), thefeed will be modified. The angular difference between the P word angle and thesecond move is 35 degrees. Every 15 degrees of angular difference (R2+15.),the feed will be modified by 10 percent (Q10). In this case the feed will bemodified by 20 percent. In order for a move to be modified, it has to be lessthan the P value and less than the R1 value.P WordThe P word represents an angle. If the angle between the current move and thenext move is less than the P word angle, the feed rate will be modified.Q WordThe Q word represents a percentage. This will be the amount that the feed ratewill change each time it is modified (see R2 below for frequency of themodification).R0+#Figure 2-4 R0+#The R0+# represents a percentage. This states that the modified feed rateshould reduce no more than this percentage of the programmed feed rate.R1+#The R1+# represents a length. This states that if the next move is longer thanthis amount, then use the programmed feed rate for that move.R2+#The R2+# represents angular degrees. With the Q word modificationpercentage, this will be used to determine how the feed will be modified. Thiswill modify the feed rate (by the percentage assigned to the “Q” word) everyR2+# degrees for the current difference in angular moves by the percentageassigned to the “Q” word.EXAMPLE:N15 F100. G1SPECIAL FEATURE9THIS RANGEMOVE IS WITHINUSE M94.1 IF DIFFERENCEANGULAR
42Section 2: M FunctionsApril 2003FadalUser ManualN16 M94.1 P170 Q10. R0+50. R1+1. R2+15.The modified feed rate would be determined by this formula:Fmodified = Fprogrammed - (Fprogrammed • Q word • Angular Difference / R2+#)With an angular difference of 60 degrees and a programmed feed rate of 100. ipm, the modified feed would be 60 ipm:Fmodified = 100. - (100. * .1 * 60. / 15.) = 60.Note: M94.1 and M94 can both be in effect at the same time.Note: The feed rate to be modified must be specified before the M94.1. Noother F Word may be specified after M94.1 until an M95.1 is used. A newfeed rate may be specified and then the M94.1 can be used again.