Поменял станку мозги на Mesa 7i92 + 7i77 ОС Debian 9 установлен вручную LinuXcnc v2.8
Нужна помощь доделать,
Привода, концевые, обнуление, резцедержка работаю!
Не получается Настроить Шпиндель и коробку передач 3 положения на коробке 2 датчика
вот тут https://www.cnc-club.ru/forum/viewtopi ... F&start=20 есть по шпинделю готовые настройки
но у меня не получается перенести их наверно большая разница в версиях!
И еще нужно настроить
1) Кнопка "Вращение шпинделя" ( на удержание кнопки, заданно скорость 5об.м)
2)"Смазка направляющих" (включается по таймеру например каждые 45мин на 3с )
3) "маховичок Энкодер" (один маховичок ручное управление для двух осей)
4) Галетник "шпиндель остановить" (при удержании кнопки шпиндель остановлен)
Вот кусок Hal шпинделя с моими попытками переделать
Код: Выделить всё
#*******************
# SPINDLE
#*******************
loadrt abs count=2
loadrt lowpass names=lowpass.spindle
loadrt scale names=scale.spindle,scale.gear
loadrt near
loadrt mux4 names=mux4.gear
addf scale.gear servo-thread
addf mux4.gear servo-thread
addf abs.0 servo-thread
addf abs.1 servo-thread
addf scale.spindle servo-thread
addf lowpass.spindle servo-thread
addf near.0 servo-thread
setp pid.s.Pgain [SPINDLE_0]P
setp pid.s.Igain [SPINDLE_0]I
setp pid.s.Dgain [SPINDLE_0]D
setp pid.s.bias [SPINDLE_0]BIAS
setp pid.s.FF0 [SPINDLE_0]FF0
setp pid.s.FF1 [SPINDLE_0]FF1
setp pid.s.FF2 [SPINDLE_0]FF2
setp pid.s.deadband [SPINDLE_0]DEADBAND
setp pid.s.maxoutput [SPINDLE_0]MAX_OUTPUT
setp pid.s.error-previous-target true
net spindle-index-enable <=> pid.s.index-enable
net spindle-enable => pid.s.enable
net spindle-vel-cmd-rpm => pid.s.command
net spindle-vel-fb-rpm => pid.s.feedback
net spindle-output <= pid.s.output
# ---PWM Generator signals/setup---
setp hm2_7i92.0.7i77.0.1.analogout2-scalemax [SPINDLE_0]OUTPUT_SCALE
setp hm2_7i92.0.7i77.0.1.analogout2-minlim [SPINDLE_0]OUTPUT_MIN_LIMIT
setp hm2_7i92.0.7i77.0.1.analogout2-maxlim [SPINDLE_0]OUTPUT_MAX_LIMIT
net spindle-output => hm2_7i92.0.7i77.0.1.analogout2
net spindle-vel-cmd => abs.1.in
net spindle-vel-abs abs.1.out => scale.gear.in
#net Spindle-motor-command scale.gear.out hm2_7i92.0.7i77.0.1.analogout2
#net spindle-enable => hm2_7i92.0.7i77.0.1.analogout2
# ---Encoder feedback signals/setup---
setp hm2_7i92.0.encoder.02.counter-mode 0
setp hm2_7i92.0.encoder.02.filter 1
setp hm2_7i92.0.encoder.02.index-invert 0
setp hm2_7i92.0.encoder.02.index-mask 0
setp hm2_7i92.0.encoder.02.index-mask-invert 0
setp hm2_7i92.0.encoder.02.scale [SPINDLE_0]ENCODER_SCALE
setp hm2_7i92.0.encoder.02.index-enable TRUE
net spindle-revs <= hm2_7i92.0.encoder.02.position
net spindle-vel-fb-rps <= hm2_7i92.0.encoder.02.velocity
net spindle-vel-fb-rpm <= hm2_7i92.0.encoder.02.velocity-rpm
net spindle-index-enable <=> hm2_7i92.0.encoder.02.index-enable
# ---setup spindle control signals---
net spindle-vel-cmd-rps <= spindle.0.speed-out-rps
net spindle-vel-cmd-rps-abs <= spindle.0.speed-out-rps-abs
net spindle-vel-cmd-rpm <= spindle.0.speed-out
net spindle-vel-cmd-rpm-abs <= spindle.0.speed-out-abs
net spindle-enable <= spindle.0.on
net spindle-cw <= spindle.0.forward
net spindle-ccw <= spindle.0.reverse
net spindle-brake <= spindle.0.brake
net spindle-revs => spindle.0.revs
net spindle-at-speed => spindle.0.at-speed
net spindle-vel-fb-rps => spindle.0.speed-in
net spindle-index-enable <=> spindle.0.index-enable
# ---Setup spindle at speed signals---
net spindle-vel-cmd-rps => near.0.in1
net spindle-vel-fb-rps => near.0.in2
net spindle-at-speed <= near.0.out
setp near.0.scale 1.3
#sets spindle-at-speed true
#---Setup spindle scale for gear change----
net Gear_selected mux4.gear.out => scale.gear.gain
net Gear1 => mux4.gear.sel0
net Gear2 => mux4.gear.sel1
setp mux4.gear.in0 4.47
setp mux4.gear.in2 1.789
setp mux4.gear.in3 12.964