EtherCAT & LinuxCNC

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
FLUKE
Мастер
Сообщения: 843
Зарегистрирован: 11 мар 2013, 21:18
Репутация: 187
Настоящее имя: Сергей
Откуда: Смоленск
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение FLUKE »

Всех приветствую.
Появилось время поковырять EtherCAT & LinuxCNC. Собственно что то не могу разобраться с последним.
Установлен образ Debian 9 - linuxcnc-stretch-uspace-amd64-r13.iso c Linuxcnc 2.7.14
Вроде, как всё стартует без ошибок. После запуска LCNC привод переходит в ОР, встаёт в удержание, LCNC видит текущее положение вала двигателя, при попытке рукой повращать вал LCNC видит изменение положения вала.
При нажатии F2 в LCNC привод уносится куда то и уже не останавливается, не могу понять почему.
При ковырянии HAL Configurator заметил, что значения axis.0.motor-pos-fb и axis.0.motor-pos-cmd равны, если пробовать шевелить вал двигателя axis.0.motor-pos-fb меняется и вслед за ним меняется axis.0.motor-pos-cmd, что, по моему мнению, быть не должно.
Собственно вопрос, что прописывать в HAL, что бы привод по Ethercat работал как шаговик, без обратной связи. Привод сейчас настроен в Cyclic Synchronous Position Mode.
Конфиг приложил.
Вложения
ETHERCAT_TEST.7z
(1.71 КБ) 353 скачивания
Аватара пользователя
merkwurdigliebe
Мастер
Сообщения: 608
Зарегистрирован: 17 дек 2013, 22:14
Репутация: 580
Откуда: București
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение merkwurdigliebe »

FLUKE писал(а):При ковырянии HAL Configurator заметил, что значения axis.0.motor-pos-fb и axis.0.motor-pos-cmd равны, если пробовать шевелить вал двигателя axis.0.motor-pos-fb меняется и вслед за ним меняется axis.0.motor-pos-cmd, что, по моему мнению, быть не должно.
должно, пока machine power off (F2). иначе при включении двигатели будут куда-нить резко прыгать
Duhas
Мастер
Сообщения: 1949
Зарегистрирован: 10 окт 2015, 23:25
Репутация: 284
Настоящее имя: Андрей
Откуда: Красноярск
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение Duhas »

т.е. оно постоянно приравнивается? я не в LCNC один раз вычитывал положение серв и все..
Аватара пользователя
FLUKE
Мастер
Сообщения: 843
Зарегистрирован: 11 мар 2013, 21:18
Репутация: 187
Настоящее имя: Сергей
Откуда: Смоленск
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение FLUKE »

merkwurdigliebe писал(а):должно, пока machine power off (F2). иначе при включении двигатели будут куда-нить резко прыгать
FLUKE писал(а):При нажатии F2 в LCNC привод уносится куда то и уже не останавливается, не могу понять почему.
Если привод не выдергивать с розетки, а зайти в HAL Conf, то видно, что cmd увеличивается вместе с fb.
Аватара пользователя
FLUKE
Мастер
Сообщения: 843
Зарегистрирован: 11 мар 2013, 21:18
Репутация: 187
Настоящее имя: Сергей
Откуда: Смоленск
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение FLUKE »

Duhas писал(а):т.е. оно постоянно приравнивается?
Постоянно, значения один в один.
Libkin_Sergei
Новичок
Сообщения: 7
Зарегистрирован: 23 ноя 2020, 08:47
Репутация: 10
Настоящее имя: Любкин Сергей Сергеевич
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение Libkin_Sergei »

Все привет возможно тема заброшена но все же может кто-то победил и поможет разобраться
steals_y2k
Мастер
Сообщения: 938
Зарегистрирован: 29 окт 2017, 14:08
Репутация: 60
Настоящее имя: Makc
Откуда: Ярославль
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение steals_y2k »

а что с ним не так?
в конце 2018 уже всё работало.
как-то раз даже с 0 устанавливал на станок всё.
Libkin_Sergei
Новичок
Сообщения: 7
Зарегистрирован: 23 ноя 2020, 08:47
Репутация: 10
Настоящее имя: Любкин Сергей Сергеевич
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение Libkin_Sergei »

