/ configs / by_interface / vigilant / vti_io.hal
vti_io.hal
  1  # HAL config file for Vigilant Technologies Inc. VTI PCA board
  2  #
  3  # install driver (only needed if vti_motion.hal doesn't get run)
  4  #loadrt hal_vti
  5  
  6  # add I/O to servo thread so they will be evaluated
  7  # every servo period
  8  # read inputs first
  9  addf vti.di-read servo-thread 1
 10  # write outputs last
 11  addf vti.do-write servo-thread -1
 12  
 13  #uncomment following line if ADC's are needed (for example spindle-tach feedback)
 14  #addf vti.0.read-adcs servo-thread 1
 15  
 16  #
 17  # Connect motion controller I/Os
 18  #
 19  
 20  # connect limit/home switch outputs to motion controller
 21  #newsig Xminlim bit
 22  #newsig Xmaxlim  bit
 23  #newsig Xhome bit
 24  #linksp Xminlim <= vti.in-02
 25  #linksp Xminlim => joint.0.neg-lim-sw-in
 26  #linksp Xmaxlim <= vti.in-01
 27  #linksp Xmaxlim => joint.0.pos-lim-sw-in
 28  #linksp Xhome <= vti.in-00
 29  #linksp Xhome => joint.0.home-sw-in
 30  
 31  #newsig Yminlim bit
 32  #newsig Ymaxlim  bit
 33  #newsig Yhome bit
 34  #linksp Yminlim <= vti.in-06
 35  #linksp Yminlim => joint.1.neg-lim-sw-in
 36  #linksp Ymaxlim <= vti.in-05
 37  #linksp Ymaxlim => joint.1.pos-lim-sw-in
 38  #linksp Yhome <= vti.in-04
 39  #linksp Yhome => joint.1.home-sw-in
 40  
 41  #newsig Zminlim bit
 42  #newsig Zmaxlim  bit
 43  #newsig Zhome bit
 44  #linksp Zminlim <= vti.in-10
 45  #linksp Zminlim => joint.2.neg-lim-sw-in
 46  #linksp Zmaxlim <= vti.in-09
 47  #linksp Zmaxlim => joint.2.pos-lim-sw-in
 48  #linksp Zhome <= vti.in-08
 49  #linksp Zhome => joint.2.home-sw-in
 50  
 51  #continue in the same manner for further axes (A,B,C)
 52  
 53  # connect amp faults to motion controller
 54  #newsig Xfault bit
 55  #newsig Yfault  bit
 56  #newsig Zfault bit
 57  #linksp Xfault <= vti.in-03
 58  #linksp Xfault => joint.0.amp-fault-in
 59  #linksp Yfault <= vti.in-07
 60  #linksp Yfault => joint.1.amp-fault-in
 61  #linksp Zfault <= vti.in-11
 62  #linksp Zfault => joint.2.amp-fault-in
 63  
 64  # connect index pulses to motion controller
 65  # do these when index pulsing is figured out
 66  #newsig Xindex bit
 67  #newsig Yindex  bit
 68  #newsig Zindex bit
 69  #linksp Xindex <= vti.0.enc-index
 70  #linksp Xindex => joint.0.index-enable
 71  #linksp Yindex <= vti.1.enc-index
 72  #linksp Yindex => joint.1.index-enable
 73  #linksp Zindex <= vti.2.enc-index
 74  #linksp Zindex => joint.2.index-enable
 75  
 76  # connect amp enables to motion controller
 77  #linksp Xenable => vti.out-00
 78  #linksp Yenable => vti.out-01
 79  #linksp Zenable => vti.out-02
 80  
 81  # connect watchdog reset to motion controller
 82  # needs watchdo
 83  #newsig WatchdogRst bit
 84  #linksp WatchdogRst <= vti.watchdog-reset
 85  #linksp WatchdogRst => motion.watchdog-reset-out
 86  
 87  
 88  #
 89  # Connect I/O controller I/Os
 90  #
 91  
 92  # connect e-stop write/sense to I/O controller
 93  # these connections assume an external ESTOP circuitry will be used
 94  # if it's not used, comment the next lines and uncomment the loopback
 95  #newsig EstopSense bit
 96  #newsig EstopWrite bit
 97  #linksp EstopSense <= vti.in-12
 98  #linksp EstopSense => iocontrol.0.emc-enable-in
 99  #linksp EstopWrite <= vti.out-07
100  #linksp EstopWrite => iocontrol.0.user-enable-out
101  
102  # ESTOP loopback, only use this for a simple machine without external ESTOP
103  # you really SHOULDN'T use a servo machine without proper ESTOP
104  #net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in
105  
106  # connect spindle fwd/rev to I/O controller
107  #newsig SpindleFwd bit
108  #newsig SpindleRev bit
109  #linksp SpindleFwd <= vti.out-06
110  #linksp SpindleFwd => spindle.0.forward
111  #linksp SpindleRev <= vti.out-05
112  #linksp SpindleRev => spindle.0.reverse
113  
114  # connect spindle brake to I/O controller
115  #newsig SpindleBrakeOn bit
116  #linksp SpindleBrakeOn <= vti.out-10
117  #linksp SpindleBrakeOn => spindle.0.brake
118  
119  # connect mist/flood coolant to I/O controller
120  #newsig MistOn bit
121  #newsig FloodOn bit
122  #linksp MistOn <= vti.out-11
123  #linksp MistOn => iocontrol.0.coolant-mist
124  #linksp FloodOn <= vti.out-12
125  #linksp FloodOn => iocontrol.0.coolant-flood
126  
127  # connect lube motor run to I/O controller
128  #newsig LubeOn bit
129  #linksp LubeOn <= vti.out-13
130  #linksp LubeOn => iocontrol.0.lube
131  
132  # connect lube level to I/O controller
133  #newsig LubeLevel bit
134  #linksp LubeLevel <= vti.in-13
135  #linksp LubeLevel => iocontrol.0.lube_level