12. CANopen节点保护参数的设置

CANopen的节点监控有两种模式:

  • 心跳保护:心跳保护是单边的,主站检测不到从站的心跳就认为从站有问题;
  • 节点保护:节点保护是双边的,当节点保护功能被激活时,比如突然拔掉CANOPEN总线,这时主从站都会报错。

当倍福作为主站时,默认心跳检测(heartbeat)是勾选的,即默认使用的是心跳保护模式。当需要使用节点保护模式时,则需要取消勾选。如下图所示:

再介绍一下上图中的一些重要参数:

  • 保护时间(Guard Time)是主站发送检测信号的时间,单位是10ms100表示1s;
  • 寿命因子(Life Time Factor)表示收不到这个检测信号多久后报警,3表示3个检测周期后报警。

保护时间是周期性的发送报文到从站,主站发送的是空报文,报文的COBID是0x701(1号节点,其他节点按下图推)

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

如果超过寿命因子时间(保护时间*寿命因子),主站还没有接收到从站的应答信号,则认为从站出错。

相对于主站来说,从站不需要知道主站这么多的状态,它只需要监控主站在保护时间内的701心跳报文,如果收不到经过寿命因子时间后,从站就自我保护。

 

上文介绍的是节点保护模式,如果启用心跳保护模式,需要勾选Use Heartbeat,之后会优先使用心跳检测模式。

心跳保护的工作原理:从站在保护时间周期性的发送报文到主站,如果主站在超过保护时间*寿命因子的时间还没有收到从站的下一个心跳报文则认为从站出错。

正常的从站报文含了如下信息:

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

 

2025.12.1 杨靖华 供稿