Advertisement
Guest User

combined.hal

a guest
Jul 18th, 2013
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.92 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 100
  42. # scale 0%=0.1 100%=5.0
  43. setp pwmgen.0.max-dc 5.0
  44. setp pwmgen.0.scale 100
  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 ystep => parport.0.pin-02-out
  54. # setp parport.0.pin-02-out-reset 1
  55. net ydir => parport.0.pin-03-out
  56. setp parport.0.pin-03-out-invert 0
  57. net xstep => parport.0.pin-04-out
  58. # setp parport.0.pin-04-out-reset 1
  59. setp parport.0.pin-05-out-invert 1
  60. net xdir => parport.0.pin-05-out
  61. setp parport.0.pin-05-out-invert 1
  62. net zstep => parport.0.pin-06-out
  63. # setp parport.0.pin-06-out-reset 1
  64. net zdir => parport.0.pin-07-out
  65. net astep => parport.0.pin-08-out
  66. net spindle-cw => parport.0.pin-14-out
  67. net spindle-pwm => parport.0.pin-16-out
  68. net xenable => parport.0.pin-17-out
  69.  
  70. net laser-exhaust => parport.0.pin-01-out
  71. net laser-pwm => parport.0.pin-14-out
  72. net coolant-mist => parport.0.pin-16-out
  73. net laser-final => parport.0.pin-17-out
  74. net home-x <= parport.0.pin-10-in
  75. net home-y <= parport.0.pin-12-in
  76. net estop-ext <= parport.0.pin-15-in
  77.  
  78. # charge pump output on pin 9
  79. net charge-pump-out-09 charge-pump.out => parport.0.pin-09-out
  80.  
  81. # Keling 4030 driver 1.2us step, 5us dir setup
  82. setp stepgen.0.position-scale [AXIS_0]SCALE
  83. setp stepgen.0.steplen 1
  84. setp stepgen.0.stepspace 1
  85. setp stepgen.0.dirhold 40000
  86. setp stepgen.0.dirsetup 40000
  87. setp stepgen.0.maxaccel [AXIS_0]STEPGEN_MAXACCEL
  88. net xpos-cmd axis.0.motor-pos-cmd => stepgen.0.position-cmd
  89. net xpos-fb stepgen.0.position-fb => axis.0.motor-pos-fb
  90. net xstep <= stepgen.0.step
  91. net xdir <= stepgen.0.dir
  92. net xenable axis.0.amp-enable-out => stepgen.0.enable
  93. net min-home-x => axis.0.home-sw-in
  94.  
  95. setp stepgen.1.position-scale [AXIS_1]SCALE
  96. setp stepgen.1.steplen 1
  97. setp stepgen.1.stepspace 1
  98. setp stepgen.1.dirhold 40000
  99. setp stepgen.1.dirsetup 40000
  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.  
  108. setp stepgen.2.position-scale [AXIS_8]SCALE
  109. setp stepgen.2.steplen 1200
  110. setp stepgen.2.stepspace 1200
  111. setp stepgen.2.dirhold 1000
  112. setp stepgen.2.dirsetup 5000
  113. setp stepgen.2.maxaccel [AXIS_8]STEPGEN_MAXACCEL
  114. net wpos-cmd axis.8.motor-pos-cmd => stepgen.2.position-cmd
  115. net wpos-fb stepgen.2.position-fb => axis.8.motor-pos-fb
  116. net wstep <= stepgen.2.step
  117. net wdir <= stepgen.2.dir
  118. net wenable axis.8.amp-enable-out => stepgen.2.enable
  119. #net both-w => axis.8.neg-lim-sw-in
  120. #net both-w => axis.8.pos-lim-sw-in
  121.  
  122. net zpos-cmd-fb <= axis.2.motor-pos-cmd => axis.2.motor-pos-fb
  123.  
  124. net tool-change-loop iocontrol.0.tool-change => iocontrol.0.tool-changed
  125. net tool-prepare-loop iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
  126.  
  127. ########################
  128.  
  129. # M3/M5, not realtime/coordinated but master on/off:
  130. net laser-master <= motion.spindle-on
  131.  
  132. # M62/M63 coordinated or M64/M65 immediate firing:
  133. net laser-dout <= motion.digital-out-00
  134.  
  135. ########################
  136.  
  137. setp laserraster.0.enable 1
  138. setp laserraster.0.laser-on-delay [LASER]TRIGGER_DELAY
  139. net raster-data-index <= motion.analog-out-01 => laserraster.0.data-index
  140. net raster-data-1 <= motion.analog-out-02 => laserraster.0.data-1
  141. net xstep => laserraster.0.stepgen-step
  142. net xdir => laserraster.0.stepgen-dir
  143. net laser-raster <= laserraster.0.laser-on
  144.  
  145. ########################
  146.  
  147. setp laserfreq.0.duration [LASER]PULSED_CUT_DURATION
  148. net current-vel motion.current-vel => laserfreq.0.velocity
  149. net laser-freq-speed motion.spindle-speed-out => laserfreq.0.pulse-per-unit
  150. net laser-freq-trick-axis-rev motion.spindle-reverse
  151. #net laser-dout => laserfreq.0.enable
  152. setp laserfreq.0.enable 1
  153. net laser-pulsed <= laserfreq.0.pulse
  154.  
  155. ########################
  156.  
  157. loadrt comp names=laser-magic-z-comp
  158. addf laser-magic-z-comp servo-thread
  159. net zpos-fb <= axis.2.joint-pos-fb => laser-magic-z-comp.in0
  160. setp laser-magic-z-comp.in1 -0.0001
  161. net laser-magic-z <= laser-magic-z-comp.out
  162.  
  163. ########################
  164.  
  165. # Final laser equation: When laser-master is enabled (M3) fire for
  166. # raster or at pulse rate when cutting:
  167. #
  168. # laser-final <= laser-master &
  169. # (laser-raster |
  170. # ((laser-magic-z | laser-dout) & laser-pulsed))
  171.  
  172. loadrt lut5 names=laser-final-lut
  173. addf laser-final-lut base-thread
  174. setp laser-final-lut.function 0xfeaa0000
  175. net laser-raster => laser-final-lut.in-0
  176. net laser-dout => laser-final-lut.in-1
  177. net laser-magic-z => laser-final-lut.in-2
  178. net laser-pulsed => laser-final-lut.in-3
  179. net laser-master => laser-final-lut.in-4
  180. net laser-final <= laser-final-lut.out
  181.  
  182. ########################
  183. # exhaust/assist-air control
  184.  
  185. loadrt oneshot names=laser-exhaust-oneshot
  186. loadrt or2 names=laser-exhaust-or
  187. addf laser-exhaust-oneshot servo-thread
  188. addf laser-exhaust-or servo-thread
  189.  
  190. net laser-master => laser-exhaust-oneshot.in
  191. net laser-exhaust-extra <= laser-exhaust-oneshot.out
  192. setp laser-exhaust-oneshot.retriggerable 1
  193. setp laser-exhaust-oneshot.width [LASER]EXTRA_EXHAUST_TIME
  194. setp laser-exhaust-oneshot.rising 0
  195. setp laser-exhaust-oneshot.falling 1
  196.  
  197. net laser-master => laser-exhaust-or.in0
  198. net laser-exhaust-extra => laser-exhaust-or.in1
  199. net laser-exhaust <= laser-exhaust-or.out
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement