基于VB的機房計算機電源監控系統
摘 要: 用VB開(kāi)發(fā)機房計算機電源監控系統的一種方案。
本文引用地址:http://dyxdggzs.com/article/202541.htm關(guān)鍵詞: 串行通信 單片機 Visual Basic
為了能實(shí)時(shí)、高效、方便地監控、管理機房計算機電源設備,并實(shí)現對機房的計算機集中監控、少人值守的目標,本文提出了一個(gè)機房計算機電源集中監控系統方案。本系統的目標是:通過(guò)相關(guān)軟件、硬件的設計,實(shí)現由1臺主機(上位機)通過(guò)單片機(下位機)監控多個(gè)機房中多臺計算機的開(kāi)關(guān)情況。即利用主機的監控軟件與單片機進(jìn)行通信,以實(shí)現對計算機電源的監控功能。本系統應具備如下功能:
(1)通過(guò)鍵盤(pán)或鼠標對多臺計算機進(jìn)行開(kāi)關(guān)控制并對整個(gè)機房的所有計算機進(jìn)行開(kāi)關(guān)狀態(tài)的檢測。
(2)上位機與下位機能進(jìn)行可靠、實(shí)時(shí)的通信。
(3)界面設計清晰,功能齊全。備有菜單及各機房的電腦分布圖,并帶有右鍵快速菜單。
(4)能根據不同機房中不同電腦臺數自動(dòng)調整布局。
1軟硬件的選取及上下位機間通信協(xié)議的定義
基于上述目標與功能,要實(shí)現本系統,首先要解決以下幾個(gè)問(wèn)題:
1.1 主機與單片機之間通信信道的選取
串行通信一次只傳1個(gè)位,處理的數據電壓只有一個(gè)準位,因此不容易漏失數據。如果再加上一些防范措施,數據漏失就更不容易發(fā)生了。串行通信端口(RS-232)是每部計算機上的必要配備,通常含有COM1與COM2 2個(gè)信道,一般的計算機將COM1以9 Pin的接頭接出,而以25 Pin的接頭將COM2接出。新一代的計算機均以9 Pin的接頭接出所有的RS-232通信端口。通常與計算機連接的溝通接口是RS-232,它不僅實(shí)用簡(jiǎn)單,而且價(jià)格便宜。因此本系統采用RS-232串行通信方式用于上、下位機間的通信。
1.2 監控軟件開(kāi)發(fā)平臺的選取
Visual Basic是Windows環(huán)境下的一個(gè)可視化軟件開(kāi)發(fā)平臺。由于開(kāi)放式的結構,Visual Basic允許外掛控件,因此有更多的廠(chǎng)商為Visual Basic撰寫(xiě)控件,供系統開(kāi)發(fā)者選用,從而為開(kāi)發(fā)者提供了更方便的系統開(kāi)發(fā)方案。這些控件可用于設計界面和實(shí)現各種功能,減少了編程人員的工作量,也簡(jiǎn)化了界面設計過(guò)程,從而有效地提高了應用程序的運行效率和可靠性。所以,本系統采用Visual Basic作為監控軟件平臺。
MSComm是Microsoft公司提供的簡(jiǎn)化Windows下串行通信編程的ActiveX控件。MSComm控件提供了二種處理通信的方法:事件驅動(dòng)法及查詢(xún)法。
(1)事件驅動(dòng)法:OnComm事件是MSComm控件提供的惟一的事件。當有數據到達端口或端口狀態(tài)發(fā)生改變或有通信錯誤產(chǎn)生時(shí),都將觸發(fā)OnComm事件,以捕獲和處理這些通信事件和通信中產(chǎn)生的錯誤信息。通過(guò)查詢(xún)CommEvent屬性值,可以獲得關(guān)于通信事件和通信錯誤的完整信息,進(jìn)而進(jìn)行處理。這是一種功能很強的處理串行口活動(dòng)的方法,具有程序響應及時(shí)、可靠性高等優(yōu)點(diǎn)。
(2)查詢(xún)法:MSComm控件的CommEvent屬性返回通信中產(chǎn)生的事件和錯誤類(lèi)型,由通信控件自動(dòng)檢測和跟蹤通信狀態(tài)后設置。因此,在小程序中,程序員可以在每個(gè)重要的程序功能之后通過(guò)檢查CommEvent屬性值來(lái)檢測事件和通信錯誤。本系統采用查詢(xún)法作為處理通信的方法。
1.3 單片機型號以及芯片的選取
單片機主要采用Intel公司MCS-51系列8031單片機,并使用MCS-51匯編語(yǔ)言開(kāi)發(fā)。
1.4 監控軟件與單片機之間通信協(xié)議的定義
主機與單片機要進(jìn)行實(shí)時(shí)、可靠的通信,必須定義一套良好的通信協(xié)議。
本系統的通信參數設置如表1所示,采用的通信協(xié)議如表2所示。
其中:Roomadd:機房代碼(即單片機的地址碼),1個(gè)字節,由01H開(kāi)始編碼。
Command:命令碼,1個(gè)字節(命令碼的格式見(jiàn)表3)。
Byte count:數據長(cháng)度,要監控的計算機總數量+1(最后1幀1為校驗幀),1個(gè)字節。
PCadd:PC編號,每個(gè)PC編號1個(gè)字節,由01H開(kāi)始編碼。
Checksum:算術(shù)校驗和,1個(gè)字節,是所有PC編號的算術(shù)相加后對256取模而得到的。
Cmdresponse:單片機回應的采集數據,具體格式見(jiàn)表4。
其中:D7為1,表示該PC狀態(tài)為“開(kāi)”;D7為0,表示該PC狀態(tài)為“關(guān)”。PC地址由01H開(kāi)始編碼。約定00H為接收成功反饋信號。
評論