Страница 1 из 1
управление шпинделя в Linuxcnc 2.7.3
Добавлено: 30 янв 2016, 09:54
dinkata
Начал нов проект для токарной 6i25+7i77 , с енкодер на шпинделя конфигурация сделал под pncconf
при запуск дает ошибка :
Код: Выделить всё
Print file information:
Debug file information:
.
./CT161Test.hal:460: parameter or pin 'scale.spindle.gain' not found
Смотрю в хал ест такие строчки
Код: Выделить всё
# 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-rps => scale.spindle.in
net spindle-fb-rpm scale.spindle.out => abs.spindle.in
net spindle-fb-rpm-abs abs.spindle.out => lowpass.spindle.in
net spindle-fb-rpm-abs-filtered lowpass.spindle.out
закоментировал и конфигурация запустилас ,но шпиндель не крутится ,разрешение ест
Настройки шпинделя
Код: Выделить всё
[SPINDLE_9]
P = 0.0
I = 0.0
D = 0.0
FF0 = 1.0
FF1 = 0.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 3000.0
ENCODER_SCALE = 4096.0
OUTPUT_SCALE = 3000.0
OUTPUT_MIN_LIMIT = -3000.0
OUTPUT_MAX_LIMIT = 3000.0
Думаю ,наверно надо внест вручную scale lowpass
Код: Выделить всё
loadrt scale names=spindle
loadrt lowpass names=spindle
addf scale.spindle servo-thread
addf lowpass.spindle servo-thread
опят ошибки

где я ошибаюс ?

