This is an old method of wiring an estop. Emergency stops should never be dependent on your control software working correctly. However, this wiring diagram may still be useful as a halt button.
See the On Off Switches and Emergency Stop page for current recommendations.
First lets wire our board to our relays, for the 7i96 and the 7i76e directionality matters. For many of the breakout boards there is possibly an onboard relay, or a separate output that you'll have to use
For setting up LinuxCNC with a 7i96 and the wiring done above, you need to add this to your .hal file
# external output signals
net power-on => hm2_7i96.0.ssr.00.out-00
net power-on <= motion.motion-enabled
For setting up with a breakout board your code may look like this in your .hal file
# external output signals
net power-on => parport.0.pin-10-out
net power-on <= motion.motion-enabled
Now when you press power on your machine should come to life! But your estops still aren't hooked up completely.
If you look there is now a new line also going to IN10 on the 7i96. If your parallel port BoB has an available input you may want to do the same.
You would want to do this so that if your EStop is pressed, LinuxCNC will not execute the program.
In your main .hal file add the following lines (this is for a 7i96)
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-estp estop-latch.0.fault-in <= hm2_7i96.0.gpio.010.in_not
And comment out or delete these lines
net estop-out <= iocontrol.0.user-enable-out
net estop-out => iocontrol.0.emc-enable-in