APP下载

工业实时以太网Ethernet POWERLINK 机制研究

2020-07-06张凯龙

自动化仪表 2020年6期
关键词:字典以太网数据包

赵 赛,张凯龙

(1.安徽广播电视大学信息与工程学院, 安徽 合肥 230601; 2.西北工业大学计算机学院, 陕西 西安 710072;3.陕西省嵌入式系统技术重点实验室, 陕西 西安 710072)

0 引言

随着计算机、控制、网络等技术的发展,工业控制网络从最初的计算机集成控制系统发展到集散控制系统,乃至现场总线控制系统,呈现出网络化、智能化特征。目前,CAN、DeviceNET、ModBus等多个现场总线协议已在不同领域得到应用。但由于不同现场总线都有专用的通信协议,使得不同总线产品间不能互联、互用、互操作。有的现场总线支持的设备有限,不利于系统的扩展。此外,各个现场总线标准制定商之间也无法达成统一。在这样的背景下,把以太网技术应用于工业控制领域,构成工业控制网络,已成为当前的主要研究方向[1]。

Ethernet POWERLINK(EPL)是一种基于标准以太网的、满足硬实时性的工业实时以太网,已经在工业网络控制中得到了广泛应用[2]。本文针对POWERLINK网络通信技术,对协议的原理、通信机制进行了分析与验证,并对网络的配置进行了介绍。

1 EPL通信规范

1.1 EPL的通信架构

EPL是一种实时以太网通信规范,其通信模型采用如图1所示的三层体系结构。其中,底层包括物理层(physicaol layer,PHY)和媒体访问控制(meduim access control,MAC)层,采用快速以太网标准IEEE802.3。中间层是POWERLINK规定的数据链路层,也是POWERLINK的核心部分。其在MAC层之上增加了实时调度机制,保证了通信的实时性和确定性。此层定义了新的网络传输机制,通过网络通信管理(network management,NMT)对POWERLINK的整个协议栈进行初始化、配置以及错误处理,从而保证网络通信的正常进行。顶层部分是POWERLINK的应用层,使用了CANopen协议标准,并对其进行了扩展,从而能够传输更大的数据[3]。

图1 EPL通信模型

1.2 EPL的实时机制

POWERLINK网络中有两类节点:管理节点(managing node,MN)和受控节点(controlled node,CN)。MN可以主动发送数据,而CN只有在MN授权的情况下才能进行数据发送。POWERLINK在数据链路层,使用了基于时分多路复用技术的时间槽通信网络管理(slot communication network management,SCNM)机制,向网络节点发送同步数据和异步数据分配时间槽,保证在用一时间段内只有一个节点可以占用网络媒介。这样既避免了网络冲突的发生、实现了无冲突的数据传输,又实现了确定性的实时通信[4]。

1.3 EPL的运动控制接口

CANopen是构建在CAN总线上的通信协议。在EPL协议的设计中,应用层借鉴了CANopen规范的设计[5],支持对设备参数的直接访问以及用来传输对时间要求很严格的过程数据[6-7]。对象字典是连接应用程序中运动控制数据和EPL协议栈之间的接口。EPL直接操作的是对象字典,设备的配置参数以及应用程序中的控制数据,必须和对象字典相关联,才能通过EPL协议栈进行传输,用来对设备进行实时控制。

对象字典是一个有序的对象组,每个入口即对象字典的条目都通过一个16位的索引和8位的子索引唯一确定。在EPL网络中,过程数据对象(process data object,PDO)用来传输运动控制中的实时数据,而服务数据对象(service data object,SDO)则用来传输非实时数据。SDO的操作比较简单,只需索引及子索引信息就可以对对象字典进行读写操作。PDO的传输则较为复杂,需要通信双方配置通信参数以及映射参数信息,才能进行实时控制信息的交互。

2 openPOWERLINK协议栈

2.1 openPOWERLINK的软件架构

openPOWERLINK软件逻辑架构如图2所示。

图2 openPOWERLINK软件逻辑架构

openPOWERLINK是EPL的一个软件实现。其设计基于事件驱动模型,使用了模块化的软件架构,以对象化的思想实现各个模块,从而易于软件移植到不同的平台。软件逻辑结构在实现上可以分为以下主要部分:工业控制应用(application,AP)、应用程序接口(application programing interface,API)、对象字典(object dictionary,OD)、通信抽象层(communication abstraction layer,CAL)、网络通信管理、数据链路层(data link layer,DLL)、共享缓冲区、以太网驱动、定时器模块。

