# load real time components loadrt mux4 names=mpg-scale # loadrt or2 count=2 ########################################### ########################################### # MPG scale # addf or2.0 servo-thread # addf or2.1 servo-thread # MPG Jog Speeds addf mpg-scale servo-thread # MPG encoder feedback setp hm2_[HOSTMOT2](BOARD).0.encoder.00.counter-mode 0 setp hm2_[HOSTMOT2](BOARD).0.encoder.00.filter 1 setp hm2_[HOSTMOT2](BOARD).0.encoder.00.index-invert 0 setp hm2_[HOSTMOT2](BOARD).0.encoder.00.index-mask 0 setp hm2_[HOSTMOT2](BOARD).0.encoder.00.index-mask-invert 0 # Send the jog counts to each axis, only the one selected will move net mpg-count hm2_7i43.0.encoder.00.count # X axis net mpg-count => axis.0.jog-counts # Y axis net mpg-count => axis.1.jog-counts # Z axis net mpg-count => axis.2.jog-counts # A axis ## net mpg-count => axis.3.jog-counts # Set up the scale factors for the scale selector switch # 0.0001 per click of the MPG setp mpg-scale.in0 .000025 # 0.001 per click of the MPG setp mpg-scale.in1 .00025 # 0.01 per click of the MPG setp mpg-scale.in2 .00040 # a single input controls the selection of an axis # X axis net mpg-x axis.0.jog-enable <= hm2_[HOSTMOT2](BOARD).0.gpio.005.in_not # Y axis net mpg-y axis.1.jog-enable <= hm2_[HOSTMOT2](BOARD).0.gpio.007.in_not # Z axis net mpg-z axis.2.jog-enable <= hm2_[HOSTMOT2](BOARD).0.gpio.009.in_not # A axis ## net mpg-a axis.3.jog-enable <= hm2_[HOSTMOT2](BOARD).0.gpio.011.in_not # MPG Scale # set the MPG scale based on the inputs from the selector switch ### net pos1 mpg-scale.sel0 <= hm2_[HOSTMOT2](BOARD).0.gpio.010.in_not ### net pos2 mpg-scale.sel1 <= hm2_[HOSTMOT2](BOARD).0.gpio.012.in_not net pos1 mpg-scale.sel0 <= hm2_[HOSTMOT2](BOARD).0.gpio.037.in net pos2 mpg-scale.sel1 <= hm2_[HOSTMOT2](BOARD).0.gpio.036.in # Set the jog scale for each axis # X axis ### net axis-mpg-jog-scale axis.0.jog-scale <= mpg-scale.out net axis-mpg-jog-scale mpg-scale.out => axis.0.jog-scale # Y axis ### net axis-mpg-jog-scale axis.1.jog-scale <= mpg-scale.out net axis-mpg-jog-scale mpg-scale.out => axis.1.jog-scale # Z axis ### net axis-mpg-jog-scale axis.2.jog-scale <= mpg-scale.out net axis-mpg-jog-scale mpg-scale.out => axis.2.jog-scale # A axis ## net axis-mpg-jog-scale mpg-scale.out => axis.3.jog-scale ########################################### # PAUSE/RESUME BUTTON #custom.hal #loadrt and2 count=2 #loadrt or2 count=1 #loadrt toggle count=1 #loadrt toggle2nist count=1 ##loadrt and2 count=3 ##loadrt or2 count=1 loadrt and2 count=6 loadrt or2 count=2 loadrt toggle count=3 loadrt toggle2nist count=3 addf and2.0 servo-thread addf and2.1 servo-thread addf or2.0 servo-thread addf toggle.0 servo-thread addf toggle2nist.0 servo-thread # For Spindle On/Off function addf and2.3 servo-thread addf and2.4 servo-thread addf or2.1 servo-thread addf toggle.1 servo-thread addf toggle2nist.1 servo-thread # For Remote Program Start Button addf and2.5 servo-thread # For Flood Coolant Toggle addf and2.2 servo-thread addf toggle.2 servo-thread addf toggle2nist.2 servo-thread # External Program Pause/Resume Button ###net pause-resume-btn and2.0.in0 and2.1.in0 <= hm2_[HOSTMOT2](BOARD).0.gpio.014.in_not net pause-resume-btn and2.0.in0 and2.1.in0 <= hm2_[HOSTMOT2](BOARD).0.gpio.035.in_not net pause-on toggle2nist.0.is-on and2.0.in1 and2.3.in0 <= halui.program.is-paused net run-on and2.1.in1 <= halui.program.is-running net pause-sig or2.0.in0 <= and2.0.out net resume-sig or2.0.in1 <= and2.1.out net toggle-ok toggle.0.in < or2.0.out net togglesig toggle2nist.0.in <= toggle.0.out net toggleon halui.program.pause <= toggle2nist.0.on net toggleoff halui.program.resume <= toggle2nist.0.off ########################################### # Added logic for Spindle Toggle control # and2.3, and2.4, or2.1 ###net logic_and3_a_in and2.3.in0 <= halui.program.is-paused ## and2.5.in1 below is for Remote Program Start below net logic_and3_b_in and2.5.in1 and2.3.in1 <= halui.mode.is-auto net logic_or1_a_in or2.1.in0 <= and2.3.out net logic_or1_b_in or2.1.in1 <= halui.mode.is-manual net logic_and4_a_in and2.4.in0 <= or2.1.out net logic_and4_b_in and2.4.in1 <= toggle.1.out ################### ################### # remote program start button net program-start-btn halui.mode.auto and2.5.in0 <= hm2_[HOSTMOT2](BOARD).0.gpio.034.in #net program-run-ok and2.5.in1 <= halui.mode.is-auto net remote-program-run halui.program.run <= and2.5.out ################### # Spindle On/Off Toggle Button #setp toggle.1.debounce 5 net spindle-request toggle.1.in <= hm2_[HOSTMOT2](BOARD).0.gpio.013.in_not ##net spindle-toggle toggle2nist.1.in <= toggle.1.out net spindle-toggle toggle2nist.1.in <= and2.4.out net spindle-is-on toggle2nist.1.is-on <= halui.spindle.is-on net spindle-start halui.spindle.start <= toggle2nist.1.on net spindle-stop halui.spindle.stop <= toggle2nist.1.off ########################################### setp hm2_[HOSTMOT2](BOARD).0.gpio.021.is_output 1 setp hm2_[HOSTMOT2](BOARD).0.gpio.021.invert_output 1 net coolant-flood iocontrol.0.coolant-flood => hm2_[HOSTMOT2](BOARD).0.gpio.021.out # Flood Coolant Toggle # net coolant-btn and2.2.in0 <= pyvcp.coolant #net coolant-btn and2.2.in0 <= hm2_[HOSTMOT2](BOARD).0.gpio.013.in_not #net coolant-ok and2.2.in1 <= halui.machine.is-on #net coolant-request toggle.2.in <= and2.2.out #net coolant-toggle toggle2nist.2.in <= toggle.2.out #net coolant-is-on toggle2nist.2.is-on <= halui.flood.is-on #net coolant-on halui.flood.on <= toggle2nist.2.on #net coolant-off halui.flood.off <= toggle2nist.2.off ###########################################