steals_y2k писал(а): всё
Могу попросить ткнуть пальцем что читать и как настраивать если не трудно конечно у меня сервоусилитель ax5206 2х канальный вот мучаюсь настроить не могу
steals_y2k
Мастер
Сообщения: 938
Зарегистрирован: 29 окт 2017, 14:08
Репутация: 60
Настоящее имя: Makc
Откуда: Ярославль
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение steals_y2k »

собсна,
loadusr -W lcec_conf ethercat-conf.xml
loadrt lcec
addf lcec.read-all servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf x-pid.do-pid-calcs servo-thread
addf y-pid.do-pid-calcs servo-thread
addf z-pid.do-pid-calcs servo-thread
addf a-pid.do-pid-calcs servo-thread
addf b-pid.do-pid-calcs servo-thread
addf c-pid.do-pid-calcs servo-thread
addf lcec.write-all servo-thread

и дальше уже как обычно-пины. не думаю, что с ними проблемы))))
в ethercat-conf.xml надо вписать мак сетевухи.
в каталогах по ссылке разные варианты установки,деб и копия гит чтоль, я уже не помню, какой из них был в итоге.
Libkin_Sergei
Новичок
Сообщения: 7
Зарегистрирован: 23 ноя 2020, 08:47
Репутация: 10
Настоящее имя: Любкин Сергей Сергеевич
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение Libkin_Sergei »

steals_y2k писал(а): 01 дек 2020, 10:51 собсна,
loadusr -W lcec_conf ethercat-conf.xml
loadrt lcec
addf lcec.read-all servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf x-pid.do-pid-calcs servo-thread
addf y-pid.do-pid-calcs servo-thread
addf z-pid.do-pid-calcs servo-thread
addf a-pid.do-pid-calcs servo-thread
addf b-pid.do-pid-calcs servo-thread
addf c-pid.do-pid-calcs servo-thread
addf lcec.write-all servo-thread

и дальше уже как обычно-пины. не думаю, что с ними проблемы))))
в ethercat-conf.xml надо вписать мак сетевухи.
в каталогах по ссылке разные варианты установки,деб и копия гит чтоль, я уже не помню, какой из них был в итоге.




Ну как сказать драйвера есть вроде не дурак но с линуксом на вы, если не трудно подробнее расписать буду благодарен
steals_y2k
Мастер
Сообщения: 938
Зарегистрирован: 29 окт 2017, 14:08
Репутация: 60
Настоящее имя: Makc
Откуда: Ярославль
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение steals_y2k »

куда уж подробнее..😏
sudo dpkg -i имя_пакета
потом добавить в основной хал строки выше.
sudo ifconfig
найти ethercat_conf.xml и вписать в него мак сетевой, в которую воткнут эзеркат.
запустить конфиг, открыть "установки хал".
и дальше привязывать пины к осям.

зы. у меня была гораздо менее подробная инструкция, да ещё и не на русском.
Libkin_Sergei
Новичок
Сообщения: 7
Зарегистрирован: 23 ноя 2020, 08:47
Репутация: 10
Настоящее имя: Любкин Сергей Сергеевич
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение Libkin_Sergei »

Libkin_Sergei писал(а): и дальше уже как обычно-пины. не думаю, что с ними проблемы))))
в ethercat-conf.xml надо вписать мак сетевухи.
Мак вписал не понимаю куда нудно вписать
Libkin_Sergei писал(а): loadusr -W lcec_conf ethercat-conf.xml
loadrt lcec
addf lcec.read-all servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf x-pid.do-pid-calcs servo-thread
addf y-pid.do-pid-calcs servo-thread
addf z-pid.do-pid-calcs servo-thread
addf a-pid.do-pid-calcs servo-thread
addf b-pid.do-pid-calcs servo-thread
addf c-pid.do-pid-calcs servo-thread
addf lcec.write-all servo-thread
у меня нет файлов))) нудно создать конфигурацию и потом править? если создавать то получается под LPT PORT?
И как прописывать пины тоже не в курсе ((( увы взялся с сложной задачи не подумав и не подготовившись надеюсть на ваше понимание ))))
steals_y2k
Мастер
Сообщения: 938
Зарегистрирован: 29 окт 2017, 14:08
Репутация: 60
Настоящее имя: Makc
Откуда: Ярославль
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение steals_y2k »

я же написал, что в основной хал)
можно создать под lpt и посмотреть.

