倍福EtherCAT通信协议详细解析
时间:2023-02-09 03:00:00
- 简介
1.1 运动控制
1.2 实时以太网
1.3 EtherCAT - 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 从站设计 - 应用层(Application Layer)
3.1
3.2 EtherCAT Slave Implementation (从站实现) - 应用实例
4.1 主站操作系统(RTAI)
4.2 主站EtherCAT程序(IGH)
4.3 主站应用开发(LinuxCNC)
4.4 ET1200
4.5 站程设计
4.6 实验测试 - 工具
5.1 TwinCAT
5.2 LinuxCNC
5.3 开源的EtherCAT Master - 简介
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实时以太网技术突破了其他以太网解决方案的系统限制:无需接受以太网数据包,然后将过程数据复制到各种设备。
- 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字节),则总线刷新时间的计算过程如下:
流程数据长度:1000*(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这是因为一个伺服分配了六个字节Beckhoff控制软件TwinCAT中关于EtherCAT默认设置从站Input和Output使用相同的数据段,因此当数据包进入伺服驱动器时,数据段存储控制字和目标位置,而伺服状态字和实际位置存储出来。
以上两个数据30.56μs和101.28 μs就是EtherCAT在官方宣传资料中,刷新1000个数字需要300个μs,刷新100个伺服轴只需100个μs数据来源。事实上,根据从站的类型,是否包含分布时钟,是否启用时钟同步和时钟同步的参数设置,可能会在数据包中添加8-12字节来传输同步时钟值,并相应地为每个从站添加一个字节Bit标记等,会增加几个微秒的刷新时间,暂时忽略不计。
以上计算只是数据包传输所需的理论时间。事实上,每个站后都会产生短暂的硬件延迟。M超五类网线接口从站延迟约1μs,而EBus的IO模块类从站延迟约0.3μs,在毫秒级以下的控制任务中,如果站数较多,这个时间也相当可观,计算刷新周期时应考虑。
2.2 端口管理
从站控制器最多可以有四个端口。如果一个端口关闭,控制器将主动连接下一个端口。端口可以跟随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(EthrCAT 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数据帧结构定义: