September 2013 / Volume 65 / Issue 9|
The power behind shop automation
By Christopher Tate, Savannah Machinery Works
Diminishing numbers of skilled tradesmen in the workforce and the need to reduce production costs have caused machine tool automation to proliferate during the past decade. At one time, only the largest manufacturers took advantage of machine tool options such as part probing, tool setting and conversational programming. Often, these options were only available on more expensive machine tools and out of reach for most small shops. Now, even the smallest, lowest-cost, commodity machine offers probing and tool setting.
Parametric programming is the vehicle that drives these automated processes. Parametric programming stores data in external tables or files, rather than within the part program itself, and the program accesses the data when needed. This enables users to change data values with relative ease.
Courtesy of All images: C. Tate
In addition, parametric programming is typically the foundation on which a macro program is based. Macro programs drive part probing, tool setting and many canned cycles found on a conversational CNC. Macros allow the user to invoke numerous program commands with only a few characters.
Macro programming and parametric programming are independent concepts. However, the machine tool world has adapted “macro” to describe all of the functions associated with parametric and macro programming. Therefore, I will use macro in the same context throughout this article.
Macros are a powerful tool and available on almost every machine tool control. Macro programming allows a programmer to be creative, and creativity can help drive efficiency.
CNC code consists of basic commands that control the direction of tool motion, cutting speeds and machine tool functions. Macro programming lets the machine “think” by allowing the programming to perform arithmetic operations, use logic statements, access the control memory and poll the machine tool for positional information.
The following is an example of CNC code that demonstrates the arithmetic capabilities of a program.
It is a portion of a program that I developed for setting the coordinate systems for one of our more complex parts, a large weldment machined in three different planes (Figure 1). Tolerances, part size and desired cycle times dictate we machine it in one setup. Because the part is a weldment and all of the components are formed, there are no reliable surfaces to use for positioning the part in a fixture.
To overcome this problem, I used the canned probing routines to find the large flange in the center and the center of the inlet. The coordinate system for the face that is oblique to the body must be calculated using trigonometry. I used the coordinate systems from the other faces, which were found using the probe, to calculate the position of the oblique face. These coordinates were then saved to the control and recalled when needed.
My method for setting the part eliminated the need to make qualifying cuts in a separate setup and reduced the chance of creating bad parts because the part is machined in one setup.
Macro programming also offers the ability to use logic expressions. Logic makes it possible to let the control make decisions for the operator.
Mostly, our shop machines welded assemblies. Machining stock allowances are small because the parts are designed to minimize consumption of expensive nickel-base superalloys. Therefore, part placement during assembly is critical because any deviation from the designed location can create a situation where there is not enough material to machine.
To ensure there’s enough material, we probe the part and set the work offsets. Once we have calculated the desired finish plane for a surface, we probe the stock surface and compare the position of the actual surface to the desired position. The difference in these values represents the amount of stock on the part.
We can then ask the control to compare the desired stock value to the actual and use an “if” statement to send an error message to the operator, telling him not to begin work. Having the logic expressions allows the programmer to force the control to make decisions based on date or machine condition and, ultimately, have a program with multiple outcomes.
The most powerful feature available in macro programming is the ability to poll the machine control for positional information. It is possible to tell the control to remember the current machine position and then recall it later to perform calculations, develop logic statements or, in our case, create toolpaths.
On the part’s exit end, we machine a complex profile around the periphery. Deformation from welding causes the exit profile to vary from part to part. Previously, we used a die grinder and abrasive cut off wheel to manually make the necessary cuts because of inconsistencies from upstream processing. The manual cutting could take up to 8 hours per part.
To overcome this issue we developed a routine to probe the part periphery more than 200 times and store each coordinate. Once probing is completed, we call up the macro program, which uses the stored values to create a toolpath for the part periphery. Now, each part has a unique toolpath, and we have reduced the time to perform the operation by 6 hours.
Macro and parametric programming techniques are not difficult to use or learn. They can be very powerful tools that provide access to new problem-solving methods. CTEAbout the Author: Christopher Tate is manufacturing engineering lead for machining at Mitsubishi Power Systems, Savannah (Ga.) Machinery Works, a global builder of gas and steam turbines. He has 20 years of experience in the metalworking industry and holds a Master of Science and Bachelor of Science from Mississippi State University. E-mail: email@example.com.
CUTTING TOOL ENGINEERING Magazine is protected under U.S. and international copyright laws. Before reproducing anything from this Web site, call the Copyright Clearance Center Inc. at (978) 750-8400.|