LinuxCNC 2.8 + 2 мотора на ось инструкция и примеры как поделить 3 входа датчиков Home на 5 и более моторов

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
a321
Мастер
Сообщения: 563
Зарегистрирован: 03 дек 2016, 00:30
Репутация: 65
Контактная информация:

LinuxCNC 2.8 + 2 мотора на ось инструкция и примеры как поделить 3 входа датчиков Home на 5 и более моторов

Сообщение a321 »

Ниже - достаточно полное резюме по вопросу.
Стоит LCNC 2.8, плата Степмастер (это маловажно), на станке 5 моторов и 4 датчика Home + пробе + естоп. Входы LPT столько не дадут - все пины заняты, 5 моторов + естоп + шпиндель ШИМ + реле = 13 пинов, входы е-стоп + пробе = 2, остается три входа на 4 и более датчиков. В контексте конкретно Степмастера - у него аппаратно три входа для датчиков осей, которые жестко завязаны на конкретные ножки LPT. Инструкиция Степмастера, который может двигать одновременно 5 осей, предлагает датчики дополнительной оси подключать к клемме датчика Z, разработчик, он же изготовитель, в ответ на прямой вопрос ничего не ответил viewtopic.php?p=632848#p632848.

Благодарности коллеге и гражданину гражданинъ за viewtopic.php?f=15&t=29994

Опасности и неожиданности - при переходе к такой компоновке (два мотора на оси) после старта LinuxCNC до момента Хоминга мы получаем вцелом неуправляемый станок, поскольку до момента хоминга каждый мотор управляется отдельно и именно в том порядке очередности, в каком они поименованы в конфиге. Обычно именуют ХУZ, располагают в этом же порядке. Стрелки на клавиатуре влево-вправо двигают Х, вверх-вниз У и Пейдж+ Ап или Даун - Z. При двух моторах на Х будет двигаться Х1, Х2 и У. Из этого следует интересный вывод - если ось с двумя моторами располагать последней (или последними), то раздельное управление до хоминга сохранится по всем осям, кроме задвоенных - за эту возможность придется терпеть смену осей на кнопках компьютера. Сказанное имеет значение для разрешения ситуаций, когда мы на один вход подаем сигналы от нескольких датчиков.

Следует отметить, что конфигуратор Stepconf версии 2.8 отличается от версии 2.7 не только бОльшей тормознутостью, но и бОльшими возможностями и он не вполне бесполезен - это важно для тех, кто пробуя степконф от 2.7 морально готовится к переходу на 2.8 и пробует решения. Степконф 2.8 прямо предусматривает бОльшее число осей для управления - вроде 6, а также не только вариант "все датчики на один вход", но и это же раздельно по группам "все хоме на один вход", "все ...", это притягивает внимание, но не дает полного решения задачи.

Я шел по обычному пути - в новом степконфе сделать обычную конфигурацию 3 оси на 3 моторах и потом вручную плавить hal + ini. По существу это нужно только и исключительно для пробы скоростей моторов и вычисления нужных для конфига коэффициентов. Проще взять два прилагаемых здесь конфига и даже архив директория с конфигами, сохранить себе на диск и там поправить только в ini файле коэффициенты, координаты пределов осей, их скорости и ускорения, нежели идти обычным путем - копировать и модифицировать собственную трехмоторную конфигурацию в обоих файлах - простом ini и витееватом hal.

Суть в том, что возникает неразрешимый конфликт программно-аппаратной части - входов мало, а датчиков много. Пустив несколько датчиков по одному проводу и входу программа получает конфликт. На что я надеялся? - видя в Степконфе вариант распиновки ЛПТ "все пределы на одну ногу" я надеялся, что LCNC при этом применяет дополнительную логику обработки, не приводящую к неизбежно возникающему конфликту при таком варианте подключения - несмотря на то, что в настройках каждой оси явно указано "игнорировать лимиты при хоминге", это "игнорировать" работает и применяется только к той оси (мотору), который в текущий момент хомится. Как следствие ось хомится, но при этом получаем аборт, ошибку - мол, достигнут предел (сработал датчик) другой оси. Это преодолеть не смог. Идея была все первые моторы и их датчики завести на одну ножку ЛПТ, вторые моторы - на втору и третья была бы резервом на другие нужды. Но не прокатило.


