Hello Guest it is October 20, 2019, 05:31:10 AM

Author Topic: How to handle servo faults  (Read 5054 times)

0 Members and 1 Guest are viewing this topic.

Offline mc

*
  •  381 381
    • View Profile
How to handle servo faults
« on: September 22, 2013, 04:28:52 PM »
Originally I had planned to link the servo driver fault output into the e-stop circuit, so that if a driver faults out for any reason, the main power to all the drivers/spindle gets cut.
However, the issue with that is the drivers logic which is on a permanent 24V supply, would flag up a fault due to low voltage, meaning that to get them out of fault and power up the e-stop circuit, the drivers fault outputs would have to be bypassed, and a driver reset signal sent to all the drivers. Which although doable, would involve a few relays and a couple outputs.

To simplify things, I was thinking instead, just rely on the driver ready signal fed into the controller (I'm using a KFlop, so the controller itself can handle this and then report to Mach there's an issue) and halting motion if a drive enable signal fails.
I know it's not ideal, but then there are still limit switches to trigger an e-stop things if anything major goes wrong.

Does this sound feasible?

Also, I'd be interested to hear how others have servos wired up to deal with faults.

Offline Hood

*
  •  25,856 25,856
  • Carnoustie, Scotland
    • View Profile
Re: How to handle servo faults
« Reply #1 on: September 23, 2013, 02:11:17 PM »
I use the emergency style relay, as per pic below, on the Chiron, it removes the enables from the other drives. In addition the CSMIO gets the fault signal from the drives so it will halt motion and also inform Mach and then of course as it has encoder feedback even if things get missed the CSMIO should see the position is wrong and fault out and halt all drives and call an E-Stop.

Did similar kind of things on other machines but just had to use different methods, all of which were different depending on controller and drives used.

Hood

Offline mc

*
  •  381 381
    • View Profile
Re: How to handle servo faults
« Reply #2 on: September 23, 2013, 04:16:42 PM »
Thanks for that.
I never thought about just killing the enable signals to the drives.
If I use a double pole relay, one pole can cut enables and the other cut the spindle VFD, then Mach/Kflop can also trigger an e-stop, and I can wire the fault output to the relay and the kflop.

What's so special about that emergency relay?

Offline Hood

*
  •  25,856 25,856
  • Carnoustie, Scotland
    • View Profile
Re: How to handle servo faults
« Reply #3 on: September 23, 2013, 04:38:22 PM »
The emergency relay I am using is a timer relay (in addition to the other relays) I use this because I have a class 2 E-Stop set up and what happens is before the Enabels are taken away from my drives they get a fault signal which tells them to stop under power. This means they stop almost instantly and there is no chance of them coasting. Once stopped the enables are taken away, all under 0.5 seconds if I recall.

Hood

Offline mc

*
  •  381 381
    • View Profile
Re: How to handle servo faults
« Reply #4 on: September 23, 2013, 04:51:38 PM »
I think I'll survive without adding any time delays for now.

Offline Hood

*
  •  25,856 25,856
  • Carnoustie, Scotland
    • View Profile
Re: How to handle servo faults
« Reply #5 on: September 23, 2013, 05:00:22 PM »
Unless your drives support that feature then you would have to anyway ;D

Hood

Offline mc

*
  •  381 381
    • View Profile
Re: How to handle servo faults
« Reply #6 on: September 23, 2013, 06:22:53 PM »
Just had to check the manual, but there is an option to set an input to perform a quick stop. But I'm not even going to think about that until I have the basics working!

These are the latest Kinco CD422 drives, and have lots of features, however I was reliably informed for CNC use they don't really offer anything beneficial over the CD420, it's just there was no CD420 in stock.
The biggest downside to the CD422 are all the optional inputs/outputs are via a connector that needs soldered up, which is why I'm trying to figure out exactly what I need to connect to avoid having to change wiring later. As it stands I've got one 6 core cable for the encoder outputs, another 6-core for what connects to the KFlop/Kanalog which did stand at 1 output (ready signal - outs require 2 terminals), and 3 inputs (Enable, Fault Reset and one spare), the analogue signal will be on it's own two core, and the fault output on another two core. However given the fault/enabling handling, I may swap that about a bit.

Offline Hood

*
  •  25,856 25,856
  • Carnoustie, Scotland
    • View Profile
Re: How to handle servo faults
« Reply #7 on: September 24, 2013, 03:05:19 AM »
Most of my servo setups I use 25 core for the I/O, dont always use it all but I always wire and take it out to a breakout.
Hood

Offline simpson36

*
  •  1,374 1,374
    • View Profile
Re: How to handle servo faults
« Reply #8 on: September 24, 2013, 03:19:36 AM »
The emergency relay I am using is a timer relay (in addition to the other relays) I use this because I have a class 2 E-Stop set up and what happens is before the Enabels are taken away from my drives they get a fault signal which tells them to stop under power. This means they stop almost instantly and there is no chance of them coasting. Once stopped the enables are taken away, all under 0.5 seconds if I recall.

Hood

I agree with this method.


NOTES FOR NEWBEES:

Servo drives stop the motor by powering then in the opposite direction. Absent that power, the drive has no way to quickly stop the motor and the result is 'coasting'. If you are very lucky, there will be enough energy in the caps to stop the motor. If not, then you will have made a bad situation much worse by removing the power from the drives, in my opinion.

On first encounter with higher level drives it seems logical to assume that all of the features are there because you need to use them, but that is not the case. in any given application, most of the features will not be used. Only the handfull needed for that particular application. For example, it may seem logical that the drives own built in E-stop would be useful with a Mach setup, but it would be redundant at best and most likely counter productive.

If the drive is set up in a mode where you give it coordinate or vector and it proceedes on its own to the commanded location, then you need some way to 'break in' to that process if something goes wrong. Hence, the drives built in EMG (emergency stop) or equiv. This has no useful purpose in a MACH setup if you already have the drive error lines connected to MACH. On E-stop, MACH simply stops sending pulses to the drives and they will consequently 'stop instantly under power' which is what you want to happenn.

The bottom line is that you should choose ONE method. Internal to MACH as descreibed above, or external to Mach as described by Hood, or any number of other ways. The important thing is to pick ONE way and not have redundancy. Otherwise you will be pulling your hair out trying to track down false E-stops.
« Last Edit: September 24, 2013, 03:33:02 AM by simpson36 »

Offline mc

*
  •  381 381
    • View Profile
Re: How to handle servo faults
« Reply #9 on: September 24, 2013, 02:32:18 PM »
Some wise words there Simpson.

Hood, any chance of some details for that relay?

Killing the enables and issuing a drive stop signal seems the best option, however I'm now thinking that killing all power is not essential.
Should something fault, using a couple relays, all the drives should stop by killing the enables and issuing a stop signal. Power would still remain, but motion should stop.
The existing e-stop circuit is active all the time with no controller input, so I'm unsure whether to link the e-stop circuit into the KFlop enable circuit.
If I do tie it in, then it ensures things stop everything if the KFlop detects something wrong, and could use it to provide a time delay, however the KFlop can just as easily kill the enables with a similar result, unless a drive fails to stop when the enable is removed.
If I don't tie it in, then it would take a servo drive to fail to stop despite being commanded to for anything serious to happen, which given I'm using AC servos isn't likely to happen unless something happens to the KFlop, in which case there's a risk the KFlop is not likely to kill the e-stop circuit or kill the enables, so you're back to relying on something hitting a limit switch.

I'll have another think, as I need to do a few sketches of possible solutions to check on how the inputs/outputs would work under various scenarios.