羅 劍
(浙江經濟職業技術學院數字信息技術學院,浙江 杭州 310018)
倉儲環境監測是面向物流園區、倉庫等各類物品存放現場,通過收集敏感數據輔助管理人員全面把握庫存質量現狀和發展趨勢,消除安全隱患的作業過程,是物流供應鏈中非常重要的業務環節[1]。傳統企業倉儲現場環境監測主要采取人工巡檢的方式開展[2],既安排專人每隔一定時間巡檢一次并做記錄。這種操作方法勞動強度很大,不僅費時費力且容易出紕漏,工作質量難以保證,對于大型庫區基本只能做到一日一檢。隨著國民經濟的快速發展,運用信息技術改造和完善倉儲管理過程,成為現代化企業的選擇。
有線在線監測技術主要借助光電信號等作為傳輸介質,利用雙絞線、電纜和光纖等媒介在計算機局域網、電話網等專用網絡線路上傳輸信號,具有信號失真度小、無明顯噪聲污染、工作穩定的優點[3]。但是如果現存庫區堆放貨物過多,則一次性線路改造投入成本高昂,再行布線的可操作性不強。無線傳感器網絡(Wireless Sensor Networks,WSNs)是由部署在監控區域內大量傳感器節點互相通信形成的多跳自組織網絡,是物聯網感知層的重要技術形式[4]。隨著無線通信、傳感器制造、嵌入式應用等技術的日益成熟,WSNs可以在任何地點、任何時間、任何環境條件下獲取敏感數據。由于WSNs具有自組織、快速部署、容錯性高和無需布線等技術優勢,因此非常適合環境數據收集、目標定位和野外探測等眾多領域。本文采用無線在線監測方法,綜合運用WSNs、嵌入式開發、串口通信和面向對象編程等多種信息技術,實現筆者參與實施的某化工企業倉儲智能監測改造項目。
目標企業本期投入改造的3號倉庫共有兩層,每層面積2308m2,包括3個主要存放區和1個配件區,放置有大量有機化工類產品,要求溫度和光照度等參數保持在恒定范圍之內。一旦溫度或者光照等超出產品的承受范圍,可能引發火災爆炸等安全事故。項目實施前現場安裝有溫度計和照度計等簡單設備,采用人工巡檢方式,無法做到對倉儲各點實時監測。因此需要一套完整、全面的監測系統,即倉儲管理人員可以通過軟件界面實時觀察倉庫環境參數的動態變化,當內部某處的溫度或光照數據超出正常范圍時,監測人員可以馬上看到并采取相應措施。經過對現場堆放區域布局的充分了解,確定上位機和WSNs協調器安置于庫房辦公室。考慮到貨架對無線信號的遮擋,系統設計確保必要的冗余度。在每層對應的主通道分別安放1個路由節點,多個終端感知節點分布于不同的貨架區域,保證節點信號經過0~1次路由中轉即可匯聚到協調器。根據庫房條件,協調器和路由節點提供有源接入,終端節點使用電池供電,系統要求實現的技術性能指標有以下。
⑴ 使用壽命:終端節點電池維持工作6個月以上。
⑵ 反應時間:網絡拓撲更新時間<2秒,采集數據響應時間<1秒。
⑶ 數據可靠性:監測溫度誤差<1℃,光敏值正負偏差<2%。
⑷ 系統穩定性:節點故障/月<1次。
ZigBee協議是行業公認的WSNs標準協議,提供傳感器節點間網絡通信的短距離無線接入,是一種低復雜度、低功耗、低數據速率、低成本、低時延的無線網絡通信技術。2.4GHz工作頻段數據傳輸速率為250kb/s,節點間通信時延30ms,休眠狀態激活時延15ms。低耗電休眠模式無源節點兩節電池可以使用6個月以上。經過實際測試,空曠區域節點之間最大通信距離可達200米,如遇障礙物最大通信距離縮減至20米以內。鑒于ZigBee技術上述特點能夠滿足倉儲監測系統的性能指標要求,故選擇其作為系統網絡傳輸協議。開發過程使用基于CC2530片上系統和ZigBee Pro協議的半開源代碼庫Z-Stack[6]實現。
協調器內置ZigBee模塊CC2530和其他WSNs節點無線通信,與上位機通過USB接口有線連接。節點板主要包括溫度傳感器、光敏傳感器、ZigBee無線模塊CC2530等,由電源或者2節5號電池供電。根據寫入Z-Stack程序的不同,既能夠作為路由節點,也可以作為終端感知節點。現場采集的溫度和光敏數據源自節點板上的溫度傳感器TC77和光敏傳感器TPS851。TC77是串行通信數字溫度傳感器,分辨率0.0625℃,利用SPI和MICROWIRE兼容接口將信號傳送到CC2530處理。TPS851是一款超小型表面貼裝光照度傳感器,內部集成光電二極管和電流放大器電路,光譜靈敏度接近發光效率,輸出信號具有波動小和線性程度高的特點。
協調器通過USB接口和上位機之間數據交互的實質是串口通信技術,常見于外設和計算機間通信。通過數據信號線、地線、控制線等按位傳輸數據,不再贅述。
Z-Stack支持星狀、樹狀、串狀和網狀等網絡,可以完成多種形式的組網模式。考慮適用性和拓展性,本系統網絡拓撲選擇為網狀網。在協議棧文件nwk_globals.h和nwk_globals.c中定義網絡參數,包含五級深度路由,設置每級最多掛載6個路由節點和20個終端節點。監測系統含上位機、網關(協調器)、路由節點和終端節點等4種設備類型。其中,終端節點負責控制現場設備和采集現場數據;路由節點實現網絡動態路由,兼備終端節點功能;網關負責建立ZigBee網絡,存儲和管理在網節點信息,兼備路由節點功能,并通過串口與上位機通信;上位機負責接收網關數據和發送用戶操作指令,實現可視化和形象化的人機界面。
協議棧原型程序是德州儀器公司提供的SampleApp案例,協議棧出廠時在NWK層已經實現了WSNs網絡AODV路由協議[7]。系統功能在此基礎上修改完成,包括協調器端和節點端應用層開發,分別敘述如下。
協調器軟件作為用戶監控端和無線傳感器網絡連接的紐帶,其功能流程如圖1。在網絡建立過程中,協調器啟動后發送NLMENETWORK-FORMATION.request原語完成網絡初始化工作。隨機選擇一個個域網標識符(PAN_id),將協調器網絡地址置為0X0000啟動和建立網絡。PAN_id等過程參數保存在協調器的非易失性存儲器(NV)中,只有人為重啟才會恢復出廠設置。因此,如果協調器掉電重啟直接從NV中讀取上述參數建立網絡,由此加快網絡建立過程,縮短設備重新聯網時間。在建立ZigBee網絡之后,監測網絡數據以完成兩個主要任務,通過串口收發事件SPI_INCOMING_ZTOOL_PORT接收上位機指令發往目標節點;通過無線接收事件AF_INCOMING_MSG_CMD將目標節點返回的數據包發回上位機。
路由節點和終端感知節點軟件流程如圖2。待入網設備主動發送NLMENETWORK-DISCOVERY.request原語掃描備選頻道,在返回的信標幀中收集附近網絡的技術參數,包括頻道號、PAN_id、允許加入標志等。如果有可以加入的網絡則調用NLME-JOIN.request原語請求加入該網絡,步驟包括在網絡層鄰居表中搜索合適的父節點和發送MLME-ASSOCIATE.request原語的MAC層關聯等。成功入網后刷新父子節點的鄰居表,更新網絡層信息庫(NIB)中的網絡參數,并將網絡分配的PAN_id等參數保存在設備的NV中。利用輪詢觸發的ZDO_STATE_CHANGE事件將自身網絡拓撲信息經協調器發回上位機。利用無線接收事件AF_INCOMING_MSG_CMD處理接收到的上位機指令執行相應傳感器讀寫操作后返回結果。

