What's new
What's new

tool change

jpillow

Plastic
Joined
Jan 16, 2008
Location
VA, USA
Hey, we have a HAAS VF-1 CNC Milling Machine. I am in a precision machining class and I have a question for you all that I am kind of curious about, and my teacher dosen't know. When we start in the middle of a program, at the tool change, why does it go an get the previouse tool used. Then switch back. For example: If we start at the point within the program wear it retrieves tool 2, It will switch to tool 1, move in a random position(sometimes just a little ways and then back to the tool change position, but its not allways the same position) then change back to tool 2 and continue the program. Why does it do this and is there any rhyme or reason to which point it moves to after it switches to the previous tool.

thank you for any help
 
Could it be that it have preselected one tool before you start tool 2 and it has to put that tool back in it's place before retrieving tool #2?
 
Because the control interprets the code UP-TO but NOT INCLUDING to your toolchange, and then it places the machine into the EXACT state of where it would be in a normal operation.
In your case it means that the block BEFORE your toolchange would still have the previous tool in the spindle, therefore it will change back to it.

To get around it without adverse effects, you can restart on the first line AFTER the toolchange.
For example, I only have the umbrella toolchanger so there is no need to pre-select tools, therefore all of my toolchanges follow this strict and exact format:

(OPERATION - TOOLdef)
T5 M06
G00 G43 H05 D05
G00 Xn.nn Yn.nn Zn.nn
blah blah blah

If I want to restart at the beginning of this tool, I just place the highlight on the G00 G43 ... block and hit the green. Safe and predictable every time.
 
the movement

thanks, i guess that would make since. When i get to school today i am going to try starting it on the line below the tool change. What about the movement, why does it move in random positions. I think the line above the tool change was G28. But its allready there when it changes the tool, then moves away with the tool, then back to get the tool it needs and finishes the program.
 
Same reason.
Toolchange position IS in fact a known safe position to restart from.
It is in the restart logic. Granted, some of the moves seem little excessive, but I'm willing to bet that internally a restart sequence calls the toolchange routine with no actual tool.
That in turn makes the Z rapid home, then rapid above home and then reduced rapid back to home. It then proceeds to put X, Y and Z to the previous programmed position, which in case of a restart at the beginning of the tool means Z is at home, X and Y is at where the toolchange was called at.
As I said, in this case it may seem excessive, but you can restart in the very middle of the program, even inside a cut and still have an uneventful restart.
 
I would not start at any other line than a tool change line.
If you have pressed reset you have (I think) canceled the offset info. I start my Haas at the tool change line and put up with th esillyness of the moves. Less crashes because it forgot the offsets....
But that's just me
 
The Haas control starts either 2 or 3 lines before where you select on the program. What we do is "t", down arrow, go down two lines, and fire. If that tool is not in the spindle, it will still recognize it and go get the tool. If it has it, it takes off like normal.

The Haas control also will find the proper offset. We have yet to have a problem with offsets. Even starting anywhere in a program. It will go back to the last offset and use it. I think some controls will keep an offset active until canceled. We enter an offset at each tool change. Not sure what other controls do but that works for us great.
 
I know EXACTLY what you're talking about.....my HAAS did the same thing and it drove me friggin nuts!! It is a parameter or a setting change that will cure it, I can't remember which right now, but I will check into it and get back to you with the way to fix it.

Later,
Russ
 
thanks

thanks, I understand it a little better now, maybe I can explain it to my teacher then when other people ask he will know

Thanks everyone
 
So far I do not understand what is being said.

On our machines HAAS remembers what tool number is in the spindle. This does not mean the correct tool is in the spindle, because I can manually remove the tool and put a different one in the spindle. What it does mean is that HAAS knows the pocket from which the last tool was obtained and this tool number is stored in a memory location (side changer is more complex), and of course the tool turret has not moved. This information is not lost on a RESET.

When a new tool change is issued the current tool is put back in the turret and the turret moves to the new location, this could be same as the last, and that tool is loaded. Our machines are set up so that if the new tool change commanded is for the tool already in the spindle, then no physical change of the tool occurs.

