NTMA
Published

A Custom Macro for Bar Pulling

This alternative to bar feeding can provide many of the same capabilities, but at a fraction of the cost.

Share

One popular application for turning centers is bar work, during which multiple workpieces are machined from one long bar. While bar feeders may be the most efficient platform for sending a bar through the machine’s spindle, bar pullers provide many of the same capabilities at a fraction of the cost.

On a turning center, one turret station is required to hold the bar-pulling device. Designs for bar pullers vary, but the basic idea is that during the CNC cycle and after a workpiece is cut off from the bar: 1) the spindle will stop and the bar puller will engage the workpiece; 2) the clamping system (collet or chuck) will release the workpiece; 3) the Z axis will advance the bar; 4) the clamping system will be clamped again; and 5) the bar puller will retract from the workpiece and machining operations on the next workpiece will be performed.

Many programmers use subprogramming techniques for the repeated workpiece machining and bar advance. If 20 workpieces can be machined from a bar, for example, they will use a command something like this one (program O1000 in this example is a program that machines one workpiece):

N040 M98 P1000 L20

This works well as long as the cycle is not interrupted while a bar is being machined. If the cycle is cancelled for any reason, the machine will lose track of how many workpieces have been machined, complicating the task of restarting. 

Additionally, using this technique can lead to wasted raw material. If the machine is in the middle of a bar when the programmed part count is reached, nothing will (automatically) stop the machine until the whole bar is machined.

These issues can be overcome with a relatively simple-to-use custom macro:

O0002
(Input data)
#100=275 (Lot size)
#101=1.0 (Workpiece length) 
#106=1020 (Program number for the machining program)
#104=36.0 (Bar length in inches) 
#102=0.03 (Facing stock)
#105=3.0 (Remnant length in inches) 
#103=0.125 (Cutoff tool width)
IF [#501GT0] GOTO5 (Test if any workpieces have been machined)
(Calculations for a new production run)
#500=0 (Counter for bar)
#503=#101+#102+#103 (Bar advance amount)
#502=FIX[[#104-#105]/#503] (Number of parts per bar)
(Loop for the production run)
N5IF [#501GE#100] GOTO99 (Test for lot completion)
(Loop for each bar)
IF [#500GE#502] GOTO98 (Test for bar completion)
M98P#106 (Execute the program that runs a part and advances the bar)
#500=#500+1 (Step bar counter)
#501=#501+1 (Step production run counter) 
GOTO5 (Go back to bar completion and lot completion tests)
(Actions when bar or lot is completed) 
N98#500=0 (Reset bar counter) 
#3000=100 (Load a new bar)
N99#500=0 (Reset bar counter) 
#501=0 (Reset production run counter) 
#3000=100 (Production run is completed)
M30

To use this program (it will be the main program), first create, load and test the workpiece-machining and bar-advance subprograms. Then, modify the input data in the program above. It is likely that much of this data will remain the same from job to job (like bar and remnant length), so we have listed the data in the order most likely to be changed. If you use a consistent process for your bar-pulling application, it is likely that only the first three input data values must be changed from job to job.

Since the bar-advance amount (#503) is a permanent common variable and is retained from program to program, you can use it in the machining program during bar advance to save some work:

G98 G01 W#503 F30.0 (Pull the bar)

Once the program has completed a bar, it will put the machine in alarm state with the message to load a new bar. At this time, load the new bar, reset the program (so that it runs from the beginning) and restart the cycle. When the program completes the production run (probably in the middle of a bar), it will place the machine in alarm state with the message that the production run is completed. 

It is important to note that the value of #501, the production counter, must be set to zero before this program is used for the first time. It is set back to zero at the completion of each production run, but if you stop running the job before completing the production run for any reason (possibly to pull off of the job to work on a more urgent one), you must reset #501 to zero yourself.

 

NTMA
Become a NTMA member today!
NTMA
Gardner Business Media, Inc.
DN Solutions
Hurco
MMS Made in the USA
SolidCAM
VERISURF
Paperless Parts
715 Series - 5-axis complete machining
World Machine Tool Survey

Related Content

CNC Tech Talks

Troubleshooting Differences in Programming Methods, Machine Usage

Regardless of the level of consistency among machines owned by your company, you probably have experienced consistency-related issues. Here are some tips to help solve them.

Read More
CNC Tech Talks

The Best Point of Reference for Program Zero Assignment Entries

Correctly specified program zero assignment and coordinate position values enable the CNC to determine how far to move the cutting tool during each positioning motion.

Read More

Help Operators Understand Sizing Adjustments

Even when CNCs are equipped with automatic post-process gaging systems, there are always a few important adjustments that must be done manually. Don’t take operators understanding these adjustments for granted.

Read More
CNC Tech Talks

4 Reasons to Use Safety Commands

Safety commands help safeguard CNC applications from common programming or operation errors.

Read More

Read Next

Machines

IMTS 2024: Trends & Takeaways From the Modern Machine Shop Editorial Team

The Modern Machine Shop editorial team highlights their takeaways from IMTS 2024 in a video recap.

Read More
Sponsored

The Future of High Feed Milling in Modern Manufacturing

Achieve higher metal removal rates and enhanced predictability with ISCAR’s advanced high-feed milling tools — optimized for today’s competitive global market.

Read More
View From My Shop

Inside Machineosaurus: Unique Job Shop with Dinosaur-Named CNC Machines, Four-Day Workweek & High-Precision Machining

Take a tour of Machineosaurus, a Massachusetts machine shop where every CNC machine is named after a dinosaur! 

Read More
NTMA