Controlling a dual head, dual table cnc router

Moderators: TomKerekes, dynomotion

Post Reply
curtiskelowna
Posts: 2
Joined: Fri Oct 04, 2019 7:31 pm

Controlling a dual head, dual table cnc router

Post by curtiskelowna » Wed Oct 09, 2019 9:06 pm

Hi all,

I would like to use kflop + kmotionCNC to control a 6 axis fixed gantry machine with 2 independent carriages and 2 moving tables. I would like to be able to run the machine in 3 different operating modes:

1. slave both tables and heads together allowing one gcode program to be duplicated on both tables
2. slave the tables together to allow for double the work area.
3. control both sides independently, each side being its own 3 axis machine. This would allow 2 different gcode programs to run at the same time.

You can see examples of this if you look up "onsrud dual process cnc"

Operating modes 1 and 2 are easy enough to setup but #3 is much more complex.

Now I believe that the gcode interpreter can coordinate 6 axis of motion. is it possible for the gcode interpreter to run 2, (3 axis) gcode programs at once? For example, the right side may be programmed with XYZ and the left using ABC.

Another approach would be to have 2 instances of kmotionCNC running, one configured for controlling the right and the other the left. I dont think this would work though since both instances would have to communicate with one board. is this possible?

The only solution that I think would work would be to use 2 kflop boards and 2 instances of kmotionCNC. Is this right? or is there a way to accomplish this using only one kflop?

Any help would be appreciated.

User avatar
TomKerekes
Posts: 591
Joined: Mon Dec 04, 2017 1:49 am

Re: Controlling a dual head, dual table cnc router

Post by TomKerekes » Wed Oct 09, 2019 9:43 pm

Hi curtiskelowna,

Like you, the only way I can think of to perform mode #3 would be to have 2 KFLOP's and 2 instances of KMotionCNC.

To do modes #1 and #2 the 6 axes would need to be connected to one of the KFLOPs. So this would require switching the axes from one KFLOP to the other when switching between those modes. Depending on the type of drives you have you might be able to wire 'OR" the outputs together and enable the outputs on the KFLOP you want to use, and disable the outputs on the other.
Regards,

Tom Kerekes
Dynomotion, Inc.

curtiskelowna
Posts: 2
Joined: Fri Oct 04, 2019 7:31 pm

Re: Controlling a dual head, dual table cnc router

Post by curtiskelowna » Wed Oct 09, 2019 10:43 pm

Thank you very much Tom,

I am using clearpath servos for the drives. Step/direction wiring would connect from kflop 1 to driver inputs and then branch back to kflop2. As long as kflop2 can tolerate a step/direction signal from kflop1 when kflop2 output is disabled. if not, I suppose I could break the circuit using relays or something.

What is the best way to communicate from kflop1 to kflop2 within a C program? I would like a c program that runs on kflop 1 to give instruction to kflop 2 to run a command/c program etc. I think this could be accomplished using rs232 between the boards, but perhaps there is a simpler way? For example, how would I read a bit on kflop2 from kflop1?

Thanks again,

-Curtis

User avatar
TomKerekes
Posts: 591
Joined: Mon Dec 04, 2017 1:49 am

Re: Controlling a dual head, dual table cnc router

Post by TomKerekes » Thu Oct 10, 2019 1:26 am

Hi Curtis,
I am using clearpath servos for the drives. Step/direction wiring would connect from kflop 1 to driver inputs and then branch back to kflop2. As long as kflop2 can tolerate a step/direction signal from kflop1 when kflop2 output is disabled. if not, I suppose I could break the circuit using relays or something.
I believe Open Collector output drive will work with Clearpath servos so it shouldn't be an issue connecting open collector outputs in parallel. Switch outputs to inputs for the disabled KFLOP.

What is the best way to communicate from kflop1 to kflop2 within a C program? I would like a c program that runs on kflop 1 to give instruction to kflop 2 to run a command/c program etc. I think this could be accomplished using rs232 between the boards, but perhaps there is a simpler way? For example, how would I read a bit on kflop2 from kflop1?
I like to use a 2 wire handshake between devices A and B. It is simple and pretty fool proof. Such as:

A sets some data on one or more bits
A sets a handshake bit0 high
.............................................B detects handshake bit0 going high
.............................................B reads data bits
.............................................B processes command or data
.............................................B acks by setting handshake bit1 high
A detects handshake bit1 going high
A resets handshake bit0
.............................................B detects handshake bit0 going low
.............................................B resets handshake bit1
B detects handshake bit1 going low
repeat
Regards,

Tom Kerekes
Dynomotion, Inc.

Post Reply