/ configs / by_machine / tormach / pcnc-770.hal
pcnc-770.hal
  1  
  2  loadrt [KINS]KINEMATICS
  3  loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
  4  loadrt hal_parport cfg=0x378
  5  setp parport.0.reset-time 4000
  6  loadrt stepgen step_type=0,0,0,0,0 ctrl_type=p,p,p,p,v
  7  
  8  loadrt estop_latch
  9  net charge-pump <= estop-latch.0.watchdog
 10  
 11  addf parport.0.read base-thread
 12  addf stepgen.make-pulses base-thread
 13  addf estop-latch.0 base-thread
 14  addf parport.0.write base-thread
 15  addf parport.0.reset base-thread
 16  
 17  addf stepgen.capture-position servo-thread
 18  addf motion-command-handler servo-thread
 19  addf motion-controller servo-thread
 20  addf stepgen.update-freq servo-thread
 21  net spindle-cw <= spindle.0.forward
 22  net coolant-flood <= iocontrol.0.coolant-flood
 23  net spindle-on spindle.0.on stepgen.4.enable
 24  
 25  
 26  #
 27  # Spindle gear selection code.
 28  #
 29  # emc2 (rpm) => gearchange => stepgen (step & dir) => spindle
 30  # low gear:  175-3250 rpm, 201.3 ppr, 10900 Hz => 3250 rpm, 3.354 Hz/rpm
 31  # high gear: 525-10200 rpm, 64.1 ppr, 10900 Hz => 10200 rpm, 1.069 Hz/rpm
 32  # low/high ppr = 201.3/64.1 = 3.140
 33  #
 34  
 35  setp stepgen.4.maxaccel 20000
 36  setp stepgen.4.maxvel 3250
 37  setp stepgen.4.position-scale 3.354
 38  net spindle-pwm stepgen.4.step parport.0.pin-01-out
 39  setp stepgen.4.stepspace 0
 40  setp stepgen.4.steplen 1
 41  setp parport.0.pin-01-out-reset 1
 42  loadrt or2 count=1
 43  linksp spindle-cw or2.0.in0
 44  net spindle-ccw spindle.0.reverse or2.0.in1
 45  
 46  loadrt toggle count=1
 47  loadrt not count=1
 48  loadrt gearchange count=1
 49  addf toggle.0 servo-thread
 50  addf not.0 servo-thread
 51  addf gearchange.0 servo-thread
 52  setp toggle.0.debounce 0
 53  setp gearchange.0.min1 175
 54  setp gearchange.0.max1 3250
 55  setp gearchange.0.min2 525
 56  setp gearchange.0.max2 10200
 57  setp gearchange.0.scale2 3.140
 58  # we're not controlling the direction with the gearchanger, so reverse isn't set
 59  # and the dir-in and dir-out pins aren't linked
 60  net spindle-speed-raw spindle.0.speed-out gearchange.0.speed-in
 61  net spindle-speed gearchange.0.speed-out stepgen.4.velocity-cmd
 62  
 63  net xdir => parport.0.pin-02-out
 64  setp parport.0.pin-03-out-invert 1
 65  net xstep => parport.0.pin-03-out
 66  setp parport.0.pin-03-out-reset 1
 67  net ydir => parport.0.pin-04-out
 68  setp parport.0.pin-05-out-invert 1
 69  net ystep => parport.0.pin-05-out
 70  setp parport.0.pin-05-out-reset 1
 71  setp parport.0.pin-06-out-invert 1
 72  net zdir => parport.0.pin-06-out
 73  setp parport.0.pin-07-out-invert 1
 74  net zstep => parport.0.pin-07-out
 75  setp parport.0.pin-07-out-reset 1
 76  net adir => parport.0.pin-08-out
 77  setp parport.0.pin-09-out-invert 1
 78  net astep => parport.0.pin-09-out
 79  setp parport.0.pin-09-out-reset 1
 80  net coolant-flood => parport.0.pin-14-out
 81  net spindle-cw => parport.0.pin-16-out
 82  net charge-pump => parport.0.pin-17-out
 83  
 84  net both-home-x <= parport.0.pin-10-in
 85  net both-home-y <= parport.0.pin-11-in
 86  net both-home-z <= parport.0.pin-12-in
 87  net home-a <= parport.0.pin-13-in
 88  net machine-ok <= parport.0.pin-15-in-not
 89  
 90  setp stepgen.0.position-scale [JOINT_0]SCALE
 91  setp stepgen.0.steplen 1
 92  setp stepgen.0.stepspace 0
 93  setp stepgen.0.dirhold 45000
 94  setp stepgen.0.dirsetup 26000
 95  setp stepgen.0.maxaccel [JOINT_0]STEPGEN_MAXACCEL
 96  net xpos-cmd joint.0.motor-pos-cmd => stepgen.0.position-cmd
 97  net xpos-fb stepgen.0.position-fb => joint.0.motor-pos-fb
 98  net xstep <= stepgen.0.step
 99  net xdir <= stepgen.0.dir
