CNC Control Setup for Milling and Turning:. Peter Smid
key on the control panel, these cancellations are automatically performed. On the other hand, it does no harm to include G40 and G80 in the program, ‘just in case’.
G49 cancellation is different. This command cancels the tool length compensation. There is no reason to program it at all - in fact, by using G49 in the program, you may create a situation that could create more problems than it supposed to solve.
That leaves three other G-codes that need to be addressed. They are the initiations commands:
▪ | G90 | ... Absolute mode of programming |
▪ | G54 | ... Work offset |
▪ | G00 | ... Rapid motion |
Again, these are good commands in a bad place:
N1 G21
N2 G17 G40 G80 G90 G54 G00 G49
N3 T01 M06
N4 X50.0 Y100.0 S900 M03 T02
N5 G43 Z10.0 H01 M08
... <G90 IS IN EFFECT>
...
N17 G91 X-10.0
N18 Y23.0 (... UNWANTED INTERRUPTION !)
...
If the program flows from the beginning to the end without a problem, it may appear that it is a good program in terms of its structure. Now consider that for some reason, the machining has to be interrupted in block N18. Perhaps because the tool may have broken or some other mishap. The typical course of action in this case is to remove the broken tool, replace it, set a new tool length offset and - start machining from block N4 -this is the block after tool change. The proper holder with the tool is already in the spindle, so it makes sense to start from block N4. Here is where the real problem lies - the control is still in G91 mode, although it should be in G90 mode. The same is to be said about G54 work offset setting and G00 rapid motion. A change from a possible G55 command or G01 command may have serious consequences. A simple solution is to program these codes after tool change, not before:
N1 G21
N2 G17 G40 G80
N3 T01 M06
N4 G90 G54 G00 X50.0 Y100.0 S900 M03 T02
N5 G43 Z10.0 H01 M08
... <G90 IS IN EFFECT>
...
N17 G91 X-10.0
N18 Y23.0
...
N.. G90
...
Note that G90 is (and should be) programmed later in the program, to bring the control system to its ‘normal’ mode (typical mode).
Tool Change Block
Block N3 makes the actual tool change. It is the block where the Automatic Tool Change (ATC) takes place:
N3 T01 M06
On most machining centers, the T01 is a function that makes the tool magazine to rotate and place tool one (T01) into a special magazine position, to be ready for tool change. T-word in this case does not make any tool change, it only makes the selected tool to be ready for tool change. This method shortens the tool change time.
There is nothing wrong with this block in terms of programming, but for CNC operators, it may cause some inconvenience. As both tool call T01 and tool change function M06 are in the same block, they will be processed simultaneously. Tool search will always be first, followed by the actual tool change. That is not the problem. Think how it will affect running the first part.
During the first part run, the operator generally selects Dry Run mode along with Single Block mode. Other settings may also be in effect. In single block mode, when the block N3 is activated, tool T01 should be placed into the spindle. What happens when the wrong tool had been registered and is placed into the spindle instead? At best, it forces the operator to remove the tool from the spindle, place it back to the magazine and re-register it. On the other hand, if the commands currently in block N3 were in individual blocks, the operator can look at the magazine a see if the right tool is ready before the tool change. An improvement to the program structure is simple:
Instead of N3 T01 M06, use:
N3 T01 | (MAKE TOOL 1 READY FOR ATC) |
N4 M06 | (MAKE ACTUAL TOOL CHANGE) |
Even a small program change like this can go a long way. Similar changes may be done in other blocks. Compare the original version with the modified version:
(ORIGINAL VERSION)
N1 G21 G17 G40 G80 G90 G54 G00 G49
N2 T01 M06
N3 . . .
(MODIFIED VERSION)
N1 G21
N2 G17 G40 G80 T01
N3 M06
N4 G90 G54 G00 X.. Y.. S.. M03 T02
N5 . . .
Even the G17 could be placed after the tool change.
This section, as many others in the book, relates to the program development, which is the responsibility of the CNC programmer. The machine operator works with the resulting program - or programs - and has to understand the program contents. Programs reaching the machine shop are often written by more then one programmer, and even if only one programmer is responsible, the final programs may lack one important feature - consistency.
Many small machine shops usually employ only one CNC programmer, or - more likely - only one CNC programmer/operator, who is responsible for both programming and machine operation. Larger shops and large companies may employ several programmers who do not operate machine tools, as their main responsibility is only program development. In these cases, most CNC operators will agree that programs developed by different programmers ‘look and feel’ quite different.
By itself, the difference does not present any major problem, unless is very significant. If those programs are good, they will be usable and present no problems.
In spite of all that, the CNC operator will have no choice but to interpret each program in a different way, depending on who he programmer was. The fact that all programs may be correct is not the issue here - the real issue is the efficiency of the CNC operator.
On the other hand, if all programs written by different programmers ‘look and feel’ the same, the operator has a much easier - and more efficient - approach to program interpretation and part setup. The keyword that describes a program following a certain structure is consistency.
Consistency in program development means using the same approach to