Multi spindle automatic tool changer
28 Jan 2019 16:38 #125077
by Shu
Multi spindle automatic tool changer was created by Shu
Thinking about how to implement a solid ATC routine with my multi spindle vmc. It has one ISO30 spindle with ATC function + tool rack, plus many more spindles mounted at offsets, with fixed tools. Like gang tooling on a lathe.
Video example.
- Remap M6 with a custom tool change routine for the ISO30 spindle. When a tool is called that is not in the ISO30 spindle range (ie range T5000-T5999 is for the saw aggregate), the current tool in the ISO30 spindle is not put back into the rack. This can be handled with a T remap, however I couldn't find an easy solution to remap a range of tools instead of single tools, so when the M6 remap is called the subroutine is divided based on the new tool number. For a tool number greater than 999, the ISO30 tool shall not be ejected. For tools 5000-5999, some m codes are called to retract the iso30 aggregate and lower the saw aggregate etc.
Say I want to change back to a tool in the <999 range, ie use the iso 30 spindle, what would be a safe solution here? I think I could set a custom #nnnn to the current tool in the iso30 spindle, and update the #nnnn variable whenever a tool change with <T1000 just happened. At the beginning of the M6 subroutine, I could check if the change happens from a >T999 to a <T1000, then immediately take on the old tool from #nnnn and execute the rest of the subroutine, like move to the tool rack and put down the tool, pick up the new tool. Any thoughts on this?
Also, is there a possibility to remap M3-M5 after a tool change happened? That would be neat, I could control the different spindles with standard M code. Right now everything is custom m codes.
shu
- Remap M6 with a custom tool change routine for the ISO30 spindle. When a tool is called that is not in the ISO30 spindle range (ie range T5000-T5999 is for the saw aggregate), the current tool in the ISO30 spindle is not put back into the rack. This can be handled with a T remap, however I couldn't find an easy solution to remap a range of tools instead of single tools, so when the M6 remap is called the subroutine is divided based on the new tool number. For a tool number greater than 999, the ISO30 tool shall not be ejected. For tools 5000-5999, some m codes are called to retract the iso30 aggregate and lower the saw aggregate etc.
Say I want to change back to a tool in the <999 range, ie use the iso 30 spindle, what would be a safe solution here? I think I could set a custom #nnnn to the current tool in the iso30 spindle, and update the #nnnn variable whenever a tool change with <T1000 just happened. At the beginning of the M6 subroutine, I could check if the change happens from a >T999 to a <T1000, then immediately take on the old tool from #nnnn and execute the rest of the subroutine, like move to the tool rack and put down the tool, pick up the new tool. Any thoughts on this?
Also, is there a possibility to remap M3-M5 after a tool change happened? That would be neat, I could control the different spindles with standard M code. Right now everything is custom m codes.
shu
Please Log in or Create an account to join the conversation.
29 Jan 2019 22:42 #125216
by andypugh
Replied by andypugh on topic Multi spindle automatic tool changer
You can remap the T-word or M6 or both, and then use G-code (or Python) logic to do anything at all you want with the spindles.
In case you are wondering about the "M3 $n" this is an example of the multi-spindle thing introduced to the development branch.
O100 IF [#<T_number> LT 1000]
(ISO 30 spindle)
M6 T#<T_number>
M3 $0
O100 ELSE IF [#<T_number> GTE 5000 AND #<T_number LTE5999]
(operate the saw)
M3 $4
O100 ELSE IF ....
(other tools go here)
O100 ENDIF
In case you are wondering about the "M3 $n" this is an example of the multi-spindle thing introduced to the development branch.
The following user(s) said Thank You: Shu
Please Log in or Create an account to join the conversation.
Time to create page: 0.060 seconds