Can an Axis be moved, while other commands are processed?
zivo last edited by
I have a question regarding the way motion commands are processed. I am working with a very heavily modified toolchanger from E3d. The printer is used for ongoing research for process adjustments of FDM printing. I have upgraded the system to the Duet 6hc mainboard and rrf 3.3. 4 toolheads are used, 3 of which are connected to toolboards v1.0. The other is a very complex setup with an expansion board 3hc.
Currently 8 axes of motion are defined. 3 (U,V,W) of these axes can rotate endlessly (theoretically, 1000 revolutions in reality).One of the rotation axes is used to compensate cable tensions and is critical for the functionality of the whole system. The required commands are inserted manually into the Gcode, or implemented as post-processing.
In the process, the system should behave like this:
Normal 3d printing takes place in X,Y,Z. The additional axis U performs a movement at the print head, which applies a small amount of tension to the cable harness. V should compensate this tension in the following printing process.
I have the following problems with this process:
The movement of V is comparatively slow to the other axes. A single control therefore causes long downtimes and strong artifacts in the print result. If I insert the compensation movement into the next movement command of X,Y, the total speed of this command is strongly reduced to synchronize the axes. This also leads to uneven paths.
I would like to know if it is possible to move an axis parallel or unsynchronous to simultaneous commands. In my imagination the axis V balances the tension with the highest possible speed while other commands are executed. This would speed up the process enormously, since the axis U can reduce tension on its own by moving backwards, as long as this is in accordance with the path planning.
Using meta commands, it would be necessary to check at regular intervals that the trailing axis V does not exceed the tolerable offset, but these are optimization problems.
It would be incredibly great if I could implement this functionality within rrf and not have to tinker with an external controller.
I'm sorry to write so much here without showing the machine, but unfortunately I can't do that at this stage of development. However, I will be happy to explain everything in due course. However, the Duet system has already helped me a lot to develop a really powerful prototype of a production machine.
TL;DR - need to schedule a movement that runs while other commands are being processed.
@zivo the current MB6HC firmware supports two movement queues that can execute asynchronously, however the second queue is currently only used by height following mode (see M594 and M951). I have already started work on allowing more general use of the two queues through GCode commands. We expect to release additional functionality in RRF 3.5.
zivo last edited by
@dc42 May i ASK you, wegen the Beta Release of 3.5. ist sheduled?