Мои личные задачи полностью решены следующим образом - в hal отдал одну ножку ЛПТ оси Z (предел и хоме датчик), на первые моторы двухмоторных осей - им дал только Home со второй ножки, третью отдал Home вторых моторов осей (Х и У). Только Home, без пределов - поскольку у меня на Х и У сервы с обратной связью и механическими ограничителями хода = для меня приемлемо.
Вложения
tadam-4.hal
(5.98 КБ) 90 скачиваний
tadam-4.ini
(3 КБ) 80 скачиваний
tadam-4.zip
(5.83 КБ) 76 скачиваний
Последний раз редактировалось a321 04 апр 2022, 23:38, всего редактировалось 4 раза.
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
Сообщения: 4506
Зарегистрирован: 01 янв 2013, 13:13
Репутация: 920
Настоящее имя: Daniel
Откуда: Закарпатская обл. Украина
Контактная информация:

Re: LinuxCNC + LPT как поделить входы дачиков Home на 5 моторов

Сообщение xenon-alien »

a321 писал(а): Как выкручитваться? как заставить программу принимать сигнал с одной ножки ЛПТ и отдать это в два параметра net?
Функция OR2 не подойдет?
Или любая другая...
a321
Мастер
Сообщения: 563
Зарегистрирован: 03 дек 2016, 00:30
Репутация: 65
Контактная информация:

Re: LinuxCNC + LPT как поделить входы дачиков Home на 5 моторов

Сообщение a321 »

Буду думать и над OR2

Но нет ли варианта проще? - например, они же прямо в конфиге предлагают выбрать "все лимиты на один пин", и это дает такой блок кода в hal -


net all-limit-home <= parport.0.pin-10-in

net all-limit-home => axis.0.home-sw-in
net all-limit => axis.0.neg-lim-sw-in
net all-limit => axis.0.pos-lim-sw-in

При этом в степконфе выбор этой опции уничтожает установки индивидуальных входов. Т.е. решение в таком духе?
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
Сообщения: 4506
Зарегистрирован: 01 янв 2013, 13:13
Репутация: 920
Настоящее имя: Daniel
Откуда: Закарпатская обл. Украина
Контактная информация:

Re: LinuxCNC + LPT как поделить входы дачиков Home на 5 моторов

Сообщение xenon-alien »

Лимит лимитом - разрывая цепочку станок останавливается с ошибкой наездом на лимит. Если заведён на один вход, то система не знает какая именно ось, но главное, что бы остановился при наезде.
Так же и с одним датчиком дома. При этом выручка идёт с поочередности наезда на датчик домашнего положения. (прописывается в ини файле - хоуминг сиквэнс.) Сначала Z, потом Х, потом У... И так дале.
Так что сложно представить, если раздельно работает подчинённая ось. То хотя бы ещё один вход нужен для другого мотора одной оси, иначе перекосит портал.
Я ещё не вник в тонкости ЛЦНЦ, так что подсказать не могу.
Нужно пересмотреть все цепочки и имена пинов, как их можно задействовать
a321
Мастер
Сообщения: 563
Зарегистрирован: 03 дек 2016, 00:30
Репутация: 65
Контактная информация:

Re: LinuxCNC + LPT как поделить входы дачиков Home на 5 моторов

Сообщение a321 »

Как важно поговорить с умным человеком, особенно - с самим собой, размышляя над ответом коллеги и читая конфиг.

Вывод напрашивался сам собой - есть место, где задано Имя программному каналу, слушаещему пин, это здесь -

net both-home-z <= parport.0.pin-12-in-not

