APP下载

EtherCAT主站协议SoE的研究与实现

2016-12-06常玉冬

组合机床与自动化加工技术 2016年11期
关键词:通信协议主站以太网

常玉冬,王 超

(1.中国科学院大学,北京 100049;2.中国科学院沈阳计算技术研究所 高档数控国家工程研究中心,沈阳 110168;3.沈阳高精数控技术有限公司,沈阳 110168)



EtherCAT主站协议SoE的研究与实现

常玉冬,王 超

(1.中国科学院大学,北京 100049;2.中国科学院沈阳计算技术研究所 高档数控国家工程研究中心,沈阳 110168;3.沈阳高精数控技术有限公司,沈阳 110168)

多种方法实现EtherCAT应用层协议将有利于提升EtherCAT技术在国内数控产品中的应用,使国内的伺服产品的开放性和实时性得到提高,目前CoE协议已经应用于实践且取得了不错的效果,所以提出了实现SoE协议并且应用在数控系统中。文章首先介绍了EtherCAT通信协议的基本内容,然后对现有的EtherCAT协议进行分析然后从结构和性能两方面对其进行改进,并通过实验对改进的协议从性能和功能两方面进行验证。

EtherCAT通信协议;数据帧;状态机;SoE协议

0 引言

当前工业控制网络和现场总线技术的一个重要的发展方向就是将以太网技术应用于工业控制领域,从而形成工业以太网技术。在众多工业以太网技术中,EtherCAT作为新一代的实时工业以太网技术是由德国BECKHOFF公司2003年提出的,凭借其高速、实时性、低成本、拓扑灵活、配置简单、与普通以太网完全兼容、能最好利用以太网技术等优势得到了迅速发展。

应用层AL(Application Layer)提供了用户与网络之间的接口,是EtherCAT通信协议层次结构中直接与用户进行交互的功能层,EtherCAT应用层使满足应用层要求的各种协议共同工作,它定义了各种服务协议与应用程序之间的接口并不是具体的应用程序。EtherCAT作为网络通信技术,支持CANopen协议中的CiA402和SERCOS协议的应用层(CoE和SoE)等多种设备行规和协议。SERCOS是国际上第一个专门用于伺服驱动器控制的实时数据通信协议标准,而EtherCAT协议的通信性能非常适合数字伺服器的驱动控制,所以本文在应用层使用SERCOS应用层协议实现数据接口,并且对EtherCAT通信协议进行改进[1-6]。

1 EtherCAT协议简介

EtherCAT网络以标准的以太网技术为基础,采用的是主从摸式介质访问控制通信方式,整个网络的通信由主站发起,主站发起下行的数据帧,数据帧遍历所有的从站,从站设备采用“On The Fly”技术[1],在报文传输不停止的情况下分析寻址到本站的EtherCAT子报文,并根据报文头中的命令读或写数据到报文中指定位置,同时从站硬件上把该子报文的工作计数器(WKC,Woking Counter)加1,表示该数据已经被相应的从站处理。“On The Fly”技术是由从站硬件来实现的,这使得EtherCAT数据帧经过每个从站的整个过程只会产生纳秒级的延迟,保证了系统的高度实时性。遍历完所有的从站后,经过各从站处理的数据帧作为上行数据帧从最后一个从站返回主站,主站收到上行报文后,比较返回报文中的WKC和预期WKC来判断数据帧是否被正确处理,一次通信结束。整个通信过程中充分利用了以太网全双工处理网络数据的通信特点[7-11]。

EtherCAT协议有两种通信模式[2]:周期性过程数据通信和非周期性邮箱数据通信。前者实时性要求高,数据传输和处理必须在规定的时间内完成通信,否则会导致操作失效。其通常使用FMMU进行逻辑寻址,主站可以使用逻辑读、写或读写命令同时操作多个从站,由于良好的实时性主要应用于实际控制中。后者针对非时间关键的数据,实时性要求低。通常使用设备寻址方式,因此一个邮箱数据报文只能寻址特定的一个设备,常用于参数配置阶段。

