任拴哲,張懷德,王 堅,李建敏
(1.陜西高速電子工程有限公司,陜西 西安 710056;2.西北工業大學,陜西 西安 710048)
ModBus協議常用于分布式控制系統的通信,在工業控制等領域獲得了大量的應用,但ModBus應用數據單元(ADU)限制了用戶協議數據單元(PDU)最大為253 B[1],對于多通道高采樣率在線監控系統而言這個限制無法滿足其瞬態大容量采樣數據的實時傳輸。
傳統分布式測控系統往往采用RS485總線構建系統內部的通訊,但是這需要布設線纜。而對于布線難度大的場合,采用“無線傳感網絡(wirelss sensor network, WSN)” 來搭建分布式控制系統是一個比較好的選擇。無線傳感網絡由大量傳感器節點組成,這些節點部署在特定的監測環境中,以無線、多跳等形式收發數據。無線傳感器網絡系統的主要特點是較低的平均工作速率和較短的通信距離,網絡拓撲多是二維的網狀拓撲結構[2-3],其路由算法的設計目標主要是促進負載均衡以節約網絡能耗,提高網絡的生存時間,規避“能量空洞現象”[4-6]。但是這種規則會影響數據的傳輸效率,尤其對于變化很快的信號,采用較高的采樣率,WSN的網絡節點會產生大量數據,按照網絡均衡或者能耗均衡為目標的路由算法對于數據的傳遞會產生很大的延時[7],又極易產生網絡局部或全局的“數據擁塞”[8],導致WSN系統不適用于這類應用。
結合隧道、地下管廊WSN監測系統近似一維拓撲[9]的具體特點,針對無線傳感網絡(WSN)通信效率較低、不善于傳輸大容量數據等問題,本文提出了一種基于梯田通信模型的無線傳感網絡通信方法。
分布式監測系統網絡拓撲如圖1所示,通過在被監測對象上部署多個三軸加速度傳感器以獲取其實時數據,每組被監測對象部署一個WSN網絡節點,網絡節點通過485總線連接智能加速度傳感器,每個網絡節點一共30個AD通道同步并發采集,單次1 s時間長度采樣將產生300 KB的數據,為避免大量冗余數據并減少后期數據清洗工作,因此數小時采集一次即可,每次采集時長1 s。

圖1 分布式監測系統網絡拓撲圖Fig.1 Network topology diagram of distributed monitoring system
網絡節點分布模型如圖2所示,其中:

圖2 網絡節點分布模型圖Fig.2 Network node distribution model
1) 網絡節點依據受監測設備分布情況通過人工部署在受監測設備附近。
2) 協調器節點每網段只有一個,可以通過其他方式連接到上位軟件。
3) 所有網絡節點功能相同、地位平等、可以現場供電、安裝后不移動、位置與受控設備對應。
圖2表明,長矩型結構中WSN傳輸路徑相對單一,加上系統瞬態大容量的采樣數據傳輸問題,因此WSN追求的目標并不是網絡節點的能耗均衡,而是減少轉發次數,縮短數據包全網傳遞時長,從而提升網絡傳輸效率。
2.1 即時網絡狀態的自適應長度數據組包通信協議設計
本文監測系統對于通信網絡的需求可以分為兩類:
一類是控制命令,如校時、自檢、采樣率設定、實時查詢設備狀態、發布采樣命令等。這一類命令數據量不大,每次發送固定大小的數據,適合ModBus目前已定義的功能碼;
另一類是現場傳感器采集到的實時信號,這類信號數據量很大,需要盡量提高傳輸效率,可以通過兩種方式實現提高傳輸效率:1)減少數據包在無線網絡內部的轉發次數;2)在數據量固定的情況下,加大每次發送數據包的長度。
根據上述分析,將通信協議分為控制命令協議和數據傳輸協議兩類,其中控制命令是短命令,傳送比較頻繁,每分鐘輪詢一個網絡節點,實現對受控設備的運行工況遍歷;數據傳輸協議需要對ModBus協議進行優化擴充,使之能夠依據即時網絡質量傳送可變長數據包。
2.1.1系統控制指令
1) 采用無線傳感網絡AT定向命令封裝ModBus請求
本文中的WSN 是ModBus現場總線的上一級通信網絡,其作用是溝通網絡節點下掛傳感器與上位軟件的橋梁,為了提高傳輸效率,采用WSN AT定向發送命令封裝ModBus協議。系統定向控制指令請求幀封裝如表1所示。

表1 控制指令請求幀Tab.1 Control command request frame
網絡節點目標地址:xxxx是指網絡節點的本網段內標號,例如0003為第3號網絡節點;傳感器ID:xx,是指本網絡節點下的傳感器編號,例如02為本網段0003網絡節點的第2個傳感器;一個網段只能有一個協調器節點,編號為FFFE ,網段內所有網絡節點發送的最終目的地均為協調器節點FFFE。
2) 采用無線傳感網絡AT定向命令封裝ModBus響應
系統定向控制指令響應幀封裝如表2所示。

表2 控制指令響應幀Tab.2 Control command response frame
2.1.2系統可變長度數據包傳輸指令
數據包傳輸指令是為了獲取網絡節點現場傳感器瞬態并發采樣的大量數據,為了控制WSN網絡節點的通信負載均衡,所有網絡節點只有在獲取上位令牌后才進行高速并發采樣,采樣完成后由上位軟件直接定向讀取,讀取成功后傳感器將采樣數據清零并等待下一次采樣命令。
傳輸指令整體由預備、傳輸、結束三個子狀態構成,數據包傳輸流程如圖3所示。

圖3 數據包傳輸流程圖Fig.3 Flow chart of packet transmission
通過預備傳輸指令除了可以獲取采樣的基本信息如采樣率、采樣時刻、數據包總長度,另一個目標是獲取這個短指令的空中延遲時間,在保證數據包CRC校驗正確的前提下,請求發出時刻減去響應到達時刻的時間段可以表達WSN空中通信網的即時狀態,對空中通信網狀態評估分為標準可用、良好、優秀等級,依據不同的狀態等級進行本次傳輸數據包長度自適應裝定,例如標準可用狀態對應200 B,良好狀態對應400 B,優秀狀態對應800 B,當采樣率為5 kHz/s,WSN網絡節點下掛10個三軸加速度傳感器時,每通道A/D為16 b,數據量為300 KB,若數據包長度為200 B,所有數據包傳完WSN轉發需要1 500次;若數據包長度為800 B,WSN僅需375次傳輸,效率提升4倍。
2.2.1梯田通信勢能模型
根據坑道、隧道無線傳感網絡節點的長矩形分布特點,為提高系統數據傳輸效率本文引入“梯田通信法”規則。本規則在WSN初始化階段完成,梯田通信勢能模型如圖4所示。

圖4 梯田通信勢能模型Fig.4 Terraces communication potential model
梯田通信勢能模型的規則如下:
1) 協調器是所有網絡節點應答信息的最終目標,也是網絡上所有請求的源頭;
2) 梯田的建設規則:同梯級的網絡節點均能和下一梯級所有網絡節點直接通信,即同梯級的網絡節點直接通信能力相等,即同層“梯田”上等質量的物體勢能相等。
3) 梯田建設在網絡初始化階段完成:
①手動為每一個節點設置WSN網段號、網絡節點地址,設置所有節點的定向目標地址為協調器地址(例如FFFE),協調器節點地址設為FFFE;
②協調器節點梯級信息為0,協調器向周圍廣播初始化信息(包括梯級信息0),周圍所有能直接收到協調器初始化信息的節點首先將自己的梯級信息設為-1,例如圖4中的1#、2#、3#、4#網絡節點;
③完成梯級信息設置為-1的網絡節點(例如3#)開始向周圍廣播自己的初始化信息,由于各節點物理距離不同造成通信范圍不同,假設1#、2#、4#、5#、6#、7#、8#、9#收到該信息,其中1#、2#、4#發現梯級與3#相同就放棄該初始化信息,而5#、6#、7#、8#、9#將自己的梯級設為-2,當所有梯級為-1的網絡節點初始化完成后,此時由于3#添加了9#(梯級為-2),4#添加了10#(梯級為-2),但是1#與2#因為距離遠并不能直接聯系上9#和10#,此時所有梯級為-1的網絡節點(1#、2#、3#、4#)將各自發現的梯級為-2的所有節點地址報給協調器,協調器裁決9#、10#的梯級不能為-2級,將其裁定為-3級,并將裁決結果通過3#發給9#,通過4#發給10#;9#,10#依據協調器裁決結果將自己的梯級修改為-3;
④依次類推,構成通信梯田。
4) 網絡初始化階段完成后,位于同一梯田的網絡節點禁止相互直接通信。
2.2.2動態路由選擇
系統初始化完成,就構建了梯田通信勢能模型,所有網絡節點路由表僅需維護其上一級勢能和下一級勢能的網絡節點即可,相同通信勢能的網絡節點不進入路由表。
由于本系統各網絡節點均為在線供電且具有后備電池,不考慮WSN通信能耗均衡。同時每個網絡節點均下設傳感器,系統通過巡檢替代心跳檢測,可以及時發現網絡節點失效問題。同時所有網絡節點均為固定安裝,因此路由算法不考慮網絡節點失效和拓撲動態重建問題,追求的是數據傳輸效率。
如圖4所示,若協調器發布采樣命令的最終目標為16號節點,協調器發起針對16號節點的定向請求,隨機選擇-1級的某節點(3#),3#發現16#不在其下一級勢能路由表中,因此在下一級勢能路由表隨機選擇一個網絡節點(例如8#),同理8#隨機發給11#,11#發現定向目標16#位于其下一級勢能路由表,然后定向發給16#;16#回復該請求的響應時,過程相反,凡是不在相鄰勢能,均為隨機抽取的非競爭關系,保證同一勢能內多個網絡節點的通信均衡。
2.2.3梯田算法的必要性
采用梯田通信模型,依據現場實際通信能力將網絡節點劃分成不同梯級,并禁止同梯級的網絡節點之間的通信,本方法與傳統的能量均衡路由算法相比,可以降低轉發次數,減少轉發率32%,節約數據傳輸總體時間32%,傳輸效率提高47%。
本文通過WSN配置軟件以及為分布式監測系統開發的上位軟件進行仿真和分析。
結合項目應用場景,在室外道路自由空間搭建無線傳感網,衰減各網絡節點通信距離為100 m(便于實驗觀測),布放距離及網絡拓撲如圖5所示。

圖5 測試環境無線傳感網絡拓撲Fig.5 Topology of wireless sensing network for the test environment
設置最遠端網絡節點7下掛智能加速度傳感器,網絡節點7為信源節點,傳感器通過485總線連接節點7,485總線通信波特率設置為115.2 Kb/s,WSN空中波特率為200 Kb/s,協調器節點通過串口與串口服務器相連,協調器與串口服務器串口波特率設為115.2 Kb/s,串口服務器通過交換機以TCP協議連接上位軟件;測試方法采用控制變量法。整體測試分為兩步:第一步驗證梯田通信法對傳輸效率的改善情況;第二步驗證自適應可變數據包長度對系統傳輸效率的改善情況。
本測試主要針對信源經過WSN到達協調器的跳數進行測試。
3.2.1采用能量均衡路由算法
由配置軟件通過協調器向網絡節點7的傳感器發送定時巡檢短命令請求,該傳感器的應答經過WSN返回協調器節點,記錄應答命令經過所有傳遞路徑的節點信息,配置軟件每5 s發送一次巡檢命令,共計發送5 000次。測試結果統計如表3。

表3 協調器向節點7發送短命令的路由跳數統計Tab.3 Routing hop count for coordinator sending short commands to node 7
跳數分布、各節點通信轉發次數(貢獻度)如圖6所示。

圖6 能量均衡路由算法-通信拓撲、路徑樹統計、節點轉發直方圖、 跳數統計直方圖Fig. 6 Energy-balanced routing algorithm-communication topology, path tree statistics, histogram of node forwarding, histogram of hop count statistics
作為信源的節點7和作為目的地的協調器貢獻度最高,在無電池供電的情況下,假定網絡節點死亡的次數為5 000次,當節點7率先死亡時,節點3、節點4剩余壽命約為16.67%,節點1、2、5、6剩余壽命約為20.83%。整個WSN網絡能量損耗均勻,節點7率先死亡的原因是因為本次測試將其作為唯一信源的原因,實際工程中可以由上位軟件對目標節點的非競爭巡檢實現信源節點的網絡能耗均衡。
3.2.2采用梯田通信路由算法
在圖5的基礎上,劃分梯田通信模型如圖7所示。

圖7 梯田通信劃分模型Fig.7 Terraced communication division model
測試方法同上。測試結果統計如表4所示。

表4 協調器向節點7發送短命令的路由跳數統計Tab.4 Routing hop count for coordinator sending short commands to node 7
跳數分布、各節點通信轉發次數(貢獻度)如圖8所示。

圖8 梯田通信路由算法-通信拓撲、路徑樹統計、節點轉發直方圖、 跳數統計直方圖Fig.8 Terraced communication routing algorithm-communication topology, path tree statistics, histogram of node forwarding, histogram of hop count statistics
信源網絡節點7和協調器的貢獻度最高,在無電池供電的情況下,假定網絡節點死亡的次數為5 000次,當節點7率先死亡時,其余節點剩余壽命均為50%,能耗分布更佳均勻,而且剩余壽命高于原算法。
3.2.3能量均衡路由算法與梯田通信路由算法比較
梯田通信勢能模型與網絡能耗均衡路由算法相比,在以下幾個方面有所不同:
1) 傳輸效率對比
將原來的5 000次傳輸累計跳數由29 167次降為20 000次,減少轉發率約為32%,節約數據傳輸總體時間32%,傳輸效率提高47%。
2) 網絡魯棒性
路徑由96種降為8種,網絡魯棒性降低。
3) 能耗均勻度
能耗均勻度略優。
4) 壽命殘值
各節點壽命殘值提升2.4~3倍。
搭建最簡測試模型如圖9所示。

圖9 最簡測試模型Fig.9 Minimalist test model
傳感器每通道采樣率5 kHz,傳感器的5個通道并發采集,每通道AD分辨率16 b,采樣時長1 s,系統通信參數配置見3.1節介紹。整體測試分為三步:第一步驗證每數據包長度為100 B對傳輸效率的改善情況;第二步驗證每數據包長度為200 B對系統傳輸效率的改善情況;第三步驗證每數據包長度為400 B對系統傳輸效率的改善情況。
本測試模型數據傳輸時長由以下內容決定:傳感器打包響應時長,傳感器與網絡節點1的通信時長,網絡節點1的2次打包時長,協調器與網絡節點1的通信時長,協調器解包時長,協調器與串口服務器的通信時長,串口服務器的3次打包時長,PC與串口服務器的通信時長等因素。
當網絡狀態穩定時,通過增加數據包長度,可以減少請求與響應的往復次數,通過這個措施,可以成倍地提高傳輸效率,但是數據包長度受到ModBus協議的限制,因此本文首先優化了傳輸協議;同時數據包長度還受到網絡節點以及串口服務器計算能力的影響,發現800 B以下的數據包傳輸性能比較穩定;超過該長度時,會出現數據丟失現象。
測試軟件采用分布式監測系統軟件V2.3版。測試過程如圖10,測試結果見表5。

表5 不同長度數據包傳輸效率測試Tab.5 Transmission efficiency test for different length packets

圖10 數據包為400 B的傳輸時間Fig.10 Transmission time for packets of 400 Bytes
測試結果顯示:通過增加數據包長度,可以有效減少信源響應的通信次數。雖然增加了各環節的單次通信計算量,但一次完整的數據傳輸過程,各環節的計算總量不變。在數據量固定時,增大數據包n倍,傳輸效率提升接近n倍。
本文提出基于梯田通信模型的無線傳感網絡通信方法。通過引入梯田通信勢能模型改善了WSN均衡路由算法導致的傳輸效率低下的問題;通過即時網絡狀態的自適應長度數據組包算法,進一步提高了WSN系統的數據傳輸效率。仿真測試結果表明:梯田通信勢能模型路由算法在可接受的網絡魯棒性條件下,系統傳輸效率為均衡路由算法的1.47倍;即時網絡狀態的自適應長度數據組包算法可提升系統傳輸效率2~8倍;兩種算法組合后可提升系統數據傳輸效率2.94~11.76倍。