引言
近年來(lái),基于公共網(wǎng)絡(luò)的通信手段在工業(yè)遠(yuǎn)程監(jiān)控中得到了廣泛應(yīng)用。這些遠(yuǎn)程通信手段包括公共電話網(wǎng)、Internet網(wǎng)絡(luò)及無(wú)線網(wǎng)絡(luò)等。無(wú)線通信網(wǎng)絡(luò)不需要傳輸線,可以在覆蓋范圍內(nèi)的任何地點(diǎn)進(jìn)行通信,顯然,這些優(yōu)點(diǎn)是有線網(wǎng)絡(luò)難以比擬的。
GSM(全球移動(dòng)通信系統(tǒng))網(wǎng)絡(luò)是目前國(guó)內(nèi)覆蓋范圍最廣、應(yīng)用最普遍的無(wú)線通信網(wǎng)絡(luò)。因此,在構(gòu)架遠(yuǎn)程傳輸系統(tǒng)時(shí),完全可以利用現(xiàn)有的GSM無(wú)線網(wǎng)絡(luò),而沒(méi)有必要重新建設(shè)基站。
目前利用SMS(短消息業(yè)務(wù))進(jìn)行遠(yuǎn)程監(jiān)控的應(yīng)用很多,例如電力遠(yuǎn)程抄表系統(tǒng)、遠(yuǎn)程水文監(jiān)控系統(tǒng)、直放站遠(yuǎn)程監(jiān)控系統(tǒng)、遠(yuǎn)程環(huán)境監(jiān)控系統(tǒng)、遠(yuǎn)程配電監(jiān)測(cè)系統(tǒng)以及其他遠(yuǎn)程信息查詢系統(tǒng)。SMS適合傳送數(shù)據(jù)流量較少的場(chǎng)合,而UPS(不間斷電源)的狀態(tài)信息和故障信息數(shù)據(jù)量較少,用SMS傳送非常合適。
本文介紹的遠(yuǎn)程監(jiān)控系統(tǒng)主要用于監(jiān)控UPS,由于UPS出現(xiàn)故障的情況比較少,若每臺(tái)UPS都配備值班人員,顯然浪費(fèi)人力、物力、財(cái)力;若放之不管,一旦出現(xiàn)問(wèn)題,得不到及時(shí)處理,就可能造成嚴(yán)重的后果。利用現(xiàn)有的無(wú)線網(wǎng)絡(luò),只要在監(jiān)控中心配備一名值班人員,就可以對(duì)所有的UPS進(jìn)行監(jiān)控,不但能夠在任何時(shí)刻查詢UPS的狀態(tài)信息,還能夠及時(shí)得到UPS的故障信息,節(jié)省了人力、物力、財(cái)力。
1 系統(tǒng)組成原理和系統(tǒng)實(shí)現(xiàn)的功能
1.1 系統(tǒng)組成原理
該系統(tǒng)由監(jiān)控中心、值班人員和遠(yuǎn)程監(jiān)控點(diǎn)組成。監(jiān)控中心由PC機(jī)和GSM通信模塊組成,監(jiān)控中心只需要1個(gè)。遠(yuǎn)程監(jiān)控點(diǎn)由監(jiān)控對(duì)象和監(jiān)控模塊組成,UPS是監(jiān)控對(duì)象,本系統(tǒng)測(cè)試使用超過(guò)10個(gè)的監(jiān)控對(duì)象。監(jiān)控模塊由GSM通信模塊和單片機(jī)組成,每個(gè)監(jiān)控對(duì)象都需要一個(gè)監(jiān)控模塊。系統(tǒng)原理圖見(jiàn)圖1。
?
1.2 系統(tǒng)實(shí)現(xiàn)的功能
監(jiān)控中心主要有4個(gè)功能:
a ) 對(duì)監(jiān)控模塊進(jìn)行遠(yuǎn)程設(shè)置,如設(shè)置監(jiān)控模塊返回?cái)?shù)據(jù)到監(jiān)控中心的SIM卡號(hào)碼;
b) 發(fā)送命令遠(yuǎn)程查詢UPS的各種信息,并接收返回的數(shù)據(jù);
c) 自動(dòng)接收遠(yuǎn)程監(jiān)控點(diǎn)返回的報(bào)警信息;
d) 存儲(chǔ)UPS的狀態(tài)信息和報(bào)警信息。
值班人員的作用是:在UPS發(fā)生故障時(shí),監(jiān)控模塊除了將數(shù)據(jù)發(fā)送到監(jiān)控中心,還會(huì)把數(shù)據(jù)信息發(fā)送給值班人員,值班人員可以及時(shí)趕赴現(xiàn)場(chǎng),對(duì)UPS進(jìn)行維修,把損失降到最小。
遠(yuǎn)程監(jiān)控點(diǎn)的2個(gè)功能是:
a) 接收監(jiān)控中心發(fā)送的查詢命令并查詢UPS,然后把UPS返回的數(shù)據(jù)發(fā)送給監(jiān)控中心;
b) 空閑的時(shí)間不斷查詢UPS的工作狀態(tài),以判斷是否發(fā)生故障,如果發(fā)生故障,則把故障信息發(fā)送給監(jiān)控中心和值班人員。
1.3 GSM通信模塊
目前,許多GSM通信設(shè)備廠商都生產(chǎn)GSM通信模塊,如Wavecom公司的WM02系列和兩門(mén)子公司的TC35系列,這些模塊的功能、用法基本都相同。本系統(tǒng)在前期開(kāi)發(fā)時(shí)使用Wavecom公司的Wismo2c模塊,后期投入使用時(shí)使用西門(mén)子公司的TC35I模塊。這2種模塊都是符合E-GSM900/GSM1800(或E-GSM900/GSM1900)標(biāo)準(zhǔn)的第2代無(wú)線雙頻通信模塊,并且符合GSM 07.07與07.05的AT控制命令。
2 監(jiān)控中心的設(shè)計(jì)方案
2.1 監(jiān)控中心的硬件設(shè)計(jì)
監(jiān)控中心硬件有PC機(jī)和GSM通信模塊組成,PC機(jī)與GSM通信模塊之間通過(guò)串口進(jìn)行通信,見(jiàn)圖1.
? 2.2 監(jiān)控中心的軟件設(shè)計(jì)
2.2.1 數(shù)據(jù)傳輸?shù)膸Y(jié)構(gòu)
數(shù)據(jù)傳輸需要遵循一定的協(xié)議,也就是要規(guī)定通信的幀結(jié)構(gòu)。本系統(tǒng)使用的數(shù)據(jù)幀結(jié)構(gòu)有以下兩類(lèi):
a) 監(jiān)控中心發(fā)送數(shù)據(jù)給遠(yuǎn)程監(jiān)控點(diǎn)的數(shù)據(jù)幀結(jié)構(gòu),如圖3所示。其中:命令類(lèi)型是用來(lái)區(qū)分發(fā)送給遠(yuǎn)程監(jiān)控點(diǎn)的命令是設(shè)置命令還是查詢命令,如果是設(shè)置命令,開(kāi)始字和校驗(yàn)字就不是必須的。
b) 遠(yuǎn)程監(jiān)控點(diǎn)發(fā)送數(shù)據(jù)給監(jiān)控中心和值班人員的數(shù)據(jù)幀結(jié)構(gòu),如圖4所示。其中:返回的數(shù)據(jù)類(lèi)型有3種:第1種是返回查詢的狀態(tài)信息;第2種是返回設(shè)置命令的確認(rèn)信息,沒(méi)有開(kāi)始字和校驗(yàn)字;第3種是返回報(bào)警信息,如果是報(bào)警信息,則把數(shù)據(jù)發(fā)送給監(jiān)控中心的同時(shí),還將發(fā)送給值班人員。
2.2.2 監(jiān)控中心的程序設(shè)計(jì)
在本系統(tǒng)中,監(jiān)控中心采用VB語(yǔ)言進(jìn)行編程,PC機(jī)與GSM通信模塊之間通過(guò)AT指令進(jìn)行通信。圖5是監(jiān)控中心程序流程圖。
主程序通過(guò)按鈕選擇分成初始化設(shè)置子程序、發(fā)送查詢命令子程序、接收數(shù)據(jù)子程序和修改用戶信息子程序4個(gè)部分。
?
初始化設(shè)置子程序首先通過(guò)串口發(fā)送AT指令對(duì)監(jiān)控中心的GSM通信模塊初始化,其次對(duì)遠(yuǎn)程監(jiān)控點(diǎn)初始化。初始化遠(yuǎn)程監(jiān)控點(diǎn)命令發(fā)送后,程序會(huì)自動(dòng)轉(zhuǎn)向接收數(shù)據(jù)子程序模塊,等待接收確認(rèn)信息,如果確認(rèn)信息是錯(cuò)誤的,則可重新發(fā)送初始化命令。對(duì)遠(yuǎn)程監(jiān)控點(diǎn)的設(shè)置只要一次,不必每次運(yùn)行軟件都設(shè)置。
發(fā)送查詢命令子程序根據(jù)UPS的類(lèi)型分成查詢單進(jìn)單出UPS子程序、查詢?nèi)M(jìn)單出UPS子程序和查詢?nèi)M(jìn)三出UPS子程序3部分。主要功能是發(fā)送查詢命令給遠(yuǎn)程監(jiān)控點(diǎn),以獲取需要的狀態(tài)信息。同樣,發(fā)送命令后,轉(zhuǎn)向接收數(shù)據(jù)子程序,等待數(shù)據(jù)返回。
接收數(shù)據(jù)子程序主要用于接收遠(yuǎn)程監(jiān)控點(diǎn)返回的數(shù)據(jù)。UPS可能隨時(shí)發(fā)生故障,因此,在不進(jìn)行其他操作的情況下,接收數(shù)據(jù)子程序總是運(yùn)行的,這樣可及時(shí)得到遠(yuǎn)程監(jiān)控點(diǎn)返回的報(bào)警信息。接收數(shù)據(jù)子程序會(huì)把接收到的有用信息存進(jìn)數(shù)據(jù)庫(kù),作為歷史記錄。
修改用戶信息子程序主要用來(lái)設(shè)置打開(kāi)此軟件的用戶名和密碼,防止不法人員登錄進(jìn)行破壞性操作。
由于每臺(tái)UPS都配備一張SIM卡,因此本系統(tǒng)通過(guò)SIM卡來(lái)識(shí)別UPS。在此系統(tǒng)中,事先把SIM卡號(hào)碼存進(jìn)數(shù)據(jù)庫(kù),通過(guò)循環(huán)的方式可以同時(shí)對(duì)多臺(tái)UPS進(jìn)行設(shè)置和發(fā)送查詢命令,給管理帶來(lái)極大的方便。本系統(tǒng)采用單字節(jié)讀取串口緩沖區(qū),如果短消息到來(lái)而系統(tǒng)又在發(fā)送數(shù)據(jù),則先把短消息編號(hào)存進(jìn)數(shù)組,等空閑之時(shí)再根據(jù)短消息編號(hào)自動(dòng)去讀取短消息,從而實(shí)現(xiàn)群發(fā)群收的功能。由于SIM卡存儲(chǔ)的短消息數(shù)量有限,因此數(shù)據(jù)一旦存進(jìn)數(shù)據(jù)庫(kù),程序就自動(dòng)發(fā)送命令把SIM卡上的短消息刪除。
3 遠(yuǎn)程監(jiān)控點(diǎn)的系統(tǒng)設(shè)計(jì)
3.1 遠(yuǎn)程監(jiān)控點(diǎn)的硬件設(shè)計(jì)
遠(yuǎn)程監(jiān)控點(diǎn)主要由GSM通信模塊、單片機(jī)和UPS組成。單片機(jī)主要有兩個(gè)功能:一是控制GSM通信模塊收發(fā)短消息;二是查詢UPS的工作狀態(tài)。由于單片機(jī)傳輸?shù)氖荰TL電平,而GSM通信模塊和UPS傳輸?shù)氖?a href="http://www.ttokpm.com/tags/rs/" target="_blank">RS-232電平,因此在單片機(jī)與GSM通信模塊之間、單片機(jī)與UPS之間用芯片MAX232進(jìn)行電平轉(zhuǎn)換。硬件原理圖如圖6所示。
?
從圖6可以看出,這個(gè)系統(tǒng)中要用到兩個(gè)串口,而AT89S52只有1個(gè)串口,如何解決呢?在本系統(tǒng)中用P3.2,P3.3來(lái)模擬串口的功能,從而解決問(wèn)題。
由于單片機(jī)窄閑時(shí)就要查詢UPS是否有故障,因此必須存儲(chǔ)用來(lái)查詢UPS工作狀態(tài)的命令。不同類(lèi)型的UPS有不同的命令,若把這些命令存儲(chǔ)在程序存儲(chǔ)器中,不同型號(hào)的UPS就要用不同的監(jiān)控模塊,這樣就降低了監(jiān)控模塊的通用性。在本系統(tǒng)中用了一塊AT24C04型E2PROM,只要監(jiān)控中心把查詢UPS工作狀態(tài)的命令發(fā)過(guò)來(lái),遠(yuǎn)程監(jiān)控點(diǎn)就把這些命令存入AT24C04。這樣,單片機(jī)就可從AT24C04中取出這些命令去查詢UPS,也就是說(shuō),監(jiān)控模塊可以用于不同型號(hào)的UPS。至于監(jiān)控模塊用于監(jiān)控何種UPS,只要通過(guò)監(jiān)控中心設(shè)置就行,顯然這種方案提高了通用性。
單片機(jī)與AT24C04通過(guò)I2C通信。AT24C04除了存放查詢UPS工作狀態(tài)的命令外,還用來(lái)存儲(chǔ)監(jiān)控中心和值班人員的SIM卡號(hào)碼。
3.2 遠(yuǎn)程監(jiān)控點(diǎn)的軟件設(shè)計(jì)
遠(yuǎn)程監(jiān)控點(diǎn)主要是單片機(jī)編程,采用匯編語(yǔ)言。匯編語(yǔ)言具有速度快、效率高等優(yōu)點(diǎn),可以提高系統(tǒng)的響應(yīng)速度。本系統(tǒng)編程較復(fù)雜。
?
程序運(yùn)行后,首先對(duì)GSM通信模塊進(jìn)行初始化,接著判斷AT24C04中是否已經(jīng)存儲(chǔ)了監(jiān)控中心的電話號(hào)碼和用來(lái)查詢UPS工作狀態(tài)的命令。如果已經(jīng)存儲(chǔ)了,則把這些信息讀取出來(lái),如果還沒(méi)有這些信息,則不作操作,等待監(jiān)控中心發(fā)送命令設(shè)置。
監(jiān)控中心任何時(shí)刻都可能給遠(yuǎn)程監(jiān)控點(diǎn)發(fā)送命令,顯然用查詢的辦法來(lái)判斷短消息是否到來(lái)很浪費(fèi)資源,因此,本系統(tǒng)采用中斷的方式,即有短消息到來(lái)時(shí)就發(fā)生中斷,并設(shè)置標(biāo)志位。因此,在初始化后進(jìn)入主循環(huán),首先通過(guò)標(biāo)志位來(lái)判斷是否有新的短消息到來(lái)。如果有新的短消息,則通過(guò)瀆取短消息頭來(lái)判斷短消息類(lèi)型;如果足設(shè)置類(lèi)短消息,則做相應(yīng)的設(shè)置,并發(fā)送確認(rèn)信息給監(jiān)控中心,然后返回主程序;如果是監(jiān)控中心發(fā)來(lái)的查詢命令,則查詢UPS狀態(tài),并把UPS返回的數(shù)據(jù)發(fā)送給監(jiān)控中心,然后返叫主程序。
大部分時(shí)間,監(jiān)控中心不會(huì)發(fā)送命令過(guò)來(lái),這時(shí)就不需要處理新的短消息,而轉(zhuǎn)去查詢UPS的工作狀態(tài)。如果UPS沒(méi)有發(fā)生故障,則返回的數(shù)據(jù)是正常的,這時(shí)單片機(jī)不做任何操作,返回主程序。如果UPS發(fā)生故障,單片機(jī)就控制GSM通信模塊,把故障信息發(fā)送給值班人員和監(jiān)控中心,這樣值班人員就可以及時(shí)到現(xiàn)場(chǎng)對(duì)UPS進(jìn)行維修,把損失降到最低,而監(jiān)控中心把所有的故障信息和狀態(tài)信息都存人數(shù)據(jù)庫(kù)。
4 結(jié)束語(yǔ)
現(xiàn)有的GSM網(wǎng)絡(luò)技術(shù)成熟、運(yùn)行穩(wěn)定、覆蓋面廣。對(duì)于數(shù)據(jù)流量不大、監(jiān)控點(diǎn)分散的數(shù)據(jù)采集系統(tǒng),利用GSM網(wǎng)絡(luò)的SMS來(lái)傳送數(shù)據(jù),具有永遠(yuǎn)在線、不需撥號(hào)、價(jià)格便宜等優(yōu)勢(shì),可以大大地節(jié)省人力、物力和財(cái)力。本系統(tǒng)只要通過(guò)適當(dāng)?shù)男薷木涂梢杂糜谄渌h(yuǎn)程監(jiān)控系統(tǒng),具有一定的推廣價(jià)值。
評(píng)論
查看更多