Два энкодера на одной оси, как подключить к LinuxCNC

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
EvgenyK
Кандидат
Сообщения: 78
Зарегистрирован: 05 авг 2012, 16:49
Репутация: 0
Контактная информация:

Re: Два энкодера на одной оси, как подключить к LinuxCNC

Сообщение EvgenyK »

и еще...забыл сказать...
у меня поворотная ось работает как линейная, т.е. единицы измерения не градусы, а миллиметры.
обрабатываю одинаковые по диаметру заготовки и так удобнее делать УП
God's gonna cut you down...
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Два энкодера на одной оси, как подключить к LinuxCNC

Сообщение Nick »

типо того :)
EvgenyK
Кандидат
Сообщения: 78
Зарегистрирован: 05 авг 2012, 16:49
Репутация: 0
Контактная информация:

Re: Два энкодера на одной оси, как подключить к LinuxCNC

Сообщение EvgenyK »

Ник, а как ПИД настроить? :)
че-то у меня болтается вал туда-сюда...
как подобрать правильно константы регулирования?
God's gonna cut you down...
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Два энкодера на одной оси, как подключить к LinuxCNC

Сообщение Nick »

С ПИД все хитро.
Для начала выведи в hal scope пины
axis.N.joint-pos-cmd
axis.N.joint-pos-fb
axis.N.f-error
и можно еще
axis.N.joint-vel-cmd
для твоей оси. Сразу сохрани настройки HAL Scope, чтобы потом не выставлять их заново.

После этого открываешь калибровку осей (есть где-то в меню), а станку даешь повторяющееся задание
После этого смотришь на графики. Основная задача свести к минимуму axis.N.f-error.

Для этого надо подбирать параметры ПИД, есть несколько способов, вот самый простой: вот тут в пункте 1.2.6 EMC2 Integrators Manual Перевод на русский язык #3
т.е. увеличиваешь параметры в нужном порядке.
При этом делай скриншоты halscope и выкладывай сюда, будем тебе подсказывать, что куда подкрутить.
EvgenyK
Кандидат
Сообщения: 78
Зарегистрирован: 05 авг 2012, 16:49
Репутация: 0
Контактная информация:

Re: Два энкодера на одной оси, как подключить к LinuxCNC

Сообщение EvgenyK »

утром буду пробовать. спасибо!
God's gonna cut you down...
EvgenyK
Кандидат
Сообщения: 78
Зарегистрирован: 05 авг 2012, 16:49
Репутация: 0
Контактная информация:

Re: Два энкодера на одной оси, как подключить к LinuxCNC

Сообщение EvgenyK »

настраиваю уже пару часов ПИД...
значение ошибки примерно 0.65-0,68 получается. это много? получается, что ось движение оси отстает от расчетного её положения? как с этим бороться?
вот что показывает hal scope...
P=8.5
I=0.0001
D=0.25
FF0=0
FF1=0.003
FF2=0.007

скачал еще pid_tuning, только вот не разберусь как ее отдельно запустить, или прикрутить к axis
может подскажете как ее использовать?
Вложения
Screenshot1.png (2308 просмотров) <a class='original' href='./download/file.php?id=9234&mode=view' target=_blank>Загрузить оригинал (563.04 КБ)</a>
God's gonna cut you down...
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Два энкодера на одной оси, как подключить к LinuxCNC

Сообщение nkp »

читал здесь?
http://cnc-club.ru/forum/viewtopic.php? ... 687#p23687
http://cnc-club.ru/forum/viewtopic.php? ... 189#p13189
можно в хал прописать что то примерно:

Код: Выделить всё

loadusr -Wn gui0 pyvcp -c gui0 servo-tuning-gui.xml
или в ини в разделе DISPLAY:

Код: Выделить всё

PYVCP = servo-tuning-gui.xml
EvgenyK
Кандидат
Сообщения: 78
Зарегистрирован: 05 авг 2012, 16:49
Репутация: 0
Контактная информация:

Re: Два энкодера на одной оси, как подключить к LinuxCNC

Сообщение EvgenyK »

спасибо. читал вроде, но еще, видимо, не осознал %)

