Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # This file is loaded pre GUI
- # Hacked out on 4/6/15 First Version
- loadrt trivkins
- loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
- loadrt hostmot2
- loadrt [HOSTMOT2](DRIVER) config=[HOSTMOT2](CONFIG)
- setp hm2_[HOSTMOT2](BOARD).0.watchdog.timeout_ns 25000000
- setp hm2_7i80.0.pwmgen.pwm_frequency 24000
- setp hm2_7i80.0.pwmgen.pdm_frequency 6000
- setp hm2_7i80.0.resolver.excitation-khz 2.5
- loadrt classicladder_rt numRungs=150 numSections=20 numBits=25 numWords=20 numTimers=5 numMonostables=25 numCounters=30 numPhysInputs=90 numPhysOutputs=70 numS32in=20 numS32out=20 numFloatIn=20 numFloatOut=20 numTimersIec=50 numArithmExpr=150 numSymbols=600
- loadrt pid names=pid.x,pid.y,pid.z
- loadrt abs count=1
- loadrt lowpass count=1
- loadrt scale count=3
- loadrt mux16 count=1
- loadrt gearchange count=1
- loadrt mux4 count=1
- loadrt ilowpass count=1
- #========================================================================================
- addf hm2_7i80.0.read servo-thread
- addf hm2_7i80.0.write servo-thread
- addf motion-command-handler servo-thread
- addf motion-controller servo-thread
- addf classicladder.0.refresh servo-thread
- addf pid.x.do-pid-calcs servo-thread
- addf pid.y.do-pid-calcs servo-thread
- addf pid.z.do-pid-calcs servo-thread
- addf mux16.0 servo-thread
- addf lowpass.0 servo-thread
- addf abs.0 servo-thread
- addf scale.0 servo-thread
- addf gearchange.0 servo-thread
- addf mux4.0 servo-thread
- addf ilowpass.0 servo-thread
- #========================================================================================
- # external output signals
- net mcr => hm2_7i80.0.7i71.0.1.output-00
- net xyz-drive-power => hm2_7i80.0.7i71.0.1.output-01
- net drives => hm2_7i80.0.7i71.0.1.output-02
- net hydraulic-pump => hm2_7i80.0.7i71.0.1.output-03
- net way-lube => hm2_7i80.0.7i71.0.1.output-04
- net coolant-pump => hm2_7i80.0.7i71.0.1.output-05
- net tool-unclamp => hm2_7i80.0.7i71.0.1.output-06
- net orient-pin-in => hm2_7i80.0.7i71.0.1.output-07
- net high-gear => hm2_7i80.0.7i71.0.1.output-08
- net low-gear => hm2_7i80.0.7i71.0.1.output-09
- net air-blast => hm2_7i80.0.7i71.0.1.output-10
- net shot-pin-out => hm2_7i80.0.7i71.0.1.output-11
- net rotate-drum-cw => hm2_7i80.0.7i71.0.1.output-12
- net rotate-drum-ccw => hm2_7i80.0.7i71.0.1.output-13
- net tool-arm-up => hm2_7i80.0.7i71.0.1.output-14
- net tool-arm-down => hm2_7i80.0.7i71.0.1.output-15
- net tool-arm-out => hm2_7i80.0.7i71.0.1.output-16
- net tool-arm-in => hm2_7i80.0.7i71.0.1.output-17
- net external-coolant => hm2_7i80.0.7i71.0.1.output-18
- net mist-coolant => hm2_7i80.0.7i71.0.1.output-19
- net internal-coolant => hm2_7i80.0.7i71.0.1.output-20
- net z-axis-brake => hm2_7i80.0.7i71.0.1.output-21
- net in-cycle-led => hm2_7i80.0.7i71.0.1.output-22
- net feed-hold-led => hm2_7i80.0.7i71.0.1.output-23
- net spindle-cw => hm2_7i80.0.7i71.0.1.output-24
- net spindle-ccw => hm2_7i80.0.7i71.0.1.output-25
- net spindle-alarm-reset => hm2_7i80.0.7i71.0.1.output-26
- net spindle-estop => hm2_7i80.0.7i71.0.1.output-27
- net drum-max-rpm => hm2_7i80.0.7i71.0.1.output-28
- net tool-arm-drum => hm2_7i80.0.7i71.0.1.output-29
- net tool-arm-spindle => hm2_7i80.0.7i71.0.1.output-30
- net slides-enable => hm2_7i80.0.7i71.0.1.output-31
- #net => hm2_7i80.0.7i71.0.1.output-32
- #net => hm2_7i80.0.7i71.0.1.output-33
- #net => hm2_7i80.0.7i71.0.1.output-34
- #net => hm2_7i80.0.7i71.0.1.output-35
- #net => hm2_7i80.0.7i71.0.1.output-36
- #========================================================================================
- # external input signals
- net hydraulic-motor-ol <= hm2_7i80.0.7i70.0.2.input-00
- net coolant-motor-ol <= hm2_7i80.0.7i70.0.2.input-01
- net up-to-speed <= hm2_7i80.0.7i70.0.2.input-02
- net below-90-rpm <= hm2_7i80.0.7i70.0.2.input-03
- net e-stop-pb <= hm2_7i80.0.7i70.0.2.input-04
- net feed-hold <= hm2_7i80.0.7i70.0.2.input-05
- net orient-pin-in-ls <= hm2_7i80.0.7i70.0.2.input-06
- net orient-pin-out-ls <= hm2_7i80.0.7i70.0.2.input-07
- net spindle-in-high-range <= hm2_7i80.0.7i70.0.2.input-08
- net spindle-in-low-range <= hm2_7i80.0.7i70.0.2.input-09
- net spindle-in-neutral <= hm2_7i80.0.7i70.0.2.input-10
- net tool-clamped <= hm2_7i80.0.7i70.0.2.input-11
- net tool-unclamped <= hm2_7i80.0.7i70.0.2.input-12
- net oil-in-resevoir <= hm2_7i80.0.7i70.0.2.input-13
- net spindle-lube-pressure-ok <= hm2_7i80.0.7i70.0.2.input-14
- net x-servo-motor-overload <= hm2_7i80.0.7i70.0.2.input-15
- net y-servo-motor-overload <= hm2_7i80.0.7i70.0.2.input-16
- net z-servo-motor-overload <= hm2_7i80.0.7i70.0.2.input-17
- net tool-changer-jog <= hm2_7i80.0.7i70.0.2.input-18
- net shot-pin-in <= hm2_7i80.0.7i70.0.2.input-19
- net drum-home <= hm2_7i80.0.7i70.0.2.input-20
- net drum-position-strobe <= hm2_7i80.0.7i70.0.2.input-21
- net tool-arm-in-prx <= hm2_7i80.0.7i70.0.2.input-22
- net tool-arm-out-prx <= hm2_7i80.0.7i70.0.2.input-23
- net tool-arm-up-prx <= hm2_7i80.0.7i70.0.2.input-24
- net tool-arm-down-prx <= hm2_7i80.0.7i70.0.2.input-25
- net tool-arm-drum-prx <= hm2_7i80.0.7i70.0.2.input-26
- net tool-arm-spindle-prx <= hm2_7i80.0.7i70.0.2.input-27
- net tool-changer-recovery <= hm2_7i80.0.7i70.0.2.input-28
- net spindle-fault <= hm2_7i80.0.7i70.0.2.input-29
- net zero-speed <= hm2_7i80.0.7i70.0.2.input-30
- #net <= hm2_7i80.0.7i70.0.2.input-31
- net mpg-x <= hm2_7i80.0.7i70.0.2.input-32
- net mpg-y <= hm2_7i80.0.7i70.0.2.input-33
- net mpg-z <= hm2_7i80.0.7i70.0.2.input-34
- net mpg-4 <= hm2_7i80.0.7i70.0.2.input-35
- net scale0 <= hm2_7i80.0.7i70.0.2.input-36
- net scale1 <= hm2_7i80.0.7i70.0.2.input-37
- net scale2 <= hm2_7i80.0.7i70.0.2.input-38
- net coolant-on <= hm2_7i80.0.7i70.0.2.input-39-not
- #net <= hm2_7i80.0.7i70.0.2.input-40
- #net <= hm2_7i80.0.7i70.0.2.input-41
- net x-pos-overtravel <= hm2_7i80.0.7i70.0.2.input-42-not
- net x-neg-overtravel <= hm2_7i80.0.7i70.0.2.input-43-not
- net y-pos-overtravel <= hm2_7i80.0.7i70.0.2.input-44-not
- net y-neg-overtravel <= hm2_7i80.0.7i70.0.2.input-45-not
- net z-pos-overtravel <= hm2_7i80.0.7i70.0.2.input-46-not
- net z-neg-overtravel <= hm2_7i80.0.7i70.0.2.input-47-not
- #========================================================================================
- # 7I73 Input signals
- net encoder-counts <= hm2_7i80.0.7i73.0.0.enc0.count
- net arm-up <= hm2_7i80.0.7i73.0.0.input-10-not
- net arm-down <= hm2_7i80.0.7i73.0.0.input-11-not
- net arm-in <= hm2_7i80.0.7i73.0.0.input-12-not
- net arm-out <= hm2_7i80.0.7i73.0.0.input-13-not
- net arm-spindle <= hm2_7i80.0.7i73.0.0.input-14-not
- net arm-drum <= hm2_7i80.0.7i73.0.0.input-15-not
- net feedrate-percent-a <= hm2_7i80.0.7i73.0.0.input-16-not
- net feedrate-percent-b <= hm2_7i80.0.7i73.0.0.input-17-not
- net feedrate-percent-c <= hm2_7i80.0.7i73.0.0.input-18-not
- net feedrate-percent-d <= hm2_7i80.0.7i73.0.0.input-19-not
- net tool-unclamp-pb <= hm2_7i80.0.7i73.0.0.input-20-not
- net tool-changer-align <= hm2_7i80.0.7i73.0.0.input-21-not
- net spindle-start <= hm2_7i80.0.7i73.0.0.input-22-not
- net spindle-stop <= hm2_7i80.0.7i73.0.0.input-23-not
- #======================= SRT ADDED ==================================================
- #net machine-is-enabled => hm2_7i80.0.7i71.0.3.output-12
- #net spindle-enable => hm2_7i80.0.7i71.0.3.output-13
- net z-pos-overtravel => axis.2.pos-lim-sw-in axis.2.home-sw-in
- net z-neg-overtravel => axis.2.neg-lim-sw-in
- #net z-axis-homing => axis.2.homing
- net x-neg-overtravel => axis.0.neg-lim-sw-in
- net x-pos-overtravel => axis.0.pos-lim-sw-in axis.0.home-sw-in
- #net x-axis-homing => axis.0.homing
- net y-neg-overtravel => axis.1.neg-lim-sw-in
- net y-pos-overtravel => axis.1.pos-lim-sw-in axis.1.home-sw-in
- #net y-axis-homing => axis.1.homing
- net program-running <= halui.program.is-running
- net cycle-stop <= halui.program.stop
- net program-pause => halui.program.pause
- net program-run => halui.program.run
- net program-resume => halui.program.resume
- net mode-auto => halui.mode.auto
- net mode-is-auto <= halui.mode.is-auto
- net single-line => halui.program.step
- net program-is-paused <= halui.program.is-paused
- net flood-off => halui.flood.off
- net flood-on => halui.flood.on
- net optional-stop-on => halui.program.optional-stop.on
- net optional-stop-is-on => halui.program.optional-stop.is-on
- net optional-stop-off => halui.program.optional-stop.off
- #========================================================================================
- # Jog Pendant
- # setp encoder.0.x4-mode 0
- setp hm2_7i80.0.7i73.0.0.enc0.scale 1
- setp axis.0.jog-vel-mode 1
- setp axis.1.jog-vel-mode 1
- setp axis.2.jog-vel-mode 1
- net smoothed-encoder-counts => axis.0.jog-counts
- net smoothed-encoder-counts => axis.1.jog-counts
- net smoothed-encoder-counts => axis.2.jog-counts
- net mpg-x <= axis.0.jog-enable
- net mpg-y <= axis.1.jog-enable
- net mpg-z <= axis.2.jog-enable
- net mpg-scale => axis.0.jog-scale
- net mpg-scale => axis.1.jog-scale
- net mpg-scale => axis.2.jog-scale
- # ILOWPASS.0
- setp ilowpass.0.gain 0.02
- setp ilowpass.0.scale 100
- net encoder-counts => ilowpass.0.in
- net smoothed-encoder-counts <= ilowpass.0.out
- # MUX4.0
- setp mux4.0.in0 0.0001
- setp mux4.0.in1 0.00001
- setp mux4.0.in2 0.000001
- #setp mux4.0.in3 0.0001
- net scale1 <= mux4.0.sel0
- net scale2 <= mux4.0.sel1
- net mpg-scale <= mux4.0.out
- #========================================================================================
- # X AXIS
- setp pid.x.Pgain [AXIS_0]P
- setp pid.x.Igain [AXIS_0]I
- setp pid.x.Dgain [AXIS_0]D
- setp pid.x.bias [AXIS_0]BIAS
- setp pid.x.FF0 [AXIS_0]FF0
- setp pid.x.FF1 [AXIS_0]FF1
- setp pid.x.FF2 [AXIS_0]FF2
- setp pid.x.deadband [AXIS_0]DEADBAND
- setp pid.x.maxoutput [AXIS_0]MAX_OUTPUT
- net x-index-enable <=> pid.x.index-enable
- net x-enable => pid.x.enable
- net x-output => pid.x.output
- net x-pos-cmd => pid.x.command
- net x-pos-fb => pid.x.feedback
- # ---PWM Generator signals/setup---
- setp hm2_7i80.0.pwmgen.00.output-type 2
- setp hm2_7i80.0.pwmgen.00.scale [AXIS_0]OUTPUT_SCALE
- net x-output => hm2_7i80.0.pwmgen.00.value
- net x-enable => hm2_7i80.0.pwmgen.00.enable axis.0.amp-enable-out
- net x-pos-cmd <= axis.0.motor-pos-cmd
- # ---Reslover feedback signals/setup---
- setp hm2_7i80.0.resolver.00.scale [AXIS_0]RESOLVER_SCALE
- net x-pos-fb <= hm2_7i80.0.resolver.00.position
- net x-pos-fb => axis.0.motor-pos-fb
- #========================================================================================
- # Y AXIS
- setp pid.y.Pgain [AXIS_1]P
- setp pid.y.Igain [AXIS_1]I
- setp pid.y.Dgain [AXIS_1]D
- setp pid.y.bias [AXIS_1]BIAS
- setp pid.y.FF1 [AXIS_1]FF1
- setp pid.y.FF1 [AXIS_1]FF1
- setp pid.y.FF2 [AXIS_1]FF2
- setp pid.y.deadband [AXIS_1]DEADBAND
- setp pid.y.maxoutput [AXIS_1]MAX_OUTPUT
- net y-index-enable <=> pid.y.index-enable
- net y-enable => pid.y.enable
- net y-output => pid.y.output
- net y-pos-cmd => pid.y.command
- net y-pos-fb => pid.y.feedback
- # ---PWM Generator signals/setup---
- setp hm2_7i80.0.pwmgen.01.output-type 2
- setp hm2_7i80.0.pwmgen.01.scale [AXIS_1]OUTPUT_SCALE
- net y-output => hm2_7i80.0.pwmgen.01.value
- net y-enable => hm2_7i80.0.pwmgen.01.enable axis.1.amp-enable-out
- net y-pos-cmd <= axis.1.motor-pos-cmd
- # ---Reslover feedback signals/setup---
- setp hm2_7i80.0.resolver.01.scale [AXIS_1]RESOLVER_SCALE
- net y-pos-fb <= hm2_7i80.0.resolver.01.position
- net y-pos-fb => axis.1.motor-pos-fb
- #========================================================================================
- # Z AXIS
- setp pid.z.Pgain [AXIS_2]P
- setp pid.z.Igain [AXIS_2]I
- setp pid.z.Dgain [AXIS_2]D
- setp pid.z.bias [AXIS_2]BIAS
- setp pid.z.FF0 [AXIS_2]FF0
- setp pid.z.FF1 [AXIS_2]FF1
- setp pid.z.FF2 [AXIS_2]FF2
- setp pid.z.deadband [AXIS_2]DEADBAND
- setp pid.z.maxoutput [AXIS_2]MAX_OUTPUT
- net z-index-enable <=> pid.z.index-enable
- net z-enable => pid.z.enable
- net z-output => pid.z.output
- net z-pos-cmd => pid.z.command
- net z-pos-fb => pid.z.feedback
- # ---PWM Generator signals/setup---
- setp hm2_7i80.0.pwmgen.02.output-type 2
- setp hm2_7i80.0.pwmgen.02.scale [AXIS_2]OUTPUT_SCALE
- net z-output => hm2_7i80.0.pwmgen.02.value
- net z-enable => hm2_7i80.0.pwmgen.02.enable axis.2.amp-enable-out
- net z-pos-cmd <= axis.2.motor-pos-cmd
- # ---Resolver feedback signals/setup---
- setp hm2_7i80.0.resolver.02.scale [AXIS_2]RESOLVER_SCALE
- net z-pos-fb <= hm2_7i80.0.resolver.02.position
- net z-pos-fb => axis.2.motor-pos-fb
- #========================================================================================
- # SPINDLE S
- # ---PWM Generator signals/setup---
- setp hm2_7i80.0.pwmgen.03.output-type 2
- setp hm2_7i80.0.pwmgen.03.scale [SPINDLE_9]OUTPUT_SCALE
- net spindle-vel-cmd => hm2_7i80.0.pwmgen.03.value
- net motion.drives-enable => hm2_7i80.0.pwmgen.03.enable
- # ---Encoder feedback signals/setup---
- # net spindle-revs <= hm2_7i80.0.
- # net spindle-vel-fb <= hm2_7i80.0.
- # net spindle-index-enable <=> hm2_7i80.0.
- # --- Setup spindle control signals---
- net spindle-vel-cmd-rps <= motion.spindle-speed-out-rps
- net spindle-junk <= motion.spindle-speed-out
- net spindle-enable <= motion.spindle-on
- net spindle-cmd-cw <= motion.spindle-forward
- net spindle-cmd-ccw <= motion.spindle-reverse
- net spindle-brake <= motion.spindle-brake
- net spindle-revs => motion.spindle-revs
- net up-to-speed => motion.spindle-at-speed
- net spindle-vel-fb => motion.spindle-speed-in
- net spindle-index-enable <=> motion.spindle-index-enable
- #========================================================================================
- # Gearchange
- # Gearchange.0
- setp gearchange.0.min1 25
- setp gearchange.0.max1 630
- setp gearchange.0.min2 631
- setp gearchange.0.max2 4000
- setp gearchange.0.scale2 25.24
- setp gearchange.0.sel 0
- net spindle-junk => gearchange.0.speed-in
- net spindle-vel-cmd <= gearchange.0.speed-out
- net spindle-running-in-high-range => gearchange.0.sel
- #========================================================================================
- # Setup spindle at speed signal, sets spindle-at-speed true
- # LOWPASS.0
- setp lowpass.0.gain .009
- net spindle-vel-fb => lowpass.0.in
- net spindle-fb-filtered-rps <= lowpass.0.out
- # ABS.0
- net spindle-fb-filtered-rps => abs.0.in
- net spindle-fb-filtered-abs-rps <= abs.0.out
- # SCALE.0
- setp scale.0.gain 60
- net spindle-fb-filtered-abs-rps => scale.0.in
- net scaled-spindle-vel <= scale.0.out
- #========================================================================================
- # connect miscellaneous signals
- # ---HALUI signals---
- #net joint-select-a halui.joint.0.select
- net x-is-homed halui.joint.0.is-homed
- net jog-x-pos halui.jog.0.plus
- net jog-x-neg halui.jog.0.minus
- net jog-x-analog halui.jog.0.analog
- net y-is-homed halui.joint.1.is-homed
- net jog-y-pos halui.jog.1.plus
- net jog-y-neg halui.jog.1.minus
- net jog-y-analog halui.jog.1.analog
- #net joint-select-c halui.joint.2.select
- net z-is-homed halui.joint.2.is-homed
- net jog-z-pos halui.jog.2.plus
- net jog-z-neg halui.jog.2.minus
- net jog-z-analog halui.jog.2.analog
- net jog-selected-pos halui.jog.selected.plus
- net jog-selected-neg halui.jog.selected.minus
- net spindle-manual-cw halui.spindle.forward
- net spindle-manual-ccw halui.spindle.reverse
- net spindle-manual-stop halui.spindle.stop
- net spindle-manual-start halui.spindle.start
- net machine-is-on halui.machine.is-on
- net jog-speed halui.jog-speed
- net MDI-mode halui.mode.is-mdi
- #========================================================================================
- # ---coolant signals---
- #net coolant-mist <= iocontrol.0.coolant-mist
- net coolant-flood <= iocontrol.0.coolant-flood
- #========================================================================================
- # connect feed overide increments - switches
- setp halui.feed-override.count-enable true
- setp halui.feed-override.direct-value true
- setp halui.feed-override.scale .01
- net feedoverride-incr => halui.feed-override.counts
- net feedoverride-incr <= mux16.0.out-s
- net feedrate-percent-a => mux16.0.sel0
- net feedrate-percent-b => mux16.0.sel1
- net feedrate-percent-c => mux16.0.sel2
- net feedrate-percent-d => mux16.0.sel3
- # Mux16.0
- setp mux16.0.debounce-time 0.200000
- setp mux16.0.use-graycode False
- setp mux16.0.suppress-no-input False
- setp mux16.0.in00 0.000000
- setp mux16.0.in01 10.000000
- setp mux16.0.in02 20.000000
- setp mux16.0.in03 30.000000
- setp mux16.0.in04 40.000000
- setp mux16.0.in05 50.000000
- setp mux16.0.in06 60.000000
- setp mux16.0.in07 70.000000
- setp mux16.0.in08 80.000000
- setp mux16.0.in09 90.000000
- setp mux16.0.in10 100.000000
- #========================================================================================
- # ---motion control signals---
- net in-position <= motion.in-position
- net machine-is-enabled <= motion.motion-enabled
- #========================================================================================
- # ---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
- #========================================================================================
- # --- ESTOP Chain ---
- net estop-all-ok => iocontrol.0.emc-enable-in
- net emc-reset-estop => iocontrol.0.user-request-enable
- net emc-estop <= iocontrol.0.user-enable-out
- #========================================================================================
- # Load Classicladder
- loadusr classicladder --nogui 10vcladder.clp
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement