229 lines
7.2 KiB
Plaintext
229 lines
7.2 KiB
Plaintext
#Real Time Modules
|
|
loadrt [KINS]KINEMATICS
|
|
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS num_spindles=[TRAJ]SPINDLES
|
|
loadrt hal_parport cfg="0 out"
|
|
setp parport.0.reset-time 5000
|
|
loadrt stepgen step_type=0,0,0,0,0 ctrl_type=p,p,p,p,v
|
|
loadrt ilowpass count=1
|
|
loadrt timedelay count=2
|
|
loadrt or2 count=3
|
|
loadrt xor2 count=2
|
|
loadrt mux_generic config="bb2"
|
|
loadrt dsmono count=1
|
|
loadrt timedelta count=1
|
|
|
|
addf parport.0.read base-thread
|
|
addf stepgen.make-pulses base-thread
|
|
addf parport.0.write base-thread
|
|
addf parport.0.reset base-thread
|
|
addf mux-gen.00 base-thread
|
|
addf timedelta.0 base-thread
|
|
|
|
addf stepgen.capture-position servo-thread
|
|
addf motion-command-handler servo-thread
|
|
addf motion-controller servo-thread
|
|
addf stepgen.update-freq servo-thread
|
|
addf dsmono.0 servo-thread
|
|
|
|
#Pin Assignments
|
|
net estop-out => parport.0.pin-01-out
|
|
net xstep => parport.0.pin-02-out
|
|
setp parport.0.pin-02-out-reset 1
|
|
net xdir => parport.0.pin-03-out
|
|
net ystep => parport.0.pin-04-out
|
|
setp parport.0.pin-04-out-reset 1
|
|
net ydir => parport.0.pin-05-out
|
|
net zstep => parport.0.pin-06-out
|
|
setp parport.0.pin-06-out-reset 1
|
|
setp parport.0.pin-07-out-invert 1
|
|
net zdir => parport.0.pin-07-out
|
|
net astep => parport.0.pin-16-out
|
|
net adir => parport.0.pin-17-out
|
|
|
|
net estop-ext <= parport.0.pin-10-in
|
|
net min-home-x <= parport.0.pin-11-in-not
|
|
net min-home-y <= parport.0.pin-12-in-not
|
|
net max-home-z <= parport.0.pin-13-in-not
|
|
|
|
#Probe
|
|
setp dsmono.0.deadtime-ns 50000000
|
|
net probe-in <= parport.0.pin-15-in-not
|
|
net probe-in => dsmono.0.in
|
|
net probe-debounced <= dsmono.0.out
|
|
net probe-debounced => motion.probe-input
|
|
|
|
#X-Axis
|
|
setp stepgen.0.position-scale [JOINT_0]SCALE
|
|
setp stepgen.0.steplen 1
|
|
setp stepgen.0.stepspace 0
|
|
setp stepgen.0.dirhold 36000
|
|
setp stepgen.0.dirsetup 36000
|
|
setp stepgen.0.maxaccel [JOINT_0]STEPGEN_MAXACCEL
|
|
net xpos-cmd joint.0.motor-pos-cmd => stepgen.0.position-cmd
|
|
net xpos-fb stepgen.0.position-fb => joint.0.motor-pos-fb
|
|
net xstep <= stepgen.0.step
|
|
net xdir <= stepgen.0.dir
|
|
net xenable joint.0.amp-enable-out => stepgen.0.enable
|
|
net min-home-x => joint.0.home-sw-in
|
|
net min-home-x => joint.0.neg-lim-sw-in
|
|
|
|
#Y-Axis
|
|
setp stepgen.1.position-scale [JOINT_1]SCALE
|
|
setp stepgen.1.steplen 1
|
|
setp stepgen.1.stepspace 0
|
|
setp stepgen.1.dirhold 36000
|
|
setp stepgen.1.dirsetup 36000
|
|
setp stepgen.1.maxaccel [JOINT_1]STEPGEN_MAXACCEL
|
|
net ypos-cmd joint.1.motor-pos-cmd => stepgen.1.position-cmd
|
|
net ypos-fb stepgen.1.position-fb => joint.1.motor-pos-fb
|
|
net ystep <= stepgen.1.step
|
|
net ydir <= stepgen.1.dir
|
|
net yenable joint.1.amp-enable-out => stepgen.1.enable
|
|
net min-home-y => joint.1.home-sw-in
|
|
net min-home-y => joint.1.neg-lim-sw-in
|
|
|
|
#Z-Axis
|
|
setp stepgen.2.position-scale [JOINT_2]SCALE
|
|
setp stepgen.2.steplen 1
|
|
setp stepgen.2.stepspace 0
|
|
setp stepgen.2.dirhold 36000
|
|
setp stepgen.2.dirsetup 36000
|
|
setp stepgen.2.maxaccel [JOINT_2]STEPGEN_MAXACCEL
|
|
net zpos-cmd joint.2.motor-pos-cmd => stepgen.2.position-cmd
|
|
net zpos-fb stepgen.2.position-fb => joint.2.motor-pos-fb
|
|
net zstep <= stepgen.2.step
|
|
net zdir <= stepgen.2.dir
|
|
net zenable joint.2.amp-enable-out => stepgen.2.enable
|
|
net max-home-z => joint.2.home-sw-in
|
|
net max-home-z => joint.2.pos-lim-sw-in
|
|
|
|
#A-Axis
|
|
|
|
#Absolute
|
|
setp stepgen.3.position-scale [JOINT_3]SCALE
|
|
setp stepgen.3.steplen 1
|
|
setp stepgen.3.stepspace 0
|
|
setp stepgen.3.dirhold 36000
|
|
setp stepgen.3.dirsetup 36000
|
|
setp stepgen.3.maxaccel [JOINT_3]STEPGEN_MAXACCEL
|
|
|
|
net astepAbs stepgen.3.step => mux-gen.00.in-bit-00
|
|
net adir stepgen.3.dir
|
|
net aenable joint.3.amp-enable-out => stepgen.3.enable
|
|
net apos-cmd joint.3.motor-pos-cmd => stepgen.3.position-cmd
|
|
net apos-fb stepgen.3.position-fb => joint.3.motor-pos-fb
|
|
|
|
net astep <= mux-gen.00.out-bit
|
|
|
|
#Velocity
|
|
setp stepgen.4.position-scale [JOINT_3]SCALE
|
|
setp stepgen.4.steplen 1
|
|
setp stepgen.4.stepspace 0
|
|
setp stepgen.4.dirhold 36000
|
|
setp stepgen.4.dirsetup 36000
|
|
setp stepgen.4.maxaccel [JOINT_3]STEPGEN_MAXACCEL
|
|
|
|
net spindle-1-enable <= spindle.1.on => mux-gen.00.sel-bit-00 stepgen.4.enable
|
|
net spindle-1-cmd spindle.1.speed-out => stepgen.4.velocity-cmd
|
|
net astepVel <= stepgen.4.step => mux-gen.00.in-bit-01
|
|
|
|
net estop-out <= iocontrol.0.user-enable-out
|
|
net estop-ext => iocontrol.0.emc-enable-in
|
|
|
|
#Toolchanger
|
|
loadusr -W hal_manualtoolchange
|
|
net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change
|
|
net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed
|
|
net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
|
|
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
|
|
|
|
#CNCExtension
|
|
loadusr -Wn cncextension ./cncextension
|
|
|
|
#Amp enable
|
|
net amp-enable halui.machine.is-on => cncextension.wr0
|
|
|
|
#Main Spindle Control
|
|
net spindle-main-fwd spindle.0.forward
|
|
net spindle-main-fwd => cncextension.ch0
|
|
net spindle-main-fwd => cncextension.ch2
|
|
net spindle-main-fwd => cncextension.opt
|
|
|
|
addf timedelay.0 servo-thread
|
|
setp timedelay.0.on-delay 10
|
|
setp timedelay.0.off-delay 0
|
|
net spindle-main-fwd => timedelay.0.in
|
|
net spindle-on-timer <= timedelay.0.out
|
|
|
|
addf timedelay.1 servo-thread
|
|
setp timedelay.1.on-delay 10
|
|
setp timedelay.1.off-delay 0
|
|
net spindle-main-break spindle.0.brake => timedelay.1.in
|
|
net spindle-off-timer <= timedelay.1.out
|
|
|
|
addf or2.0 servo-thread
|
|
net spindle-on-timer => or2.0.in0
|
|
net spindle-off-timer => or2.0.in1
|
|
net spindle-main-inhibit <= or2.0.out
|
|
|
|
addf or2.1 servo-thread
|
|
net spindle-1-enable => or2.1.in0
|
|
net spindle-main-inhibit => or2.1.in1
|
|
net spindle-inhibit <= or2.1.out
|
|
net spindle-main-inhibit => spindle.0.at-speed
|
|
|
|
net spindle-position => spindle.0.revs
|
|
net spindle-axis-rpm => spindle.0.speed-in
|
|
|
|
#MPG
|
|
setp joint.0.jog-vel-mode 0
|
|
setp axis.x.jog-vel-mode 0
|
|
|
|
setp joint.1.jog-vel-mode 0
|
|
setp axis.y.jog-vel-mode 0
|
|
|
|
setp joint.2.jog-vel-mode 0
|
|
setp axis.z.jog-vel-mode 0
|
|
|
|
setp joint.0.jog-scale 0.0001
|
|
setp axis.x.jog-scale 0.0001
|
|
|
|
setp joint.1.jog-scale 0.0001
|
|
setp axis.y.jog-scale 0.0001
|
|
|
|
setp joint.2.jog-scale 0.00005
|
|
setp axis.z.jog-scale 0.00005
|
|
|
|
net x_enable cncextension.xEnable => axis.x.jog-enable
|
|
net y_enable cncextension.yEnable => axis.y.jog-enable
|
|
net z_enable cncextension.zEnable => axis.z.jog-enable
|
|
net raw-encoder-counts <= cncextension.encoder
|
|
|
|
addf ilowpass.0 servo-thread
|
|
setp ilowpass.0.scale 1024
|
|
setp ilowpass.0.gain 0.01
|
|
net raw-encoder-counts => ilowpass.0.in
|
|
net encoder-counts <= ilowpass.0.out
|
|
|
|
net encoder-counts => axis.x.jog-counts
|
|
net encoder-counts => axis.y.jog-counts
|
|
net encoder-counts => axis.z.jog-counts
|
|
|
|
#Collisionavoid
|
|
loadusr -Wn collisionavoid ./collisionavoid
|
|
|
|
net xpos-abs-cmd joint.0.pos-cmd => collisionavoid.xaxis
|
|
net ypos-abs-cmd joint.1.pos-cmd => collisionavoid.yaxis
|
|
net zpos-abs-cmd joint.2.pos-cmd => collisionavoid.zaxis
|
|
net collision-stop collisionavoid.stop => halui.estop.activate
|
|
|
|
#Autolevel
|
|
loadusr -Wn compensation python3 compensation.py probe-results.txt cubic
|
|
net xpos-abs-cmd => compensation.x-pos
|
|
net ypos-abs-cmd => compensation.y-pos
|
|
net zpos-abs-cmd => compensation.z-pos
|
|
net eoffset-enable compensation.enable-out => axis.z.eoffset-enable
|
|
net eoffset-scale compensation.scale => axis.z.eoffset-scale
|
|
net eoffset-counts compensation.counts => axis.z.eoffset-counts
|
|
net eoffset-clear compensation.clear => axis.z.eoffset-clear
|