EtherCat:打通EtherCat奇经八脉(一)

一、EtherCat背景介绍

    EtherCAT是一种用于实时以太网通信的现场总线协议。它由德国Beckhoff公司于2003年开发,并在2014年成为国际电机工程师协会(IEC)的国际标准(IEC61158-12)。

    EtherCAT的设计目标是实现高性能的实时通信,同时保持低成本和简单的网络结构。它通过在数据帧中实时传输和处理数据,从而实现低延迟和高带宽。这使得EtherCAT适用于需要快速响应和高精度控制的应用,如工业自动化、机器人控制和测试测量。

    EtherCAT采用主从式结构,其中一个主站(Master)负责控制和同步网络中的从站(Slave)。主站发送控制命令和数据,从站接收并执行这些命令。EtherCAT网络可以支持多达1000个从站,每个从站都有自己的网络地址和唯一的标识符。

    通过EtherCAT,从站可以实时传输输入和输出信号,如传感器数据、执行器状态和控制命令。这使得系统能够实现高度的分布和灵活性,从而适应各种应用需求。

    EtherCAT还支持多种拓扑结构,包括线性、树形和环形结构。这使得网络的构建更加灵活,并且可以根据应用的要求进行优化。

    总的来说,EtherCAT是一种高性能实时以太网通信协议,具有低成本、简单的网络结构和灵活性的特点。它在工业自动化和控制领域得到广泛应用,并且在多个国际标准中被采用。

二、EtherCat协议介绍

2.1 EtherCAT链路层

    EtherCAT从站设备在报文经过其节点时读取相应的数据报文,同样输入数据也是在报文经过时插入到报文中。整个过程报文只有几纳秒的时间延迟,实时性获得极大提高。

    EtherCAT作为一种工业以太网总线,充分利用了以太网的全双工特性。使用主从通信模式,主站发送报文给从站,从站从中读取数据或将数据插入至从站。

  • 主站可使用标准网卡实现
  • 从站选用特定的·EtherCAT从站控制器ESC(EtherCAT Slave Controller)或者FPGA实现,

    主要完成通信和控制应用两部分功能,EtherCAT物理层选用标准以太网物理层器件。

    从站能将收到的报文直接处理,并读取或插入有关的数据,再将报文发送给下一个EtherCAT从站。最末尾的EtherCAT从站返回处理完全的报文,然后由第一个从站发送给主站。整个通信过程充运行于全双工模式下,TX线发出的报文又通过RX线返回给主站:
在这里插入图片描述
    对于开发者而言,链路层的原理只需要知道EtherCAT的模型概念:报文是由主站发出,然后像一条列车一样发往各个从站,每个从站认为是串联起来的,会按照目前串联的位置顺序对数据进行发送,就像是列车的轨道一样;每到一站,数据就像货物一样可以以极快的速度进行上下车,到达最后一站就开始原路返回(在网线上看就是在同一根网线里的TXRX,其中TX就是列车出发的方向,RX就是返程的方向。每个从设备一般有两个以太网口,一个口对接上一个从设备,另一个对接下一个从设备,而对应连接的两条网线在本地被“连接”成了一条网线,所以整个网络的所有网线可以认为是同一根网线。),数据每经过一个往返就完成了一次通信,主站就是列车的起始站,所有通信都是由主站发起并把控的。

2.2 实时性

  • 数据包刷新时间的计算
    数据包中所有从站的 Process Data数据 决定了数据包的长度。

    一个Ethernet thernet数据包最小84 字节,不足 84 字节会补齐84 字节。由于EtherCAT Frame中有一些公共开销, 84 字节的数据包最多含18字节的过程数据。考虑到数据包必须经过每个从站两次才能回到主站,所数据包以固定的波特率100 Mbps在网络上传输两次的时间 这就是它的总线刷新时间 。

1.基于这个原则,以包含 1000路开关量信号的数据包为例,计算过程如下:
过程数据长度:1000/8=125Bytes
数据包长度:84-18+125=191Bytes=191*8 Bit= 1528 Bit
总线刷新时间:(1528Bit/100,000,000 Bps)*2=15.28us * 2 = 30.56us

