![]() | |
| Home Page | Mark Forums Read | Today's Posts | My Replies | Classifieds | Reviews | Photo Gallery | Web Links | Share Files | Advertise With Us | Ad List |
| |||||||
| G-Code Programing Discuss G-code programing and problems here! |
| This forum is sponsored by: |
![]() |
| | LinkBack | Thread Tools | Search this Thread | Display Modes |
|
#1
| |||
| |||
| I'm offering up a version of our tool change macro that we use to make tool changes easier and less code intensive in programs. Note this also makes MDI tool changes MUCH easier. This will activate the tool length offset and work offset G54 as well. This requires macros to use. I'd appreciate any comments or suggestions for improving this. And a disclaimer: Check the G and M codes against what your machine uses! Usage: T12 M98 P9006 (or just and M6 if you register the program, see below) Yep that is all it takes to get T12 called to the spindle, with the tool length active. You may replace the M98 P9006 with a simple M6 if you register program O9006 as M6 This may vary some for different controls, on our machine we have to set parameter 6046 = 6 parameter 6041 matches O9001 6042 matches O9002 Ect. What ever number is assigned to the 604x is the M code that runs the 900x program Code: O9006 (TOOL CHANGE) G80 M9 G91G30Z0M5 G30X0Y0M15 IF[#[2000+#4120]LE11.0]GOTO10 #3000=97 (,YIKES, TOOL LENGTH IS TOO LONG) N0010 G90 T#4320M6 G53 (SUPPRESS MULTI-BUFFER) IF[#4320EQ0]GOTO9999 POPEN DPRNT [TIMES@#3011[80]@#3012[60]@P#120[40]@T#4120[20]] PCLOS IF[#[2000+#4120]GE1.0]GOTO20 #3000=98 (,YIKES, TOOL LENGTH IS TOO SHORT) N0020 IF[#[2200+#4120]LT1.0]GOTO30 #3000=99 (,YIKES, TOOL WEAR IS TOO LARGE) N0030 G90G0G43G54Z[24.99-[#[2000+#4120]+#[2200+#4120]]]H#4120 G53 (SUPPRESS MULTI-BUFFER) IF[#4320NE#500]GOTO50 M0 M99 N0050 M1 N9999 M99 Now for the breakdown of the code O9006 (TOOL CHANGE) G80 M9 G91G30Z0M5 G30X0Y0M15 End previous activities and go to tool change position. Make sure automatic cycles are canceled and coolant is off, stop and orient the spindle. IF[#[2000+#4120]LE11.0]GOTO10 #3000=97 (,YIKES, TOOL LENGTH IS TOO LONG) N0010 This is a quick check that the tool isn't too long for the machine/tool change, and will stop with error 97 and ",YIKES, TOOL LENGTH IS TOO LONG" as the message. G90 T#4320M6 The actual tool change. this machine uses the T# on the same line as the M6 not all will. #4320 recalls the last T# used previously G53 (SUPPRESS MULTI-BUFFER) IF[#4320EQ0]GOTO9999 If T0 is called exit without activating any tool length ect. POPEN DPRNT [TIMES@#3011[80]@#3012[60]@P#120[40]@T#4120[20]] PCLOS Outputs on the com port a line with the date and time, program number, and tool number separated by the @ symbol. I couldn't figure out how to output a comma or tab... IF[#[2000+#4120]GE1.0]GOTO20 #3000=98 (,YIKES, TOOL LENGTH IS TOO SHORT) N0020 IF[#[2200+#4120]LT1.0]GOTO30 #3000=99 (,YIKES, TOOL WEAR IS TOO LARGE) More tool length and length wear checks to make sure something stupid wasn't put in the offset table. This will also catch a missing offset ![]() N0030 G90 G0 G43 G54 Z[24.99-[#[2000+#4120]+#[2200+#4120]]]H#4120 Here we activate the tool offset. Home position is at Z25.0 This calculates the tool length and moves to Z24.99 (0.010 move) The move is required to activate the tool offset. G53 (SUPPRESS MULTI-BUFFER) IF[#4320NE#500]GOTO50 M0 M99 A number in macro variable 500 will cause the program to pause after changing to that tool number. cycle start will continue normal operation. N0050 M1 N9999 M99 And finally turning on optional stop stops after any/all tool changes. Here is a simple version with very little of the fancy stuff Code: O9006 (TOOL CHANGE) G80 M9 G91G30Z0M5 G30X0Y0M15 T#4320M6 G53 (SUPPRESS MULTI-BUFFER) G90G0G43G54Z[24.99-[#[2000+#4120]+#[2200+#4120]]]H#4120 G53 (SUPPRESS MULTI-BUFFER) M99 Last edited by dpuch; 02-20-2007 at 09:10 PM. |
|
#2
| |||
| |||
| I get an error with my Fanuc OM controller saying there is an ilegal use of the minus sign when I try to upload the simple version of your tool change macro. Any ideas why I might be getting this error? Perhaps I will have to write my macro differently? |
|
#6
| |||
| |||
| G53 on our machines stops the read ahead buffer until that line is actually finished. M20 is the equivalent on another machine. The point is to keep the buffer from reading and processing macro statements ahead of the actual execution. I think the default read ahead is 3 lines, and there is an option that is 20 or more lines. It is mainly a safety to make sure the variables can't get the wrong values from later in the g-code. I (over) use them sometimes to be on the safe side. |
|
#7
| |||
| |||
| For some reason I got a post update message today, and I thought I would clean up the code posted here. It would not let me edit the original, so I am re-posting the code with better formatting, and the updated offset line. Nothing else was changed. Code: Code: O9006 (TOOL CHANGE) G80 M9 G91 G30 Z0 M5 G30 X0 Y0 M15 IF [#[2000+#4120] LE 11.0] GOTO 10 #3000=97 (,YIKES, TOOL LENGTH IS TOO LONG) N0010 G90 T#4320 M6 G53 (SUPPRESS MULTI-BUFFER) IF [#4320 EQ 0] GOTO 9999 POPEN DPRNT [TIMES@#3011[80]@#3012[60]@P#120[40]@T#4120[20]] PCLOS IF [#[2000+#4120] GE 1.0] GOTO 20 #3000=98 (,YIKES, TOOL LENGTH IS TOO SHORT) N0020 IF [#[2200+#4120] LT 1.0] GOTO 30 #3000=99 (,YIKES, TOOL WEAR IS TOO LARGE) N0030 G91 G0 G43 G54 Z-[#[2000+#4120]+#[2200+#4120]] H#4120 G90 G53 (SUPPRESS MULTI-BUFFER) IF [#4320 NE #500] GOTO 50 M0 M99 N0050 M1 N9999 M99 Now for the breakdown of the code O9006 (TOOL CHANGE) G80 M9 G91 G30 Z0 M5 G30 X0 Y0 M15 End previous activities and go to tool change position. Make sure automatic cycles are canceled and coolant is off, stop and orient the spindle. IF [#[2000+#4120] LE 11.0] GOTO 10 #3000=97 (,YIKES, TOOL LENGTH IS TOO LONG) N0010 This is a quick check that the tool isn't too long for the machine/tool change, and will stop with error 97 and ",YIKES, TOOL LENGTH IS TOO LONG" as the message. G90 T#4320 M6 The actual tool change. this machine uses the T# on the same line as the M6 not all will. #4320 recalls the last T# used previously G53 (SUPPRESS MULTI-BUFFER) IF [#4320 EQ 0] GOTO 9999 If T0 is called exit without activating any tool length ect. POPEN DPRNT [TIMES@#3011[80]@#3012[60]@P#120[40]@T#4120[20]] PCLOS Outputs on the com port a line with the date and time, program number, and tool number separated by the @ symbol. I couldn't figure out how to output a comma or tab... IF [#[2000+#4120] GE 1.0] GOTO 20 #3000=98 (,YIKES, TOOL LENGTH IS TOO SHORT) N0020 IF [#[2200+#4120] LT 1.0] GOTO 30 #3000=99 (,YIKES, TOOL WEAR IS TOO LARGE) More tool length and length wear checks to make sure something stupid wasn't put in the offset table. This will also catch a missing offset N0030 G91 G0 G43 G54 Z-[#[2000+#4120]+#[2200+#4120]] H#4120 G90 Here we activate the tool offset. This makes a -Z incremental move Equal to the tool length+wear This activates the tool offset without physically moving the machine. G53 (SUPPRESS MULTI-BUFFER) IF [#4320 NE #500] GOTO 50 M0 M99 A number in macro variable 500 will cause the program to pause after changing to that tool number. cycle start will continue normal operation. N0050 M1 N9999 M99 And finally turning on optional stop stops after any/all tool changes. Here is a simple version with very little of the fancy stuff Code: Code: O9006 (TOOL CHANGE) G80 M9 G91 G30 Z0 M5 G30 X0 Y0 M15 T#4320 M6 G53 (SUPPRESS MULTI-BUFFER) G91 G0 G43 G54 Z-[#[2000+#4120]+#[2200+#4120]] H#4120 G90 G53 (SUPPRESS MULTI-BUFFER) M99 |
![]() |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | Search this Thread |
| Display Modes | |
| |
Similar Threads | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Fanuc 15m Tool Change Problems | diggityds | Fanuc | 11 | 12-20-2011 05:49 AM |
| FANUC 6M Kitamura mycenter 2 Tool change help | Yabbos | Fanuc | 5 | 08-09-2007 03:25 PM |
| Fanuc tool change homing issue | openforbiz | Fanuc | 8 | 01-31-2007 02:35 PM |
| Tool change on Fanuc OT | steedspeed | General CNC (Mill and Lathe) Control Software (NC) | 5 | 09-11-2006 03:37 PM |
| A sample tool change macro. | gar | Haas Mills | 17 | 08-22-2005 05:13 PM |