Более ничего не надо. Надо только в нужных местах расписать, как этот net both-home-z будем использовать, например так -

#входы датчиков Х2
net both-home-z => joint.1.home-sw-in

Но тогда надо кастрировать входы Z, поскольку хомим Z, затем Х и здесь сработает вход как "лимит" -

#входы датчиков Z
net both-home-z => joint.3.home-sw-in
#net both-home-z => joint.3.neg-lim-sw-in
#net both-home-z => joint.3.pos-lim-sw-in

Этот подход полностью рабочий (в инструкцию по настройке обобщу позднее). При таком подходе мы имеем лимит хоме и лимит рабочего поля по Х на первом моторе (на втором - только лимит хоме).

Но вот что тревожит - кастрировав Z входы для хоминга я не получу сигнала для остановки в случае пропуска шагов по Z, что несколько раз бывало. Т.е. система будет получать сигнал датчика Хоме Z и Хоме Х2, но не датчика лимита. Я проверил - срабатывание датчика не приводит к останову и это недопустимо. Какие будут идеи?
Последний раз редактировалось a321 03 апр 2022, 11:39, всего редактировалось 1 раз.
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
Сообщения: 4506
Зарегистрирован: 01 янв 2013, 13:13
Репутация: 920
Настоящее имя: Daniel
Откуда: Закарпатская обл. Украина
Контактная информация:

Re: LinuxCNC + LPT как поделить входы дачиков Home на 5 моторов

Сообщение xenon-alien »

Лимит постоянно активен и отслеживается системой.
Его можно отключить временно, когда идет поиск дома. (лимит = дом) HOME_IGNORE_LIMITS
После наезда на датчики дома, они не воспринимаются, как дом. Они становятся только лимитами.
a321
Мастер
Сообщения: 563
Зарегистрирован: 03 дек 2016, 00:30
Репутация: 65
Контактная информация:

Re: LinuxCNC + LPT как поделить входы дачиков Home на 5 моторов

Сообщение a321 »

xenon-alien писал(а): (лимит = дом) HOME_IGNORE_LIMITS
Разумеется, эта опция включена и "это так не работает" - игнорируется срабатывание лимита той оси, окторая хомится. Если на один вход даны два датчика, в нашем случае Х и Z, хомится Х, а слушает в т.ч. и Z = в процессе хоминга Х срабатывает обработка лимита Z и = аборт.

Т.е. лично моя задача решена - поскольку по Х и У двигатели с обратной связью и лимит У на грани отбойника, то могу сделать два входа по линии У - не будет риска "улетететь", ну упрется в отбойник, сработает аларм по крутящему моменту, да и то вряд ли, ни разу енкодеры не подводили. Но хотелось бы общего решения, красивого.
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11624
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4634
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: LinuxCNC 2.8 + 2 мотора на ось инструкция и примеры как поделить 3 входа датчиков Home на 5 и более моторов

Сообщение michael-yurov »

a321 писал(а): разработчик, он же изготовитель, в ответ на прямой вопрос ничего не ответил
Прямой вопрос был про сигналы на 16 и 17 пины. Вы просили "подробнее и детальнее".
Подробнее и детальнее на этот вопрос я ответил сообщением ранее. viewtopic.php?p=632622#p632622
a321 писал(а): В контексте конкретно Степмастера - у него аппаратно три входа для датчиков осей, которые жестко завязаны на конкретные ножки LPT.
Нет, при работе через LPT это просто 5 входов. Используйте как угодно. "Жестко завязаны" они только при использовании NCStudo.
a321 писал(а): Инструкиция Степмастера, который "может" 5 осей
Не надо ерничать. СтепМастер реально может полноценно работать с 5 осями, в отличии от всех остальных LPT плат, которые при работе с 5 осями не смогут управлять включением драйверов и включением и оборотами шпинделя.
a321 писал(а): При таком подходе мы имеем лимит хоме и лимит рабочего поля
Запутался пока читал. Где лимиты, а где датчики базы.
Не пойму, в чем проблема завести все лимиты на один пин, а датчики баз на другой. Датчик другой стороны портала на третий. Еще два свободных входа останется.

