EtherCAT с SOEM на WSL Ubuntu 18

Кто-нибудь пробовал подключиться к устройству EtherCAT через SOEM в WSL linux?

В то время как TwinCAT успешно подключается к моему Maxon EPOS4 и перемещает двигатель постоянного тока на моем ноутбуке под Windows 10 с помощью промежуточного драйвера RT-Ethernet, SOEM slaveinfo не возвращает подчиненных устройств, найденных на eth0 под WSL.

Пс. Я использую адаптер локальной сети ethernet-usb-c с моим ноутбуком, автоматический IP-адрес, Ubuntu 18.04 на WSL 2 с установленным Hyper-V, а также тестировал отключение брандмауэра Windows. Я еще не использовал SOEM под Windows из-за проблем с компиляцией. Первоначально у меня не было обнаружено сокета по проблеме eth0, но она была решена после установки Hyper-V и обновления моей текущей установки WSL Ubuntu-18.04 до WSL 2.

У меня такая же проблема с WSL Ubuntu 20, когда брандмауэр деактивирован, если я отключу все службы TwinCAT и удалю элементы TwinCAT из окна свойств Ethernet!

Вот что я делаю и какие результаты:

$ sudo setcap cap_net_raw+ep /opt/ros/melodic/bin/slaveinfo

$ sudo /opt/ros/melodic/bin/slaveinfo

SOEM (Simple Open EtherCAT Master)
Slaveinfo
Usage: slaveinfo ifname [options]
ifname = eth0 for example
Options :
 -sdo : print SDO info
 -map : print mapping
Available adapters
Description : lo, Device to use for wpcap: lo
Description : bond0, Device to use for wpcap: bond0
Description : dummy0, Device to use for wpcap: dummy0
Description : eth0, Device to use for wpcap: eth0
Description : sit0, Device to use for wpcap: sit0
End program

$ sudo /opt/ros/melodic/bin/slaveinfo eth0

SOEM (Simple Open EtherCAT Master)
Slaveinfo
Starting slaveinfo
ec_init on eth0 succeeded.
No slaves found!
End slaveinfo, close socket
End program

person Hadi    schedule 17.01.2021    source источник


Ответы (2)


Не могли бы вы подробнее рассказать о контроллерах Ethernet? У вас есть один адаптер USB-C с TwinCAT и драйвером RT-Ethernet? Если это так, я бы ожидал, что SOEM, работающий в Ubuntu под WSL, не имеет доступа к этому контроллеру.

Я бы протестировал систему без установленного TwinCAT или откатил установку драйвера TwinCAT RT-Ethernet, чтобы контроллер Ethernet был доступен для Windows и, предположительно, WSL. Или у вас может быть дополнительный адаптер, которого нет в TwinCAT?

person Jon    schedule 18.01.2021
comment
Спасибо за ответ. У меня такая же проблема, если я отключу все службы TwinCAT и удалю элементы TwinCAT из окна свойств Ethernet: их было два! К сожалению, у меня нет доступа к другому ПК. Дополнительная информация приведена выше! - person Hadi; 19.01.2021

Для меня на Windows eth0 не будет работать с epos4. Пришлось написать getmac в консоли и скопировать строку

\Device\Tcpip_{------- copy this part ------}.

Тогда в моем коде я бы написал

init_comm("\\Device\\NPF_{--- your copied part ---}");
person Vinz    schedule 09.04.2021
comment
Спасибо, скоро попробую! - person Hadi; 10.04.2021