盧黎明,樓 平,孫衛(wèi)慶
(國網(wǎng)浙江省電力公司 湖州供電公司,浙江 湖州313000)
隨著供電企業(yè)信息化的發(fā)展,網(wǎng)絡(luò)規(guī)模越來越大,用于部署信息網(wǎng)絡(luò)設(shè)備的機(jī)房也越來越多.為保證信息網(wǎng)絡(luò)設(shè)備的安全運(yùn)行,對機(jī)房溫濕度、煙感、水位、門禁等環(huán)境運(yùn)行信息以及機(jī)房圖像視頻監(jiān)控顯得尤為重要[1].目前,市場上成熟的機(jī)房環(huán)境監(jiān)控軟件很多[2],但絕大多數(shù)系統(tǒng)均為一體化、封閉的系統(tǒng),擴(kuò)展性能較弱,資源難以共享,與其它應(yīng)用系統(tǒng)難以交互.
海迅實(shí)時數(shù)據(jù)平臺是一款國產(chǎn)的大型通用基礎(chǔ)軟件,采用業(yè)界領(lǐng)先的混合壓縮技術(shù),擁有高效的大規(guī)模的海量實(shí)時數(shù)據(jù)處理能力,并具有高度開放、便于擴(kuò)展等特點(diǎn).該平臺已在國網(wǎng)湖州供電公司部署并投入使用,接入了包括SCADA、電能量、營銷等生產(chǎn)數(shù)據(jù),通過利用該產(chǎn)品自帶組態(tài)[3]、報表等實(shí)用工具,解決了大部分生產(chǎn)過程中各業(yè)務(wù)對數(shù)據(jù)存儲、整合、共享、分析和展現(xiàn)的需求.
機(jī)房環(huán)境運(yùn)行信息(除視頻外),數(shù)據(jù)類型與SCADA、電能量等數(shù)據(jù)類似,表現(xiàn)為帶時間標(biāo)記的數(shù)值,完全可以通過海迅實(shí)時數(shù)據(jù)平臺展示,因此提出了開發(fā)基于海迅實(shí)時數(shù)據(jù)平臺的機(jī)房環(huán)境監(jiān)控系統(tǒng).要在海迅實(shí)時數(shù)據(jù)平臺實(shí)現(xiàn)機(jī)房環(huán)境的監(jiān)控需要解決兩個問題:一是將機(jī)房的環(huán)境運(yùn)行數(shù)據(jù)存儲到海迅實(shí)時數(shù)據(jù)庫;二是解決機(jī)房視頻圖像的播放問題,因為海迅實(shí)時數(shù)據(jù)平臺不支持視頻數(shù)據(jù).
系統(tǒng)拓?fù)鋱D如圖1所示.圖中上半部分為主站部分,包括海迅實(shí)時數(shù)據(jù)庫、接口服務(wù)器、視頻存儲、視頻管理及流媒體服務(wù)器和監(jiān)控客戶端.接口服務(wù)器負(fù)責(zé)采集機(jī)房環(huán)境運(yùn)行信息(溫濕度、煙感等),并存儲到海迅實(shí)時數(shù)據(jù)庫;視頻存儲用于存放機(jī)房視頻圖像;流媒體服務(wù)器主要是對存儲的視頻進(jìn)行管理以及供客戶端進(jìn)行播放;客戶端上實(shí)現(xiàn)機(jī)房環(huán)境運(yùn)行信息及視頻的一體化展示和監(jiān)視.圖中下半部分為機(jī)房現(xiàn)場數(shù)據(jù)的采集,每個機(jī)房安裝了溫濕度、煙霧等各類傳感器以及網(wǎng)絡(luò)攝像機(jī),用于采集機(jī)房環(huán)境運(yùn)行數(shù)據(jù)與視頻圖像.整個系統(tǒng)構(gòu)架于單位內(nèi)部局域網(wǎng)絡(luò),采用TCP/IP進(jìn)行傳輸.
機(jī)房視頻的存儲采用成熟的商業(yè)軟件,通過該軟件將安裝在各機(jī)房的網(wǎng)絡(luò)攝像機(jī)捕捉到的視屏信息集中保存在視頻存儲服務(wù)器中,通過流媒體服務(wù)可以直接播放.
下面主要描述機(jī)房環(huán)境數(shù)值型信息的采集與存儲.如圖1下半部分所示,每個機(jī)房安裝了溫濕度傳感器、煙霧傳感器等,這些傳感器將采集到的信息通過485接口傳輸?shù)綌?shù)據(jù)網(wǎng)關(guān),由數(shù)據(jù)網(wǎng)關(guān)通過TCP與安裝在主站的接口服務(wù)器通信.目前市場上支持網(wǎng)絡(luò)協(xié)議、直接通過網(wǎng)絡(luò)傳輸數(shù)據(jù)的傳感器產(chǎn)品很多,而我們采用的是數(shù)據(jù)網(wǎng)關(guān)統(tǒng)一匯總傳輸方式,主要目的是為了節(jié)省IP資源.每個機(jī)房可能安裝很多傳感器,如果每個傳感器配置一個IP地址,會造成IP資源不足,而采用數(shù)據(jù)網(wǎng)關(guān)的方式更容易擴(kuò)展和維護(hù).
數(shù)據(jù)網(wǎng)關(guān)支持網(wǎng)絡(luò)CDT、101等規(guī)約.為了便于維護(hù)開發(fā),采用了網(wǎng)絡(luò)CDT 規(guī)約.在數(shù)據(jù)網(wǎng)關(guān)上啟用CDT 服務(wù),將傳感器采集數(shù)據(jù)匯總后,以CDT 方式往主站傳送.主站作為TCP客戶端連接到數(shù)據(jù)網(wǎng)關(guān),即可接受到數(shù)據(jù).
圖1 系統(tǒng)結(jié)構(gòu)圖Fig. 1 System Structure
接口服務(wù)軟件數(shù)據(jù)流如圖2所示.接口服務(wù)軟件運(yùn)行于接口服務(wù)器上,由它發(fā)起多個TCP連接作為客戶端連接到安裝在各機(jī)房的數(shù)據(jù)網(wǎng)關(guān),連通后數(shù)據(jù)網(wǎng)關(guān)主動發(fā)送數(shù)據(jù),接口服務(wù)器軟件被動收集數(shù)據(jù),并將收集的數(shù)據(jù)定時以約定的XML格式保存到文件中.海迅實(shí)時數(shù)據(jù)庫支持XML文件接口,它將XML文件數(shù)據(jù)解析后保存到海迅實(shí)時數(shù)據(jù)庫中.
圖2 系統(tǒng)結(jié)構(gòu)數(shù)據(jù)流Fig. 2 Data Flow of Interface
接口服務(wù)軟件運(yùn)行界面如圖3所示.界面直觀,提供了包括運(yùn)行工況、通道監(jiān)聽、遙測顯示、遙信顯示以及全部數(shù)據(jù)顯示等.運(yùn)行工況可以一覽當(dāng)前接口軟件與各個數(shù)據(jù)網(wǎng)關(guān)的連接情況,如果中斷,還提供了中斷告警信息;通道監(jiān)聽用于顯示與各個數(shù)據(jù)網(wǎng)關(guān)通信碼;遙測和遙信用于顯示每個數(shù)據(jù)網(wǎng)關(guān)的采集實(shí)際數(shù)據(jù);全部數(shù)據(jù)顯示所有數(shù)據(jù)網(wǎng)關(guān)采集的數(shù)據(jù).接口服務(wù)軟件采用c++builder 6.0開發(fā),主要使用TCP控件TclientSocket.程序重載了onconnect、onread、onerror、ondisconnect等函數(shù).程序一啟動,向每個數(shù)據(jù)網(wǎng)關(guān)特定TCP端口發(fā)起連接,TCP傳輸均采用異步方式.之后就是onconnect、onread、onerror、ondisconnect幾個函數(shù)的工作.其中onconnect是指已經(jīng)與數(shù)據(jù)網(wǎng)關(guān)連接;onread是指當(dāng)有數(shù)據(jù)已經(jīng)傳輸?shù)搅诵枰绦蛉ヌ幚?;onerror指TCP傳輸或連接發(fā)生錯誤;ondisconnect指已經(jīng)與數(shù)據(jù)網(wǎng)關(guān)斷開.另外,為了界面布局使用了pagecontrol、panel、listview 等控件.
圖3 數(shù)據(jù)采集及存儲Fig.3 Data Acquisition and Storage
由于篇幅關(guān)系,只對最主要onread函數(shù)做一簡單說明,異常處理略.
機(jī)房環(huán)境運(yùn)行信息存儲到海迅實(shí)時數(shù)據(jù)庫后,可以使用海迅組態(tài)工具定制各式各樣的監(jiān)視畫面和報表.該工具提供了餅圖、棒圖、趨勢圖、LED 等各種顯示方式,還有越限自動告警、歷史數(shù)據(jù)分析等多種功能.圖4為一機(jī)房監(jiān)控畫面,集中了湖州市局中心機(jī)房(B 類)以及分布在各供電所、營業(yè)所的小機(jī)房(C類)的溫濕度、煙感等實(shí)時數(shù)據(jù).點(diǎn)擊每個數(shù)據(jù)顯示點(diǎn),可以查看歷史數(shù)據(jù)進(jìn)行分析.同時組態(tài)工具提供了超鏈接功能,如點(diǎn)擊圖4中的“返回”按鈕,可以回到監(jiān)控主畫面;點(diǎn)擊“長興”,可以跳轉(zhuǎn)到長興局的監(jiān)控畫面.組態(tài)工具還提供了強(qiáng)大的JavaScript編程功能,對每個圖元(按鈕、圖標(biāo)、文字等)鼠標(biāo)點(diǎn)擊事件提供了JavaScript編程接口,如點(diǎn)擊圖4中“視頻”按鈕,可以執(zhí)行或調(diào)用視頻播放程序.工具使用及畫面制作等詳細(xì)功能及方法這里不再詳述.
圖4 監(jiān)控畫面Fig.4 Monitor Screen
為了實(shí)現(xiàn)機(jī)房環(huán)境一體化監(jiān)控,除了實(shí)時數(shù)據(jù)的顯示,還需要在組態(tài)工具中實(shí)現(xiàn)視頻的實(shí)時監(jiān)控.目前各機(jī)房安裝均為??稻W(wǎng)絡(luò)攝像機(jī),可以通過瀏覽器瀏覽攝像機(jī)的web服務(wù),并使用active控件直接觀看視頻.組態(tài)工具也可以直接通過超連接瀏覽攝像網(wǎng)址,但每次需要數(shù)據(jù)用戶名、口令等,操作步驟較多,在監(jiān)控時不是很方便.因此我們需要開發(fā)一個簡單的機(jī)房實(shí)時畫面的視頻播放軟件,在點(diǎn)擊某個機(jī)房時,能夠直接顯示實(shí)時畫面,或點(diǎn)擊某一類機(jī)房時,能夠多畫面顯示多個機(jī)房.
如圖4中的“視頻”按鈕,對鼠標(biāo)點(diǎn)擊事件進(jìn)行JavaScript編程,兩條語句可以進(jìn)行視頻播放軟件(d:\jfmonitor.exe)的調(diào)用,并附帶參數(shù)ip1、ip2等多個參數(shù).
shell=new ActiveXObject("Shell.Application");
shell.ShellExecute("d:\jfvideo.exe","ip1ip2…ipn')
視頻播放軟件采用visual studio 2005c#開發(fā),通過引用??盗髅襟w服務(wù)提供的Playview_OCX.ocx控件進(jìn)行開發(fā),通過對該控件參數(shù)的設(shè)置,開發(fā)了基于流媒體服務(wù)器視頻播放界面,界面如圖5所示.
該控件有良好的界面支持,包括設(shè)置多屏、放大、縮小等功能.下面對程序?qū)崿F(xiàn)的兩個主要過程和函數(shù)做一簡單介紹,PlayPara和PlayVideo.PlayPara函數(shù)的主要功能是根據(jù)攝像機(jī)ID,創(chuàng)建一個XML 格式的參數(shù);PlayVideo的主要功能是根據(jù)提供的攝像機(jī)ID,設(shè)置多屏畫面進(jìn)行播放.
目前本系統(tǒng)已接入各類機(jī)房近80個,覆蓋湖州市、縣兩級各類網(wǎng)絡(luò)信息機(jī)房.信息運(yùn)維人員通過本系統(tǒng)能夠?qū)崟r地了解各機(jī)房運(yùn)行狀況,及時發(fā)現(xiàn)和處理存在的問題和異常,從而保障網(wǎng)絡(luò)與信息系統(tǒng)的正常運(yùn)行.
[1]蘇兆勇,楊鵬升.網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)在大型企業(yè)管理中的應(yīng)用[J].有色設(shè)備,2010(5):23-25.
[2]吳學(xué)慧.監(jiān)控系統(tǒng)中組態(tài)工具的制作方法[J].計算機(jī)應(yīng)用,2001(4):68-70.
[3]劉同民,田民.機(jī)房環(huán)境監(jiān)控系統(tǒng)的設(shè)計與實(shí)現(xiàn)[J].自動化技術(shù)與應(yīng)用,2008(8):67-69.