圖2 節點軟件流程
監控軟件采用VS2017.net環境開發,程序設計語言為c#。在網絡自動刷新狀態下將實時的WSNs拓撲圖顯示在操作界面中;用戶可以通過上位機發出命令讀取WSN網絡中任意節點的傳感數據,同時軟件提供超限報警功能,圖3展示了軟件操作界面。

圖3 上位機監控軟件操作界面
系統存儲的在線數據主要有兩類,一類用于構建WSNs網絡拓撲,另一類是實時傳感器監測數據,兩類數據使用不同的數據結構。網絡拓撲信息保存在DataTable平面表的實例中,每行存儲一個節點,包括節點地址、父節點地址和節點類型信息;每個在網傳感器監測數據均保存在PointPairList(點對鏈表)實例中,包括和時間相關的溫度和光敏數據,提供導出到磁盤文件功能。
上位機和協調器通信有固定的數據格式,該數據包含32個字節,如表1。數據頭分配1個字節;通過發送3個字節命令頭告訴對方執行何種操作;物理地址是64位IEEE地址,即全球唯一的MAC地址,設備在生命周期中一直擁有該地址,通常由制造商或者被安裝時設置;網絡地址是每個節點入網后按照WSNs網絡協議分配的2字節地址,類似于IP地址;數據緩沖區定義了16字節的內存空間存放傳輸數據;校驗位采用加和方式進行,占據1個字節;幀尾是數據的結尾符,其與數據頭相對應占用1個字節。考慮到WSNs的低功耗要求和Z-Stack協議棧自帶數據傳輸識別和校驗功能,協調器、路由器和終端節點中任意兩個設備間傳輸的數據包去掉了數據頭、加和校驗位和幀尾3個字段。

