Читать книгу CNC Tips and Techniques - Peter Smid - Страница 10
ОглавлениеMinimizing Program Length May 2005, updated February 2013 |
In the past, the topic of handling long programs has focused on running such programs efficiently at the machine, during the actual part production with DNC support. Long programs are often the result of a CAM output, but they are also developed manually in many cases. Keep in mind that the word long is quite often relative to the amount of work involved and the available control memory capacity. CNC lathes, for example, have much smaller memory capacity than CNC machining centers. In either case, CNC programmers have several methods at their disposal that will make long programs shorter. Using the methods suggested in this column, it may often be possible to fit a long program into the control memory, without using the DNC method. Various methods are available to reach this goal and they can be adopted before the program is developed or after the program has been developed.
In CAM programming, the main key to quality program output is a quality post processor. The purpose of a post processor in CAM software is to provide a customizable platform for the desired program output. The same thoughts and efforts that go into post processor customization will also be considered in manual programming. There is no magic here — if you want to shorten the program, you must do it without losing its integrity and purpose. Removing an operation from a program will certainly make the program shorter, but the price may be too high to pay. When developing the CNC program, look at various features that offer shorter output right from the box, so to speak. They include various fixed cycles, multiple repetitive cycles, subprograms, macros, counters, and automatic corners. Starting with a program that is already as short as possible, it makes any subsequent effort that much more effective. Let’s look at some options available.
Eliminating Characters
Once all possible methods have been used to make the program shorter from the beginning, there is only one more method left — to eliminate all unnecessary characters from the program. Yes, eliminating one character at a time will often work miracles on the final program length. You will need a good text editor, preferably one designed for editing of CNC files. Text editors offer feature called mass substitution (commonly known as the find and replace feature). Always work on a copy of the program, in case something goes wrong. Also, never make changes to the program that would negatively affect machining safety. Initial planning is important and the knowledge of program formatting is imperative. Here are the main areas that should be considered as methods suitable for the reaching the goal of a shorter program:
• Elimination or optimization of block numbers (sequence numbers)
• Removing program comments
• Removing unnecessary zeros
• Joining single-axis motions into multi-axis motions (if safety allows)
Block Numbers
Block numbers are almost always used for convenience, except in some special applications, such as multiple repetitive cycles or macro statements. Eliminating block numbers will make the most significant reduction in any program size. If you don’t feel comfortable about eliminating all block numbers, use only one block number per tool, perhaps for the purpose of searching. Using block numbers in increments of one is more economical that common increments of five or ten, as fewer characters are stored.
Comments
If the control system accepts comments and messages within the program (those enclosed in parentheses), a great amount of available memory is used by them. Eliminating — or at least minimizing — the use of comments in a program will also go a long way to a shorter program.
Unnecessary Zeroes
Removing unnecessary zeros from the program may take a little bit more time and must always be done with care. Zeros that can be eliminated are leading and trailing zeros, as well as zeros programmed for convenience. For example, change all G00, G01, G02, G03, etc., to G0, G1, G2, G3, etc. Change full coordinate output to its minimal form, such as X0.1000 to X0.1 or even X.1 — all versions have the same meaning. Formats such as X1.0000 can be safely shortened to X1.0 or even X1. — all versions have the same meaning as well.
Combine Single-Axis Motions
Before combining two or more single-axis motions into one, always consider how such changes affect the machining safety. For example, it is quite common to program a tool approach along XY axes first than in the Z-axis, whereas tool return will be the opposite — the Z-axis first, followed by XY axes motion. Combining such motions will save only a few characters, but also may endanger machining safety.
Some additional methods may also be used. Shortening the length of CNC programs should always be considered a special situation, never the standard method of programming. There is nothing wrong with including convenience features in the program; such programs are easier to read, easier to interpret, and much easier to change. If the methods described are still not enough, remember, there is always the DNC method waiting in the wings.
Conversion of Lathe Cycles June 2005, updated February 2013 |
Most CNC lathe programmers would agree that the most useful features of a CNC lathe control system are the multiple repetitive cycles. Multiple repetitive cycles for CNC lathes have been an important part of control systems since the mid 1980s. Still, to this day, they present the most innovative approach of material removal, particularly in the areas of turning, boring, and threading. Over the thirty years of their existence, multiple repetitive cycles have gone through only two major changes. Earlier controls require these cycles to be programmed in a single block, later controls require two blocks of program input. This difference in programming method often presents a situation when one type has to be converted to another type — usually from a single block format to the double block format.
Converting Formats
To start, let’s look at the word convert. Changing from one format to another is not a true conversion or — at least, it is not a complete conversion. The reason is that a double block format offers more features than a single block format. Also, keep in mind that you have no choice here; the control system determines the programming method. Typically, Fanuc control models 10/11/15 use a single block format, other control models (0/16/18/20/21...) use the double block format. What cycles are affected? All multiple repetitive cycles from G71 to G76 can be programmed in one or the other format, depending on the control. The finishing cycle G70 always uses a single block format.
Single Block Format
The single block format is the older of the two, and relies heavily on the settings of system parameters, generally inaccessible to the machine operator. I will use the most commonly used G71 and G76 cycles as examples in this column; other cycles follow a similar pattern. The single block format of the roughing cycle G71 is:
G71 P.. Q.. U.. W.. D.. F..
In this single block format (spindle speed is assumed to be in effect), P and Q addresses refer to the block numbers defining the finish contour. U and W are specifications of stock amount left over for finishing, D is the depth of cut (written without a decimal point), and F is the roughing feedrate. In addition, some controls also accept I and K addresses that control the distance and direction of semi-finishing.
Double-Block Format
For controls requiring a two-block format, the G71 must be written at the beginning of each consecutive block:
G71 U.. R..
G71 P.. Q.. U.. W.. F..
The programmed data are similar but a bit more flexible. In the first block, the U address is the cutting depth (decimal point can be programmed), and the R address is the amount of retract from each cut. The second block has the same meaning as before — finish contour block number range P and Q, stock allowances U and W, and feedrate F. Apart from the more convenient way of programming the cutting depth, the addition of the R address represents the major change. In a single block format, the retraction amount was controlled by a system parameter; in the double block format, the programmer can specify such amount in the program directly.
G76 Threading Cycle