If I stop a program, RESET (means program pointer goes to the beginning), I move the cursor to the point in the program from which I want to start, and then push Cycle Start the program will start on that pointed to block. This is not a safe thing to do unless you know the tool is correct, and that G5x, G52, and any other functions that affect position are correctly loaded, and that your current tool is away from the part. If this is done at a non tool change point you have other problems. If the cursor is done at a tool change line and this includes specifying the offset and diameter codes, etc., then it should be safe.

Otherwise you need to use the RESTART function. See
"36 Program Restart" in the HAAS manual.
I do not use this method. What I do is put lots of tool changes in a program via a G65 subroutine call that I have described somewhere on CNCZONE. Then to do a restart I just put the cursor on the block with the G65 tool change call and push Cycle Start. Currently my subroutine does not change G52 values, if necessary that is done following the tool change, but the subroutine call does include the specification of the G5x as well as tool diameter.

.
 
gar.....what he is saying is that in the middle of the program he has to stop for some reason by hitting reset. Now being back at the beginning of the program he needs to start at say tool 4 even though he was just using tool 2. He moves the cursor down to the line "T4 M6" and presses cycle start. But the machine goes and gets tool number three and moves to the last known "X", "Y" and "Z" location for that tool 3. Then once there, it will return home and change to tool 4 and continue the program from that point on. My Haas VF-0 did the same exact thing and it drove me nuts......not too mention scared the crap outta me a few times as well. One day while on the phone to Haas I mentioned that circumstance and they switched me over to one of the application engineers who had me go in and change a setting in my parameters and it doesn't do it anymore. Now if I hit reset in the middle of the program and scroll down to the start of tool 4 it gets tool 4 and continues from that point. Why you would want it set so that it gets the tool before the one you want is beyond me, but that's what it was doing, and it's just a phone call away from changing a setting to stop it from doing that.

jpillow........someone will need to call Haas and have them tell you the parameter/setting to change.

Best Regards,
Russ
 
PBMW


As gar has pointed out, with Program Restart parameter turned on, you can hit reset all you want. It will never forget what tooloffsets were active or not active. It will internally scan the whole program and puts everything back to where it should be, including coolant, spindle RPM and all.
That's why I've said that you can even start in the middle of a cutter comped toolpath.
I am yet to see anything the Haas forgets. That dammn control is rock solid, even the minor bugs are consistant.

Gar

Try this. Take a program with 2 tools, say T1 and T2.
T1 is rougher, T2 is finisher. Put the cursor on the line with T2 M06 and hit Start.
What's gonna happen is machine homes Z, puts T1 into spindle, rapids to Z-max, moves X - Y to the last position before the toolchange, reduced rapid to toolchange Z. It then changes to T2 and continues as it would normally.
If you put the cursor on the line AFTER the M06, it will eliminate the previous tool hoopla and goes to the correct tool immediately OR keeps the one in there if that is the correct one.

This is with the umbrella changer.

Wrustle

"""
Why you would want it set so that it gets the tool before the one you want is beyond me
"""


Because you're telling it to do that!!!
Remember, the line you highlight is the line it wants to start on. The only way it can do that is if it puts everything back to the state it was JUST BEFORE!!! the line. In this case the previous tool was in fact in the spindle just before, hence it puts that back in.
Sort of like starting with a drill cycle @ Z-1.. You don't want it to rapid to Z-1. first, rather you want it to establish the point at which it was during a normal run and put X,Y and Z there.
In the below example, you can highlight N50 and hit Start no matter where you are with the spindle. It will never collide with anything, because it puts the tool to Machine Z0 first, then G54 X2. Y0 second, then rapids to Z-.5 and only then starts the drill cycle.
If you highlight N100, then Tool1 SHOULD BE in the spindle still, so it puts it back in as the restart condition before changing to Tool2.


(drill cycle)
T1 M06
G00 G43 H01 D01
G00 X0 Y0 Z.5
S2000 M03
M08
G83 Z-.5 R.03 F2. Q.6
X1. Y0
G80
G00 X2. Y0 Z.5
G00 Z-.5
N50 G83 Z-1.5 R-.95 F2. Q.6
G80
G00 G49 G53 Z0
N100 T2 M06
G00 G43 H02 D02
G00 X0 Y0 Z1.
...
...
...
 
Seymour:

It appears that Program Restart has been enabled for those describing the problem here. To start several instructions back and maybe more before the desired restart point may make sense for all restart points that are not a tool change for some people, but not me. I would want control of that restart point.

However, in the case of starting on a tool change I would classify this type of extra motion and tool change operation as a HAAS bug. HAAS knows the line where you are restarting and a simple test would determine that it was a tool change block. Thus, no need for any X and Y motion and only a need to go to tool change position in Z on execution of the pointed to block for restart, and then only if a different tool was required.

I would suggest that when you change tools and just following the toolchange stuff that an absolute X, Y, Z should be established in the program, and not depend upon a previous motion. However, even if you did depend upon a previous location, then these superfluous motions should not be required.

It is always wise after stopping and resetting to manually move the tool up and away from the part.

When setting "36 Program Restart" is off there should be no stange motions.


wrustle:

If one was just using tool 2 and did a stop and reset, then first the tool should be manually raised.

Now in your example we are not restarting on tool 2 but some totally different point in the program which happens to be at a change to tool 4. I would assume this is a point that preceeded the program point were the machine was stopped. HAAS starts scanning the code from the first line to the new restart point and the last tool before the restart point is tool 3 so HAAS has to put tool 2 away, then unnecessarily gets tool 3. Then you say HAAS goes to the last known location of tool 3. I have no idea of where that is and what motions take place. You loose me at that point.

There are various reasons you may want to stop and reset a program. The way or where you want to restart will depend upon why you stopped.

Suppose it is a broken tool on a mold, then you want to clean up junk first. Next to start some number of blocks before the failure point because you probably do not know the point where the failure occurred. Here setting 36 to ON may make sense because it can solve a number of problems including operation in incremental mode. But note you have chosen the place to start cutting air, so really there is no need to start before that point.

Suppose you stopped at a tool change point to make some dimensional measurements. You restart at that tool change point. Absolutely no reason to cut air or make any tool change except to the one you want to use.

Under cuts are something that you need to restart before the undercut, but any knowledgeable machinist knows this and I would expect would pick a restart point adequately before this point.

There is nothing that points to the need for a prior tool change in the program to be performed before a restart on a tool change. Any machine motions are being calculated anyway.

Threading may present some unique problems for restart. Here you may need to manually modify the program, but this has no relation to any need for the mentioned previous motions relative to restart.

.
 
If you highlight N100, then Tool1 SHOULD BE in the spindle still, so it puts it back in as the restart condition before changing to Tool2.


(drill cycle)
T1 M06
G00 G43 H01 D01
G00 X0 Y0 Z.5
S2000 M03
M08
G83 Z-.5 R.03 F2. Q.6
X1. Y0
G80
G00 X2. Y0 Z.5
G00 Z-.5
N50 G83 Z-1.5 R-.95 F2. Q.6
G80
G00 G49 G53 Z0
N100 T2 M06
G00 G43 H02 D02
G00 X0 Y0 Z1.
...
...
...

That seems like a waste of time and tool changes. There is no reason to go back to tool 1. If you know that tool 2 is in the spindle just continue on.
Of course that's just me. To each his own. Been running Haas' for 12 years and never had them do this. I think that would drive me crazy.
 
Last edited:
Seymour:

Looking at your example for Wrustle and at line 100 and a restart at line 100 why is it necessary to load tool 1?

Tool 1 won't be used and has nothing to do with tool 2 assuming you stopped at line 100, but did not execute 100. If you stopped somewhere before line 100, then you should be restarting at whatever that place was.

Since HAAS knows what tool is in the spindle HAAS will stored that tool and then retrieve the tool called at 100. HAAS knows what tool is in the spindle independent of the program.

Are there ways to get HAAS mixed up? Yes.

.
 
Yup, this happens only when Program Restart is enabled.
I can't stand it on the lathe, but consider it almost essential on the mill.
As for it being a bug? I'd say maybe not a bug in a general sense, perhaps a small flaw in the logic of the restart routine. As it stands, no matter how useless the extra toolchange is, it can be explained with logic.
You put the restart at the M06, hence you want to make the toolchange. So, I'll put the previous tool back and then give you a toolchange. I then position in X and Y to where it should be anyway ( no logic here, it must be done to be predictable ), and then start cutting.

