Educate me about estop chains and latches
15 May 2017 20:50 #93240
by rodw
Replied by rodw on topic Educate me about estop chains and latches
I have a friend who built a CNC lathe and used a relay to drop AC power on estop. Subsequently, someone knowledgeable told him that it did not comply with the relevant engineering and workplace safety standards which required AC power to be dropped without any intermediate relays. Between us we established the wiring I am using. We do need to keep the Mesa 7i76e alive so it can tell LCNC to stop gracefully at the same time. To me this makes sense as it protects against a hung computer that can't respond.
I think you guys have helped me establish something I've been aware of for quite a while and that is the current external e-stop switch I am using is not the right type as it is not wired in as a normally closed input on the low voltage signalling side. This means I can't put additional switches in series with it. If I replace it, I can add the pendant relay in series to generate an e-stop but it won't drop power to the stepper motors.
However, I think all of you with the exception of Bevins are describing a simple e-stop chain. If you look at the estop_latch docs
linuxcnc.org/docs/html/man/man9/estop_latch.9.html
It says
I don't want to use Classic Ladder but I would like to see a hal example of a "more complex system" as I am sure that LCNC is more flexible and can tie different estop conditions together in software.
I think you guys have helped me establish something I've been aware of for quite a while and that is the current external e-stop switch I am using is not the right type as it is not wired in as a normally closed input on the low voltage signalling side. This means I can't put additional switches in series with it. If I replace it, I can add the pendant relay in series to generate an e-stop but it won't drop power to the stepper motors.
However, I think all of you with the exception of Bevins are describing a simple e-stop chain. If you look at the estop_latch docs
linuxcnc.org/docs/html/man/man9/estop_latch.9.html
It says
In more complex systems, it may be more appropriate to use classicladder to manage the software portion of the estop chain.
I don't want to use Classic Ladder but I would like to see a hal example of a "more complex system" as I am sure that LCNC is more flexible and can tie different estop conditions together in software.
Please Log in or Create an account to join the conversation.
18 May 2017 13:41 #93347
by bevins
What if the e-stop button malfunctions and doesn't open the circuit?
I don't think your argument holds water.
Replied by bevins on topic Educate me about estop chains and latches
What if a mosfet or IGBT shorts and the machine has no load? It will break something and burn the motor to a crisp and risk killing someone in the proces.
That is why servo systems have e-stop shuting down complete power to moving parts. E-stop is an emergency device and should be treated as such.
What if the e-stop button malfunctions and doesn't open the circuit?
I don't think your argument holds water.
Please Log in or Create an account to join the conversation.
18 May 2017 13:57 - 18 May 2017 13:57 #93348
by rodw
Replied by rodw on topic Educate me about estop chains and latches
Getting back to the original topic. I sat down with the docs and a blank sheet of paper. From what I sketched out, I think it will be easy enough to chain multiple instances of estop_latch together from ok-out to ok-in and introduce multiple e-stop events on the fault-in pins. I just have not had the time since to actually try this out in hal. A fault-in on any link in the chain will cause an e-stop on the last link which could also trigger a drive disable signal to my steppers. I'd need to introduce a relay so 24v could switch a 5 volt signal for the stepper drives.
Last edit: 18 May 2017 13:57 by rodw.
Please Log in or Create an account to join the conversation.
18 May 2017 14:32 - 18 May 2017 14:32 #93351
by bevins
Here is how I do mine. Most external hardware for the estop circuit. I do tell Lcnc the e-stop is pressed so it can do its thing.
But you can go in and out with in-outs though.
There are nice e-stop safety relays designed specifically for this re: Siemens, you can get some off ebay for cheap. They have
multiple ins and outs.
Replied by bevins on topic Educate me about estop chains and latches
Getting back to the original topic. I sat down with the docs and a blank sheet of paper. From what I sketched out, I think it will be easy enough to chain multiple instances of estop_latch together from ok-out to ok-in and introduce multiple e-stop events on the fault-in pins. I just have not had the time since to actually try this out in hal. A fault-in on any link in the chain will cause an e-stop on the last link which could also trigger a drive disable signal to my steppers. I'd need to introduce a relay so 24v could switch a 5 volt signal for the stepper drives.
Here is how I do mine. Most external hardware for the estop circuit. I do tell Lcnc the e-stop is pressed so it can do its thing.
But you can go in and out with in-outs though.
There are nice e-stop safety relays designed specifically for this re: Siemens, you can get some off ebay for cheap. They have
multiple ins and outs.
Warning: Spoiler!
#***********************
# === estop signals ===
#***********************
loadrt estop_latch
addf estop-latch.0 servo-thread
net estop-loopout iocontrol.0.emc-enable-in <= estop-latch.0.ok-out
net estop-loopin iocontrol.0.user-enable-out => estop-latch.0.ok-in
net estop-reset iocontrol.0.user-request-enable => estop-latch.0.reset
net remote-estop estop-latch.0.fault-in <= hm2_5i25.0.7i77.0.0.input-07-not
# === estop signals ===
#***********************
loadrt estop_latch
addf estop-latch.0 servo-thread
net estop-loopout iocontrol.0.emc-enable-in <= estop-latch.0.ok-out
net estop-loopin iocontrol.0.user-enable-out => estop-latch.0.ok-in
net estop-reset iocontrol.0.user-request-enable => estop-latch.0.reset
net remote-estop estop-latch.0.fault-in <= hm2_5i25.0.7i77.0.0.input-07-not
Last edit: 18 May 2017 14:32 by bevins.
Please Log in or Create an account to join the conversation.
- tommylight
- Away
- Moderator
Less
More
- Posts: 19198
- Thank you received: 6434
18 May 2017 17:36 #93359
by tommylight
So my argument is still swimming happily !
Replied by tommylight on topic Educate me about estop chains and latches
That can not happen, not closing the circuit can happen. Open one and check it.
What if the e-stop button malfunctions and doesn't open the circuit?
So my argument is still swimming happily !
Please Log in or Create an account to join the conversation.
18 May 2017 18:50 #93361
by bevins
Its leaking!
Replied by bevins on topic Educate me about estop chains and latches
That can not happen, not closing the circuit can happen. Open one and check it.
What if the e-stop button malfunctions and doesn't open the circuit?
So my argument is still swimming happily !
Its leaking!
Please Log in or Create an account to join the conversation.
- tommylight
- Away
- Moderator
Less
More
- Posts: 19198
- Thank you received: 6434
18 May 2017 21:05 #93367
by tommylight
Replied by tommylight on topic Educate me about estop chains and latches
Anyone got chewing gum? Need to plug a leak !
Please Log in or Create an account to join the conversation.
20 May 2017 02:32 - 20 May 2017 02:38 #93394
by rodw
Replied by rodw on topic Educate me about estop chains and latches
Well, maybe not chewing gum but here is how to chain multiple estop_latches together. In this example, there are three e-stop inputs which flow from latch0 =>latch1 >=latch2 => stop the machine
First, we need to do the usual stuff
And then hook the first one up to Linuxcnc iocontrol stuff.
So now we can simply chain each ok_out to the next ok_in to create a chain
and you need to make sure there is a reset signal for each latch. This bit was not obvious from my reading of the documents.
and we need to get the last estop in the chain tell LinuxCNC we have an estop
and then connect your various inputs to estop_latch.n.fault_in
And finally save the estop state to trigger lights and relays.
In my case I have a red warning light and a stepper disable relay that will switch 5 volts to the stepper drive enable inputs.
So putting it all together this is what I got
I think I'll extend my warning light system to flash the red light at various frequencies so you know visually which signal caused the estop.
Well look at that, I educated myself!
First, we need to do the usual stuff
loadrt estop_latch count=3
addf estop-latch.0 servo-thread
addf estop-latch.1 servo-thread
addf estop-latch.2 servo-thread
And then hook the first one up to Linuxcnc iocontrol stuff.
net latch-ok-in iocontrol.0.user-enable-out
So now we can simply chain each ok_out to the next ok_in to create a chain
net latch-ok-in => estop-latch.0.ok-in
net latch0-out <= estop-latch.0.ok-out
net latch0-out => estop-latch.1.ok-in
net latch1-out <= estop-latch.1.ok-out
net latch1-out => estop-latch.2.ok-in
and you need to make sure there is a reset signal for each latch. This bit was not obvious from my reading of the documents.
net latch-reset iocontrol.0.user-request-enable
net latch-reset => estop-latch.0.reset
net latch-reset => estop-latch.1.reset
net latch-reset => estop-latch.2.reset
and we need to get the last estop in the chain tell LinuxCNC we have an estop
net latch-out iocontrol.0.emc-enable-in <= estop-latch.2.ok-out
and then connect your various inputs to estop_latch.n.fault_in
# --- EXTERNAL ESTOP SWITCH ---
net external-estop <= hm2_7i76e.0.7i76.0.0.input-00
net external-estop => estop-latch.0.fault-in
# --- PENDANT ESTOP SWITCH ---
net pendant-estop <= hm2_7i76e.0.7i76.0.0.input-26-not
net pendant-estop => estop-latch.1.fault-in
# --- TORCH BREAKAWAY E-STOP ---
net torch-breakaway <= hm2_7i76e.0.7i76.0.0.input-06
net torch-breakaway => estop-latch.2.fault-in
And finally save the estop state to trigger lights and relays.
net estop-out estop-latch.2.fault-out
In my case I have a red warning light and a stepper disable relay that will switch 5 volts to the stepper drive enable inputs.
# --- E-STOP STEPPER DRIVE DISABLE ---
net estop-out hm2_7i76e.0.7i76.0.0.output-05
# --- E-STOP RED WARNING LIGHT ---
net estop-out hm2_7i76e.0.7i76.0.0.output-00
So putting it all together this is what I got
loadrt estop_latch count=3
addf estop-latch.0 servo-thread
addf estop-latch.1 servo-thread
addf estop-latch.2 servo-thread
# --- ESTOP CHAIN STARTS ---
net latch-reset iocontrol.0.user-request-enable
net latch0-ok-in iocontrol.0.user-enable-out
net latch0-ok-in => estop-latch.0.ok-in
net latch0-out <= estop-latch.0.ok-out
net latch0-out => estop-latch.1.ok-in
net latch1-out <= estop-latch.1.ok-out
net latch1-out => estop-latch.2.ok-in
net latch-reset => estop-latch.0.reset
net latch-reset => estop-latch.1.reset
net latch-reset => estop-latch.2.reset
net latch-out iocontrol.0.emc-enable-in <= estop-latch.2.ok-out
net estop-out estop-latch.2.fault-out
# --- EXTERNAL ESTOP SWITCH ---
net external-estop <= hm2_7i76e.0.7i76.0.0.input-00
net external-estop => estop-latch.0.fault-in
# --- PENDANT ESTOP SWITCH ---
net pendant-estop <= hm2_7i76e.0.7i76.0.0.input-26-not
net pendant-estop => estop-latch.1.fault-in
# --- TORCH BREAKAWAY E-STOP ---
net torch-breakaway <= hm2_7i76e.0.7i76.0.0.input-06
net torch-breakaway => estop-latch.2.fault-in
# --- E-STOP STEPPER DRIVE DISABLE ---
net estop-out hm2_7i76e.0.7i76.0.0.output-05
# --- E-STOP RED WARNING LIGHT ---
net estop-out hm2_7i76e.0.7i76.0.0.output-00
# --- ESTOP CHAIN ENDS ---
I think I'll extend my warning light system to flash the red light at various frequencies so you know visually which signal caused the estop.
Well look at that, I educated myself!
Last edit: 20 May 2017 02:38 by rodw.
The following user(s) said Thank You: tommylight, thefabricator03
Please Log in or Create an account to join the conversation.
20 May 2017 12:46 #93399
by rotwang
Replied by rotwang on topic Educate me about estop chains and latches
Perhaps we need more differentiation here between classical E-Stop - as in "the flames from the VFD are shining nicely through the smoke from the motor" = kill the mains to everything - and a rapid stop, as in - "the cutter just broke" = stop what you're doing.
In the classical E-stop you're not bothered about motors free-wheeling to a stop, because everything just went to hell in a hand basket anyway.
Maybe we should rename the other case as R-stop (rapid stop) for situations that may be recoverable if we stop right now, but keep track of where we are.
Just a random thought,
Roger
In the classical E-stop you're not bothered about motors free-wheeling to a stop, because everything just went to hell in a hand basket anyway.
Maybe we should rename the other case as R-stop (rapid stop) for situations that may be recoverable if we stop right now, but keep track of where we are.
Just a random thought,
Roger
Please Log in or Create an account to join the conversation.
- Todd Zuercher
- Offline
- Platinum Member
Less
More
- Posts: 5007
- Thank you received: 1441
20 May 2017 13:50 #93400
by Todd Zuercher
Replied by Todd Zuercher on topic Educate me about estop chains and latches
All of the large commercial CNC routers I use at work (Big machines with Fanuc and one other industiral control) built by big companys like Komo, Northwood, Heian, Anderson, SCM. The E-stop systems do not remove power from any control systems. They only disable all servo drives (not power down), stop the spindle VFDs (using DC injection braking.) and set an E-stop alarm in the control. All using a simple NC logic circuit of series wired switches and relays that trigger all of the actions independently of any control software or PLC. However the control and or PLC do monitor the state of the E-stop.
A central power disconnect is a completely different affair unrelated to E-stop..
A central power disconnect is a completely different affair unrelated to E-stop..
The following user(s) said Thank You: smc.collins
Please Log in or Create an account to join the conversation.
Time to create page: 0.335 seconds