靳建彬,黃國(guó)雄,段方振
(中國(guó)衛(wèi)星海上測(cè)控部,江蘇江陰214431)
基于測(cè)量船網(wǎng)絡(luò)的分布式機(jī)房環(huán)境監(jiān)控系統(tǒng)實(shí)現(xiàn)
靳建彬,黃國(guó)雄,段方振
(中國(guó)衛(wèi)星海上測(cè)控部,江蘇江陰214431)
針對(duì)海上測(cè)控任務(wù)對(duì)設(shè)備工作性能和狀態(tài)的高要求,基于測(cè)量船局域網(wǎng)開發(fā)了分布式機(jī)房環(huán)境自動(dòng)化監(jiān)控系統(tǒng)。系統(tǒng)通過(guò)傳感器進(jìn)行數(shù)據(jù)采集,基于Socket技術(shù)傳輸數(shù)據(jù),最后以WEB方式發(fā)布各機(jī)房的溫濕度等數(shù)據(jù),并提供歷史數(shù)據(jù)的查詢和報(bào)警功能,完成對(duì)機(jī)房環(huán)境自動(dòng)化、網(wǎng)絡(luò)化的實(shí)時(shí)監(jiān)控。
遠(yuǎn)程監(jiān)控,分布式,WEB,溫濕度,自動(dòng)化
隨著信息技術(shù)的不斷發(fā)展,自動(dòng)化監(jiān)控技術(shù)廣泛應(yīng)用于工業(yè)生產(chǎn)、倉(cāng)庫(kù)、圖書館等重要場(chǎng)所,為生產(chǎn)和環(huán)境安全提供了重要的監(jiān)測(cè)手段。
遠(yuǎn)洋航天測(cè)量船特裝設(shè)備是完成測(cè)量、控制任務(wù)的核心裝備,必須保證裝備工作在合適的機(jī)房環(huán)境中,才能保持最好的性能和狀態(tài)。目前,測(cè)量船各機(jī)房的環(huán)境監(jiān)測(cè)主要依靠指針式溫濕度計(jì),通過(guò)管理人員巡檢并結(jié)合經(jīng)驗(yàn)視情作出處理。這種人工式巡檢方法,存在監(jiān)測(cè)不及時(shí)、維護(hù)保養(yǎng)差、記錄不方便、人為因素多等一系列缺陷,容易造成裝備的腐蝕、銹蝕和損壞。
本文根據(jù)測(cè)量船機(jī)房的特點(diǎn)和需求,設(shè)計(jì)并實(shí)現(xiàn)了基于測(cè)量船網(wǎng)絡(luò)的分布式機(jī)房環(huán)境監(jiān)控系統(tǒng),完成對(duì)機(jī)房環(huán)境全天候、網(wǎng)絡(luò)化的實(shí)時(shí)監(jiān)控。
1.1 系統(tǒng)結(jié)構(gòu)組成
基于測(cè)量船網(wǎng)絡(luò)的分布式機(jī)房環(huán)境監(jiān)控系統(tǒng),其組成結(jié)構(gòu)如下頁(yè)圖1所示,主要由數(shù)據(jù)采集終端、船內(nèi)局域網(wǎng)絡(luò)和遠(yuǎn)程終端組成。系統(tǒng)的主要功能是將數(shù)據(jù)采集終端獲取的溫濕度等環(huán)境數(shù)據(jù)通過(guò)測(cè)量船網(wǎng)絡(luò)發(fā)送到服務(wù)器進(jìn)行處理,用戶通過(guò)WEB的方式進(jìn)行監(jiān)測(cè)、查看。
數(shù)據(jù)采集終端分布于各機(jī)房的監(jiān)控節(jié)點(diǎn),主要負(fù)責(zé)獲取機(jī)房環(huán)境信息,完成與服務(wù)器的數(shù)據(jù)交互,包括溫濕度傳感器、通信接口、單片機(jī)、網(wǎng)絡(luò)處理芯片、網(wǎng)絡(luò)接口和電源模塊。其中傳感器接口用于單片機(jī)與溫濕度傳感器的通信;網(wǎng)絡(luò)處理芯片用于網(wǎng)絡(luò)通信物理層的處理;網(wǎng)絡(luò)接口用于網(wǎng)絡(luò)通信芯片輸入輸出接口。
圖1 分布式機(jī)房環(huán)境監(jiān)控系統(tǒng)組成框圖
1.2 數(shù)字溫濕度傳感器
溫濕度傳感器包括模擬和數(shù)字兩種,其基本原理相似。相比較模擬傳感器,數(shù)字傳感器輸出信號(hào)為數(shù)字信號(hào),不受外部環(huán)境的影響,抗干擾性好,可以遠(yuǎn)距離傳輸;數(shù)字傳感器集成化程度高,體積小,可以簡(jiǎn)化系統(tǒng)設(shè)計(jì)。
本系統(tǒng)采用數(shù)字溫濕度傳感器模塊來(lái)采集數(shù)據(jù),選用瑞士進(jìn)口的SHTXX系列傳感器,具有高精度、低功耗、高可靠性等特點(diǎn),且傳感器的精度一致性好。
1.3 單片機(jī)
單片機(jī)采用RSIC指令集的AVR單片機(jī),具有運(yùn)行速度快、接口豐富、編程環(huán)境友好等許多優(yōu)點(diǎn)??紤]到本系統(tǒng)對(duì)外接口不多,單片機(jī)不需要較多的IO端口,但是網(wǎng)絡(luò)協(xié)議的處理需要較多的RAM、ROM空間,綜合考慮速度、芯片體積、存儲(chǔ)空間,選擇Atmel公司的ATMEGA328單片機(jī)作為本系統(tǒng)的核心控制微處理器。
1.4 通用網(wǎng)絡(luò)接口芯片
通用網(wǎng)絡(luò)接口芯片一般采用并行總線接口,支持8/16位總線接口,數(shù)據(jù)傳輸速度快,但總線接口復(fù)雜,對(duì)時(shí)序關(guān)系要求較高,軟件處理比較復(fù)雜,不適合在單片機(jī)系統(tǒng)中應(yīng)用。在對(duì)網(wǎng)絡(luò)接口速度要求不高的場(chǎng)合,采用SPI總線接口可以大大簡(jiǎn)化單片機(jī)接口軟硬件設(shè)計(jì)。系統(tǒng)采用的MicroChip公司設(shè)計(jì)的ENC28J60芯片就是這樣一種網(wǎng)絡(luò)接口芯片,完全能夠滿足本系統(tǒng)需求。
2.1 軟件設(shè)計(jì)思想
軟件系統(tǒng)采用C#語(yǔ)言,基于.NET2.0和 SQLServer2005技術(shù)進(jìn)行開發(fā)。軟件系統(tǒng)的具體實(shí)現(xiàn)采用三層體系結(jié)構(gòu):表示層UI、業(yè)務(wù)邏輯層BLL、數(shù)據(jù)訪問層DAL,3層之間通過(guò)調(diào)用接口函數(shù)聯(lián)系,降低了耦合性,減少了代碼的重用,也便于系統(tǒng)的維護(hù)。
圖2 軟件框架設(shè)計(jì)
2.2 系統(tǒng)功能及相關(guān)技術(shù)
軟件系統(tǒng)的功能包括:
(1)服務(wù)器通過(guò)Socket通信完成與數(shù)據(jù)采集終端的數(shù)據(jù)交互;
(2)在服務(wù)器端對(duì)數(shù)據(jù)進(jìn)行處理,將數(shù)據(jù)實(shí)時(shí)發(fā)送到WEB頁(yè)面顯示;
(3)定時(shí)將數(shù)據(jù)記錄到數(shù)據(jù)庫(kù),提供查詢功能;(4)數(shù)據(jù)超限報(bào)警功能。
下文詳細(xì)介紹系統(tǒng)功能的具體實(shí)現(xiàn)及采用的相關(guān)技術(shù)。
2.2.1 基于Socket技術(shù)與采集終端進(jìn)行數(shù)據(jù)交互
本文Socket技術(shù)主要用于服務(wù)器端與監(jiān)控終端單片機(jī)之間的數(shù)據(jù)交換。Socket技術(shù)有兩種形式:數(shù)據(jù)報(bào)套接口和流式套接口。流式套接口采用TCP協(xié)議,它提供了雙向的、有序的、無(wú)重復(fù)的數(shù)據(jù)流服務(wù),但需要進(jìn)行多次握手檢測(cè),過(guò)程復(fù)雜,效率低。為簡(jiǎn)化監(jiān)控終端單片機(jī)的數(shù)據(jù)處理,并考慮到系統(tǒng)對(duì)數(shù)據(jù)的要求,系統(tǒng)采用效率更高的數(shù)據(jù)報(bào)套接口。下面是服務(wù)端Socket通信關(guān)鍵代碼:
(1)實(shí)例化基于數(shù)據(jù)報(bào)套接口技術(shù)的Socket對(duì)象socket=new Socket(AddressFamily.InterNetwork,SocketType.Dgram,Protocol Type.Udp);
(2)連接對(duì)應(yīng)IP和端口的傳感器
監(jiān)控終端單片機(jī)按照設(shè)置的時(shí)間間隔從傳感器讀取數(shù)據(jù),存入單片機(jī)緩存內(nèi)。根據(jù)從服務(wù)器端接受到的不同指令數(shù)據(jù),進(jìn)行不同的處理。服務(wù)器端發(fā)送的數(shù)據(jù)指令包括:
(1)請(qǐng)求監(jiān)測(cè)數(shù)據(jù)的指令;
(2)配置傳感器的指令,傳感器的配置包括節(jié)點(diǎn)名稱、IP、端口、溫濕度的上/下限值等信息;
(3)查詢傳感器配置的指令。
單片機(jī)對(duì)接收到的指令數(shù)據(jù)處置過(guò)程如圖3:
圖3 單片機(jī)對(duì)接收指令數(shù)據(jù)的處置圖
2.2.2 多線程方式處理多節(jié)點(diǎn)數(shù)據(jù)
系統(tǒng)需要同時(shí)采集多個(gè)機(jī)房節(jié)點(diǎn)的數(shù)據(jù),還要對(duì)獲取的多個(gè)節(jié)點(diǎn)數(shù)據(jù)進(jìn)行處理,因此,需要一個(gè)多線程的方式(如圖3),即各機(jī)房采集設(shè)備使用不同的線程讀取采集數(shù)據(jù),之間互不相連,采集出來(lái)的數(shù)據(jù)放入一個(gè)公共的緩沖區(qū)中,供主程序處理。主程序經(jīng)過(guò)固定的間隔將數(shù)據(jù)發(fā)送到WEB前端頁(yè)面進(jìn)行刷新顯示;根據(jù)實(shí)際需要,經(jīng)過(guò)設(shè)定的記錄時(shí)間間隔將數(shù)據(jù)存入數(shù)據(jù)庫(kù),用于數(shù)據(jù)的記錄和歷史數(shù)據(jù)的查詢、顯示。
圖4 多線程數(shù)據(jù)處理
系統(tǒng)啟動(dòng)后,開始運(yùn)行主線程,初始化系統(tǒng),根據(jù)實(shí)際網(wǎng)絡(luò)中連接的傳感器,啟動(dòng)相應(yīng)的線程,并獲取硬件系統(tǒng)采集的數(shù)據(jù),寫入內(nèi)存中的數(shù)據(jù)緩沖區(qū)。根據(jù)系統(tǒng)設(shè)定的數(shù)據(jù)刷新間隔,定時(shí)從緩沖區(qū)讀取數(shù)據(jù)發(fā)送到WEB頁(yè)面顯示,如果數(shù)據(jù)超出閾值,進(jìn)行報(bào)警提示;根據(jù)系統(tǒng)設(shè)定的數(shù)據(jù)記錄間隔,定時(shí)從緩沖區(qū)讀取數(shù)據(jù)存入數(shù)據(jù)庫(kù),供用戶查詢。
系統(tǒng)的運(yùn)行流程圖如圖5所示。
2.2.3 基于Ajax的WEB頁(yè)面數(shù)據(jù)實(shí)時(shí)顯示
圖5是系統(tǒng)WEB顯示頁(yè)面,實(shí)時(shí)顯示各個(gè)機(jī)房的溫度、濕度、露點(diǎn)等環(huán)境信息和傳感器的運(yùn)行狀態(tài)。為提高系統(tǒng)性能,前端采用AJAX技術(shù)實(shí)現(xiàn)。
圖5 系統(tǒng)運(yùn)行流程圖
Ajax(Asynchronous JavaScript and XML),是綜合異步通信、JavaScript以及XML等多種網(wǎng)絡(luò)技術(shù)的新的編程技術(shù),從用戶的實(shí)際運(yùn)行效果來(lái)看,通常形象地稱為無(wú)頁(yè)面刷新技術(shù)。系統(tǒng)顯示頁(yè)面中只有溫濕度等采集的數(shù)據(jù)需要刷新顯示,其他界面不需要更新,如果全頁(yè)面刷新,則浪費(fèi)網(wǎng)絡(luò)帶寬,降低系統(tǒng)性能。因此,采用Ajax技術(shù)實(shí)現(xiàn)局部頁(yè)面自動(dòng)刷新顯示,增強(qiáng)了用戶的界面友好性。
圖6 系統(tǒng)WEB顯示頁(yè)面
2.2.4 圖形化顯示歷史數(shù)據(jù)查詢結(jié)果
系統(tǒng)提供了歷史數(shù)據(jù)的查詢功能,為了更加形象、直觀地顯示歷史數(shù)據(jù)的變化趨勢(shì),系統(tǒng)采用CrystalReport技術(shù)實(shí)現(xiàn)數(shù)據(jù)的圖形化顯示。
Crystal Report(水晶報(bào)表)是功能強(qiáng)大的報(bào)表系統(tǒng),集成于Visual Studio.Net開發(fā)環(huán)境中??梢詮姆?wù)器獲取數(shù)據(jù),通過(guò)快速地開發(fā)導(dǎo)出報(bào)表或圖表,將數(shù)據(jù)以直觀、美觀的界面顯示。水晶報(bào)表的關(guān)鍵代碼包括:
CryRepDataSet1 ds=new CryRepDataSet1();//實(shí)例化水晶報(bào)表
SqlDataAdapter ad=new SqlDataAdapter();
ad.Fill(ds.sensor_gather_data);//設(shè)置水晶報(bào)表實(shí)例的數(shù)據(jù)源
ReportDocument doc=new ReportDocument();//建對(duì)像doc.Load(Server.MapPath("CryRepJjb2. rpt"));//加載水晶報(bào)表
doc.SetDataSource(ds);//設(shè)置數(shù)據(jù)源
doc.SummaryInfo.ReportTitle="溫度變化表";this.CrystalReportViewer1.ReportSource=doc;this.CrystalReportSource1.DataBind();//使用Crystal-ReportViewer1顯示水晶報(bào)表,綁定數(shù)據(jù)
圖7是溫濕度歷史數(shù)據(jù)的查詢圖表:
圖7 溫濕度數(shù)據(jù)查詢圖表
圖7中,橫坐標(biāo)是時(shí)間軸,左邊豎坐標(biāo)是溫度值,右邊豎坐標(biāo)是濕度值,藍(lán)色曲線表示溫度,橘紅色表示濕度曲線。此圖顯示了有線-407機(jī)房一天內(nèi)的溫濕度變化趨勢(shì):機(jī)房溫度值比較穩(wěn)定,處于24°;濕度值稍有變化,介于45°和50°之間,處于允許的變化區(qū)間內(nèi)。
2.2.5 基于RTX的實(shí)時(shí)超限報(bào)警
為了能夠?qū)Τ^(guò)限定溫濕度的機(jī)房進(jìn)行及時(shí)處置,系統(tǒng)開發(fā)了超限報(bào)警功能。
溫濕度的閾值可以通過(guò)頁(yè)面進(jìn)行設(shè)置,如圖8所示:
圖8 機(jī)房傳感器溫濕度閾值設(shè)置頁(yè)面
頁(yè)面中包含傳感器的主要信息參數(shù),可以顯示和修改傳感器節(jié)點(diǎn)的名稱、IP地址、采集端口、部署時(shí)間等屬性信息,也可以設(shè)置此節(jié)點(diǎn)傳感器的溫濕度上限和下限,每個(gè)機(jī)房的溫濕度閾值可以不同。
圖8頁(yè)面中的備注欄,里面填寫的是與此機(jī)房關(guān)聯(lián)的RTX(騰訊通)賬號(hào),如果系統(tǒng)監(jiān)視的機(jī)房溫濕度超過(guò)限定值,系統(tǒng)將通過(guò)RTX軟件向相關(guān)的機(jī)房管理員發(fā)送報(bào)警信息(圖9),提醒人員及時(shí)處理。報(bào)警信息包括:報(bào)警的機(jī)房名稱、引起報(bào)警參數(shù)名稱和當(dāng)前值以及報(bào)警參數(shù)的規(guī)定數(shù)值范圍。
圖8顯示,網(wǎng)絡(luò)-439-7機(jī)房的濕度值為44.9,低于要求45最低值,向相關(guān)管理員發(fā)送報(bào)警提示。
圖9 RTX報(bào)警消息
2.3 系統(tǒng)應(yīng)用效果
系統(tǒng)部署于測(cè)量船內(nèi),用于監(jiān)視和測(cè)量分布式機(jī)房節(jié)點(diǎn)的溫度、濕度和露點(diǎn)等環(huán)境參數(shù)。監(jiān)控的節(jié)點(diǎn)包括35個(gè)機(jī)房,各節(jié)點(diǎn)部署一個(gè)傳感器獲取環(huán)境信息,通過(guò)測(cè)量船網(wǎng)絡(luò)聯(lián)通系統(tǒng)的服務(wù)器。系統(tǒng)操作簡(jiǎn)單,不需要任何培訓(xùn)學(xué)習(xí),只要具有權(quán)限的人員就可以在聯(lián)網(wǎng)的任何計(jì)算機(jī)終端上通過(guò)WEB頁(yè)面訪問系統(tǒng)前端界面,查看各個(gè)機(jī)房的環(huán)境信息,極大減輕了人員巡視機(jī)房的工作量。
系統(tǒng)經(jīng)過(guò)一年的測(cè)試運(yùn)行,性能穩(wěn)定,發(fā)現(xiàn)多起由于空調(diào)、除濕機(jī)等設(shè)備損壞導(dǎo)致機(jī)房溫濕度異常的情況,并向管理人員報(bào)警提示,及時(shí)處置。
本文根據(jù)海上測(cè)控任務(wù)對(duì)測(cè)量船設(shè)備工作性能和狀態(tài)的高要求,針對(duì)測(cè)量船分布式機(jī)房的特點(diǎn),基于測(cè)量船局域網(wǎng)絡(luò)設(shè)計(jì)并實(shí)現(xiàn)了分布式機(jī)房環(huán)境自動(dòng)化監(jiān)控系統(tǒng),完成了對(duì)機(jī)房環(huán)境全天候、網(wǎng)絡(luò)化的實(shí)時(shí)監(jiān)控,實(shí)現(xiàn)了裝備管理的自動(dòng)化和信息化。結(jié)合測(cè)量船的實(shí)際需求,今后可進(jìn)一步擴(kuò)展系統(tǒng)的功能,實(shí)現(xiàn)對(duì)更多要素的監(jiān)控。
[1]國(guó)家863中部軟件孵化器.ASP.NET從入門到精通[M].北京:人民郵電出版社,2010.
[2]飛思科技產(chǎn)品研發(fā)中心.NET平臺(tái)下Crystal Reports設(shè)計(jì)與開發(fā)[M].北京:電子工業(yè)出版社,2003.
[3]朱向慶,陳志雄.遠(yuǎn)程分布式溫濕度實(shí)時(shí)監(jiān)測(cè)系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2010,18(1):55-63.
[4]周樂欽,燕彩蓉,蘇厚勤.基于Web-Socket協(xié)議的推送數(shù)據(jù)技術(shù)在監(jiān)控系統(tǒng)中的應(yīng)用研究[J].計(jì)算機(jī)應(yīng)用與軟件,2013,30(5):229-232.
[5]張妮,段文強(qiáng),邵婷婷.基于單片機(jī)的溫濕度監(jiān)控系統(tǒng)設(shè)計(jì)[J].延安大學(xué)學(xué)報(bào)(自然科學(xué)版),2010,29(02):50-52.
Implementation of Distributed Room Environment Monitoring System Based on Measurement Ship Network
JIN Jian-bin,HUANG Guo-xiong,DUAN Fang-zhen
(China Satellite Maritime Tracking And Control Department,Jiangyin 214431,China)
Regarding to the high requirements of maritime tracking and control tasks to the working performance and status of equipment,this paper develops distributed room environment automatic monitoring system.The system collects data by sensor,transfers data based on Socket,publishes the temperature and humidity data of the room in the methord of WEB,the function of querying historic data and alarming is provided,real-time monitoring of room is realized by the way of automation and networking.
remote monitor,distributed,Web,temperature humidity,automatic
TP311
A
1002-0640(2015)02-0152-04
2013-12-04
2014-01-21
靳建彬(1984-),男,河北石家莊人,碩士研究生。研究方向:計(jì)算機(jī)網(wǎng)絡(luò)通信。