What's new
What's new

How to pause a long program to replace/re-measure a tool on Fanuc control?

pMetal

Aluminum
Joined
Jul 14, 2014
Location
United States
I am running some challenging parts with a cycle time of approximately 20 minutes. We have to stop the machine frequently to change / re-measure tools when they break (or when they sound like they're wearing and might break soon).

When we do this, we end up re-running the program from the start. If the replaced tool happens to be one of the later tools, that could be 19 minutes wasted as the machine cuts air until it gets back to where we left off.

The controls are Fanuc 16iM.

Is there a way to have the control back up to the start of the current tool and pick up where it left off?
 
I would break up the program into almost features, rough this spot pull out M1 go back in, if you hear the insert starting to go,throw op stop on and wait for the m1. might loose a little cycle time but if your having tough issues might save in the long run. and add a line number to each m1 so if you did have to start you could jump or search to N and start.
 
I would break up the program into almost features, rough this spot pull out M1 go back in, if you hear the insert starting to go,throw op stop on and wait for the m1. might loose a little cycle time but if your having tough issues might save in the long run. and add a line number to each m1 so if you did have to start you could jump or search to N and start.

Hi pcasanova, on all of my machines, when I use optional stop it stops at each tool, even without a M0 or M1 in the code. Is this not the way most machines work?

We currently do use optional stop for testing out new programs or for when a tool sounds like it is going to break, but we need a better way as the part has 15 tools and we'll never get anything done with the machine sitting and waiting for an operator 15 times per part.

We could insert M0's in the program and it will stop at the key features, but we still can't just jump right back in: There are lots of preparatory codes (like work offsets) that need to be called prior to re-starting in the middle of the program.

Is there an more automated way to pick up where we left without having to hand-type lots of stuff in MDI (and risk screwing something up) prior to starting in the middle of a program?
 
I am running some challenging parts with a cycle time of approximately 20 minutes. We have to stop the machine frequently to change / re-measure tools when they break (or when they sound like they're wearing and might break soon).

When we do this, we end up re-running the program from the start. If the replaced tool happens to be one of the later tools, that could be 19 minutes wasted as the machine cuts air until it gets back to where we left off.

The controls are Fanuc 16iM.

Is there a way to have the control back up to the start of the current tool and pick up where it left off?

This is a common problem with crappy posts/ code processors and Crappy hand programming structure.

EVERY TOOL should have a start lines and finish lines ending in M01. any other way of NOT doing this is garbage and could lead to alot of broken tools.

if you M01 is stopping when the switch is off, then there maybe a parm bypassing the switch. someone will tell you how to change it.
M01 only stops machine when the switch/selector is on
M00 stops machine no matter what.
I have never seen a machine STOP if it doesnt have a M01 or M00 in it. there could be but seems odd and could be a prm issue but I doubt it.



example: hass
M06 T18 (0.375 DIA. END MILL)
G00 G90 G58 X-4.8 Y-3.81
M03 S11500
G43 Z0.3 H18 M08
Blah
code goes here
Blah
Blah
G00 Z0.5
M09
G91 G28 Z0. M05
M01

next tool

M06 T18 (0.375 DIA. END MILL)
G00 G90 G58 X-4.8 Y-3.81
M03 S11500
G43 Z0.3 H18 M08
Blah
code goes here
Blah
Blah
G00 Z0.5
M09
G91 G28 Z0. M05
M01

etc etc

Fadal
N18 M06 T6 (0.375 DIA. END MILL)
N19 G00 G17 G40 G80 G90 E4
N20 G00 X-4.8 Y-3.81
N21 G8
N22 M03 S9500
N23 G43 Z0.3 H6 M08
Blah
code goes here
Blah
Blah
N252 G00 Z0.5
N253 G9
N254 M09
N255 G91 G28 Z0. M05
N256 M01

next tool

N18 M06 T6 (0.375 DIA. END MILL)
N19 G00 G17 G40 G80 G90 E4
N20 G00 X-4.8 Y-3.81
N21 G8
N22 M03 S9500
N23 G43 Z0.3 H6 M08
Blah
code goes here
Blah
Blah
N252 G00 Z0.5
N253 G9
N254 M09
N255 G91 G28 Z0. M05
N256 M01
 
Is it possible someone stuck an M01 into the tool change routine? See if you have any 9000 series programs in your Directory. If so one may be labeled Tool Change or have no label at all but just a number. Look in there and see if there's an M01 that needs deleting.

But the real issue is for the life of me, I don't see how or why you have to start from the beginning of any program just to get to a tool maybe 6 tools down. Perhaps studying up on the Search Function of your control would do some good. Want T6? In EDIT Mode hit T6 down arrow. You're there. Machine errors if T6 is already in spindle? Curser to the end of the tool change line, which should be right before your safety line that heads off every tool, and start from there.

In my programs every tool number generally only appears twice. Once in the pre-stage call before the tool is need, and then again when the tool is needed. If I want to start at T6 I hit T6 down arrow as fast as I can twice and there I am. Simple. Or if I know I want to back up in the current tool I hit G17 up arrow, which brings me to the head of the safety line of the current tool.

I disagree that M01 needs to be at the beginning and end of every tool. Single block works just as good if you're standing there. I only use it at the end of my programs before M30 on my pallet machine, to hold off a pallet change if I want to do something first. Or if I'm running a repeating program on the lathe I'll put an M01 before M99 if I feel like stepping in before starting again. My door interlocks are bypassed as I work alone and have only myself to worry about, so I see door interlocks as a nuisance. M01 before and after tools may actually be useful or needed on a machine with functioning door interlocks. That I can see.
 
I have an OM control and the only way I know is to manually search. The way I do it is to single block through my safety block at the beginning of the program, then Edit and search for that tool, then arrow back up to the beginning callout code for that op/tool, back to auto and cycle start til I am confident it is doing what I expect then turn off single block and let it run. It takes very little time for me to do it as I am used to it and have done it alot on mine.

I did goof once and did it at my old job and a kid saw me do it and the next day he decided he would as well without picking up the safety block or WC etc. Thankfully it only cost him a part and didn't hurt the machine or tool. If I had known he was watching I would have explained it to him..

I think you should write the program so that you can very easily do a search for that tool or op and add all the code you need to hit go without having to be worried. It will make the code a little redundant but will minimize issues.
 
I disagree that M01 needs to be at the beginning and end of every tool.

Sorry meant to say M01 at the end of every tool callout when its finished with that tool.
every tool should have Standard beginning lines and standard end lines as if you run the tool separate.
 
As mentioned, M00/M01 in beginning/end of a tool operation will work provided the new tool has all the safety codes.
However, there may be cases when the same tool is used for producing a number of features, and one may desire to check the tool after some feature in produced, using M00/M01. On some machines, spindle may not automatically start after M00/M01.
 
Initially I thought you meant that one tool was doing it all and you didn't want to have to let it run to the section it was at. But a 20 min program with 15 tools I am going to assume that it can be stopped at the toolchange. I have to agree with the guys above.

Because I do lots of prototype and one offs I have my CAM set to put a couple line 'start' block after every tool change. The end of every tool has a M01 optional stop. When I am trial machining or want to check things it stops, when I don't, I turn off Optional Stop and it just runs invisibly.

If I ever need to jump to the middle of a program say like 20 mins and 5 tools in I can just jump to the start of any tool and begin there. It's automatically set in the CAM and makes no real difference in program size. I can't imagine doing it otherwise unless I was running production on an old machine and every 'k' counted.

I have a Fanuc 0i-MF.
 
Sorry meant to say M01 at the end of every tool callout when its finished with that tool.
every tool should have Standard beginning lines and standard end lines as if you run the tool separate.

I don't think every tool needs it's own safety line, but probably depends on control. On Haas, the defaults are if you hit reset (like you would typically if interrupting/starting a program in the middle), it clears any G52 values, resets to G17, etc. But again, your controls may vary so please check, don't take my word for it.

I assume OP doesn't have probing? It's real easy to write in a tool break check if you do...

I am still getting used to Mastercam 2021, but there used to be a feature where you could tell it to stop for a "tool check" after xx minutes or feed distance, maybe your cam supports this somewhere? Also, MCX has a button you can check for force tool change, so for example you are roughing and finishing with the same tool, you could check the box on the finish, and even though it's the same tool, it will Z home and output a M01 so you could inspect/change the tool/inserts...
 
As mentioned, M00/M01 in beginning/end of a tool operation will work provided the new tool has all the safety codes.
However, there may be cases when the same tool is used for producing a number of features, and one may desire to check the tool after some feature in produced, using M00/M01. On some machines, spindle may not automatically start after M00/M01.

Good point. On older Haas machines I used to do a lot of 3d surfacing and it was something we used to to do an insert inspection. M00 *I think* would stop the spindle, but not restart it, had to hand edit a spindle on/rpm after the M00 line.
 
I have an OM control and the only way I know is to manually search. The way I do it is to single block through my safety block at the beginning of the program, then Edit and search for that tool, then arrow back up to the beginning callout code for that op/tool, back to auto and cycle start til I am confident it is doing what I expect then turn off single block and let it run. It takes very little time for me to do it as I am used to it and have done it alot on mine.

I did goof once and did it at my old job and a kid saw me do it and the next day he decided he would as well without picking up the safety block or WC etc. Thankfully it only cost him a part and didn't hurt the machine or tool. If I had known he was watching I would have explained it to him..

I think you should write the program so that you can very easily do a search for that tool or op and add all the code you need to hit go without having to be worried. It will make the code a little redundant but will minimize issues.

I'm not real familiar with a broad range of Fanuc controls, but couldn't you put a bunch of go-tos so it's at least easy to manually search? I.E at the beginning of the program...

(Header info)

Goto N1 (Start)
Goto N2(tool 2)
Goto N3
Goto N4
....
Goto N15 (tool 15)

N1 (first tool)
.....


This way when you restart the program by default it skips over all of the Goto's except the one that says go to the beginning. Otherwise, arrow down to the one you want to start from then hit start.
This also assumes proper program format to begin with. If your program is not working with M01/M00 properly as is I would be concerned with what it does.
 
I am running some challenging parts with a cycle time of approximately 20 minutes. We have to stop the machine frequently to change / re-measure tools when they break (or when they sound like they're wearing and might break soon).

When we do this, we end up re-running the program from the start. If the replaced tool happens to be one of the later tools, that could be 19 minutes wasted as the machine cuts air until it gets back to where we left off.

The controls are Fanuc 16iM.

Is there a way to have the control back up to the start of the current tool and pick up where it left off?

Yes, you can do this:
Note N number where your program stopped
Restart in single block before the work offset and H number.
Single block past the H number to make sure your height offset and work offset are called.
Go into edit and search for the first clearance line (probably g0) before where your program stopped.
Go back into auto and hit cycle start.
 
I'm not real familiar with a broad range of Fanuc controls, but couldn't you put a bunch of go-tos so it's at least easy to manually search? I.E at the beginning of the program...

(Header info)

Goto N1 (Start)
Goto N2(tool 2)
Goto N3
Goto N4
....
Goto N15 (tool 15)

N1 (first tool)
.....


This way when you restart the program by default it skips over all of the Goto's except the one that says go to the beginning. Otherwise, arrow down to the one you want to start from then hit start.
This also assumes proper program format to begin with. If your program is not working with M01/M00 properly as is I would be concerned with what it does.

I don't know if you can use a GOTO in an OM, I have never tried or thought of it. The way I do it is very quick and I don't need to do it for every job so I have never had a reason to see if there is a better way. I may dig out the manual to see what cool things I may be missing out on.
 
I am running some challenging parts with a cycle time of approximately 20 minutes. We have to stop the machine frequently to change / re-measure tools when they break (or when they sound like they're wearing and might break soon).

When we do this, we end up re-running the program from the start. If the replaced tool happens to be one of the later tools, that could be 19 minutes wasted as the machine cuts air until it gets back to where we left off.

The controls are Fanuc 16iM.

Is there a way to have the control back up to the start of the current tool and pick up where it left off?

Not knowing what machine you are using you could add block numbers into the program and use a GOTO to bypass large portions of a program as a temporary solution. When the job is complete remove the GOTO in the program. We have a similar issue on our hitachis that run very long programs and the best solution was to add a GOTO to area we wanted to continue or rerun and it works fine but make sure you remove the GOTO. You can also use a GOTO to bypass a broken tool or tap in a job.
 








 
Back
Top