How to build ATC Carousel in linuxcnc ?

More
6 years 4 months ago #169651 by tommylight
It could be done just using gcode O subs, or using the carousel component of LinuxCNC.
It can also be done with M6 remap, but i would not use remap.
Does the tool changer have any position sensors? Having an index and another sensor for counting the positions would make it very nice for the carousel comp.

Please Log in to join the conversation.

More
6 years 4 months ago #169653 by andypugh

0x2102 wrote: It's vertical 2 by X Tool Changer. So, for example 24 tools in total: tools 1 - 12 on the left side and tools 13 - 24 on the right.
Still trying to figure out what the best approach would be accomplish this type of tool changer.


The "carousel" HAL component already does what you need for this application:
Code:
pin in signed pocket-number """The pocket to move to when the .enable pin goes high. If the value passed is gigher than the number of pockests specified in the "pockets" modparam then modulo arithmetic is used. This is intended to allow the use of multiple tools in the same holder, as is sometimes useful with lathes.""";

So 2 and 14 would both position the carousel in the same place. Then the tool0change logic needs to decide what axis moves are needed, ie left or right of the tool changer.

Please Log in to join the conversation.

More
6 years 4 months ago #169655 by 0x2102
I am still thinking about how to index/position it. Right now I would say 5 proximity sensors (1 index / 4 binary or gray code) to identify position of the carousel.

Please Log in to join the conversation.

More
6 years 4 months ago #169656 by andypugh

0x2102 wrote: I am still thinking about how to index/position it. Right now I would say 5 proximity sensors (1 index / 4 binary or gray code) to identify position of the carousel.


That's definitely the way that I would recommend. There are other possibilities but I think Gray code + strobe is definitely the most dependable. Add another sensor for parity, if you want to be super-confident. (Then if any single sensor fails an error will be triggered)

Please Log in to join the conversation.

More
6 years 4 months ago #172938 by rogerxue
Hi Andy, Do you have a concrete example of how to use the carousel component? I checked VMC_toolchange, but it's still not very clear to me how to use it. For example, I see the signal car-enable gets created, but nowhere does it get used, I assume it need to connect to some other pin to actually use it?

also if I have a "home" switch on my carousel, will that get connected to the carousel.N.ready pin?

still try to understand how to use it

thanks for your help

Please Log in to join the conversation.

More
6 years 4 months ago #172941 by andypugh
VMC_toolchange is as concrete as it gets.

(I have configured a couple of machines to use it, but none were my own and I don't have the configs)

What does the "home" pin on your carousel indicate?

In many cases it will connect to sense-0 and be the pocket-1 indicator.

Please Log in to join the conversation.

More
6 years 4 months ago #172942 by andypugh

rogerxue wrote: For example, I see the signal car-enable gets created, but nowhere does it get used,


Where are you looking?
Code:
net car-enable motion.digital-out-00 carousel.0.enable

That is linking the signal to the carousel enable, and to a G-code digital output.

Please Log in to join the conversation.

More
6 years 4 months ago #172945 by rogerxue
my bad, I was looking at a older verison.

So if I decide to use stepgen to drive stepper, then
carousel.N.fwd-dc should be net to stepgen.<chan>.velocity-cmd?

again thanks for the help

Please Log in to join the conversation.

More
6 years 4 months ago #172967 by andypugh

rogerxue wrote: my bad, I was looking at a older verison.


Yes, even if you are using LinuxCNC 2.7 you probably want to install the 2.8 version of "carousel".

So if I decide to use stepgen to drive stepper, then
carousel.N.fwd-dc should be net to stepgen.<chan>.velocity-cmd?


Close, except that fwd-dc is an input that tells the component how fast to move in fwd. the actual output to the stepgen is the pin carousel.0.motor-vel

You would need to setp the dc pins to suitable fixed speeds.
Code:
net motor-speed carousel.0.motor-vel stepgen.11.velocity-cmd setp carousel.0.fwd-dc 100 setp carousel.0.rev-dc 100 setp carousel.0.hold-dc 0

Please Log in to join the conversation.

Time to create page: 0.103 seconds
Powered by Kunena Forum