李 敏,朱元杰,王 恒,王彦斌
(重庆邮电大学自动化学院,重庆 400065)
面向工业过程自动化的工业无线网络(wireless networks for industrial automation process automation,WIA-PA)标准是国际上相关标准化组织制定的三大工业无线标准之一,是我国自主制定的、拥有完全知识产权的标准。作为一种面向设备间短程和低速率信息交互的无线通信技术标准,WIA-PA技术诞生后受到了学术界和工业界的广泛关注[1-4]。业界对该技术的研究主要集中在WIA-PA网络的实时调度技术[1]、路由关键技术[2]、网络传输可靠性、通信开销[3]、网络架构、分层协议[4]等方面。
在WIA-PA网络中,网络管理器是整个网络的核心,其对网络的正常运行作用重大。与WirelessHART、ISA100.11a两大工业无线标准相比,WIA-PA网络管理器产品很少,功能也不完善,尤其在路由和通信资源配置方面还需要进一步改进和优化[5]。因此,必须开发高性能、功能完整的WIA-PA网络管理器,以实现设备入网等核心功能和数据交换等基本功能。
网络管理器作为WIA-PA网络的重要组成部分,采用集中式的管理方式,负责管理WIA-PA网络及其设备属性。WIA-PA网络中网络管理和安全管理共同组成了网络管理器的功能。本文设计的WIA-PA网络管理器主要侧重于网络管理者的功能。其主要功能如下。
①设备加入网络。WIA-PA网络设备加入网络的过程有两种形式:路由设备加入网络和现场设备加入网络。网络管理器对路由设备和现场设备加入网络的请求进行认证,并返回加入网络响应。
②网络地址分配。在WIA-PA网络中,每一个设备都有两个地址:长地址和短地址。设备的长地址在设备出厂时由厂商设定,设备的短地址由网络管理器分配。
③路由配置。WIA-PA网络采用静态路由的方式,由网络管理器生成并配置全网的路由表。网关设备和路由设备中都配置有一张路由表,用于在网状网络中的路由选择。
④通信资源配置。WIA-PA网络中的通信资源包括信道和时隙。由网络管理器调度WIA-PA网络的信道和时隙,生成超帧表和链路表,并为设备配置超帧和链路。
⑤网络性能监视。在WIA-PA网络中,网络管理器需要对整个WIA-PA网络的运行状况进行监视。网络统计信息主要包括路径失败报告、设备状态报告和信道状况报告。
⑥管理信息库维护。管理信息库中存储了设备的所有属性信息。其中的信息以属性的形式存在。网络管理器维护网络中每个设备的管理信息库,用于监视和配置网络参数。
网络管理器在高效执行其功能时,需要核心算法的支持。目前,针对WirelessHART和ISA 100.11a网络的路由和调度算法以及高效管理方法相继提出[6-8],而对于WIA-PA网络的研究则较少。本节根据WIA-PA网络路由选择和时隙通信的需要,设计了网络管理器的网络拓扑结构显示算法和路由算法。
WIA-PA网络拓扑结构显示是网络管理器的核心功能,其能够真实反映网络的拓扑结构,查看网络中设备之间的连接情况。网络管理器根据设备发送的邻居信息分析设备之间的连接情况,计算设备在网络拓扑结构中的坐标。
设备坐标的计算采用力导向算法。其核心思想是:计算节点两两之间因斥力产生的单位位移,并计算图中每条边的两端节点因引力产生的单位位移。累加上述两个单位位移得到节点的新坐标,迭代多次直至达到理想效果[9-10]。WIA-PA网络拓扑计算方法具体步骤如下。
①确定网络拓扑结构显示区域的起始坐标(xmin,ymin)和终止坐标(xmax,ymax),并计算显示区域的面积area:
area=(xmax-xmin)×(ymax-ymin)
(1)
②根据网络拓扑中设备的数量num,计算设备之间的理想距离dist:
(2)
③为网络拓扑中的每个设备随机分配一个坐标pos,初始化状态值temp。
④根据设备Vi和Vj的坐标,计算设备两两之间的实际距离diff:
(3)
⑤初始化设备Vi和Vj的坐标位移offset为0。
⑥计算设备Vi和Vj的坐标位移offset。因斥力产生的位移为:
(4)
(5)
⑦计算有关联设备Vi和Vj的坐标位移offset。因引力产生的位移为:
(6)
(7)
⑧根据设备v的坐标位移计算坐标:
(8)
⑨更新状态值temp:
temp=temp×0.9
(9)
⑩循环执行步骤④~步骤⑨,迭代多次直至temp≤1。
算法执行结束后,即可得到设备在网络拓扑结构中的坐标。
2.2.1 最优路径计算
在WIA-PA网络的路由计算中,为了保证数据信息能够高效地在路由设备和网关设备间传输,需确定WIA-PA网络中每个路由设备和网关设备之间的最优路径。
最优路径的计算方法可采用满足WIA-PA网络路由计算要求且易于实现的Floyd算法[11],将计算得到的端到端最短路径作为WIA-PA网络的最优路径。设WIA-PA网络抽象成的图为G,图G中共有n个顶点。定义n×n阶的矩阵D,用于表示图G中任一顶点到另一个顶点的最短路径权值和。定义n×n阶的矩阵P,用于记录计算最短路径过程中插入的顶点,可以表示图G中任一顶点到另一个顶点的最短路径。以Floyd算法得到最短路径作为WIA-PA网络的最优路径,包括每个路由设备到网关设备的最优路径和网关设备到每个路由设备的最优路径。
2.2.2 路由表的生成
网络管理器完成最优路径的计算后,根据每个路由设备和网关设备之间的最优路径,为网关设备和每个路由设备各生成一张路由表。根据2.2.1节中的矩阵P,即可查询到图中每对顶点之间的最优路径,具体步骤如下。
①遍历矩阵P,P[i][j]表示从顶点Vi到顶点Vj的最优路径中需要经过的顶点。设该顶点为Vk,k=P[i][j]。若k=j,则从顶点Vi到顶点Vj的最优路径为{Vi,Vj};若k≠j,则执行步骤②。
②查询从顶点Vi到顶点Vj的最优路径,令k=P[k][j]。
③循环执行步骤②,直至k=j,则k变化的值为顶点Vi到顶点Vj的最优路径中需要经过的顶点。
④循环执行步骤①,直至完成遍历矩阵P,即可获得图中每对顶点之间的最优路径。
网络管理器生成路由表时,无需获取每对顶点之间的最优路径,只需要获取路由设备到网关设备的最短路径和网关设备到路由设备的最优路径。根据最优路径生成路由表的过程如下。
①假设一条最优路径为{V1,V2,…,Vn},此路径的源地址为Vi的短地址,目的地址为Vn的短地址。对于V1来说,其下一跳为V2,则V1可以添加一项路由表。此项路由表中的下一跳地址为V2的短地址。
②遍历路径{V1,V2,…,Vn}中的每个设备,按照步骤①的方式为路径中的每个设备添加一项路由表。
③遍历所有需要的最优路径,按照上述步骤①~步骤②,为每个路由设备和网关设备添加路由表。
当路由设备所管理的簇内有现场设备时,需要为现场设备在相应的路由设备中添加路由表,其过程与上述算法步骤③相同。现场设备与网关设备之间的最优路径为:现场设备的簇首与网关设备之间的最优路径加上现场设备与其簇首之间的路径。其中,现场设备没有路由表,不需要为其生成路由表。
综合网络管理器的需求和性能分析及核心算法的设计,设计了WIA-PA网络管理器。使用Qt平台,从外围模块和核心模块两个方面对网络管理器进行了编码实现。
网络管理器的架构如图1所示。
图1 网络管理器架构图Fig.1 Architecture of the network manager
网络管理器采用模块化的体系结构进行实现,分为外围模块和核心模块。外围模块实现网络管理器的基本功能,作为图形用户界面提供人机交互接口,用于与WIA-PA网络通信,方便用户查看网络中设备的信息以及网络管理器的运行状况。核心模块实现设备的入网、路由配置、通信资源分配等功能。
外围模块构成了网络管理器的外围架构,完成网络管理器与WIA-PA网络通信、数据包解析、设备信息存储、网络拓扑结构显示、网络管理器的日志记录、现场设备用户应用对象服务、现场设备周期性数据的趋势图显示和数据库存储等功能。它包括通信接口模块、数据解析模块、设备信息存储模块、网络拓扑显示模块、趋势图模块、用户应用对象服务模块、数据库模块和日志模块。
通信接口模块用于和WIA-PA网络中的网关设备通信,并将接收到的所有数据包交给数据解析模块进行处理。WIA-PA网络中,网关和网络管理器之间的以太网通信采用TCP的通信方式。其中,网络管理器作为TCP的客户端,网关设备作为TCP的服务器端,同时网络管理器也支持串口通信。
数据解析模块解析数据包,提取相关数据信息存储到设备信息存储模块中。为了保证WIA-PA网络和网络管理器之间通信的可靠性和稳定性、便于构造和解析所有的数据包、避免非法数据包的干扰,将网关设备和网络管理器之间通信的数据包定义为一个统一的帧格式。
设备信息存储模块为WIA-PA网络的每个设备分配一块存储空间,用于存储WIA-PA网络中每个设备的所有属性信息,包括设备的管理信息库和网络管理器分析设备时所必要的属性。设备信息存储模块利用图的数据结构为每个设备分配存储空间,并且根据图论的概念,将WIA-PA网络抽象为图。
网络拓扑显示模块从设备信息存储模块中读取网络中设备的坐标,绘制网络拓扑图。WIA-PA网络中的设备加入网络后,核心模块中的网络拓扑计算模块会计算网络中路由设备和网关设备在拓扑图中的坐标,并将这些坐标存储在设备信息存储模块中。网络拓扑显示模块运行时,直接读取设备信息存储模块中设备的坐标,并绘制拓扑图。
趋势图模块以曲线的形式显示现场设备的周期性数据变化情况。网络管理器接收到现场设备发送的周期性数据时,由数据解析模块解析出数据值,交给设备信息存储模块存储。设备信息存储模块为每个现场设备分配一块存储空间,用于存储现场设备一定数量的周期性数据,此数量设定为200。这些周期性数据是趋势图模块的数据来源。
数据库模块使用数据库存储现场设备的所有周期性数据,并创建一个单独的数据库文件存放在硬盘中,确保断电后数据不会丢失。网络管理器使用SQLite数据库。这是一个小型的嵌入式数据库,只利用很少的内存就能达到很好的性能,可以满足应用需求。数据库中存储的内容主要有:序列号、接收到周期性数据的时间、现场设备的短地址、数据值和现场设备的长地址。
用户应用对象服务模块通过发送读、写用户应用对象属性请求,获取、修改用户应用对象的属性值,并将获取的用户应用对象的属性值存储到设备信息存储模块中。
日志模块记录日志信息。用户在日志界面中可以查看网络管理器启动后的所有信息记录,主要包括网络管理器与网关设备的通信记录、网络管理器运行的状况、数据包错误信息和故障信息等。
核心模块根据功能分为:设备入网模块、网络拓扑计算模块、路由配置模块和通信资源配置模块。
3.3.1 设备入网模块
设备入网模块实现了设备加入网络的认证过程,包括为设备分配网络地址。
在管理设备加入网络的过程中,网络管理器接收到设备发送的加入请求时,数据解析模块根据加入请求的负载,将解析得到的信息存储到设备信息存储模块中。设备信息存储模块将待加入设备的物理地址(长地址)作为区分不同设备的唯一标志,并为设备分配一块存储空间,用于存储设备的属性信息。
根据设备类型的不同采用不同的处理方式。入网请求处理流程如图2所示。
图2 入网请求处理流程图Fig.2 Flowchart for disposing the network access request
网关设备在启动时,由网络管理器完成网关设备的初始化,网关设备不需要发送入网请求。当发送入网请求的设备为路由设备时,设备入网模块为此路由设备分配网络地址,并获取其父节点。设备入网模块将相应的信息存入设备信息存储模块后,根据入网响应的负载帧格式,填入相应的内容,组成符合规定的数据包,并调用通信接口模块发送。当发送入网请求的设备为现场设备时,设备入网模块为此现场设备分配网络地址,同时,现场设备的簇首将其添加到自己的簇成员链表中。设备入网模块将相应的信息存入设备信息存储模块后,根据入网响应的负载帧格式,填入相应的内容,组成符合规定的数据包,并调用通信接口模块发送。
3.3.2 网络拓扑计算模块
网络拓扑计算模块实现流程如图3所示。
图3 网络拓扑计算模块实现流程图Fig.3 Flowchart of implementation of the network topology computation module
网络管理器接收到设备发送的邻居信息后,触发网络拓扑计算模块进行网络拓扑结构的计算。网络管理器将网状结构部分的网络抽象成图,采用邻接矩阵的形式表示图中每个节点的连接关系,并根据网络拓扑计算方法计算出图中每个节点的坐标,即为网络拓扑结构中设备的坐标。将此坐标存入设备信息存储模块中,用于后续网络拓扑显示模块绘制网络拓扑结构。
3.3.3 路由配置模块
路由设备成功加入网络后,会周期性发送邻居信息到网络管理器。邻居信息包含此路由设备每个邻居设备的信息。数据解析模块主要获取每个邻居设备的短地址和每个邻居设备到此路由设备的链路质量,并存入设备信息存储模块。设备信息存储模块根据以上信息,更新用于存储网状网络设备之间连接关系的二维数组(邻接矩阵)。若邻接矩阵没有变化,则无需进行路由的计算;若邻接矩阵发生变化,则需要进行路由的计算,进而更新WIA-PA网络中路由设备和网关设备的路由表。
路由配置模块执行最优路径算法(Floyd算法),得到一个二维数组。该二维数组中存放了任意两点之间的最优路径。遍历此二维数组,统计每个路由设备到网关设备的最优路径和网关设备到每个路由设备的最优路径。将这些最优路径存储到设备信息存储模块中,更新之前存储的最优路径,并根据最优路径统计每个路由设备和网关设备的路由表。网络管理器采用链表的形式,分别存储每个设备的路由表,并与设备信息存储模块中原有的路由表进行比较,更新设备信息存储模块中原有的路由表。
3.3.4 通信资源配置模块
通信资源配置模块实现了确定性调度算法,主要完成执行调度算法、调度信道和时隙,并为设备生成链路表;将需要更新的路由表、超帧表和链路表发送给网络中的设备。网络管理器完成通信资源的配置后,便将路由信息和通信资源配置发送给网络中的设备。
在构建的WIA-PA网络中,对本设计进行了测试。其中:路由设备和现场设备主控芯片采用STM32L152RB,射频芯片采用CY2420,网关设备采用S3C2440处理器。网络管理器运行在Windows环境下。测试过程中,网络管理器执行网关初始化、管理设备加入网络、路由配置、通信资源配置、网络拓扑结构计算和显示功能。同时,通过网络管理器接口,还进行了千点级大规模组网压力性能模拟测试。
在千点级大规模组网压力性能模拟测试中,节点数据以模拟的形式通过软件接口输入,网络管理器接收到模拟数据后真实运行。随着设备数量的增加,核心算法的执行时间变化趋势如图4所示。从图4可以看到,即使在千点级别中,网络拓扑算法和路由算法的计算时间也不超过12 ms,运算速度快。
测试结果表明,网络管理器完全实现了网络的构建、路由配置、通信资源配置、网络性能监视和管理信息库等功能,核心算法也比较高效,且能支持千点级大规模组网。
图4 千点级网络性能测试图Fig.4 Performance test results of the thousand-node level network
本文结合WIA-PA网络的特点,分析了WIA-PA网络管理器的功能,设计了核心网络拓扑结构算法和路由算法,开发了网络管理器软件,实现了对WIA-PA网络的集中式管理。最后,对网络管理器的功能和性能进行验证和评估。测试结果表明,网络管理器能够实现处理设备加入网络的全部流程和数据信息的显示、存储和查找;设计和实现的核心算法满足WIA-PA网络路由选择和时隙通信的需要,保证了网络的稳定性和可靠性,并且能够支持千点级大规模组网。网络管理器的算法执行时间短、处理器负载和内存占用少,能够在主流机器上稳定、流畅地运行。
参考文献:
[1] JIN X,ZENG P.A fast real-time scheduling algorithm for WIA-PA[C]//Applied Machanics & Materials,2014:124-127.
[2] 向敏,文成亮,王平,等.基于IPv6的WIA-PA网络优化AODV路由算法[J].仪器仪表学报,2015,36(12):2681-2689.
[3] ZHENG M,LIANG W,YU H,et al.Performance analysis of the industrial wireless networks standard:WIA-PA[J].Mobile Networks and Applications,2017,22(1):139-150.
[4] WANG Q,JIN J.Comparativeexamination on architecture and protocol of industrial wireless sensor network standards[J].IEEE Communications Surveys & Tutorials,2016,18(3):2197-2219.
[5] ZHANG Y,ZHANG X,WANG Q,et al.Research of the network manager for WIA-PA[C]//6th International Conference on Wireless Communications.Chengdu:IEEE,2010:1-4.
[6] NOBRE M,SILVA I,GUEDES L.Routing and scheduling algorithms for wirelesshart networks:a survey[J].Sensors,2015,15(5):9703-9740.
[7] NHON T,KIM D.Real-time message scheduling for ISA100.11a networks[J].Computer Standards & Interfaces,2015(37):73-79.
[8] 支亚军,张建奇,杨宁.基于ISA100.11a工业物联网的中间件设计与实现[J].自动化仪表,2015,36(12):43-47.
[9] LIPP F,WOLFF A,ZINK J.Faster force-directed graph drawing with the well-separated pair decomposition[C]//23rd International Symposium on Graph Drawing and Network Visualization.Cham:Springer,2015:52-59.
[10]关志燕,耿岩.虚拟力导向群聚智能优化的无线传感器网络覆盖策略[J].传感器与微系统,2015,34(1):40-46.
[11]KHAN P,KONAR G,CHAKRABORTY N.Modification of floyd-warshall's algorithm for shortest path routing in wireless sensor networks[C]//11th Annual IEEE India Conference.New York:IEEE,2014:1-6.