Guest User

Untitled

a guest
May 17th, 2016
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.20 KB | None | 0 0
  1. # Generated by PNCconf at Tue May 17 17:18:06 2016
  2. # If you make changes to this file, they will be
  3. # overwritten when you run PNCconf again
  4.  
  5. loadrt trivkins
  6. loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
  7. loadrt hostmot2
  8. loadrt hm2_pci config="firmware=hm2/5i23/SVST8_4.BIT num_encoders=4 num_pwmgens=4 num_stepgens=2"
  9. setp hm2_5i23.0.pwmgen.pwm_frequency 40000
  10. setp hm2_5i23.0.pwmgen.pdm_frequency 6000000
  11. setp hm2_5i23.0.watchdog.timeout_ns 5000000
  12. loadrt pid names=pid.x,pid.y,pid.z,pid.a,pid.s
  13.  
  14. addf hm2_5i23.0.read servo-thread
  15. addf motion-command-handler servo-thread
  16. addf motion-controller servo-thread
  17. addf pid.x.do-pid-calcs servo-thread
  18. addf pid.y.do-pid-calcs servo-thread
  19. addf pid.z.do-pid-calcs servo-thread
  20. addf pid.a.do-pid-calcs servo-thread
  21. addf pid.s.do-pid-calcs servo-thread
  22. addf hm2_5i23.0.write servo-thread
  23.  
  24. # external output signals
  25.  
  26. # --- COOLANT-FLOOD ---
  27. setp hm2_5i23.0.gpio.041.is_output true
  28. net coolant-flood hm2_5i23.0.gpio.041.out
  29.  
  30. # external input signals
  31.  
  32. # --- PROBE-IN ---
  33. net probe-in <= hm2_5i23.0.gpio.039.in
  34.  
  35. #*******************
  36. # AXIS X
  37. #*******************
  38.  
  39. setp pid.x.Pgain [AXIS_0]P
  40. setp pid.x.Igain [AXIS_0]I
  41. setp pid.x.Dgain [AXIS_0]D
  42. setp pid.x.bias [AXIS_0]BIAS
  43. setp pid.x.FF0 [AXIS_0]FF0
  44. setp pid.x.FF1 [AXIS_0]FF1
  45. setp pid.x.FF2 [AXIS_0]FF2
  46. setp pid.x.deadband [AXIS_0]DEADBAND
  47. setp pid.x.maxoutput [AXIS_0]MAX_OUTPUT
  48. setp pid.x.error-previous-target true
  49.  
  50. net x-index-enable <=> pid.x.index-enable
  51. net x-enable => pid.x.enable
  52. net x-pos-cmd => pid.x.command
  53. net x-vel-cmd => pid.x.command-deriv
  54. net x-pos-fb => pid.x.feedback
  55. net x-output => pid.x.output
  56.  
  57. # ---PWM Generator signals/setup---
  58.  
  59. setp hm2_5i23.0.pwmgen.03.output-type 1
  60. setp hm2_5i23.0.pwmgen.03.scale [AXIS_0]OUTPUT_SCALE
  61.  
  62. net x-output => hm2_5i23.0.pwmgen.03.value
  63. net x-pos-cmd axis.0.motor-pos-cmd
  64. net x-enable axis.0.amp-enable-out => hm2_5i23.0.pwmgen.03.enable
  65.  
  66. # ---Encoder feedback signals/setup---
  67.  
  68. setp hm2_5i23.0.encoder.03.counter-mode 0
  69. setp hm2_5i23.0.encoder.03.filter 1
  70. setp hm2_5i23.0.encoder.03.index-invert 0
  71. setp hm2_5i23.0.encoder.03.index-mask 0
  72. setp hm2_5i23.0.encoder.03.index-mask-invert 0
  73. setp hm2_5i23.0.encoder.03.scale [AXIS_0]ENCODER_SCALE
  74.  
  75. net x-pos-fb <= hm2_5i23.0.encoder.03.position
  76. net x-vel-fb <= hm2_5i23.0.encoder.03.velocity
  77. net x-pos-fb => axis.0.motor-pos-fb
  78. net x-index-enable axis.0.index-enable <=> hm2_5i23.0.encoder.03.index-enable
  79. net x-pos-rawcounts <= hm2_5i23.0.encoder.03.rawcounts
  80.  
  81. # ---setup home / limit switch signals---
  82.  
  83. net x-home-sw => axis.0.home-sw-in
  84. net x-neg-limit => axis.0.neg-lim-sw-in
  85. net x-pos-limit => axis.0.pos-lim-sw-in
  86.  
  87. #*******************
  88. # AXIS Y
  89. #*******************
  90.  
  91. setp pid.y.Pgain [AXIS_1]P
  92. setp pid.y.Igain [AXIS_1]I
  93. setp pid.y.Dgain [AXIS_1]D
  94. setp pid.y.bias [AXIS_1]BIAS
  95. setp pid.y.FF0 [AXIS_1]FF0
  96. setp pid.y.FF1 [AXIS_1]FF1
  97. setp pid.y.FF2 [AXIS_1]FF2
  98. setp pid.y.deadband [AXIS_1]DEADBAND
  99. setp pid.y.maxoutput [AXIS_1]MAX_OUTPUT
  100. setp pid.y.error-previous-target true
  101.  
  102. net y-index-enable <=> pid.y.index-enable
  103. net y-enable => pid.y.enable
  104. net y-pos-cmd => pid.y.command
  105. net y-vel-cmd => pid.y.command-deriv
  106. net y-pos-fb => pid.y.feedback
  107. net y-output => pid.y.output
  108.  
  109. # ---PWM Generator signals/setup---
  110.  
  111. setp hm2_5i23.0.pwmgen.01.output-type 1
  112. setp hm2_5i23.0.pwmgen.01.scale [AXIS_1]OUTPUT_SCALE
  113.  
  114. net y-output => hm2_5i23.0.pwmgen.01.value
  115. net y-pos-cmd axis.1.motor-pos-cmd
  116. net y-enable axis.1.amp-enable-out => hm2_5i23.0.pwmgen.01.enable
  117.  
  118. # ---Encoder feedback signals/setup---
  119.  
  120. setp hm2_5i23.0.encoder.01.counter-mode 0
  121. setp hm2_5i23.0.encoder.01.filter 1
  122. setp hm2_5i23.0.encoder.01.index-invert 0
  123. setp hm2_5i23.0.encoder.01.index-mask 0
  124. setp hm2_5i23.0.encoder.01.index-mask-invert 0
  125. setp hm2_5i23.0.encoder.01.scale [AXIS_1]ENCODER_SCALE
  126.  
  127. net y-pos-fb <= hm2_5i23.0.encoder.01.position
  128. net y-vel-fb <= hm2_5i23.0.encoder.01.velocity
  129. net y-pos-fb => axis.1.motor-pos-fb
  130. net y-index-enable axis.1.index-enable <=> hm2_5i23.0.encoder.01.index-enable
  131. net y-pos-rawcounts <= hm2_5i23.0.encoder.01.rawcounts
  132.  
  133. # ---setup home / limit switch signals---
  134.  
  135. net y-home-sw => axis.1.home-sw-in
  136. net y-neg-limit => axis.1.neg-lim-sw-in
  137. net y-pos-limit => axis.1.pos-lim-sw-in
  138.  
  139. #*******************
  140. # AXIS Z
  141. #*******************
  142.  
  143. setp pid.z.Pgain [AXIS_2]P
  144. setp pid.z.Igain [AXIS_2]I
  145. setp pid.z.Dgain [AXIS_2]D
  146. setp pid.z.bias [AXIS_2]BIAS
  147. setp pid.z.FF0 [AXIS_2]FF0
  148. setp pid.z.FF1 [AXIS_2]FF1
  149. setp pid.z.FF2 [AXIS_2]FF2
  150. setp pid.z.deadband [AXIS_2]DEADBAND
  151. setp pid.z.maxoutput [AXIS_2]MAX_OUTPUT
  152. setp pid.z.error-previous-target true
  153.  
  154. net z-index-enable <=> pid.z.index-enable
  155. net z-enable => pid.z.enable
  156. net z-pos-cmd => pid.z.command
  157. net z-vel-cmd => pid.z.command-deriv
  158. net z-pos-fb => pid.z.feedback
  159. net z-output => pid.z.output
  160.  
  161. # ---PWM Generator signals/setup---
  162.  
  163. setp hm2_5i23.0.pwmgen.00.output-type 1
  164. setp hm2_5i23.0.pwmgen.00.scale [AXIS_2]OUTPUT_SCALE
  165.  
  166. net z-output => hm2_5i23.0.pwmgen.00.value
  167. net z-pos-cmd axis.2.motor-pos-cmd
  168. net z-enable axis.2.amp-enable-out => hm2_5i23.0.pwmgen.00.enable
  169.  
  170. # ---Encoder feedback signals/setup---
  171.  
  172. setp hm2_5i23.0.encoder.02.counter-mode 0
  173. setp hm2_5i23.0.encoder.02.filter 1
  174. setp hm2_5i23.0.encoder.02.index-invert 0
  175. setp hm2_5i23.0.encoder.02.index-mask 0
  176. setp hm2_5i23.0.encoder.02.index-mask-invert 0
  177. setp hm2_5i23.0.encoder.02.scale [AXIS_2]ENCODER_SCALE
  178.  
  179. net z-pos-fb <= hm2_5i23.0.encoder.02.position
  180. net z-vel-fb <= hm2_5i23.0.encoder.02.velocity
  181. net z-pos-fb => axis.2.motor-pos-fb
  182. net z-index-enable axis.2.index-enable <=> hm2_5i23.0.encoder.02.index-enable
  183. net z-pos-rawcounts <= hm2_5i23.0.encoder.02.rawcounts
  184.  
  185. # ---setup home / limit switch signals---
  186.  
  187. net z-home-sw => axis.2.home-sw-in
  188. net z-neg-limit => axis.2.neg-lim-sw-in
  189. net z-pos-limit => axis.2.pos-lim-sw-in
  190.  
  191. #*******************
  192. # AXIS A
  193. #*******************
  194.  
  195. setp pid.a.Pgain [AXIS_3]P
  196. setp pid.a.Igain [AXIS_3]I
  197. setp pid.a.Dgain [AXIS_3]D
  198. setp pid.a.bias [AXIS_3]BIAS
  199. setp pid.a.FF0 [AXIS_3]FF0
  200. setp pid.a.FF1 [AXIS_3]FF1
  201. setp pid.a.FF2 [AXIS_3]FF2
  202. setp pid.a.deadband [AXIS_3]DEADBAND
  203. setp pid.a.maxoutput [AXIS_3]MAX_OUTPUT
  204. setp pid.a.error-previous-target true
  205. setp pid.a.maxerror .0005
  206.  
  207. net a-index-enable <=> pid.a.index-enable
  208. net a-enable => pid.a.enable
  209. net a-pos-cmd => pid.a.command
  210. net a-vel-cmd => pid.a.command-deriv
  211. net a-pos-fb => pid.a.feedback
  212. net a-output => pid.a.output
  213.  
  214. # Step Gen signals/setup
  215.  
  216. setp hm2_5i23.0.stepgen.01.dirsetup [AXIS_3]DIRSETUP
  217. setp hm2_5i23.0.stepgen.01.dirhold [AXIS_3]DIRHOLD
  218. setp hm2_5i23.0.stepgen.01.steplen [AXIS_3]STEPLEN
  219. setp hm2_5i23.0.stepgen.01.stepspace [AXIS_3]STEPSPACE
  220. setp hm2_5i23.0.stepgen.01.position-scale [AXIS_3]STEP_SCALE
  221. setp hm2_5i23.0.stepgen.01.step_type 0
  222. setp hm2_5i23.0.stepgen.01.control-type 1
  223. setp hm2_5i23.0.stepgen.01.maxaccel [AXIS_3]STEPGEN_MAXACCEL
  224. setp hm2_5i23.0.stepgen.01.maxvel [AXIS_3]STEPGEN_MAXVEL
  225.  
  226. # ---closedloop stepper signals---
  227.  
  228. net a-pos-cmd <= axis.3.motor-pos-cmd
  229. net a-vel-cmd <= axis.3.joint-vel-cmd
  230. net a-output <= hm2_5i23.0.stepgen.01.velocity-cmd
  231. net a-pos-fb <= hm2_5i23.0.stepgen.01.position-fb
  232. net a-pos-fb => axis.3.motor-pos-fb
  233. net a-enable <= axis.3.amp-enable-out
  234. net a-enable => hm2_5i23.0.stepgen.01.enable
  235.  
  236. # ---setup home / limit switch signals---
  237.  
  238. net a-home-sw => axis.3.home-sw-in
  239. net a-neg-limit => axis.3.neg-lim-sw-in
  240. net a-pos-limit => axis.3.pos-lim-sw-in
  241.  
  242. #*******************
  243. # SPINDLE S
  244. #*******************
  245.  
  246. setp pid.s.Pgain [SPINDLE_9]P
  247. setp pid.s.Igain [SPINDLE_9]I
  248. setp pid.s.Dgain [SPINDLE_9]D
  249. setp pid.s.bias [SPINDLE_9]BIAS
  250. setp pid.s.FF0 [SPINDLE_9]FF0
  251. setp pid.s.FF1 [SPINDLE_9]FF1
  252. setp pid.s.FF2 [SPINDLE_9]FF2
  253. setp pid.s.deadband [SPINDLE_9]DEADBAND
  254. setp pid.s.maxoutput [SPINDLE_9]MAX_OUTPUT
  255. setp pid.s.error-previous-target true
  256.  
  257. net spindle-index-enable <=> pid.s.index-enable
  258. net spindle-enable => pid.s.enable
  259. net spindle-vel-cmd-rpm => pid.s.command
  260. net spindle-vel-fb-rpm => pid.s.feedback
  261. net spindle-output <= pid.s.output
  262.  
  263. # ---setup spindle control signals---
  264.  
  265. net spindle-vel-cmd-rps <= motion.spindle-speed-out-rps
  266. net spindle-vel-cmd-rps-abs <= motion.spindle-speed-out-rps-abs
  267. net spindle-vel-cmd-rpm <= motion.spindle-speed-out
  268. net spindle-vel-cmd-rpm-abs <= motion.spindle-speed-out-abs
  269. net spindle-enable <= motion.spindle-on
  270. net spindle-cw <= motion.spindle-forward
  271. net spindle-ccw <= motion.spindle-reverse
  272. net spindle-brake <= motion.spindle-brake
  273. net spindle-revs => motion.spindle-revs
  274. net spindle-at-speed => motion.spindle-at-speed
  275. net spindle-vel-fb-rps => motion.spindle-speed-in
  276. net spindle-index-enable <=> motion.spindle-index-enable
  277.  
  278. # ---Setup spindle at speed signals---
  279.  
  280. sets spindle-at-speed true
  281.  
  282.  
  283. #******************************
  284. # connect miscellaneous signals
  285. #******************************
  286.  
  287. # ---HALUI signals---
  288.  
  289. net joint-select-a halui.joint.0.select
  290. net x-is-homed halui.joint.0.is-homed
  291. net jog-x-pos halui.jog.0.plus
  292. net jog-x-neg halui.jog.0.minus
  293. net jog-x-analog halui.jog.0.analog
  294. net joint-select-b halui.joint.1.select
  295. net y-is-homed halui.joint.1.is-homed
  296. net jog-y-pos halui.jog.1.plus
  297. net jog-y-neg halui.jog.1.minus
  298. net jog-y-analog halui.jog.1.analog
  299. net joint-select-c halui.joint.2.select
  300. net z-is-homed halui.joint.2.is-homed
  301. net jog-z-pos halui.jog.2.plus
  302. net jog-z-neg halui.jog.2.minus
  303. net jog-z-analog halui.jog.2.analog
  304. net joint-select-d halui.joint.3.select
  305. net a-is-homed halui.joint.3.is-homed
  306. net jog-a-pos halui.jog.3.plus
  307. net jog-a-neg halui.jog.3.minus
  308. net jog-a-analog halui.jog.3.analog
  309. net jog-selected-pos halui.jog.selected.plus
  310. net jog-selected-neg halui.jog.selected.minus
  311. net spindle-manual-cw halui.spindle.forward
  312. net spindle-manual-ccw halui.spindle.reverse
  313. net spindle-manual-stop halui.spindle.stop
  314. net machine-is-on halui.machine.is-on
  315. net jog-speed halui.jog-speed
  316. net MDI-mode halui.mode.is-mdi
  317.  
  318. # ---coolant signals---
  319.  
  320. net coolant-mist <= iocontrol.0.coolant-mist
  321. net coolant-flood <= iocontrol.0.coolant-flood
  322.  
  323. # ---probe signal---
  324.  
  325. net probe-in => motion.probe-input
  326.  
  327. # ---motion control signals---
  328.  
  329. net in-position <= motion.in-position
  330. net machine-is-enabled <= motion.motion-enabled
  331.  
  332. # ---digital in / out signals---
  333.  
  334. # ---estop signals---
  335.  
  336. net estop-out <= iocontrol.0.user-enable-out
  337. net estop-out => iocontrol.0.emc-enable-in
  338.  
  339. # ---manual tool change signals---
  340.  
  341. loadusr -W hal_manualtoolchange
  342. net tool-change-request iocontrol.0.tool-change => hal_manualtoolchange.change
  343. net tool-change-confirmed iocontrol.0.tool-changed <= hal_manualtoolchange.changed
  344. net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
  345. net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
Advertisement
Add Comment
Please, Sign In to add comment