P.S. Вы, главное, не забудьте учесть то, что из моих слов цитировали! viewtopic.php?p=632647#p632647
Иначе портал перекашивать будет.
ex71
Мастер
Сообщения: 697
Зарегистрирован: 18 май 2019, 13:23
Репутация: 96
Настоящее имя: Андрей
Контактная информация:

Re: LinuxCNC 2.8 + 2 мотора на ось инструкция и примеры как поделить 3 входа датчиков Home на 5 и более моторов

Сообщение ex71 »

michael-yurov писал(а): Запутался пока читал. Где лимиты, а где датчики базы.
Не пойму, в чем проблема завести все лимиты на один пин, а датчики баз на другой. Датчик другой стороны портала на третий. Еще два свободных входа останется.
можно все на один, но надо правильно сконфигурить. То есть почитать оригинальный форум, на английском - там все описано.
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11624
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4634
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: LinuxCNC 2.8 + 2 мотора на ось инструкция и примеры как поделить 3 входа датчиков Home на 5 и более моторов

Сообщение michael-yurov »

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

Re: LinuxCNC 2.8 + 2 мотора на ось инструкция и примеры как поделить 3 входа датчиков Home на 5 и более моторов

Сообщение a321 »

К сожалению, чуда не случилось. На что я надеялся? - видя в Степконфе вариант распиновки ЛПТ "все пределы на одну ногу" я надеялся, что LCNC при этом применяет дополнительную логику обработки, не приводящую к неизбежно возникающему конфликту при таком варианте подключения - несмотря на то, что в настройках каждой оси явно указано "игнорировать лимиты при хоминге", это "игнорировать" работает и применяется только к той оси (мотору), который в текущий момент хомится. Как следствие ось хомится, но при этом получаем аборт, ошибку - мол, достигнут предел (сработал датчик) другой оси. Это преодолеть не смог. Идея была все первые моторы и их датчики завести на одну ножку ЛПТ, вторые моторы - на вторую и третья была бы резервом на другие нужды. Но не прокатило - пол дня сегодня провел в исследовании разных комбинаций подключений.

Мои личные задачи полностью решены следующим образом - в hal отдал одну ножку ЛПТ оси Z (предел и хоме датчик), а вот первые моторы двухмоторных осей - им дал только Home со второй ножки, третью отдал Home вторых моторов осей (Х и У). Только Home, без пределов - поскольку у меня на Х и У сервы с обратной связью и механическими ограничителями хода = для меня приемлемо.

Я давно хотел завести LCNC 2.8 с двумя моторами на ось во многом в целях выравнивания портала - схема с "платой выравнивания" меня не радовала тем, что надо было подкручивать датчики для реального выравнивания. В случае же LCNC 2.8 в настройках каждой оси, каждого мотора я могу выставить разные показания точки хоминга и на этой основе происходит автоматическое выравнивание портала. А точные данные для точек хоминга я могу не угадывать, а достаточно точно измерить согласно теме viewtopic.php?f=152&t=28376&p=559316.
Аватара пользователя
mikehv
Мастер
Сообщения: 2101
Зарегистрирован: 14 авг 2013, 10:10
Репутация: 1170
Откуда: Иваново
Контактная информация:

Re: LinuxCNC 2.8 + 2 мотора на ось инструкция и примеры как поделить 3 входа датчиков Home на 5 и более моторов

Сообщение mikehv »

Просто надо дом с оффсетом сделать, чтоб датчик отключился. И поиск по очереди конечно. Тогда можно на один вход завести концевики с разных осей.
Fomi12
Новичок
Сообщения: 2
Зарегистрирован: 07 апр 2022, 15:43
Репутация: 0
Настоящее имя: Ибрагим
Контактная информация:

