Обновить
4K+
4
Юрий@synctwin

Инженер ПНР: EtherCAT, LinuxCNC, цифровой двойник

7
Рейтинг
2
Подписчики
Отправить сообщение

EtherCAT в LinuxCNC: что такое lcec и как написать свой драйвер

Уровень сложностиСредний
Время на прочтение25 мин
Охват и читатели7.2K

Привод, которого нет в каталоге lcec, заводится через generic — картой PDO, набранной руками в XML: у нашего стенда это 236 строк, и ошибка в одном индексе означает «слейв не дошёл до OP», больше лог не скажет ничего. Свой драйвер CiA 402 заменяет эту простыню на строку <slave type="VD3E" name="s"/> и занимает двадцать содержательных строк. Ниже - зачем его писать и когда не надо, что нужно узнать про прибор, где это взять и что ломается по дороге. Маршрут: как устроена связка и где в ней lcec → что у пяти приводов одинаково, а что у каждого своё → как снять с незнакомого привода пять нужных фактов четырьмя командами → сам драйвер целиком, с разбором → что ломается и как это выглядит в логе.

Читать далее

Привод ответил ACK. Что он на самом деле пообещал?

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели6.1K

В логах запуска нашего стенда давно живёт строка Failed SDO download 0x6060 (-22). Мы её лечили всерьёз — пока не заметили, что та же строка печатается и в успешных запусках. Подтверждение на полевой шине приходит почти всегда, а значит куда меньше, чем кажется. Под катом — четыре ступени «принял» на живых замерах: почему сброс ошибки с честным ack её не снимает; как электронный редуктор не увидеть замером, который сам через него идёт; и сколько стоит спросить привод по SDO — 32 мс на параметр, полный паспорт около десяти секунд.

Смотреть замеры

Почему EtherCAT в LinuxCNC держится на компоненте из 9 коммитов

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели7.7K

Есть на GitHub репозиторий из одного файла: 9 коммитов, 48 звёзд, лицензия GPL-2.0. Через него проходит заметная часть всех станков, где LinuxCNC разговаривает с сервоприводами по EtherCAT, — и у него нет ни форков, ни конкурентов, ни «переписал на Rust». Когда мы начинали свой стенд, это казалось странным; спустя месяцы наладки трёх серво по живой шине ответ нашёлся — и он интереснее, чем «проект заброшен». Под катом — весь стек от сетевой карты до joint.0.motor-pos-cmd и шесть граблей, которых нет ни в одном README: карта битов, съехавшая на +4 против мануала, SDO-записи навсегда в EEPROM и момент −0.4%, показанный как 6553%.

Читать далее

Информация

В рейтинге
932-й
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность

Специализация

Инженер встраиваемых систем, Инженер ПНР
Ведущий
АСУ ТП
Linux
Программирование ЧПУ
Python
Docker
PostgreSQL
Scada
Встраиваемая система