Re: управление шпинделя в Linuxcnc 2.7.3
Добавлено: 30 янв 2016, 16:06
dinkata
Сделал та же конфигурация на другой комп с Linuxcnc 2.6.11 ,там для шпиндель с енкодер получилос :
Код: Выделить всё
#*******************
# SPINDLE S
#*******************
# ---PWM Generator signals/setup---
setp hm2_5i25.0.7i77.0.1.analogout5-scalemax [SPINDLE_9]OUTPUT_SCALE
setp hm2_5i25.0.7i77.0.1.analogout5-minlim [SPINDLE_9]OUTPUT_MIN_LIMIT
setp hm2_5i25.0.7i77.0.1.analogout5-maxlim [SPINDLE_9]OUTPUT_MAX_LIMIT
net spindle-vel-cmd => hm2_5i25.0.7i77.0.1.analogout5
net spindle-enable => hm2_5i25.0.7i77.0.1.spinena
# ---Encoder feedback signals/setup---
setp hm2_5i25.0.encoder.02.counter-mode 0
setp hm2_5i25.0.encoder.02.filter 1
setp hm2_5i25.0.encoder.02.index-invert 0
setp hm2_5i25.0.encoder.02.index-mask 0
setp hm2_5i25.0.encoder.02.index-mask-invert 0
setp hm2_5i25.0.encoder.02.scale [SPINDLE_9]ENCODER_SCALE
net spindle-revs <= hm2_5i25.0.encoder.02.position
net spindle-vel-fb <= hm2_5i25.0.encoder.02.velocity
net spindle-index-enable <=> hm2_5i25.0.encoder.02.index-enable
# ---setup spindle control signals---
net spindle-vel-cmd-rps <= motion.spindle-speed-out-rps
net spindle-vel-cmd-rps-abs <= motion.spindle-speed-out-rps-abs
net spindle-vel-cmd <= motion.spindle-speed-out
net spindle-vel-cmd-rpm-abs <= motion.spindle-speed-out-abs
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---
sets spindle-at-speed true
Поставил полученое ( там нету пид !! ) в конфигурация наместо ето сделано под Linuxcnc 2.7.3
Код: Выделить всё
#*******************
# SPINDLE S
#*******************
setp pid.s.Pgain [SPINDLE_9]P
setp pid.s.Igain [SPINDLE_9]I
setp pid.s.Dgain [SPINDLE_9]D
setp pid.s.bias [SPINDLE_9]BIAS
setp pid.s.FF0 [SPINDLE_9]FF0
setp pid.s.FF1 [SPINDLE_9]FF1
setp pid.s.FF2 [SPINDLE_9]FF2
setp pid.s.deadband [SPINDLE_9]DEADBAND
setp pid.s.maxoutput [SPINDLE_9]MAX_OUTPUT
setp pid.s.error-previous-target true
setp pid.s.maxerror .001
net spindle-index-enable <=> pid.s.index-enable
net spindle-enable => pid.s.enable
net spindle-vel-cmd-rpm-abs => pid.s.command
net spindle-vel-fb-rpm-abs => pid.s.feedback
net spindle-output <= pid.s.output
# ---PWM Generator signals/setup---
setp hm2_5i25.0.7i77.0.1.analogout5-scalemax [SPINDLE_9]OUTPUT_SCALE
setp hm2_5i25.0.7i77.0.1.analogout5-minlim [SPINDLE_9]OUTPUT_MIN_LIMIT
setp hm2_5i25.0.7i77.0.1.analogout5-maxlim [SPINDLE_9]OUTPUT_MAX_LIMIT
net spindle-vel-cmd-abs => hm2_5i25.0.7i77.0.1.analogout5
net spindle-enable => hm2_5i25.0.7i77.0.1.spinena
# ---Encoder feedback signals/setup---
setp hm2_5i25.0.encoder.02.counter-mode 0
setp hm2_5i25.0.encoder.02.filter 1
setp hm2_5i25.0.encoder.02.index-invert 0
setp hm2_5i25.0.encoder.02.index-mask 0
setp hm2_5i25.0.encoder.02.index-mask-invert 0
setp hm2_5i25.0.encoder.02.scale [SPINDLE_9]ENCODER_SCALE
net spindle-revs <= hm2_5i25.0.encoder.02.position
net spindle-vel-fb-rps <= hm2_5i25.0.encoder.02.velocity
net spindle-index-enable <=> hm2_5i25.0.encoder.02.index-enable
# ---setup spindle control signals---
net spindle-vel-cmd-rps <= motion.spindle-speed-out-rps
net spindle-vel-cmd-rps-abs <= motion.spindle-speed-out-rps-abs
net spindle-vel-cmd-rpm <= motion.spindle-speed-out
net spindle-vel-cmd-rpm-abs <= motion.spindle-speed-out-abs
net spindle-enable <= 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-rps => motion.spindle-speed-in
net spindle-index-enable <=> motion.spindle-index-enable
# ---Setup spindle at speed signals---
sets spindle-at-speed true
# 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-rps => scale.spindle.in
net spindle-fb-rpm scale.spindle.out => abs.spindle.in
net spindle-fb-rpm-abs abs.spindle.out => lowpass.spindle.in
net spindle-fb-rpm-abs-filtered lowpass.spindle.out
и шпиндель работает ,пока тестирую на стенд -упрвляю частотник с асинхронной двигатель на вал енкодер
Не знаю ,ето замена будет ли отслеживат нарезание резба ?
Re: управление шпинделя в Linuxcnc 2.7.3
Добавлено: 01 фев 2016, 13:26
Nick
dinkata писал(а):Не знаю ,ето замена будет ли отслеживат нарезание резба ?
Вот это есть:
dinkata писал(а):net spindle-revs <= hm2_5i25.0.encoder.02.position
net spindle-vel-fb-rps <= hm2_5i25.0.encoder.02.velocity
net spindle-index-enable <=> hm2_5i25.0.encoder.02.index-enable
значит будет.
Гланое, чтоб шпиндель под нагрузкой резанья не проседал.
Re: управление шпинделя в Linuxcnc 2.7.3
Добавлено: 01 фев 2016, 15:49
PKM
dinkata писал(а):Думаю ,наверно надо внест вручную scale lowpass
Все верно, это pncconf дает ошибки
Re: управление шпинделя в Linuxcnc 2.7.3
Добавлено: 01 фев 2016, 16:44
dinkata
PKM писал(а):Все верно, это pncconf дает ошибки
да,надо вручную добавит
Код: Выделить всё
loadrt scale names=scale.spindle
loadrt lowpass names=lowpass.spindle
loadrt abs names=abs.spindle
Код: Выделить всё
addf scale.spindle servo-thread
addf lowpass.spindle servo-thread
addf abs.spindle servo-thread
и работает ,посмотрим как будет на станок