есть где-то примеры на импортном языке, такчто.. тренируйтесь :) в гугле и чтении мануала по лснс.
если взялись за сборку, то явно не бесплатно. на не самом дешёвом эзеркате)))
удачи.
Libkin_Sergei
Новичок
Сообщения: 7
Зарегистрирован: 23 ноя 2020, 08:47
Репутация: 10
Настоящее имя: Любкин Сергей Сергеевич
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение Libkin_Sergei »

steals_y2k писал(а): есть где-то примеры на импортном языке, такчто.. тренируйтесь :) в гугле и чтении мануала по лснс.
если взялись за сборку, то явно не бесплатно. на не самом дешёвом эзеркате)))
удачи
Бесплатно так как себе)))) а драйверов таких 2 на весь станок да и серво получьше будет чем гибрид))) ОК СПАСИБО И НА ЭТОМ буду разбираться
Libkin_Sergei
Новичок
Сообщения: 7
Зарегистрирован: 23 ноя 2020, 08:47
Репутация: 10
Настоящее имя: Любкин Сергей Сергеевич
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение Libkin_Sergei »

steals_y2k писал(а): 03 дек 2020, 17:04 я же написал, что в основной хал)
можно создать под lpt и посмотреть.

есть где-то примеры на импортном языке, такчто.. тренируйтесь :) в гугле и чтении мануала по лснс.
если взялись за сборку, то явно не бесплатно. на не самом дешёвом эзеркате)))
удачи.
Друже подскажи понять не могу протокол общения с серво один и тот-же для всех фирм т.е. адрес для задания положения серво включения ??
ex71
Мастер
Сообщения: 697
Зарегистрирован: 18 май 2019, 13:23
Репутация: 96
Настоящее имя: Андрей
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение ex71 »

прочитал всю тему, и остался лишь один вопрос, который собственной почти повторяет последнее сообщение:
любая серва будет поддерживаться связкой LCNC & EtherCat ?

То есть заходим на ыбэй, находим первую попавшуюся серву с eth портами, гуглим ее документацию, убеждаемся что производитель заявляет работу по EtherCat. И следовательно мы можем ею управлять?
Или есть какие-то особенности выбора железа?
Duhas
Мастер
Сообщения: 1949
Зарегистрирован: 10 окт 2015, 23:25
Репутация: 284
Настоящее имя: Андрей
Откуда: Красноярск
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение Duhas »

не знаю как с LCNC, но в целом протокол у разных серв может отличаться, моя практика был с CONopen по езеркату, с дельтой, там одни регистры отвечали за задание, у других серв, в частности когда 2 оси на одном модуле, были отличия. Но я думаю в LCNC это должно конфигурироваться.
ex71
Мастер
Сообщения: 697
Зарегистрирован: 18 май 2019, 13:23
Репутация: 96
Настоящее имя: Андрей
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение ex71 »

Ну ладно, спрошу еще раз ) Я еще не вникал в тонкости реализации и читал чисто поверхностно. Если бы были в наличии моторы я бы уже прочитал все и попробовал. НО пока нет железа - это не имеет смысла, вникнуть в тонкости не возможно.
А железа не будет пока не выясню, что любой EtherCat девайс можно прикрутить к LinuxCNC. Поэтому после беглого прочтения форума lcnc.org

1. Получается что протокол в целом лишь описывает принцип общения чпу и устройств?
2. Для работы нам надо написать некий xml конфиг, в котором связать значения понимаемые сервой со значениями lcnc?
3. В последствии конфиг можно использовать либо для работы напрямую, либо для прекомпиляции либы?
4. Нужен софт которым настраивается серва, из него некоторым образом можно вытянуть конфиг/параметры которые дальше идут в п.2 ?
steals_y2k
Мастер
Сообщения: 938
Зарегистрирован: 29 окт 2017, 14:08
Репутация: 60
Настоящее имя: Makc
Откуда: Ярославль
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение steals_y2k »

