Hi , I have come across the limitiation of the haas that I cant call any tool greater than the carousel number. I am looking for some help in creating a alternate M6 macro that will execute if the M6 gcode asks for a number above 10 of the carousel .
The issues I have are
1. How to get the current tool # into a variable #601
2. How to get the commanded M6 tool # from gcode into variable #602
3. How to get T1-T10 back into the carousel and leave spindle empty
4. How to let the control know I have now inserted a manual Tool# >10
Here is the basic outline of the code I am looking to impliment of course needs a lot of work.
%
O9006 (TOOL CHANGE)
(################################################# #####)
(Tool change macro to check tool number , if above carousel slots then do a manual change)
(################################################# #####)
(VARIABLES)
#601= (set current tool# in spindle)(var toolCurrentNumber = exec.Getcurrenttool)
#602= (set new tool# to change to)(var toolNewNumber = exec.Getnewtool)
#603= (Set 1 for tool in spindle)
G80 ( Cancel canned cycles)
M9 (Coolant off)
M05 (Spindle stop)
G103 P1 (Turn off Look Ahead)
(Check if there is a tool in the spindle)
IF[[#601 GT0]AND[#603LT1]]#3000=100(error tool not in spindle) (check to make sure a tool in spindle)
(Check if current too in spindle is to go back to carousel or a manual removal)
N1
IF[#601 EQ0]GOT010 (If T0 is called exit without activating any tool length ect.)
IF[#601 LE10]GOTO100 (If >T10 then do ATC toolchange)
IF[#601 GT10]GOTO200 (If <T10 then do manual toolchange)
( Check tool called from M6)
IF[#102 NE0]GOT01 (If T0 is not in spindle empty check.)
IF[#601 LE10]GOTO300 (If >T10 then do ATC toolchange)
IF[#601 GT10]GOTO400 (If <T10 then do manual toolchange)
N10 ( Tool zero in spindle)
N100 ( put tool back in carousel)
T0M16 ( put tool back in carousel)
N200 ( manual remove tool from spindle)
N300 ( ATC tool change )
T#601M16 (get commanded tool from carousel)
N400 (Manual tool change)
Has anyone done this on a HAAS ,