Advertisement
Guest User

1BPstepper.hal

a guest
Feb 19th, 2013
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.03 KB | None | 0 0
  1. # core HAL config file for quadrature stepper
  2.  
  3. # first load the core RT modules that will be needed
  4. # kinematics
  5. loadrt trivkins
  6.  
  7. # motion controller, get name and thread periods from ini file
  8. loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD key=[EMCMOT]SHMEM_KEY
  9.  
  10. # stepper module, three step generators, all three using quadrature
  11. loadrt stepgen step_type=2,2,2
  12.  
  13. # hook functions to base thread (high speed thread for step generation)
  14. addf stepgen.make-pulses base-thread
  15.  
  16. # hook functions to servo thread
  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.  
  22. # connect position commands from motion module to step generator
  23. newsig Xpos-cmd float
  24. linksp Xpos-cmd <= axis.0.motor-pos-cmd
  25. linksp Xpos-cmd => stepgen.0.position-cmd
  26. newsig Ypos-cmd float
  27. linksp Ypos-cmd <= axis.1.motor-pos-cmd
  28. linksp Ypos-cmd => stepgen.1.position-cmd
  29. newsig Zpos-cmd float
  30. linksp Zpos-cmd <= axis.2.motor-pos-cmd
  31. linksp Zpos-cmd => stepgen.2.position-cmd
  32.  
  33. # connect position feedback from step generators
  34. # to motion module
  35. newsig Xpos-fb float
  36. linksp Xpos-fb <= stepgen.0.position-fb
  37. linksp Xpos-fb => axis.0.motor-pos-fb
  38. newsig Ypos-fb float
  39. linksp Ypos-fb <= stepgen.1.position-fb
  40. linksp Ypos-fb => axis.1.motor-pos-fb
  41. newsig Zpos-fb float
  42. linksp Zpos-fb <= stepgen.2.position-fb
  43. linksp Zpos-fb => axis.2.motor-pos-fb
  44.  
  45. # connect enable signals for step generators
  46. newsig Xen bit
  47. linksp Xen <= axis.0.amp-enable-out
  48. linksp Xen => stepgen.0.enable
  49. newsig Yen bit
  50. linksp Yen <= axis.1.amp-enable-out
  51. linksp Yen => stepgen.1.enable
  52. newsig Zen bit
  53. linksp Zen <= axis.2.amp-enable-out
  54. linksp Zen => stepgen.2.enable
  55.  
  56. #connect axis driver enable to motion command
  57. newsig En1 bit
  58. #linksp En1 => motion.motion-inpos
  59. linksp En1 => motion.in-position
  60. #newsig Yen1 bit
  61. #linksp Yen1 => motion.in-position
  62. #newsig Zen1 bit
  63. #linksp Zen1 => motion.in-position
  64.  
  65. # connect signals to step pulse generator outputs
  66. newsig X_phaseA bit
  67. newsig X_phaseB bit
  68. newsig Y_phaseA bit
  69. newsig Y_phaseB bit
  70. newsig Z_phaseA bit
  71. newsig Z_phaseB bit
  72. linkps stepgen.0.phase-A X_phaseA
  73. linkps stepgen.0.phase-B X_phaseB
  74. linkps stepgen.1.phase-A Y_phaseA
  75. linkps stepgen.1.phase-B Y_phaseB
  76. linkps stepgen.2.phase-A Z_phaseA
  77. linkps stepgen.2.phase-B Z_phaseB
  78.  
  79. # set stepgen module scaling - get values from ini file
  80. setp stepgen.0.position-scale [AXIS_0]INPUT_SCALE
  81. setp stepgen.1.position-scale [AXIS_1]INPUT_SCALE
  82. setp stepgen.2.position-scale [AXIS_2]INPUT_SCALE
  83.  
  84. # set stepgen module velocity limits - get values from ini file
  85. setp stepgen.0.maxvel [AXIS_0]STEPGEN_MAXVEL
  86. setp stepgen.1.maxvel [AXIS_1]STEPGEN_MAXVEL
  87. setp stepgen.2.maxvel [AXIS_2]STEPGEN_MAXVEL
  88.  
  89. # set stepgen module accel limits - get values from ini file
  90. setp stepgen.0.maxaccel [AXIS_0]STEPGEN_MAXACCEL
  91. setp stepgen.1.maxaccel [AXIS_1]STEPGEN_MAXACCEL
  92. setp stepgen.2.maxaccel [AXIS_2]STEPGEN_MAXACCEL
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement