赞
踩
请用MarkdownPad或者Typora软件打开此文档阅读更佳
本文档基本概念参考<工业以太网现场总线ETHERCAT驱动程序设计及应用.pdf>写的.
工具:drowio(V13.6.2),xmind(V8)
by weilan, 2021.05.31
EtherCAT(以太网控制自动化技术)是一个开放框架,以以太网为基础的现场总线系统。是实时以太网的一种。
实时以太网是常规以太网技术的延伸,以便满足工业控制领域的实时性数据通信要求。实时以太网有powerlink,profinet,sercosⅢ,ethercat等等。
根据不同的实现原理,大致分三种类型:
优点:
传输速度快(全双工模式),数据包容量大,传输距离长;
使用通用以太网元器件,性能价格比高;
可以接入标准以太网网端;
控制1000个开关量输入和输出的刷新时间约为30us,单个以太网帧最多可容纳1486字节的过程数据,
相当于12000位开关量数字输入和输出,刷新时间约为300us,控制100个伺服电机的数据通信周期约为100us
比较项 | powerlink | profinet | sercosⅢ | ethercat |
---|---|---|---|---|
循环周期 | 100us | 1ms | 25us | 100us |
传输距离 | 100m | 100m | 40m | 100m |
介质 | 双绞线、光纤 | 双绞线 | 光纤 | 双绞线 |
传输模式 | 半双工 | 半双工 | 全双工 | 全双工 |
硬件实现 | 简单 | 复杂 | 复杂 | 简单 |
|------------------------以太网帧头------------------------------------|
6byte | 6 | 2 | 2 | 44-1498 | 4 |
---|---|---|---|---|---|
目的地址 | 原地址 | 帧类型(0x88A4) | EtherCAT头 | EtherCAT数据 | FCS |
长度:14byte
6byte | 6 | 2 |
---|---|---|
目的地址 | 原地址 | 帧类型(0x88A4) |
长度:4byte
长度:2byte
11bit | 1bit | 4bit |
---|---|---|
EtherCAT数据长度 | 保留位 | 类型 |
EtherCAT数据长度:所有子报文长度总和
类型:1表示与从站通信,其它保留
EtherCAT数据有一个或者多个子报文组成
10byte | 最大1864byte | 2byte |
---|---|---|
子报文头 | 数据 | WKC |
长度:10byte
8bit | 8 | 32 | 11 | 4 | 1 | 16 |
---|---|---|---|---|---|---|
命令 | 索引 | 地址区 | 长度 | R | M | 状态位 |
长度:报文数据区长度
R:保留位, M:后续报文标志
|------------------------EtherCAT数据--------------|
14byte | 20 | 8 | 2 | 4 | ||
---|---|---|---|---|---|---|
以太网帧头 | IP协议头 | UDP协议头 | EtherCAT头 | 子报文 | … | FCS |
|------16~1470byte—|
网段寻址使用符合ISO/IEC 8802-3的MAC地址,两种方式寻址到网段:
开放模式
在开放模式下,一个或者多个EtherCAT网段可连到一个标准的交换机设备,EtherCAT网段中第一个从站设备具有一个表示整个网段的MAC地址。
直连模式
在直连模式下,EtherCAT网段连接到主站的标准以太网口。此时,主站使用广播MAC地址。
数据帧从主站发送给第一个从站,第一个从站传递给下一个从站,最后一个从站通过所有其他从站将数据帧返回到主站。
EtherCAT子报文头内的32位地址分为16位从站设备地址和16位从站设备内部物理存储空间地址。可以寻址65535个从站设备,每个设备内最多可以有64KB的本地地址空间。
位置寻址(顺序寻址)
位置寻址时,根据每个从站设备由其在网段内的连接位置确定。当从站收到一个地址字段值为0的报文时,则这个从站是被寻址的设备,否则地址字段值加1。位置寻址中的从站地址被称为一个自动递增地址。
示例:如果要须知网段内第十个从站,主站将通过位置寻址发送一个初始值为-9的报文,该地址值在经过每个从站时递增1。
通常,位置寻址用于启动阶段。
节点寻址(设置寻址)
节点寻址是通过主站在数据链路层启动阶段配置的节点地址来寻址从站。这确保了即使网段的拓扑结构改变,从站也能通过相同的地址配置来寻址。
报文头内的32位地址作为整体的逻辑地址,寻址网段内4GB逻辑地址空间的一段区域。适合于交换周期性的过程数据。
现场总线内存管理单元(FMMU, Fieldbus Memory Management Units)将从站本地物理内存地址映射到网段范围内的逻辑地址
FMMU0:映射到过程数据(RxPDO)输出区域
FMMU1:映射到过程数据(TxPDO)输入区域
FMMU2:映射到邮箱
同步管理器,Sync Manager
控制对应用存储区的访问,保证应用数据的一致性和安全性
SM0:用于邮箱,输出
SM1:用于邮箱,输入
SM2:用于过程数据,输出
SM2:用于过程数据,输入
从站信息接口,Slave Information Interface
具有EEPROM访问功能,存储ESC和应用配置参数。
过程数据对象,Process Data Object
PDO映射是指,从对象字典到PDO的应用对象的映射。
过程数据的发送接收,实时,速度快,用来传输实时数据.
服务数据对象,Service Data Object
服务数据的发送接收,实时性要求不高,一般用来配置和获取节点配置参数.
分布时钟(DC, Distributed Clock),是所有EtherCAT设备使用相同的系统时间,从而控制各设备任务的同步执行。
系统时钟:从2000年1月1日0点开始,单位为ns
参考时钟:EtherCAT协议规定主站连接的第一个具有分布时钟功能的从站作为参考时钟,其它从站的时钟称为从时钟。
主站时钟:EtherCAT主站也具有计时功能,称为主站时钟。
本地时钟:每个DC从站都有本地时钟,本地时钟独立运行,使用本地时钟信号计时。
偏移量:各从站的本地时钟和参考时钟之间有一定的差值,称为时钟初始偏移量
时钟漂移:在运行过程中,由于参考时钟和本地时钟的时钟源不同,导致时钟运行不同步,本地时钟产生漂移。
时钟同步
子报文所有服务都是以主站操作描述的。主站接收到返回的数据帧后,检查子报文中的WKC(工作计数器),如果不等于预期值,表示此报文没有被正确处理。
寻址方式 | 读写模式 | 命令名称 | 编号 | WKC |
---|---|---|---|---|
空指令 | – | NOP | 0 | 0 |
顺序寻址 | 读 | APRD | 1 | 1 |
写 | APWR | 2 | 1 | |
读写 | APRW | 3 | 3 | |
设置寻址 | 读 | FPRD | 4 | 1 |
写 | FPWR | 5 | 1 | |
读写 | FPRW | 6 | 3 | |
广播寻址 | 读 | BRD | 7 | 与寻址到从站个数相关 |
写 | BWR | 8 | 同上 | |
读写 | BRW | 9 | 同上 | |
逻辑寻址 | 读 | LRD | 10 | 同上 |
写 | LWR | 11 | 同上 | |
读写 | LRW | 12 | 同上 | |
顺序寻址 | 读,多重写 | ARMW | 13 | 同上 |
设置寻址 | 读,多重写 | FRMW | 14 | 同上 |
通常使用FMMU进行逻辑寻址
过程输出数据,主站通常发出一个写或者读写命令向多个从站发送过程输出数据。每个从站都获得相应的同步管理器(SM)AL事件。从站的AL控制器可以随时从相关的应用内存中读取过程输出数据。
过程输入数据,主站通常发出一个读或者读写命令向多个从站发送过程输入数据。主站从预先写入的缓存中获取数据。如果输入数据被读,每个从站都获得相应的同步管理器(SM)AL事件。从站的AL控制器可以随时向相关的应用内存中写入过程输入数据。
也称为邮箱数据通信,双向进行
报文结构
子报文头 | 邮箱协议数据 | WKC |
邮箱协议数据
48bit | ||
---|---|---|
邮箱数据头 | 命令 | 命令相关数据 |
邮箱数据头
16bit | 16 | 6 | 2 | 4 | 4 |
---|---|---|---|---|---|
长度 | 地址 | 通道 | 优先级 | 协议类型 | 计数器 |
主站到从站通信–写邮箱命令
主站发送邮箱数据给从站。主站需检查从站应答报文的WKC,如果WKC为1,表示写命令成功。反之,在限定的时间内没有响应,主站需重发写命令。
从站到主站通信–读邮箱命令
从站有数据要发送给主站,必须先将数据写入输入邮箱缓存区,然后由主站来读取。有两种方法,一种是使用FMMU周期性读某个标志位,另一种是简单地轮询输入邮箱缓存区,如果WKC为1表示已将新数据填入。
EtherCAT状态机(EtherCAT State Machine)负责协调主站和从站应用程序在初始化和运行时的状态关系.
EtherCAT状态机定义了每个从站设备的分步设置,并指示了可用的功能:
Init(初始化):在这个状态下,主站初始化ESC的一些配置寄存器,但在应用层没有任何交互;如果从站支持邮箱通信,则配置邮箱通道参数(SM0和SM1)。
Pre-Operational(预运行):邮箱通信被激活。主站使用邮箱初始化过程数据映射,配置过程数据通信使用的SM通道,配置FMMU。在这个状态下不允许过程数据通信。
Safe-Operational(安全运行):从站应用程序读取输入数据,但是不产生输出信号。设备无输出。,也可以使用邮箱通信。
Operational(运行):可以使用过程数据通信,也可以使用邮箱通信。
Bootstrap(引导状态)(可选):下载设备固件程序。主站可以使用FOE协议的邮箱通信下载一个新的固件程序给从站。
CANopen over EtherCAT(COE)
基于CANopen协议的EtherCAT,使用邮箱通信访问CANopen对象字典及其对象进行初始化,通过使用对象字典映射过程数据,周期性交换数据。
Servo Drive over EtherCAT(SOE)
基于伺服驱动器控制的EtherCAT,也就是使用SERCOS应用层协议实现,使用邮箱通信访问伺服控制规范参数(IDN),配置伺服系统参数;使用SERCOS数据报格式配置EtherCAT过程数据报文。
Ethernet over EtherCAT(EOE)
EtherCAT也支持IP标准协议,如TCP/IP,UDP/IP等所有其他高层协议。
File Access over EtherCAT(FOE)
该协议通过EtherCAT下载和上传固件程序。
ESC(EtherCAT Slave Controler)是实现EtherCAT数据链路层协议的专用集成电路芯片。处理EtherCAT数据帧。
ESC提供64kb的DPRAM地址空间,前4kb(0x0000-0x0FFF)为寄存器空间。0x1000-0xFFFF为过程数据存储空间。
所谓对象字典就是一个有序的对象组,描述了对应CANOpen节点的所有参数,每个对象都描述了它的功能、名字、索引、子索引、数据类型、以及这个对象是否必须、读写属性等等。
每个对象采用一个16位的索引值来寻址,范围在0x0000-0xFFFF之间。子索引可以进一步描述对象的参数和功能,其范围在0x00-0xFF之间。
索引 | 对象 |
---|---|
0000 | |
0001-009F | 数据类型区域 |
00A0-0FFF | 保留 |
1000-1FFF | 通讯子协议区域 |
2000-5FFF | 制造商特定子协议区域 |
6000-9FFF | 标准的设备子协议区域 |
A000-FFFF | 保留 |
例如:
0x6099,Homing Speeds
0x6099:0x00,Number of entries
0x6099:0x01,Speed during search for switch
0x6099:0x02,Speed during search for zero
对象字典的描述及作用可以参考松下驱动器文档<SX-DSV03244_r8_0C.pdf>
从站将收到的报文直接处理,读取或插入有关的数据,再将报文发送给下一个从站,最末尾的从站返回处理完全的报文给上一个从站,然后由第一个从站发送给主站。
ESI(EtherCAT Slave Information),EtherCAT从站信息文件,商家提供,以xml格式,这个文件的目的是告诉用户,从站实现了哪些功能,可配置哪些项
xml文件格式详细参考<ETG2000_S_R_V1i0i1_EtherCATSlaveInformationSpecification.pdf>
ethercat命令
ethercat [OPTIONS] [ARGUMENTS]
Commands:
alias 修改从站别名
config 显示从站配置信息
debug 设置主站调试级别
download 向从站写入SDO条目
upload 读从站SDO条目
reg_read 读从站寄存器
reg_write 写从站寄存器
Options:
-force -f 强制执行命令
--quiet -q 输出更少信息
--verbose -v 输出更多信息
--help -h 显示帮助信息
参考官方手册<igh-ethercat-1.5.2.pdf>
参考<3.EtherCAT使用.xmind>
linuxcnc-ethercat,缩写lcec,是linuxcnc的一个实时模块,通过hal引脚和调用igh ethercat接口,实现控制电机运动.
参考<2.lcec的xml格式.xmind>
参考<6.lcec代码分析.xmind>
参考<igh ethercat主站分析.xmind>
官方文档<igh-ethercat-1.5.2.pdf>
参考<4.ethercat问题.md>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。