EtherCAT与Modbus协议转换网关的设计及实现*
2015-11-03唐小琦
徐 健,宋 宝,唐小琦
(华中科技大学机械科学与工程学院,武汉430074)
EtherCAT与Modbus协议转换网关的设计及实现*
徐 健,宋 宝,唐小琦
(华中科技大学机械科学与工程学院,武汉430074)
为解决工业应用中不同现场总线协议设备之间不能进行互联互通的问题,首先深入研究了EtherCAT和Modbus两种现场总线协议通信的原理以及运行机制,分析并阐述了基于对象字典映射方法的协议转换网关实现的原理,然后设计了基于“STM32+FPGA”架构的协议网关实现的软硬件方案,并搭建实验平台进行标准协议设备的实验测试,实验结果表明,该网关实现了EtherCAT标准设备与Modbus标准设备通信,从而实现了两种网络协议的转换功能。
EtherCAT;Modbus;网关;协议转换
0 引言
随着现场总线技术在工业自动化领域获得的广泛应用,各种各样的总线协议也层出不穷,根据IEC61158第四版国际标准,已有20种现场总线协议成为国际标准[1-2]。常用的现场总线协议有Ether-CAT、Profinet、Powerlink和Modbus等,由于不同厂商支持的协议标准不同导致了不同设备协议之间的互不兼容性,不能进行互联互通,造成不同协议的机床设备不能成套应用的困境。
本文针对实时工业以太网协议EtherCAT和标准串行协议Modbus RTU进行了深入的研究,并设计和实现了一种EtherCAT与Modbus协议转换网关的软硬件方案,解决了EtherCAT标准设备与Modbus标准设备集成在一个现场总线网络中进行互联互通的问题。
1 EtherCAT与M odbus通信原理
1.1 EtherCAT通信原理
EtherCAT是一种应用于工业自动化领域的实时工业以太网通信技术[3]。它具有广泛的适用性,完全符合以太网标准、高效率、刷新周期短和同步性能好等特点。
EtherCAT采用的是主从模式的介质访问控制[4],如图1所示,主站发送标准以太网集总帧给第一个从站,然后由第一个从站抽取或者插入有效数据,依次经过各个从站进行相应的操作,由最后一个从站返回数据帧给主站进行处理。其中,经过每个从站采用的是非常低延时的飞读飞写的方式,极大程度上缩短了最小循环周期。
图1 EtherCAT运行原理
EtherCAT支持的应用层协议有CANopen和SERCOS,直接面向控制任务,为应用程序提供了操作对象的标准协议控制。其次,EtherCAT支持高精度的分布时钟,可以同时控制各个设备的同步运动,保证了多轴运动控制的严格实时同步性[5],达到了数控系统中高精度的同步运动控制要求。
1.2 Modbus通信原理
Modbus是一项应用层报文传输协议,可以基于以太网、光纤和串口等物理层来实现Modbus协议。由于其具有标准开放、支持多种电气接口以及帧格式简单紧凑等特点,广泛应用于各种类型的总线控制当中[6]。
Modbus采用的是请求/应答的方式进行主从通信,并且提供了功能码所规定的服务,标准的Modbus协议支持公共功能码和用户自定义功能码[7],其运行原理如图2所示。Modbus主站通过向相应物理地址的从站或者广播的方式来发送相应的控制信息进行总线数据的交互,采用的是一对多的物理连接方式,其实质通信为主从一对一或者广播模式的通信过程。
图2 Modbus运行原理
2 协议转换网关实现的方法
EtherCAT协议与Modbus协议进行协议转换的关键是在于对有效数据的封装以及调度上的改变,对于EtherCAT网络中的数据在经过网关之后则变为Modbus网络中的有效数据,反之则是同样的过程[8-11]。因此,所设计的协议转换网关的实质为不同网络中共享的有效数据的相互映射的过程,其运行原理如图3所示。
图3 协议转换网关实现方法
基于这个设计的原理,协议转换网关的软硬件方案不仅仅要能够同时兼容EtherCAT和Modbus两种通信网络,同时也要在软件中建立数据映射对象字典来建立两种通信网络的转换关系。
3 协议转换网关硬件设计
针对EtherCAT和Modbus协议转换的需求分析可以知道,EtherCAT协议进行飞读飞写处理时需要专用的ASIC芯片或者可编程逻辑器件的硬件来实现,其次对于协议转换也需要一块MCU来进行协议转换的整体处理。因此,本文采用的是Altera公司生产的EP2C 8T144C8N的FPGA和ST公司生产的STM32F103ZET6这两块通用芯片来实现协议转换的功能,具体硬件结构如图4所示。
图4 协议转换网关硬件设计
EtherCAT通信网络经由RJ45工业以太网接口到以太网处理芯片PHY,最后到FPGA内部进行协议的处理和转发。FPGA处理高速百兆以太网的飞读飞写操作,用来处理EtherCAT协议的数据链路层。ARM通过FMSC总线访问FPGA内的缓存区,并通过驱动程序处理EtherCAT通信应用层协议,同时,ARM利用内部集成的串口进行Modbus协议的通信过程,因此,ARM通过内部数据字典映射的方式来进行EtherCAT协议与Modbus协议之间的有效数据转换。
对于处理高速的EtherCAT飞读飞写操作的硬件FPGA设计参照专用ASIC芯片的设计,如图5所示,用来实现数据链路层协议,并为从站MCU提供有效数据接口。其中包括EtherCAT数据帧处理单元、现场总线内存管理单元FMMU、储存同步单元SM、MCU接口单元以及高精度分布时钟单元等。
图5 协议转换网关的FPGA整体设计
其中,EtherCAT数据帧处理单元如图6所示,核心为数据区处理模块,其作用是根据不同的系统当前的状态以及配置信息自动低延时地转发网络信号,并进行数据的上传和下载操作,同时对读到的原有的数据帧rxd[1..0]进行CRC的校验,并且动态地计算插入数据后的新的CRC32的值,由数据帧txd[1..0]发送出去。当然如果对于原有数据帧的CRC校验错误则会自动丢弃该数据。
图6 EtherCAT数据帧处理单元
4 协议转换网关软件设计
根据协议转换网关的软件设计方案,可以将软件处理进行具体的功能模块的划分,包括Modbus协议的处理、EtherCAT应用程序驱动处理和协议转换网关调度的处理等三个功能模块。
其中,软件实现的Modbus通信协议的处理流程如图7所示。在系统上电后,会进行Modbus总线的初始化过程,包括波特率、校验位等基本通信参数的配置;在初始化成功之后,协议流程会进入等待上位机系统指令的状态,若无指令则一直处于等待的状态,直到系统指令到达时,会根据不同的功能码类型对指令数据进行封装发送出去并启动定时器等待Modbus通信对象的响应数据帧;最后,在规定定时器时间内接收到返回数据帧并响应正确的话则会进入下一循环,反之则会重新发送数据帧命令的操作。
图7 Modbus协议处理流程
对于EtherCAT驱动程序处理和协议转换网关整体处理的软件设计如图8所示,在硬件FPGA处理了高速飞读飞写的数据后产生给MCU的外部中断,软件流程响应外部中断进行EtherCAT响应数据的驱动程序的处理以及有效数据的操作,之后,交由网关模块进行有效数据的映射以及调度处理控制Modbus总线协议软件处理流程,完成EtherCAT与Modbus协议转换的功能。
图8 EtherCAT驱动程序以及网关处理流程
5 系统集成测试及结果
本文的实验平台标准的EtherCAT伺服单元采用的是倍福公司的AX5206交流伺服驱动单元,标准的Modbus通信单元采用的是富士公司的FRN2.2G1S-4C变频器,利用“X86工控机+EtherCAT协议卡”主站构建标准的EtherCAT通信网络,然后利用“STM32+FPGA”的伺服平台硬件实现了Modbus通信协议转换的网关功能,具体实验图如图9所示。
图9 实验测试图
利用如图所示的连线,对系统进行集成测试时,首先经过初始化过程,其中包括EtherCAT总线初始化、Modbus总线初始化和建立对象字典映射三个部分;正常运行状态下,数据经由EtherCAT主站到协议转换网关,再到Modbus通信网络中。
如图10所示,为协议转换网关的仿真测试图,由图中可以看出,协议网关处于正常运行的状态,对速度指令值的仿真中可以看出两种总线中的数据保持一致。
图10 测试仿真图
对上位机发出指令给各个轴不同的速度指令数据进行测试,从0~1400rpm进行缓慢加速试验,记录数据如表1所示,可以看到,网关显示的EtherCAT网络中的数据与变频器显示的Modbus网络中的数据保持一致,由于操作位数以及数码管显示的原因,显示误差保持在0.1rpm以内,实质上有效数据完全满足网络运动控制中的要求。
表1 网关转换数据记录表 单位:rpm
6 结束语
本文在深入分析了EtherCAT和Modbus两种现场总线协议的基础上,提出了基于“STM32+FPGA”架构的协议转换网关的软硬件方案,方便快捷地实现了不同现场总线网络的互联互通,实验达到了令人满意的效果,给现场总线网关的设计提供了一个很好的解决方案。
[1]梅恪,沈璞.关于总线国际标准IEC61158的研究报告[J].仪器仪表标准化与计量,2003(2):30-34.
[2]缪学勤.解读IEC61158第四版现场总线标准[J].仪器仪表标准化与计量,2007(3):1-4.
[3]郇极,刘艳强.工业以太网现场总线EtherCAT驱动程序设计及应用[M].北京:北京航空航天大学出版社,2010.
[4]单春荣,刘艳强,郇极.工业以太网现场总线EtherCAT及驱动程序设计[J].制造业自动化,2007(11):79-82.
[5]Cena G,Bertolotti IC,Scanzio S,et al.Evaluation of EtherCAT distributed clock performance[J].Industrial Informatics,IEEE Transactions on,2012,8(1):20-29.
[6]刘锋.基于ModBus的现场总线控制系统研究与设计[D].重庆:重庆大学,2007.
[7]张桂,金国强,李辉.基于ARM平台Modbus RTU协议的研究与实现[J].电力科学与工程,2011,27(1):23-27.
[8]Kunes M,Sauter T.Fieldbus-internet connectivity:the SNMP approach[J].Industrial Electronics,IEEE Transactions on,2001,48(6):1248-1256.
[9]黄岩峰,张军凯,谢灿华,等.基于ARM技术的Ether-CAT与Modbus/TCP协议转换卡设计[J].智能建筑与城市信息,2012(6):67-70.
[10]陈明,宋宝,唐小琦.基于DSP和FPGA的网络转换网关[J].计算机应用,2011,31(10):2617-2620.
[11]Song K W,Choi G S.Fieldbus based distributed servo control using LonWorks/IP gateway/web servers[J]. Mechatronics,2010,20(3):415-423.
(编辑 赵蓉)
Designand Implementation of the Protocol Conversion Gateway between EtherCAT and Modbus
XU Jian,SONG Bao,TANG Xiao-qi
(School of Mechanical Science and Engineering,HuaZhong University of Science and Technology,Wuhan 430074,China)
To solve the interoperability problem of different fieldbus protocol equipment for industrial applications,firstly,this paper studies deeply the principles and operating mechanism of two kinds of fieldbus protocols which are EtherCAT and Modbus,analyzes and explains the principle of the implementation of protocol conversion gateway which is based on object dictionary mapping method,and then designs protocol gateway’s hardware and software solutions based on"STM 32+FPGA"architecture.Furthermore,a platform is built for experimental testing standard protocol equipment.The experimental results show that the protocol conversion gateway can achieve the communication between EtherCAT standard equipment and Modbus standard equipment,which has realized the conversion function between two networks.
EtherCAT;Modbus;gateway;protocol conversion
TH166;TG506
A
1001-2265(2015)04-0071-03 DOI:10.13462/j.cnki.mmtamt.2015.04.018
2014-07-01;
2014-07-17
"高档数控机床与基础制造装备"科技重大专项(2012ZX04001012);国家科技支撑计划(2012BAF13B01);广东省部产学研重大专项(2012A090300012)
徐健(1992—),男,江西宜春人,华中科技大学硕士研究生,研究方向为数控技术、现场总线及网络,(E-mail)xujian0935@163.com。