Advertisement
Guest User

custom.hal

a guest
Jul 18th, 2013
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.94 KB | None | 0 0
  1. # Generated by stepconf at Sun Aug 28 12:50:09 2011
  2. # If you make changes to this file, they will be
  3. # overwritten when you run stepconf again
  4.  
  5. loadrt threads name1=base-thread period1=[EMCMOT]BASE_PERIOD fp1=0 name2=charge-pump-thread period2=100000 fp2=0
  6.  
  7. loadrt trivkins
  8. loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
  9. loadrt probe_parport
  10. loadrt hal_parport cfg="0x378 out"
  11. # setp parport.0.reset-time 1200
  12. loadrt stepgen step_type=0,0,0
  13. loadrt pwmgen output_type=0
  14. loadrt charge_pump
  15. loadrt laserraster linear_units=[TRAJ]LINEAR_UNITS axis_scale=[AXIS_0]SCALE axis_min_limit=[AXIS_0]MIN_LIMIT axis_max_limit=[AXIS_0]MAX_LIMIT
  16. loadrt laserfreq
  17.  
  18. addf parport.0.read base-thread
  19. addf stepgen.make-pulses base-thread
  20. addf laserraster.0.make-pulses base-thread
  21. addf laserfreq.0.make-pulses base-thread
  22. addf pwmgen.make-pulses base-thread
  23. addf parport.0.write base-thread
  24. # addf parport.0.reset base-thread
  25.  
  26. addf stepgen.capture-position servo-thread
  27. addf motion-command-handler servo-thread
  28. addf motion-controller servo-thread
  29. addf stepgen.update-freq servo-thread
  30. addf laserraster.0.update servo-thread
  31. addf laserfreq.0.update servo-thread
  32. addf pwmgen.update servo-thread
  33.  
  34. addf charge-pump charge-pump-thread
  35.  
  36. net laser-power-cmd <= motion.analog-out-00 => pwmgen.0.value
  37. net laser-pwm <= pwmgen.0.pwm
  38. # or tie pwmgen.0.enable to dout-00??
  39. setp pwmgen.0.enable 1
  40. # pwm-freq 0 means PDM (pulse density modulation)
  41. setp pwmgen.0.pwm-freq 0
  42. # scale 0%=0.1 100%=0.6
  43. setp pwmgen.0.max-dc 0.7
  44. setp pwmgen.0.scale 200
  45. setp pwmgen.0.offset 0.1
  46. setp pwmgen.0.dither-pwm true
  47.  
  48. net coolant-mist <= iocontrol.0.coolant-mist
  49. net estop-out <= iocontrol.0.user-enable-out
  50. net estop-out => iocontrol.0.emc-enable-in
  51.  
  52. #net estop-out => parport.0.pin-01-out
  53. net xstep => parport.0.pin-02-out
  54. # setp parport.0.pin-02-out-reset 1
  55. net xdir => parport.0.pin-03-out
  56. setp parport.0.pin-03-out-invert 0
  57. net ystep => parport.0.pin-04-out
  58. # setp parport.0.pin-04-out-reset 1
  59. net ydir => parport.0.pin-05-out
  60. setp parport.0.pin-05-out-invert 1
  61. net wstep => parport.0.pin-06-out
  62. # setp parport.0.pin-06-out-reset 1
  63. net wdir => parport.0.pin-07-out
  64. setp parport.0.pin-07-out-invert 1
  65. net xenable => parport.0.pin-08-out
  66. setp parport.0.pin-08-out-invert 1
  67.  
  68. net laser-exhaust => parport.0.pin-01-out
  69. net laser-pwm => parport.0.pin-14-out
  70. net coolant-mist => parport.0.pin-16-out
  71. net laser-final => parport.0.pin-17-out
  72.  
  73. net both-w <= parport.0.pin-12-in-not
  74. net max-home-y <= parport.0.pin-13-in-not
  75. net min-home-x <= parport.0.pin-15-in-not
  76.  
  77. # charge pump output on pin 9
  78. net charge-pump-out-09 charge-pump.out => parport.0.pin-09-out
  79.  
  80. # Keling 4030 driver 1.2us step, 5us dir setup
  81. setp stepgen.0.position-scale [AXIS_0]SCALE
  82. setp stepgen.0.steplen 1200
  83. setp stepgen.0.stepspace 1200
  84. setp stepgen.0.dirhold 1000
  85. setp stepgen.0.dirsetup 5000
  86. setp stepgen.0.maxaccel [AXIS_0]STEPGEN_MAXACCEL
  87. net xpos-cmd axis.0.motor-pos-cmd => stepgen.0.position-cmd
  88. net xpos-fb stepgen.0.position-fb => axis.0.motor-pos-fb
  89. net xstep <= stepgen.0.step
  90. net xdir <= stepgen.0.dir
  91. net xenable axis.0.amp-enable-out => stepgen.0.enable
  92. net min-home-x => axis.0.home-sw-in
  93. net min-home-x => axis.0.neg-lim-sw-in
  94.  
  95. setp stepgen.1.position-scale [AXIS_1]SCALE
  96. setp stepgen.1.steplen 1200
  97. setp stepgen.1.stepspace 1200
  98. setp stepgen.1.dirhold 1000
  99. setp stepgen.1.dirsetup 5000
  100. setp stepgen.1.maxaccel [AXIS_1]STEPGEN_MAXACCEL
  101. net ypos-cmd axis.1.motor-pos-cmd => stepgen.1.position-cmd
  102. net ypos-fb stepgen.1.position-fb => axis.1.motor-pos-fb
  103. net ystep <= stepgen.1.step
  104. net ydir <= stepgen.1.dir
  105. net yenable axis.1.amp-enable-out => stepgen.1.enable
  106. net max-home-y => axis.1.home-sw-in
  107. net max-home-y => axis.1.pos-lim-sw-in
  108.  
  109. setp stepgen.2.position-scale [AXIS_8]SCALE
  110. setp stepgen.2.steplen 1200
  111. setp stepgen.2.stepspace 1200
  112. setp stepgen.2.dirhold 1000
  113. setp stepgen.2.dirsetup 5000
  114. setp stepgen.2.maxaccel [AXIS_8]STEPGEN_MAXACCEL
  115. net wpos-cmd axis.8.motor-pos-cmd => stepgen.2.position-cmd
  116. net wpos-fb stepgen.2.position-fb => axis.8.motor-pos-fb
  117. net wstep <= stepgen.2.step
  118. net wdir <= stepgen.2.dir
  119. net wenable axis.8.amp-enable-out => stepgen.2.enable
  120. #net both-w => axis.8.neg-lim-sw-in
  121. #net both-w => axis.8.pos-lim-sw-in
  122.  
  123. net zpos-cmd-fb <= axis.2.motor-pos-cmd => axis.2.motor-pos-fb
  124.  
  125. net tool-change-loop iocontrol.0.tool-change => iocontrol.0.tool-changed
  126. net tool-prepare-loop iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
  127.  
  128. ########################
  129.  
  130. # M3/M5, not realtime/coordinated but master on/off:
  131. net laser-master <= motion.spindle-on
  132.  
  133. # M62/M63 coordinated or M64/M65 immediate firing:
  134. net laser-dout <= motion.digital-out-00
  135.  
  136. ########################
  137.  
  138. setp laserraster.0.enable 1
  139. setp laserraster.0.laser-on-delay [LASER]TRIGGER_DELAY
  140. net raster-data-index <= motion.analog-out-01 => laserraster.0.data-index
  141. net raster-data-1 <= motion.analog-out-02 => laserraster.0.data-1
  142. net xstep => laserraster.0.stepgen-step
  143. net xdir => laserraster.0.stepgen-dir
  144. net laser-raster <= laserraster.0.laser-on
  145.  
  146. ########################
  147.  
  148. setp laserfreq.0.duration [LASER]PULSED_CUT_DURATION
  149. net current-vel motion.current-vel => laserfreq.0.velocity
  150. net laser-freq-speed motion.spindle-speed-out => laserfreq.0.pulse-per-unit
  151. net laser-freq-trick-axis-rev motion.spindle-reverse
  152. #net laser-dout => laserfreq.0.enable
  153. setp laserfreq.0.enable 1
  154. net laser-pulsed <= laserfreq.0.pulse
  155.  
  156. ########################
  157.  
  158. loadrt comp names=laser-magic-z-comp
  159. addf laser-magic-z-comp servo-thread
  160. net zpos-fb <= axis.2.joint-pos-fb => laser-magic-z-comp.in0
  161. setp laser-magic-z-comp.in1 -0.0001
  162. net laser-magic-z <= laser-magic-z-comp.out
  163.  
  164. ########################
  165.  
  166. # Final laser equation: When laser-master is enabled (M3) fire for
  167. # raster or at pulse rate when cutting:
  168. #
  169. # laser-final <= laser-master &
  170. # (laser-raster |
  171. # ((laser-magic-z | laser-dout) & laser-pulsed))
  172.  
  173. loadrt lut5 names=laser-final-lut
  174. addf laser-final-lut base-thread
  175. setp laser-final-lut.function 0xfeaa0000
  176. net laser-raster => laser-final-lut.in-0
  177. net laser-dout => laser-final-lut.in-1
  178. net laser-magic-z => laser-final-lut.in-2
  179. net laser-pulsed => laser-final-lut.in-3
  180. net laser-master => laser-final-lut.in-4
  181. net laser-final <= laser-final-lut.out
  182.  
  183. ########################
  184. # exhaust/assist-air control
  185.  
  186. loadrt oneshot names=laser-exhaust-oneshot
  187. loadrt or2 names=laser-exhaust-or
  188. addf laser-exhaust-oneshot servo-thread
  189. addf laser-exhaust-or servo-thread
  190.  
  191. net laser-master => laser-exhaust-oneshot.in
  192. net laser-exhaust-extra <= laser-exhaust-oneshot.out
  193. setp laser-exhaust-oneshot.retriggerable 1
  194. setp laser-exhaust-oneshot.width [LASER]EXTRA_EXHAUST_TIME
  195. setp laser-exhaust-oneshot.rising 0
  196. setp laser-exhaust-oneshot.falling 1
  197.  
  198. net laser-master => laser-exhaust-or.in0
  199. net laser-exhaust-extra => laser-exhaust-or.in1
  200. net laser-exhaust <= laser-exhaust-or.out
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement