Category: General LinuxCNC Questions
I'm not sure I understand what your trying to do with the fipflop component. I don't think it is necessary. (A hal input pin remembers the value it is given with a setp if it isn't connected to a signal and hal commands like setp in the hal file are only executed once when the hal file is loaded at start up.)
I would probably use a couple of custom M-codes to enable/disable the 2nd probe. In your hal file add a line to setp the value of the and2.0.in0. and remove all other hal file references to that pin. Then in the two M-code files setp the value of and2.0.in0 to true or false to enable and disable the input.
# Load logic components
loadrt and2 count=1
loadrt or2 count=1
addf and2.0 servo-thread
addf or2.0 servo-thread
setp and2.0.in0 false #Set probe2's input state to disabled at startup.
# Define probe inputs (Pin 0 and Pin 2)
net probe1-in <= hm2_7i96s.0.inm.00.input-00-not # Tool Touch-off probe (Pin 0)
net probe2-in <= hm2_7i96s.0.inm.00.input-02-not => and2.0.in1 # Edge Finder probe (Pin 2)
# Enable Edge Finder only when connected
net probe2-final <= and2.0.out # Final state of Edge Finder # Allow probe2 (Edge Finder) if connected
# Send final signal to motion.probe-input
net probe1-in => or2.0.in0 #Combine probe 1 and 2 inputs
net probe2-final => or2.0.in1 #Combine probe 2 input (when enabled)
net probe_comb or2.0.out => motion.probe-input
Then to create an M101 M-code create a file containing the following, called M101 save it to your config dir and save as an executable file.
#!/bin/bash
# file to enable Probe2
halcmd setp and2.0.in0 True
exit 0
Then you can make another one to disable the probe called M102
#!/bin/bash
# file to disnable Probe2
halcmd setp and2.0.in0 False
exit 0