在AP中,通过API提供的函数接口初始化以及启动协议栈,并进行工业控制应用开发。在对象字典的设计中,以静态方式分配内存,其构建使用结构体数组的方式,并设计成宏定义方便用户进行操作。AP中应用程序的实时数据通过和对象字典条目相关联,通过映射和通信参数的配置,作为PDO数据在PReq或者PRes帧中进行传输。AP中使用的设备属性参数以及需要传输的非实时数据,也需要使用对象字典进行存储,并通过SDO进行读写。CAL把软件架构划分为内核部分和用户部分,分别处理AP以及协议栈中优先级比较高的硬实时任务,并负责如SDO传输的低优先级任务。为了易于协议栈移植和优化到新的平台,CAL的设计放在了事件模型之后。位于CAL上面的是用户部分,下面的是内核部分。两者任务之间的通信被封装在了CAL中。对于AP中同步实时数据的发送,为了分配准确的高精度时间槽,必须使用高精度定时器;同时,触发协议状态机运行的定时事件,以及简单的超时检测,因精度要求不高而使用普通定时器。定时器也生成事件,存储在共享缓冲区里,用于触发状态机的运行。

在设计中,动态分配了两个单向循环队列作为共享缓冲区,分别用于存放协议栈内核部分和用户部分双向交互的事件。存放在共享缓冲区的事件,由线程调用相应的回调函数进行处理,驱动NMT状态机状态的转移,实现NMT网络管理,使网络启动和通信正常能够进行。协议栈中数据的收发通过DLL调用对应于数据属性的回调函数,对收发的数据进行处理。然后,通过以太网驱动实现网卡数据的收发。以太网驱动不能使用已有的网卡驱动模块,需要根据EPL提供的接口函数进行移植。另外,EPL中也可以使用虚拟以太网驱动,从而使UDP/IP堆栈可命名由其提供的接口,通过EPL网络发送数据,并且使SDO也可以通过UDP和IP进行封装传输。

2.2 openPOWERLINK周期轮询机制

网络通信分为三个阶段:同步阶段、异步阶段、空闲阶段[8]。其中,空闲阶段不作任何处理,只是等待本周期的结束,从而开始下一个通信周期。在网络通信中采用SCNM通信机制;对发送实时数据的节点,在同步阶段分配一个时间槽用于数据通信;非实时数据在异步阶段发送,可以用来作为MN对CN节点的身份、状态轮询,或者CN向MN申请获得权限进行异步数据的发送,并且只能有一个节点发送数据。

MN的循环周期机制如图3所示。

图3 MN的循环周期机制

CN的循环周期机制如图4所示。

图4 CN的循环周期机制

周期性通信的设计如下。

①使用高精度定时器计时,从而时间触发MN广播发送SoC。在网络中,只有SoC是时间触发的。所有CN接收到SoC后,开始准备自己的数据,并等待接收PReq,以获取时间槽。

②SoC的发送中断会产生对应的事件,触发启动定时器。其设置的时间为从SoC发送结束到第一个PReq开始发送之间的延迟,并且定时器超时会生成事件WaitSoCPReq。

③事件WaitSoCPReq的产生,将触发MN按照设置的CN顺序,单播发送PReq给第一个CN节点,从而CN被分配发送数据的时间槽。此时,MN等待回应信息Pres的发送,并启动定时器检测Pres的发送是否超时。

④CN接收到PReq后,立即广播发送Pres,然后等待接收SoA,即异步阶段的开始。如果设置了此节点和其他CN节点间有数据交互,等待期间也可以接收并处理网络上收到的Pres。MN在接收到Pres后,按照同样的方式对下一个CN节点分配时间槽进行数据发送。当MN接收到最后一个Pres后,开始发送SoA,从而通信就开始进入异步阶段。

⑤进入异步阶段后,CN节点就开始等待接收SoC,即等待同步阶段的开始。等待期间可以收发异步数据。如果有异步数据发送,那么MN就等待数据帧ASnd的发出,然后等待下一周期的开始,执行步骤①;否则,直接等待下一个周期的开始,执行步骤①。

3 应用原型设计与验证

目前,自动化控制系统要求集中式和分布式的统一。这就要求控制网络具有高速度、实时控制、交叉通信和自由拓扑等特性[9]。EPL作为一种实时以太网完全满足这些要求,并且对硬件没有特殊要求,可以适用于任何以太网硬件。因此,EPL得到了广泛的应用。

3.1 试验设计与协议栈配置

在试验室环境下,使用三个现场可编程门阵列(field programmable gate array,FPGA)设备和一台计算机来模拟三轴控制通信,并以LED灯的闪烁作为三轴控制电机运动的模拟效果。其中,计算机运行在打过实时补丁的linux系统下,作为管理节点MN,并使用wireshark软件抓取通信数据包;FPGA设备作为3个受控节点CN,模拟控制电机的3个轴。由于集线器所产生的传输延迟是纳秒级别,对EPL通信的实时性影响可以忽略不计[10],所以计算机、FPGA之间采用集线器进行连接。

openPOWERLINK中,结构体struct tEplApiInitParam包含了协议栈初始化所需要的信息,在应用程序中根据需求进行设置。协议栈参数配置如表1所示。

