大型服務器遠程溫度監(jiān)控系統(tǒng)設計
摘要 介紹了某大型服務器溫度遠程監(jiān)控系統(tǒng)的設計過程。在現場環(huán)境使用單片機系統(tǒng)采集溫度數據,利用RS485總線實現遠程通信,在監(jiān)控終端使用PC機完成溫度的監(jiān)測與控制,并完成了相應軟件的設計。該系統(tǒng)在測試中滿足大型服務器溫度的監(jiān)控要求,在實際應用中運行穩(wěn)定可靠,表明系統(tǒng)的設計具有良好的應用價值。
關鍵詞 服務器;溫度;監(jiān)控;單片機;PC機
服務器是計算機網絡中為計算機用戶提供文件傳輸、電子郵件、數據和應用程序等各種服務的高性能計算機。計算機網絡需要服務器能夠長期可靠地運行,而大型服務器運行過程中,會產生很大熱量,導致服務器溫度升高,影響服務器的穩(wěn)定工作,可能導致網絡故障,甚至造成服務器的損壞。因此,大型服務器機房需要溫度調節(jié)設備,使機房溫度維持在一定范圍內。同時,還需要對其溫度進行遠程監(jiān)控,必要時進行人工干預,保證服務器的可靠運行。
文中進行了某大型服務器機房溫度遠程監(jiān)控系統(tǒng)的設計。提出應用利用單片機系統(tǒng)和PC機相結合的方式,完成了服務器遠程溫度監(jiān)控系統(tǒng)設計。單片機系統(tǒng)進行溫度數據采集和現場設備控制,監(jiān)控人員通過PC機能直觀地了解機房內溫度變化情況,并利用RS485總線進行單片機和PC機之間的遠程通信,可在較遠距離監(jiān)控服務器機房的溫度。
1 溫度遠程監(jiān)控系統(tǒng)總體情況
該溫度遠程監(jiān)控系統(tǒng)由單片機系統(tǒng)電路、RS485總線和PC機和相應軟件構成。
單片機系統(tǒng)主要由傳感器DS18820和單片機STC89C52RC組成。DS18B20是一種采用單總線的數字溫度傳感器,可編為9~12位的A/D轉換精度,編程為12位時,4位表示溫度數據的小數部分,7位表示溫度數據的整數部分,被測溫度用符號擴展的16位數字方式串行輸出。其溫度測量范圍為-55~125℃,精度為0.5 ℃,使用DS18B20作為溫度傳感器,可滿足機房溫度的測量要求的同時,電路設計和編程工作也相應簡化。STC89C52RC是51系列單片機的一種,是一款性價比較高的單片機,它具有一個全雙工的串行接口,能夠實現和PC機之間的異步通信。
PC機通常由一個RS232接口來進行串口通信,由于RS232總線電平與RS485總線電平不一致,可以使用RS232/RS485轉換卡完成電平轉換RS232接口的最大傳輸距離約為30 m,RS485總線的傳輸距離可達1 200 m,信號最高速率為100 kbit·s-1。由于服務器機房與監(jiān)控中心的距離一般在1 000 m以內,采用RS485總線可滿足通信要求。
2 溫度遠程監(jiān)控系統(tǒng)設計
2.1 系統(tǒng)工作原理
系統(tǒng)工作原理可用圖1進行說明。單片機每隔一定時間,通過單總線向溫度傳感器讀取溫度值。同時,單片機經RS485總線向PC機傳輸溫度數據,并接收PC機發(fā)送的溫度控制指令,直接指揮溫度調節(jié)設備進行工作。溫度調節(jié)設備上有數字旋轉編碼開關,數字編碼開關既是溫度調節(jié)設備的開關,又可旋轉來調整調節(jié)設備的工作。繼電器通過控制電磁閥驅動數字編碼開關,使得溫度調節(jié)設備運行或停止;用聯軸器將步進電機輸出軸與數字編碼開關軸相連,這樣步進電機就能夠通過旋轉來控制溫度調節(jié)設備。
PC機收到數據后,存貯該時刻的溫度值,并顯示在顯示器上;以時間軸為橫軸,以溫度值為縱軸,這樣坐標軸上的點就可以用來描述該溫度的發(fā)生時刻和大小,由于相鄰兩點之間在時間軸上相差很小,很多點出現在屏幕上,就成了一條連續(xù)的曲線,這樣溫度變化情況就被溫度曲線形象地展示出來,同時,當曲線到達顯示器邊緣時,曲線將沿橫軸正向移動,溫度變化情況就被動態(tài)表示出來了,如圖2所示。
2.2 單片機系統(tǒng)的設計
單片機系統(tǒng)電路由單片機STC89C52RC、數字溫度傳感器DS18B20、串口通信電路、步進電機驅動電路和繼電器驅動電路組成,如圖3所示。文中使用10個DS18B20可對服務器溫度進行多點檢測,單片機用一根總線就可實現對所有傳感器的數據采集。3端穩(wěn)壓集成電路7805為單片機提供穩(wěn)定的5 V電源,ULN2003是一個多輸入多輸出的放大電路,它將單片機輸出的信號進行放大可以直接驅動步進電機。集成電路MAX 232把單片機的TTL電平轉換成RS232電平,這樣通過電腦的RS232串行接口,可以直接下載程序到單片機;用RS232/RS485電平轉換卡完成電平轉換后,就可以用RS485總線進行遠程通信。
單片機程序采用C語言和匯編語言混合編寫,向溫度傳感器讀指令以及定時部分,由于要求的時序較嚴格,用匯編語言編程效果較好,數據處理部分用C語言編寫相對簡單。單片機程序的流程圖如圖4所示,單片機按照一定的時間間隔,依次從10個數字溫度傳感器DS18B20中循環(huán)讀取溫度數據,并立刻將其發(fā)送到PC機,同時查詢是否收到PC機的控制指令,若收到控制指令,則將目標溫度值同當前溫度值進行對比,從而決定如何調整溫度調節(jié)設備的工作狀態(tài),即改變步進電機位置抑或改變繼電器動作。
2.3 PC機程序設計
PC機的主要功能是實現與單片機的串行通信及監(jiān)控人員查看溫度和調節(jié)服務器機房溫度。單片機將溫度數據發(fā)送到PC機串行接口時,程序能及時獲得該數據,并將溫度值呈現給監(jiān)控人員,同時更新溫度曲線的顯示,從而以動態(tài)的效果表達溫度的變化情況。當監(jiān)控人員需要改變服務器溫度時,通過PC機能向單片機發(fā)送相應溫度控制指令。
PC機程序采用VC6.0進行編寫。VC6.0具有一個串口通信控件,開發(fā)人員利用它可以方便地完成串口通信部分的程序編寫。每當串行接口收到數據時,系統(tǒng)會發(fā)生一個接收事件響應,系統(tǒng)就會執(zhí)行該事件響應所對應的程序,進而完成溫度數據的接收與貯存。同時,當監(jiān)控人員進行溫度調節(jié)時,使用該控件的發(fā)送數據函數,串行接口就向單片機發(fā)送相應控制指令。
利用VC6.0的定時器Timer,可以實現溫度曲線的定時更新顯示。設置一個時間間隔,并使能該Timer控件,每經過一個這樣的時間間隔,就會發(fā)生Timer事件響應,系統(tǒng)則執(zhí)行該事件響應對應的程序。因此,在PC機程序中用一個二維數組存貯溫度曲線上各點的橫軸與縱軸坐標,分別與溫度的大小與時刻對應;利用Timer控件,每隔一定時間,把接收的溫度值存貯,通過數組中元素的移動,并移人最新溫度值對應坐標,從而將二維數組中元素更新,進而更新溫度曲線,使曲線總是顯示當前時間段的溫度。PC機程序的流程如圖5所示。
3 結束語
經實際測試表明:該溫度遠程監(jiān)控系統(tǒng)對1 000 m以內的服務器機房溫度進行監(jiān)控,溫度誤差在2 ℃以內,而且依次對10個溫度傳感器進行數據讀取,完成一個循環(huán)僅需2 s時間。表明該系統(tǒng)滿足了通信距離、準確性和實時性的要求。
系統(tǒng)在合肥某大型超市服務器機房投入使用以來,運行可靠,且由于其直觀的溫度顯示效果,獲得用戶好評,表明該系統(tǒng)的設計具有較高的實用價值。





