CAN OPEN主机怎样检测从站心跳

CAN 心跳是主机发心跳从站响应还是主机设从站心跳周期等待被动接收

1、首先要清楚CANopen的主机和从机有两种从站检测方式:分别为NMT 节点状态与心跳报文NMT 节点守护
2、关于你问题里的从站心跳属于NMT节点状态与心跳报文

要求在线上电的从站定时发送状态报文(心跳报文),以便于主站确认从站是否故障、是否脱离网络。
心跳报文发送的格式,CANID 与节点上线报文相同为700h+Node-ID,数据为 1 个字节,代表节点目前的状态,04h为停止状态,05h为操作状态,7Fh为预操作状态。

img

3、CANopen 从站按其对象字典中 1017h 中填写的心跳生产时间(ms)进行心跳报文的发送,而 CANopen 主站(NMT 主站)则会按其 1016h 中填写的心跳消费时间进行检查,假设超过诺干次心跳消费时间没有收到从站的心跳报文,则认为从站已经离线或者损坏。
具体使用看你程序效果,推荐使用为心跳消费时间 = 心跳生产时间 * 1.5以上。