我们正在开发一个典型的 CANbus 网络系统,您可以称之为控制器来组织许多设备。
设备需要配置,控制器使用常规对象字典项(当前在制造商特定范围内)写入(也可能读回)。
设备还使用超过 8 个字节的数据执行操作(命令),我们通过在设备对象字典中只写入项目并依靠 SDO 的常规分段/取消分段来解决这个问题。(不知道这是否是CANopen的做事方式,但似乎合理)。
但是,设备也会产生事件(比如某些传感器数据超过某个阈值),从而导致来自设备的异步数据超过 8 个字节。PDO 用于发送异步事件数据,但它只能包含 8 个字节。设备可以将数据写入控制器上的对象字典项,但这似乎不像 CANopen 方式。我对吗?
我们想出的最好办法是向控制器发送一个 PDO,通知控制器设备上的对象字典中有更多数据可用。
任何具有 CANopen 背景的人都可以找到解决此问题的最佳(CANopen)方法吗?
由于我经常重复 8 个字节,我们可以放心地假设这个网络没有运行 CAN-FD。