有没有人尝试过在 WSL linux 中通过 SOEM 连接到 EtherCAT 设备?
当 TwinCAT 成功连接到我的 Maxon EPOS4 并使用 RT-Ethernet 中间驱动程序在 Windows 10 下移动我的笔记本电脑上的直流电机时,SOEM slaveinfo 返回在 WSL 下的 eth0 上找不到从站。
附言。我在笔记本电脑上使用以太网到 USB-C LAN 适配器,自动 IP 地址,安装 Hyper-V 的 WSL 2 上的 Ubuntu 18.04,并测试关闭我的 Windows 防火墙。由于编译问题,我还没有在 Windows 下使用 SOEM。最初,我在 eth0 问题上没有找到套接字,但在安装 hyper-V 并将我的 WSL 当前安装的 Ubuntu-18.04 升级到 WSL 2 后它解决了。
我在 WSL Ubuntu 20 下遇到同样的问题,当防火墙被停用时,如果我禁用所有 TwinCAT 服务并从以太网属性窗口卸载 TwinCAT 项目!
这是我所做的和输出:
$ 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