介绍 EtherCAT 技术及其协议
1 1. 什么是 EtherCAT?
EtherCAT®(全称为控制自动化技术的以太网,Ethernet for Control Automation Technology)是一种高性能的以太网现场总线技术,能够为各类工业自动化应用提供可靠、高效且经济的通信解决方案。EtherCAT 最初由倍福自动化(Beckhoff Automation)于 2003 年开发为开放技术,随后交由一家名为 EtherCAT 技术协会(EtherCAT Technology Group)的独立机构管理。截至目前,EtherCAT 已成为全球使用最广泛的工业以太网协议之一,拥有超过 6000 家会员组织。
EtherCAT 基于 IEEE 802.3 以太网标准,采用主从架构,实现同一网络中设备之间的通信。主站设备作为控制器,向从站设备发送命令并接收数据返回。除了主从通信,EtherCAT 还支持主主和从从通信。它可以应用于多种设备,例如传感器、分布式 I/O、执行器、电机和其他控制器。
EtherCAT 也是一种非常经济的选择。由于其开放和标准化,市场上有大量现成且价格竞争力强的 EtherCAT 硬件产品和软件解决方案来自数千家不同制造商。相比那些交货周期长、硬件选择有限且成本高昂的其他现场总线技术,EtherCAT 已成为一种备受欢迎的经济高效选择。此外,得益于其可靠性和硬件更换选项,EtherCAT 在维护和停机方面也能帮助降低成本。
EtherCAT 的主要优点之一是其高速和低延迟通信。独特的帧处理和数据传输方式让 EtherCAT 的带宽利用率达到其他现场总线技术无法匹敌的水平。其拓扑设计使循环时间确定性更强,从而适用于对实时性有严格要求的场景。此外,EtherCAT 支持分布式时钟(DC),可以在整个网络中实现纳秒级的精确同步。
EtherCAT 的灵活性、卓越性能和可靠性使其成为高速和关键安全应用(例如医疗机器人、测试与测量、机床和工厂自动化)的明确首选。
2 EtherCAT 协议基础
2.1 帧结构
与标准以太网通信类似,EtherCAT 使用以太网帧在网络中传输数据。EtherCAT 帧基于 IEEE 802.3 以太网标准,但采用了特殊的结构优化,以提高带宽和短周期过程数据的效率。EtherCAT 帧取消了诸如 UDP/IP 或 TCP/IP 等较为笨重的协议栈,这意味着 EtherCAT 并非基于 IP 的协议,反而更类似于第二层(数据链路层)协议。
EtherCAT 帧(或称为电报)由以太网头部、EtherCAT 数据组成,并以帧校验序列(FCS)结束。EtherCAT 协议通过以太网头部内 EtherType 字段中的标识符(0x88A4)进行识别。Wireshark 提供了一个解析器,可以图形化分析 EtherCAT 帧。
EtherCAT 数据包含一个 EtherCAT 专用头部,后接 EtherCAT 数据报。EtherCAT 头部指定后续数据报的总长度和类型。紧接着 EtherCAT 头部的是 EtherCAT 数据报,其内容为网络中将要读取或写入的实际数据。这些数据包括地址规范、主站设备希望执行的命令类型(如读取、写入或读写)以及周期性过程数据(PDOs)。单个 EtherCAT 帧最多可以容纳 1,498 字节。
如果需要超过 1,498 字节,主站设备将发送多帧数据,每一帧都包含标识符,指示网络中的设备是否需要期待后续帧。EtherCAT 主站设备负责组装 EtherCAT 帧并通过网络发送。每一帧都将经过网络中的每一个节点(逻辑环)。此外,由于拓扑选项灵活,网络无需交换机或路由器,从而进一步降低了时间延迟和硬件成本。
2.2 工作原理
除了帧结构,EtherCAT 还通过其独特的数据交换方式进一步凸显自身优势。许多其他基于以太网的协议要求在每个周期内向网络中的每个节点发送单独的帧,并要求每个节点回应,这会导致网络流量高且循环时间较长。此外,由于每个帧仅包含针对一个节点的数据,带宽利用率通常很低且效率不高。
EtherCAT 采用“实时”处理方式,仅需发送一帧至所有节点。EtherCAT 主站控制器负责组装帧并将其发送出去。在每个周期内,帧会绕网络循环,依次经过每个节点后返回主站。帧中包含从站节点的信息,包括地址、EtherCAT 命令类型(读、写或读写)以及实际的过程数据。当帧在网络中循环时,每个设备会寻找并提取发送给它的数据,同时将新的数据插入帧中,这一切都是在帧向下游传输时完成的。当帧到达网络中的最后一个节点时,该帧通过以太网的全双工能力返回至主站设备。
EtherCAT 的实时处理方式带来了诸多性能和成本上的优势。例如,对于非常大的网络,虽然可以使用多帧,但通常一帧就足以完成所有节点的数据发送和接收。此外,EtherCAT 主站设备是唯一允许发送新帧的设备,网络中的其他设备仅接收帧、处理帧并将其转发。这种设计消除了意外延迟,使 EtherCAT 适用于实时应用。
2.3 网络拓扑
EtherCAT 技术提供了灵活的网络拓扑选项,使其成为大规模复杂网络的理想选择。EtherCAT 网络包含一个主站设备来控制网络,以及后续的从站设备。从站设备通常具有两个或更多端口,用于连接至其他设备。网络拓扑类型包括线形、树形、星形——或上述类型的任意组合。由于 EtherCAT 在全双工模式下运行,利用双向以太网线对的特点,任何拓扑都可以保持逻辑环结构,这意味着发送的帧始终能够返回到主站设备。这种灵活性还消除了对网络交换机的需求。
EtherCAT 还支持先进的拓扑功能,例如热连接(Hot Connect)和热插拔(Hot Swap),这意味着设备可以在保持运行状态的情况下被更换、添加或移除。此外,EtherCAT 支持多种冗余选项,包括线缆冗余和主站冗余,为线路中断和设备故障提供额外保护,从而进一步减少停机时间和维护成本。
2.4 过程数据
在每个周期中,EtherCAT 主站设备将数据组装成帧并发送到网络中的各个节点。节点读取地址指定的数据,并在帧向下游传输的同时,将新的返回数据写入帧中。当帧到达网络末端并返回到主站时,主站设备会读取新的数据并构建下一帧。在主站与从站之间交换的这些数据被称为周期性过程数据。
从站设备通过其现场总线内存管理单元(FMMU)负责将数据读写到帧的正确位置。这被称为数据映射,是确保 EtherCAT 主站设备在每个周期接收到完全排序的过程映像的关键。周期性过程数据可以通过激活可选的过程数据对象,根据项目需求进行组装。这种组织过程数据的方式能够支持 EtherCAT 的快速可靠性能。
不同类型的从站设备可能有不同的硬件和过程数据布局选项。例如,简单设备(如数字 I/O)具有固定硬件和固定过程数据布局。复杂设备(如驱动器)具有固定硬件和可变过程数据布局。此外,模块化设备(如总线耦合器或网关)具有可变硬件和可变过程数据布局。
2.5 通信配置文件与邮箱协议
除了周期性过程数据,EtherCAT 还支持非周期性通信,包括各种邮箱协议。这些 EtherCAT 通信配置文件旨在支持更多类型的现场设备和应用层。根据 EtherCAT 规范,从站设备不需要支持所有通信配置文件;它们可以选择最适合和相关的配置文件。此外,与周期性过程数据不同,邮箱协议的数据传输不保证遵循任何实时约束。
基于 EtherCAT 的 CAN 应用协议 (CoE)
CANopen® 是嵌入式系统中常用的通信协议,在自动化应用中非常流行。名为 CoE 的 EtherCAT 通信配置文件允许在 EtherCAT 网络上实现 CAN 应用协议。这包括支持 CANopen 对象字典、过程数据对象 (PDO) 映射、CoE 紧急错误消息、诊断和服务数据对象 (SDO)。此外,许多标准化 CANopen 配置文件,例如针对驱动器的 CiA 402 配置文件和针对编码器的 CiA 406 配置文件,可以在 EtherCAT 通信中重用。CoE 通常用于在网络启动时,根据网络配置将项目特定参数发送至从站设备。此外,从站设备参数也可以通过 CoE 在网络处于操作状态时进行检查和修改。
2.5.2 基于 EtherCAT 的以太网通信协议 (EoE)
另一个强大的通信配置文件是基于 EtherCAT 的以太网通信协议 (EoE)。通过 EoE,可以在 EtherCAT 网络中传输以太网数据流量。在 EtherCAT 段中可以使用交换端口设备连接到诸如计算机和路由器等以太网设备。交换端口设备负责将 TCP/IP 分段插入到 EtherCAT 流量中。EoE 通常用于访问从站设备的 Web 服务器进行设备配置和诊断。通过这种方式,设备表现得好像直接连接到非 EtherCAT 的局域网。
2.5.3 基于 EtherCAT 的文件访问协议 (FoE)
基于 EtherCAT 的文件访问协议 (FoE) 是 EtherCAT 通信中另一个常用的邮箱协议。FoE 通常用于更新 EtherCAT 网络中设备的固件。
2.6 同步(同步管理器与分布式时钟)
在 EtherCAT 通信中,同步使实时性能成为可能,并支持复杂和关键应用中的精确协同过程。同步可确保 EtherCAT 网络中的所有节点都使用相同的时间基准。例如,在高速运动控制应用中,所有电机驱动同时接收和发送命令是至关重要的,以确保动作迅速且精确地执行。
最精确的 EtherCAT 同步机制基于分布式时钟 (DC),网络节点之间时钟的校准以硬件为基础。EtherCAT 利用参考时钟,通常来自网络中的首个 DC 从站。该参考时钟的时间分布到网络中所有节点,最终的时间抖动低于一微秒。为了补偿网络中每个时钟因速度差异而导致的时钟漂移,各设备会定期根据参考时钟进行自我调整。随着所有节点都在同一参考时钟上操作,过程数据和输出信号可以通过精确的本地时钟管理的周期性触发器在整个网络中同时应用。
3 EtherCAT 实现
3.1 系统架构
EtherCAT 实现的系统架构可分为三个主要组成部分:配置文件、EtherCAT 主站设备和 EtherCAT 从站设备。EtherCAT 配置文件由主站设备用于配置和初始化 EtherCAT 网络。这些配置文件包含有关从站设备配置和网络拓扑的详细信息。主站设备,也称为 EtherCAT 主站,负责管理 EtherCAT 网络,与从站设备交换数据,并与外部应用程序交互。从站设备,即 EtherCAT 从站,通常是传感器、驱动器、执行器,以及简单的数字/模拟 I/O,用于在自动化系统中执行特定任务。
3.2 EtherCAT 从站信息(ESI)
ESI文件,即“EtherCAT从站信息”文件,是EtherCAT系统中的一种配置文件,用于描述 EtherCAT 从站设备的功能和配置设置。ESI 文件基于 XML,由从站设备的制造商或供应商提供,包含主站设备配置和与从站设备通信所需的信息。ESI 文件中包含有关 EtherCAT 从站的详细信息,包括设备类型、支持的邮箱协议、同步设置以及输入和输出过程数据 (PDO) 的映射。从站设备可能包含服务数据对象 (SDO),并将其列入对象字典。如果包括对象字典,则 ESI 文件会包含完整的对象列表。
3.3 EtherCAT 网络信息(ENI)
ENI文件,即“EtherCAT 网络信息”文件,是EtherCAT系统中一种标准化配置文件,用于定义网络拓扑、从站设备在网络中的位置以及所有 EtherCAT 从站设备的过程数据结构。ENI 文件通常使用 EtherCAT 配置工具创建,该工具通过扫描网络中的 EtherCAT 从站设备或手动添加从站设备来定义网络拓扑,并解析每个从站设备提供的 ESI 文件中的信息。ENI 文件由 EtherCAT 主站设备用于配置和初始化网络,包含主站设备与网络中每个设备通信所需的所有信息。
3.4 主站设备
EtherCAT 主站是一个管理和控制 EtherCAT 网络的设备。它通常是 PC 或嵌入式微处理器、可编程逻辑控制器(PLC)或运动控制器,负责与连接到网络的 EtherCAT 从站设备通信和控制这些从站设备。EtherCAT 主站作为网络的控制点,负责管理从站之间的通信,向从站下达命令并接收从站发回的数据。
主站还负责管理网络时钟和整个网络的同步,并处理错误,例如看门狗计时器和自动重试机制。它还使用 ENI 和 ESI 文件中的信息来配置网络,以及了解网络拓扑和从站功能。
3.5 从站设备
EtherCAT 从站是连接到 EtherCAT 网络并由 EtherCAT 主站控制的设备。这些设备通常是传感器、驱动器、执行器或其他类型的自动化设备,在自动化系统中执行特定任务。为了实现 EtherCAT 独特的实时帧处理,EtherCAT 从站设备需要一个 EtherCAT 从站控制器(ESC)。ESC 可以是专用芯片(如 ASIC)、作为 IP 核实现于 FPGA 中,或者甚至直接集成到处理器中。ESC 可手动设计,也可以从许多制造商处购买现成产品。
EtherCAT 从站通过读取和写入主站发送到网络中的 EtherCAT 帧中的数据与主站通信,同时也可以通过从站之间的通信与网络中的其他从站进行交互。每个从站设备会被自动分配一个称为“地址”的唯一识别号,主站设备使用该地址与从站设备通信。从站设备的功能由其 ESI 文件定义,该文件通常由从站制造商提供。ESC 支持多种拓扑,并允许电缆和主站冗余。
从站设备还内置错误处理机制,例如看门狗计时器和自动重试功能,这有助于确保通信的可靠性,并防止错误导致系统故障。
3.6 错误检测与诊断
EtherCAT 内置了许多实用且方便的错误检测与诊断功能,使得故障排除和维护变得快速而简单。错误检测与诊断在确定设备可用性、可操作性和调试时间方面起着重要作用。
EtherCAT 包括在启动过程中扫描和比较实际网络拓扑与配置拓扑的能力。这种比较对于检测布线问题和其他物理层问题非常有用,与传统现场总线系统相比,这是一个巨大的优势。
此外,EtherCAT 可以确定网络中发生错误的确切节点,这被称为错误定位。在问题影响设备操作之前,EtherCAT 可以检测并定位偶发干扰。
每个节点中的 EtherCAT 从站控制器(ESC)通过校验和检查帧是否存在错误。只有当帧被正确接收时,信息才会被提供给从站应用。如果存在位错误,错误计数器会递增,并通知后续节点帧中存在错误。主站设备也会检测到帧有故障并丢弃相关信息。通过分析节点的错误计数器,主站设备能够检测到系统中最初发生故障的位置。
在帧中,工作计数器允许对每个数据报中的信息进行一致性监控。每个被数据报寻址且内存可访问的节点会自动递增工作计数器。随后,主站可以周期性地确认所有节点是否正在使用一致的数据。如果工作计数器的值与预期不同,主站会通知应用程序这一不一致。主站设备随后可以通过节点提供的状态和错误信息以及链路状态来自动检测异常行为的原因。
得益于 EtherCAT 独特的带宽利用原则,其性能比使用单帧的工业以太网技术高出数个量级,在相同循环时间下,EtherCAT 帧中由位错误引起的干扰可能性显著降低。如果使用更短的循环时间,错误恢复所需的时间也会显著减少,从而更易于在应用中解决此类问题。
由于 EtherCAT 使用标准以太网帧,可以利用免费的以太网软件工具记录以太网网络流量。例如,著名的 Wireshark 软件提供了针对 EtherCAT 的协议解释器,因此协议特定信息(如工作计数器、命令等)可以以纯文本形式显示。