Mill ATC umbrella, config: qtdragon, classicladder, carousel, spindle enc & lock

02 Oct 2023 05:49 #282043 by camb0
Hi All,

Yes another thread, after trolling the forums for hours I can see I'm spoilt for choice but I'm struggling to work out some specifics for what I think will work for my setup. 
I've got:
  • umbrella tool changer on a Matsuura MC500v,
  • 16 pockets, index signal, pocket position signal
  • MESA 7i96 and 7i76,
  • tool change is at Z-home (so I don't need to move an axis for the change)
  • linux2.9
  • qtDragon HD

Based on the above I'd settled on using:
  • tool changer movements -> classic ladder (got that bit working and documented here ),
  • tool pocket management -> carousel
But the rest I'm a bit lost on.  So far I have a single pin in classicladder that triggers the tool change movements, after the tool is out it waits on a dummy pin for the carousel to move to the right location, I've also got a dummy out pin to advance the spindle so the spindle lock can lock. 

What I need help with:
1) Work out a single HAL pin (or just callable from classicladder) to advance the spindle so that the spindlelock drops into place. I have spindle lock on a roller bearing and I'm thinking the easiest is just to turn the spindle on for 0.5sec to get it to lock in but I also have a spindle encoder [256 counts/rev] so could try orient (feels more complex).  Spindle is controlled via 0-10v analogue VFD and I can't quite figure out how to setup a pin that in a single call will start the spindle say CW and 200 rpm. Would this be a custom gcode thing (I've not done one as yet)
2) How to hookup the tool changer into qtDragon / Gcode, would this be via the remap of M6 command? if so what does that look like? I have a probe currently configured for M6 remap (haven't used it) and would like that included in the M6 later on.
3) How to setup the carousel, I've got an index pin and a pocket position pin and whilst I know the basics from the component doco I've not been able to findout:
3.1) Does it need to 'home' itself on startup? to work out it's position and if so how do I trigger that?
3.2) How do I tell the machine what tools and blanks are in what pockets, I assume this is just part of the machine/program setup workflow, does it remember the last config?
3.3) How do I change out the current tool back to the magazine and leave the spindle empty? I assume just do a dummy change with a blank position (so I'd need 2 empty pockets to do an unload).
3.4) Any suggestions on how I jog the carousel component to move the magazine a position at a time so I can load/change the tools that are in the magazine?

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

02 Oct 2023 09:30 #282055 by andypugh
With your current system there should be no need for a G-code remap.

When you issue a T-command in G-code the HAL pins iocontrol.0.tool-prep-number and iocontrol.0.tool-prep pocket will pass the required numbers to either or both of your classic ladder and the carousel component.
The system also sets iocontrol.0.tool-prepare and pauses the system until iocontrol.0.tool-prepared is set high.

The same thing happens with the tool-change pins when the M6 command is executed.

The reason that this is a two-step process is that often the toolis prepared while cutting is ongoing, on changers where that is possible.

Ref 3.2 If you configure for a RANDOM_TOOLCHANGER in the INI file then the system keeps track of which tool is in which pocket for you, on changes where the old tool goes into the space where the new tool came from.

3.1) The carousel component will home the changer when first activated.

3.3) I am not sure how the system unloads a random toolchanger. I suggest experimenting in a sim config. (Though the maybe-obvious choice of sim-axs-vismach-vmv_toolchange is a non-random changer so probably doesn't help much. Though it's probably a decent starting place to observe the behaviour if you swith it to RANDOM and then ignore the graphics.)

3.4) The carousel component has dedicated input HAL pins for jogging.

Despite saying that you don't need a remap. there is a lot to be said for using one. Especially as you said that you want to add tool length probing)

The main advantage of using a G-code remap to sequence the changer is that it has better options for aborting a failed change with a meaningful error message.

But it will also make turning the spindle on at slow speed easier too.

You can do both a remap and CL, if you want.

Take a look at the Vismach sim cnfig above for what a G-code remapped change sequence might look like:
The following user(s) said Thank You: camb0

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

03 Oct 2023 08:58 - 03 Oct 2023 09:00 #282141 by camb0
Andy thanks for the help, it's very much appreciated.
So after reading/config/testing/more config/more reading I managed to get the motion all co-ordinated and connected to the underlying system via iocontroller to classicladder so that T(x) M6 commands work and I can change tools (very satisfying to watch).

I managed to do everything in classicladder and some HAL pins to do a reverse rotation pulse on the magazine to brake it (works a treat).

The last thing I need to get working is the spindle rotation so the mechanical brake can lock the spindle, would you have any suggestions on how best to achieve that based on my setup so far?
Would that look like an M6 remap where I do an M19 first (setup spindle orient..eek) and then call the classicladder (perhaps from a M100-199 custom command in shell script call halcmd)?
If I could I'd trigger the mechanical spindle lock solenoid and then do a M3 S300, G4 P0.5, M5 and it would be done.

Thx in advance,
Last edit: 03 Oct 2023 09:00 by camb0.

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

03 Oct 2023 10:30 #282149 by andypugh
Does your spindle VFD have a capability to be configured for a jog input pin? Many do, and that might be a good way to do it.

i think adding a remap at this stage would over-complicate things.

You could use an output from CL to switch a mux HAL component.
In the default state the mux wuld pass the curret spindle speed command to the PWM (or whatever control scheme you are using) of the spindle. But when the "sel" bit was triggerred it would pass through the alignment speed command.
Is there an output from the system that indicates that the alignment pin is engaged?

To use a flat value wit mux2 you woul dneed to use a mux_generic.
The following user(s) said Thank You: camb0

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

04 Oct 2023 05:19 #282247 by camb0
Great suggestion, I was so stuck in HAL and CL I couldn't think outside of that. It's a clean solution as it doesn't trigger flags in CL for the spindle moving etc.
Took me under 40mins (two electrical cabinets on this machine) and I had it all up and running.

I've spent some time tweaking the timing of Classic Ladder etc and adding safety checks etc.

Time to make some chips (break some tool bits)...
Thx again

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

Time to create page: 0.105 seconds
Powered by Kunena Forum