1. 简介
    1.1 运动控制
    1.2 实时以太网
    1.3 EtherCAT
  2. EtherCAT原理介绍
    2.1 实时性
    2.2 端口管理
    2.3 EtherCAT网络拓扑
    2.4 EtherCAT网络协议栈
    2.5 EtherCAT数据帧格式
    2.6 EtherCAT设备寻址方式
    2.7 分布式时钟(Distribute Clock)
    2.8 应用层(Application Layer)
    2.9 设备配置(Device Profile)
    2.10 主站设计
    2.11 从站设计
  3. 应用层(Application Layer)
    3.1
    3.2 EtherCAT Slave Implementation (从站实现)
  4. 应用实例
    4.1 主站操作系统(RTAI)
    4.2 主站EtherCAT程序(IGH)
    4.3 主站应用开发(LinuxCNC)
    4.4 ET1200
    4.5 从站程序设计
    4.6 实验测试
  5. 工具
    5.1 TwinCAT
    5.2 LinuxCNC
    5.3 开源的EtherCAT Master
  6. 简介
    1.1 运动控制
    运动控制系统处理机械系统中一个或多个坐标上的运动以及运动之间的协调,实现精确的位置控制、速度和加速度控制、转矩和力的控制等。

单轴的运动控制系统可分为开环、半闭环和闭环伺服系统。

多轴运动控制系统可以分成点位控制、连续轨迹控制和同步控制。

典型的运动控制系统,从结构上看,包括上位机控制窗口、运动控制器、驱动器、电机以及测量反馈系统等几个部分组成:

1.2 实时以太网
实时以太网(RTE, Real Time Ethernet)是常规以太网技术的延伸,以便满足工业控制领域的实时性数据通信要求。目前,国际上有多种实时工业以太网协议,根据不同的实时性和成本的要求使用不同的原理,大致可以分为以下三类:

(1)基于TCP/IP实现的工业以太网仍使用TCP/IP协议栈,通过上层合理的控制来解决通信过程中的不确定因素。这种方式具有较高的传输速率,适应于大量数据通信,更适合作为网关和交换设备的应用,不能实现很好的实时性。常用的通信控制方法有:合理调度,减少冲突的概率;定义帧数据的优先级,为实时数据分配最高优先级;使用交换式以太网等。使用这种方式的典型协议有Modbus/TCP和Ethernet/IP等。
(2)基于以太网实现的工业以太网仍然使用标准的、未修改的以太网通信硬件,但是不适用TCP/IP来传输数据。它使用特定的报文进行传输。TCP/IP协议栈能使用时间控制层分发一定的时间片来利用网络资源。该类协议主要有Ethernet Powerlink, EPA C Ethernet for Plant Automation ), PROFINET IRT等。通过这种方式可以实现较好的实时性。
(3)通过修改以太网协议实现的工业以太网,实现应答时间小于lms的硬实时,从站使用特定的硬件实现。由实时MAC控制实时通道内的通信,从根本上避免报文间的冲突。非实时数据依然能在通道中按原协议通信。典型协议有德国倍福的EtherCAT、西门子的PROFINET IRT等。
1.3 EtherCAT
德国BECKHOFF自动化公司于2003年开发出的EtherCAT实时以太网技术突破了其他以太网解决方案的系统限制:通过该项技术,无需接受以太网数据包,将之解码,然后再将过程数据复制到各个设备。

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

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

主站可使用标准网卡实现,
从站选用特定的EtherCAT从站控制器ESC(EtherCAT Slave Controller)或者FPGA实现,
主要完成通信和控制应用两部分功能,EtherCAT物理层选用标准以太网物理层器件。

从站能将收到的报文直接处理,并读取或插入有关的数据,再将报文发送给下一个EtherCAT从站。最末尾的EtherCAT从站返回处理完全的报文,然后由第一个从站发送给主站。整个通信过程充运行于全双工模式下,TX线发出的报文又通过RX线返回给主站:

