Servo error input and Alarm? #169
Replies: 5 comments 11 replies
-
I have alreay added Lines 133 to 151 in 9cfceba IMO There is no handling of these signals in the core yet,
If information is available from the drivers this could be output as messages, either from a plugin or the driver. Trinamic drivers can be queried for fault reason: overtemp shutdown, motor coils shorted or open etc. Pin assignment and handling has to be done in the core, is run time routing for some pins desirable and should be looked into? Routing by binding function pointer(s) to some pins? |
Beta Was this translation helpful? Give feedback.
-
Hi, I'm one of the guilty ones asking for a servo fault. As Phil mentioned if a servo drive does actually fault then it usually means something catastrophic has happened, a cutter has crashed into a clamp, a mechanical binding/crash, or you are tinkering late on a Tuesday night and run gcode without a spindle running to test something and forget to set the Z height to clear the table and it plummets into the bed. That last one may seem oddly specific but lets just say the sound of a large cutter scraping along a machine table then snapping isn't very calming. My background is with Linuxcnc and I hope to use GRBL hal to replace Linuxcnc in my current router and the next one I'm building. I also plan to retrofit a 2.5 Ton CNC milling machine that is sitting in my shed. The servo fault is generally a product of the drive concerned, a simple output of some kind, Linuxcnc can handle as many servo fault inputs as you see fit, I had tied all three to a single input to save pins. Most hobby/semi industrial servo drives are still step/dir driven, and act in the same way as steppers as far as the controller is concerned, except of course they give a following error if they can't maintain commanded position. Servo faults can be tied to an estop in wiring and I am happy to do so for my setup, the only issue is that what happens, or at least should happen is when a servo fault is detected, power is removed to basically everything, the spindle drive, all axis drives, toolchanger, anything that can cause injury to personnel and or machinery, while the estop should have the same effect, if there is a servo fault and its tied to the estop it will look the same as an estop condition as the servo drives have lost power and wont indicate a problem. If there was a servo fault persistent on the controller at least whoever is figuring out what happened has a place to start looking...been there more times than I would like to remember. A fault input per axis is nice but that will start using up precious IO, besides you could just latch a single axis fault with relays if your machine is large enough to make it worth it. Closed servo loop to the controller is another beast entirely, I wouldn't suggest getting too worried about that side of things, step/dir drives have been around forever and will continue for a long time yet. Sorry if this was a little long winded, happy to be of more assistance if I can, you guys are doing a great job and I hope to get some nice machinery up and running this year using grblHAL. Cheers. Russell. |
Beta Was this translation helpful? Give feedback.
-
I also need input from drive fault. As you mentioned EStop is a workaround and I am doing same right now for my cnc mill. I want to add that drive fault can also be clubbed with hard limit input, say C axis. This way the machine stops indicating alarm and you can see the alarm on your stepper/servo drive. |
Beta Was this translation helpful? Give feedback.
-
I have not tried yet. Will probably try in my next machine. I think you can define homing axis separately irrespective to total axis. So, you can have a four axis machine XYZA having only 3 axis homing (XYZ) as per my knowledge. Experts please correct me if I am wrong. |
Beta Was this translation helpful? Give feedback.
-
I am talking about #define HOMING_CYCLE_0 and #define HOMING_CYCLE_1 in config.h in pure grbl. Not sure how it works in grblHAL. |
Beta Was this translation helpful? Give feedback.
-
I get the question about supporting servo error output about once a week now. Generally the answer is to use door or estop inputs for that. But it seems like grblHAL should be able to distinguish a servo error from other errors. If for no other reason but to be able to say "Servo Error". The Door signal is generally available but the semantics of Door Alarm are not correct for Servo Error (GCode execution resume when de-asserted).
I do not have any experience with servos but I believe that Servo Alarm semantics should be fairly close to EStop - the machine is failing to correctly execute the GCode instructions so the job should end.
Anyway, I would like to see a Servo Error alarm code added along with the ability to see it in senders.
As to input pins, I could see using the Door input or unused limit switch inputs or even a dedicated input pin.
Beta Was this translation helpful? Give feedback.
All reactions