LinuxCNC - Альтернативная кинематика.

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

LinuxCNC - Альтернативная кинематика.

Сообщение Serg »

Эта тема предлагается для обсуждения моих решений некоторых вопросов кинематики в LinuxCNC и других, связанных с ними.

На сегодня стоит задача получить рабочее решение для вот этого монстрика: Многосевой станок лазерной резки листа и профиля #1 - нужно управлять количеством моторов (joints), которое пока не под силу штатным средствам LinuxCNC. Ну и скорее всего и для других проектов, которым окажутся тесными возможности штатной кинематики LinuxCNC.

Если появятся желающие присоединиться к работам по этой тематике, то добро пожаловать в тему.
Оставляю за собой узурпаторское право "отселять" обсуждения, выходящие за рамки этой темы. :tongue:

ВНИМАНИЕ!
Все опубликованные ниже разработки предлагаются "AS IS" (как есть), без каких-либо гарантий, в том числе и по сопровождению
Имеющиеся описания ориентированы на тех, кто более-менее разбирается в LinuxCNC и в его HAL в частности, или хотя-бы прочитал и понял документацию.
Считайте это своеобразным порогом вхождения. Если сделать подробное описание "для чайников", то оные не преминут этим воспользоваться и в случае любых непоняток будут задавать вопросы, которые как правило так или иначе освещены в документации. Отвечать на них я не желаю, не из вредности, а из-за отсутствия у меня на это времени....

Extended Gantry Axis Component for LinuxCNC HAL (egantry)

Описание: https://cncdevice.com/devel/eaxis/egantry.txt
Архив: https://cncdevice.com/devel/eaxis/egant ... re3.tar.gz предыдущая версия: https://cncdevice.com/devel/eaxis/egant ... re2.tar.gz
Устанавливается командой

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

sudo halcompile --install egantry.c
Совместим с LinuxCNC версий 2.6.x и выше. Для уточнения проверяйте у компонента axis.N наличие пинов home-state и homed.

BlackBox userspace component for LinuxCNC HAL

Описание: Re: LinuxCNC - Альтернативная кинематика. #76
Компонент: https://cncdevice.com/devel/misc/BlackBox.py

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Начало темы было такое: :)
PKM писал(а):А что за кинематика? Для твоего мега-станка?
gantry кинематика, которая которая использует только одну axis.N для любого количества приводов оси, ну и решает можество других проблем, сопутствующих штатной gantrykins.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: LinuxCNC - Альтернативная кинематика.

Сообщение Serg »

sergey_s писал(а):значения encoder.0(1).velocity
Это было только для примера - это программный компонент, у вас он не используется.

