49 lines
2.2 KiB
Plaintext
49 lines
2.2 KiB
Plaintext
# Include your custom HAL commands here
|
|
|
|
# Load the Huanyang VFD user component
|
|
loadusr -Wn spindle-vfd hy_vfd -n spindle-vfd -d /dev/hy_vfd -r 19200 -p none -s 1 -b 8
|
|
|
|
# motion.spindle-speed-in needs rev per second
|
|
loadrt scale names=scale.0,scale.1,scale.2
|
|
# scale.0 gearbox via M101-M106, M101 being lowest gear.
|
|
# scale.1 Inverted gear ratio
|
|
# scale.2 motion.spindle-speed.in in rev/sec
|
|
loadrt limit2 names=spindlemax
|
|
loadrt mult2 names=mult2.1
|
|
addf scale.0 servo-thread
|
|
addf scale.1 servo-thread
|
|
addf scale.2 servo-thread
|
|
addf mult2.1 servo-thread
|
|
addf spindlemax servo-thread
|
|
setp scale.0.gain 0.8846 # Start with fourth gear
|
|
setp scale.1.gain 1.13045
|
|
setp scale.2.gain 0.0166666667
|
|
setp mult2.1.in1 25.0
|
|
unlinkp spindle.0.forward
|
|
unlinkp spindle.0.reverse
|
|
unlinkp spindle.0.on
|
|
#unlinkp motion.spindle-at-speed
|
|
net spindle-fwd spindle.0.forward => spindle-vfd.spindle-forward
|
|
net spindle-reverse spindle.0.reverse => spindle-vfd.spindle-reverse
|
|
net spindle-on spindle.0.on => spindle-vfd.spindle-on
|
|
net spindle-at-speed <= spindle-vfd.spindle-at-speed
|
|
#net spindle-enable => spindle-vfd.enable
|
|
setp spindle-vfd.enable 1
|
|
|
|
# Prepare max limit rpm for spindle
|
|
net spindle-max-freq spindle-vfd.max-freq => mult2.1.in0
|
|
net spindle-max-rpm mult2.1.out => spindlemax.max # Max limit for motor rpm, like 67*25 = 1675
|
|
|
|
# Give speed to vfd, limited to max possible
|
|
unlinkp spindle.0.speed-out-abs
|
|
net spindle-speed-scale spindle.0.speed-out-abs => scale.1.in # Spindle rpm => Motor rpm
|
|
net spindle-speed-cmd-unlimited scale.1.out => spindlemax.in # Limit spindle rpm
|
|
net spindle-speed-cmd-limited spindlemax.out => spindle-vfd.speed-command # Feed to vfd
|
|
|
|
# Convert actual feed from rpm to rps, consider gear in use.
|
|
unlinkp spindle.0.speed-in
|
|
net spindle-speed-scale2 spindle-vfd.spindle-speed-fb => scale.2.in # Motor rpm => Motor rps
|
|
net spindle-speed-gears scale.2.out => scale.0.in # Motor rps => spindle rps
|
|
net spindle-speed-in scale.0.out => spindle.0.speed-in
|
|
|