я не настоящий сварщик, но таки попробую.
1. да
2. да
3. ну, не напрямую, таки соотнести созданные пины с параметрами lcnc надо.
4. не знаю :(

у меня хмл такой:
(для просмотра содержимого нажмите на ссылку)
<masters>
<master idx="0" appTimePeriod="1000000" refClockSyncCycles="1000">

<slave idx="0" type="generic" vid="000001DD" pid="00005500" configPdos="true">
</slave>
<slave idx="1" type="generic" vid="000001DD" pid="00006022" configPdos="true">
<syncManager idx="0" dir="in">
<pdo idx="1a00">
<pdoEntry idx="6000" subIdx="01" bitLen="1" halPin="6022.in-00" halType="bit"/>
</pdo>
<pdo idx="1a01">
<pdoEntry idx="6010" subIdx="01" bitLen="1" halPin="6022.in-01" halType="bit"/>
</pdo>
<pdo idx="1a02">
<pdoEntry idx="6020" subIdx="01" bitLen="1" halPin="6022.in-02" halType="bit"/>
</pdo>
<pdo idx="1a03">
<pdoEntry idx="6030" subIdx="01" bitLen="1" halPin="6022.in-03" halType="bit"/>
</pdo>
<pdo idx="1a04">
<pdoEntry idx="6040" subIdx="01" bitLen="1" halPin="6022.in-04" halType="bit"/>
</pdo>
<pdo idx="1a05">
<pdoEntry idx="6050" subIdx="01" bitLen="1" halPin="6022.in-05" halType="bit"/>
</pdo>
<pdo idx="1a06">
<pdoEntry idx="6060" subIdx="01" bitLen="1" halPin="6022.in-06" halType="bit"/>
</pdo>
<pdo idx="1a07">
<pdoEntry idx="6070" subIdx="01" bitLen="1" halPin="6022.in-07" halType="bit"/>
</pdo>
<pdo idx="1a08">
<pdoEntry idx="6080" subIdx="01" bitLen="1" halPin="6022.in-08" halType="bit"/>
</pdo>
<pdo idx="1a09">
<pdoEntry idx="6090" subIdx="01" bitLen="1" halPin="6022.in-09" halType="bit"/>
</pdo>
<pdo idx="1a0a">
<pdoEntry idx="60a0" subIdx="01" bitLen="1" halPin="6022.in-10" halType="bit"/>
</pdo>
<pdo idx="1a0b">
<pdoEntry idx="60b0" subIdx="01" bitLen="1" halPin="6022.in-11" halType="bit"/>
</pdo>
<pdo idx="1a0c">
<pdoEntry idx="60c0" subIdx="01" bitLen="1" halPin="6022.in-12" halType="bit"/>
</pdo>
<pdo idx="1a0d">
<pdoEntry idx="60d0" subIdx="01" bitLen="1" halPin="6022.in-13" halType="bit"/>
</pdo>
<pdo idx="1a0e">
<pdoEntry idx="60e0" subIdx="01" bitLen="1" halPin="6022.in-14" halType="bit"/>
</pdo>
<pdo idx="1a0f">
<pdoEntry idx="60f0" subIdx="01" bitLen="1" halPin="6022.in-15" halType="bit"/>
</pdo>
</syncManager>
<dcConf assignActivate="500" sync0Cycle="*1" sync0Shift="250000"/>
<watchdog divider="2498" intervals="1000"/>
</slave>
<slave idx="2" type="generic" vid="000001DD" pid="00007062" configPdos="true">
<syncManager idx="0" dir="out">
<pdo idx="1600">
<pdoEntry idx="7000" subIdx="01" bitLen="1" halPin="7062.out-00" halType="bit"/>
</pdo>
<pdo idx="1601">
<pdoEntry idx="7010" subIdx="01" bitLen="1" halPin="7062.out-01" halType="bit"/>
</pdo>
<pdo idx="1602">
<pdoEntry idx="7020" subIdx="01" bitLen="1" halPin="7062.out-02" halType="bit"/>
</pdo>
<pdo idx="1603">
<pdoEntry idx="7030" subIdx="01" bitLen="1" halPin="7062.out-03" halType="bit"/>
</pdo>
<pdo idx="1604">
<pdoEntry idx="7040" subIdx="01" bitLen="1" halPin="7062.out-04" halType="bit"/>
</pdo>
<pdo idx="1605">
<pdoEntry idx="7050" subIdx="01" bitLen="1" halPin="7062.out-05" halType="bit"/>
</pdo>
<pdo idx="1606">
<pdoEntry idx="7060" subIdx="01" bitLen="1" halPin="7062.out-06" halType="bit"/>
</pdo>
<pdo idx="1607">
<pdoEntry idx="7070" subIdx="01" bitLen="1" halPin="7062.out-07" halType="bit"/>
</pdo>
<pdo idx="1608">
<pdoEntry idx="7080" subIdx="01" bitLen="1" halPin="7062.out-08" halType="bit"/>
</pdo>
<pdo idx="1609">
<pdoEntry idx="7090" subIdx="01" bitLen="1" halPin="7062.out-09" halType="bit"/>
</pdo>
<pdo idx="160a">
<pdoEntry idx="70a0" subIdx="01" bitLen="1" halPin="7062.out-10" halType="bit"/>
</pdo>
<pdo idx="160b">
<pdoEntry idx="70b0" subIdx="01" bitLen="1" halPin="7062.out-11" halType="bit"/>
</pdo>
<pdo idx="160c">
<pdoEntry idx="70c0" subIdx="01" bitLen="1" halPin="7062.out-12" halType="bit"/>
</pdo>
<pdo idx="160d">
<pdoEntry idx="70d0" subIdx="01" bitLen="1" halPin="7062.out-13" halType="bit"/>
</pdo>
<pdo idx="160e">
<pdoEntry idx="70e0" subIdx="01" bitLen="1" halPin="7062.out-14" halType="bit"/>
</pdo>
<pdo idx="160f">
<pdoEntry idx="70f0" subIdx="01" bitLen="1" halPin="7062.out-15" halType="bit"/>
</pdo>
</syncManager>
<dcConf assignActivate="500" sync0Cycle="*1" sync0Shift="250000"/>
<watchdog divider="2498" intervals="1000"/>
</slave>
<slave idx="3" type="DeASDA" name="3A1">
<dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="-25000"/>
</slave>
<slave idx="4" type="DeASDA" name="3A2">
<dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="-25000"/>
</slave>
<slave idx="5" type="DeASDA" name="4A3">
<dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="-25000"/>
</slave>
<slave idx="6" type="DeASDA" name="5A5">
<dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="-25000"/>
</slave>
<slave idx="7" type="DeASDA" name="6A6">
<dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="-25000"/>
</slave>
</master>
</masters>
ex71
Мастер
Сообщения: 697
Зарегистрирован: 18 май 2019, 13:23
Репутация: 96
Настоящее имя: Андрей
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение ex71 »

steals_y2k писал(а): 11 янв 2021, 09:37 я не настоящий сварщик, но таки попробую.
1. да
2. да
3. ну, не напрямую, таки соотнести созданные пины с параметрами lcnc надо.
4. не знаю :(
ну из первых 30 страниц оригинальной темы я выяснил:
1. это протокол передачи данных между ЧПУ и устройствами. Стандарт есть, но походу не совсем жесткий, поэтому надо вникать в кучу данных и пробовать.
За время от разработки до нынешнего дня появились разные реализации железных чипов. К примеру можно прикрутить lan92xx от microchip или купить на али готовую отладочную плату как slave, так и master. Стоит около 5к, в отличии от оригинального беркофа за 350 евро.
То есть перейти полностью на ECat не так уж сложно.

2. нужен конфиг содержащий соответствие значениям чпу-устройство
3. конфиг загружается для драйвера ecat в lcnc, компилить либу не надо если нет каких-то уж очень специфичных свойств. Но варианты настройки устройств могут отличатся, поэтом бывает потребность в скриптах настройки который надо запускать до старта lcnc.
Но надо компилить LCNC и сам драйвер.
4. софт более-менее универсальный (TwinCAT), нужен для первоначальной настройки устройства и выяснения ее некоторых параметров. В целом в документации производителя должно быть указано каким софтом настраивается их железо.

но в целом можно подключить любое устройство на EtherCat, вопрос лишь наличия конфига производителя и соответствия некоторым стандартам. Из коробки не заработает.
На оф. форуме есть xml конфиг для yaskawa, omron, panasonic.
Изначальный XML под устройство надо искать на сайте производителя, дальше перебирать его на предмет нужных данных и составлять свой xml конфиг - вот это к сожалению не совсем детально описано. То есть инструкция есть, но почему именно "это" не понятно. В примере не явно указаны нужные параметры, посему есть вероятность что не заработает. Ну у некоторых даже за пару дней получалось запустить )
Кароче попробую купить сервы.
Ответить

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