Давайте сначала:
1. Запустите linuxcnc с вашими изначальными настройками (файлы .ini и .hal из поста #156)
2. откройте консоль/терминал и выполните там команду "halcmd show pin to_pci.1.feedback", покажите результат.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
sergey_s
Опытный
Сообщения: 157
Зарегистрирован: 06 янв 2016, 00:31
Репутация: 6
Настоящее имя: Сергей
Контактная информация:

Re: LinuxCNC - Альтернативная кинематика.

Сообщение sergey_s »

Вот что показывает (файлы .ini и .hal из поста #156)
Вложения
IMG_20200317_160239.jpg (6798 просмотров) <a class='original' href='./download/file.php?id=178491&sid=9f42d7eccfeb88a0131f8e4a98b8b368&mode=view' target=_blank>Загрузить оригинал (4.1 МБ)</a>
sergey_s
Опытный
Сообщения: 157
Зарегистрирован: 06 янв 2016, 00:31
Репутация: 6
Настоящее имя: Сергей
Контактная информация:

Re: LinuxCNC - Альтернативная кинематика.

Сообщение sergey_s »

Вижу где проблема. Помогите найти ошибку в hal
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: LinuxCNC - Альтернативная кинематика.

Сообщение Serg »

Теперь так:
1. Запустите linuxcnc с вашими изначальными настройками (файлы .ini и .hal из поста #156)
2. откройте консоль/терминал и выполните там следующие команды:

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

halcmd unlink to_pci.1.enable_drive
halcmd unlink to_pci.1.PWM.dcontrol0
halcmd unlink to_pci.1.PWM.dcontrol1
halcmd unlink to_pci.1.feedback.encoder0
halcmd unlink to_pci.1.feedback.encoder1
halcmd setp to_pci.1.PWM.dcontrol0 2
halcmd setp to_pci.1.PWM.dcontrol1 2
halcmd setp 1 to_pci.1.enable_drive
после последней команды моторы начнут вращаться. В это время в консоли можно смотреть их скорость командой

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

halcmd show pin unlink to_pci.1.feedback.vel
Если скорости разные, то пока они вращаются померьте тестером напряжения на обоих аналоговых выходах to_pci.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
sergey_s
Опытный
Сообщения: 157
Зарегистрирован: 06 янв 2016, 00:31
Репутация: 6
Настоящее имя: Сергей
Контактная информация:

Re: LinuxCNC - Альтернативная кинематика.

Сообщение sergey_s »

У меня почему-то значение t0_pci.1.feedback.enc_scale0 и t0_pci.1.feedback.enc_scale1 разные. По-этому и двигатели вращаются с разной скоростью. t0_pci.1.feedback.enc_scale1 почему-то берется из ini для AXIS1. Я когда в ini в AXIS0 и AXIS1 делаю одинаковое значение все работает одинаково. Что-то в hal я напутал.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: LinuxCNC - Альтернативная кинематика.

Сообщение Serg »

sergey_s писал(а):У меня почему-то значение t0_pci.1.feedback.enc_scale0 и t0_pci.1.feedback.enc_scale1 разные.
Их вашего .hal:
#*******************
# AXIS X1
#*******************
...
setp to_pci.1.feedback.enc_scale0 -2500
...
#*******************
# AXIS X2
#*******************
...
setp to_pci.1.feedback.enc_scale1 -2500
...
#*******************
# AXIS Y
#*******************
...
setp to_pci.1.feedback.enc_scale1 [AXIS_1]ENCODER_SCALE
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
sergey_s
Опытный
Сообщения: 157
Зарегистрирован: 06 янв 2016, 00:31
Репутация: 6
Настоящее имя: Сергей
Контактная информация:

Re: LinuxCNC - Альтернативная кинематика.

Сообщение sergey_s »

Да, точно. Спасибо помогло.
zaxlex
Новичок
Сообщения: 38
Зарегистрирован: 20 окт 2015, 23:09
Репутация: 0
Настоящее имя: Alex
Контактная информация:

Re: LinuxCNC - Альтернативная кинематика.

Сообщение zaxlex »

День добрый, появился вопрос после двух суток экзекуций с этим модулем. Выбил following error после пяти часов работы, на старой конфигурации без этого модуля только с trivkins работает сутками наконец-то:)), так вот вопрос в чем, можно как-то сконфигурировать этот egranty, чтоб он участвовал только в процессе выставления по датчикам, а потом передавал управление обратно trivkins(я пытался это сделать с помощью MUX2, но там получается все кроме fb фидбэка), или все-таки допилить модуль до надежного состояния.
вот мои примеры экзекуций - в ини файле при максимальной скорости =100 работает по пять часов, при скорости 200 выбивает ошибку сразу как только пытаешься двинуть ось стрелками, это при том что другая ось летает на 200 без ошибок.
было также масса танцев с бубном по подбору скорости поиска датчика дома HOME_SEARCH_VEL = -15.0
хочет меньше, чем у меня обычно иначе опять же ошибка.

может будет у кого желание, посмотрите мой хал файл, может найдете заковыку
Вложения
CNC1.hal
(15.32 КБ) 283 скачивания
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: LinuxCNC - Альтернативная кинематика.

Сообщение Serg »

Никакие "половинчатые" режимы работы компонента не предусмотрены.

Причины непостоянных ошибок нужно искать в конкретных значениях hal-сигналов в момент появления этих ошибок, т.е. изучать их значения в момент самой ошибки.
Тут может помочь компонент BlackBox.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
zaxlex
Новичок
Сообщения: 38
Зарегистрирован: 20 окт 2015, 23:09
Репутация: 0
Настоящее имя: Alex
Контактная информация:

Re: LinuxCNC - Альтернативная кинематика.

Сообщение zaxlex »

это конечно все замечательно, но я морально не созрел заняться этим делом, тем более по факту готовый алгоритм действий я себе придумал, питание на драйверы даю в ручном режиме тумблером и оно не зависит от компьютера, а вашим модулем, только выставляю дома, потом выключаю linuxcnc c Вашим модулем и запускаю на классической кинематике, да костыли, да можно на обычном granty, но пока так.
AAN
Мастер
Сообщения: 297
Зарегистрирован: 14 апр 2015, 10:28
Репутация: 38
Настоящее имя: Антон
Откуда: Томск
Контактная информация:

Re: LinuxCNC - Альтернативная кинематика.

Сообщение AAN »

Как успехи на данный момент? Насколько стабильной получилось сделать работу?
a321
Мастер
Сообщения: 568
Зарегистрирован: 03 дек 2016, 00:30
Репутация: 66
Контактная информация:

Re: LinuxCNC - Альтернативная кинематика.

Сообщение a321 »

AAN писал(а): Как успехи на данный момент? Насколько стабильной получилось сделать работу?
Я могу ошибаться, но тема как минимум в основной своей части утратила актуальность с выходом LinuxCNC2.8, где хоминг и соответствующа коррекция проводится по любому числу моторов\датчиков на одну ось.
Ответить

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