Guest User

Untitled

a guest
Sep 23rd, 2011
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.50 KB | None | 0 0
  1. # Generated by PNCconf at Tue Sep 6 13:03:09 2011
  2. # If you make changes to this file, they will be
  3. # overwritten when you run PNCconf again
  4.  
  5. #----See kinematics.hal file-----
  6. #loadrt trivkins
  7. #loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
  8.  
  9. loadrt probe_parport
  10. loadrt hostmot2
  11. loadrt hm2_7i43 config="firmware=hm2/7i43-4/SVST4_4t.BIT num_encoders=4 num_pwmgens=1 num_stepgens=4"
  12. #---PWMGEN is our charge pump waveform---
  13. setp hm2_7i43.0.pwmgen.pwm_frequency 5000
  14. setp hm2_7i43.0.watchdog.timeout_ns 10000000
  15. loadrt abs names=abs.spindle
  16. loadrt near
  17. #loadrt lowpass names=
  18. #
  19. # ---The (two) and2 and (one) or2 are used for Estop button operation---
  20. loadrt and2 count=2
  21. loadrt or2 count=1
  22.  
  23. addf hm2_7i43.0.read servo-thread
  24. addf motion-command-handler servo-thread
  25. addf motion-controller servo-thread
  26. #---Must add the (two) and2's and (one) or2 to the servo thread
  27. addf and2.0 servo-thread
  28. addf and2.1 servo-thread
  29. addf or2.0 servo-thread
  30.  
  31. loadrt pid num_chan=4
  32. addf pid.0.do-pid-calcs servo-thread
  33. addf pid.1.do-pid-calcs servo-thread
  34. addf pid.2.do-pid-calcs servo-thread
  35. addf pid.3.do-pid-calcs servo-thread
  36.  
  37. alias pin pid.0.Pgain pid.x.Pgain
  38. alias pin pid.0.Igain pid.x.Igain
  39. alias pin pid.0.Dgain pid.x.Dgain
  40. alias pin pid.0.bias pid.x.bias
  41. alias pin pid.0.FF0 pid.x.FF0
  42. alias pin pid.0.FF1 pid.x.FF1
  43. alias pin pid.0.FF2 pid.x.FF2
  44. alias pin pid.0.deadband pid.x.deadband
  45. alias pin pid.0.maxoutput pid.x.maxoutput
  46. alias pin pid.0.enable pid.x.enable
  47. alias pin pid.0.command pid.x.command
  48. alias pin pid.0.feedback pid.x.feedback
  49. alias pin pid.0.output pid.x.output
  50. alias pin pid.0.index-enable pid.x.index-enable
  51.  
  52. alias pin pid.1.Pgain pid.y.Pgain
  53. alias pin pid.1.Igain pid.y.Igain
  54. alias pin pid.1.Dgain pid.y.Dgain
  55. alias pin pid.1.bias pid.y.bias
  56. alias pin pid.1.FF0 pid.y.FF0
  57. alias pin pid.1.FF1 pid.y.FF1
  58. alias pin pid.1.FF2 pid.y.FF2
  59. alias pin pid.1.deadband pid.y.deadband
  60. alias pin pid.1.maxoutput pid.y.maxoutput
  61. alias pin pid.1.enable pid.y.enable
  62. alias pin pid.1.command pid.y.command
  63. alias pin pid.1.feedback pid.y.feedback
  64. alias pin pid.1.output pid.y.output
  65. alias pin pid.1.index-enable pid.y.index-enable
  66.  
  67. alias pin pid.2.Pgain pid.z.Pgain
  68. alias pin pid.2.Igain pid.z.Igain
  69. alias pin pid.2.Dgain pid.z.Dgain
  70. alias pin pid.2.bias pid.z.bias
  71. alias pin pid.2.FF0 pid.z.FF0
  72. alias pin pid.2.FF1 pid.z.FF1
  73. alias pin pid.2.FF2 pid.z.FF2
  74. alias pin pid.2.deadband pid.z.deadband
  75. alias pin pid.2.maxoutput pid.z.maxoutput
  76. alias pin pid.2.enable pid.z.enable
  77. alias pin pid.2.command pid.z.command
  78. alias pin pid.2.feedback pid.z.feedback
  79. alias pin pid.2.output pid.z.output
  80. alias pin pid.2.index-enable pid.z.index-enable
  81.  
  82. alias pin pid.3.Pgain pid.a.Pgain
  83. alias pin pid.3.Igain pid.a.Igain
  84. alias pin pid.3.Dgain pid.a.Dgain
  85. alias pin pid.3.bias pid.a.bias
  86. alias pin pid.3.FF0 pid.a.FF0
  87. alias pin pid.3.FF1 pid.a.FF1
  88. alias pin pid.3.FF2 pid.a.FF2
  89. alias pin pid.3.deadband pid.a.deadband
  90. alias pin pid.3.maxoutput pid.a.maxoutput
  91. alias pin pid.3.enable pid.a.enable
  92. alias pin pid.3.command pid.a.command
  93. alias pin pid.3.feedback pid.a.feedback
  94. alias pin pid.3.output pid.a.output
  95. alias pin pid.3.index-enable pid.a.index-enable
  96.  
  97. addf near.0 servo-thread
  98. addf hm2_7i43.0.write servo-thread
  99. addf hm2_7i43.0.pet_watchdog servo-thread
  100.  
  101. # external output signals
  102.  
  103. # --- SPINDLE-ENABLE ---
  104. #setp hm2_7i43.0.gpio.021.is_output true
  105. #net spindle-enable => hm2_7i43.0.gpio.021.out
  106. # --- COOLANT-FLOOD ---
  107. #setp hm2_7i43.0.gpio.022.is_output true
  108. #net coolant-flood => hm2_7i43.0.gpio.022.out
  109.  
  110. # external input signals
  111.  
  112. #***************************************************************
  113. # --- Estop Indication Section ---
  114. setp hm2_7i43.0.gpio.023.is_output false
  115.  
  116. net estop-sw-btn and2.0.in0 <= iocontrol.0.user-enable-out
  117. net estop-hw-btn and2.0.in1 <= hm2_7i43.0.gpio.023.in_not
  118.  
  119. # ---- emc-enable-in is enabling software to run ---
  120. # ---- user-request-enable is momentary press of software estop button----
  121. net system-enable or2.0.in0 <= iocontrol.0.emc-enable-in
  122. net var2 or2.0.in1 <= iocontrol.0.user-request-enable
  123. net var3 and2.1.in0 <= and2.0.out
  124. net var4 and2.1.in1 <= or2.0.out
  125.  
  126. net system-enable iocontrol.0.emc-enable-in <= and2.1.out
  127. # --- End of Estop Indication Section ---
  128. #***************************************************************
  129.  
  130.  
  131. #*******************
  132. # AXIS X
  133. #*******************
  134.  
  135. # Step Gen signals/setup
  136.  
  137. setp hm2_7i43.0.stepgen.00.dirsetup [AXIS_0]DIRSETUP
  138. setp hm2_7i43.0.stepgen.00.dirhold [AXIS_0]DIRHOLD
  139. setp hm2_7i43.0.stepgen.00.steplen [AXIS_0]STEPLEN
  140. setp hm2_7i43.0.stepgen.00.stepspace [AXIS_0]STEPSPACE
  141. setp hm2_7i43.0.stepgen.00.position-scale [AXIS_0]SCALE
  142. setp hm2_7i43.0.stepgen.00.maxaccel [AXIS_0]MAX_ACCELERATION
  143. setp hm2_7i43.0.stepgen.00.maxvel [AXIS_0]MAX_VELOCITY
  144. setp hm2_7i43.0.stepgen.00.step_type 0
  145. setp hm2_7i43.0.stepgen.00.control-type 1
  146.  
  147. #net xpos-fb axis.0.motor-pos-fb <= hm2_7i43.0.stepgen.00.position-fb
  148. #net xpos-cmd axis.0.motor-pos-cmd => hm2_7i43.0.stepgen.00.position-cmd
  149. #net xenable axis.0.amp-enable-out => hm2_7i43.0.stepgen.00.enable
  150.  
  151. # ---PID signals/setup---
  152. setp pid.0.Pgain [AXIS_0]P
  153. setp pid.0.Igain [AXIS_0]I
  154. setp pid.0.Dgain [AXIS_0]D
  155. setp pid.0.bias [AXIS_0]BIAS
  156. setp pid.0.FF0 [AXIS_0]FF0
  157. setp pid.0.FF1 [AXIS_0]FF1
  158. setp pid.0.FF2 [AXIS_0]FF2
  159. setp pid.0.deadband [AXIS_0]DEADBAND
  160. setp pid.0.maxoutput [AXIS_0]MAX_OUTPUT
  161.  
  162. # ---Encoder feedback signals/setup---
  163.  
  164. setp hm2_7i43.0.encoder.00.counter-mode 0
  165. setp hm2_7i43.0.encoder.00.filter 1
  166. setp hm2_7i43.0.encoder.00.index-invert 0
  167. setp hm2_7i43.0.encoder.00.index-mask 0
  168. setp hm2_7i43.0.encoder.00.index-mask-invert 0
  169. setp hm2_7i43.0.encoder.00.scale [AXIS_0]INPUT_SCALE
  170.  
  171. net X.pos-fb axis.0.motor-pos-fb <= hm2_7i43.0.encoder.00.position => pid.0.feedback
  172. net X.pos-cmd axis.0.motor-pos-cmd => pid.0.command
  173. net X.enable axis.0.amp-enable-out => hm2_7i43.0.stepgen.00.enable => pid.0.enable
  174. net X.pos-out pid.0.output => hm2_7i43.0.stepgen.00.velocity-cmd
  175.  
  176. net x-index-enable axis.0.index-enable <=> hm2_7i43.0.encoder.00.index-enable
  177.  
  178. # ---setup home / limit switch signals---
  179.  
  180. #net x-home-sw => axis.0.home-sw-in
  181. #net x-neg-limit => axis.0.neg-lim-sw-in
  182. #net x-pos-limit => axis.0.pos-lim-sw-in
  183.  
  184. #*******************
  185. # AXIS Y
  186. #*******************
  187.  
  188. # Step Gen signals/setup
  189.  
  190. setp hm2_7i43.0.stepgen.01.dirsetup [AXIS_1]DIRSETUP
  191. setp hm2_7i43.0.stepgen.01.dirhold [AXIS_1]DIRHOLD
  192. setp hm2_7i43.0.stepgen.01.steplen [AXIS_1]STEPLEN
  193. setp hm2_7i43.0.stepgen.01.stepspace [AXIS_1]STEPSPACE
  194. setp hm2_7i43.0.stepgen.01.position-scale [AXIS_1]SCALE
  195. setp hm2_7i43.0.stepgen.01.maxaccel [AXIS_1]MAX_ACCELERATION
  196. setp hm2_7i43.0.stepgen.01.maxvel [AXIS_1]MAX_VELOCITY
  197. setp hm2_7i43.0.stepgen.01.step_type 0
  198. setp hm2_7i43.0.stepgen.01.control-type 1
  199.  
  200. #net ypos-fb axis.1.motor-pos-fb <= hm2_7i43.0.stepgen.01.position-fb
  201. #net ypos-cmd axis.1.motor-pos-cmd => hm2_7i43.0.stepgen.01.position-cmd
  202. #net yenable axis.1.amp-enable-out => hm2_7i43.0.stepgen.01.enable
  203.  
  204. # ---PID signals/setup---
  205. setp pid.1.Pgain [AXIS_1]P
  206. setp pid.1.Igain [AXIS_1]I
  207. setp pid.1.Dgain [AXIS_1]D
  208. setp pid.1.bias [AXIS_1]BIAS
  209. setp pid.1.FF0 [AXIS_1]FF0
  210. setp pid.1.FF1 [AXIS_1]FF1
  211. setp pid.1.FF2 [AXIS_1]FF2
  212. setp pid.1.deadband [AXIS_1]DEADBAND
  213. setp pid.1.maxoutput [AXIS_1]MAX_OUTPUT
  214.  
  215. # ---Encoder feedback signals/setup---
  216.  
  217. setp hm2_7i43.0.encoder.01.counter-mode 0
  218. setp hm2_7i43.0.encoder.01.filter 1
  219. setp hm2_7i43.0.encoder.01.index-invert 0
  220. setp hm2_7i43.0.encoder.01.index-mask 0
  221. setp hm2_7i43.0.encoder.01.index-mask-invert 0
  222. setp hm2_7i43.0.encoder.01.scale [AXIS_1]INPUT_SCALE
  223.  
  224. #net ypos-fb <= hm2_7i43.0.encoder.01.position
  225. #net ypos-fb => pid.y.feedback
  226. #net ypos-fb => axis.1.motor-pos-fb
  227. #net y-index-enable axis.1.index-enable <=> hm2_7i43.0.encoder.01.index-enable
  228.  
  229. net Y.pos-fb axis.1.motor-pos-fb <= hm2_7i43.0.encoder.01.position => pid.1.feedback
  230. net Y.pos-cmd axis.1.motor-pos-cmd => pid.1.command
  231. net Y.enable axis.1.amp-enable-out => hm2_7i43.0.stepgen.01.enable => pid.1.enable
  232. net Y.pos-out pid.1.output => hm2_7i43.0.stepgen.01.velocity-cmd
  233.  
  234. net y-index-enable axis.1.index-enable <=> hm2_7i43.0.encoder.01.index-enable
  235.  
  236.  
  237. # ---setup home / limit switch signals---
  238.  
  239. #net y-home-sw => axis.1.home-sw-in
  240. #net y-neg-limit => axis.1.neg-lim-sw-in
  241. #net y-pos-limit => axis.1.pos-lim-sw-in
  242.  
  243. #*******************
  244. # AXIS Z
  245. #*******************
  246.  
  247. # Step Gen signals/setup
  248.  
  249. setp hm2_7i43.0.stepgen.02.dirsetup [AXIS_2]DIRSETUP
  250. setp hm2_7i43.0.stepgen.02.dirhold [AXIS_2]DIRHOLD
  251. setp hm2_7i43.0.stepgen.02.steplen [AXIS_2]STEPLEN
  252. setp hm2_7i43.0.stepgen.02.stepspace [AXIS_2]STEPSPACE
  253. setp hm2_7i43.0.stepgen.02.position-scale [AXIS_2]SCALE
  254. setp hm2_7i43.0.stepgen.02.maxaccel [AXIS_2]MAX_ACCELERATION
  255. setp hm2_7i43.0.stepgen.02.maxvel [AXIS_2]MAX_VELOCITY
  256. setp hm2_7i43.0.stepgen.02.step_type 0
  257. setp hm2_7i43.0.stepgen.02.control-type 1
  258.  
  259. #net zpos-fb axis.2.motor-pos-fb <= hm2_7i43.0.stepgen.02.position-fb
  260. #net zpos-cmd axis.2.motor-pos-cmd => hm2_7i43.0.stepgen.02.position-cmd
  261. #net zenable axis.2.amp-enable-out => hm2_7i43.0.stepgen.02.enable
  262.  
  263. # ---PID signals/setup---
  264. setp pid.2.Pgain [AXIS_2]P
  265. setp pid.2.Igain [AXIS_2]I
  266. setp pid.2.Dgain [AXIS_2]D
  267. setp pid.2.bias [AXIS_2]BIAS
  268. setp pid.2.FF0 [AXIS_2]FF0
  269. setp pid.2.FF1 [AXIS_2]FF1
  270. setp pid.2.FF2 [AXIS_2]FF2
  271. setp pid.2.deadband [AXIS_2]DEADBAND
  272. setp pid.2.maxoutput [AXIS_2]MAX_OUTPUT
  273.  
  274. # ---Encoder feedback signals/setup---
  275.  
  276. setp hm2_7i43.0.encoder.02.counter-mode 0
  277. setp hm2_7i43.0.encoder.02.filter 1
  278. setp hm2_7i43.0.encoder.02.index-invert 0
  279. setp hm2_7i43.0.encoder.02.index-mask 0
  280. setp hm2_7i43.0.encoder.02.index-mask-invert 0
  281. setp hm2_7i43.0.encoder.02.scale [AXIS_2]INPUT_SCALE
  282.  
  283. #net zpos-fb <= hm2_7i43.0.encoder.02.position
  284. #net zpos-fb => pid.z.feedback
  285. #net zpos-fb => axis.2.motor-pos-fb
  286. #net z-index-enable axis.2.index-enable <=> hm2_7i43.0.encoder.02.index-enable
  287.  
  288. net Z.pos-fb axis.2.motor-pos-fb <= hm2_7i43.0.encoder.02.position => pid.2.feedback
  289. net Z.pos-cmd axis.2.motor-pos-cmd => pid.2.command
  290. net Z.enable axis.2.amp-enable-out => hm2_7i43.0.stepgen.02.enable => pid.2.enable
  291. net Z.pos-out pid.2.output => hm2_7i43.0.stepgen.02.velocity-cmd
  292.  
  293. net z-index-enable axis.2.index-enable <=> hm2_7i43.0.encoder.02.index-enable
  294.  
  295.  
  296. # ---setup home / limit switch signals---
  297.  
  298. #net z-home-sw => axis.2.home-sw-in
  299. #net z-neg-limit => axis.2.neg-lim-sw-in
  300. #net z-pos-limit => axis.2.pos-lim-sw-in
  301.  
  302. #*******************
  303. # AXIS Y2
  304. #*******************
  305.  
  306. # Step Gen signals/setup
  307.  
  308. setp hm2_7i43.0.stepgen.03.dirsetup [AXIS_3]DIRSETUP
  309. setp hm2_7i43.0.stepgen.03.dirhold [AXIS_3]DIRHOLD
  310. setp hm2_7i43.0.stepgen.03.steplen [AXIS_3]STEPLEN
  311. setp hm2_7i43.0.stepgen.03.stepspace [AXIS_3]STEPSPACE
  312. setp hm2_7i43.0.stepgen.03.position-scale [AXIS_3]SCALE
  313. setp hm2_7i43.0.stepgen.03.maxaccel [AXIS_3]MAX_ACCELERATION
  314. setp hm2_7i43.0.stepgen.03.maxvel [AXIS_3]MAX_VELOCITY
  315. setp hm2_7i43.0.stepgen.03.step_type 0
  316. setp hm2_7i43.0.stepgen.03.control-type 1
  317.  
  318. #net vpos-fb axis.3.motor-pos-fb <= hm2_7i43.0.stepgen.03.position-fb
  319. #net vpos-cmd axis.3.motor-pos-cmd => hm2_7i43.0.stepgen.03.position-cmd
  320. #net venable axis.3.amp-enable-out => hm2_7i43.0.stepgen.03.enable
  321.  
  322. # ---PID signals/setup---
  323. setp pid.3.Pgain [AXIS_3]P
  324. setp pid.3.Igain [AXIS_3]I
  325. setp pid.3.Dgain [AXIS_3]D
  326. setp pid.3.bias [AXIS_3]BIAS
  327. setp pid.3.FF0 [AXIS_3]FF0
  328. setp pid.3.FF1 [AXIS_3]FF1
  329. setp pid.3.FF2 [AXIS_3]FF2
  330. setp pid.3.deadband [AXIS_3]DEADBAND
  331. setp pid.3.maxoutput [AXIS_3]MAX_OUTPUT
  332.  
  333.  
  334. # ---Encoder feedback signals/setup---
  335.  
  336. setp hm2_7i43.0.encoder.03.counter-mode 0
  337. setp hm2_7i43.0.encoder.03.filter 1
  338. setp hm2_7i43.0.encoder.03.index-invert 0
  339. setp hm2_7i43.0.encoder.03.index-mask 0
  340. setp hm2_7i43.0.encoder.03.index-mask-invert 0
  341. setp hm2_7i43.0.encoder.03.scale [AXIS_3]INPUT_SCALE
  342.  
  343. #net apos-fb <= hm2_7i43.0.encoder.03.position
  344. #net apos-fb => pid.a.feedback
  345. #net apos-fb => axis.3.motor-pos-fb
  346. #net a-index-enable axis.3.index-enable <=> hm2_7i43.0.encoder.03.index-enable
  347.  
  348. net A.pos-fb axis.3.motor-pos-fb <= hm2_7i43.0.encoder.03.position => pid.3.feedback
  349. net A.pos-cmd axis.3.motor-pos-cmd => pid.3.command
  350. net A.enable axis.3.amp-enable-out => hm2_7i43.0.stepgen.03.enable => pid.3.enable
  351. net A.pos-out pid.3.output => hm2_7i43.0.stepgen.03.velocity-cmd
  352.  
  353. net a-index-enable axis.3.index-enable <=> hm2_7i43.0.encoder.03.index-enable
  354.  
  355.  
  356. # ---setup home / limit switch signals---
  357.  
  358. #net a-home-sw => axis.3.home-sw-in
  359. #net a-neg-limit => axis.3.neg-lim-sw-in
  360. #net a-pos-limit => axis.3.pos-lim-sw-in
  361.  
  362. #*******************
  363. # SPINDLE S
  364. #*******************
  365.  
  366. #***********************
  367. # CHARGE PUMP SIGNAL
  368. #***********************
  369.  
  370. # ---PWM Generator signals/setup---
  371.  
  372. setp hm2_7i43.0.pwmgen.00.output-type 1
  373. setp hm2_7i43.0.pwmgen.00.scale [CHARGEPUMP_0]OUTPUT_SCALE
  374. setp hm2_7i43.0.pwmgen.00.value [CHARGEPUMP_0]VALUE
  375.  
  376. net system-enable => hm2_7i43.0.pwmgen.00.enable
  377.  
  378.  
  379. # ---setup spindle control signals---
  380.  
  381. net spindle-vel-cmd-rps <= motion.spindle-speed-out-rps
  382. net spindle-vel-cmd <= motion.spindle-speed-out
  383. net spindle-enable <= motion.spindle-on
  384. net spindle-cw <= motion.spindle-forward
  385. net spindle-ccw <= motion.spindle-reverse
  386. net spindle-brake <= motion.spindle-brake
  387. net spindle-revs => motion.spindle-revs
  388. net spindle-at-speed => motion.spindle-at-speed
  389. net spindle-vel-fb => motion.spindle-speed-in
  390. net spindle-index-enable <=> motion.spindle-index-enable
  391.  
  392. # ---Setup spindle at speed signals---
  393.  
  394. sets spindle-at-speed true
  395.  
  396. #******************************
  397. # connect miscellaneous signals
  398. #******************************
  399.  
  400. # ---coolant signals---
  401.  
  402. net coolant-mist <= iocontrol.0.coolant-mist
  403. net coolant-flood <= iocontrol.0.coolant-flood
  404.  
  405. # ---probe signal---
  406.  
  407. net probe-in => motion.probe-input
  408.  
  409. # ---digital in / out signals---
  410.  
  411.  
  412. # ---manual tool change signals---
  413.  
  414. loadusr -W hal_manualtoolchange
  415. net tool-change-request iocontrol.0.tool-change => hal_manualtoolchange.change
  416. net tool-change-confirmed iocontrol.0.tool-changed <= hal_manualtoolchange.changed
  417. net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
  418. net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
Advertisement
Add Comment
Please, Sign In to add comment