李 敏,朱元杰,王 恒,王彥斌
(重慶郵電大學自動化學院,重慶 400065)
面向工業(yè)過程自動化的工業(yè)無線網絡(wireless networks for industrial automation process automation,WIA-PA)標準是國際上相關標準化組織制定的三大工業(yè)無線標準之一,是我國自主制定的、擁有完全知識產權的標準。作為一種面向設備間短程和低速率信息交互的無線通信技術標準,WIA-PA技術誕生后受到了學術界和工業(yè)界的廣泛關注[1-4]。業(yè)界對該技術的研究主要集中在WIA-PA網絡的實時調度技術[1]、路由關鍵技術[2]、網絡傳輸可靠性、通信開銷[3]、網絡架構、分層協(xié)議[4]等方面。
在WIA-PA網絡中,網絡管理器是整個網絡的核心,其對網絡的正常運行作用重大。與WirelessHART、ISA100.11a兩大工業(yè)無線標準相比,WIA-PA網絡管理器產品很少,功能也不完善,尤其在路由和通信資源配置方面還需要進一步改進和優(yōu)化[5]。因此,必須開發(fā)高性能、功能完整的WIA-PA網絡管理器,以實現(xiàn)設備入網等核心功能和數(shù)據(jù)交換等基本功能。
網絡管理器作為WIA-PA網絡的重要組成部分,采用集中式的管理方式,負責管理WIA-PA網絡及其設備屬性。WIA-PA網絡中網絡管理和安全管理共同組成了網絡管理器的功能。本文設計的WIA-PA網絡管理器主要側重于網絡管理者的功能。其主要功能如下。
①設備加入網絡。WIA-PA網絡設備加入網絡的過程有兩種形式:路由設備加入網絡和現(xiàn)場設備加入網絡。網絡管理器對路由設備和現(xiàn)場設備加入網絡的請求進行認證,并返回加入網絡響應。
②網絡地址分配。在WIA-PA網絡中,每一個設備都有兩個地址:長地址和短地址。設備的長地址在設備出廠時由廠商設定,設備的短地址由網絡管理器分配。
③路由配置。WIA-PA網絡采用靜態(tài)路由的方式,由網絡管理器生成并配置全網的路由表。網關設備和路由設備中都配置有一張路由表,用于在網狀網絡中的路由選擇。
④通信資源配置。WIA-PA網絡中的通信資源包括信道和時隙。由網絡管理器調度WIA-PA網絡的信道和時隙,生成超幀表和鏈路表,并為設備配置超幀和鏈路。
⑤網絡性能監(jiān)視。在WIA-PA網絡中,網絡管理器需要對整個WIA-PA網絡的運行狀況進行監(jiān)視。網絡統(tǒng)計信息主要包括路徑失敗報告、設備狀態(tài)報告和信道狀況報告。
⑥管理信息庫維護。管理信息庫中存儲了設備的所有屬性信息。其中的信息以屬性的形式存在。網絡管理器維護網絡中每個設備的管理信息庫,用于監(jiān)視和配置網絡參數(shù)。
網絡管理器在高效執(zhí)行其功能時,需要核心算法的支持。目前,針對WirelessHART和ISA 100.11a網絡的路由和調度算法以及高效管理方法相繼提出[6-8],而對于WIA-PA網絡的研究則較少。本節(jié)根據(jù)WIA-PA網絡路由選擇和時隙通信的需要,設計了網絡管理器的網絡拓撲結構顯示算法和路由算法。
WIA-PA網絡拓撲結構顯示是網絡管理器的核心功能,其能夠真實反映網絡的拓撲結構,查看網絡中設備之間的連接情況。網絡管理器根據(jù)設備發(fā)送的鄰居信息分析設備之間的連接情況,計算設備在網絡拓撲結構中的坐標。
設備坐標的計算采用力導向算法。其核心思想是:計算節(jié)點兩兩之間因斥力產生的單位位移,并計算圖中每條邊的兩端節(jié)點因引力產生的單位位移。累加上述兩個單位位移得到節(jié)點的新坐標,迭代多次直至達到理想效果[9-10]。WIA-PA網絡拓撲計算方法具體步驟如下。
①確定網絡拓撲結構顯示區(qū)域的起始坐標(xmin,ymin)和終止坐標(xmax,ymax),并計算顯示區(qū)域的面積area:
area=(xmax-xmin)×(ymax-ymin)
(1)
②根據(jù)網絡拓撲中設備的數(shù)量num,計算設備之間的理想距離dist:
(2)
③為網絡拓撲中的每個設備隨機分配一個坐標pos,初始化狀態(tài)值temp。
④根據(jù)設備Vi和Vj的坐標,計算設備兩兩之間的實際距離diff:
(3)
⑤初始化設備Vi和Vj的坐標位移offset為0。
⑥計算設備Vi和Vj的坐標位移offset。因斥力產生的位移為:
(4)
(5)
⑦計算有關聯(lián)設備Vi和Vj的坐標位移offset。因引力產生的位移為:
(6)
(7)
⑧根據(jù)設備v的坐標位移計算坐標:
(8)
⑨更新狀態(tài)值temp:
temp=temp×0.9
(9)
⑩循環(huán)執(zhí)行步驟④~步驟⑨,迭代多次直至temp≤1。
算法執(zhí)行結束后,即可得到設備在網絡拓撲結構中的坐標。
2.2.1 最優(yōu)路徑計算
在WIA-PA網絡的路由計算中,為了保證數(shù)據(jù)信息能夠高效地在路由設備和網關設備間傳輸,需確定WIA-PA網絡中每個路由設備和網關設備之間的最優(yōu)路徑。
最優(yōu)路徑的計算方法可采用滿足WIA-PA網絡路由計算要求且易于實現(xiàn)的Floyd算法[11],將計算得到的端到端最短路徑作為WIA-PA網絡的最優(yōu)路徑。設WIA-PA網絡抽象成的圖為G,圖G中共有n個頂點。定義n×n階的矩陣D,用于表示圖G中任一頂點到另一個頂點的最短路徑權值和。定義n×n階的矩陣P,用于記錄計算最短路徑過程中插入的頂點,可以表示圖G中任一頂點到另一個頂點的最短路徑。以Floyd算法得到最短路徑作為WIA-PA網絡的最優(yōu)路徑,包括每個路由設備到網關設備的最優(yōu)路徑和網關設備到每個路由設備的最優(yōu)路徑。
2.2.2 路由表的生成
網絡管理器完成最優(yōu)路徑的計算后,根據(jù)每個路由設備和網關設備之間的最優(yōu)路徑,為網關設備和每個路由設備各生成一張路由表。根據(jù)2.2.1節(jié)中的矩陣P,即可查詢到圖中每對頂點之間的最優(yōu)路徑,具體步驟如下。
①遍歷矩陣P,P[i][j]表示從頂點Vi到頂點Vj的最優(yōu)路徑中需要經過的頂點。設該頂點為Vk,k=P[i][j]。若k=j,則從頂點Vi到頂點Vj的最優(yōu)路徑為{Vi,Vj};若k≠j,則執(zhí)行步驟②。
②查詢從頂點Vi到頂點Vj的最優(yōu)路徑,令k=P[k][j]。
③循環(huán)執(zhí)行步驟②,直至k=j,則k變化的值為頂點Vi到頂點Vj的最優(yōu)路徑中需要經過的頂點。
④循環(huán)執(zhí)行步驟①,直至完成遍歷矩陣P,即可獲得圖中每對頂點之間的最優(yōu)路徑。
網絡管理器生成路由表時,無需獲取每對頂點之間的最優(yōu)路徑,只需要獲取路由設備到網關設備的最短路徑和網關設備到路由設備的最優(yōu)路徑。根據(jù)最優(yōu)路徑生成路由表的過程如下。
①假設一條最優(yōu)路徑為{V1,V2,…,Vn},此路徑的源地址為Vi的短地址,目的地址為Vn的短地址。對于V1來說,其下一跳為V2,則V1可以添加一項路由表。此項路由表中的下一跳地址為V2的短地址。
②遍歷路徑{V1,V2,…,Vn}中的每個設備,按照步驟①的方式為路徑中的每個設備添加一項路由表。
③遍歷所有需要的最優(yōu)路徑,按照上述步驟①~步驟②,為每個路由設備和網關設備添加路由表。
當路由設備所管理的簇內有現(xiàn)場設備時,需要為現(xiàn)場設備在相應的路由設備中添加路由表,其過程與上述算法步驟③相同?,F(xiàn)場設備與網關設備之間的最優(yōu)路徑為:現(xiàn)場設備的簇首與網關設備之間的最優(yōu)路徑加上現(xiàn)場設備與其簇首之間的路徑。其中,現(xiàn)場設備沒有路由表,不需要為其生成路由表。
綜合網絡管理器的需求和性能分析及核心算法的設計,設計了WIA-PA網絡管理器。使用Qt平臺,從外圍模塊和核心模塊兩個方面對網絡管理器進行了編碼實現(xiàn)。
網絡管理器的架構如圖1所示。
圖1 網絡管理器架構圖Fig.1 Architecture of the network manager
網絡管理器采用模塊化的體系結構進行實現(xiàn),分為外圍模塊和核心模塊。外圍模塊實現(xiàn)網絡管理器的基本功能,作為圖形用戶界面提供人機交互接口,用于與WIA-PA網絡通信,方便用戶查看網絡中設備的信息以及網絡管理器的運行狀況。核心模塊實現(xiàn)設備的入網、路由配置、通信資源分配等功能。
外圍模塊構成了網絡管理器的外圍架構,完成網絡管理器與WIA-PA網絡通信、數(shù)據(jù)包解析、設備信息存儲、網絡拓撲結構顯示、網絡管理器的日志記錄、現(xiàn)場設備用戶應用對象服務、現(xiàn)場設備周期性數(shù)據(jù)的趨勢圖顯示和數(shù)據(jù)庫存儲等功能。它包括通信接口模塊、數(shù)據(jù)解析模塊、設備信息存儲模塊、網絡拓撲顯示模塊、趨勢圖模塊、用戶應用對象服務模塊、數(shù)據(jù)庫模塊和日志模塊。
通信接口模塊用于和WIA-PA網絡中的網關設備通信,并將接收到的所有數(shù)據(jù)包交給數(shù)據(jù)解析模塊進行處理。WIA-PA網絡中,網關和網絡管理器之間的以太網通信采用TCP的通信方式。其中,網絡管理器作為TCP的客戶端,網關設備作為TCP的服務器端,同時網絡管理器也支持串口通信。
數(shù)據(jù)解析模塊解析數(shù)據(jù)包,提取相關數(shù)據(jù)信息存儲到設備信息存儲模塊中。為了保證WIA-PA網絡和網絡管理器之間通信的可靠性和穩(wěn)定性、便于構造和解析所有的數(shù)據(jù)包、避免非法數(shù)據(jù)包的干擾,將網關設備和網絡管理器之間通信的數(shù)據(jù)包定義為一個統(tǒng)一的幀格式。
設備信息存儲模塊為WIA-PA網絡的每個設備分配一塊存儲空間,用于存儲WIA-PA網絡中每個設備的所有屬性信息,包括設備的管理信息庫和網絡管理器分析設備時所必要的屬性。設備信息存儲模塊利用圖的數(shù)據(jù)結構為每個設備分配存儲空間,并且根據(jù)圖論的概念,將WIA-PA網絡抽象為圖。
網絡拓撲顯示模塊從設備信息存儲模塊中讀取網絡中設備的坐標,繪制網絡拓撲圖。WIA-PA網絡中的設備加入網絡后,核心模塊中的網絡拓撲計算模塊會計算網絡中路由設備和網關設備在拓撲圖中的坐標,并將這些坐標存儲在設備信息存儲模塊中。網絡拓撲顯示模塊運行時,直接讀取設備信息存儲模塊中設備的坐標,并繪制拓撲圖。
趨勢圖模塊以曲線的形式顯示現(xiàn)場設備的周期性數(shù)據(jù)變化情況。網絡管理器接收到現(xiàn)場設備發(fā)送的周期性數(shù)據(jù)時,由數(shù)據(jù)解析模塊解析出數(shù)據(jù)值,交給設備信息存儲模塊存儲。設備信息存儲模塊為每個現(xiàn)場設備分配一塊存儲空間,用于存儲現(xiàn)場設備一定數(shù)量的周期性數(shù)據(jù),此數(shù)量設定為200。這些周期性數(shù)據(jù)是趨勢圖模塊的數(shù)據(jù)來源。
數(shù)據(jù)庫模塊使用數(shù)據(jù)庫存儲現(xiàn)場設備的所有周期性數(shù)據(jù),并創(chuàng)建一個單獨的數(shù)據(jù)庫文件存放在硬盤中,確保斷電后數(shù)據(jù)不會丟失。網絡管理器使用SQLite數(shù)據(jù)庫。這是一個小型的嵌入式數(shù)據(jù)庫,只利用很少的內存就能達到很好的性能,可以滿足應用需求。數(shù)據(jù)庫中存儲的內容主要有:序列號、接收到周期性數(shù)據(jù)的時間、現(xiàn)場設備的短地址、數(shù)據(jù)值和現(xiàn)場設備的長地址。
用戶應用對象服務模塊通過發(fā)送讀、寫用戶應用對象屬性請求,獲取、修改用戶應用對象的屬性值,并將獲取的用戶應用對象的屬性值存儲到設備信息存儲模塊中。
日志模塊記錄日志信息。用戶在日志界面中可以查看網絡管理器啟動后的所有信息記錄,主要包括網絡管理器與網關設備的通信記錄、網絡管理器運行的狀況、數(shù)據(jù)包錯誤信息和故障信息等。
核心模塊根據(jù)功能分為:設備入網模塊、網絡拓撲計算模塊、路由配置模塊和通信資源配置模塊。
3.3.1 設備入網模塊
設備入網模塊實現(xiàn)了設備加入網絡的認證過程,包括為設備分配網絡地址。
在管理設備加入網絡的過程中,網絡管理器接收到設備發(fā)送的加入請求時,數(shù)據(jù)解析模塊根據(jù)加入請求的負載,將解析得到的信息存儲到設備信息存儲模塊中。設備信息存儲模塊將待加入設備的物理地址(長地址)作為區(qū)分不同設備的唯一標志,并為設備分配一塊存儲空間,用于存儲設備的屬性信息。
根據(jù)設備類型的不同采用不同的處理方式。入網請求處理流程如圖2所示。
圖2 入網請求處理流程圖Fig.2 Flowchart for disposing the network access request
網關設備在啟動時,由網絡管理器完成網關設備的初始化,網關設備不需要發(fā)送入網請求。當發(fā)送入網請求的設備為路由設備時,設備入網模塊為此路由設備分配網絡地址,并獲取其父節(jié)點。設備入網模塊將相應的信息存入設備信息存儲模塊后,根據(jù)入網響應的負載幀格式,填入相應的內容,組成符合規(guī)定的數(shù)據(jù)包,并調用通信接口模塊發(fā)送。當發(fā)送入網請求的設備為現(xiàn)場設備時,設備入網模塊為此現(xiàn)場設備分配網絡地址,同時,現(xiàn)場設備的簇首將其添加到自己的簇成員鏈表中。設備入網模塊將相應的信息存入設備信息存儲模塊后,根據(jù)入網響應的負載幀格式,填入相應的內容,組成符合規(guī)定的數(shù)據(jù)包,并調用通信接口模塊發(fā)送。
3.3.2 網絡拓撲計算模塊
網絡拓撲計算模塊實現(xiàn)流程如圖3所示。
圖3 網絡拓撲計算模塊實現(xiàn)流程圖Fig.3 Flowchart of implementation of the network topology computation module
網絡管理器接收到設備發(fā)送的鄰居信息后,觸發(fā)網絡拓撲計算模塊進行網絡拓撲結構的計算。網絡管理器將網狀結構部分的網絡抽象成圖,采用鄰接矩陣的形式表示圖中每個節(jié)點的連接關系,并根據(jù)網絡拓撲計算方法計算出圖中每個節(jié)點的坐標,即為網絡拓撲結構中設備的坐標。將此坐標存入設備信息存儲模塊中,用于后續(xù)網絡拓撲顯示模塊繪制網絡拓撲結構。
3.3.3 路由配置模塊
路由設備成功加入網絡后,會周期性發(fā)送鄰居信息到網絡管理器。鄰居信息包含此路由設備每個鄰居設備的信息。數(shù)據(jù)解析模塊主要獲取每個鄰居設備的短地址和每個鄰居設備到此路由設備的鏈路質量,并存入設備信息存儲模塊。設備信息存儲模塊根據(jù)以上信息,更新用于存儲網狀網絡設備之間連接關系的二維數(shù)組(鄰接矩陣)。若鄰接矩陣沒有變化,則無需進行路由的計算;若鄰接矩陣發(fā)生變化,則需要進行路由的計算,進而更新WIA-PA網絡中路由設備和網關設備的路由表。
路由配置模塊執(zhí)行最優(yōu)路徑算法(Floyd算法),得到一個二維數(shù)組。該二維數(shù)組中存放了任意兩點之間的最優(yōu)路徑。遍歷此二維數(shù)組,統(tǒng)計每個路由設備到網關設備的最優(yōu)路徑和網關設備到每個路由設備的最優(yōu)路徑。將這些最優(yōu)路徑存儲到設備信息存儲模塊中,更新之前存儲的最優(yōu)路徑,并根據(jù)最優(yōu)路徑統(tǒng)計每個路由設備和網關設備的路由表。網絡管理器采用鏈表的形式,分別存儲每個設備的路由表,并與設備信息存儲模塊中原有的路由表進行比較,更新設備信息存儲模塊中原有的路由表。
3.3.4 通信資源配置模塊
通信資源配置模塊實現(xiàn)了確定性調度算法,主要完成執(zhí)行調度算法、調度信道和時隙,并為設備生成鏈路表;將需要更新的路由表、超幀表和鏈路表發(fā)送給網絡中的設備。網絡管理器完成通信資源的配置后,便將路由信息和通信資源配置發(fā)送給網絡中的設備。
在構建的WIA-PA網絡中,對本設計進行了測試。其中:路由設備和現(xiàn)場設備主控芯片采用STM32L152RB,射頻芯片采用CY2420,網關設備采用S3C2440處理器。網絡管理器運行在Windows環(huán)境下。測試過程中,網絡管理器執(zhí)行網關初始化、管理設備加入網絡、路由配置、通信資源配置、網絡拓撲結構計算和顯示功能。同時,通過網絡管理器接口,還進行了千點級大規(guī)模組網壓力性能模擬測試。
在千點級大規(guī)模組網壓力性能模擬測試中,節(jié)點數(shù)據(jù)以模擬的形式通過軟件接口輸入,網絡管理器接收到模擬數(shù)據(jù)后真實運行。隨著設備數(shù)量的增加,核心算法的執(zhí)行時間變化趨勢如圖4所示。從圖4可以看到,即使在千點級別中,網絡拓撲算法和路由算法的計算時間也不超過12 ms,運算速度快。
測試結果表明,網絡管理器完全實現(xiàn)了網絡的構建、路由配置、通信資源配置、網絡性能監(jiān)視和管理信息庫等功能,核心算法也比較高效,且能支持千點級大規(guī)模組網。
圖4 千點級網絡性能測試圖Fig.4 Performance test results of the thousand-node level network
本文結合WIA-PA網絡的特點,分析了WIA-PA網絡管理器的功能,設計了核心網絡拓撲結構算法和路由算法,開發(fā)了網絡管理器軟件,實現(xiàn)了對WIA-PA網絡的集中式管理。最后,對網絡管理器的功能和性能進行驗證和評估。測試結果表明,網絡管理器能夠實現(xiàn)處理設備加入網絡的全部流程和數(shù)據(jù)信息的顯示、存儲和查找;設計和實現(xiàn)的核心算法滿足WIA-PA網絡路由選擇和時隙通信的需要,保證了網絡的穩(wěn)定性和可靠性,并且能夠支持千點級大規(guī)模組網。網絡管理器的算法執(zhí)行時間短、處理器負載和內存占用少,能夠在主流機器上穩(wěn)定、流暢地運行。
參考文獻:
[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網絡優(yōu)化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工業(yè)物聯(lián)網的中間件設計與實現(xiàn)[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]關志燕,耿巖.虛擬力導向群聚智能優(yōu)化的無線傳感器網絡覆蓋策略[J].傳感器與微系統(tǒng),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.