CANBUS 消费者和生产者心跳

问题描述 投票:0回答:1

我是 CANBUS 新手,对心跳的工作原理有一些疑问。我的设置涉及一个 PLC 与两个设备进行通信,我需要能够确定何时与它们进行通信。当通讯中断时就会出现问题; CANBUS 消息完全冻结。为了解决这个问题,我认为心跳是必要的。我的想法是用计数器接收定期消息。

我一直在尝试了解如何实现生产者和消费者与CANBUS Master进行消息交换,但到目前为止,我还没有取得任何成功。您能指导我如何设置生产者和消费者吗?

设备1:ID 02 设备 2:ID 3C

enter image description here 这是我尝试发送的内容,但不幸的是,我没有收到任何回复。

我的想法是用计数器接收定期消息。

embedded can-bus canopen
1个回答
0
投票

对象字典条目与 CAN 帧标识符(“COBID”)不同!

心跳消费者和生产者配置在对象字典中的索引 1016h 和 1017h 中,如 CiA301 所指定。为了访问对象字典中的任何条目,您必须执行 SDO 访问。这是通过 Tx 和 Rx SDO 对象完成的,您将至少拥有其中之一。通常对应 CAN id 600h + 节点 id (Tx) 和 580h + 节点 id (Rx)。

理想情况下,您在进入操作模式之前,在预操作模式下配置每个节点。当 Heartbeat 处于活动状态时,每个节点都会以指定的时间间隔报告所处的模式,CAN 帧 0x700 + 节点 id。

但是您不使用 SDO,而是通过 CAN 发送对象字典地址,就好像它们是标识符一样。那是行不通的。此外,您似乎正在使用扩展标识符,这可能也不是您想要的。

CANopen 非常复杂,所以我建议在做其他事情之前详细研究它。仅靠反复试验你不会走得太远。

© www.soinside.com 2019 - 2024. All rights reserved.