Guest User

lcnc 5axiskins with gantry Y

a guest
Oct 19th, 2021
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 24.83 KB | None | 0 0
  1. .ini
  2. ***************************************************
  3. [EMC]
  4. VERSION = 1.1
  5. MACHINE = 5Axis Gantry Mill (xyyzbc)
  6. DEBUG = 0
  7.  
  8. [DISPLAY]
  9. JOG_AXES = XYZBC
  10. GEOMETRY = XYZBCW
  11. DISPLAY = axis
  12. CYCLE_TIME = 0.200
  13. POSITION_OFFSET = RELATIVE
  14. POSITION_FEEDBACK = ACTUAL
  15. MAX_FEED_OVERRIDE = 2.0
  16. PROGRAM_PREFIX = ../../nc_files/
  17. INTRO_GRAPHIC = linuxcnc.gif
  18. INTRO_TIME = 5
  19. #EDITOR = gedit
  20.  
  21. DEFAULT_LINEAR_VELOCITY = 40
  22. MIN_VELOCITY = .01
  23. MAX_LINEAR_VELOCITY = 60
  24. MIN_LINEAR_VELOCITY = .01
  25. DEFAULT_ANGULAR_VELOCITY = 20
  26. MIN_ANGULAR_VELOCITY = .01
  27. MAX_ANGULAR_VELOCITY = 15
  28.  
  29. [HOSTMOT2]
  30. DRIVER=hm2_pci
  31. BOARD=6i25
  32. CONFIG="firmware=hm2/6i25/SVST4_8.BIT num_encoders=1 num_pwmgens=0 num_stepgens=6 sserial_port_0=00xxxx"
  33.  
  34.  
  35. [RS274NGC]
  36. PARAMETER_FILE = 5axis.var
  37.  
  38. [EMCMOT]
  39. EMCMOT = motmod
  40. COMM_TIMEOUT = 1.0
  41. SERVO_PERIOD = 1000000
  42.  
  43. [TASK]
  44. TASK = milltask
  45. CYCLE_TIME = 0.010
  46.  
  47. [HAL]
  48. HALUI = halui
  49. HALFILE = gantry_5axis.hal
  50. HALCMD = loadusr -W ./5axisgui
  51. HALCMD = net :jx joint.0.pos-fb 5axisgui.jx
  52. HALCMD = net :jy joint.1.pos-fb 5axisgui.jy
  53. HALCMD = net :jz joint.2.pos-fb 5axisgui.jz
  54. HALCMD = net :jb joint.3.pos-fb 5axisgui.jb
  55. HALCMD = net :jc joint.4.pos-fb 5axisgui.jc
  56. HALCMD = net :tool-len motion.tooloffset.z 5axisgui.tool_length
  57.  
  58. [TRAJ]
  59. COORDINATES = X Y Z B C Y W
  60. LINEAR_UNITS = 1.0
  61. ANGULAR_UNITS = 1.0
  62. DEFAULT_ANGULAR_VELOCITY = 200.0
  63. MAX_ANGULAR_VELOCITY = 346.0
  64. MAX_ANGULAR_ACCELERATION = 800.0
  65. DEFAULT_ANGULAR_ACCELERATION = 800.0
  66.  
  67. DEFAULT_LINEAR_VELOCITY = 200.0
  68. MAX_LINEAR_VELOCITY = 346.0
  69. MAX_LINEAR_ACCELERATION = 800.0
  70. DEFAULT_LINEAR_ACCELERATION = 800.0
  71.  
  72. [EMCIO]
  73. EMCIO = io
  74. CYCLE_TIME = 0.100
  75. TOOL_TABLE = 5axis.tbl
  76.  
  77. [KINS]
  78. # 5axiskins misnomer 1 more joint for W
  79. KINEMATICS = 5axiskins
  80. JOINTS = 7
  81.  
  82.  
  83. /*************************************************************************************/
  84.  
  85. # X is one-to-one to JOINT_0
  86. [AXIS_X]
  87. MAX_VELOCITY = 100.0
  88. MAX_ACCELERATION = 350.0
  89. MIN_LIMIT = -1.0
  90. MAX_LIMIT = 1701.0
  91.  
  92. # Y is one-to-one to JOINT_1
  93. [AXIS_Y]
  94. MAX_VELOCITY = 70.0
  95. MAX_ACCELERATION = 350.0
  96. MIN_LIMIT = -1.0
  97. MAX_LIMIT = 2261.0
  98.  
  99. # Z is one-to-one to JOINT_2
  100. [AXIS_Z]
  101. MAX_VELOCITY = 70.0
  102. MAX_ACCELERATION = 950.0
  103. MIN_LIMIT = -600.0
  104. MAX_LIMIT = 1.00
  105.  
  106.  
  107. # B is one-to-one to JOINT_3
  108. [AXIS_B]
  109. MAX_VELOCITY = 60
  110. MAX_ACCELERATION = 200
  111. MIN_LIMIT = -120
  112. MAX_LIMIT = 120
  113.  
  114. # C is one-to-one to JOINT_4
  115. [AXIS_C]
  116. MAX_VELOCITY = 60
  117. MAX_ACCELERATION = 200
  118. MIN_LIMIT = -36000
  119. MAX_LIMIT = 36000
  120.  
  121. # W is one-to-one to JOINT_5
  122. [AXIS_W]
  123. MAX_VELOCITY = 70.0
  124. MAX_ACCELERATION = 350.0
  125. MIN_LIMIT = -1.0
  126. MAX_LIMIT = 2261.0
  127.  
  128.  
  129. # X AXIS
  130. [JOINT_0]
  131. TYPE = LINEAR
  132. HOME = 0.0
  133. FERROR = 50.0
  134. MIN_FERROR = 1.0
  135. MAX_VELOCITY = 100.0
  136. MAX_ACCELERATION = 950.0
  137. # The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
  138. # If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
  139. STEPGEN_MAXVEL = 120.00
  140. STEPGEN_MAXACCEL = 1200.00
  141. P = 1000.0
  142. I = 0.0
  143. D = 0.0
  144. FF0 = 0.0
  145. FF1 = 1.0
  146. FF2 = 0.0
  147. BIAS = 0.0
  148. DEADBAND = 0.0
  149. MAX_OUTPUT = 0.0
  150. # these are in nanoseconds
  151. DIRSETUP = 15000
  152. DIRHOLD = 15000
  153. STEPLEN = 15000
  154. STEPSPACE = 15000
  155. STEP_SCALE = 25.477
  156. #STEP_SCALE = 2.53
  157. MIN_LIMIT = -1.0
  158. MAX_LIMIT = 1701.0
  159. #HOME_OFFSET = 0.000000
  160. #HOME_SEARCH_VEL = -100.000000
  161. #HOME_LATCH_VEL = 10.00000
  162. #HOME_FINAL_VEL = 100.000000
  163. #HOME_USE_INDEX = NO
  164. #HOME_IGNORE_LIMITS = YES
  165. #HOME_SEQUENCE = -1
  166. #******************************************
  167.  
  168.  
  169. # Y AXIS Gantry 1
  170. [JOINT_1]
  171. TYPE = LINEAR
  172. HOME = 0.0
  173. FERROR = 5.0
  174. MIN_FERROR = 0.1
  175. MAX_VELOCITY = 100.0
  176. MAX_ACCELERATION = 950.0
  177. # The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
  178. # If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
  179. STEPGEN_MAXVEL = 120.00
  180. STEPGEN_MAXACCEL = 1200.00
  181. P = 1000.0
  182. I = 0.0
  183. D = 0.0
  184. FF0 = 0.0
  185. FF1 = 1.0
  186. FF2 = 0.0
  187. BIAS = 0.0
  188. DEADBAND = 0.0
  189. MAX_OUTPUT = 0.0
  190. # these are in nanoseconds
  191. DIRSETUP = 15000
  192. DIRHOLD = 15000
  193. STEPLEN = 15000
  194. STEPSPACE = 15000
  195. STEP_SCALE = -25.477
  196. MIN_LIMIT = -1.0000
  197. MAX_LIMIT = 2261.0000
  198. #HOME_OFFSET = 0.000000
  199. #HOME_SEARCH_VEL = -100.000000
  200. #HOME_LATCH_VEL = 10.00000
  201. #HOME_FINAL_VEL = 100.000000
  202. #HOME_USE_INDEX = NO
  203. #HOME_IGNORE_LIMITS = YES
  204. #HOME_SEQUENCE = -1
  205. #******************************************
  206.  
  207.  
  208.  
  209. # Z AXIS
  210. [JOINT_2]
  211. TYPE = LINEAR
  212. HOME = 0.0
  213. FERROR = 5.0
  214. MIN_FERROR = 0.5
  215. MAX_VELOCITY = 100.0
  216. MAX_ACCELERATION = 950.0
  217. # The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
  218. # If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
  219. STEPGEN_MAXVEL = 120.00
  220. STEPGEN_MAXACCEL = 1200.00
  221. P = 1000.0
  222. I = 0.0
  223. D = 0.0
  224. FF0 = 0.0
  225. FF1 = 1.0
  226. FF2 = 0.0
  227. BIAS = 0.0
  228. DEADBAND = 0.0
  229. MAX_OUTPUT = 0.0
  230. # these are in nanoseconds
  231. DIRSETUP = 15000
  232. DIRHOLD = 15000
  233. STEPLEN = 15000
  234. STEPSPACE = 15000
  235. STEP_SCALE = 25.477
  236. MIN_LIMIT = -500.0
  237. MAX_LIMIT = 1.0
  238. #HOME_OFFSET = 0.000000
  239. #HOME_SEARCH_VEL = -100.000000
  240. #HOME_LATCH_VEL = 10.00000
  241. #HOME_FINAL_VEL = 100.000000
  242. #HOME_USE_INDEX = NO
  243. #HOME_IGNORE_LIMITS = YES
  244. #HOME_SEQUENCE = 0
  245.  
  246. # B AXIS
  247. [JOINT_3]
  248. TYPE = ANGULAR
  249. HOME = 0.0
  250. FERROR = 10.0
  251. MIN_FERROR = 1.0
  252. MAX_VELOCITY = 80.0
  253. MAX_ACCELERATION = 950.0
  254. # The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
  255. # If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
  256. STEPGEN_MAXVEL = 120.00
  257. STEPGEN_MAXACCEL = 1200.00
  258. P = 1000.0
  259. I = 0.0
  260. D = 0.0
  261. FF0 = 0.0
  262. FF1 = 1.0
  263. FF2 = 0.0
  264. BIAS = 0.0
  265. DEADBAND = 0.0
  266. MAX_OUTPUT = 0.0
  267. # these are in nanoseconds
  268. DIRSETUP = 15000
  269. DIRHOLD = 15000
  270. STEPLEN = 15000
  271. STEPSPACE = 15000
  272. STEP_SCALE = 20.0
  273. MIN_LIMIT = -120
  274. MAX_LIMIT = 120
  275. #HOME_OFFSET = 0.000000
  276. #HOME_SEARCH_VEL = -1.000000
  277. #HOME_LATCH_VEL = -0.500000
  278. #HOME_FINAL_VEL = 0.000000
  279. #HOME_USE_INDEX = NO
  280. #HOME_IGNORE_LIMITS = YES
  281. #******************************************
  282.  
  283. #******************************************
  284.  
  285. # C AXIS
  286. [JOINT_4]
  287. TYPE = ANGULAR
  288. HOME = 0.0
  289. FERROR = 0.5
  290. MIN_FERROR = 0.05
  291. MAX_VELOCITY = 15.0
  292. MAX_ACCELERATION = 1200.0
  293. # The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
  294. # If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
  295. STEPGEN_MAXVEL = 80.00
  296. STEPGEN_MAXACCEL = 1500.00
  297. P = 1000.0
  298. I = 0.0
  299. D = 0.0
  300. FF0 = 0.0
  301. FF1 = 1.0
  302. FF2 = 0.0
  303. BIAS = 0.0
  304. DEADBAND = 0.0
  305. MAX_OUTPUT = 0.0
  306. # these are in nanoseconds
  307. DIRSETUP = 15000
  308. DIRHOLD = 15000
  309. STEPLEN = 15000
  310. STEPSPACE = 15000
  311. STEP_SCALE = 20.0
  312. MIN_LIMIT = -36000
  313. MAX_LIMIT = 36000
  314. #HOME_OFFSET = 0.0
  315.  
  316. # Y2 AXIS
  317. [JOINT_5]
  318. TYPE = LINEAR
  319. HOME = 0.0
  320. FERROR = 5.0
  321. MIN_FERROR = 0.1
  322. MAX_VELOCITY = 100.0
  323. MAX_ACCELERATION = 950.0
  324. # The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
  325. # If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
  326. STEPGEN_MAXVEL = 120.00
  327. STEPGEN_MAXACCEL = 1200.00
  328. P = 1000.0
  329. I = 0.0
  330. D = 0.0
  331. FF0 = 0.0
  332. FF1 = 1.0
  333. FF2 = 0.0
  334. BIAS = 0.0
  335. DEADBAND = 0.0
  336. MAX_OUTPUT = 0.0
  337. # these are in nanoseconds
  338. DIRSETUP = 15000
  339. DIRHOLD = 15000
  340. STEPLEN = 15000
  341. STEPSPACE = 15000
  342. STEP_SCALE = -25.477
  343. MIN_LIMIT = -1.0000
  344. MAX_LIMIT = 2261.0000
  345. #HOME_OFFSET = 0.000000
  346. #HOME_SEARCH_VEL = -100.000000
  347. #HOME_LATCH_VEL = 10.00000
  348. #HOME_FINAL_VEL = 100.000000
  349. #HOME_USE_INDEX = NO
  350. #HOME_IGNORE_LIMITS = YES
  351. #HOME_SEQUENCE = -1
  352. #******************************************
  353.  
  354. # W AXIS
  355. [JOINT_6]
  356. TYPE = LINEAR
  357. HOME = 0.0
  358. FERROR = 50.0
  359. MIN_FERROR = 1.0
  360. MAX_VELOCITY = 100.0
  361. MAX_ACCELERATION = 950.0
  362. # The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
  363. # If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
  364. STEPGEN_MAXVEL = 120.00
  365. STEPGEN_MAXACCEL = 1200.00
  366. P = 1000.0
  367. I = 0.0
  368. D = 0.0
  369. FF0 = 0.0
  370. FF1 = 1.0
  371. FF2 = 0.0
  372. BIAS = 0.0
  373. DEADBAND = 0.0
  374. MAX_OUTPUT = 0.0
  375. # these are in nanoseconds
  376. DIRSETUP = 15000
  377. DIRHOLD = 15000
  378. STEPLEN = 15000
  379. STEPSPACE = 15000
  380. STEP_SCALE = 25.477
  381. #STEP_SCALE = 2.53
  382. MIN_LIMIT = -2261.0
  383. MAX_LIMIT = 2261.0
  384. #HOME_OFFSET = 0.000000
  385. #HOME_SEARCH_VEL = -100.000000
  386. #HOME_LATCH_VEL = 10.00000
  387. #HOME_FINAL_VEL = 100.000000
  388. #HOME_USE_INDEX = NO
  389. #HOME_IGNORE_LIMITS = YES
  390. #HOME_SEQUENCE = -1
  391. #******************************************
  392.  
  393.  
  394.  
  395.  
  396.  
  397. *************************************************
  398. .hal
  399. *************************************************
  400.  
  401. loadrt [KINS]KINEMATICS
  402. loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
  403. loadrt hostmot2
  404.  
  405. loadrt [HOSTMOT2](DRIVER) config=[HOSTMOT2](CONFIG)
  406.  
  407.  
  408. #loadrt 5axiskins
  409. #loadrt motmod servo_period_nsec=1000000 num_joints=6
  410. #loadrt hostmot2
  411. #loadrt hm2_pci config="firmware=hm2/6i25/SVST4_8.BIT num_encoders=1 num_pwmgens=0 num_stepgens=6 sserial_port_0=00xxxx"
  412.  
  413. loadrt pid names=pid.x,pid.y1,pid.y2,pid.z,pid.b,pid.c
  414.  
  415.  
  416. addf hm2_5i25.0.read servo-thread
  417. addf motion-command-handler servo-thread
  418. addf motion-controller servo-thread
  419. addf pid.x.do-pid-calcs servo-thread
  420. addf pid.y2.do-pid-calcs servo-thread
  421. addf pid.y1.do-pid-calcs servo-thread
  422. addf pid.z.do-pid-calcs servo-thread
  423. addf pid.b.do-pid-calcs servo-thread
  424. addf pid.c.do-pid-calcs servo-thread
  425. addf hm2_5i25.0.write servo-thread
  426.  
  427.  
  428.  
  429. # --- X-ENABLE ---
  430. net x-enable => hm2_5i25.0.7i76.0.0.output-00
  431. setp hm2_5i25.0.7i76.0.0.output-00-invert true
  432.  
  433. # --- Y1-ENABLE ---
  434. net y1-enable => hm2_5i25.0.7i76.0.0.output-01
  435. setp hm2_5i25.0.7i76.0.0.output-01-invert true
  436.  
  437. # --- Y2-ENABLE ---
  438. net y2-enable => hm2_5i25.0.7i76.0.0.output-02
  439. setp hm2_5i25.0.7i76.0.0.output-02-invert true
  440.  
  441. # --- Z-ENABLE ---
  442. net z-enable => hm2_5i25.0.7i76.0.0.output-03
  443. setp hm2_5i25.0.7i76.0.0.output-03-invert true
  444.  
  445. # --- B-ENABLE ---
  446. net b-enable => hm2_5i25.0.7i76.0.0.output-04
  447. setp hm2_5i25.0.7i76.0.0.output-04-invert true
  448.  
  449. # --- C-ENABLE ---
  450. net c-enable => hm2_5i25.0.7i76.0.0.output-05
  451. setp hm2_5i25.0.7i76.0.0.output-05-invert true
  452.  
  453. # external input signals
  454.  
  455.  
  456. # --- MIN-X ---
  457. net min-x <= hm2_5i25.0.7i76.0.0.input-00
  458.  
  459. # --- MAX-X ---
  460. net max-x <= hm2_5i25.0.7i76.0.0.input-01
  461.  
  462. # --- MIN-Y1 ---
  463. net min-y1 <= hm2_5i25.0.7i76.0.0.input-02
  464.  
  465. # --- MAX-Y1 ---
  466. net max-y1 <= hm2_5i25.0.7i76.0.0.input-03
  467.  
  468. # --- MIN-Y2 ---
  469. net min-y2 <= hm2_5i25.0.7i76.0.0.input-04
  470.  
  471. # --- MAX-Y2 ---
  472. net max-y2 <= hm2_5i25.0.7i76.0.0.input-05
  473.  
  474. # --- MIN-Z ---
  475. net min-z <= hm2_5i25.0.7i76.0.0.input-06
  476.  
  477. # --- MAX-Z ---
  478. net max-z <= hm2_5i25.0.7i76.0.0.input-07
  479.  
  480. # --- MIN-B ---
  481. net min-b <= hm2_5i25.0.7i76.0.0.input-08
  482.  
  483. # --- MAX-B ---
  484. net max-b <= hm2_5i25.0.7i76.0.0.input-09
  485.  
  486. # --- ESTOP-EXT ---
  487. #net estop-ext <= hm2_5i25.0.7i76.0.0.input-15
  488. net estop-ext <= hm2_5i25.0.7i76.0.0.input-15-not
  489.  
  490. # --- PROBE-IN ---
  491. net probe-in <= hm2_5i25.0.7i76.0.0.input-14
  492.  
  493.  
  494.  
  495. # *************************************************************************************************************
  496. # *************************************************************************************************************
  497. # *************************************************************************************************************
  498. # *************************************************************************************************************
  499.  
  500.  
  501. #*******************
  502. # AXIS X JOINT 0
  503. #*******************
  504.  
  505. setp pid.x.Pgain [JOINT_0]P
  506. setp pid.x.Igain [JOINT_0]I
  507. setp pid.x.Dgain [JOINT_0]D
  508. setp pid.x.bias [JOINT_0]BIAS
  509. setp pid.x.FF0 [JOINT_0]FF0
  510. setp pid.x.FF1 [JOINT_0]FF1
  511. setp pid.x.FF2 [JOINT_0]FF2
  512. setp pid.x.deadband [JOINT_0]DEADBAND
  513. setp pid.x.maxoutput [JOINT_0]MAX_OUTPUT
  514. setp pid.x.error-previous-target true
  515. setp pid.x.maxerror .0005
  516.  
  517. net x-enable => pid.x.enable
  518.  
  519. net x-index-enable <=> pid.x.index-enable
  520. net x-pos-cmd => pid.x.command
  521. net x-vel-cmd => pid.x.command-deriv
  522. net x-pos-fb => pid.x.feedback
  523. net x-output <= pid.x.output
  524.  
  525. # Step Gen signals/setup
  526.  
  527. setp hm2_5i25.0.stepgen.00.dirsetup [JOINT_0]DIRSETUP
  528. setp hm2_5i25.0.stepgen.00.dirhold [JOINT_0]DIRHOLD
  529. setp hm2_5i25.0.stepgen.00.steplen [JOINT_0]STEPLEN
  530. setp hm2_5i25.0.stepgen.00.stepspace [JOINT_0]STEPSPACE
  531. setp hm2_5i25.0.stepgen.00.position-scale [JOINT_0]STEP_SCALE
  532. setp hm2_5i25.0.stepgen.00.step_type 0
  533. setp hm2_5i25.0.stepgen.00.control-type 1
  534. setp hm2_5i25.0.stepgen.00.maxaccel [JOINT_0]STEPGEN_MAXACCEL
  535. setp hm2_5i25.0.stepgen.00.maxvel [JOINT_0]STEPGEN_MAXVEL
  536.  
  537. # ---closedloop stepper signals---
  538.  
  539. net x-pos-cmd <= joint.0.motor-pos-cmd
  540. net x-vel-cmd <= joint.0.vel-cmd
  541. net x-output <= hm2_5i25.0.stepgen.00.velocity-cmd
  542. net x-pos-fb <= hm2_5i25.0.stepgen.00.position-fb
  543. net x-pos-fb => joint.0.motor-pos-fb
  544. net x-enable <= joint.0.amp-enable-out
  545. net x-enable => hm2_5i25.0.stepgen.00.enable
  546.  
  547. # ---setup home / limit switch signals---
  548.  
  549. net min-home-x => joint.0.home-sw-in
  550. net min-home-x => joint.0.neg-lim-sw-in
  551. net max-x => joint.0.pos-lim-sw-in
  552.  
  553. #*******************
  554. # Tandem AXIS y1 JOINT 1
  555. #*******************
  556.  
  557. setp pid.y1.Pgain [JOINT_1]P
  558. setp pid.y1.Igain [JOINT_1]I
  559. setp pid.y1.Dgain [JOINT_1]D
  560. setp pid.y1.bias [JOINT_1]BIAS
  561. setp pid.y1.FF0 [JOINT_1]FF0
  562. setp pid.y1.FF1 [JOINT_1]FF1
  563. setp pid.y1.FF2 [JOINT_1]FF2
  564. setp pid.y1.deadband [JOINT_1]DEADBAND
  565. setp pid.y1.maxoutput [JOINT_1]MAX_OUTPUT
  566. setp pid.y1.error-previous-target true
  567. setp pid.y1.maxerror .0005
  568.  
  569. net y1-index-enable <=> pid.y1.index-enable
  570. net y1-enable => pid.y1.enable
  571. net y1-pos-cmd => pid.y1.command
  572. net y1-vel-cmd => pid.y1.command-deriv
  573. net y1-pos-fb => pid.y1.feedback
  574. net y1-output <= pid.y1.output
  575.  
  576. # Step Gen signals/setup for tandem axis
  577.  
  578. setp hm2_5i25.0.stepgen.01.dirsetup [JOINT_1]DIRSETUP
  579. setp hm2_5i25.0.stepgen.01.dirhold [JOINT_1]DIRHOLD
  580. setp hm2_5i25.0.stepgen.01.steplen [JOINT_1]STEPLEN
  581. setp hm2_5i25.0.stepgen.01.stepspace [JOINT_1]STEPSPACE
  582. setp hm2_5i25.0.stepgen.01.position-scale [JOINT_1]STEP_SCALE
  583. setp hm2_5i25.0.stepgen.01.step_type 0
  584. setp hm2_5i25.0.stepgen.01.control-type 1
  585. setp hm2_5i25.0.stepgen.01.maxaccel [JOINT_1]STEPGEN_MAXACCEL
  586. setp hm2_5i25.0.stepgen.01.maxvel [JOINT_1]STEPGEN_MAXVEL
  587.  
  588. # ---closedloop stepper signals---
  589.  
  590. net y1-pos-cmd <= joint.1.motor-pos-cmd
  591. net y1-vel-cmd <= joint.1.vel-cmd
  592. net y1-output <= hm2_5i25.0.stepgen.01.velocity-cmd
  593. net y1-pos-fb <= hm2_5i25.0.stepgen.01.position-fb
  594. net y1-pos-fb => joint.1.motor-pos-fb
  595. net y1-enable <= joint.1.amp-enable-out
  596. net y1-enable => hm2_5i25.0.stepgen.01.enable
  597.  
  598. # ---setup home / limit switch signals---
  599.  
  600. net min-home-y1 => joint.1.home-sw-in
  601. net min-home-y1 => joint.1.neg-lim-sw-in
  602. net max-y1 => joint.1.pos-lim-sw-in
  603.  
  604.  
  605. #*******************
  606. # AXIS Z JOINT 2
  607. #*******************
  608.  
  609. setp pid.z.Pgain [JOINT_2]P
  610. setp pid.z.Igain [JOINT_2]I
  611. setp pid.z.Dgain [JOINT_2]D
  612. setp pid.z.bias [JOINT_2]BIAS
  613. setp pid.z.FF0 [JOINT_2]FF0
  614. setp pid.z.FF1 [JOINT_2]FF1
  615. setp pid.z.FF2 [JOINT_2]FF2
  616. setp pid.z.deadband [JOINT_2]DEADBAND
  617. setp pid.z.maxoutput [JOINT_2]MAX_OUTPUT
  618. setp pid.z.error-previous-target true
  619. setp pid.z.maxerror .0005
  620.  
  621. net z-index-enable <=> pid.z.index-enable
  622. net z-enable => pid.z.enable
  623. net z-pos-cmd => pid.z.command
  624. net z-vel-cmd => pid.z.command-deriv
  625. net z-pos-fb => pid.z.feedback
  626. net z-output <= pid.z.output
  627.  
  628. # Step Gen signals/setup
  629.  
  630. setp hm2_5i25.0.stepgen.02.dirsetup [JOINT_2]DIRSETUP
  631. setp hm2_5i25.0.stepgen.02.dirhold [JOINT_2]DIRHOLD
  632. setp hm2_5i25.0.stepgen.02.steplen [JOINT_2]STEPLEN
  633. setp hm2_5i25.0.stepgen.02.stepspace [JOINT_2]STEPSPACE
  634. setp hm2_5i25.0.stepgen.02.position-scale [JOINT_2]STEP_SCALE
  635. setp hm2_5i25.0.stepgen.02.step_type 0
  636. setp hm2_5i25.0.stepgen.02.control-type 1
  637. setp hm2_5i25.0.stepgen.02.maxaccel [JOINT_2]STEPGEN_MAXACCEL
  638. setp hm2_5i25.0.stepgen.02.maxvel [JOINT_2]STEPGEN_MAXVEL
  639.  
  640. # ---closedloop stepper signals---
  641.  
  642. net z-pos-cmd <= joint.2.motor-pos-cmd
  643. net z-vel-cmd <= joint.2.vel-cmd
  644. net z-output <= hm2_5i25.0.stepgen.02.velocity-cmd
  645. net z-pos-fb <= hm2_5i25.0.stepgen.02.position-fb
  646. net z-pos-fb => joint.2.motor-pos-fb
  647. net z-enable <= joint.2.amp-enable-out
  648. net z-enable => hm2_5i25.0.stepgen.02.enable
  649.  
  650. # ---setup home / limit switch signals---
  651.  
  652. net max-home-z => joint.2.home-sw-in
  653. net min-z => joint.2.neg-lim-sw-in
  654. net max-home-z => joint.2.pos-lim-sw-in
  655.  
  656. #*******************
  657. # AXIS B JOINT 3
  658. #*******************
  659.  
  660. setp pid.b.Pgain [JOINT_3]P
  661. setp pid.b.Igain [JOINT_3]I
  662. setp pid.b.Dgain [JOINT_3]D
  663. setp pid.b.bias [JOINT_3]BIAS
  664. setp pid.b.FF0 [JOINT_3]FF0
  665. setp pid.b.FF1 [JOINT_3]FF1
  666. setp pid.b.FF2 [JOINT_3]FF2
  667. setp pid.b.deadband [JOINT_3]DEADBAND
  668. setp pid.b.maxoutput [JOINT_3]MAX_OUTPUT
  669. setp pid.b.error-previous-target true
  670. setp pid.b.maxerror .000
  671.  
  672. net b-index-enable <=> pid.b.index-enable
  673. net b-enable => pid.b.enable
  674. net b-pos-cmd => pid.b.command
  675. net b-vel-cmd => pid.b.command-deriv
  676. net b-pos-fb => pid.b.feedback
  677. net b-output <= pid.b.output
  678.  
  679. # Step Gen signals/setup
  680.  
  681. setp hm2_5i25.0.stepgen.03.dirsetup [JOINT_3]DIRSETUP
  682. setp hm2_5i25.0.stepgen.03.dirhold [JOINT_3]DIRHOLD
  683. setp hm2_5i25.0.stepgen.03.steplen [JOINT_3]STEPLEN
  684. setp hm2_5i25.0.stepgen.03.stepspace [JOINT_3]STEPSPACE
  685. setp hm2_5i25.0.stepgen.03.position-scale [JOINT_3]STEP_SCALE
  686. setp hm2_5i25.0.stepgen.03.step_type 0
  687. setp hm2_5i25.0.stepgen.03.control-type 1
  688. setp hm2_5i25.0.stepgen.03.maxaccel [JOINT_3]STEPGEN_MAXACCEL
  689. setp hm2_5i25.0.stepgen.03.maxvel [JOINT_3]STEPGEN_MAXVEL
  690.  
  691. # ---closedloop stepper signals---
  692.  
  693. net b-pos-cmd <= joint.3.motor-pos-cmd
  694. net b-vel-cmd <= joint.3.vel-cmd
  695. net b-output <= hm2_5i25.0.stepgen.03.velocity-cmd
  696. net b-pos-fb <= hm2_5i25.0.stepgen.03.position-fb
  697. net b-pos-fb => joint.3.motor-pos-fb
  698. net b-enable <= joint.3.amp-enable-out
  699. net b-enable => hm2_5i25.0.stepgen.03.enable
  700.  
  701. # ---setup home / limit switch signals---
  702.  
  703. # net max-home-z => joint.2.home-sw-in
  704. # net min-z => joint.2.neg-lim-sw-in
  705. # net max-home-z => joint.2.pos-lim-sw-in
  706.  
  707. #*******************
  708. # AXIS C JOINT 4
  709. #*******************
  710.  
  711. setp pid.c.Pgain [JOINT_4]P
  712. setp pid.c.Igain [JOINT_4]I
  713. setp pid.c.Dgain [JOINT_4]D
  714. setp pid.c.bias [JOINT_4]BIAS
  715. setp pid.c.FF0 [JOINT_4]FF0
  716. setp pid.c.FF1 [JOINT_4]FF1
  717. setp pid.c.FF2 [JOINT_4]FF2
  718. setp pid.c.deadband [JOINT_4]DEADBAND
  719. setp pid.c.maxoutput [JOINT_4]MAX_OUTPUT
  720. setp pid.c.error-previous-target true
  721. setp pid.c.maxerror .0005
  722.  
  723. net c-index-enable <=> pid.c.index-enable
  724. net c-enable => pid.c.enable
  725. net c-pos-cmd => pid.c.command
  726. net c-vel-cmd => pid.c.command-deriv
  727. net c-pos-fb => pid.c.feedback
  728. net c-output <= pid.c.output
  729.  
  730. # Step Gen signals/setup
  731.  
  732. setp hm2_5i25.0.stepgen.04.dirsetup [JOINT_4]DIRSETUP
  733. setp hm2_5i25.0.stepgen.04.dirhold [JOINT_4]DIRHOLD
  734. setp hm2_5i25.0.stepgen.04.steplen [JOINT_4]STEPLEN
  735. setp hm2_5i25.0.stepgen.04.stepspace [JOINT_4]STEPSPACE
  736. setp hm2_5i25.0.stepgen.04.position-scale [JOINT_4]STEP_SCALE
  737. setp hm2_5i25.0.stepgen.04.step_type 0
  738. setp hm2_5i25.0.stepgen.04.control-type 1
  739. setp hm2_5i25.0.stepgen.04.maxaccel [JOINT_4]STEPGEN_MAXACCEL
  740. setp hm2_5i25.0.stepgen.04.maxvel [JOINT_4]STEPGEN_MAXVEL
  741.  
  742. # ---closedloop stepper signals---
  743.  
  744. net c-pos-cmd <= joint.4.motor-pos-cmd
  745. net c-vel-cmd <= joint.4.vel-cmd
  746. net c-output <= hm2_5i25.0.stepgen.04.velocity-cmd
  747. net c-pos-fb <= hm2_5i25.0.stepgen.04.position-fb
  748. net c-pos-fb => joint.4.motor-pos-fb
  749. net c-enable <= joint.4.amp-enable-out
  750. net c-enable => hm2_5i25.0.stepgen.04.enable
  751.  
  752. #*******************
  753. # Tandem AXIS y2 JOINT 5
  754. #*******************
  755.  
  756. setp pid.y2.Pgain [JOINT_5]P
  757. setp pid.y2.Igain [JOINT_5]I
  758. setp pid.y2.Dgain [JOINT_5]D
  759. setp pid.y2.bias [JOINT_5]BIAS
  760. setp pid.y2.FF0 [JOINT_5]FF0
  761. setp pid.y2.FF1 [JOINT_5]FF1
  762. setp pid.y2.FF2 [JOINT_5]FF2
  763. setp pid.y2.deadband [JOINT_5]DEADBAND
  764. setp pid.y2.maxoutput [JOINT_5]MAX_OUTPUT
  765. setp pid.y2.error-previous-target true
  766. setp pid.y2.maxerror .0005
  767.  
  768. net y2-index-enable <=> pid.y2.index-enable
  769. net y2-enable => pid.y2.enable
  770. net y2-pos-cmd => pid.y2.command
  771. net y2-vel-cmd => pid.y2.command-deriv
  772. net y2-pos-fb => pid.y2.feedback
  773. net y2-output <= pid.y2.output
  774.  
  775. # Step Gen signals/setup
  776.  
  777. setp hm2_5i25.0.stepgen.05.dirsetup [JOINT_5]DIRSETUP
  778. setp hm2_5i25.0.stepgen.05.dirhold [JOINT_5]DIRHOLD
  779. setp hm2_5i25.0.stepgen.05.steplen [JOINT_5]STEPLEN
  780. setp hm2_5i25.0.stepgen.05.stepspace [JOINT_5]STEPSPACE
  781. setp hm2_5i25.0.stepgen.05.position-scale [JOINT_5]STEP_SCALE
  782. setp hm2_5i25.0.stepgen.05.step_type 0
  783. setp hm2_5i25.0.stepgen.05.control-type 1
  784. setp hm2_5i25.0.stepgen.05.maxaccel [JOINT_5]STEPGEN_MAXACCEL
  785. setp hm2_5i25.0.stepgen.05.maxvel [JOINT_5]STEPGEN_MAXVEL
  786.  
  787. # ---closedloop stepper signals---
  788.  
  789. net y2-pos-cmd <= joint.5.motor-pos-cmd
  790. net y2-vel-cmd <= joint.5.vel-cmd
  791. net y2-output <= hm2_5i25.0.stepgen.05.velocity-cmd
  792. net y2-pos-fb <= hm2_5i25.0.stepgen.05.position-fb
  793. net y2-pos-fb => joint.5.motor-pos-fb
  794. net y2-enable <= joint.5.amp-enable-out
  795. net y2-enable => hm2_5i25.0.stepgen.05.enable
  796.  
  797. # ---setup home / limit switch signals---
  798.  
  799. net min-home-y2 => joint.5.home-sw-in
  800. net min-home-y2 => joint.5.neg-lim-sw-in
  801. net max-y2 => joint.5.pos-lim-sw-in
  802.  
  803.  
  804. # *************************************************************************************************************
  805. # *************************************************************************************************************
  806. # *************************************************************************************************************
  807. # *************************************************************************************************************
  808.  
  809.  
  810.  
  811.  
  812. #******************************
  813. # connect miscellaneous signals
  814. #******************************
  815.  
  816. # ---HALUI signals---
  817.  
  818. net axis-select-x halui.axis.x.select
  819. net jog-x-pos halui.axis.x.plus
  820. net jog-x-neg halui.axis.x.minus
  821. net jog-x-analog halui.axis.x.analog
  822. net x-is-homed halui.joint.0.is-homed
  823.  
  824. net axis-select-y halui.axis.y.select
  825. net jog-y-pos halui.axis.y.plus
  826. net jog-y-neg halui.axis.y.minus
  827. net jog-y-analog halui.axis.y.analog
  828. net y-is-homed halui.joint.1.is-homed
  829.  
  830. net axis-select-z halui.axis.z.select
  831. net jog-z-pos halui.axis.z.plus
  832. net jog-z-neg halui.axis.z.minus
  833. net jog-z-analog halui.axis.z.analog
  834. net z-is-homed halui.joint.2.is-homed
  835.  
  836. net axis-select-b halui.axis.b.select
  837. net jog-b-pos halui.axis.b.plus
  838. net jog-b-neg halui.axis.b.minus
  839. net jog-b-analog halui.axis.b.analog
  840. net b-is-homed halui.joint.3.is-homed
  841.  
  842. net axis-select-c halui.axis.c.select
  843. net jog-c-pos halui.axis.c.plus
  844. net jog-c-neg halui.axis.c.minus
  845. net jog-c-analog halui.axis.c.analog
  846. net c-is-homed halui.joint.4.is-homed
  847.  
  848. net axis-select-w halui.axis.w.select
  849. net jog-w-pos halui.axis.w.plus
  850. net jog-w-neg halui.axis.w.minus
  851. net jog-w-analog halui.axis.w.analog
  852. net w-is-homed halui.joint.5.is-homed
  853.  
  854. net jog-selected-pos halui.axis.selected.plus
  855. net jog-selected-neg halui.axis.selected.minus
  856. net machine-is-on halui.machine.is-on
  857. net jog-speed halui.axis.jog-speed
  858. net MDI-mode halui.mode.is-mdi
  859.  
  860.  
  861. # ---motion control signals---
  862.  
  863. net in-position <= motion.in-position
  864. net machine-is-enabled <= motion.motion-enabled
  865.  
  866. # ---digital in / out signals---
  867.  
  868. # ---manual tool change signals---
  869.  
  870. loadusr -W hal_manualtoolchange
  871. net tool-change-request iocontrol.0.tool-change => hal_manualtoolchange.change
  872. net tool-change-confirmed iocontrol.0.tool-changed <= hal_manualtoolchange.changed
  873. net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
  874. net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
  875.  
  876. # ---estop signals---
  877.  
  878. #net estop-out <= iocontrol.0.user-enable-out
  879. net estop-ext => iocontrol.0.emc-enable-in
  880.  
  881.  
  882.  
  883.  
  884.  
  885.  
  886.  
Advertisement
Add Comment
Please, Sign In to add comment