# HAL config file for Pico Systems UPC board with threading # Modified and intended for use only with Kirk Wallace's HNC lathe - KW 20070823 # 20070831 KW - Added turret.comp # 20070927 KW - Added "linksp EstopOkOut parport.0.pin-05-out" # # Connect motion controller I/Os # # connect limit/home switch outputs to motion controller newsig Xhome bit newsig Xminlim bit newsig Xmaxlim bit linksp Xhome ppmc.0.din.00.in linksp Xhome axis.0.home-sw-in linksp Xminlim ppmc.0.din.01.in linksp Xminlim axis.0.neg-lim-sw-in linksp Xmaxlim ppmc.0.din.02.in linksp Xmaxlim axis.0.pos-lim-sw-in newsig Zminlim bit newsig Zmaxlim bit newsig Zhome bit linksp Zhome ppmc.0.din.03.in linksp Zhome axis.2.home-sw-in linksp Zminlim ppmc.0.din.04.in linksp Zminlim axis.2.neg-lim-sw-in linksp Zmaxlim ppmc.0.din.05.in linksp Zmaxlim axis.2.pos-lim-sw-in newsig Yhome bit newsig Yminlim bit newsig Ymaxlim bit linksp Yhome axis.1.home-sw-in linksp Yminlim axis.1.neg-lim-sw-in linksp Ymaxlim axis.1.pos-lim-sw-in newsig Ahome bit newsig Aminlim bit newsig Amaxlim bit linksp Ahome axis.3.home-sw-in linksp Aminlim axis.3.neg-lim-sw-in linksp Amaxlim axis.3.pos-lim-sw-in # connect index pulses to motion controller # do these when index pulsing is figured out newsig Xindex bit newsig Yindex bit newsig Zindex bit linksp Xindex ppmc.0.encoder.00.index-enable linksp Xindex axis.0.index-enable linksp Yindex ppmc.0.encoder.01.index-enable linksp Yindex axis.1.index-enable linksp Zindex ppmc.0.encoder.02.index-enable linksp Zindex axis.2.index-enable newsig spindle-index-enable bit linksp spindle-index-enable <= ppmc.0.encoder.03.index-enable linksp spindle-index-enable => motion.spindle-index-enable # # Connect I/O controller I/Os # # connect e-stop write/sense to I/O controller # and univpwm's fault with estop's output, so estop FF is reset, but # prevent continued estop signal from univpwm from holding FF cleared newsig ppmcEstop bit linksp ppmcEstop ppmc.0.din.15.in-not linksp ppmcEstop and2.0.in0 newsig EstopOkIn bit linksp EstopOkIn estop-latch.0.fault-in linksp EstopOkIn and2.0.out newsig EstopOkOut bit linksp EstopOkOut ppmc.0.dout.07.out linksp EstopOkOut parport.0.pin-05-out linksp EstopOkOut iocontrol.0.emc-enable-in linksp EstopOkOut estop-latch.0.ok-out linksp EstopOkOut and2.0.in1 newsig emc-estop-out bit linksp emc-estop-out iocontrol.0.user-enable-out linksp emc-estop-out estop-latch.0.ok-in newsig emc-estop-reset bit linksp emc-estop-reset iocontrol.0.user-request-enable linksp emc-estop-reset estop-latch.0.reset ### TURRET ### # create signals for tool loading loopback linkpp iocontrol.0.tool-prepare iocontrol.0.tool-prepared linkpp iocontrol.0.tool-change turret.0.position-change linkpp turret.0.position-changed iocontrol.0.tool-changed # decode turret encoder inputs newsig ones bit newsig twos bit newsig fours bit newsig eights bit linksp ones ppmc.0.din.06.in linksp ones wsum.0.bit.0.in linksp twos ppmc.0.din.07.in linksp twos wsum.0.bit.1.in linksp fours ppmc.0.din.08.in linksp fours wsum.0.bit.2.in linksp eights ppmc.0.din.09.in linksp eights wsum.0.bit.3.in # wsum.N.hold bit in newsig TurretCurrentPosition s32 linksp TurretCurrentPosition wsum.0.sum linksp TurretCurrentPosition turret.0.position-current newsig TurretRequestedPosition s32 linksp TurretRequestedPosition iocontrol.0.tool-prep-number linksp TurretRequestedPosition turret.0.position-requested setp turret.0.settle-stop [TURRET]STOP_SETTLE setp turret.0.settle-park [TURRET]PARK_SETTLE # connect turret to parallel port newsig TurretSeek bit linksp TurretSeek turret.0.seek linksp TurretSeek ppmc.0.dout.00.out newsig TurretStop bit linksp TurretStop turret.0.stop linksp TurretStop ppmc.0.dout.01.out ### SPINDLE ### # connect spindle fwd/rev to I/O controller newsig SpindleFwd bit newsig SpindleRev bit newsig SpindleDACen bit linksp SpindleFwd motion.spindle-forward linksp SpindleFwd parport.0.pin-01-out linksp SpindleFwd or2.0.in0 linksp SpindleRev motion.spindle-reverse linksp SpindleRev parport.0.pin-02-out linksp SpindleRev or2.0.in1 linksp SpindleDACen or2.0.out linksp SpindleDACen parport.0.pin-17-out # connect spindle High/Low clutches newsig SpindleLow bit newsig SpindleHigh bit linksp SpindleHigh motion.digital-out-00 linksp SpindleHigh parport.0.pin-09-out linksp SpindleHigh not.0.in linksp SpindleLow not.0.out linksp SpindleLow parport.0.pin-16-out # connect spindle DAC, set scale value to match spindle # RPM at +10 V on VFD (ex. 3000 rpm = 10 V * 300 rpm/V) setp ppmc.0.DAC8.00.scale [SPINDLE]DAC_SCALE newsig spindle-speed float linksp spindle-speed motion.spindle-speed-out linksp spindle-speed ppmc.0.DAC8.00.value # connect spindle brake to I/O controller newsig SpindleBrakeOn bit linksp SpindleBrakeOn <= ppmc.0.dout.02.out linksp SpindleBrakeOn => motion.spindle-brake ### FLOOD ### # connect flood coolant to I/O controller newsig FloodOn bit linksp FloodOn parport.0.pin-06-out linksp FloodOn iocontrol.0.coolant-flood