2016-07-30 116 views
0

我建立了一个由3个引擎组成的CANOpen网络,每个引擎都有自己的CANOpen从站。我有一个Hilscher CifX板作为CANOpen主设备。是否可以通过SDO轮询CANOpen变量,如果是这样,怎么办?

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

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

我想读取这些变量的值每20ms左右。我可以通过SDO轮询设备吗?如果是这样,怎么样?

回答

1

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

该消息应该看起来像这样(对象指数:0×1234,子索引:0×01):

编号:0x680 +的NodeId,DLC:8,数据:0x40的0x34 0×12 0×01 0×00 0×00 0×00 0×00

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

+0

@ M.Neubauer:谢谢。我查看了DS301,并可以将您的示例映射到“Initiate SDO Upload”协议的消息结构。我看到“加速传输”位是从属设备响应的一部分(在我的情况中)。这是否意味着在这种情况下从机可以选择传输模式?是否有保证,由于数据不超过4个字节,从机总是选择使用快速传输? –

+0

是的,它由主机决定传输模式。我认为大部分实施都会加快转移。但可以通过分段上传传输少于4个字节的数据。所以没有保证。 – mkninc

+0

所以我很好的贯彻整个服务。 –

相关问题