注意,通常的数字量模块, 都是单纯的输出或者输入模块,而不是混合模块。所以 1000 个数字量信号, Frame 中就会分配 125 字节。

2.再以包含100个EtherCAT伺服驱动器 过程数据的EtherCAT数据包为例,假如每个伺服的过程数据只包括控制字(2字节)、状态字(2字节)、目标位置(4字节)、实际位置(4字节),其总线刷新时间的计算过程如下:

过程数据长度:100*(2+4)=600 Bytes。
数据包长度:84-18+600=671 Bytes =671*8 Bit =5328 Bit
总线刷新时间:(5328 Bit/100,000,000 Bps) *2=100.656µs

    注意,Frame中只为一个伺服分配了6个字节,这是因为根据Beckhoff公司的控制软件TwinCAT中关于EtherCAT的默认设置是从站的Input和Output使用同一数据段,所以数据包进入伺服驱动器时该数据段存放的是控制字和目标位置,而出来时则存放伺服的状态字和实际位置。

    以上两个数据30.56µs和101.28 µs就是EtherCAT官方宣传资料中,刷新1000个数字量需要30µs,刷新100个伺服轴只需要100µs的数据由来。实际上,根据从站的类型、是否包含分布时钟、是否启用时钟同步、时钟同步的参数设置不同,在数据包中有可能还会增加8-12字节用于传输同步时钟值,以及相应的为每个从站增加一个Bit的标记等等,会增加几个微秒的刷新时间,暂且忽略不计。

    以上计算只是数据包传输需要的理论时间,实际上,数据包经过每个从站会产生短暂的硬件延时。100M超五类网线接口的从站延时约1µs,而EBus的IO模块类从站延时约0.3µs,在毫秒级以下的控制任务中如果从站数量较多,这个时间也相当可观,计算刷新周期时应该考虑进去。

2.3 EtherCAT网络拓扑

所有数据帧在网络中以一种“逻辑闭环”的方式传播,与网络的硬件拓朴无关,无论它是链式、菊花链、星形还是树形拓朴。
在这里插入图片描述

2.3.1 线型拓扑

任意数目的设备成线型连接࿰

### 关于EtherCAT从站开发的资源 #### 开发指南和技术文档的重要性 对于EtherCAT从站的开发,获取合适的开发指南和技术文档至关重要。这些材料能够提供必要的背景信息和支持,帮助开发者理解如何正确配置和操作EtherCAT网络及其设备[^1]。 #### 获取官方支持与文档 建议优先访问硬件制造商以及软件提供商发布的正式文档和服务。这类资源通常包含了详细的说明、最佳实践案例研究等内容,有助于解决具体的技术难题并优化系统的性能表现。例如,在使用特定品牌的产品时,应当查阅该品牌的官方网站来寻找最新的技术支持手册或白皮书等参考资料。 #### 使用开源库进行学习 除了厂商提供的资料外,《EtherCAT.NET》这样的开源项目也提供了丰富的学习素材。该项目不仅有详尽的文字描述,还有实际代码示例可供参考,非常适合初学者入门。进步的学习则可以通过研读项目的源码实现机制及参与社区讨论等方式来进行[^2]。 #### 配置实例分析 当涉及到具体的编程环境如Beckhoff公司的TwinCAT平台时,则需关注其特有的工作流程。比如,在设置过程中会利用内置功能扫描连接到局域网上的所有兼容装置,并允许用户向目标节点写入预设参数以便自动初始化。这过程的具体细节可以在有关章节找到更全面的操作指引[^3]。 ```csharp // C# 示例:假设这是用于与 EtherCAT 设备通信的部分逻辑 public void ConfigureDevice(string deviceAddress, byte[] configurationData){ try { var client = new EthercatClient(deviceAddress); client.WriteEeprom(configurationData); // 将配置数据写入 EEPROM 中 Console.WriteLine("Configuration successful."); } catch (Exception ex) { Console.Error.WriteLine($"Failed to configure the device: {ex.Message}"); } } ```
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

键盘会跳舞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值