100  net xenable joint.0.amp-enable-out => stepgen.0.enable
101  net both-home-x => joint.0.home-sw-in
102  net both-home-x => joint.0.neg-lim-sw-in
103  net both-home-x => joint.0.pos-lim-sw-in
104  
105  setp stepgen.1.position-scale [JOINT_1]SCALE
106  setp stepgen.1.steplen 1
107  setp stepgen.1.stepspace 0
108  setp stepgen.1.dirhold 45000
109  setp stepgen.1.dirsetup 26000
110  setp stepgen.1.maxaccel [JOINT_1]STEPGEN_MAXACCEL
111  net ypos-cmd joint.1.motor-pos-cmd => stepgen.1.position-cmd
112  net ypos-fb stepgen.1.position-fb => joint.1.motor-pos-fb
113  net ystep <= stepgen.1.step
114  net ydir <= stepgen.1.dir
115  net yenable joint.1.amp-enable-out => stepgen.1.enable
116  net both-home-y => joint.1.home-sw-in
117  net both-home-y => joint.1.neg-lim-sw-in
118  net both-home-y => joint.1.pos-lim-sw-in
119  
120  setp stepgen.2.position-scale [JOINT_2]SCALE
121  setp stepgen.2.steplen 1
122  setp stepgen.2.stepspace 0
123  setp stepgen.2.dirhold 45000
124  setp stepgen.2.dirsetup 26000
125  setp stepgen.2.maxaccel [JOINT_2]STEPGEN_MAXACCEL
126  net zpos-cmd joint.2.motor-pos-cmd => stepgen.2.position-cmd
127  net zpos-fb stepgen.2.position-fb => joint.2.motor-pos-fb
128  net zstep <= stepgen.2.step
129  net zdir <= stepgen.2.dir
130  net zenable joint.2.amp-enable-out => stepgen.2.enable
131  net both-home-z => joint.2.home-sw-in
132  net both-home-z => joint.2.neg-lim-sw-in
133  net both-home-z => joint.2.pos-lim-sw-in
134  
135  setp stepgen.3.position-scale [JOINT_3]SCALE
136  setp stepgen.3.steplen 1
137  setp stepgen.3.stepspace 0
138  setp stepgen.3.dirhold 45000
139  setp stepgen.3.dirsetup 26000
140  setp stepgen.3.maxaccel [JOINT_3]STEPGEN_MAXACCEL
141  net apos-cmd joint.3.motor-pos-cmd => stepgen.3.position-cmd
142  net apos-fb stepgen.3.position-fb => joint.3.motor-pos-fb
143  net astep <= stepgen.3.step
144  net adir <= stepgen.3.dir
145  net aenable joint.3.amp-enable-out => stepgen.3.enable
146  net home-a => joint.3.home-sw-in
147  
148  #linksp xenable estop-latch.0.ok-out
149  net estop-out <= iocontrol.0.user-enable-out
150  net machine-ok => estop-latch.0.ok-in
151  net estop estop-latch.0.ok-out => iocontrol.0.emc-enable-in
152  net estop-reset iocontrol.0.user-request-enable => estop-latch.0.reset
153  
154  loadusr -W hal_manualtoolchange
155  net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change
156  net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed
157  net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
158  net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
159  
160  net probe parport.0.pin-13-in-not => motion.probe-input