Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # ###################################
- # Core EMC/HAL Loads
- # ###################################
- # kinematics
- loadrt trivkins
- # motion controller, get name and thread periods from ini file
- loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
- # only the 7i43 needs this, but it doesnt hurt the others
- # loadrt probe_parport
- # hostmot2 driver
- loadrt hostmot2
- # load low-level driver
- loadrt [HOSTMOT2](DRIVER) config=[HOSTMOT2](CONFIG)
- setp hm2_[HOSTMOT2](BOARD).0.watchdog.timeout_ns 10000000
- # ################################################
- # THREADS
- # ################################################
- addf hm2_[HOSTMOT2](BOARD).0.read servo-thread
- addf motion-command-handler servo-thread
- addf motion-controller servo-thread
- addf hm2_[HOSTMOT2](BOARD).0.write servo-thread
- addf hm2_[HOSTMOT2](BOARD).0.pet_watchdog servo-thread
- loadrt and2
- addf and2.0 servo-thread
- loadrt not names=mdi-ok
- addf mdi-ok servo-thread
- #********
- # X AXIS
- #********
- # axis enable chain
- newsig emcmot.00.enable bit
- sets emcmot.00.enable FALSE
- net emcmot.00.enable <= axis.0.amp-enable-out
- net emcmot.00.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.00.enable
- # position command and feedback
- net emcmot.00.pos-cmd <= axis.0.motor-pos-cmd
- net emcmot.00.pos-cmd => hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-cmd
- net motor.00.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-fb
- net motor.00.pos-fb => axis.0.motor-pos-fb
- # timing parameters
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.dirsetup [AXIS_0]DIRSETUP
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.dirhold [AXIS_0]DIRHOLD
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.steplen [AXIS_0]STEPLEN
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.stepspace [AXIS_0]STEPSPACE
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-scale [AXIS_0]SCALE
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.maxvel [AXIS_0]STEPGEN_MAX_VEL
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.maxaccel [AXIS_0]STEPGEN_MAX_ACC
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.step_type 0
- # ---setup home switch signals---
- net home-x axis.0.home-sw-in <= hm2_5i25.0.7i76.0.0.input-07
- #*******************
- # AXIS Z
- #*******************
- # axis enable chain
- newsig emcmot.02.enable bit
- sets emcmot.02.enable FALSE
- net emcmot.02.enable <= axis.2.amp-enable-out
- net emcmot.02.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.02.enable
- # position command and feedback
- net emcmot.02.pos-cmd <= axis.2.motor-pos-cmd
- net emcmot.02.pos-cmd => hm2_[HOSTMOT2](BOARD).0.stepgen.02.position-cmd
- net motor.02.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.02.position-fb
- net motor.02.pos-fb => axis.2.motor-pos-fb
- # timing parameters
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.dirsetup [AXIS_2]DIRSETUP
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.dirhold [AXIS_2]DIRHOLD
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.steplen [AXIS_2]STEPLEN
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.stepspace [AXIS_2]STEPSPACE
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.position-scale [AXIS_2]SCALE
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.maxvel [AXIS_2]STEPGEN_MAX_VEL
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.maxaccel [AXIS_2]STEPGEN_MAX_ACC
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.step_type 0
- # ---setup home switch signals---
- net home-z axis.2.home-sw-in <= hm2_5i25.0.7i76.0.0.input-08
- #*******************
- # AXIS A
- #*******************
- # axis enable chain
- newsig emcmot.03.enable bit
- sets emcmot.03.enable FALSE
- net emcmot.03.enable <= axis.3.amp-enable-out
- net emcmot.03.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.03.enable
- # position command and feedback
- net emcmot.03.pos-cmd <= axis.3.motor-pos-cmd
- net emcmot.03.pos-cmd => hm2_[HOSTMOT2](BOARD).0.stepgen.03.position-cmd
- net motor.03.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.03.position-fb
- net motor.03.pos-fb => axis.3.motor-pos-fb
- # timing parameters
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.03.dirsetup [AXIS_3]DIRSETUP
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.03.dirhold [AXIS_3]DIRHOLD
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.03.steplen [AXIS_3]STEPLEN
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.03.stepspace [AXIS_3]STEPSPACE
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.03.position-scale [AXIS_3]SCALE
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.03.maxvel [AXIS_3]STEPGEN_MAX_VEL
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.03.maxaccel [AXIS_3]STEPGEN_MAX_ACC
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.03.step_type 0
- # ---setup home switch signals---
- net home-a axis.3.home-sw-in <= hm2_5i25.0.7i76.0.0.input-09
- #*******************
- # AXIS U
- #*******************
- # axis enable chain
- newsig emcmot.06.enable bit
- sets emcmot.06.enable FALSE
- net emcmot.06.enable <= axis.6.amp-enable-out
- net emcmot.06.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.06.enable
- # position command and feedback
- net emcmot.06.pos-cmd <= axis.6.motor-pos-cmd
- net emcmot.06.pos-cmd => hm2_[HOSTMOT2](BOARD).0.stepgen.06.position-cmd
- net motor.06.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.06.position-fb
- net motor.06.pos-fb => axis.6.motor-pos-fb
- # timing parameters
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.06.dirsetup [AXIS_6]DIRSETUP
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.06.dirhold [AXIS_6]DIRHOLD
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.06.steplen [AXIS_6]STEPLEN
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.06.stepspace [AXIS_6]STEPSPACE
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.06.position-scale [AXIS_6]SCALE
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.06.maxvel [AXIS_6]STEPGEN_MAX_VEL
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.06.maxaccel [AXIS_6]STEPGEN_MAX_ACC
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.06.step_type 0
- # ---setup home switch signals---
- net home-u axis.6.home-sw-in <= hm2_5i25.0.7i76.0.2.input-07
- #*******************
- # AXIS V
- #*******************
- # axis enable chain
- newsig emcmot.07.enable bit
- sets emcmot.07.enable FALSE
- net emcmot.07.enable <= axis.7.amp-enable-out
- net emcmot.07.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.07.enable
- # position command and feedback
- net emcmot.07.pos-cmd <= axis.7.motor-pos-cmd
- net emcmot.07.pos-cmd => hm2_[HOSTMOT2](BOARD).0.stepgen.07.position-cmd
- net motor.07.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.07.position-fb
- net motor.07.pos-fb => axis.7.motor-pos-fb
- # timing parameters
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.07.dirsetup [AXIS_7]DIRSETUP
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.07.dirhold [AXIS_7]DIRHOLD
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.07.steplen [AXIS_7]STEPLEN
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.07.stepspace [AXIS_7]STEPSPACE
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.07.position-scale [AXIS_7]SCALE
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.07.maxvel [AXIS_7]STEPGEN_MAX_VEL
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.07.maxaccel [AXIS_7]STEPGEN_MAX_ACC
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.07.step_type 0
- # ---setup home switch signals---
- net home-v axis.7.home-sw-in <= hm2_5i25.0.7i76.0.2.input-08
- #*******************
- # AXIS W
- #*******************
- # axis enable chain
- newsig emcmot.08.enable bit
- sets emcmot.08.enable FALSE
- net emcmot.08.enable <= axis.8.amp-enable-out
- net emcmot.08.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.08.enable
- # position command and feedback
- net emcmot.08.pos-cmd <= axis.8.motor-pos-cmd
- net emcmot.08.pos-cmd => hm2_[HOSTMOT2](BOARD).0.stepgen.08.position-cmd
- net motor.08.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.08.position-fb
- net motor.08.pos-fb => axis.8.motor-pos-fb
- # timing parameters
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.08.dirsetup [AXIS_8]DIRSETUP
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.08.dirhold [AXIS_8]DIRHOLD
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.08.steplen [AXIS_8]STEPLEN
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.08.stepspace [AXIS_8]STEPSPACE
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.08.position-scale [AXIS_8]SCALE
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.08.maxvel [AXIS_8]STEPGEN_MAX_VEL
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.08.maxaccel [AXIS_8]STEPGEN_MAX_ACC
- setp hm2_[HOSTMOT2](BOARD).0.stepgen.08.step_type 0
- # ---setup home switch signals---
- net home-w axis.8.home-sw-in <= hm2_5i25.0.7i76.0.2.input-09
- #******************************
- # connect miscellaneous signals
- #******************************
- # ---digital in / out signals---
- # External Program Run Button
- net program-run-btn halui.mode.auto <= hm2_5i25.0.7i76.0.0.input-01-not
- net program-run-btn and2.0.in0
- net program-is-auto and2.0.in1 <= halui.mode.is-auto
- net remote-prg-run halui.program.run <= and2.0.out
- # External Home All Button
- # once homing is verified un-comment
- net home-machine halui.home-all <= hm2_5i25.0.7i76.0.0.input-02-not
- # External Move to Load Position Button
- # once load location is established un-comment
- net load-machine halui.mdi-command-00 <= hm2_5i25.0.7i76.0.0.input-03-not
- # estop
- loadrt estop_latch
- addf estop-latch.0 servo-thread
- net estop-loopout iocontrol.0.emc-enable-in <= estop-latch.0.ok-out
- net estop-loopin iocontrol.0.user-enable-out => estop-latch.0.ok-in
- net estop-reset iocontrol.0.user-request-enable => estop-latch.0.reset
- net remote-estop estop-latch.0.fault-in <= hm2_5i25.0.7i76.0.0.input-00-not
- # ---toolchange signals for custom tool changer---
- net tool-number <= iocontrol.0.tool-prep-number
- net tool-change-request <= iocontrol.0.tool-change
- net tool-change-confirmed => iocontrol.0.tool-changed
- net tool-prepare-request <= iocontrol.0.tool-prepare
- net tool-prepare-confirmed => iocontrol.0.tool-prepared
- # spindles
- net m3-spindles motion.spindle-on => hm2_5i25.0.7i76.0.0.output-00
- net m66p0-spindle motion.digital-out-00 => hm2_5i25.0.7i76.0.0.output-01
- net m66p0-spindle motion.digital-out-00 => hm2_5i25.0.7i76.0.0.output-02
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement