基于ISA100.11a 工业物联网的中间件设计与实现

2015-04-01 01:02支亚军张建奇
自动化仪表 2015年12期
关键词:中间件网关数据包

支亚军 张建奇 杨 宁

(西安航天自动化股份有限公司1,陕西 西安 710065;西安邮电大学自动化学院2,陕西 西安 710061)

0 引言

目前,在传统的工业网络基础上融合互联网、无线传感器网络以及现场总线网络等异构网络,将具有环境感知能力的各种终端、云计算模式、移动通信、实时通信等不断融入工业生产的各个环节的网络统称为工业物联网。工业物联网成为研究和发展的新方向[1]。针对工业无线传感网络部分,国际主流的协议有三种,分别是ISA100.11a[2]、Wireless HART 和WIA-PA。

ISA100.11a 是第一个开放的、面向多种工业应用的标准[3],其主要特征为:提供过程工业应用服务,包括工厂自动化;提供等级1(非关键)到等级5 的应用;跳信道的方式支持共存和增加可靠性;提供本地和隧道协议,以实现广泛的可用性;现场设备具有支持网状和星型结构的能力。然而,该协议未对网络实时监控、过程控制协议方面进行规定和描述。如果不同厂商采用私有协议来设计网关和Web 服务之间的通信[4],通用性和可移植性较差,并且难以维护,不利于产品推广和网络升级。

针对以上问题,本文设计了介于网关和Web 服务之间的中间件系统,不仅使服务接口标准化,而且增强了监控和管理的Web 系统的通用性和可移植性,有利于产品维护升级和广泛应用部署。

1 系统拓扑结构

ISA100.11a 标准中对无线网络和网关有详细的描述,但没有对工业现场网络监控管理功能做规范要求,仅仅规范了网关服务接入点(gateway service access point,GSAP)的接口要求。根据标准中GSAP 的内容描述,文章提出了符合该接口信息的中间件系统方案。中间件逻辑位置介于网关和Web 服务器之间,是用户进行Web 访问的关键部分。图1 描述了系统网络拓扑结构。

图1 中虚线框内为符合ISA100.11a 标准的网络系统。现场终端设备通过骨干路由设备与网关设备连接,实现ISA100.11a 传感网部分功能。网关设备和中间件模块可通过不同硬件设备部署,也可以作为一体机部署在同一个硬件设备上。中间件通过以太网接口将数据包发送给网关设备,网关设备将符合ISA100.11a 标准的信息以IP 数据包的形式发送给中间件,中间件接收解析网络数据包,并保存于数据库中。Web服务器通过访问数据库来获取ISA100.11a 的网络运行状态和设备信息;用户通过访问Web 服务器来达到监控和管理网络及设备目的。

图1 系统网络拓扑Fig.1 Network topology of the system

2 中间件设计

2.1 结构流程

中间件为Web 服务器的访问提供数据服务和管理服务的功能,其体系结构如图2 所示。

图2 中间件的体系结构Fig.2 Architecture of the middleware

系统内部结构包括:请求命令生成模块、响应命令处理模块、网关侧接口模块、数据库访问接口和数据库。其中,请求命令生成模块主要负责从数据库读取预配置的命令,创建命令以及添加命令参数,调用网关侧接口将命令发送给网关。响应命令处理模块主要负责解析从网关接收到的响应数据,调用数据库访问接口将数据写入数据库。网关侧接口模块主要负责与网关设备建立TCP 连接,将消息封装成IP 数据包格式,通过Socket机制发送给网关,并接收解析来自网关的数据包。数据库访问接口模块主要负责对数据库进行读写操作,包括更新数据库中的信息以及从数据库读取命令。中间件系统启动后,请求命令生成模块从数据库获取预配置命令并添加到周期业务列表中,通过查找周期业务列表获取周期性业务,然后创建命令并将命令发送到网关,等待接收响应帧。当网关侧接口模块接收并解析数据包后,送给响应命令处理模块进行解析,最后调用数据库访问接口模块将数据写入数据库的对应表中,完成一次周期命令的执行过程。根据周期业务列表循环判断是否还有未执行的请求业务,如果有则继续执行该流程,否则完成本次所有请求业务。中间件的业务处理流程如图3 所示。

图3 中间件业务处理流程Fig.3 The business process flow of middleware

2.2 数据库描述

中间件的业务处理过程需要与数据库进行交互,包括请求命令生成和响应命令处理两个过程。其中,请求命令生成过程为:请求命令生成模块调用数据库访问接口模块与数据库建立连接,并读取数据库中的预配置命令,之后再执行读取的预配置命令,进行命令请求的创建过程。响应命令处理过程为:响应命令处理模块解析完成响应数据后,通过调用数据库访问接口模块与数据库建立连接,并将响应数据写入数据库的表中。

数据库中表的类型以及内容按照ISA100.11a 协议中网关的GSAP 接口信息来设计,为Web 服务器应用提供实时准确的网络信息。数据库的实现采用MySQL 数据库,数据库访问接口模块通过MySQL 命令来访问。数据库的表与网关服务原语的信息映射,把通过网关服务原语的关于网络设备的信息存储到数据库不同的表中,最终为Web 用户提供实时可靠的网络信息。

数据库中的表按照功能分为三类:命令类表、设备信息表和网络信息表。命令类表主要存储Web 应用的请求和配置命令,并记录命令的执行结果。设备信息表主要存储ISA100.11a 网络中各设备的信息,包括设备属性、设备信道、设备连接状态、设备调度信息和设备采集信息。网络信息表主要存储ISA100.11a 网络的属性和信息,包括网络分配的所有Contract 信息、网络健康报告信息、网络路由信息和网络拓扑信息。数据库中表的条目及内容的描述如表1 所示。

表1 数据库表条目及内容描述Tab.1 Database table entries and content description

2.3 与网关设备通信

根据ISA100.11a 标准的描述,网关要具备为外部Host-Level 应用提供GSAP 接口的功能。中间件通过与网关的GSAP 模块进行通信来提供数据服务和管理服务,包括请求命令处理和响应命令处理两个过程。请求命令处理过程:请求命令生成模块创建命令请求后调用网关侧接口模块,网关侧接口模块将命令请求按照固定数据包格式封装后发送给网关。响应命令处理过程:网关侧接口模块接收数据包后并完成响应命令数据的拷贝,再由响应命令处理模块对响应数据进行解析处理。表2 详细描述了请求命令及响应命令的内容。

网关接收到命令请求后会根据命令类型执行相应的操作,最后返回响应数据。一部分响应数据携带有设备信息或网络信息;另外一部分响应数据携带有网关对命令请求的执行是否成功的标志或对命令请求执行的时间等信息。中间件解析网关返回的响应数据并访问数据库,更新数据库中的对应表。

表2 命令请求及对应的响应内容Tab.2 Command requests and corresponding response contents

下面就表2 中的部分关键命令做详细的介绍,包括命令的描述以及相关参数等。

(1)会话及Lease 的创建:建立会话的主要目的是方便中间件和网关设备进行资源的分配与回收,以及通信资源的管理。因此,中间件在运行时首先需要与网关之间建立会话连接,该会话保持直到连接断开或会话终止。Lease 的创建主要服务于各种命令的执行,保证不同管理服务的通信可靠和资源保障。

中间件发起会话创建的请求命令到网关,网关接收到请求后会回复响应命令。该响应命令携带会话ID、会话周期及会话状态等信息。解析完会话响应后,中间件从数据库的Commands 表中获取所有的命令并添加到请求命令生成模块的周期业务列表中。中间件查找周期业务列表执行各种命令之前,首先要判断该服务请求和网关是否建立Lease,如果没有建立,则需要执行创建Lease 过程。中间件发起Lease 请求命令到网关,网关回复响应命令,中间件进行响应数据的解析,完成Lease 建立过程。Lease 创建成功后,中间件和网关之间才能进行正常的数据交互。会话及Lease创建的命令执行过程如图4 所示。

图4 会话及Lease 创建命令的执行过程Fig.4 Execution process of session and Lease creating command

(2)网络拓扑报告:当执行周期性的网络拓扑报告请求时,中间件通过查找请求命令生成模块的周期业务列表创建命令并添加命令参数后,将消息发送给网关;网关处理后将收集的网络拓扑信息返回给中间件,中间件把网络拓扑信息写入数据库的NetworkTopologyGraph 表中。拓扑结构报告的执行过程如图5 所示。

图5 拓扑结构报告的执行过程Fig.5 Execution process of topological structure reporting

(3)设备采集数据上报:中间件系统在运行之前需要将终端设备采集的数据类型参数配置到数据库表中,以保证数据能够正确存储,如图6 所示。

