#******************* # SPINDLE S #******************* # pid feedback spindle setp pid.s.Pgain 0.0 setp pid.s.Igain 0.0 setp pid.s.Dgain 0.0 setp pid.s.bias 0 setp pid.s.FF0 4.8 setp pid.s.FF1 0 setp pid.s.FF2 0 setp pid.s.deadband 1.0 setp pid.s.maxoutput 1200 net s-output => pid.s.output net s-pos-cmd => pid.s.command <= motion.spindle-speed-out net s-vel-fb => pid.s.command-deriv # ---PWM Generator signals/setup--- setp hm2_5i20.0.pwmgen.03.output-type 3 setp hm2_5i20.0.pwmgen.03.scale [SPINDLE_9]OUTPUT_SCALE net s-output => hm2_5i20.0.pwmgen.03.value net machine-is-enabled => hm2_5i20.0.pwmgen.03.enable pid.s.enable # ---Encoder feedback signals/setup--- setp hm2_5i20.0.encoder.03.counter-mode 1 setp hm2_5i20.0.encoder.03.filter 1 setp hm2_5i20.0.encoder.03.index-invert 0 setp hm2_5i20.0.encoder.03.index-mask 0 setp hm2_5i20.0.encoder.03.index-mask-invert 0 setp hm2_5i20.0.encoder.03.scale [SPINDLE_9]ENCODER_SCALE net spindle-revs <= hm2_5i20.0.encoder.03.position net spindle-vel-fb <= hm2_5i20.0.encoder.03.velocity net spindle-index-enable <=> hm2_5i20.0.encoder.03.index-enable # ---setup spindle control signals--- net spindle-vel-cmd-rps <= motion.spindle-speed-out-rps net spindle-on <= motion.spindle-on net spindle-cw <= motion.spindle-forward net spindle-ccw <= motion.spindle-reverse net spindle-brake <= motion.spindle-brake net spindle-revs => motion.spindle-revs net spindle-at-speed => motion.spindle-at-speed net spindle-vel-fb => motion.spindle-speed-in net spindle-index-enable <=> motion.spindle-index-enable # ---Setup spindle at speed signals--- net s-pos-cmd => near.0.in1 net spindle-fb-filtered-abs-rpm => near.0.in2 net spindle-at-speed <= near.0.out setp near.0.scale 1.000000 setp near.0.difference 5.333333 # Use ACTUAL spindle velocity from spindle encoder # spindle-velocity bounces around so we filter it with lowpass # spindle-velocity is signed so we use absolute component to remove sign # ACTUAL velocity is in RPS not RPM so we scale it. setp scale.spindle.gain 60 setp lowpass.spindle.gain 1.000000 net spindle-vel-fb => lowpass.spindle.in net spindle-fb-filtered-rps lowpass.spindle.out => abs.spindle.in net spindle-fb-filtered-abs-rps abs.spindle.out => scale.spindle.in net spindle-fb-filtered-abs-rpm scale.spindle.out <= pid.s.feedback