The issue is that my ESTOP-out is no-longer tracking either the GUI ESTOP or the hardware ESTOP-in. It just stays asserted all the time with no change of state.
I don't have a 7i96s, but out of curiosity I checked it on my 7i92...
You can make two types of mistakes:
1. Electric.
2. Logical.
It looks like you did both.
First, about the electric one. It is true that there are inputs that detect all possible states (high, low and high impedance), but I have only seen such inputs in logic states analyzers. Typically, the input detects only one state or no this state. For example, shorting the input to ground causes the output to change to the opposite state, but it does not matter whether we short the input to Vcc or leave it unconnected anywhere. In this case, if the output of the previous gate is high, closing or opening the serial switch does not change anything because the high state and the high impedance state are interpreted the same.
Now about the logical one. By pressing the serial switch we do not change the input state, we only cut off the signal. And this is not the same as what I explained above.
Your configuration either doesn't work at all, or works in such a way that it cuts off the iocontrol.0.user-enable-out signal. This means that the serial switch does not turn off the machine, it only prevents it from being turned on/off via an icon in the GUI, which is definitely not what you wanted.
Can this be fixed?
Probably yes, but it makes no sense because you have a ready-made and 100% reliable solution - the estop-latch component. A switch between the input and ground is connected there, so that each time it is switched, the input status changes.
This is from my config:
Code:
net estop-ext hm2_7i92.0.gpio.027.in => estop-latch.0.fault-in
net estop-reset iocontrol.0.user-request-enable => estop-latch.0.reset
net estop-user-enable iocontrol.0.user-enable-out => estop-latch.0.ok-in
net estop-ok estop-latch.0.ok-out => iocontrol.0.emc-enable-in
And now a few words about the emergency stop switch. As the name suggests, it is used in an emergency situation when we want to stop the machine immediately to prevent it from causing damage.
Sometimes the emergency switch must also disconnect or enable something (for example, turn off the motors and apply the brakes), so simply connecting it to the control program may be insufficient or unreliable (the program may hang or respond with a delay).
You have to remember this, and the bigger the machine, the more seriously that should be treated...