Advertisement
Guest User

Untitled

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