未收到sdo响应



我正在用python创建一个虚拟canopenslave,以便与现有的master通信。当运行我的脚本时,我不断地得到这个错误";没有接收到sdo响应";。据我所知,我需要一个sdo服务器来向master发送响应,有可能创建一个虚拟sdo服务器吗?否则,有人知道如何解决这个问题吗?

是的,可以创建一个具有SDO服务器的虚拟CAN设备。在硬件可用之前,您可以将其与虚拟can总线(Linux上的vcan(一起使用,以测试您的can通信。

  1. 启用vcan:
$ modprobe vcan
$ sudo ip link add dev vcan0 type vcan
$ sudo ip link set up vcan0
  1. 使用SDO服务器启动虚拟CAN设备:

根据有问题的标签,我假设您使用python canopen。所以你可以用这个https://canopen.readthedocs.io/en/latest/sdo.html#canopen.sdo.SdoServer,将读取您的node.edsnode.xdd文件。在一个终端中运行这个Python脚本。请记住使用vcan0接口。network.connect(channel='can0', bustype='socketcan')

  1. 运行您的"主";第二个终端中的SDO客户端脚本。它将从您的虚拟设备中读取SDO。记得使用vcan0接口

最新更新