EtherCAT无线网关设计与实现
2018-12-28钱秋阳曹广忠彭业萍钟祥永
钱秋阳,曹广忠,彭业萍,钟祥永
(1.深圳大学机电与控制工程学院,广东 深圳 518060;2.深圳电磁控制重点试验室,广东 深圳 518060)
0 引言
EtherCAT是一种实时工业以太网总线技术,它充分利用了以太网的全双工特性,采用主从通信模式。这种模式提高了总线通信的高效性以及实时性。因此,EtherCAT总线在工业上的应用越来越广泛[1]。
然而,工业现场危险性高、环境恶劣且工况复杂,一旦机器出现问题,需要花费大量的时间和人力成本。为满足工业现场作业需求,无线监控技术得到引入并快速发展,但现有的无线监控方式大多针对小数据量的采集展开研究,无法满足大数据背景下的工程应用需求[2-8]。
本文在EtherCAT总线的分布式多传感器数据采集解决方案的基础上,设计了基于EtherCAT总线的无线网关(下文简称为无线网关),实现了将总线数据无线传输至服务器,为EtherCAT总线的延伸和扩展提供了一种有效、快捷的技术。
1 无线网关接入EtherCAT总线方案
EtherCAT支持总线形、树形和星形等诸多类型的网络拓扑结构。EtherCAT无线通信网络如图1所示。本文选用线形拓扑结构作为EtherCAT总线网络的连接方式,将无线网关接入EtherCAT总线的末端。其目的在于:在危险性高、环境恶劣的一些工业制造现场,减少大量的线缆布置[9-12]。无线网关实质上是具有WiFi无线通信功能的EtherCAT复杂从站,在物理结构上由EtherCAT从站以及WiFi模块组成。WiFi模块与EtherCAT从站之间使用RS-485通信接口进行串行通信。基于这种实现方式,无线网关既具有EtherCAT从站总线通信功能,又具有接入无线网络以及无线通信功能。
图1 EtherCAT无线通信网络
通信过程由EtherCAT主站控制,即主站为通信的发起者[13-14]。通信开始,主站获取从站发送的数据,并通过总线将数据发送至无线网关;无线网关完成由EtherCAT协议报文向WiFi所支持的协议报文转换。报文通过WiFi无线传输至无线路由,经无线路由转发至Web服务器。上述通信过程可实现EtherCAT总线数据的无线通信和无线监控。
2 EtherCAT与WiFi协议转换模型
参考开放系统互联(open system interconnection,OSI)理想模型,EtherCAT 协议分为物理层(PHY)、数据链路层和应用层。物理层遵循IEEE 802.3标准规定的通信物理传输接口及传输介质。数据链路层包含EtherCAT 媒体介质访问控制(EtherCAT MAC)、邮箱通信(Mailbox)以及过程数据通信(Process Data)三种通信过程。邮箱通信用于EtherCAT主站同步从站信息配置;过程数据通信用于主站与从站之间的数据高速交互。应用层定义EtherCAT通信协议逻辑控制与数据交互的接口。该层协议包括EoE、FoE、SoE以及CoE等[15-16]。本文使用CoE(CANOpen)协议作为EtherCAT从站的应用层协议。
WiFi通信协议遵循IEEE 802.11标准规定的物理层和数据链路层。数据链路层由媒体介质访问控制(MAC)和逻辑链路控制(LLC)实现寻址、组帧等功能[17]。应用层定义通信数据的接口。本文使用超文本传输协议(HTTP)作为WiFi协议的应用层协议。
图2 协议转换参考模型
无线网关实现协议转换的数据流整体过程是主站(EtherCAT master)发送EtherCAT报文,无线网关(wireless gateway)接收报文,无线网关执行协议转换流程,完成数据报文由EtherCAT协议应用层到WiFi协议应用层转换。协议转换具体流程是将EtherCAT报文从EtherCAT协议物理层开始,经过数据链路层,在应用层完成 EtherCAT协议的报文解析后,将主站发送的数据以14 B为一帧的格式封装。以WiFi协议应用层为起始点,数据经由LLC层及MAC层,打包封装成WiFi报文,通过物理层介质经无线路由传输至Web服务器中。
3 无线网关设计
3.1 无线网关的硬件设计
无线网关的硬件主要包括EtherCAT从站和WiFi模块。本文选用美国德州仪器公司的AM3359 ICE开发板硬件作为EtherCAT从站。无线网关硬件结构如图3所示。
图3 无线网关硬件结构图
AM3359 ICE开发板采用具有工业通信功能的ARM微处理器AM3359与数据收发芯片TLK110 硬件连接电路,实现EtherCAT从站总线通信。AM3359 ICE开发板具有RJ45、RS-485等工业通信接口。主控芯片AM3359 微处理器是ARM Cortex-A8处理器内核 (ARM Core),片内具有可编程实时及工业通信子系统单元 (programmable real-time unit and industrial communication subsystem,PRU-ICSS) 及通用异步收发传输器(universal asynchronous receiver/transmitter,UART)等工业通信外设。由于PRU-ICSS单元与ARM内核共享一段特定的内存地址,该方式可简化EtherCAT从站通信实现过程。因此,本文采用PRU-ICSS单元实现EtherCAT从站通信。
WiFi模块选用具有RS-485通信接口和WiFi通信功能的嵌入式模块来实现WiFi通信功能。该模块支持802.11 b/g/n协议标准,无线网关的通过网页来配置。AM3359 ICE开发板与WiFi模块以RS-485作为通信接口,并通过UART建立通信。
3.2 无线网关的软件设计
软件分层结构如图4所示。无线网关软件程序包含任务层、协议层与驱动层。为实现数据格式的转换,各层分别提供数据交互接口的定义。
图4 软件分层结构图
驱动层为AM3359外设硬件控制程序,包含PRU-ICSS驱动和UART串行通信驱动。PRU-ICSS驱动程序实现PRU-ICSS寄存器配置和缓存读写功能。UART驱动定义了串行通信的发送与接收接口,实现了以帧为最小单位的串行通信功能。协议层包含EtherCAT从站协议栈。该协议栈实现EtherCAT通信协议的数据链路层和应用层功能。
任务层完成EtherCAT数据解码与数据组帧任务:在EtherCAT数据解码任务中,本文设计从站的输入/输出的数据位宽为32位,即EtherCAT通信数据字节长度为32位。通过主站数据编码,规定高12位为数据编号值、低12位为数据值、中间8位为数据名。数据流由驱动层到达任务层时,即EtherCAT从站接收并解析主站发送的数据后,EtherCAT数据解码任务对32位数据进行解码。数据解码流程如图5所示。
图5 数据解码流程图
解码后的值分别存入一个包含三个元素的结构体中。三个元素分别代表数据编号、数据名称、数据对应的数值大小。在数据组帧任务中,由于本文采用的UART串行通信的发送格式以ASCII码为基本单元,所以在结构体中的三元素均转换为ASCII码后,执行数据组帧任务。数据帧格式如图6所示。数据帧包含数据编号、编号值、数据名称以及数据数值内容。图6中:“=”为编号名、数据名和分别与其对应的编号值、数值之间的连接符; “&”为编号值和数据名之间的连接符。
图6 数据帧格式
本文通过网页配置 WiFi模块的工作模式及通信方式,将WiFi模块的工作模式设置为STA无线网络终端模式,通信方式为Client模式,通信协议为HTTP协议。
4 无线网关数据传输试验
无线网关数据传输试验是以EtherCAT总线网络为基础实现的。试验设备主要由主站、1#从站以及无线网关构成;无线网关由AM3359 ICE开发板与WiFi模块连接组成。无线网关连接在总线的末端,与伺服驱动器及工业控制计算机共同组成通信网络。
主站是工业控制计算机,采用此计算机中的TwinCAT软件实现数据传输的控制。TwinCAT软件是由德国倍福(BECKHOFF)公司开发的、基于Windows系统的自动化PLC控制软件。1#从站是一个具有EtherCAT从站通信功能的伺服驱动器。本文选用德国BECKHOFF公司制造的、具有EtherCAT通信功能的伺服驱动器AX5000系列作为1#从站。
数据传输的主要流程如下。①主站通过EtherCAT总线发送数据采集指令给从站1#。②从站1#执行获取伺服驱动器以及电机的传感器数据的操作,获取电机电压数值、电机三相交流电流数值、电机转速和电机位置等数据后,将此数据打包发送给主站。③主站接收从站1#的数据后,对数据进行编码、打包并转发给无线网关;无线网关接收到主站发送的报文,将EtherCAT报文转换为WiFi报文,通过WiFi协议将数据传输至Web服务器。
4.1 主站PLC程序
在实现主站可编程逻辑控制器(programmable logic controller,PLC)程序之前,首先需要将从站配置文件导入TwinCAT中。本文使用德州仪器公司的从站配置文件(EtherCAT slave informmation,ESI)。当TwinCAT软件获取从站信息时,该软件会显示从站固定数据位宽为32位的输入/输出变量信息,将从站的输入/输出变量与定义的PLC变量关联。其中,对于PLC程序变量的赋值或取值的操作等同于主站发送和接收数据的操作。
PLC程序采用结构化文本语言(stracture text,ST)进行编程,主要以功能块的形式实现如下两个功能:其一为伺服驱动器内的传感器数据与电机内的传感器数据的获取,其二为待发送数据编码过程及编码后数据的发送。PLC程序流程如图7所示。通过程序功能块使能电机,获取电流、电压、电机温度等数据,并实现数据编号以及数据编码,最终将编码后的数据赋值给PLC发送变量,以实现数据发送。
图7 PLC程序流程图
4.2 通信试验
本文设计通信试验,将伺服驱动器采集的电机交流电电流、直流母线电压、电机温度等数据通过EtherCAT总线网络发送至无线网关,并通过WiFi网络将数据发送至Web服务器端,从而实现在Web服务器上远程观测电机状态以及伺服驱动器电流的动态变化。
本文为验证通信试验数据传输的完整性,作出如下定义。首先,定义如图6所示的通信数据帧格式,用于无线网关WiFi数据传输。设定数据编号名为字符 ‘T’,每帧数据的数据编号对应为0000、0001、0002、0003、0004。然后,定义数据名称:AA为直流母线电压,AB为U相电流,AC为V相电流,AD为W相电流、AE为电机温度。本文定义的一组伺服驱动器包括在流母线电压,通过电机的互相交流电流以及电机的温度值。
经通信试验,网页服务器接收到的完整数据中,每组均包含五帧通信数据,且数据编号完整。综上可验证数据传输的完整性,即传输过程无数据丢失。
5 结束语
本文针对工业现场的远程监控问题,研究并设计了具有将EtherCAT协议报文转换为WiFi协议报文功能的网关。经通信试验验证,无线网关能够准确解码,由WiFi将EtherCAT报文中的数据传输至Web服务器,并通过网页显示出数据。该网关的研究与设计将EtherCAT网络和WiFi网络融合,为工业现场的远程监控的实现提供了一种新方法。