5 Mistakes We Find in Most CNC Programs

While the mistakes listed here will not sound an alarm or cause a program to fail, they will cause confusion, wasted time and scrap parts.


Facebook Share Icon LinkedIn Share Icon Twitter Share Icon Share by EMail icon Print Icon

Today’s CNCs allow great flexibility for programming, not just with syntax but with the overall structure of a program. While flexibility is usually a good thing, having too many ways of doing something often leads to reduced consistency, clarity and ease of use. This can result in serious usage mistakes. Here are the five we find most in CNC programs:

Mistake 1: Insufficient or nonexistent program header

Everyone in the CNC environment must know what a given CNC program does. All programs should start with a series of documenting messages, called a program header, that provides pertinent, easily interpreted information. For instance, a program header can help setup people know who to contact if issues arise, help operators know that they are running the correct version/revision of the program and help production control people determine the program’s execution time.

Include anything in a program header that could answer all likely questions. Part name and number, revision, operation number and storage location in the DNC system are all critically import. Programmer name, date created, date last revised and program execution time are of lesser importance but should still be considered. Think through your company’s own circumstances to determine what should be included in your program headers.

Mistake 2: Insufficient documentation

In similar fashion, people running CNC programs must know what the program is doing as it runs. Insufficient documentation leads to confused operators, which at the very least results in wasted time as they figure things out. Worse, misinterpretations can result in mistakes that cause scrap workpieces and even damaged machines.

Messages should be placed in the program anytime a setup person or operator needs to know what is happening. These should be included at every tool change to describe the next cutting tool, at every program stop (M00) to tell the operator what to do, and any time something unusual is happening, such as using multiple offsets to control the size of two or more machined surfaces. Anything you can do to eliminate confusion is fair game for your documenting efforts.

Mistake 3: Missing safety commands

CNC machines have many programmed modes, and the appropriate mode for each condition must be in effect when a program is run. If a program specifies metric coordinates, the machine must be in the metric mode when you run the program. Other mode selection examples include absolute/incremental, spindle speed and feed-rate type, and plane selection. Additionally, the machine must be in canceled states for certain programming features.

If the machine is in the wrong mode for any of the possibilities, results will range from confusing to catastrophic. Place safety commands (a series of G codes) at the beginning of your CNC programs to ensure that every possible CNC mode is appropriately set.

Some programmers eliminate safety commands for modes that are initialized (automatically instated during power-up) thinking the machine will still be in the initialized state when the program is run. This can be a terrible mistake since modes can be easily changed after power-up, yet before programs are run.

Mistake 4: Missing restart commands

For machines that allow it, CNC setup people and operators must be able to rerun cutting tools from time to time. This will save time, keeping them from having to run the entire program just to get to the cutting tool that must be run again. The setup person may be five tools into verifying a program, for example, before they discover something is wrong.

For operators to be able to rerun tools, certain redundant (currently instated) CNC words must be included at the beginning of each tool. They commonly include spindle speed and activation, coolant activation and axis-positioning commands.

Mistake 5: No help for setup people and operators

A CNC program must do more than allow the machining of good parts. Whenever a CNC setup person or operator is involved in the process, the CNC program must help in every possible way. While setup people and operators can make even poorly developed programs work, they often take excessive time and sometimes make mistakes while doing so.

Consider, for example, the task of trial machining, which is often required when machining critical surfaces. It involves adjusting an offset in such a way that excess stock is left on the critical surface, machining under the influence of the trial machining offset, stopping the machine, measuring the surface, readjusting the trial machining offset and rerunning the tool. This process is cumbersome and prone to error. You can dramatically simplify the process by using the block delete function (turned off for trial machining, on for not), programming the trial machining operation.

Other examples include programming offset entries for known offset values with G10 commands to keep from having to enter them, creating programs consistently so operators can become familiar with your methods, and using canned cycles to allow easy program verification and optimizing. Any time you see a CNC setup person or operator struggling while running a program, find a way to make the program help them.