а куда надо распаковать содержимое архива? в папку с настройками станка?

а вот фото поворотной оси, если кому интересно :)
Вложения
IMAG0073.jpg (2303 просмотра) <a class='original' href='./download/file.php?id=9237&mode=view' target=_blank>Загрузить оригинал (384.19 КБ)</a>
God's gonna cut you down...
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Два энкодера на одной оси, как подключить к LinuxCNC

Сообщение nkp »

xml должен быть в папке с конфигурацией
EvgenyK
Кандидат
Сообщения: 78
Зарегистрирован: 05 авг 2012, 16:49
Репутация: 0
Контактная информация:

Re: Два энкодера на одной оси, как подключить к LinuxCNC

Сообщение EvgenyK »

nkp, а перед использованием pid_tuning нужно его поправить?
God's gonna cut you down...
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Два энкодера на одной оси, как подключить к LinuxCNC

Сообщение nkp »

EvgenyK писал(а):нужно его поправить?
что есть "поправить" ??
EvgenyK
Кандидат
Сообщения: 78
Зарегистрирован: 05 авг 2012, 16:49
Репутация: 0
Контактная информация:

Re: Два энкодера на одной оси, как подключить к LinuxCNC

Сообщение EvgenyK »

ну в нем пины явно отличаются от моих :)

я просто еще не совсем овладел integration manual и, видимо, задаю глупые вопросы...
God's gonna cut you down...
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Два энкодера на одной оси, как подключить к LinuxCNC

Сообщение nkp »

EvgenyK писал(а):нем пины явно отличаются от моих
конечно название пинов необходимо привести в соответствие
в тексте ошибки (при запуске емс) любое "несоответствие" в хал подробно указывается(с именами пинов)
это сильно облегчает настройку
читай всегда этот раздел:
Выделение(058).jpg (2286 просмотров) <a class='original' href='./download/file.php?id=9263&mode=view' target=_blank>Загрузить оригинал (162.57 КБ)</a>
EvgenyK
Кандидат
Сообщения: 78
Зарегистрирован: 05 авг 2012, 16:49
Репутация: 0
Контактная информация:

Re: Два энкодера на одной оси, как подключить к LinuxCNC

Сообщение EvgenyK »

да-да, читаю постоянно.
получается что pid_tuning загружает еще раз все компоненты HAL?
надо настраивать все пины и все параметры в соответствии с рабочей конфигурацией?

какая-то беда с настройкой ПИД, уже не пойму что делать...
на скорости 1000 мм/мин настраивается всё более-менее прилично, поставил скорость 3000 мм/мин
и стало всё снова пичалька...ось болтается как маятник, иногда выдает joint following error %(
God's gonna cut you down...
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Два энкодера на одной оси, как подключить к LinuxCNC

Сообщение Nick »

а 0.5-0.6 это в каких единицах? Градусы?
EvgenyK писал(а):значение ошибки примерно 0.65-0,68 получается. это много? получается, что ось движение оси отстает от расчетного её положения? как с этим бороться?
Скорее всего P поднимать.

Для pid_tuning надо еще пины поменять... Чем тебе не нравится калибровка, которая в axis?
EvgenyK
Кандидат
Сообщения: 78
Зарегистрирован: 05 авг 2012, 16:49
Репутация: 0
Контактная информация:

Re: Два энкодера на одной оси, как подключить к LinuxCNC

Сообщение EvgenyK »

Как калибровать в axis? %)
God's gonna cut you down...
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Два энкодера на одной оси, как подключить к LinuxCNC

Сообщение Nick »

Сейчас нет LinuxCNC под рукой. Посмотри в меню, там должно быть что-то вроде "калибровка осей"
EvgenyK
Кандидат
Сообщения: 78
Зарегистрирован: 05 авг 2012, 16:49
Репутация: 0
Контактная информация:

Re: Два энкодера на одной оси, как подключить к LinuxCNC

Сообщение EvgenyK »

Вобщем сделал червячный редуктор совсем безлюфтовым. Сделал новое крепление для энкодера, ибо он шатался от любого прикосновения.
С ПИД регулированием возник вопрос.. вопросище!

