是否可以通过 SDO 轮询 CANOpen 变量,如果可以,怎么办?

Is it possible to poll CANOpen variables through SDO, and if so, how?

我已经建立了一个由 3 个引擎组成的 CANOpen 网络,每个引擎都有自己的 CANOpen 从站。我有一个 Hilscher CifX 板充当 CANOpen 主站。

我已经通过将 RPDO 和 TPDO 直接读写到 Hilscher 板的进程内存中实现了正确的引擎命令。

现在,我尝试通过Sycon.NET(Hilscher 配置工具)设置网络以将额外的变量映射到PDO,但是我想要捕获的变量没有出现在列表中。我认为这是因为 EDS 提到了这些变量的 PDO Mapping = 0

我想每隔 20 毫秒左右读取一次这些变量的值。我可以通过 SDO 轮询设备来做到这一点吗?如果可以,怎么做?

您可以对该对象执行 SDO 上传。

消息应如下所示(对象索引:0x1234,子索引:0x01):

Id:0x680 + NodeId,DLC:8,数据:0x40 0x34 0x12 0x01 0x00 0x00 0x00 0x00

您可以在 CiA DS301 中找到有关 SDO 的更多信息。