SERCOS(串行实时通信协议)作为一种智能控制和数字化驱动现场总线接口被广泛应用于数控机床等伺服设备上。由于EtherCAT设备上不能传输SERCOS协议数据,为了在EtherCAT通信网络下运行SERCOS协议上层定义的伺服参数、控制数据和伺服设备行规,对二者进行了修改产生了SoE协议(SERCOS over EtherCAT)。SoE作为基于EtherCAT的SERCOS协议,EtherCAT支持其对执行SERCOS规范设备的伺服控制及数据通信。因此为了运行在EtherCAT之上,SoE对SERCOS协议做了如下修正:

(1)取消MST,由EtherCAT分布时钟实现同步;

(2)SERCOS与EtherCAT通信阶段的对应,SERCOS协议的通信阶段与EtherCAT状态机不同,但是因后者是基础网络环境所以SoE中对前者的通信阶段进行了调整以适应后者的状态机。

2 EtherCAT通信协议架构

为了实现主从站之间的正常通信,主站的主要功能应该包括:

(1)根据读取的从站的设备描述文件ESI(EtherCAT Slave Information)构建主站的ENI(EtherCAT Network Information)文件,在主站中根据ENI中的信息配置从站;

(2)主从站之间的数据通信功能;

(3)支持SERCOS协议接口。

根据主站功能、原有的协议结构和对SoE的研究,设计了新的通信协议架构图,如图1所示。

图1 EtherCAT通信协议架构图

ECAT_Base:实现基本的EtherCAT原语操作。 主站发送读写原语到从站,从站可以直接读取报文中的信息或将信息写入报文中。原语的类型取决于读写操作和寻址方式(顺序寻址、设置寻址、广播寻址)。该模块实现最基本的通信功能,被其它各模块调用发送EtherCAT数据帧,而该模块调用底层网卡驱动实现数据帧的发送接收和确认。

ECAT_Main:核心功能模块,实现邮箱通信、从站状态、过程数据、EPROM和SII等功能。在这个模块中需要调用ECAT_Base模块来发送相应命令的数据帧来实现其不同的功能,该模块又被配置模块和SoE模块调用。

ECAT_SoE:实现SoE协议,主要用于过程数据数据MDT和AT的读写,实现SoE服务通道,用于非周期性数据交换,调用ECAT_Main中的邮箱通信实现IDN访问和伺服控制系统参数的配置。

ECAT_Config:完成从站的配置工作,根据ENI文件信息配置从站的一些寄存器、SM通道(物理起始地址和数据长度)、FMMU映射关系、从站状态机等。模块的最后要确保所有从站都到达运行状态。

3 EtherCAT通信协议的改进

通过对现有的EtherCAT通信协议进行分析研究,主要对ECAT_Config和ECAT_Base模块中的部分功能做了改进:

(1)从站设备描述文件解析

从站设备描述文件ESI是倍福公司制定的一种用于存储和描述从站设备配置信息的文件,采用XML格式。该文件包含从站设备基本信息、从站设备基本数据结构类型和从站对象字典描述三部分内容如表1所示,原有的协议中利用文档对象模型DOM(Document Object Model)解析从站设备描述文件,获得其中的主从站配置信息,根据读到的这些信息构建EtherCAT网络信息文件ENI,主站在链路启动阶段根据网络信息文件对从站进行初始化配置。但是由于我们的实验环境没有集成DOM解析 所以我们在此做了替换:首先部分信息是从EEPROM中读取的(厂商表示、设备信息、FMMU描述信息、SM描述信息等),但是还有一部分信息EEPROM 中没有存储则我们从XML文件中读取然后手动配置,如图2所示。

图2 输入输出映射的一些配置

从站设备供应商信息供应商ID、供应商名称Name分组信息设备描述信息设备信息设备标识、类型、名称、FMMU描述信息、SM描述信息等模块信息

(2)主站读取从站EEPROM中的信息