Re: LinuxCNC 2.8 + 2 мотора на ось инструкция и примеры как поделить 3 входа датчиков Home на 5 и более моторов

Сообщение Fomi12 »

Опасности и неожиданности - при переходе к такой компоновке (два мотора на оси) после старта LinuxCNC до момента Хоминга мы получаем вцелом неуправляемый станок, поскольку до момента хоминга каждый мотор управляется отдельно и именно в том порядке очередности, в каком они поименованы в конфиге. Обычно именуют ХУZ, располагают в этом же порядке. Стрелки на клавиатуре влево-вправо двигают Х, вверх-вниз У и Пейдж+ Ап или Даун - Z. При двух моторах на Х будет двигаться Х1, Х2 и У. Из этого следует интересный вывод - если ось с двумя моторами располагать последней (или последними), то раздельное управление до хоминга сохранится по всем осям, кроме задвоенных - за эту возможность придется терпеть смену осей на кнопках компьютера. Сказанное имеет значение для разрешения ситуаций, когда мы на один вход подаем сигналы от нескольких датчиков.



Здравствуйте, решил перевести станок с Мач3 на ЛЦНЦ.
На основе этих статей, и методом тыка, все вроде бы получилось, на Y два двигателя, все оси хоумятся, по Y синхронно отправляются домой, доходят до концевиков.
Но проблема лишь в управлении с кнопок, по Y на кнопки реагирует лишь один движок. Даже после хоуминга. Пока не нашел как это решить, может кто знает?
Файлы конфигурации прикрепил.
Вложения
cnc1.hal
(4.4 КБ) 74 скачивания
cnc1.ini
(2.48 КБ) 71 скачивание
daiman444
Мастер
Сообщения: 304
Зарегистрирован: 18 май 2019, 15:24
Репутация: 31
Настоящее имя: Дмитрий
Контактная информация:

Re: LinuxCNC 2.8 + 2 мотора на ось инструкция и примеры как поделить 3 входа датчиков Home на 5 и более моторов

Сообщение daiman444 »

Если есть разъем pci то можно купить плату pci-lpt. В hal прописать ее как in и получите кучу входящих пинов. Навешать хоминги и концевики на второй лпт думаю самое то
Американский форум: задал вопрос — получил ответ.
Израильский форум: задал вопрос — получил вопрос.
Русский форум: задал вопрос и потом долго выслушиваешь какой ты м*дак.
https://youtube.com/channel/UCv22xgeww0FIzS9n4VrT2TA
Аватара пользователя
Dmaster
Мастер
Сообщения: 1271
Зарегистрирован: 15 июл 2011, 13:36
Репутация: 476
Контактная информация:

Re: LinuxCNC 2.8 + 2 мотора на ось инструкция и примеры как поделить 3 входа датчиков Home на 5 и более моторов

Сообщение Dmaster »

Я использовал максимально 7 lpt портов. Только пришлось платы паять на " вход" самому. В продаже нет плат 13 входов и 4 выхода.
" Linux CNC - наше всё"
daiman444
Мастер
Сообщения: 304
Зарегистрирован: 18 май 2019, 15:24
Репутация: 31
Настоящее имя: Дмитрий
Контактная информация:

Re: LinuxCNC 2.8 + 2 мотора на ось инструкция и примеры как поделить 3 входа датчиков Home на 5 и более моторов

Сообщение daiman444 »

Dmaster писал(а): Только пришлось платы паять на " вход"
Да, так называемые "платы мач3" только 5 входов имеют( поэтому опторазвязку порта для остальных входящих пинов надо самому делать
Американский форум: задал вопрос — получил ответ.
Израильский форум: задал вопрос — получил вопрос.
Русский форум: задал вопрос и потом долго выслушиваешь какой ты м*дак.
https://youtube.com/channel/UCv22xgeww0FIzS9n4VrT2TA
Ответить

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