微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

没有收到 sdo 响应

如何解决没有收到 sdo 响应

我正在使用 python 创建一个虚拟的 canopen 从站,以便与现有的主站进行通信。 运行我的脚本时,我不断收到此错误“未收到 sdo 响应”。 据我所知,我需要一个 sdo 服务器来向主服务器发送响应,是否可以创建一个虚拟的 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 接口。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。