
CANopen的节点监控有两种模式:节点保护和心跳保护。
当EL6751作为主站时,默认心跳检测(heartbeat)是勾选的,这样默认使用的是心跳保护模式。当需要使用节点保护模式时,则要取消勾选,如下图所示:

其中:
保护时间是周期性的发送报文到从站,主站发送的是空报文,报文的COBID是0x701(1号节点,其他节点按下图公式计算即可)

当从站返回报文时,这个701地址就有了从站的状态,如下图所示:

如果超过保护时间*寿命因子时间后,主站还没有接收到从站的应答信号,则认为从站出错。
相对于主站来说,从站不需要知道主站这么多的状态。它只需要监控主站的保护时间内的701的心跳报文,如果收不到经过寿命因子时间(乘以寿命因子)后从站就自我保护。
上文介绍的是节点保护模式,如果启用心跳保护模式,需要勾选Use Heartbeat这个选项,勾选后优先使用心跳检测模式。
心跳保护的工作原理:从站在保护时间周期性的发送报文到主站,如果主站在超过保护时间*寿命因子的时间,还没有收到从站的下一个心跳报文,则认为从站出错。正常的从站报文含了如下信息:

可以发现,在心跳保护模式下,主站是不给从站发送心跳报文的,所以最好采用节点保护模式。
但是节点保护模式会增加网络的带宽占用,使用时需要综合评估。
2025.12.1 杨靖华 供稿