управление шпинделя в Linuxcnc 2.7.3

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
dinkata
Мастер
Сообщения: 1028
Зарегистрирован: 05 сен 2014, 09:07
Репутация: 391
Настоящее имя: Диньо
Откуда: Болгария
Контактная информация:

управление шпинделя в Linuxcnc 2.7.3

Сообщение 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
опят ошибки :wik: где я ошибаюс ? :thinking:
Простите ошибки, я иностранец.У моя клавиатура нету "э" и "ы"
Аватара пользователя
dinkata
Мастер
Сообщения: 1028
Зарегистрирован: 05 сен 2014, 09:07
Репутация: 391
Настоящее имя: Диньо
Откуда: Болгария
Контактная информация:

Re: управление шпинделя в Linuxcnc 2.7.3

Сообщение 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  
и шпиндель работает ,пока тестирую на стенд -упрвляю частотник с асинхронной двигатель на вал енкодер :hehehe:
Не знаю ,ето замена будет ли отслеживат нарезание резба ?
Простите ошибки, я иностранец.У моя клавиатура нету "э" и "ы"
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: управление шпинделя в Linuxcnc 2.7.3

Сообщение 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
значит будет.

Гланое, чтоб шпиндель под нагрузкой резанья не проседал.
Аватара пользователя
PKM
Почётный участник
Почётный участник
Сообщения: 4263
Зарегистрирован: 31 мар 2011, 18:11
Репутация: 705
Настоящее имя: Андрей
Откуда: Украина
Контактная информация:

Re: управление шпинделя в Linuxcnc 2.7.3

Сообщение PKM »

dinkata писал(а):Думаю ,наверно надо внест вручную scale lowpass
Все верно, это pncconf дает ошибки
Аватара пользователя
dinkata
Мастер
Сообщения: 1028
Зарегистрирован: 05 сен 2014, 09:07
Репутация: 391
Настоящее имя: Диньо
Откуда: Болгария
Контактная информация:

Re: управление шпинделя в Linuxcnc 2.7.3

Сообщение 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
и работает ,посмотрим как будет на станок :D
Простите ошибки, я иностранец.У моя клавиатура нету "э" и "ы"
Ответить

Вернуться в «LinuxCNC»