表1 协议栈参数配置

表1列出了4个重要的参数配置。在试验中,MN和CN之间的通信数据作为控制信息和反馈信息,并通过LED灯的闪烁模拟实际工业应用中的控制。因此,在试验中需要执行的操作有:定义对象字典;把变量链接到定义的对象;事件回调函数中各个事件发生时用户的操作;同步回调函数中的应用操作,在此函数中,当节点发送或者接收到SoC时,把数据转化为相应的控制信息。

3.2 网络的启动过程

为了观察网络通信细节,计算机上的wireshark软件获取了EPL数据包。以CN1为例,网路启动时主要数据包如表2所示。

表2 网路启动时主要数据包(以CN1为例)

以下根据openPOWERLINK协议栈,并结合这些数据包,总结MN引导CN的启动过程。

在网路的通信中,节点的启动过程是非常重要的。所有节点启动时,将根据NMT状态机执行相应的任务。然后,根据配置的ID,选择MN或CN,并分别进入状态NMT_MS_NOT_ACTIVE和NMT_CS_NOT_ACTIVE。最后,MN执行整个状态机管理工作,引导CN的启动。根据表2进行分析,可得出在网络初始化时,MN引导CN的启动过程如下。

①MN监听网络,若在规定时间内收到SoC或SoA,则说明网络上已经存在一个MN,而此MN把错误信息上传给应用层;否则,进入NMT_MS_PRE_OPERATIONAL_1状态。在此状态下,执行的是一个缩减的周期,即只有正常周期的异步阶段。MN向网络发出若干个SoA帧,从而触发网络上的CN进入NMT_CS_PRE_OPERATIONAL_1状态。

②MN使用命令NMTResetNode复位所有CN,随后执行BOOT_STEP1过程:通过IdentRequest和IdentResponse帧,把CN的设备类型与MN里存储的CN信息进行核对;检查和更新CN的软件版本以及配置信息。此过程经过一系列的SoA和SDO实现。然后,MN进入NMT_MS_PRE_OPERATIONAL_2状态,并且开始启动EPL的完整周期。

③MN发送的SoC帧,触发CN进入状态NMT_CS_PRE_OPERATIONAL_2。MN执行BOOT_STEP2过程:通过StatusRequest 和StatusResponse,验证所有的CN是否已经位于NMT_MS_PRE_OPERATIONAL_2状态;使用NMT命令NMTEnableReadyToOperate,使所有的CN进入状态NMT_CS_READY_TO_OPERATE。然后,MN进入状态NMT_MS_READY_TO_OPERATE。

④执行CHECK_COMMUNICATION过程:MN发送PReq帧对CN进行轮询,检测CN是否能够在规定的时间内应答Pres帧,以及PRes帧是否符合要求。如果检测结果正确,MN会进入NMT_MS_OPERATIONAL状态。

⑤执行START过程:MN发送NMT命令NMTStartNode,使CN进入NMT_CS_OPERATIONAL状态。当所有的CN都已进入NMT_CS_OPERATIONAL状态后,就开始正常的数据交互。

3.3 试验结果分析

在网络进入正常的通信后,可以看到从站CN的LED灯,在MN的控制下周期性地闪烁。EPL正常通信周期数据包如表3所示。

表3 EPL正常通信周期数据包

表3是提取的一个周期的数据包信息。可以看到,这和2.2节描述的通信过程一致。EPL周期的大小,即相邻两个SoC之间的时间差,在10 000次的连续周期统计中,周期是1 000 μs的所占比例是48.18%、周期是999 μs的所占比例是19.09%、周期是1 001 μs的所占比例是16.36%、其他的所占比例是16.37%。该结果符合均值是1 000 μs的正态分布,与表1中的配置1 000 μs基本一致,并且抖动只有5 μs,能够满足工业中确定性的要求。通过分析还可发现,SoC帧只是保证了各个CN进行采样的同步,从而在应用中需要采取插补方法,才能保证CN处理和输出的同步。另外,通信周期大小以及数据帧响应的最大超时限制,都会对EPL的实时性能产生影响。因此,需要根据具体应用需求进行验证设置。

4 结论

EPL能够很好地满足工业实时以太网的实时性和确定性需求,在国内外工业实时控制中得到了应用。本文基于EPL网络和FPGA平台进行通信,模拟了工业中的三轴电机控制。通过分析wireshark数据包,对EPL的通信机制进行了分析与验证。试验结果表明,该通信机制能够很好地满足工业控制的实时性和确定性需求。

猜你喜欢

字典以太网数据包
二维隐蔽时间信道构建的研究*
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
字典的由来
C#串口高效可靠的接收方案设计
大头熊的字典
三大因素驱动创新提速以太网快步迈入“灵活”时代
谈实时以太网EtherCAT技术在变电站自动化中的应用
正版字典
基于ENC28J60的嵌入式以太网/CAN网关设计