Gar, can the control get mixed up? I dunno. So far it was always accurate and on the nose.
Whenever I've encountered a WTF moment, after a few curses I always realized that in fact I was the dumbass, no matter how stupid and little nuance it might have been.

Explanation for start at line100:
It must execute T2 M06, from the state of T1 H0.
Since T1 H0 = Tool1 at Z positive max in G53 ( check it out once ), it puts the spindle there and then places Tool1 in, along with the umbrella in the expected position.

If you ever saw a MiniMill sporting a chucking reamer while there is a HA5C indexer on the table, you know why it's important to have the tool EXACTLY where you want it to be at each and every step.
Again, there may be other ways to ensure consistency. This is theirs and as long as you're aware of it you know how to work around it. In this case just start at the block right after the M06. Works every time.


""""

Tool 1 won't be used and has nothing to do with tool 2 assuming you stopped at line 100, but did not execute 100. If you stopped somewhere before line 100, then you should be restarting at whatever that place was.

""""

Why is that? Why can I not restart AT whatever point FROM whatever point?
 
Keeping it simple

A suggestion,
If you are ALWAYS going to restart at am M06 line, then you would set the "program restart" setting to "no", this would eliminate the tool change at restart.

If, however, you will be restarting your program anywhere other than am M06 line then you HAVE to have the setting turned to "on", this will start the machine at the line you have selected, offsets, both work and tool, length and diameter, will be active, since the control has "looked" at them when reprocessing the program to that point, on older machines, the only thing that was left off was coolant, my 1993 VF-0 keeps me on my toes on that one!

I personally leave it on if I am running long progs with the possibility of having to change tools, (ie:wear or breakage), if not, it stays off.

Now, if it is on, and you do a restart from a true midpoint in the program, then I always put the curser at the closest "Z" clearance point, per se:

:
:
:
g01 X-12.123Y12.123 (END OF LAST GOOD CUT)
G40 X-121.121
G00Z.5 (RESTART POINT)
X-5.123Y-5.123
G01Z-.2
G41X-5.Y-5.(SEQUENCE TO RE RUN)

The control will reload all offsets and send the tool to X-121.121 Y12.123 and rapid down to the prevoius Z rapid point, then feed down, and rapid back up to the Z.5 plane and go back to work.

This has worked well for me with no crashes or surprises, but until you get used to it, it can be a bit intimidating.
Darrell
 
A suggestion,
If you are ALWAYS going to restart at am M06 line, then you would set the "program restart" setting to "no", this would eliminate the tool change at restart.

If, however, you will be restarting your program anywhere other than am M06 line then you HAVE to have the setting turned to "on", this will start the machine at the line you have selected, offsets, both work and tool, length and diameter, will be active, since the control has "looked" at them when reprocessing the program to that point, on older machines, the only thing that was left off was coolant, my 1993 VF-0 keeps me on my toes on that one!

I personally leave it on if I am running long progs with the possibility of having to change tools, (ie:wear or breakage), if not, it stays off.

Now, if it is on, and you do a restart from a true midpoint in the program, then I always put the curser at the closest "Z" clearance point, per se:

:
:
:
g01 X-12.123Y12.123 (END OF LAST GOOD CUT)
G40 X-121.121
G00Z.5 (RESTART POINT)
X-5.123Y-5.123
G01Z-.2
G41X-5.Y-5.(SEQUENCE TO RE RUN)

The control will reload all offsets and send the tool to X-121.121 Y12.123 and rapid down to the prevoius Z rapid point, then feed down, and rapid back up to the Z.5 plane and go back to work.

This has worked well for me with no crashes or surprises, but until you get used to it, it can be a bit intimidating.
Darrell


Thanks Darrell.....that's exactly what I was trying to say! I have a 1992 VF-0 and it not only drove me nuts having the previous tool come out when I was calling for a different one....it damn near gave me a heart attack the first time it happened. I ended up calling Haas and asked about it and that must have been the setting they had me change (I didn't remember which setting, it was quite awhile ago) and now I keep it that way. Your explanation nailed it! Interestingly now after reading your post, I will have to remember about switching it back to start in the middle of the tool sequence, because I have had the need for that in the past, and had to simply run the tool from the start again. Learned something new from all this.

Best Regards,
Russ
 








 
Back
Top