Advertisement
Guest User

borked config?

a guest
Sep 20th, 2020
20
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.08 KB | None | 0 0
  1. # Generated by PNCconf at Sun Sep 20 13:55:52 2020
  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=" num_encoders=1 num_pwmgens=0 num_stepgens=5 sserial_port_0=20xxxx"
  9. setp hm2_5i25.0.watchdog.timeout_ns 5000000
  10. loadrt pid names=pid.x,pid.y,pid.z,pid.s
  11.  
  12. addf hm2_5i25.0.read servo-thread
  13. addf motion-command-handler servo-thread
  14. addf motion-controller servo-thread
  15. addf pid.x.do-pid-calcs servo-thread
  16. addf pid.y.do-pid-calcs servo-thread
  17. addf pid.z.do-pid-calcs servo-thread
  18. addf pid.s.do-pid-calcs servo-thread
  19. addf hm2_5i25.0.write servo-thread
  20.  
  21. #latching estop with multiple inputs
  22. loadrt estop_latch
  23. loadrt or2 count=1
  24. addf estop-latch.0 servo-thread
  25. addf or2.0 servo-thread
  26.  
  27. #to support mpg
  28. loadrt mux8 count=2
  29. addf mux8.0 servo-thread
  30.  
  31. # external output signals
  32.  
  33.  
  34. # external input signals
  35.  
  36.  
  37. # --- MIN-Z ---
  38. net min-z <= hm2_5i25.0.7i76.0.0.input-20-not
  39.  
  40. # --- MAX-Z ---
  41. net max-z <= hm2_5i25.0.7i76.0.0.input-21-not
  42.  
  43. # --- HOME-Z ---
  44. net home-z <= hm2_5i25.0.7i76.0.0.input-22-not
  45.  
  46. # --- BOTH-X ---
  47. net both-x <= hm2_5i25.0.7i76.0.0.input-23-not
  48.  
  49. # --- HOME-X ---
  50. net home-x <= hm2_5i25.0.7i76.0.0.input-24-not
  51.  
  52. # --- BOTH-Y ---
  53. net both-y <= hm2_5i25.0.7i76.0.0.input-25-not
  54.  
  55. # --- HOME-Y ---
  56. net home-y <= hm2_5i25.0.7i76.0.0.input-26-not
  57.  
  58. #*******************
  59. # AXIS X
  60. #*******************
  61.  
  62. setp pid.x.Pgain [AXIS_0]P
  63. setp pid.x.Igain [AXIS_0]I
  64. setp pid.x.Dgain [AXIS_0]D
  65. setp pid.x.bias [AXIS_0]BIAS
  66. setp pid.x.FF0 [AXIS_0]FF0
  67. setp pid.x.FF1 [AXIS_0]FF1
  68. setp pid.x.FF2 [AXIS_0]FF2
  69. setp pid.x.deadband [AXIS_0]DEADBAND
  70. setp pid.x.maxoutput [AXIS_0]MAX_OUTPUT
  71. setp pid.x.error-previous-target true
  72. setp pid.x.maxerror .0005
  73.  
  74.  
  75.  
  76. net x-index-enable <=> pid.x.index-enable
  77. net x-enable => pid.x.enable
  78. net x-pos-cmd => pid.x.command
  79. net x-vel-cmd => pid.x.command-deriv
  80. net x-pos-fb => pid.x.feedback
  81. net x-output => pid.x.output
  82.  
  83. # Step Gen signals/setup
  84.  
  85. setp hm2_5i25.0.stepgen.00.dirsetup 24000
  86. setp hm2_5i25.0.stepgen.00.dirhold 27000
  87. setp hm2_5i25.0.stepgen.00.steplen 1
  88. setp hm2_5i25.0.stepgen.00.stepspace 0
  89. setp hm2_5i25.0.stepgen.00.position-scale 588.8
  90. setp hm2_5i25.0.stepgen.00.step_type 0
  91. setp hm2_5i25.0.stepgen.00.control-type 1
  92. setp hm2_5i25.0.stepgen.00.maxaccel 120
  93. setp hm2_5i25.0.stepgen.00.maxvel 48
  94.  
  95.  
  96.  
  97. # ---closedloop stepper signals---
  98.  
  99. net x-pos-cmd <= axis.0.motor-pos-cmd
  100. net x-vel-cmd <= axis.0.joint-vel-cmd
  101. net x-output => hm2_5i25.0.stepgen.00.velocity-cmd
  102. net x-pos-fb <= hm2_5i25.0.stepgen.00.position-fb
  103. net x-pos-fb => axis.0.motor-pos-fb
  104. net x-enable <= axis.0.amp-enable-out
  105. net x-enable => hm2_5i25.0.stepgen.00.enable
  106.  
  107. # ---setup home / limit switch signals---
  108.  
  109. net home-x => axis.0.home-sw-in
  110. net both-x => axis.0.neg-lim-sw-in
  111. net both-x => axis.0.pos-lim-sw-in
  112.  
  113. #*******************
  114. # AXIS Y
  115. #*******************
  116.  
  117. setp pid.y.Pgain [AXIS_1]P
  118. setp pid.y.Igain [AXIS_1]I
  119. setp pid.y.Dgain [AXIS_1]D
  120. setp pid.y.bias [AXIS_1]BIAS
  121. setp pid.y.FF0 [AXIS_1]FF0
  122. setp pid.y.FF1 [AXIS_1]FF1
  123. setp pid.y.FF2 [AXIS_1]FF2
  124. setp pid.y.deadband [AXIS_1]DEADBAND
  125. setp pid.y.maxoutput [AXIS_1]MAX_OUTPUT
  126. setp pid.y.error-previous-target true
  127. setp pid.y.maxerror .0005
  128.  
  129. net y-index-enable <=> pid.y.index-enable
  130. net y-enable => pid.y.enable
  131. net y-pos-cmd => pid.y.command
  132. net y-vel-cmd => pid.y.command-deriv
  133. net y-pos-fb => pid.y.feedback
  134. net y-output => pid.y.output
  135.  
  136. # Step Gen signals/setup
  137.  
  138. setp hm2_5i25.0.stepgen.01.dirsetup [AXIS_1]DIRSETUP
  139. setp hm2_5i25.0.stepgen.01.dirhold [AXIS_1]DIRHOLD
  140. setp hm2_5i25.0.stepgen.01.steplen [AXIS_1]STEPLEN
  141. setp hm2_5i25.0.stepgen.01.stepspace [AXIS_1]STEPSPACE
  142. setp hm2_5i25.0.stepgen.01.position-scale [AXIS_1]STEP_SCALE
  143. setp hm2_5i25.0.stepgen.01.step_type 0
  144. setp hm2_5i25.0.stepgen.01.control-type 1
  145. setp hm2_5i25.0.stepgen.01.maxaccel [AXIS_1]STEPGEN_MAXACCEL
  146. setp hm2_5i25.0.stepgen.01.maxvel [AXIS_1]STEPGEN_MAXVEL
  147.  
  148. # ---closedloop stepper signals---
  149.  
  150. net y-pos-cmd <= axis.1.motor-pos-cmd
  151. net y-vel-cmd <= axis.1.joint-vel-cmd
  152. net y-output => hm2_5i25.0.stepgen.01.velocity-cmd
  153. net y-pos-fb <= hm2_5i25.0.stepgen.01.position-fb
  154. net y-pos-fb => axis.1.motor-pos-fb
  155. net y-enable <= axis.1.amp-enable-out
  156. net y-enable => hm2_5i25.0.stepgen.01.enable
  157.  
  158. # ---setup home / limit switch signals---
  159.  
  160. net home-y => axis.1.home-sw-in
  161. net both-y => axis.1.neg-lim-sw-in
  162. net both-y => axis.1.pos-lim-sw-in
  163.  
  164. #*******************
  165. # AXIS Z
  166. #*******************
  167.  
  168. setp pid.z.Pgain [AXIS_2]P
  169. setp pid.z.Igain [AXIS_2]I
  170. setp pid.z.Dgain [AXIS_2]D
  171. setp pid.z.bias [AXIS_2]BIAS
  172. setp pid.z.FF0 [AXIS_2]FF0
  173. setp pid.z.FF1 [AXIS_2]FF1
  174. setp pid.z.FF2 [AXIS_2]FF2
  175. setp pid.z.deadband [AXIS_2]DEADBAND
  176. setp pid.z.maxoutput [AXIS_2]MAX_OUTPUT
  177. setp pid.z.error-previous-target true
  178. setp pid.z.maxerror .0005
  179.  
  180. net z-index-enable <=> pid.z.index-enable
  181. net z-enable => pid.z.enable
  182. net z-pos-cmd => pid.z.command
  183. net z-vel-cmd => pid.z.command-deriv
  184. net z-pos-fb => pid.z.feedback
  185. net z-output => pid.z.output
  186.  
  187. # Step Gen signals/setup
  188.  
  189. setp hm2_5i25.0.stepgen.02.dirsetup [AXIS_2]DIRSETUP
  190. setp hm2_5i25.0.stepgen.02.dirhold [AXIS_2]DIRHOLD
  191. setp hm2_5i25.0.stepgen.02.steplen [AXIS_2]STEPLEN
  192. setp hm2_5i25.0.stepgen.02.stepspace [AXIS_2]STEPSPACE
  193. setp hm2_5i25.0.stepgen.02.position-scale [AXIS_2]STEP_SCALE
  194. setp hm2_5i25.0.stepgen.02.step_type 0
  195. setp hm2_5i25.0.stepgen.02.control-type 1
  196. setp hm2_5i25.0.stepgen.02.maxaccel [AXIS_2]STEPGEN_MAXACCEL
  197. setp hm2_5i25.0.stepgen.02.maxvel [AXIS_2]STEPGEN_MAXVEL
  198.  
  199. # ---closedloop stepper signals---
  200.  
  201. net z-pos-cmd <= axis.2.motor-pos-cmd
  202. net z-vel-cmd <= axis.2.joint-vel-cmd
  203. net z-output => hm2_5i25.0.stepgen.02.velocity-cmd
  204. net z-pos-fb <= hm2_5i25.0.stepgen.02.position-fb
  205. net z-pos-fb => axis.2.motor-pos-fb
  206. net z-enable <= axis.2.amp-enable-out
  207. net z-enable => hm2_5i25.0.stepgen.02.enable
  208.  
  209. # ---setup home / limit switch signals---
  210.  
  211. net home-z => axis.2.home-sw-in
  212. net min-z => axis.2.neg-lim-sw-in
  213. net max-z => axis.2.pos-lim-sw-in
  214.  
  215. #*******************
  216. # SPINDLE S
  217. #*******************
  218.  
  219. setp pid.s.Pgain [SPINDLE_9]P
  220. setp pid.s.Igain [SPINDLE_9]I
  221. setp pid.s.Dgain [SPINDLE_9]D
  222. setp pid.s.bias [SPINDLE_9]BIAS
  223. setp pid.s.FF0 [SPINDLE_9]FF0
  224. setp pid.s.FF1 [SPINDLE_9]FF1
  225. setp pid.s.FF2 [SPINDLE_9]FF2
  226. setp pid.s.deadband [SPINDLE_9]DEADBAND
  227. setp pid.s.maxoutput [SPINDLE_9]MAX_OUTPUT
  228. setp pid.s.error-previous-target true
  229.  
  230. net spindle-index-enable <=> pid.s.index-enable
  231. net spindle-enable => pid.s.enable
  232. net spindle-vel-cmd-rpm => pid.s.command
  233. net spindle-vel-fb-rpm => pid.s.feedback
  234. net spindle-output <= pid.s.output
  235.  
  236. # ---setup spindle control signals---
  237.  
  238. net spindle-vel-cmd-rps <= motion.spindle-speed-out-rps
  239. net spindle-vel-cmd-rps-abs <= motion.spindle-speed-out-rps-abs
  240. net spindle-vel-cmd-rpm <= motion.spindle-speed-out
  241. net spindle-vel-cmd-rpm-abs <= motion.spindle-speed-out-abs
  242. net spindle-enable <= motion.spindle-on
  243. net spindle-cw <= motion.spindle-forward
  244. net spindle-ccw <= motion.spindle-reverse
  245. net spindle-brake <= motion.spindle-brake
  246. net spindle-revs => motion.spindle-revs
  247. net spindle-at-speed => motion.spindle-at-speed
  248. net spindle-vel-fb-rps => motion.spindle-speed-in
  249. net spindle-index-enable <=> motion.spindle-index-enable
  250.  
  251. # ---Setup spindle at speed signals---
  252.  
  253. sets spindle-at-speed true
  254.  
  255.  
  256. #******************************
  257. # connect miscellaneous signals
  258. #******************************
  259.  
  260. # ---HALUI signals---
  261.  
  262. net joint-select-a halui.joint.0.select
  263. net x-is-homed halui.joint.0.is-homed
  264. net jog-x-pos halui.jog.0.plus
  265. net jog-x-neg halui.jog.0.minus
  266. net jog-x-analog halui.jog.0.analog
  267. net joint-select-b halui.joint.1.select
  268. net y-is-homed halui.joint.1.is-homed
  269. net jog-y-pos halui.jog.1.plus
  270. net jog-y-neg halui.jog.1.minus
  271. net jog-y-analog halui.jog.1.analog
  272. net joint-select-c halui.joint.2.select
  273. net z-is-homed halui.joint.2.is-homed
  274. net jog-z-pos halui.jog.2.plus
  275. net jog-z-neg halui.jog.2.minus
  276. net jog-z-analog halui.jog.2.analog
  277. net jog-selected-pos halui.jog.selected.plus
  278. net jog-selected-neg halui.jog.selected.minus
  279. net spindle-manual-cw halui.spindle.forward
  280. net spindle-manual-ccw halui.spindle.reverse
  281. net spindle-manual-stop halui.spindle.stop
  282. net machine-is-on halui.machine.is-on
  283. net jog-speed halui.jog-speed
  284. net MDI-mode halui.mode.is-mdi
  285.  
  286. # ---coolant signals---
  287.  
  288. net coolant-mist <= iocontrol.0.coolant-mist
  289. net coolant-flood <= iocontrol.0.coolant-flood
  290.  
  291. # ---probe signal---
  292.  
  293. net probe-in => motion.probe-input
  294.  
  295. # ---motion control signals---
  296.  
  297. net in-position <= motion.in-position
  298. net machine-is-enabled <= motion.motion-enabled
  299.  
  300. # ---digital in / out signals---
  301.  
  302. # ---estop signals---
  303.  
  304. #net estop-out <= iocontrol.0.user-enable-out
  305. #net estop-out => iocontrol.0.emc-enable-in
  306.  
  307.  
  308. # Add the two external e-stop hard buttons into the control
  309. net estop-loopout iocontrol.0.emc-enable-in <= estop-latch.0.ok-out
  310. net estop-loopin iocontrol.0.user-enable-out => estop-latch.0.ok-in
  311. net estop-reset iocontrol.0.user-request-enable => estop-latch.0.reset
  312. net estop-button1 or2.0.in0 <= hm2_5i25.0.7i76.0.0.input-08-not
  313. net estop-button2 or2.0.in1 <= hm2_5i25.0.7i76.0.0.input-07-not
  314. net remote-estop estop-latch.0.fault-in <= or2.0.out
  315.  
  316.  
  317.  
  318. # ---manual tool change signals---
  319.  
  320. loadusr -W hal_manualtoolchange
  321. net tool-change-request iocontrol.0.tool-change => hal_manualtoolchange.change
  322. net tool-change-confirmed iocontrol.0.tool-changed <= hal_manualtoolchange.changed
  323. net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
  324. net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
  325.  
  326.  
  327.  
  328. ####################################################################################
  329. # mpg setup below this line #
  330. ####################################################################################
  331.  
  332. setp axis.0.jog-vel-mode 0
  333. setp axis.1.jog-vel-mode 0
  334. setp axis.2.jog-vel-mode 0
  335.  
  336.  
  337. setp axis.0.jog-vel-mode 0 # X AXIS
  338. setp axis.1.jog-vel-mode 0 # Y AXIS
  339. setp axis.2.jog-vel-mode 0 # Z AXIS
  340. #setp axis.3.jog-vel-mode 0 # A AXIS
  341. #setp axis.4.jog-vel-mode 0 # B AXIS
  342.  
  343. setp mux8.0.in0 0.0001
  344. setp mux8.0.in1 0.001
  345. setp mux8.0.in2 0.01
  346. setp mux8.0.in3 0.1
  347. setp mux8.0.in4 0.5
  348.  
  349.  
  350. # The inputs to the mux8 component, default is not required so Input 24 isn?t referenced
  351. net scale1 mux8.0.sel0 <= hm2_5i25.0.7i76.0.0.input-11
  352. net scale2 mux8.0.sel1 <= hm2_5i25.0.7i76.0.0.input-10
  353. net scale3 mux8.0.sel2 <= hm2_5i25.0.7i76.0.0.input-09
  354. #net scale4 mux8.0.sel3 <= hm2_5i25.0.7i76.0.0.input-14
  355. #net scale5 mux8.0.sel4 <= hm2_5i25.0.7i76.0.0.input-13
  356.  
  357.  
  358. net mpg-scale <= mux8.0.out
  359. net mpg-scale => axis.0.jog-scale
  360. net mpg-scale => axis.1.jog-scale
  361. net mpg-scale => axis.2.jog-scale
  362. #net mpg-scale => axis.3.jog-scale
  363. #net mpg-scale => axis.4.jog-scale
  364.  
  365. net axis-select-x <= hm2_5i25.0.7i76.0.0.input-27
  366. net axis-select-y <= hm2_5i25.0.7i76.0.0.input-05
  367. net axis-select-z <= hm2_5i25.0.7i76.0.0.input-04
  368. #net axis-select-a <= hm2_5i25.0.7i76.0.0.input-15
  369. #net axis-select-b <= hm2_5i25.0.7i76.0.0.input-12
  370.  
  371.  
  372. net jog-counter <= hm2_5i25.0.7i76.0.0.enc0.count
  373.  
  374.  
  375. # MAPPING INPUT signals to linux cnc signals / gui
  376. # Since there is only one encoder it is connected to all axis. Only the one that is selected # actually moves
  377. net jog-counter => axis.0.jog-counts
  378. net jog-counter => axis.1.jog-counts
  379. net jog-counter => axis.2.jog-counts
  380. #net jog-counter => axis.3.jog-counts
  381. #net jog-counter => axis.4.jog-counts
  382.  
  383.  
  384. # ---jogwheel signals to mesa encoder - shared MPG---
  385. #net joint-selected-count <= hm2_5i25.0.encoder.00.count
  386.  
  387.  
  388. # Send input signal to linux cnc action (enable axis selection)
  389. net axis-select-x => axis.0.jog-enable
  390. net axis-select-y => axis.1.jog-enable
  391. net axis-select-z => axis.2.jog-enable
  392. #net axis-select-a => axis.3.jog-enable
  393. #net axis-select-b => axis.4.jog-enable
  394.  
  395.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement