Advertisement
Guest User

Untitled

a guest
Mar 9th, 2014
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.27 KB | None | 0 0
  1. # Generated by PNCconf at Sat Apr 6 13:43:28 2013
  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_pci config=" num_encoders=6 num_pwmgens=0 num_3pwmgens=0 num_stepgens=0 sserial_port_0=000xxxxx "
  10. loadrt hm2_pci config=" num_encoders=6 num_pwmgens=0 num_3pwmgens=0 num_stepgens=0 sserial_port_0=30xxxxxx "
  11. setp hm2_5i25.0.watchdog.timeout_ns 10000000
  12. loadrt pid names=pid.x,pid.y,pid.z,pid.s
  13. loadrt abs names=abs.spindle,abs.spindle_out
  14. loadrt lowpass names=lowpass.spindle
  15. loadrt scale names=scale.spindle
  16. loadrt mux16 names=jogincr
  17. loadrt and2 names=and2.pdb
  18. loadusr -W wj200_vfd
  19.  
  20. addf hm2_5i25.0.read servo-thread
  21. addf motion-command-handler servo-thread
  22. addf motion-controller servo-thread
  23. addf pid.x.do-pid-calcs servo-thread
  24. addf pid.y.do-pid-calcs servo-thread
  25. addf pid.z.do-pid-calcs servo-thread
  26. addf pid.s.do-pid-calcs servo-thread
  27. addf jogincr servo-thread
  28. addf abs.spindle servo-thread
  29. addf abs.spindle_out servo-thread
  30. addf scale.spindle servo-thread
  31. addf lowpass.spindle servo-thread
  32. addf hm2_5i25.0.write servo-thread
  33. addf hm2_5i25.0.pet_watchdog servo-thread
  34. addf and2.pdb servo-thread
  35. # external output signals
  36.  
  37.  
  38. # --- COOLANT-FLOOD ---
  39. net coolant-flood hm2_5i25.0.7i77.0.0.output-00
  40.  
  41. # external input signals
  42.  
  43.  
  44. # --- ESTOP-EXT ---
  45. net estop-ext <= hm2_5i25.0.7i77.0.0.input-00
  46.  
  47. # --- HOME-X ---
  48. net home-x <= hm2_5i25.0.7i77.0.0.input-02
  49.  
  50. # --- HOME-Y ---
  51. net home-y <= hm2_5i25.0.7i77.0.0.input-01
  52.  
  53. # --- HOME-Z ---
  54. net home-z <= hm2_5i25.0.7i77.0.0.input-03
  55.  
  56. #*******************
  57. # AXIS X
  58. #*******************
  59.  
  60. setp pid.x.Pgain [AXIS_0]P
  61. setp pid.x.Igain [AXIS_0]I
  62. setp pid.x.Dgain [AXIS_0]D
  63. setp pid.x.bias [AXIS_0]BIAS
  64. setp pid.x.FF0 [AXIS_0]FF0
  65. setp pid.x.FF1 [AXIS_0]FF1
  66. setp pid.x.FF2 [AXIS_0]FF2
  67. setp pid.x.deadband [AXIS_0]DEADBAND
  68. setp pid.x.maxoutput [AXIS_0]MAX_OUTPUT
  69.  
  70. net x-index-enable <=> pid.x.index-enable
  71. net x-enable => pid.x.enable
  72. net x-output => pid.x.output
  73. net x-pos-cmd => pid.x.command
  74. net x-vel-fb => pid.x.feedback-deriv
  75. net x-pos-fb => pid.x.feedback
  76.  
  77. # ---PWM Generator signals/setup---
  78.  
  79. setp hm2_5i25.0.7i77.0.1.analogout0-scalemax [AXIS_0]OUTPUT_SCALE
  80. setp hm2_5i25.0.7i77.0.1.analogout0-minlim [AXIS_0]OUTPUT_MIN_LIMIT
  81. setp hm2_5i25.0.7i77.0.1.analogout0-maxlim [AXIS_0]OUTPUT_MAX_LIMIT
  82.  
  83. net x-output => hm2_5i25.0.7i77.0.1.analogout0
  84. net x-pos-cmd axis.0.motor-pos-cmd
  85. net x-enable axis.0.amp-enable-out
  86. # enable _all_ sserial pwmgens
  87. net x-enable hm2_5i25.0.7i77.0.1.analogena
  88.  
  89. # ---Encoder feedback signals/setup---
  90.  
  91. setp hm2_5i25.0.encoder.00.counter-mode 0
  92. setp hm2_5i25.0.encoder.00.filter 1
  93. setp hm2_5i25.0.encoder.00.index-invert 0
  94. setp hm2_5i25.0.encoder.00.index-mask 0
  95. setp hm2_5i25.0.encoder.00.index-mask-invert 0
  96. setp hm2_5i25.0.encoder.00.scale [AXIS_0]ENCODER_SCALE
  97.  
  98. net x-pos-fb <= hm2_5i25.0.encoder.00.position
  99. net x-vel-fb <= hm2_5i25.0.encoder.00.velocity
  100. net x-pos-fb => axis.0.motor-pos-fb
  101. net x-index-enable axis.0.index-enable <=> hm2_5i25.0.encoder.00.index-enable
  102. net x-pos-rawcounts <= hm2_5i25.0.encoder.00.rawcounts
  103.  
  104. # ---setup home / limit switch signals---
  105.  
  106. net home-x => axis.0.home-sw-in
  107. net x-neg-limit => axis.0.neg-lim-sw-in
  108. net x-pos-limit => axis.0.pos-lim-sw-in
  109.  
  110. #*******************
  111. # AXIS Y
  112. #*******************
  113.  
  114. setp pid.y.Pgain [AXIS_1]P
  115. setp pid.y.Igain [AXIS_1]I
  116. setp pid.y.Dgain [AXIS_1]D
  117. setp pid.y.bias [AXIS_1]BIAS
  118. setp pid.y.FF0 [AXIS_1]FF0
  119. setp pid.y.FF1 [AXIS_1]FF1
  120. setp pid.y.FF2 [AXIS_1]FF2
  121. setp pid.y.deadband [AXIS_1]DEADBAND
  122. setp pid.y.maxoutput [AXIS_1]MAX_OUTPUT
  123.  
  124. net y-index-enable <=> pid.y.index-enable
  125. net y-enable => pid.y.enable
  126. net y-output => pid.y.output
  127. net y-pos-cmd => pid.y.command
  128. net y-vel-fb => pid.y.feedback-deriv
  129. net y-pos-fb => pid.y.feedback
  130.  
  131. # ---PWM Generator signals/setup---
  132.  
  133. setp hm2_5i25.0.7i77.0.1.analogout1-scalemax [AXIS_1]OUTPUT_SCALE
  134. setp hm2_5i25.0.7i77.0.1.analogout1-minlim [AXIS_1]OUTPUT_MIN_LIMIT
  135. setp hm2_5i25.0.7i77.0.1.analogout1-maxlim [AXIS_1]OUTPUT_MAX_LIMIT
  136.  
  137. net y-output => hm2_5i25.0.7i77.0.1.analogout1
  138. net y-pos-cmd axis.1.motor-pos-cmd
  139. net y-enable axis.1.amp-enable-out
  140.  
  141. # ---Encoder feedback signals/setup---
  142.  
  143. setp hm2_5i25.0.encoder.01.counter-mode 0
  144. setp hm2_5i25.0.encoder.01.filter 1
  145. setp hm2_5i25.0.encoder.01.index-invert 0
  146. setp hm2_5i25.0.encoder.01.index-mask 0
  147. setp hm2_5i25.0.encoder.01.index-mask-invert 0
  148. setp hm2_5i25.0.encoder.01.scale [AXIS_1]ENCODER_SCALE
  149.  
  150. net y-pos-fb <= hm2_5i25.0.encoder.01.position
  151. net y-vel-fb <= hm2_5i25.0.encoder.01.velocity
  152. net y-pos-fb => axis.1.motor-pos-fb
  153. net y-index-enable axis.1.index-enable <=> hm2_5i25.0.encoder.01.index-enable
  154. net y-pos-rawcounts <= hm2_5i25.0.encoder.01.rawcounts
  155.  
  156. # ---setup home / limit switch signals---
  157.  
  158. net home-y => axis.1.home-sw-in
  159. net y-neg-limit => axis.1.neg-lim-sw-in
  160. net y-pos-limit => axis.1.pos-lim-sw-in
  161.  
  162. #*******************
  163. # AXIS Z
  164. #*******************
  165.  
  166. setp pid.z.Pgain [AXIS_2]P
  167. setp pid.z.Igain [AXIS_2]I
  168. setp pid.z.Dgain [AXIS_2]D
  169. setp pid.z.bias [AXIS_2]BIAS
  170. setp pid.z.FF0 [AXIS_2]FF0
  171. setp pid.z.FF1 [AXIS_2]FF1
  172. setp pid.z.FF2 [AXIS_2]FF2
  173. setp pid.z.deadband [AXIS_2]DEADBAND
  174. setp pid.z.maxoutput [AXIS_2]MAX_OUTPUT
  175.  
  176. net z-index-enable <=> pid.z.index-enable
  177. net z-enable => pid.z.enable
  178. net z-output => pid.z.output
  179. net z-pos-cmd => pid.z.command
  180. net z-vel-fb => pid.z.feedback-deriv
  181. net z-pos-fb => pid.z.feedback
  182.  
  183. # ---PWM Generator signals/setup---
  184.  
  185. setp hm2_5i25.0.7i77.0.1.analogout2-scalemax [AXIS_2]OUTPUT_SCALE
  186. setp hm2_5i25.0.7i77.0.1.analogout2-minlim [AXIS_2]OUTPUT_MIN_LIMIT
  187. setp hm2_5i25.0.7i77.0.1.analogout2-maxlim [AXIS_2]OUTPUT_MAX_LIMIT
  188.  
  189. net z-output => hm2_5i25.0.7i77.0.1.analogout2
  190. net z-pos-cmd axis.2.motor-pos-cmd
  191. net z-enable axis.2.amp-enable-out
  192.  
  193. # ---Encoder feedback signals/setup---
  194.  
  195. setp hm2_5i25.0.encoder.02.counter-mode 0
  196. setp hm2_5i25.0.encoder.02.filter 1
  197. setp hm2_5i25.0.encoder.02.index-invert 0
  198. setp hm2_5i25.0.encoder.02.index-mask 0
  199. setp hm2_5i25.0.encoder.02.index-mask-invert 0
  200. setp hm2_5i25.0.encoder.02.scale [AXIS_2]ENCODER_SCALE
  201.  
  202. net z-pos-fb <= hm2_5i25.0.encoder.02.position
  203. net z-vel-fb <= hm2_5i25.0.encoder.02.velocity
  204. net z-pos-fb => axis.2.motor-pos-fb
  205. net z-index-enable axis.2.index-enable <=> hm2_5i25.0.encoder.02.index-enable
  206. net z-pos-rawcounts <= hm2_5i25.0.encoder.02.rawcounts
  207.  
  208. # ---setup home / limit switch signals---
  209.  
  210. net home-z => axis.2.home-sw-in
  211. net z-neg-limit => axis.2.neg-lim-sw-in
  212. net z-pos-limit => axis.2.pos-lim-sw-in
  213.  
  214. #*******************
  215. # SPINDLE S
  216. #*******************
  217.  
  218. # ---PWM Generator signals/setup---
  219.  
  220. setp hm2_5i25.0.7i77.0.1.analogout5-scalemax [SPINDLE_9]OUTPUT_SCALE
  221. setp hm2_5i25.0.7i77.0.1.analogout5-minlim [SPINDLE_9]OUTPUT_MIN_LIMIT
  222. setp hm2_5i25.0.7i77.0.1.analogout5-maxlim [SPINDLE_9]OUTPUT_MAX_LIMIT
  223.  
  224.  
  225. #net spindle-vel-cmd => hm2_5i25.0.7i77.0.1.analogout5
  226. net spindle-vel-cmd => wj200-vfd.0.commanded_frequency
  227. #net machine-is-enabled => hm2_5i25.0.7i77.0.1.spinena
  228. net machine-is-enabled => wj200-vfd.0.enable
  229.  
  230. # ---Encoder feedback signals/setup---
  231.  
  232. setp hm2_5i25.0.encoder.05.counter-mode 0
  233. setp hm2_5i25.0.encoder.05.filter 1
  234. setp hm2_5i25.0.encoder.05.index-invert 0
  235. setp hm2_5i25.0.encoder.05.index-mask 0
  236. setp hm2_5i25.0.encoder.05.index-mask-invert 0
  237. setp hm2_5i25.0.encoder.05.scale [SPINDLE_9]ENCODER_SCALE
  238. setp wj200-vfd.0.mbslaveaddr 1
  239.  
  240. net spindle-revs <= hm2_5i25.0.encoder.05.position
  241. net spindle-vel-fb <= hm2_5i25.0.encoder.05.velocity
  242. net spindle-index-enable <=> hm2_5i25.0.encoder.05.index-enable
  243.  
  244. # ---setup spindle control signals---
  245.  
  246. net spindle-vel-cmd-rps <= motion.spindle-speed-out-rps
  247. net spindle-vel-cmd <= abs.spindle_out.out
  248. net spindle-on wj200-vfd.0.run <= motion.spindle-on
  249. #net spindle-cw <=
  250. #net spindle-cw hm2_5i25.0.7i77.0.0.output-02 <= motion.spindle-forward
  251. #net spindle-ccw <= motion.spindle-reverse
  252. #net spindle-ccw hm2_5i25.0.7i77.0.0.output-01 <= motion.spindle-reverse
  253. net spindle-ccw wj200-vfd.0.reverse <= motion.spindle-reverse
  254. net spindle-brake <= motion.spindle-brake
  255. net spindle-revs => motion.spindle-revs
  256. net spindle-at-speed => motion.spindle-at-speed
  257. net spindle-vel-fb => motion.spindle-speed-in
  258. net spindle-index-enable <=> motion.spindle-index-enable
  259.  
  260. # ---Setup spindle at speed signals---
  261.  
  262. sets spindle-at-speed true
  263.  
  264. # Use ACTUAL spindle velocity from spindle encoder
  265. # spindle-velocity bounces around so we filter it with lowpass
  266. # spindle-velocity is signed so we use absolute component to remove sign
  267. # ACTUAL velocity is in RPS not RPM so we scale it.
  268.  
  269. setp scale.spindle.gain 60
  270. setp lowpass.spindle.gain 1.000000
  271. net spindle-vel-fb => lowpass.spindle.in
  272. net spindle-fb-filtered-rps lowpass.spindle.out => abs.spindle.in
  273. net spindle-fb-filtered-abs-rps abs.spindle.out => scale.spindle.in
  274. net spindle-fb-filtered-abs-rpm scale.spindle.out
  275. net spindle-out-abs motion.spindle-speed-out => abs.spindle_out.in
  276.  
  277.  
  278. #******************************
  279. # connect miscellaneous signals
  280. #******************************
  281.  
  282. # ---HALUI signals---
  283.  
  284. net joint-select-a halui.joint.0.select
  285. net x-is-homed halui.joint.0.is-homed
  286. net jog-x-pos halui.jog.0.plus
  287. net jog-x-neg halui.jog.0.minus
  288. net jog-x-analog halui.jog.0.analog
  289. net joint-select-b halui.joint.1.select
  290. net y-is-homed halui.joint.1.is-homed
  291. net jog-y-pos halui.jog.1.plus
  292. net jog-y-neg halui.jog.1.minus
  293. net jog-y-analog halui.jog.1.analog
  294. net joint-select-c halui.joint.2.select
  295. net z-is-homed halui.joint.2.is-homed
  296. net jog-z-pos halui.jog.2.plus
  297. net jog-z-neg halui.jog.2.minus
  298. net jog-z-analog halui.jog.2.analog
  299. net jog-selected-pos halui.jog.selected.plus
  300. net jog-selected-neg halui.jog.selected.minus
  301. net spindle-manual-cw halui.spindle.forward
  302. net spindle-manual-ccw halui.spindle.reverse
  303. net spindle-manual-stop halui.spindle.stop
  304. net machine-is-on halui.machine.is-on
  305. net jog-speed halui.jog-speed
  306. net MDI-mode halui.mode.is-mdi
  307.  
  308. # ---coolant signals---
  309.  
  310. net coolant-mist <= iocontrol.0.coolant-mist
  311. net coolant-flood <= iocontrol.0.coolant-flood
  312.  
  313. # ---probe signal---
  314.  
  315. net probe-in => motion.probe-input
  316.  
  317. # ---jogwheel signals to mesa encoder - shared MPG---
  318.  
  319. net joint-selected-count <= hm2_5i25.0.7i77.0.0.enc0.count
  320. setp hm2_5i25.0.encoder.04.filter true
  321. setp hm2_5i25.0.encoder.04.counter-mode true
  322.  
  323. # ---mpg signals---
  324.  
  325. # for axis x MPG
  326. setp axis.0.jog-vel-mode 0
  327. #net selected-jog-incr => axis.0.jog-scale
  328. #net joint-select-a => axis.0.jog-enable
  329. net joint-selected-count => axis.0.jog-counts
  330.  
  331. # for axis y MPG
  332. setp axis.1.jog-vel-mode 0
  333. #net selected-jog-incr => axis.1.jog-scale
  334. #net joint-select-b => axis.1.jog-enable
  335. net joint-selected-count => axis.1.jog-counts
  336.  
  337. # for axis z MPG
  338. setp axis.2.jog-vel-mode 0
  339. #net selected-jog-incr => axis.2.jog-scale
  340. #net joint-select-c => axis.2.jog-enable
  341. net joint-selected-count => axis.2.jog-counts
  342.  
  343.  
  344. #sets selected-jog-incr 0.000000
  345.  
  346. # ---motion control signals---
  347.  
  348. net in-position <= motion.in-position
  349. net machine-is-enabled <= motion.motion-enabled
  350.  
  351. # ---digital in / out signals---
  352.  
  353. # ---estop signals---
  354.  
  355. net estop-out <= iocontrol.0.user-enable-out
  356. net estop-ext => iocontrol.0.emc-enable-in
  357.  
  358. # ---manual tool change signals---
  359.  
  360. loadusr -W hal_manualtoolchange
  361. net tool-change-request iocontrol.0.tool-change => hal_manualtoolchange.change
  362. net tool-change-confirmed iocontrol.0.tool-changed <= hal_manualtoolchange.changed
  363. net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
  364. net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
  365.  
  366. #### Power Draw Bar
  367.  
  368.  
  369. net pdb-in1 and2.pdb.in0 <= hm2_5i25.0.7i77.0.0.input-05 # Draw bar Button Input
  370. net pdb-in2 and2.pdb.in1 <= hm2_5i25.0.7i77.0.0.input-06 # VFD Run Sig Input
  371. net draw_bar hm2_5i25.0.7i77.0.0.output-12 <= and2.pdb.out # Output to Relay
  372.  
  373. ######
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement