I might as well post his here too. The docs and examples never show how you can create an estop chain that included multiple switches chained together in software. Its not always convenient to wire all functions that should trigger an estop to a single input. This example has a hardwired estop, an estop button on a pendant. Additionally, if the plasma torch breaks away, this triggers an estop too.
On estop, we turn on a red warning light and disable the stepper drives. (All stepper controller (dis)enable lines are tied to the one output.)
Code:
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 latch-ok-in iocontrol.0.user-enable-out
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
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 ---