Spindle immediately turns off on error
-
@adegtiar said in Spindle immediately turns off on error:
G0/G1 target position outside machine limits
thats gonna be a problem regardless, why not focus on avoiding it all together?
-
The main reason - safe machining, and catch all inconsistent operations. I have power outage sensor, connected to spindle and the trigger for it:
if job.file.fileName=null echo "KRESS tool has been UNPOWERED." T-1 else echo "Power lost. Emergency stop." M112
When I turn off spindle manually – it is just reports that tool is unpowered. But in case of movement error, the trigger raises after job was canceled and can't catch this for safely up Z axis or for immediately stop all machine (like M112).
Look at the screenshoot: first, the execution of the hob canceled, then the power failure trigger was triggered, and only then an error message appeared.
IMO, in the event of a positioning error, stop everything immediately, but do not execute the remaining commands in the buffer.
-
Stopping all commands in the buffer could lead to a positioning error. Alternatively, I can have the spindle kept on until the buffer is empty. Would that be acceptable?
-
@adegtiar said in Spindle immediately turns off on error:
The main reason - safe machining, and catch all inconsistent operations
Yes, so try to catch it in CAM simulation instead of on the Duet? I.e. avoiding it all together.
-
Or run it on the Duet in simulation mode?
-
@dc42 said in Spindle immediately turns off on error:
Stopping all commands in the buffer could lead to a positioning error. Alternatively, I can have the spindle kept on until the buffer is empty. Would that be acceptable?
Yes, this will solve the problem of a broken cutter due to movement with the spindle off.
But, Is it possible to catch the error event to run a script to handle the situation? Is it possible to determine that the last job failed? I would like to determine (inside trigger handler) whether it was done manually (canceled) or as a result of an error ? The trigger fires when machine state is idle.
-
@adegtiar said in Spindle immediately turns off on error:
But, Is it possible to catch the error event to run a script to handle the situation? Is it possible to determine that the last job failed? I would like to determine (inside trigger handler) whether it was done manually (canceled) or as a result of an error ? The trigger fires when machine state is idle.
I guess I could add a "last job finish status" value to the object model.
-
@bearer Cam simulations is OK. Out of bounds of coordinates occurred due to the incorrect WCS (a few mm was insufficient).
-
@dc42 Good idea! But in order to correctly interpret when it happened (just) or a long time ago, it would be good to either reset this status on request (for example, after processing inside a trigger) or so that the last status has the time of the event, how long ago it happened at the time of its reading. Just for example:
if {job.lastPrintStatus='some failure code'} && {job.lastPrintStatusAge < 10} ; react if it is a 'fresh' event, not older 10 seconds (or a couple seconds would be enough for process) echo "Last recent job failed"; ; proposition for event age value ; if this code executes just after error event echo {job.lastPrintStatusAge} ; will be 0 sec G4 S1.0 echo {job.lastPrintStatusAge} ; will be 1 sec G4 S10.0 echo {job.lastPrintStatusAge} ; will be 11 sec
-
Maybe a parameter to the M453 command to set if it should be affected by an error or not.
-
@dc42 Hi, David! Any progress ?
-
Not yet, but it's on the list for possible inclusion in the 3.2 release.