Manual tool change on a machine with an ATC

More
14 Sep 2022 02:28 #251866 by JacobRush
I just got the ATC working on my Hurco BMC 40 with the umbrella component. That all works well. Pocket 1-30 loads the appropriate tool from the tool changer. But what if I want to call for a tool thats not in the toolchanger or have more than 30 tools. 

I'm considering defining tools in the tool table in "pocket" -1 as being tools not in the ATC and when called up asks the operator to load the appropriate # tool manually. 

Assuming thats possible.. Is there a way to pause the tool change and prompt the user though gcode in the toolchange.ngc? 

Obviously for this to work I need to make sure to handle all the cases.
ATC tool to a manual tool
manual to manual
manual to ATC tool
ATC to ATC tool
no tool to ATC tool
no tool to manual tool
ATC tool to no tool
manual tool to no tool

I think thats all of them.. 

I'm curious how others have handled this or if there is something obvious I'm missing & I'm overcomplicating things. 

Please Log in or Create an account to join the conversation.

More
20 Sep 2022 11:45 #252392 by andypugh
Do you have a tool handler G-code routine? Any logic to not operate the changer would go in there.
Using a pocket number of -1 might work, though I think that value has a special meaning internally.
An alternative would be to add 1000 to the tool number in the G-code and trap that in the handler.

If the toolchanger component just uses the tool-prep and tool-change HAL signals then you would need to add a handler, ie create an M6 remap that uses M6 for norrmal changes and (probably) M61 for manual.

Please Log in or Create an account to join the conversation.

More
27 Sep 2022 16:12 #252862 by JacobRush
Thanks Andy. I think I saw something about pockets needing to be a positive number in the docs.

I'm now thinking of using pocket 0 as tool not in tool changer. And using Tool 0 as unload tool into tool changer (empty spindle for shutdown)

I do have a functional M6 remap and a gcode routine that handles the umbrella movements and loading / unloading tools from the umbrella. Its a bit of spaghetti code at the moment.. and has no provision for manual changes; So I'm thinking I'll re-implment with subroutines for each unload / load operation for both manual and auto then call those using if statements based on the tool#/pocket# that hopefully will avoid code duplication and make it easier to follow.

I haven't really done much manual gcode work so I've been busy reading up on the docs.

Mostly I wanted to make sure I wasn't missing something obvious before I spend a bunch of time accidentally re-inventing the wheel with this. Sounds like I'm on the right track though.

Please Log in or Create an account to join the conversation.

More
22 Oct 2022 09:44 #254740 by andypugh
M6 T0 is how you command a tool unload. So I don't think it will work for your application.

You could _probably_ do something crazy in HAL so that the tool change HAL pins go to the ATC in some cases but to hal_manualtoolchange in others.

But, given that you probably need to do an ATC unload before the manual load, and a manual unload before an ATC load, I think all this belongs in the handler code of a remap.

(On a train, catching up with a 1 month forum backlog)
The following user(s) said Thank You: tommylight

Please Log in or Create an account to join the conversation.

More
26 Apr 2023 06:21 #269948 by Lcvette
Did you ever get this sorted out?   I'm working on the same thing currently.  Just curious to see how others are addressing this! 

Thanks, 

Chris

Please Log in or Create an account to join the conversation.

More
26 Apr 2023 07:45 #269955 by GuiHue
Hi Chris,

on my old rack-style tool changer (number pockets <<< number tools) I have used the following workaround:
-Toolnumbers were in the range of 50 to 999 and synched between linuxcnc and Fusion360 Tool Lib
-linuxcnc handles tool and pocket numbers separately but tends to set T = P when adding tools (as does the tool I use to export from Fusion to LinuxCNC). To avoid mismatches, I have opted to start tool numbering at a number higher than the max pocket count.
-When running a program with, e.g. Tools 51, 101, 224 and 345 I use the setup sheet to check which tools are needed and then manually assign pocket numbers to these tools using the linuxcnc GUI. I thereby manually assign the corresponding pocketnumber to a tool (e.g. Tool 51 in P1). If a tool cannot fit the ATC (or there are more tools required than atc capacity allows), tools are manually inserted.
-M6 Remap uses the pocketnumber to work out where to put the tool (in the right slot in the act or back to manual removal) and to determine where to pick up the tool as well.
-When changing the tool automatically, M61 is used within the macro to set the tool number for the interpreter. Only in the case of manual interaction M6 is used in conjunction with hal_manualtoolchange to display a user dialogue. This works nicer within gmoccapy, as it not only displays the number, but also the associated text of the tool. Probe Basic does not offer this functionalty.

This worked well, however, handling the pocket number can be a bit clunky. I'm currently without the rack style changer and I am therefore not sure if the handling issue for the pocket number has been fixed or not.

Old macro here: github.com/GuiHue/myfenjalinuxcnc/blob/m...cros/rack_change.ngc
Note Lines 23+24 for the workaround to correctly handle the pocket number of the current tool... 

Please Log in or Create an account to join the conversation.

Time to create page: 0.073 seconds
Powered by Kunena Forum