2.1 实时性
数据包刷新时间的计算
数据包中所有从站的 Process Datarocess Datarocess Data rocess Data rocess Data rocess Datarocess 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 Byte。
数据包长度:84-18+600=1266 Byte =671*8 Bit =5328 Bit
总线刷新时间:(5328 Bit/100,000,000 Bps) *2=100.656µs
1
2
3
注意,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.2 端口管理
一个从站控制器最多可以有4个端口,如果一个端口关闭了,控制器主动连接下一个端口。端口可以随着EtherCAT命令主动的打开或者关闭。逻辑端口设置决定了EtherCAT帧的处理和发送顺序。




2.3 EtherCAT网络拓扑
所有数据帧在网络中以一种“逻辑闭环”的方式传播,与网络的硬件拓朴无关,无论它是链式、菊花链、星形还是树形拓朴。

所有数据帧都由Master发出,以事前严格定义的顺序,依次经过网络上的所有从站,走过一个完整的闭环后回到Master 。
所有数据帧通过从站中的 EtherCAT Processing Unit (EtherCAT处理单元)只有 1 次。

线型拓扑:
任意数目的设备成线型连接
最多65535个设备

数据处理链型拓扑

带有分支线的数据处理链型拓扑

树型拓扑:

实时星型拓扑:

冗余线缆

选择冗余电缆可以满足快速增长的系统可靠性需求,以保证设备更换时不会导致网络瘫痪。您可以很经济地增加冗余特性,仅需在主站设备端增加使用一个标准的以太网端口(无需专用网卡或接口),并将单一的电缆从总线型拓扑结构转变为环型拓扑结构即可(见图7)。当设备或电缆发生故障时,也仅需一个周期即可完成切换。因此,即使是针对运动控制要求的应用,电缆出现故障时也不会有任何问题。

EtherCAT也支持热备份的主站冗余。由于在环路中断时EtherCAT从站控制器芯片将立刻自动返回数据帧,一个设备的失败不会导致整个网络的瘫痪。例如,拖链设备可以配置为分支拓扑以防线缆断开。
2.4 EtherCAT网络协议栈


CoE(Can over EtherCAT)
PDO(Process Data Object 过程数据对象)
SDO(Service Data Object 服务数据对象)
PDI(Process Data Interface 过程数据接口)(uC, SSI, I/O)
1
2
3
4
ESM(EtherCAT State Machine)
ESI(EtherCAT Slave Information) (XML device description)
ENI(EtherCAT Network Information)
CTT(Conformance Test Tool 一致性测试工具)
SM(SyncManagers 同步管理器)
MDP(modular device description 模块化设备描述 )
1
2
3
4
5
6
2.5 EtherCAT数据帧格式
EtherCAT数据直接嵌入在以太网数据帧中进行传输,只是采用了一种特殊的帧类型,该类型为Ox88A4, EtherCAT数据帧结构如图所示:

EtherCAT数据包由数据头和数据实体两部分组成,EtherCAT数据头包含2个字节,每个数据包里面可以只包含一个EtherCAT子报文,也可以包含多个子报文;一个EtherCAT子报文对应着一个从站,因此一个EtherCAT数据包可以操作
多个EtherCAT从站,相应的数据长度在44-1498字节之间,EtherCAT数据帧结构定义:

倍福EtherCAT通信协议详细解析相关推荐

  1. Beckhoff倍福EtherCAT IO端子类型简介

    本文由百晓生知识处理引擎整理发布,BestMrRight可交流更多详细中文文件 数字量输入 EL1008, EL1018 数字量输入 | 24 V DC, PNP 数字量输入 EL1202, EL12 ...

  2. 倍福EtherCAT中的SDO与PDO关系

    SDO和PDO都是基于CANopen的对象字典进行讨论的,CoE基于CANopen协议进行了补充,使之可以应用在EtherCAT上,两者都是建立在CANopen的对象字典之上的,且针对的对象字典是同一 ...

  3. 倍福--EtherCAT诊断方法

    在调试阶段可能会出现EtherCAT模块因接线.参数配置等问题而导致无法使用的情况.本文介绍Ethercat模块网络诊断和硬件排查的基本方法. 操作流程 1.1. EtherCAT硬件-供电 1.1. ...

  4. 倍福beckhoff详细知识库展示

    教材(一) TwinCAT 2.0 从入门到精通 1 系统概述 1.1 TwinCAT 软件介绍 1.2 PC 控制的原理 1.3 选型设计 1.4 安装和接线 1.5 常见问题 2 编程入门 2.1 ...

  5. 【Ethercat机器人控制系统开发】倍福Twincat入门教程

    [Ethercat机器人控制系统开发]倍福Twincat入门教程(一) 一. 简介 1. 倍福,Twincat与Ethercat简要介绍 1. 1 倍福Beckhoff简介 1. 2 Twincat简 ...

  6. 倍福PLC中的EtherCAT与E-Bus的关系

    Twincat系统连接倍福自己的家的I/O系统时,默认Ethercat作为I/O总线,I/O模块之间使用E-Bus作为背板总线,其实,E-Bus本质就是Ethercat,只不过传输的时候不是用的网线, ...

  7. 倍福XTS | 磁驱柔性输送系统环形线Ethercat DSP+FPGA控制器

    XTS | 磁驱柔性输送系统 提供定制服务. 产品概览表产品搜索器 产品 AT2xxx, ATH2xxx | XTS 电机模块 XTS 电机模块中的所有有源组件都被整合在一个狭小的安装空间内. 更多信 ...

  8. 倍福--连接欧姆龙EtherCAT伺服配置

    1. 问题描述:倍福CX5010控制器连接欧姆龙RD伺服驱动器,连接好线路之后,在TwinCAT3平台上面点击使能,欧姆龙伺服驱动器报警显示是B1 2. 原因:需要下载欧姆龙伺服手册查找原因 3. 原 ...

  9. 倍福--连接欧姆龙EtherCAT伺服案例

    1. 硬件配置:倍福CX5010控制器.欧姆龙伺服电机R88D-1SN 2. 接线:伺服主要接电源线和24v的线,具体看欧姆龙伺服驱动器说明书 ![在这里插入图片描述](https://img-blo ...

最新文章

  1. 微信小程序 scroll-view 根据内容的高度自适应
  2. 红帽、Docker、SUSE 在俄罗斯停服
  3. XENSERVER 图形界面安装Linux
  4. 论文浅尝 | GMNN: Graph Markov Neural Networks
  5. YUV格式文件转RGB格式
  6. Bailian4003 十六进制转十进制【入门】
  7. 为什么 Flink 无法实时写入 MySQL?
  8. 法拉克机器人自动怎么调_发那科机器人的简单设置你知道吗
  9. 旭荣管理软件怎么修改小票内容_水果门店管理系统怎么管理水果门店的
  10. SqlServer数据库 设置查询结果字体
  11. 读书·2020(26本)
  12. 再携手,齐并进!菊风助力宁波银行坐席PUSH外呼项目
  13. 数据可视化实验一之单变量数据的统计图表可视化
  14. 电脑监控是真的吗?4个实验一探究竟
  15. Ant学习笔记(Ant入门)
  16. 二维数组 string[,]
  17. 零基础学日语资料附经验分享
  18. 通俗理解java的可见性、有序性和原子性
  19. 2022年危险化学品生产单位安全生产管理人员理论题库及答案
  20. 仿iphone开关按钮

热门文章

  1. 分布式事务中的那些事——微服务总结(二)
  2. PanGu STM32MP开发板更新固件
  3. 日报系统、周报系统如何便捷使用?——员工篇
  4. 设计师常用的三维制图软件有哪些
  5. 第四周 GSM模块测试
  6. 数据挖掘BUC算法计算冰山立方体的python实现
  7. 天刀手游测试服服务器维护中,天涯明月刀手游测试服(天涯服)
  8. 字节码基础:JVM字节码初探
  9. 【学习笔记】| 集合泛型
  10. you are right大题