如何解决使用TwinCAT时EtherCAT网络出现“Sync Manager Watchdog”报错

Hello大家好,今年我们HMS技术服务工程师加入到公司知乎账号内容创作中,今后我们将跟大家分享一些工业通讯技术、OT/IT解决方案以及通讯协议等相关知识,也会记录一些平时在工作中帮助客户解决问题的过程。

今天这篇文章《如何解决使用TwinCAT时EtherCAT网络出现"Sync Manager Watchdog"报错》就是记录解决客户问题的一个全过程。让我们从问题入手到分析最后再到问题的解决。

1.客户遇到的问题

客户设备上搭载了我们EtherCAT网络通讯板卡,整套设备接入最终用户的倍福控制系统中。该系统已经连接了50多台EtherCAT从站设置,客户的设备接在网络的最后。

刚开始调试时一切正常,但是有天突然发现,在系统正常运行时,如果把连接到客户设备的网线拔掉再重新插上时,设备有时可以进入OP状态,有时无法进入OP状态,且无法进入时设备报sync manager watchdog错误,并且故障的出现是随机的,毫无规律可言。

2.尝试解决

首先由于设备是可以进入OP状态且正常通讯的,排除了模块自身的硬件故障。

其次我们检查了客户的配置和组态,没有发现问题。

接着由于该通讯模块在很多客户现场中使用,都可以正常工作,从来没有出现过该现象。我们考虑先关闭看门狗看看是否还会报错,做了以下尝试:

1.在TwinCAT中,在设备的Advanced Settings中关闭SM Watchdog,将下图中红色方框中的选项勾选掉。

结果一样,还是会在插拔设备网线时有时能进入OP,有时报SM看门狗错误。

2.将PLC任务周期减小

因为看门狗超时,是指在看门狗时间内主站没有发送数据给从站,从站报看门狗超时。

将PLC任务周期减小,依据没有效果,结果和之前一样。

3.在设备ESI中关闭看门狗功能

将设备ESI中的Outputs Sm2的控制字改为0x24,关闭看门狗功能。

SM ControlByte含义如下:

关闭后,结果还是一样,依据会报SM 看门狗错误。

此时,我们意识到客户的问题应该与看门狗无关,但仅从TwinCAT显示的错误信息中我们无法定位问题,必须要抓取底层数据报文来进行分析。

3.通过报文进行分析

通过分析抓取到的拔掉网线重连成功和拔掉网线重连不成功的报文,很快就找到了不同:

上面是拔掉网线重连成功进入OP的报文。

这个是拔掉网线重连无法进入OP的报文。

设备的physical address是0x41f,从上面这2个报文中可以看到,设备进入SAFEOP之后和主站发送状态切换进入OP之间 (黑色标记的两条报文间),可以成功进入OP的报文比不能进入OP的报文要多两条(红色方框标记)。

仔细看这2条报文,这是主站发送给从站的带有逻辑读写的报文。

可是为什么在SAFEOP和OP之间必须要有逻辑读写操作呢,我们开始查EtherCAT协议手册,在协议的Specification-Part 5,Application Layer service definition中找到了关于这条报文的解释。

总结一下也就是说在设备从SAFEOP状态进入OP之间,需要主站提供process data服务,否则从站停留在SAFEOP状态,并且错误标志位置为TRUE。

4.解决问题

找到了问题在哪,也有了理论支撑。可是如何解决呢,这看起来是主站处理问题,于是我们在倍福的官网以及搜索网站查找类似问题,最终在我们公司的知识库中找到一篇文章正与我们遇到的问题相契合。

原文内容如下:

问题

当 EtherCAT 主站命令从站进入 OPERATIONAL(运行)状态时,可能会出现从站卡在 ERROR SAFEOP 状态的情况。

回答

*为了避免这一问题,可以在从站的 EtherCAT 高级设置中激活 "Wait for WcState is Ok" 选项:

背景介绍

在 TwinCAT 中,标志 WcState(工作计数器状态)协调两个独立运行的状态机。
一方面,主站通过 EtherCAT 状态机控制每个从站的状态(其状态有 INIT、PREOP、SAFEOP、OP)。

另一方面,PLC 的状态机需要在从站进入 OP 状态后立即将输出过程数据设置为初始值。
通过激活 TwinCAT 选项 "Wait for WcState is Ok",EtherCAT 主站在将从站状态转换为 OP 之前,会先等待输出过程数据被设置。
如果缺少该选项,可能会出现"'SAFEOP to OP!' failed!" 错误,从站设备卡在 SAFEOP 状态。 SAFEOP 状态只允许读取输入过程数据。 由于从站设备无法接收输出过程数据,因此会触发同步管理器看门狗超时。

OK,通过文章中的背景介绍,让我们明白了为什么把看门狗都关了设备还会报看门狗超时错误。同时也找到了解决办法,需要在TwinCAT中勾选"Wait for WcState is Ok"选项。

客户测试后也验证了此方法是正确可行的。

关于WcState的含义和使用

The variables under WcState (working counter state) use a working counter to indicate whether the EtherCAT slave takes part in the cyclic process data traffic successfully and error-free.

The variable WcState of an EtherCAT slaves should therefore always be evaluated.

The variables are only displayed, if the EtherCAT slave is added via an EtherCAT master in TwinCAT.

The following table shows which values the WcState variable can assume:

Invalid real-time communication may affect the process data of the other EtherCAT slaves in the same SyncUnit:

  • In the event of an invalid WcState, outputs can still be switched by the PLC, in order to ensure a safe state of the system.
Value Description
0 Valid real-time communication in the last cycle
1 Invalid real-time communication
  • Inputs freezes and show the last valid value. This means that old values are displayed, if the WcState assumed the value 1.

The variable InputToggle indicates whether a new valid telegram was received. The value is incremented by one after each successful cycle.

Auto Restore States: If this checkbox is checked, the EtherCAT master tries to restore the state of the EtherCAT slave automatically. If the EtherCAT slave device changes from an error state (ERR SAFE-OP, ERR OP etc.) to a valid state (SAFE-OP, OP etc.), the EtherCAT master tries to set the device to the state which the master has currently memorized for the slave device. This memorized state is the last regularly reached state of the slave device.

Wait for WcState is Ok: If this checkbox is checked, the Auto Restore States is not performed until the WcState is OK again.

至此问题终于解决,整个过程给大家留下了深刻的印象,从尝试解决到报文分析,再找到理论支撑最后寻找解决方法成功解决问题,当然我们的产品还是非常可靠的。

如果您对此通讯板卡感兴趣,请点击下方链接:

https://www.hms-networks.cn/p/1-01-0320-21110-ixxat-inpact-ect-slave-pcie

最后大家如果有关于自动化通讯一些,如EtherCAT, PROFIBUS, PROFINET, EtherNet/IP, Modbus, Modbus TCP, CAN, CANopen等等相关的技术问题,欢迎在知乎留言与我讨论。

相关推荐
STQY燊桐启元(深圳)电子科技6 小时前
医疗精密电源散热方案:相变陶瓷片保障医疗设备长效稳定低干扰
大数据·网络·人工智能
CDN3608 小时前
节点智能调度实操:解决出海区域访问快慢不均、节点拥堵、跨洋延迟高,CDN 全网择优落地方案
运维·服务器·网络
roman_日积跬步-终至千里9 小时前
【数据治理(6)】DataOps 不是调度工具,而是让数据产品长期可信的运行机制
java·服务器·网络
可乐鸡翅yeah_11 小时前
个人 / 外包流媒体项目交付实战,M3U8 验收与问题闭环完整工作流
运维·网络·python·低代码·django·m3u8·在线播放
黄俊懿12 小时前
【架构师从入门到进阶】第五章:DNS&CDN&网关优化思路——第十节:网关安全-单向加密
网络·数据库·计算机网络·安全·架构·系统架构·架构师
Patrick在香港12 小时前
Python 拉取城巴开放数据:406 条路线,香港岛巴士网络的数字画像
网络·python·数据分析·php·数据可视化·香港·开放数据
一直C13 小时前
Linux系统编程|进程间通信IPC全套详解(1)(管道、信号)
linux·c语言·开发语言·网络·青少年编程·visual studio code
Experience-摆渡13 小时前
自建 IP 轮换方案实战:健康探测 + 熔断剔除 + 粘性会话
网络·网络协议·tcp/ip
luj_176813 小时前
合法避税与投资评估实战指南
c语言·开发语言·网络·经验分享·算法
库玛西13 小时前
Linux网络编程:HTTP/HTTPS协议核心技术全解析
linux·运维·服务器·网络·c++·http·https