Estop race condition

More
26 Feb 2018 15:34 #106535 by jamesgao
Hi everyone, I'm trying to understand how to resolve this Estop race condition. I've designed an estop chain that looks like this:

+5V -- Estop In -- Physical switch -- Mosfet -- GND
Estop Out

I have HAL configured such that iocontrol.0.user-enable-out drives the mosfet, and Estop In drives iocontrol.0.emc-enable-in.

My issue is that on startup, Estop In is HIGH. This prevents me from turning on the machine in order to drive Estop Out HIGH in order to drive Estop In LOW. Is this Estop chain not the recommended method to design for an Estop chain? What's the best way to resolve this issue?

Please Log in or Create an account to join the conversation.

More
26 Feb 2018 16:06 #106536 by Todd Zuercher
Replied by Todd Zuercher on topic Estop race condition
What kind of io are you using?

With a parallel port for my e-stop loops I use net ext-estop <= parport.0.pin-11-in-not => iocontrol.0.emc-enable-in.

Please Log in or Create an account to join the conversation.

More
26 Feb 2018 16:25 #106537 by jamesgao
Replied by jamesgao on topic Estop race condition
I'm actually using Machinekit, so I have Estop in and Out both being driven by bb_gpio pins. I actually technically have one extra mosfet in my chain -- emcmot.00.enable is also hooked into another mosfet. I'm wondering if that's the actual source of the race condition?

Please Log in or Create an account to join the conversation.

More
26 Feb 2018 17:05 #106539 by jamesgao
Replied by jamesgao on topic Estop race condition
I just figured it out! The problem was the extra mosfet. Specifically, my full Estop chain looks like this:

+5V -- LED -- E-in -- Switch -- Mosfet -- Mosfet -- GND
E-out Enable

E-out (iocontrol.0.user-enable-out) is HIGH irregardless of the state of E-in (iocontrol.0.emc-enable-in). However, Enable (emcmot.00.enable) is only HIGH if E-in is already LOW. Hence the race condition! Thankfully HAL makes this pretty easy to solve -- I just replicate the E-out signal on the Enable pin, and my circuit still works.

Please Log in or Create an account to join the conversation.

Time to create page: 0.175 seconds
Powered by Kunena Forum