表1 數據包格式
監控軟件兩個主要功能分別為:建立網絡拓撲和數據采集。用戶打開串口與協調器相連后,發送廣播搜索WSNs在網節點,隨后在該節點上傳響應信息存入DataTable平面表,完成建立網絡拓撲功能,操作時序如圖4所示。接著可以啟用自動刷新功能完成節點的動態更新,根據節點返回的信號強度進行刪除失聯節點和加入新增節點的操作。在網絡拓撲界面(圖3)選中某個在網節點發送傳感數據采集命令,相應目標節點接收指令采集感知信息返回后存入PointPairList點對鏈表,實現用戶實時查看現場環境數據的功能。

圖4 建立網絡拓撲
利用物聯網關鍵技術實現倉儲環境實時監測能夠使管理者更有效地對庫區進行管理,具有投入少、見效快的優點。經過試運行測試,系統實際技術性能指標均達到或超過設計指標,可以滿足用戶當前的需求。下一步將從三個方面改進:首先,無線傳感器網絡節點能量受限,特別是功耗較大的路由節點如果因為環境限制無法滿足有源條件,故需要改進AODV路由協議實現全體在網節點能耗同步;其次,多個近鄰傳感器發送的信息具有時空相關性和數據相關性,如何進行數據融合以進一步減少網絡傳輸能耗是值得研究的問題;最后,使用云服務,將采集的實時數據匯總到云端,應用多樣的數據挖掘技術為用戶提供更為智能化的定制服務是必由之路。
參考文獻(References):
[1]申悅,劉軍,王程安.倉儲環境監測的研究和進展[J].物流技術,2015.34(8):265-268
[2]張煥國.Wi_Fi和WSN技術在奶制品生產企業倉儲管控系統中的應用[J].物流技術(裝備版),2014.12:91-93
[3]龐慶范,羅建,崔亮,羅二平.一種醫院供氧監測數據的有線傳輸技術[J].醫療裝備衛生,2004.25(3):22-23
[4]錢志鴻,王義君.面向物聯網的無線傳感器網絡綜述[J].電子與信息學報,2013.35(1):215-227
[5]ZigBee Standards Organization,"ZigBee Specification(ZigBee Document 053474r20)",http://www.zigbee.org,2012.
[6]Texas Instruments Inc,"Z-Stack Developer's Guide(Document Number:SWRA176)",http://www.ti.com/,2011.
[7]InternetEngineeringTaskForce(IETF),"Ad hoc On-Demand Distance Vector(AODV)Routing",https://datatracker.ietf.org/doc/rfc3561/,2013.