EtherCAT诊断和配置优化

[复制链接]
查看16375 | 回复0 | 2024-3-13 09:52:18 | 显示全部楼层 |阅读模式
在工作中实践总结,在朋友圈分享讨论,做最接地气的公众号.

倍福用户大量使用EtherCAT,通常对EtherCAT不必作太过深入的了解,因为大多数项目只要使用自动扫描、默认设置。但是一旦发生通讯错误,需要故障诊断时,工程师就需要了解一些EtherCAT常识,并学会如何优化配置。

本文力求以简单的方式,介绍TwinCAT自带的EtherCAT诊断功能和几个最常见的优化措施。

诊断功能包括:

EtherCAT Online界面诊断网络硬件错误

EtherCAT Topology页面查看图形化的EtherCAT状态

Adapter页面查看Ebus电流

PLC诊断EtherCAT状态的程序代码

优化措施包括:

Sync Unit(同步单元)设置

伺服驱动的WcState禁用

检查EtherCAT网络接地

修改从站Shift Time

Hot Connect(热连接)设置

EL模块的布局原则

ETG及倍福官方关于EtherCAT诊断和原理介绍的技术文档更加详细和完整,有兴趣的用户可以下载:

《EtherCAT基本原理》

《EtherCAT诊断》

《EtherCAT 同步》

1      EtherCAT诊断功能

最简易的EtherCAT诊断工具是TwinCAT,其中最常用的诊断界面依次为:EtherCAT Online界面、EtherCAT Topology界面、Adapter界面,下面分别介绍。
1.1   Online界面诊断网络硬件错误



在这个界面最常用的功能是:

查看和切换主站和从站状态,查看主站Lost Frame的情况。

查看所有从站的状态,和每个端口的CRC校验情况

查看每个从站的状态改变次数

查看从站的状态机错误

如果此界面中,主站和从站都在OP状态,而个别从站信号仍然不正常,软件报错,则很有可能是由于WcState报告数据无效。请跳转至下一节:Sync Unit的使用



主站状态监视已经很直观,无须解释。以下只解释后面三种情况:

1.1.1  查看从站状态和端口CRC校验情况



        从站状态为OP,CRC校验值都为0时,为正常状态。如果某个从站状态不为OP,就要定位到该从站的InfoData|State,如图所示:

在上图的Variable页面上可以显示状态Word的4个节取值的含义,而切换到其Online页面则可以显示状态Word的当前值。

CRC的值与模块类型有关,所有EL模块都只有两个Port。CRC校验的左边值,表示与前一个模块的接口状态,而右边的CRC值表示与后一个模块的接口状态。

1.1.2  从站状态改变次数

查看从站状态改变次数,是为了追踪个别从站状态错误后又自动恢复的情况。因为状态恢复后,在Online界面就显示正常,但是出错的一瞬间人工未必能监视到:





如果个别模块的Change次数明显比其它模块多,那么这个模块出错的概率较大。

1.1.3  状态机错误


可以在上一步的窗体中勾选上0134“AL Status Code”,以查看错误代码:

-    0x0003 : Invalid Device Setup (BK1xxx上配置的KL模块顺序不正确)

-    0x001D : Invalid OutputConfiguration (配置的输出过程数据无效)

-    0x001E : Invalid Input Configuration(配置的输入过程数据无效)

-    0x0035 : Invalid Sync Cycle Time (在 DC模式中设置的CycleTime不支持)

-    0x001A : Synchronization error (网络的抖动导致从站的同步丢失)

-    0x001B : Sync manager watchdog (从站未接收到周期性数据的时间,持续超过了watchdog时间)

-    0x002C : Fatal SYNC error (ESC 再未收到SYNC 硬件中断)

如果是其它值,则参考ETG官方手册中关于AL StatusCode的定义。

1.2   EtherCAT Topology界面

在主站的EtherCAT | Topology窗休,可以在线或者离线查看EtherCAT网络拓朴图:





如果说前面说的Online页面是文字版,这里就是Online页面的图形版。光标悬停于模块时,可以显示模块的名称。在线显示时,每个从站上方的标记表示CRC状态,都为绿色即正常。



1.3   Adapter页面,查看可用Ebus电流



根据经验,可用Ebus电流不应该用到0,而是保留300mA左右的余量。比如上图中,在第1个EL4112之前,就应该补充一个Ebus电源模块EL9410。

1.4   PLC诊断EtherCAT状态的Demo程序

具体实现方式见文档:

Http://www.baclizzy.com.cn/20180422EtherCAT优化设置/

2      Sync Unit与WcState

2.1   Sync Unit的原理

TwinCAT 在配置EtherCAT主站时,按Task配置Frame。比如PLC Task0的周期为10ms,相应有一个发送周期为10ms的Frame。而NC周期为2ms,相应就有一个发送周期为2ms的Frame。每个Task计算阶段结束进入Output阶段,就会发送相应的Frame。

每个Frame通过3种命令LRW(读写)、LWR(写)、LRD(读)来刷新从站的IO数据。每个命令(Cmd)刷新哪些从站的数据,就确定了Working Counter(WC)的理论值。如图所示:



根据主站的配置,每个Frame中包括若干个SyncUnit,每个SyncUnit包括若干个Slave,Frame经过Slave并读写成功后,Slave所属的SyncUnit的Cmd的Working Counter就会相应增加。Frame经过所有从站后回到主站时,主站根据每个SyncUnit的Cmd实际WorkingCounter与理论值是否一致就能判断这个Cmd操作的所有Slave是否成功。如果不成功,这个Cmd操作的所有Slave的WcState状态就会为True,表示Data Invalid(数据无效)。

假定PLC任务要控制下图中的所有IO模块,要用LRD命令刷新所有EL1004的数据,Working Counter的累加过程如下:



在上图中,红色!标记的EL1004未能成功交换数据,所以Frame经过了4个EL1004模块,但返回的WKC却为3。主站判断这些数据无效,TwinCAT会丢弃这些数据,这4个EL1004的数据在这个周期都没有刷新。

2.2   Sync Unit的优化配置原则

每个Frame中包括了Task控制的所有IO从站的数据,这些从站默认放到同一个Sync Unit。但实际上,EtherCAT允许一个Frame最多可以有15个同Sync Unit。为了避免1个从站的错误影响到整个SyncUnit的数据无效,是否可以把每个从站都设置为独立的同步单元呢?如果从站在15个以内,当然是没有问题的。但是通常的TwinCAT项目,从站数量都会远远超过15个,如果每个都设置为独立同步单元,结果就会需要多个Frame,而每个Frame都很短,这样会大大降低通讯的效率。所以有必要平衡需求,合理配置同步单元。

根据经验,优化同步单元的设置,可采用以下原则:

EL模块,每个Station(耦合器和相连的EL模块)为一个Sync Unit

EtherCAT伺服,每个驱动器都设置为独立的SyncUnit。

2.3   Sync Unit的设置

查看和设置同步单元的方法:

    假设有4个驱动器,都链接到2MS周期的NC轴。默认的同步单元设置时,以太网帧为两个,Cycle分别为2MS和10MS。在2ms的Frame中,LRW指令(Cmd)有1个,Len为56.



点击Sync UnitAssignment,可见默认设置为:



b. 修改Sync Unit.

选中一个AX5203,在Sync Unit Name栏直接输入字符,即指定的同步单元名称。



c.点击OK,退回主界面。

把4个驱动器指定为不同的同步单元时,以太网帧为两个,Cycle分别为2MS和10MS。在2ms的Frame中,LRW指令(Cmd)有4个,Len分别为20,12,12,12,总长度还是56字节.



2.4   伺服驱动的WcState禁用

经常用客户反馈现场的NC轴报故障0x4655(18005),提示信息是:Data Invalid Exceed 3 Cycles,即连续3个周期数据无效。此处的数据无效就是由于同步单元的Working Counter错误,表示同步单元中至少有一个从站没有成功读写数据。如果分配了独立的同步单元,某个轴还是报这个错误,那么通常是由于EtherCAT通讯闪断引起的。

运动控制对通讯的敏感性较高,默认设置ETHERCAT类型的NC轴,一旦有3个NC周期数据无效(Data invalid),NC轴就会报错。如果网络质量差,现场干扰大,用户希望控制系统忽略这种偶尔的通讯异常,那么,可以把该变量Clear Link。如图所示:



取消这个链接后,如果WcState仍然持续无效,那么驱动器或者NC轴会报告更高级别的故障,比如跟随误差过大。

3      检查EtherCAT网络的接地

诊断EtherCAT故障是一个方面,有时可以采取一些权宜之计,比如断开NC轴与伺服驱动的WcState链接,但这只是治标不治本的临时做法,根本解决办法还是要查清楚问题来源,包括检查接地、屏蔽以及其它EMC问题。

其中首先要检查的是:确保EtherCAT网络设备是共用同一个接地,因为不同接地之间的环流可能导致数据损坏。


4      设置驱动器的Shift Time

伺服驱动器的常见错误,除了0x4655 Invalid Data之外,就是Sync Lost(同步丢失)。这是由于个别周期的EtherCAT数据包,未能在同步脉冲的指定偏移时间内到达。这种报错通常出现在网络末端的从站上。

为了降低ETHERCAT通讯中同步信号报错的敏感程度,可以延长伺服驱动器的同步偏移时间。如图所示:



实际应用中,绝大多数情况下,默认的Shfit Time已经满足要求。仅当周期特别短(小于1ms)节点数又多(大于10个)的时候,才需要人工调整Shift Time。调整时可以主站周期的20%为基数递增。

设置方法:

在从站的EtherCAT页面,点击Advanced Settings,在DistributedClock页面,设置Sync 1的Shift Time。



5      Hot Connect的设置

如果使用CU2008或者EK1122构成了星形网络,可以设置Hot Connet Group,以便连接任意一个驱动器的网线拔掉,都不会影响其它驱动器的工作。

在线性拓朴中,如果用户个别站点需要随时退出和加入,比如要跨接部分站点而不影响其它从站的工作,也可以考虑用Hot Connect功能。

具体实现方式见文档:

Http://www.baclizzy.com.cn/20180320EtherCAT热连接/

EtherCAT网络的热连接(HotConnect)设置.pdf

6      EL模块的布局原则

作为DC参考时钟的EL模块,应安装在尽量靠近主站的位置。

消耗Ebus电流较多的EL模块,在IO站中应尽量分散安装,以免集中发热。

典型的高耗电模块是EL6xxx通讯模块,典型的低耗电模块是EL1xxx及EL2xxx等数字量模块。

(未完待续,LizzyChen 2018)

(******************************)



喜欢本文?识别二维码,可关注公众号

本公众号配套文档:ftp://baclizzy.com.cn:21

支持IE访问:http://www.baclizzy.com.cn

-往期回顾

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则