Advertisement
tjmarch

my-foam.hal

Jun 21st, 2018
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.52 KB | None | 0 0
  1. # core HAL config file for steppers
  2.  
  3. # first load the core RT modules that will be needed
  4. # kinematics
  5. loadrt trivkins
  6. # motion controller, get name and thread periods from ini file
  7. # trajectory planner
  8. loadrt tp
  9. loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins
  10. # stepper module
  11. loadrt stepgen step_type=0,0,0,0
  12.  
  13. #setp stepgen.0.steplen 100000
  14. #setp stepgen.0.stepspace 100000
  15.  
  16.  
  17.  
  18. # hook its functions to realtime threads
  19. addf stepgen.make-pulses base-thread
  20. addf stepgen.capture-position servo-thread
  21. addf motion-command-handler servo-thread
  22. addf motion-controller servo-thread
  23. addf stepgen.update-freq servo-thread
  24.  
  25. # connect position commands from motion module to step generator
  26. net Xpos-cmd <= axis.0.motor-pos-cmd
  27. net Xpos-cmd => stepgen.0.position-cmd
  28. net Ypos-cmd <= axis.1.motor-pos-cmd
  29. net Ypos-cmd => stepgen.1.position-cmd
  30. net Upos-cmd <= axis.2.motor-pos-cmd
  31. net Upos-cmd => stepgen.2.position-cmd
  32. net Vpos-cmd <= axis.3.motor-pos-cmd
  33. net Vpos-cmd => stepgen.3.position-cmd
  34.  
  35. # connect position feedback from step generators
  36. # to motion module
  37. net Xpos-fb <= stepgen.0.position-fb
  38. net Xpos-fb => axis.0.motor-pos-fb
  39. net Ypos-fb <= stepgen.1.position-fb
  40. net Ypos-fb => axis.1.motor-pos-fb
  41. net Upos-fb <= stepgen.2.position-fb
  42. net Upos-fb => axis.2.motor-pos-fb
  43. net Vpos-fb <= stepgen.3.position-fb
  44. net Vpos-fb => axis.3.motor-pos-fb
  45.  
  46. # send the position commands thru differentiators to
  47. # generate velocity and accel signals
  48. # first 8 differentiators
  49. loadrt ddt count=8
  50. # link the differentiator functions into the code
  51. addf ddt.0 servo-thread
  52. addf ddt.1 servo-thread
  53. addf ddt.2 servo-thread
  54. addf ddt.3 servo-thread
  55. addf ddt.4 servo-thread
  56. addf ddt.5 servo-thread
  57. addf ddt.6 servo-thread
  58. addf ddt.7 servo-thread
  59. # define the signals, and hook them up
  60. net Xpos-cmd => ddt.0.in
  61. net Xvel <= ddt.0.out
  62. net Xvel => ddt.1.in
  63. net Xacc <= ddt.1.out
  64. net Ypos-cmd => ddt.2.in
  65. net Yvel <= ddt.2.out
  66. net Yvel => ddt.3.in
  67. net Yacc <= ddt.3.out
  68. net Upos-cmd => ddt.4.in
  69. net Uvel <= ddt.4.out
  70. net Uvel => ddt.5.in
  71. net Uacc <= ddt.5.out
  72. net Vpos-cmd => ddt.6.in
  73. net Vvel <= ddt.6.out
  74. net Vvel => ddt.7.in
  75. net Vacc <= ddt.7.out
  76.  
  77. # connect enable signals for step generators
  78. net Xen <= axis.0.amp-enable-out
  79. net Xen => stepgen.0.enable
  80. net Yen <= axis.1.amp-enable-out
  81. net Yen => stepgen.1.enable
  82. net Uen <= axis.2.amp-enable-out
  83. net Uen => stepgen.2.enable
  84. net Ven <= axis.3.amp-enable-out
  85. net Ven => stepgen.3.enable
  86.  
  87. # connect signals to step pulse generator outputs
  88. net Xstep stepgen.0.step
  89. net Xdir stepgen.0.dir
  90. net Ystep stepgen.1.step
  91. net Ydir stepgen.1.dir
  92. net Ustep stepgen.2.step
  93. net Udir stepgen.2.dir
  94. net Vstep stepgen.3.step
  95. net Vdir stepgen.3.dir
  96.  
  97. # connect signals to X home and min limit
  98. #net X-home => axis.0.home-sw-in axis.0.neg-lim-sw-in
  99. #net Y-home => axis.1.home-sw-in axis.1.neg-lim-sw-in
  100. #net U-home => axis.2.home-sw-in axis.2.pos-lim-sw-in
  101. #net V-home => axis.3.home-sw-in axis.3.neg-lim-sw-in
  102.  
  103. # set stepgen module scaling - get values from ini file
  104. setp stepgen.0.position-scale [AXIS_0]SCALE
  105. setp stepgen.1.position-scale [AXIS_1]SCALE
  106. setp stepgen.2.position-scale [AXIS_6]SCALE
  107. setp stepgen.3.position-scale [AXIS_7]SCALE
  108.  
  109. # set stepgen module accel limits - get values from ini file
  110. setp stepgen.0.maxaccel [AXIS_0]STEPGEN_MAXACCEL
  111. setp stepgen.1.maxaccel [AXIS_1]STEPGEN_MAXACCEL
  112. setp stepgen.2.maxaccel [AXIS_6]STEPGEN_MAXACCEL
  113. setp stepgen.3.maxaccel [AXIS_7]STEPGEN_MAXACCEL
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement