楊盛泉,劉海泉,劉白林
(西安工業(yè)大學 計算機科學與工程學院,西安 710021)
?
ZigBee與RS485混合網(wǎng)絡的糧情監(jiān)控系統(tǒng)的研究
楊盛泉,劉海泉,劉白林
(西安工業(yè)大學 計算機科學與工程學院,西安 710021)
為了解決使用傳統(tǒng)方式采集糧庫溫度、濕度過程中表現(xiàn)出的低效率、誤差大、維護難等問題,提出研究與設計基于ZigBee與RS485混合網(wǎng)絡的糧情監(jiān)控系統(tǒng).文中首先介紹了糧情監(jiān)控混合網(wǎng)絡模型結構,它由感知層、網(wǎng)絡層與應用層組成;進而敘述了無線網(wǎng)絡中傳感器節(jié)點和匯聚節(jié)點的硬件組成和運行機理;最后討論了ZigBee網(wǎng)絡通信的數(shù)據(jù)幀的設計以及節(jié)點底層程序與工控機上位程序設計.通過工程實例運行表明,糧庫監(jiān)控中使用ZigBee與RS485混合網(wǎng)絡模式搭建運行可以揚長避短,具有組網(wǎng)靈活、數(shù)據(jù)精度高、低成本、方便維護管理等優(yōu)點.
ZigBee; RS485; 傳感器節(jié)點; 匯聚節(jié)點
我國是農(nóng)業(yè)大國且每年的糧食產(chǎn)量巨大,糧庫是保證糧食儲存安全的重要基礎設施,全國各地分布了大大小小若干糧庫,每個糧庫一般來說又由很多糧倉組成.糧倉的防潮、防霉、防火歷來是糧食倉儲企業(yè)工作人員的主要任務,而這個任務的順利完成需要通過一定的手段實現(xiàn)對糧倉內(nèi)部溫濕度等信息的有效實時監(jiān)測,且發(fā)現(xiàn)問題后立即采取對應有效措施[1].糧倉內(nèi)部的溫度、濕度的監(jiān)測(又稱為糧情監(jiān)測)在現(xiàn)代科學儲糧中占有非常重要地位,傳統(tǒng)的糧情監(jiān)測方法主要有兩種:① 早期自動化落后的糧庫是利用手持式傳感儀器進行人工讀數(shù)監(jiān)測并手動記錄,該方法存在勞動強度大、精度低、不連續(xù)、效率低下等缺點;② 現(xiàn)代很多新建的糧庫糧情監(jiān)控系統(tǒng)大多采用了有線集散式(DCS)監(jiān)控系統(tǒng),其糧倉內(nèi)外均采用多點有線傳輸儀器進行監(jiān)測,克服了早期人工監(jiān)測系統(tǒng)的部分缺點,但該方法實踐上存在施工周期長、糧倉內(nèi)部布線復雜、系統(tǒng)擴展適應能力差等缺點.
ZigBee作為一種新興物聯(lián)網(wǎng)的通信技術,是一種低成本、低復雜度、低功耗、高可靠性、高效率的雙向無線通信技術.ZigBee一般有效傳輸距離在10~100 m,主要用于物聯(lián)網(wǎng)中位置分散、結構復雜且組網(wǎng)靈活多變的各種電子設備之間進行數(shù)據(jù)傳輸以及典型的有周期性數(shù)據(jù)、間歇性數(shù)據(jù)和低延遲時間數(shù)據(jù)傳輸?shù)膽肹2].但是ZigBee技術本身是一種短距離的無線通信技術,有效通信距離不超過100 m.傳統(tǒng)RS485接口在工業(yè)通信總線型網(wǎng)絡上是允許連接多達128個下位收發(fā)器,即具有多站能力,這樣用戶可以利用單一的RS485接口方便地建立起總線型設備網(wǎng)絡.RS485不僅可以只需要兩個線連接遠距離的下位設備,而且可以保持很強的抗干擾能力.因此采用新興無線ZigBee網(wǎng)絡技術與傳統(tǒng)RS485有線工業(yè)總線網(wǎng)絡相結合的糧情監(jiān)控策略,可以揚長避短、實現(xiàn)兩者優(yōu)勢互補.將ZigBee無線通信技術應用于糧食存儲環(huán)境的溫度、濕度監(jiān)測,可以很好地解決糧倉中監(jiān)測節(jié)點眾多,分散性強,擴展和維修不方便等問題,將有效地解決糧倉內(nèi)有線系統(tǒng)的局限性以及各種缺點.同時利用RS485通信遠距離與抗干擾多機通信優(yōu)勢實現(xiàn)糧倉外與遠程糧情中心工控機持續(xù)高效通信.
在無線網(wǎng)絡IEEE802.15.4協(xié)議標準中ZigBee網(wǎng)絡一共定義了3種網(wǎng)絡拓撲結構:星型(Star Net)拓撲結構、樹簇型(Cluster Net) 拓撲結構和網(wǎng)格型(Mesh Net) 拓撲結構[3].根據(jù)糧庫中糧情監(jiān)測的特點,本系統(tǒng)采用星型(Star Net)拓撲結構,基于ZigBee與RS485混合網(wǎng)絡的糧庫監(jiān)測系統(tǒng)宏觀結構如圖1所示.
圖1 糧庫ZigBee與RS485混合網(wǎng)絡監(jiān)控宏觀結構圖
整個系統(tǒng)采用一般物聯(lián)網(wǎng)分層設計的方式,本系統(tǒng)設計為三層,具體如下:① 糧庫中1#~n#糧倉中各個傳感器節(jié)點為最低層,稱為感知層;② 每一個糧倉都有一個匯聚節(jié)點對糧倉信息統(tǒng)一采集管理,匯聚節(jié)點在物聯(lián)網(wǎng)中又稱為協(xié)調(diào)器節(jié)點,若干個糧倉的匯聚節(jié)點構成了中間層,稱為網(wǎng)絡層;③ 本地工業(yè)控制計算機以及通過Lan、Internet向上拓展的遠程客戶端為最高層,稱為應用層.
1.1 糧庫ZigBee系統(tǒng)感知層
系統(tǒng)的感知層主要是在糧倉中有規(guī)律地布置若干溫度、濕度傳感器節(jié)點.糧倉內(nèi)部的溫度、濕度進行檢測主要使用熱電偶或熱電阻以及濕敏電阻或電容等測量技術,其輸出信號是模擬量,需要經(jīng)過模數(shù)轉(zhuǎn)換才能得到實際的溫濕度值.本系統(tǒng)中糧倉中傳感節(jié)點模塊硬件是通過ZigBee芯片及其輔助電路連接實際的各種傳感器進行數(shù)據(jù)采集,并將數(shù)據(jù)進行簡單處理后通過其節(jié)點中的ZigBee自帶的RFID射頻發(fā)射器將數(shù)據(jù)發(fā)送給網(wǎng)絡層的ZigBee匯聚父節(jié)點.傳感器節(jié)點不能再連接子節(jié)點,它對于整個糧庫無線網(wǎng)絡系統(tǒng)來說沒有特定的維持網(wǎng)絡結構的責任,系統(tǒng)運行過程中為了維持低功耗的設計要求,傳感器節(jié)點要么處于睡眠狀態(tài)(Sleeping State)要么處于喚醒啟動至工作狀態(tài)(Working State),傳感器節(jié)點中一般使用氧化銀電池來供電.
一個糧庫中的各個ZigBee傳感節(jié)點模塊如何放置主要是由三大因素所決定的,他們分別是糧庫中糧倉的面積、糧倉之間的間距以及ZigBee節(jié)點模塊之間的通信距離[1].此外,它還受周圍環(huán)境等一些其它因素的影響.根據(jù)國家糧食行業(yè)標準規(guī)定,對于散裝糧食、農(nóng)副產(chǎn)品或者食用油料倉庫采用糧情監(jiān)控時,糧倉上層、下層及四周檢測點應分別設在距糧面、底部、倉壁0.3 m處,糧倉內(nèi)部在垂直方向大約每隔1 m左右安裝一套溫度、濕度傳感器,如高度為5 m左右的糧倉大概可以分 6 層布置檢測點.
1.2 糧庫ZigBee系統(tǒng)網(wǎng)絡層
糧庫ZigBee系統(tǒng)的網(wǎng)絡層由若干個匯聚節(jié)點通過有線的RS485總線連接組成,他們之間本身不進行數(shù)據(jù)通信,它包含兩個部分:下行為無線網(wǎng)絡、上行為有線網(wǎng)絡.匯聚節(jié)點在整個網(wǎng)絡系統(tǒng)也稱為協(xié)調(diào)器(Coordinator)節(jié)點.每一個糧倉內(nèi)部所有傳感器節(jié)點和該糧倉的協(xié)調(diào)器節(jié)點實質(zhì)是一個相對獨立的ZigBee子網(wǎng),糧倉的網(wǎng)絡協(xié)調(diào)器負責該糧倉子網(wǎng)絡的啟動和配置,它的硬件組成結構非常復雜.糧倉內(nèi)部系統(tǒng)工作的時候該糧倉的協(xié)調(diào)器選擇一個信道和網(wǎng)絡標識(Personal Area Network ID ,即PAN ID),發(fā)送網(wǎng)絡信標給所有的子節(jié)點,隨后啟動該糧倉子網(wǎng)絡.它跟傳感器節(jié)點比,它的存儲容量大、計算能力強,可以定期喚醒糧倉子網(wǎng)內(nèi)所有傳感節(jié)點上傳測量信息,同時通過協(xié)調(diào)器節(jié)點模塊的串口(UART)RS485接口將信息實時傳給本地工業(yè)控制計算機處理.
協(xié)調(diào)器節(jié)點在本系統(tǒng)起到連接遠程上位工業(yè)控制計算機與各糧倉傳感器節(jié)點通信橋梁的作用.各個糧倉的協(xié)調(diào)器節(jié)點一般安裝在糧倉附近的控制箱中,必須是一直處于活動狀態(tài),它需要使用持續(xù)電源供電.系統(tǒng)運行過程中,糧倉協(xié)調(diào)器節(jié)點通過動態(tài)優(yōu)先級進行周期循環(huán)掃描系統(tǒng)所有的傳感器節(jié)點并與其通信,如果某個糧倉傳感節(jié)點出現(xiàn)故障(如節(jié)點因缺電死去),能夠自動隔離并報警,同時將收集到的所有節(jié)點信息打包轉(zhuǎn)換成Modbus數(shù)據(jù)包發(fā)送給工業(yè)控制計算機.協(xié)調(diào)器節(jié)點模塊本身有LCD顯示屏和按鍵Key,可以在本地查看對應糧倉中的所有測量數(shù)據(jù)和歷史數(shù)據(jù).
1.3 糧庫ZigBee系統(tǒng)應用層
系統(tǒng)的應用層主要是面向糧庫企業(yè)用戶和操作人員,它主要是一臺本地工業(yè)控制計算機,內(nèi)部安裝糧情數(shù)據(jù)顯示管理軟件系統(tǒng)和糧情信息存儲數(shù)據(jù)庫.
考慮到糧庫企業(yè)遠程管理需要,系統(tǒng)可以通過企業(yè)局域網(wǎng)(LAN)或者廣域網(wǎng)(Internet)提供遠程訪問瀏覽糧情信息.遠程系統(tǒng)可以基于傳統(tǒng)的PC機,也可以基于移動設備開發(fā)的專用客戶端程序.從本地工業(yè)計算機到遠程系統(tǒng)信息傳輸使用網(wǎng)絡Socket通信中的TCP/IP協(xié)議進行數(shù)據(jù)傳輸.系統(tǒng)擴展這一部分不是本系統(tǒng)設計的重點(限于篇幅,本文后面不再詳述),但它可以提高糧情數(shù)據(jù)的使用效率和便捷性.
應用層核心部分是軟件設計,尤其是本地工業(yè)計算機中的管理系統(tǒng)軟件,它主要完成從ZigBee協(xié)調(diào)器節(jié)點串口通信過來的數(shù)據(jù)的采集、處理、分析、預警、顯示與儲存工作.
系統(tǒng)中節(jié)點設計主要包含:傳感器節(jié)點、匯聚節(jié)點的硬件設計,這些節(jié)點他們的共同特征都包含無線通信ZigBee接口的設計,這是ZigBee網(wǎng)絡系統(tǒng)硬件設計的重點部分.傳感器節(jié)點主要任務是收到匯聚節(jié)點數(shù)據(jù)請求后采集本地溫度、濕度信號數(shù)據(jù)、濾波管理后發(fā)送給匯聚節(jié)點;匯聚節(jié)點設計中包含上下行通信接口,上行接口中要實現(xiàn)RS232向RS485轉(zhuǎn)換,其數(shù)據(jù)通過RS485送給工業(yè)計算機顯示、存儲管理.
2.1 CC2530
國際通信聯(lián)盟(ITU)規(guī)定ZigBee無線網(wǎng)絡可以使用的頻段共有868 MHz、 915 MHz和2.4 GHz三個.其中915 MHz和2.4 GHz頻段為全球通用的ISM (Industrial Scientific Medical)頻段,此頻段主要是開放給工業(yè)、科學、醫(yī)學三個主要行業(yè)使用,屬于Free License,無需政府或者組織授權許可即可使用.CC2530 是德州儀器(TI)公司在2.4 GHz 頻段推出的第二代支持ZigBee 協(xié)議的片上系統(tǒng)(System On a Chip,SOC)芯片.它能夠以非常低的總的材料成本建立強大的物聯(lián)網(wǎng)節(jié)點.CC2530芯片內(nèi)部集成了高性能射頻(Radio Frequency ,RF) 收發(fā)器、工業(yè)標準增強型8051 單片機(MCU)內(nèi)核、 256KB Flash ROM(Read-Only Memory)和 8KB RAM(Random Access Memory)存儲器[4].
CC2530芯片主要特性如下:具有2個USART(Universal Synchronous/Asynchronous Receiver/Transmitter)統(tǒng)一同步異步收發(fā)器、8位和16位普通定時器、硬件看門狗定時器(Watchdog Timer)、8路輸入可配置的12位ADC(Analog-to-Digital Converter)模擬量轉(zhuǎn)數(shù)字量轉(zhuǎn)換器、21 個 GPIO(General Purpose Input Output)通用開關量輸入輸出單元、AES128 協(xié)同處理器,硬件支持CSMA/CA網(wǎng)絡監(jiān)測協(xié)議、數(shù)字化的接收信號強度指示(Received Signal Strength Indication,RSSI)/鏈路質(zhì)量指示(Link Quality Indication,LQI)和強大的 DMA(Direct Memory Access)直接數(shù)據(jù)傳輸功能,有電池監(jiān)測和溫度感測功能;內(nèi)部工作可支持5種工作模式,能較好地滿足低功耗系統(tǒng)的要求;在接收和發(fā)送模式時,電流損耗分別為24 mA和29 mA[4].由于它的硬件設計比較簡單、封裝小、功耗低,軟件上函數(shù)庫豐富、語法代碼兼容C語言,因此CC2530在無線傳感器網(wǎng)絡中得到了越來越廣泛的應用,當然它更滿足本系統(tǒng)硬件節(jié)點設計中應用.
2.2 傳感器節(jié)點
糧庫傳感器節(jié)點有溫度、濕度兩種,本系統(tǒng)中溫度、濕度傳感器選取SHT15二合一溫濕度傳感器,它是瑞士Sensirion公司推出的超小型、自校準、多功能式智能傳感器,可以測量相對濕度、溫度和露點等參數(shù)[5].SHT15傳感器是單片多用途的智能傳感器,芯片內(nèi)部包含基于濕敏電容器的微型濕度傳感器和基于帶隙電路的微型溫度傳感器,電路中使用了14位的A/D轉(zhuǎn)換器和2線串行接口,它內(nèi)部實時計算采集點的濕度和溫度數(shù)據(jù),所以節(jié)點中不再使用傳統(tǒng)設計需要的信號調(diào)理電路和放大電路,它能在同一測點位置測量糧倉的濕度和溫度信息.
溫度、濕度傳感器節(jié)點硬件組成原理框圖如圖2所示,它主要包含傳感器芯片SHT15、電源管理模塊LM3671、USB接口FT232RL、無線ZigBee模塊CC2530、帶通濾波器2.4G、天線單元.各個部分功能分別描述如下:
圖2 糧庫傳感器節(jié)點硬件組成原理框圖
1) 傳感器芯片SHT15:智能芯片采集并內(nèi)部計算溫度、濕度原始數(shù)據(jù)信息,它通過I2C總線跟無線ZigBee模塊CC2530連接.
2) 電源管理模塊LM3671:提供節(jié)點運行的供電電源,LM3671為電壓轉(zhuǎn)換芯片,它將鋰電池電壓轉(zhuǎn)換成3.3 V或者5 V給傳感器芯片和CC2430芯片使用.
3) USB接口FT232RL:本系統(tǒng)選取FTDI公司的FT232RL作為轉(zhuǎn)換芯片,用來將USB串行數(shù)據(jù)通過UART接口與CC2530數(shù)據(jù)實現(xiàn)透明傳輸.采用USB通信接口可以縮小傳感器節(jié)點體積,該接口既可用于程序的有線初始化下載和安裝前調(diào)試,也可作本地測試傳感器信息輸出的人機交互接入口.傳感器節(jié)點正常工作的情況下是采用無線的方式進行數(shù)據(jù)收集和網(wǎng)絡節(jié)點管理,為了降低功耗,節(jié)點設計有專門的電源開關將該USB接口關閉.
4) 帶通濾波器2.4 G:帶通濾波器(band-pass filter)是一個允許特定頻段的波通過同時屏蔽其他頻段的設備.為CC2530芯片提供純凈的2.4 G信號,濾去干擾頻率.
5) 天線單元:天線為ZigBee輸入輸出的信號變換器,它把節(jié)點傳輸線上傳播的導行波,變換成在給上行節(jié)點中傳播的電磁波,或者進行相反的變換.
2.3 匯聚節(jié)點
每個糧倉都設有一個匯聚節(jié)點,它允許該糧倉中的所有傳感器節(jié)點通過它加入到糧倉子網(wǎng)絡并成為其子節(jié)點,系統(tǒng)運行時,它負責與上層工業(yè)控制計算機進行RS485有線通信,為糧倉傳感器節(jié)點與遠程工業(yè)控制計算機聯(lián)系起到中繼作用所以在本系統(tǒng)中也稱為中繼節(jié)點,匯聚節(jié)點必須是一直處于活動狀態(tài),要使用持續(xù)電源供電.系統(tǒng)設計的匯聚節(jié)點與傳感器節(jié)點硬件組成有部分一樣,其硬件組成原理如圖3所示,內(nèi)部包含的主要模塊有:無線ZigBee模塊CC2530、節(jié)點LCD本地顯示模塊、節(jié)點本地Key輸入模塊、節(jié)點輔助儲存模塊、帶通濾波器2.4 G、天線單元以及電源管理模塊9 V等組成.其中跟傳感器節(jié)點不同的部分功能描述如下:
1) 節(jié)點LCD本地顯示模塊:可以顯示網(wǎng)絡內(nèi)部傳感節(jié)點傳送過來的采集數(shù)據(jù)信息與節(jié)點運行狀態(tài),還可以顯示節(jié)點本身的設置參數(shù),方便用戶現(xiàn)場直接查看或者通過本地Key修改.
2) 節(jié)點本地Key輸入模塊:提供一個專用的小型鍵盤,其使用矩陣掃描方式工作檢查用戶按鍵信號,通過Key模塊,可以本地設定節(jié)點性質(zhì)參數(shù)和網(wǎng)絡參數(shù),可以設定節(jié)點的工作模式.匯聚節(jié)點有兩種模式:Remote與Local,正常情況處于遠程Remote模式,對于一旦跟上位機通信故障該節(jié)點自動轉(zhuǎn)入本機Local模式.匯聚節(jié)點處于Local模式時USB接口啟用,節(jié)點本地可以連接PC機進行調(diào)試.
3) 節(jié)點輔助儲存模塊:選用了AT 24C256 芯片,通過多片互聯(lián),可方便擴展存儲容量,主要是存放歷史采集數(shù)據(jù)與后備參數(shù)設置.
4) RS232 轉(zhuǎn)485單元:該單元將芯片的RS232接口轉(zhuǎn)換成RS485可以直接連接到計算機的RS485串口上進行通信.匯聚節(jié)點可以用外部設備通過該通信口給其設定如波特率、地址、停止位等參數(shù).多個匯聚節(jié)點通過它掛到一條總線上直接與工業(yè)計算機進行數(shù)據(jù)交換.節(jié)點的RS485通信口與USB通信接口任何時候只能啟用一個(通過Key可設置修改或者通信Remote/Local方式轉(zhuǎn)換),內(nèi)部都是直接通過電路連接到CC2530的通信接口.
5) 持續(xù)電源模塊9 V:因為匯聚節(jié)點一直必須處于工作狀態(tài),所以必須選用持續(xù)直流9 V電源,通過電壓轉(zhuǎn)換給CC2530以及節(jié)點其他部分實現(xiàn)持續(xù)供電.
圖3 糧庫匯聚節(jié)點硬件組成原理框圖
3.1 節(jié)點底層軟件設計
節(jié)點底層軟件設計包含傳感器節(jié)點程序設計與協(xié)調(diào)器節(jié)點(匯聚節(jié)點)程序設計,底層程序下載首先要設置好常規(guī)參數(shù)如節(jié)點地址、節(jié)點性質(zhì)以及網(wǎng)絡號等,然后下載ZigBee默認協(xié)議棧程序和用戶編制的程序.傳感器節(jié)點工作時收到匯聚節(jié)點周期性地采集溫度、濕度數(shù)據(jù)指令后,驅(qū)動內(nèi)部芯片工作采集并適當處理后,存入到儲存緩沖區(qū)中,經(jīng)過ZigBee內(nèi)部的8051MCU進行數(shù)據(jù)打包并通過RFID發(fā)送給匯聚節(jié)點.他們的無線通信程序是底層程序的核心,為了方便管理和編程,本系統(tǒng)中傳感器節(jié)點與匯聚節(jié)點通信的數(shù)據(jù)包協(xié)議格式統(tǒng)一設計見表1.
表1 節(jié)點通信數(shù)據(jù)包協(xié)議格式
各個部分解釋如下:
1) 幀頭(STX): 通信時標志一個數(shù)據(jù)幀的開始.長度為一個字節(jié),內(nèi)容固定為0x02.
2) 數(shù)據(jù)長度(DLen):發(fā)送數(shù)據(jù)從幀頭到數(shù)據(jù)域長度,不包括數(shù)據(jù)塊校驗值和幀尾,在本協(xié)議中固定為0x10.
3) 源節(jié)點地址(SAddr): 該地址Zigbee為發(fā)送端節(jié)點地址,節(jié)點地址編號在網(wǎng)絡中唯一,占據(jù)2個字節(jié).
4) 目標端節(jié)點地址(DAddr):該地址Zigbee為接收端節(jié)點地址,節(jié)點地址編號在網(wǎng)絡中唯一,占據(jù)2個字節(jié).
5) 數(shù)據(jù)域信息(Data):該項為信息內(nèi)容載體,包含發(fā)送控制指令信息2個字節(jié)和數(shù)據(jù)信息8個字節(jié),總共長度10字節(jié).
6) 數(shù)據(jù)塊校驗值(BCC):該數(shù)據(jù)幀校驗方式為異或校驗,即由幀頭到數(shù)據(jù)域信息所有字節(jié)異或XOR得到.BCC為一個字節(jié).
7) 幀尾(ETX): 通信時標志一個數(shù)據(jù)幀的結束.長度為一個字節(jié),內(nèi)容固定為0x03.
傳感器節(jié)點上電后,裝載設定參數(shù)并且尋找有效ZigBee網(wǎng)絡加入.然后進入休眠模式,在休眠狀態(tài)中主要是進行低功耗地掃描上層網(wǎng)絡讀指令.節(jié)點一旦接收到測量指令,立刻喚醒其內(nèi)部的微處理器進入工作模式,啟動芯片工作讀取傳感器數(shù)據(jù).最后芯片處理器將測量數(shù)據(jù)按照幀協(xié)議格式打包發(fā)送給協(xié)調(diào)器節(jié)點.其程序工作流程如圖4所示.
圖4 傳感器節(jié)點程序工作流程
在每一個糧倉中,每個匯聚節(jié)點與該糧倉的所有傳感器節(jié)點構成一個糧倉子網(wǎng),匯聚節(jié)點的ZigBee無線射頻模塊接通電源并復位后,首先開始一個具有唯一ID標識的ZigBee網(wǎng)絡并初始化該子網(wǎng).節(jié)點程序其次掃描同信道號與網(wǎng)絡號的節(jié)點入網(wǎng)申請并應答,為每個同糧倉內(nèi)的傳感器節(jié)點分配本網(wǎng)絡內(nèi)唯一的16位的地址[6].為了遵守系統(tǒng)整體運行低功耗的要求,匯聚節(jié)點程序每隔一定的周期(參數(shù)可設,本系統(tǒng)默認周期為300 S)掃描采集糧倉內(nèi)所有傳感器節(jié)點的信息數(shù)據(jù),如果沒有到掃描周期,系統(tǒng)直接進入LCD本地數(shù)據(jù)顯示子程序;采集周期到了后,匯聚節(jié)點依次發(fā)出節(jié)點測量指令,直到收到所有節(jié)點的數(shù)據(jù)信息.匯聚節(jié)點收到傳感器傳過來的數(shù)據(jù)適當濾波處理并且保存到本地節(jié)點儲存器中,通過節(jié)點設計的LCD顯示屏可以顯示當前采集的數(shù)據(jù)和歷史數(shù)據(jù).節(jié)點同時還設計了按鍵Key,進行本地參數(shù)設置和操控.每個周期中,節(jié)點都留有時間片,響應跟上位工控機機進行RS485通信.其程序工作流程如圖5所示.
圖5 協(xié)調(diào)器節(jié)點程序工作流程
3.2 本地工控機糧情管理軟件設計
本地上位工控機糧情管理軟件主要實現(xiàn)與現(xiàn)場各個匯聚節(jié)點控制模塊通過有線RS485通信,軟件畫面實時顯示各個糧倉的各種測量溫度、濕度數(shù)據(jù).RS485的優(yōu)點可以實現(xiàn)遠距離(最長可達1 200 m)無干擾穩(wěn)定通信,滿足糧食倉儲企業(yè)的布線長距離要求,而且布線只需兩根線即可,實施成本低[7].本地上位工控機系統(tǒng)與多個糧倉匯聚節(jié)點進行有線RS485的通信采用動態(tài)優(yōu)先級主從模式,通信程序算法步驟描述如下:① Open Comm_hand,用于初始化并打開上位機RS485串口; ② Build Handshake,用于與下位機匯聚節(jié)點RS485的建立握手信號;③ Send Data Frame,定期循環(huán)發(fā)送通信數(shù)據(jù)幀給下位匯聚節(jié)點;④ Receive Data Frame,接收來自于下位匯聚節(jié)點信測量數(shù)據(jù)幀;⑤ Close Comm_hand 關閉RS485串口.
本地上位工控機糧情管理軟件系統(tǒng)的主要模塊框圖如圖6所示,其主要包含:匯聚節(jié)點通信模塊、糧倉布置顯示模塊、測量預警控制模塊、數(shù)據(jù)存儲管理模塊、曲線動態(tài)顯示模塊、數(shù)據(jù)統(tǒng)計打印模塊等.系統(tǒng)將各個糧倉所有的傳感器采集數(shù)據(jù)顯示到人機界面上并且在后臺定期記錄到數(shù)據(jù)庫中,另外還可以用動態(tài)趨勢圖顯示溫度曲線或者圓餅圖的形式直觀顯示相對濕度百分比.系統(tǒng)可以根據(jù)事先設定的溫濕度監(jiān)控范圍對溫濕度進行預警,一旦超出設定范圍,計算機立即啟動聲光報警提醒操作人員進行通風或者干燥工作.操作人員根據(jù)系統(tǒng)存儲記錄數(shù)據(jù)可以按照一定的條件進行篩選、統(tǒng)計并打印出來,以供專家或技術人員離線存檔、分析或者決策,實現(xiàn)對糧情問題提前發(fā)現(xiàn),提前提出控制策略來保護糧食的保存質(zhì)量.
圖6 糧情管理軟件系統(tǒng)模塊組成圖
基于無線ZigBee和有線RS485總線的混合網(wǎng)絡使用Delphi XE開發(fā)工具在Windows 7平臺下為國內(nèi)某糧食集團糧庫設計了實時溫濕度監(jiān)控系統(tǒng),該企業(yè)的糧庫分布范圍廣,數(shù)量眾多,每個糧倉內(nèi)部安裝若干溫濕度傳感器節(jié)點,每個糧倉旁安裝一個匯聚節(jié)點使用無線ZigBee網(wǎng)絡對其統(tǒng)一管理,并且所有匯聚節(jié)點都通過有線RS485總線連接到工控機的通信口上,其工控機運行的軟件系統(tǒng)實際主畫面如圖7所示.
軟件系統(tǒng)中通過三維圖片逼真地顯示企業(yè)糧倉布置情況,從畫面上可以直觀地顯示各個測量數(shù)據(jù).軟件中實現(xiàn)通過下拉列表選擇任意一個糧倉,糧倉里面分多層布置了若干溫濕度傳感器,每一個傳感器節(jié)點都有三維坐標(x,y,z)進行標識,在窗口畫面中點擊哪一層按鈕,系統(tǒng)就自動切換到該層的采集溫濕度標簽顯示.軟件中另外設計了數(shù)據(jù)查詢、報警信息和溫濕度趨勢、歷史曲線和統(tǒng)計打印按鈕,可以切換到該糧倉其他操作應用界面窗口.
圖7 糧情管理系統(tǒng)實際開發(fā)主畫面
本文提出了一種基于無線ZigBee和有線RS485總線的混合網(wǎng)絡糧情監(jiān)控系統(tǒng),每個糧倉采用核心為CC2530芯片的ZigBee模塊設計了若干溫濕度采集的傳感器節(jié)點和一個匯聚節(jié)點,構成了無線ZigBee網(wǎng)絡.所有糧倉的匯聚節(jié)點通過RS485有線網(wǎng)絡連接到遠程工業(yè)控制計算機.這種設計發(fā)揮了兩種網(wǎng)絡的優(yōu)點,實際工程實施運行表明,本系統(tǒng)具有易于搭建、組網(wǎng)靈活、施工周期短、通信距離長、采集數(shù)據(jù)精度高、可擴展性強和運行穩(wěn)定可靠等優(yōu)點,在國內(nèi)外糧庫監(jiān)控中具有良好的應用前景.
[1] 姜輝,甄彤,王鋒.基于ARM/ZigBee 的遠程糧情監(jiān)控系統(tǒng)的研究與設計[J].中國農(nóng)機化學報,2015,36(2):99.
JIANG Hui,ZHEN Tong,WANG Feng.Research on and Design of the Remote Grain Monitoring System Based on ARM/ZigBee[J].Journal of Chinese Agricultural Mechanization,2015,36(2):99.(in Chinese)
[2] 梅志堅,馬婭婕,肖凡男.基于ZigBee和GPRS的大氣污染監(jiān)測系統(tǒng)設計[J].武漢科技大學學報,2015,38(1):63.
MEI Zhijian,MA Yajie,XIAO Fannan.Design of Air Pollution Monitoring System Based on ZigBee and GPRS[J].Journal of Wuhan University of Science and Technology,2015,38(1):63.(in Chinese)
[3] 金中朝,蘇本躍,江偉,等.基于ZigBee的自習室人數(shù)智能查詢系統(tǒng)設計與實現(xiàn)[J].貴州大學學報(自然科學版),2014,31(6):85.
JIN Zhongchao,SU Benyue,JIANG Wei,et al.Design and Implementation of Self-Study Room People Number Intelligent Query System Based on Zigbee[J].Journal of Guizhou University(Natural Science Edition),2014,31(6):85.(in Chinese)
[4] 陳克濤, 張海輝, 張永猛, 等.基于CC2530的無線傳感器網(wǎng)絡網(wǎng)關節(jié)點的設計[J].西北農(nóng)林科技大學學報(自然科學版), 2014,42(5):183.
CHEN Ketao,ZHANG Haihui,ZHANG Yongmeng,et al.Desing of CC2530 Based Gateway Node for Wireless Sensor Network[J].Journal of Northwest A&F University(Natural Science Edition),2014,42(5):183.(in Chinese)
[5] 李艷,葛年明,陳杰.基于ZigBee的多傳感器物聯(lián)網(wǎng)無線監(jiān)測系統(tǒng)設計[J].自動化技術與應用, 2015,34(1):47.
LI Yan,GE Nianming,CHEN Jie.Design of Multi-Sensor Iot Wireless Monitoring System Based on the ZigBee[J].Techniques of Automation & Applications,2015,34(1):47.(in Chinese)
[6] 趙樹恩,張沙沙.基于ZigBee技術的交通信號燈辨識系統(tǒng)設計[J].計算機測量與控制,2014,22(2):4066.
ZHAO Shuen,ZHANG Shasha.Design of Traffic Lights Identification System Based on ZigBee[J].Computer Measurement & Control,2014,22(2):4066.(in Chinese)
[7] 宋躍,楊雷,雷瑞庭,等. 基于ARM9與LINUX的RS485總線的通信接口設計[J].儀表技術與傳感器,2014,5:35.
SONG Yue,YANG Lei,LEI Ruiting,et al.Design of RS485 Bus Communication Interface Based on ARM9 and LINUX[J].Instrument Technique and Sensor,2014,5:35.(in Chinese)
(責任編輯、校對 肖 晨)
Research on Grain Monitoring System Based on ZigBee and RS485 Hybrid Network
YANGShengquan,LIUHaiquan,LIUBailin
(School of Computer Science and Engineering,Xi’an Technological University,Xi’an 710021)
The traditional way of collecting the temperature and humidity of grain depots has the disadvantages of low efficiency,big deviation and difficult maintenance. In order to solve the problems,the paper presents a new monitoring system based on the ZigBee and RS485 Hybrid Network.First,the structure of the hybrid network model is introduced, which is composed of a perception layer,a network layer and an application layer.Then the hardware composition and operation mechanism of the sensor node and sink node in the wireless network are described. Finally,the design of the data frame of the ZigBee network communication, the design of the chip internal programs of the two nodes and the design of the upper program of the industrial control computer are discussed in detail.An engineering example shows that the new monitoring system based on the ZigBee and RS485 hybrid network mode has the advantages of flexible networking,high data accuracy,low cost and simple maintenance,etc.
ZigBee;RS485;sensor node;sink node
10.16185/j.jxatu.edu.cn.2016.09.012
2016-03-28項目基金:新型網(wǎng)絡與檢測控制國家地方聯(lián)合工程實驗室基金項目(GSYSJ2016014)
楊盛泉(1974-),男,西安工業(yè)大學副教授.主要研究方向為智能控制、專家系統(tǒng)、軟件工程.E-mail:xaitysq@163.com.
TP277
A
1673-9965(2016)09-0749-08