由于(1)中的原因主站要经常与EEPROM交互,但是由于读取EEPROM需要一定的时间,频繁的交互会使得主站浪费在EEPROM上的时间延迟变得所不能容忍,所以必须找到一种机制来快速读取EEPROM中的信息:通过在主站建立一个虚拟的cache,第一先把数据从EEPROM里读取到这个cache里面,然后以后每次再读取EEPROM中的数据就可以直接从这个虚拟的cache中读了,节省了好多时间。但是读cache前,先要确定数据是否在cache里面,利用bit映射来实现间接读取cache的算法:将cache中的数据建立位映射,每次来读取位映射数组中的内容便可知道cache里面是否有数据。如果cache为空则写一个请求给从站,请求大小与从站有关,返回值为所请求的byte,否则返回0xff。具体实现如图3所示,建立一个虚拟的cache:容量4k,分成128个单元,每个单元占32个字节。然后还需要一个与cache进行bit映射的映射数组Buf:分成128个单元,每个单元占32位。这样cache中的每32字节的内容由bit映射数组中的每32位来表示,bit映射数组中的每一个bit映射cache中的每一个字节,这样就可以通过对bit映射数组中的bit进行操作,就可以知道cache中有没有从EEPROM中读出数据了。

图3 bit映射关系图

(3)主站发送数据帧请求从站状态改变

EtherCAT状态机负责协调主站和从站应用程序在初始化阶段和运行阶段的状态关系。主站执行状态机控制,完成所有从站设备的初始化。从站状态的改变均是由主站使用设置寻址向从站发送请求数据帧请求从站状态转换,在原有的EtherCAT协议中状态机的状态转换请求数据帧发送函数是放在中断函数中的,这样在一个中短周期内发送一个数据帧,而接受一个数据帧check的时候只能等到下一个中断周期,这个时间间隔大约是20s。修改后把状态转换请求数据帧发送函数单独处理,整个时间间隔为数据帧发送时间加延迟时间,这个时间很短只有一两秒,极大地提高了效率。

4 实验

4.1 实验平台

实验平台由四部分组成:EtherCAT主站系统、EtherCAT从站、实时数据获取单元、离线数据分析单元。如图4所示。

图4 实验环境结构图

(1)EtherCAT系统

主站为高档数控国家工程研究中心开发的高档数控系统“GJ400”,EtherCAT主站以一个驱动模块的形式集成在该数控系统中。

(2)实时数据获取单元

实时数据获取单元采用的是福禄克(FLUKE)公司的OptiView XG网络分析仪,支持单独捕获上行和下行数据,并且可以将捕获的数据包转换为WinPCP格式,供离线数据处理单元进行数据分析。

(3)离线数据分析单元

离线数据分析单元是由PC机运行开源软件Wireshark实现的,在实验的最后,所有捕获的WinPCAP格式的实验数据都会交给离线数据单元进行处理和分析。

4.2 测试与结果分析

测试目的:运行如图 5所示的测试流程,通过使用抓包工具WireShark,抓取主站与从站之间通讯的数据包,分析主从站之间的通讯是否正常以及时延。根据打印的时间,利用图6所示的关系图,计算出接收时间和收发时间,

测试流程如下:

图5 测试用例流程

图6 时延关系图

时间点1:主站检查所有从站均达到运行状态后,发送过程数据之前的系统时间。

时间点2:主站将过程数据通过网卡发送出去之后的系统时间。

时间点3:主站接收到已发送数据帧的时间。

收发时间=时间点3-时间点1

接收时间=时间点3-时间点2

实验结果如图7和图8所示。

图7 Wireshark抓包部分结果图

图8 时间打印结果

实验分析:

(1)发送数据包中主站发送的报文经过从站时,读成功时WKC加1,写成功时加2,读写都成功时加3,如图所示。通过对数据包的分析证明:主站发送的数据已被从站接收,并且通过观察返回的数据报文信息没有出现任何的错误报文,可见通信的准确性非常高,主从站之间通信正常。

(2)根据图8的测试结果,在没有丢包的前提下测试结果如表2所示。

表2 收发时间的测量结果 单位:μs

