32. 通过系统自带日志记录EtherCAT丢帧信息

一、功能介绍

EtherCAT 诊断和错误查找的文档中,介绍了关于EtherCAT硬件状态的诊断信息。通过这些信息可以方便的查找到EtherCAT网络中存在的异常和错误,但很多时候查看这些信息时,其中的错误计数是这次设备开机以来的累积计数,查看不到这些错误发生的具体时间,或者希望知道哪些时间发生的错误更多,如果有更具体的时间信息能更好的帮助诊断

本问答通过一个样例程序记录错误计数器的发生时间,便于进一步诊断EtherCAT错误,统计EtherCAT网络中的错误信息并存储到系统的日志中,便于查看分析设备运行以来在某个时刻某个从站出现的状态变化

该样例适用Win7Win10系统。若是WinCE系统,则需提前开启日志功能,详细方法见文档:《查看CE系统的日志文件》


二、使用方法

样例下载链接:https://tr.beckhoff.com.cn/pluginfile.php/85944/mod_book/chapter/15513/PRG_EtherCAT_Diagnostics.xml

将该XML文件导入到TwinCAT 3项目中,同时增加Tc2_EtherCAT库即可


三、程序实现思路

1.根据EtherCAT诊断和错误查找.pdf相关文档介绍(倍福虚拟学院文档下载地址:https://tr.beckhoff.com.cn/mod/resource/view.php?id=1125),通常使用到的几个诊断变量包括StateChanges、CrcError、LinkLostCounter、LostFrames读取到PLC中

2.其中,StateChanges是所有从站的状态改变的次数值,表明了各个模块在这段运行时间中其EtherCAT状态切换至OP的次数,CrcError(整个数据帧的循环冗余校验错误)是单个从站4port的值,LinkLostCounter是指硬件错误计数,LostFrames是主站发出的数据帧存在丢失的次数(如连续丢失10次会引起对应的EtherCAT网络重启)

3.程序中通过定时触发对应的功能块读取上述变量值,当发现改变时,记录当时的时间和数据到系统的日志中。后续可通过日志中的计数错误和丢帧时间来大致推测可能的故障点

4.此样例提供了一个大致的思路,对总线中出现的EtherCAT丢帧、模块通讯故障或干扰引起的总线问题做一个简单的记录,便于后续的分析。具体数据的分析要根据时间故障表现来综合判断


2025.9.26 王群峰 供稿