图6 Publish 数据上报过程Fig.6 Publish data reporting process

首先,中间件向网关发送Subscription 请求,接收到Subscription 确认后,开始等待接收Publish 数据包。网关将收集到的终端设备的采集数据(温湿度、压力等)发送给中间件,中间件将数据包按照预配置的数据格式进行转换,再将数据写入DeviceReadings 表中。

3 关键技术描述

3.1 可靠传输描述

中间件在执行请求处理业务时,考虑到系统间的可靠通信,采用定时重传的通信机制。发起请求命令并同时启动一个该命令对应的定时器,如果在定时器超时之前接收到了响应命令,则停止该定时器,并删除缓冲区中的对应请求命令,进入解析处理过程;若定时器超时后还未接收到对应的响应命令,则将缓冲区中的请求命令重新发送给网关,再次启动定时器,直到达到最大重发次数。

图7 描述了定时器在正常情况下和超时情况下的管理示意流程。

图7 定时器管理流程示意图Fig.7 Flowchart of timer management

3.2 接收过滤描述

为减少异常数据包的处理,网关侧接口模块增加接收过滤功能,对不符合约定协议和格式的数据进行丢弃。当接收到响应数据时先读取响应数据的版本号、首部以及数据部分,进行异常检测过程的状态跳转,最终将正确的数据包发送给响应处理模块。状态机的当前状态、下一个状态以及当前所发生的事件如表3 所示。

表3 状态机描述列表Tab.3 Descriptions of state machine

4 测试与验证

中间件系统运行在Linux 环境中,和网关运行在一个设备上,Web 服务器完全采用本公司自主设计的系统。终端设备采用Freescale 公司的MC13224[5]芯片作为无线模块,搭载符合ISA100.11a 标准的协议栈软件和采集控制软件。测试操作流程:配置终端设备的采集周期和模式;分别运行网关、中间件系统和终端设备;中间件发起Subscribe/Publish 操作,将采集数据写入数据库中;访问Web 服务器,查看网络设备运行状态和周期上报的采集数据。

经过测试,中间件系统可以实时准确地与网关设备进行通信,将符合协议要求的内容写入数据库,数据库表项的内容能够满足Web 服务器的访问读取显示。

通过访问Web 服务器,用户可以查看实时运行的网络拓扑结构、终端设备的采集上报信息和运行状态。这说明系统基本满足工业现场的无线采集、监控管理应用需求。

5 结束语

本文在现有无线网络和网关设备的基础上,设计与实现了工业物联网应用中间件系统,为Web 服务提供了标准化数据库和接口,降低了ISA100.11a 工业物联网的Web 应用开发难度,并缩减了开发周期。一方面,中间件的网关测接口能够与符合ISA100.11a 标准的任意网关设备连接,具有较好的通用性,可应用在不同的物联网系统中,避免二次开发,有效节省了开发成本和时间;另一方面,该中间件能够协助Web 服务器存储网络数据,使得用户通过浏览器网页界面远程查看网络的终端设备数据和运行状态信息,并且能够对网络进行控制和管理。该中间件系统的设计,可以加快ISA100.11a 标准网络在工业现场的的部署和应用,对工业物联网的发展起着积极的促进作用。

[1] 康世龙,杜中一,雷咏梅,等. 工业物联网研究概述[J]. 物联网技术,2013(6):80 -82.

[2] ISA Std.100.11a.2011 Wireless systems for industrial automation:process control and related applications[S].2011.

[3] 黄曼雪,李彦峰,詹炜,等.工业无线技术ISA100 标准及认证发展现状[J].电子质量,2014(4):58 -66.

[4]王恒,赵晓瑞,王平.无线传感网网关Web 服务中间件的设计与实现[J].计算机工程与设计,2014(6):1978 -1980.

[5] Freescale. MC13224V MC1322x platform in a package[EB/OL].[2014-11-28].http //www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MC13224V&nodeId=0106B9869925657103009.

猜你喜欢
中间件网关数据包
基于FPGA的工业TSN融合网关设计
二维隐蔽时间信道构建的研究*
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
信号系统网关设备的优化
C#串口高效可靠的接收方案设计
天地一体化网络地面软网关技术及其应用
RFID中间件技术及其应用研究
基于Android 平台的OSGi 架构中间件的研究与应用
基于ETC在线支付网关的停车场收费系统设计
中间件在高速公路领域的应用