Что только не делаю, никак не могу избавиться от пиков (на скриншоте видно) при пуске и остановке движения.
Пробовал менять параметры ПИД...при любых настройках пики остаются всё равно..
Сейчас вот думаю, что эти пики, это задержка (0.05-0.08 секунды) между управляющим воздействием и обратной связью.
Но откуда она берется?
Люфта в редукторе нет, в муфтах - тоже нет. Предположил было, что редуктор с задержкой передает движение, но мозг говорит, что такого быть не может.
Есть подозрения, на настройки hal.
Вот кусок, который отвечает за поворотную ось:

Код: Выделить всё

#*******************
#  AXIS Y
#*******************

net yenable  => hm2_5i20.0.stepgen.02.enable
net ypos-fb  <= hm2_5i20.0.encoder.00.position
net ypos-out => hm2_5i20.0.stepgen.02.velocity-cmd

# Step Gen signals/setup

setp   hm2_5i20.0.stepgen.02.dirsetup        [AXIS_1]DIRSETUP
setp   hm2_5i20.0.stepgen.02.dirhold         [AXIS_1]DIRHOLD
setp   hm2_5i20.0.stepgen.02.steplen         [AXIS_1]STEPLEN
setp   hm2_5i20.0.stepgen.02.stepspace       [AXIS_1]STEPSPACE
setp   hm2_5i20.0.stepgen.02.position-scale  [AXIS_1]SCALE
setp   hm2_5i20.0.stepgen.02.maxaccel         0
setp   hm2_5i20.0.stepgen.02.maxvel           0
setp   hm2_5i20.0.stepgen.02.step_type        0
setp   hm2_5i20.0.stepgen.02.control-type     1

setp hm2_5i20.0.encoder.00.counter-mode 0
setp hm2_5i20.0.encoder.00.filter 1
setp hm2_5i20.0.encoder.00.index-invert 0
setp hm2_5i20.0.encoder.00.index-mask 0
setp hm2_5i20.0.encoder.00.index-mask-invert 0
setp hm2_5i20.0.encoder.00.scale  [AXIS_1]INPUT_SCALE


net ypos-fb => axis.1.motor-pos-fb => pid.0.feedback
net ypos-cmd <= axis.1.motor-pos-cmd  => pid.0.command
net yenable   axis.1.amp-enable-out => pid.0.enable
net ypos-out <= pid.0.output
Может здесь что-то не так?
Как бы проверить и что проверить?
Вложения
Screenshot-HAL Осциллограф1.png (2207 просмотров) <a class='original' href='./download/file.php?id=9653&mode=view' target=_blank>Загрузить оригинал (66.4 КБ)</a>
Screenshot-Калибровка сервоприводов1.png (2207 просмотров) <a class='original' href='./download/file.php?id=9654&mode=view' target=_blank>Загрузить оригинал (28.07 КБ)</a>
God's gonna cut you down...
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Два энкодера на одной оси, как подключить к LinuxCNC

Сообщение Nick »

Насколько я понимаю Ferror в пике достигает 0.4, что в принципе не так уж и плохо. Но очень похоже на то, что у тебя стоит слишком большое ускорение оси.

Такое ощущение, что скорость мгновенно скачет до заданного уровня, а станок пытается ее догнать, отсюда и проскок на более высокую скорость. В общем попробуй задать ускорение этой оси по меньше. Кстати, какое оно у тебя сейчас?
EvgenyK
Кандидат
Сообщения: 78
Зарегистрирован: 05 авг 2012, 16:49
Репутация: 0
Контактная информация:

Re: Два энкодера на одной оси, как подключить к LinuxCNC

Сообщение EvgenyK »

Ускорение у меня....
Если оно задается с помощью строки в ini MAX_ACCELERATION = 200.0, только эта строка нигде не используется в hal'е...
В hal'е есть строка hm2_5i20.0.stepgen.02.maxaccel 0, также и hm2_5i20.0.stepgen.02.maxvel 0.
В integrator_manual сказано, что по умолчанию ноль - это ускорение, скорость без ограничений...

Какое ускорение использовать?
God's gonna cut you down...
Ответить

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