Can LinuxCNC work on a Rotary Transfer Machine?

More
31 Jul 2024 09:31 #306480 by gpasotti
Hello,
I am new here and overall in the CNC world.

I just wondered if LinuxCNC is suitable for Multi-Station like Rotary and Linear Transfer Machines, that have many Units and Axis, at least many more than what I have seen in the examples.

And if not what would take to make it so?

Thanks in advance,
G.Pasotti
The following user(s) said Thank You: Aciera

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

More
31 Jul 2024 09:35 - 31 Jul 2024 09:45 #306482 by Aciera
Do you mean something like this:

 

[edit]
If so, that is not really an application I would choose LinuxCNC for but as a proof of concept why not. Although I would probably much prefer to use a PLC.

 
Attachments:
Last edit: 31 Jul 2024 09:45 by Aciera.

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

More
31 Jul 2024 09:56 #306484 by gpasotti
By Rotary transfer I mean a milling machine with a rotary table with multiple stations, each station is like higly customized lathe, it holds a working piece and has multiple Units that perform a specific work on the piece.
Each Unit is composed by multiple axis depending on the complexity of the work, for certain a spindle and at least the z axis, but could even have x y z axis.

Something like this:
 

I also foud this to help define it: en.wikipedia.org/wiki/Rotary_transfer_machine
Attachments:

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

More
31 Jul 2024 10:08 - 31 Jul 2024 10:12 #306488 by Aciera
Ah, I see.
I'm afraid not. LinuxCNC is not multi-channel capable so it cannot synchronize axes moving along different tool paths at the same time.

[edit]
The only way this could work would be to use a different installation of LinuxCNC for each station and synchronize the program execution using digital IO
Last edit: 31 Jul 2024 10:12 by Aciera.

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

More
31 Jul 2024 10:30 #306490 by tommylight
Pretty sure something like that can be done with LinuxCNC, as almost all motions are unique and repeat all the time, so each station has a single motion to do.
Probably most can be done with separate stepgens or siggens and some hal fiddling to ensure the tools are in place before moving the main part holder.
Add a VCP for editing values tools have to move and....
-
This is from back when i started using LinuxCNC and thinking what can be controlled by it, so just stuff in my head as i never had a chance to try and build such a machine.

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

More
31 Jul 2024 12:44 #306516 by gpasotti
So, if I got that right, It is not intended but with some coding and abstraction it could be done...

Also I am not sure I can propose a solution with a PC controller for each Station or Unit, but I'll try to develop this idea too.

Meanwhile I found something that I think is related on github:

github.com/LinuxCNC/linuxcnc/issues/2716
github.com/LinuxCNC/linuxcnc/issues/2143

The #2143 particularly mentions this branch, but is 10 years old:
github.com/LinuxCNC/linuxcnc/tree/unified-build-candidate-3

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

More
31 Jul 2024 13:21 - 31 Jul 2024 13:22 #306518 by Aciera

So, if I got that right, It is not intended but with some coding and abstraction it could be done...


If a station only needs a single axis (eg a Z axis) then there might be a way to use the 'extra joints' feature, which are axes that are not linked to any of the nine possible axis letters (XYZABCUVW) but are managed independently by 'limit3' hal components. As soon as you need two axes to move in a coordinated manner you need to do this through the motion planner (ie GCODE). A single LinuxCNC installation can only run one coordinated motion at the same time. So for example on a lathe with two independent tool posts it is not possible to have one tool post follow a contour and the other tool post follow another contour at the same time. It would be possible to run one after the other has finished but that is usually not idea.

Multi-channel capability comes up sporadically in discussions, mostly in the context of lathes with front and back spindles. Looks like there have been tentative attempts here and there but whether that it will actually ever work is really anybody's guess.
Personally I certainly wouldn't count on it.
Last edit: 31 Jul 2024 13:22 by Aciera.
The following user(s) said Thank You: gpasotti

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

More
01 Aug 2024 09:25 #306596 by gpasotti
Is there a limit on those "extra joints" ?

But "extra joints" can be used only as one axis? or each has it's set of axis?

What is limiting the coordinated motion to run at the same time? maybe there is a way to create multiple instances of motion controller ?

I'll try to catch up with the developer manual

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

More
01 Aug 2024 10:18 #306597 by Aciera
An extra joint is just a single 'axis' .

LinuxCNC can handle 16 joints in total (any combination of XYZABCUVW plus 'extra joints')
So if you need XYZA for your coordinated station then you have 16-4=12 extra joints left.
If your coordinated station needs a tandem axis (eg for a gantry) then you have 16-4-1=11 extra joints left.
Extra joints can have a homing procedure, min / max limits, max velocity and max acceleration values.
Extra joints can be moved by setting the 'in' pin of the assigned 'limit3' hal component, this can also be done from GCode using a custom Mcode.

I'm afraid I don't know what would be needed to add multi-channel capability to LinuxCNC but I'm sure there aren't many people who know the code base well enough to even think of taking on such a challenge.
The following user(s) said Thank You: gpasotti

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

More
01 Aug 2024 10:40 - 01 Aug 2024 10:52 #306599 by Aciera
If I were to try and do something like this I would get a few RPis with Linuxcnc running on each of them and figure out a way to feed them with gcode from a master PC. The synchronization would be through hardware IO shared between the individual installations.
[edit]
This really seems the most sensible way of doing this as you really just have a number of machines running in parallel without the problem of one interfering in the space of the other. Each station runs it's own Gcode and simply waits for the signal to start. Once it is done it sets a hardware output so the master installation knows when to rotate the carousel. This would also eliminate the need for fancy CAM solutions to generate multi channel gcode and you would have total freedom in the design of the individual stations.
Last edit: 01 Aug 2024 10:52 by Aciera.
The following user(s) said Thank You: gpasotti

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

Time to create page: 0.173 seconds
Powered by Kunena Forum