Rotary Axis Locking
07 Jun 2021 20:06 #211440
by jochen91
Rotary Axis Locking was created by jochen91
Hi Folks,
as we know it's possible to lock a rotary axis with the "Locking Indexer" function which works fine.
But a pure indexer function is not always wanted. A programm for a rotary axis may include G0 and G1 which brings up the problem, that the Locking Indexer function only works with G0.
So my question is: How can a locking/unlock function with G1 feed moves be implemented?
I know that LinuxCNC does lock ahead in the G code. So it should be possible to determine when to lock/unlock (wait till unlock/lock) and than continue the processing of G code. Or to determine if its worth locking if i.e one line of g1 ends but in the second next line a G1 comes again.
Greetings,
Jochen
as we know it's possible to lock a rotary axis with the "Locking Indexer" function which works fine.
But a pure indexer function is not always wanted. A programm for a rotary axis may include G0 and G1 which brings up the problem, that the Locking Indexer function only works with G0.
So my question is: How can a locking/unlock function with G1 feed moves be implemented?
I know that LinuxCNC does lock ahead in the G code. So it should be possible to determine when to lock/unlock (wait till unlock/lock) and than continue the processing of G code. Or to determine if its worth locking if i.e one line of g1 ends but in the second next line a G1 comes again.
Greetings,
Jochen
Please Log in or Create an account to join the conversation.
08 Jun 2021 21:34 #211549
by andypugh
The way that I would like to do it is to remove the restriction to G0 moves. And I would also quite like to remove the restriction to only working on rotary axes. The lock/unlock pins would be a really good way to handle the old-style CNCs with one motor that is clutched on to each axis on-demand.
As a workaround I came up with a HAL component that sets feed-override to 0.0001% (it needs to be tiny but non-zero, so that it can see if an axis is moving). If it sees no rotary move then it locks the axis, otherwise it unlocks, waits for an "is-unlocked" and then allows normal motion.
I thought that I had written such a HAL component, but I can't find it now.
A possibly more reliable approach would be to run the G-code through a filter file (this can be configured to happen automatically) that inserts command unlock - wait for is-unlocked ..... command lock - wait for is-locked G-code as required in the input file.
Replied by andypugh on topic Rotary Axis Locking
So my question is: How can a locking/unlock function with G1 feed moves be implemented?
The way that I would like to do it is to remove the restriction to G0 moves. And I would also quite like to remove the restriction to only working on rotary axes. The lock/unlock pins would be a really good way to handle the old-style CNCs with one motor that is clutched on to each axis on-demand.
As a workaround I came up with a HAL component that sets feed-override to 0.0001% (it needs to be tiny but non-zero, so that it can see if an axis is moving). If it sees no rotary move then it locks the axis, otherwise it unlocks, waits for an "is-unlocked" and then allows normal motion.
I thought that I had written such a HAL component, but I can't find it now.
A possibly more reliable approach would be to run the G-code through a filter file (this can be configured to happen automatically) that inserts command unlock - wait for is-unlocked ..... command lock - wait for is-locked G-code as required in the input file.
The following user(s) said Thank You: jochen91
Please Log in or Create an account to join the conversation.
09 Jun 2021 19:01 #211633
by jochen91
Replied by jochen91 on topic Rotary Axis Locking
Hi Andy,
yes thats a great idea to make the locking more universal.
For the old style mills and for the trend building 4 or even 5th axis machines with Linux. Linux is such an extrem capable piece of software it's nearly a shame that such a basic feature is not nativly supported yet.
By any chance, could you post your HAL Component here if you find it? I would be realy happy, cause i dont wanna miss this feature on my rotary axis.
Kind regards,
Jochen
yes thats a great idea to make the locking more universal.
For the old style mills and for the trend building 4 or even 5th axis machines with Linux. Linux is such an extrem capable piece of software it's nearly a shame that such a basic feature is not nativly supported yet.
By any chance, could you post your HAL Component here if you find it? I would be realy happy, cause i dont wanna miss this feature on my rotary axis.
Kind regards,
Jochen
Please Log in or Create an account to join the conversation.
Time to create page: 0.061 seconds