由以上实验结果可知:SoE协议的时延与已经应用于实践的CoE协议时延相近,所以SoE协议可以实现主从站之间的实时通讯,而且通讯效率很高。

5 结束语

本文详细阐述了EtherCAT通信协议的内容以及在此基础上做的改进,搭建实验环境验证SoE的性能,与目前已经应用于实践的CoE协议性能作比较,证明了SoE协议也能很好的应用在数控系统中。多种方法实现EtherCAT应用层协议这将有利于EtherCAT技术在国内数控产品中的应用,使国内的伺服产品的开放性和实时性得到提高,促进了国内运动控制领域通信技术的发展。同时对进一步发展开放式数控,提高自身产品的竞争力,打破国外产品的垄断具有积极意义。

[1] 繆学勤.论六种实时以太网的通信协议[J].自动化仪表,2005,26(4):1-6.

[2] 郇极,刘艳强.工业以太网总线EtherCAT驱动程序设计及应用[M].北京:北京航空航天大学出版社,2010.

[3] 樊留群.实时以太网及运动控制总线技术[M].上海:同济大学出版社,2009.

[4] 马春敏,康存锋.基于Linux的EtherCAT主站的研究[J].制造业自动化,2006,33(4):78-82.

[5] 曹晶.EtherCAT从站设备的开发[D].武汉:武汉科技大学,2010.

[6] 张磊. 基于EtherCAT的主站通信控制器设计[D].广州:广东工业大学,2013.

[7] EtherLab.IgH EtherCAT Master 1.5.2 Documentation[EB/OL].2012.

[8] BeekhoffAutomationGmbH. EtherCAT_ET1200_Datasheet V1.7[EB/OL].2012.

[9] 谢香林.EtherCAT网络及伺服运动控制系统研究[D].大连:大连理工大学,2008.

[10] 李文虎.基于EtherCAT和CANopen技术的伺服驱动器工业以太网接口设计[D].武汉:华中科技大学,2011.

[11] 冯冬芹,金建祥,褚健.Ethernet与工业控制网络[J].仪器仪表学报,2003,24(1):23-26.

(编辑 李秀敏)

Research and Implementation of EtherCAT Master Protocol SoE

CHANG Yu-dong1,2,WANG Chao2,3

(1.Chinese Academy of Sciences,Beijing 100049,China; 2.Shenyang Institute of Computing Technology,Chinese Academy of Sciences,Shenyang 110168,China)

EtherCAT application layer protocol will be beneficial to improve the application of EtherCAT technology in the domestic numerical control products, so as to improve the openness and real-time performance of servo products. At present, CoE has been applied in practice and has achieved good results, so the paper presents the implementation of SoE protocol and application in the numerical control system. This paper first introduces the basic content of communication protocol, and then analyzes the existing EtherCAT protocol, and then analyzes the structure and performance of the EtherCAT protocol, and then verifies the improved protocol from two aspects: performance and function.

EtherCAT communication protocol; data frame;state machine;SoE protocol

1001-2265(2016)11-0005-04

10.13462/j.cnki.mmtamt.2016.11.002

2015-12-24

“高档数控机床与基础制造装备”国家科技重大专项航空发动机微孔冷加工超快激光数控机床(2014ZX04001041)

常玉冬(1991—),女,山东菏泽人,中国科学院沈阳计算技术研究所在读硕士,研究方向为软件工程,(E-mail)417135327@qq.com。

TH166;TG659

A

猜你喜欢

通信协议主站以太网
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
基于Wireshark的列控中心以太网通信协议解析器的研究与实现
基于S7-1200 PLC的DP总线通信技术在马里古伊那水电站泄洪冲沙孔门机上的应用
车载网络通信协议标准化问题研究
EtherCAT主站与主站通信协议的研究与实现*
多表远程集抄主站系统
谈实时以太网EtherCAT技术在变电站自动化中的应用
县级配电自动化主站系统的设计
电动汽车充电接口及通信协议新国标发布
浅谈EPON与工业以太网在贵遵高速公路中的应用