爱收集资源网

能影响EtherCAT网络的错误分为2:1.硬件错误

网络整理 2022-05-16 23:01

免责声明:以下内容非原创,基于ETG和Beckhoff的官方信息加上我自己的理解。

可能影响 EtherCAT 网络的错误分为 2 类:

1.硬件错误

•物理介质中断:数据帧无法到达所有从站,或者根本无法返回到主站。比如电缆损坏、接口松动、运行中从站重启等。

• 信息损坏:数据帧到达网络中的所有从设备并返回主设备,但正确的位顺序已损坏(例如 EMC 干扰、错误设备等)。

2.软件错误

•从站在启动时未达到 OP 状态,因为错误地检测到来自主站的一个或多个初始化命令(例如错误的过程数据长度/配置、不支持的循环时间等)。

•由于运行过程中检测到错误,正常工作的从站突然离开OP 状态。 (例如同步丢帧、看门狗超时等)。

1.硬件错误

由代码逻辑以外的原因引起的故障,如EMC干扰、人为因素、硬件故障等。

网络拓扑扫描

从机EEPROM保存从机的Vendor ID、Product Code、Revision Number、Serial Number等信息,可以唯一确定从机的型号。

网络启动时主站扫描的拓扑与配置文件的拓扑不匹配。出现此类错误的原因可能是缺少网络设备或网线顺序错误(插入错误的网线)。

如果发生硬件错误,建议检查 EtherCAT 网络设备是否共用同一地(因为不同地之间的循环电流可能导致数据损坏)

Link Lost error 计数器 0x310

主站在以下两种情况下认为数据帧“丢失”:

(a)数据帧不返回主站;

(b) 数据帧在传输过程中发生失真,导致其中的信息无意义。

有时两个 EtherCAT 从站之间的物理连接会完全中断:信号根本无法到达相邻的从站。

链接丢失,很可能是由于:

• 电缆或连接器损坏(电缆连接)、接触弹片弹性不足或氧化(Ebus 连接)。

•设备临时或永久断电,或设备重启

•EMC 干扰

某个端口的物理连接中断,slave会将该端口的Link Lost Counter加1

链接/活动指示器

连接永久断开的原因可能是连接器被拔出,电缆严重损坏,或设备断电。

EtherCAT 从设备要求每个可插拔端口都支持链接/运行灯。

在检查链路丢失计数器之前(或者对于一些不支持链路丢失计数器的从站),通过查看链路/运行灯很容易看出是否存在永久链路断开问题:这种情况下较低LED 将始终关闭。

尝试使用可拆卸连接器连接到每个端口,目视检查链接/活动指示灯将有助于检查此类故障:

无效帧(Invalid frame)错误计数器

有时,即使硬件信号到达相邻的从机,接收到的信号也与原来发送的不一样:

数据包已损坏,很可能是因为:

•如果此错误计数偶尔增加,则很可能是由于外部 EMC 干扰。

•如果错误计数快速而稳定地增加,则很可能是由于设备损坏。

当某个端口的数据帧损坏时,从站将该端口的Invalid Frame Counter加1。

RX 错误计数器和 CRC 校验错误计数器都表示硬件接收到的数据帧损坏,表征信息非常相似,但两者在从机架构的不同层级检测。意思也略有不同。

这个硬件错误分为两种,都在无效帧计数器中累积:

1.RX 错误(无效帧计数器高字节 0x301+i *2)(i=0,1,2,3)

• MII 端口:RX 错误指向 PHY 芯片检测到的所有可能的错误(如 4B/5B 编码信号错误,或硬件 MLT-3 信号电平错误)。这些错误通过硬件上的 RX_ER 引脚的上升沿反映到 ESC,这是 MII 接口的一部分。

•EBUS 端口:每当出现意外的曼彻斯特编码错误时,都会检测到 RX 错误,尤其是在以下情况下:

——脉冲太窄(≤<3.5ns)导致位检测小于

–IDLE越界:数据框外的逻辑1

–在数据帧内检测到帧开始标志(在两个帧开始标志标记之间没有帧结束)

--数据框外的帧结束标志(两个帧结束标志之间没有帧开始标志)

注意:可能发生在数据帧内部或外部(即使没有数据帧传输,每个物理接口都会传输idle symbol,即idle)

2.CRC 错误(无效帧计数器的低字节 0x300+i* 2) (i=0,1,2,3)

l 整个数据帧的循环冗余校验 (CRC) 错误

l 在数据帧中出现(只检查以太网数据帧)

注意:数据帧内发生的RX错误也将被视为非法帧错误。

@ >

为了从显示的CRC错误计数分析网络中故障点的分布,建议:

1.沿网络数据帧传播方向逻辑确定从端口执行CRC校验的顺序

2.检查第一个报告错误计数器不为零的端口:报告第一个报告不为零的无效错误计数器的端口→很可能是故障点。

3.定位故障点后,应进行如下操作:

•检查与最后一个从站的连接电缆:

-EtherCAT网线的方向是否靠近电源线或干扰源?

-自制电缆的接头做工差吗?

-电缆的屏蔽层是否接地良好?

•检查故障点的站和之前的从站:

-是否供电不足(提供给本站的电流太小,例如:EBUS电流)?

-两个从机的连接位置不是等电位的吗?

•尝试用之前的从站替换这个从站,或者交换两者的顺序,看看错误是跟随从站还是发生在原来的位置。

对于EMC干扰,应该会导致RX和CRC错误都增加(尽管增加的概率可能不同),因为外部干扰不能与通信同步,所以以太网数据帧内外都有将是损坏的数据。

完全不平衡的计数值(很多 RX 错误但没有 CRC 错误,或非常 CRC 错误但没有 RX 错误)可能意味着其中一个从站中存在内部硬件错误或接口损坏。

转发的 CRC 错误计数器

一些从站还支持转发 CRC 错误计数器 0x308+i (i=0,1,2,3)(Forwarded CRC Error Counters ):第一个检测到 CRC 错误的从站增加其 CRC 错误计数器 ( Register0x0300),以及第二个及以后检查CRC错误的slave增加其转发CRC错误计数器(Register0x0308),而CRC错误计数器保持不变。

并非所有从站都支持转发 CRC 错误计数器功能(此功能是可选的),因此应将此计数视为补充信息:有助于定位第一个错误设备,但不是关键指标。

当这种类型的ESC第一次检测到错误时,将转发给下一个从机的数据帧会有一个FCS校验错误,并且在数据帧的末尾有一个额外的数据位。这个帧会被下一个slave检查(根据双方使用的PHY/ESC),并将错误映射到对应的转发RX错误计数器寄存器。

某些 ESC 不支持转发 RX 错误计数器。一些 PHY 会将此视为电平错误并附加 4B/5B 禁用信号会导致下一个 ESC 接收“优先级”RX 错误,而不是转发 RX 错误。

此错误转发机制可以作为附加或可选说明:如果 ESC 端口显着增加转发的 RX 错误计数器,但 RX 和非法帧错误计数器没有显着变化,则通信问题很可能不在前面的段中港口。反之(只有当有RX/非法帧错误且没有转发RX错误时,判断问题出在端口之前)不一定正确!

EtherCAT 主站支持两种不同的错误计数器:

EtherCAT 主站支持两种不同的错误计数器:

p>

•RxErrors:与slave端的RX错误计数器类似,网卡统计符号错误(数据帧内外发生的错误)的数量。

•丢失数据帧:由于EtherCAT闭环某处中断,返回主站失败的数据帧和返回但CRC校验错误的数据帧,TwinCAT将其视为丢失的“丢失” ”。在 TwinCAT 中,如果一个数据帧丢失,该数据帧中包含的所有数据包(Datagram,SyncUnit 同步单元)会报 Working Counter 错误,表明所有从站的 WcState 都是 Invalid。

考虑不同的数据框类型:

网线连接错误651是什么意思_网络连接错误105是什么意思_公主连接发生网络上的错误

•Cyclic:循环数据帧发送要交换的过程数据(ProcessData):

•Queued:排队数据帧,包括所有非周期性数据帧特征数据帧:

邮箱,

状态机,

注册访问

注意:刚上电,每个端口的环回状态默认设置为自动模式。

RX Error Counter、Invalid Frame Error Counter、Forward RX Error Counter的值只有在端口状态打开时才会递增。

硬件错误的补充信息

当设备上电或相邻设备断电时,设备可以立即检测到 RX 错误(或部分 CRC 错误)。只有在操作期间发生的错误才应被视为实际或潜在问题,并进行持续监控。

没有通讯接口是完全没有错误的。一个典型的通信接口可以容忍 10-12 的误码率(每万亿比特传输数据一个错误),这意味着即使在没有恶劣环境的情况下,硬件错误计数器的值也会偶尔发生变化(在几天内) 或连续运行数周)。只有大的或频繁的硬件错误(在几秒钟或几分钟内)才应被视为实际或潜在问题。

发生在数据帧之外的错误,当它们在运行时发生时,也可以被认为是硬件错误的信号。但是,CRC错误应该主要被注意,因为它们代表了帧内容和它所携带的信息中的错误。

例子

ECAT 处理单元错误计数器 0x30C

ESC 的 EtherCAT 处理单元能够检测到数据帧结构中的更多错误

-EtherCAT 帧长度错误(对于 IEEE80 定义的最大和最小帧长度太大2.3 帧长或太短)

-如果寄存器0X0100.0=0,端口接收非EtherCAT数据帧

-如果端口0关闭,则loopback帧的环回计数位等于1

工作计数器 WKC

EtherCAT 数据帧中的每个数据包都以 16 位工作计数器 (WKC) 结束。在数据报文中指定一个从站后,它将递增。递增原理如下:

只读命令(xRD):如果从站内存可读,则WKC+1.

p>

只写命令(xWR):如果从内存是可写的,那么WKC+1.

Read+Write 命令(xRW):如果从机内存可读 WKC+ 1. WKC+2 如果可写(即读写都成功,则WKC+3).

工作计数器的信息是随数据帧周期性刷新的,不依赖于特定寄存器的通道。

主站同时接收工作计数器和对应的子报文,当接收到非法或不一致的数据时迅速响应。

与工作计数器有关 该消息是一个数字量(“工作计数器正确”或“工作计数器非法”),不区分错误原因。非法工作计数器可能由几种不同的情况引起:

-一个或多个从设备与网络物理断开连接,或者没有被数据帧寻址

-一个或多个从站重新启动

-addressed 到达的slave未能处理相应的子消息

-从机的EEPROM前7个字有错误(这里不知道原理)

-a slave 本站当前状态机不允许对该命令对应的存储区进行操作(可能是邮箱通道或进程数据通道)

-一个slave还在响应最后一个命令(只有邮箱通道)

p>

-从机的ESC或处理器级别出现硬件错误,或者处理器级别出现固件错误

工作计数器的主要目的是立即检测通信错误,(即主站快速响应),而不是准确分析通信错误

注意:未来希望的一个功能,但是这个功能对master和内核有很大的改变:SyncUnits(同步单元)把slave分成不同的组网络连接错误105是什么意思,每个组使用不同的数据报,所以每次同步单位有独立的WKC。如果发生故障,会出现 WKC 错误,丢弃该组数据,使用旧数据。

2.软件错误

软件层面的诊断信息,通常与EtherCAT状态机的运行有关:一旦slave不能按照master的要求进入正确的状态,就会在slave的寄存器字(Register 0x0134))。

•初始化状态

-没有应用层通信

-master 只能访问数据链路层寄存器

•运营前状态

-启用邮箱通信

-无进程数据通信

•安全运行状态

- 可以进行邮箱通信

- 可以处理数据通信,但只有输入数据有效

•运行状态

-可以通过邮箱进行交流

-可处理数据通讯,输入输出数据均有效

• 启动状态

- 可选,用于固件更新

- 没有进程数据通信

- 通过特殊设置进行邮箱通信(仅限 FoE)

p>

初始化错误(从站启动时无法进入OP状态):

在状态机切换过程中,主站根据ESI文件的内容向从站发送初始化命令。如果从站检测到一个或多个启动参数无效,则拒绝相应的状态机切换。

此时Register0x0134的值显示为:

-0x0003:InvalidDeviceSetup(从站应用相关设置无效,如总线耦合器未安装物理模块)

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

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

-0x0035:无效的同步循环时间(不支持在直流模式下设置的循环时间)

运行时错误(从机退出OP到低级状态):

正确配置的slave成功进入OP状态后,运行过程中检测到错误,因此执行切换到较低状态。

此时Register0x0134的值显示为:

-0x001A:同步错误(网络抖动导致从机同步丢失)

-0x001B:Sync manager watchdog(从站不接收周期性数据的时间,持续时间比看门狗时间长)

-0x002C: FatalSYNCerror(ESC没有再次收到SYNC硬件中断)

疑难解答:

1.检查主设备的抖动性能(抖动范围)是否可以证明发生了同步丢失。 (当最大抖动超过通信周期的20-30%时,容易出现同步错误)。

2.检查是否发生硬件错误,例如物理连接丢失,可能间接导致Watchdog动作网络连接错误105是什么意思,或丢失同步

3. 仅仅检查并不能解决问题,使用 Wireshark 进行跟踪可能是一个有用的解决方案。

4.读取从站的最小循环时间0x1C32/0x1C33,用网络分析仪测试帧传播抖动,检查主站设置的移位时间。

5.利用 Beckhoff 主站本身的诊断功能,可以测试从站内部处理时序相关的抖动。比如从站接收到的数据帧的抖动,同步偏移时间SYNC Shift Time。

6.(AM60等模块化从站0)检查配置的模块列表是否与实际物理连接的从站模块相对应。

错误 计数 端口