摘 要:電力遠程視頻監(jiān)控系統(tǒng)(RVMCSPS)是為配合變電站實現(xiàn)無人值守而增設的電網(wǎng)輔助監(jiān)控系統(tǒng)。介紹電力遠程視頻監(jiān)控系統(tǒng)的系統(tǒng)結構和功能基礎,描述監(jiān)控系統(tǒng)中站端軟件的功能需求基礎,系統(tǒng)闡述站端軟件數(shù)據(jù)庫部分的設計和實現(xiàn)過程。數(shù)據(jù)庫系統(tǒng)設計由16個基本表和3個視圖構成,選擇Access作為數(shù)據(jù)庫管理軟件,選擇使用Visual C++ ODBC訪問數(shù)據(jù)庫,調用MFC中CRecordSet類,實現(xiàn)對數(shù)據(jù)庫的操作。
關鍵詞:遠程視頻監(jiān)控;數(shù)據(jù)庫技術;ODBC;電力系統(tǒng)
中圖分類號:TP311文獻標識碼:B
文章編號:1004-373X(2008)24-061-03
Application of Database Technology to the Remote Video Monitoring
and Control System for Power System
HAO Huizhen,GUO Lihong
(Nanjing Institute of Technology,Nanjing,211167,China)
Abstract:Remote Video Monitoring and Control System for Power System (RVMCSPS) serve to monitor and control the unattended substation in the power system.This paper firstly introduces the structure and function of the RVMCSPS system.On the basis of the function request of the substation system,this paper describes the design and development of the database system in the RVMCSPS.This database is composed of 16 tables and 3 views.Windows Access is selected as database management system in the RVMCSPS system,Visual C++ ODBC is used to access the database,while the CRecordSet class from MFC is used to operate the database.
Keywords:remote video monitor and control system;database technology;ODBC;power system
1 引 言
隨著計算機網(wǎng)絡技術、通信技術、數(shù)字視頻技術的發(fā)展,計算機監(jiān)控系統(tǒng)在生產(chǎn)和生活中發(fā)揮著越來越重要的作用。在電力系統(tǒng)中,供電公司希望對電力設備工程進行改造,使用無人值守變電站管理模式,通過現(xiàn)有的電力通信網(wǎng)對所屬變電站實現(xiàn)遠程實時視頻監(jiān)控、遠程故障和意外情況告警接收處理,逐步實現(xiàn)電網(wǎng)的可視化監(jiān)控和調度,提高變電站運行和維護的安全性及可靠性。電力遠程視頻監(jiān)控系統(tǒng)(Remote Video Monitoring and Control System for Power System,RVMCSPS)是為配合變電站實現(xiàn)無人值守而增設的電網(wǎng)輔助監(jiān)控系統(tǒng)。它最基本的目的是將變電站的各個監(jiān)視點,如主控制室的設備運行情況、主變、斷路器、隔離刀閘等運行狀態(tài)實時圖像、防火防盜等智能設備報警信息傳輸?shù)奖O(jiān)控中心,監(jiān)控人員可通過實時圖像和運動信息對變電站的運行情況進行綜合監(jiān)控、分析。本文在介紹電力遠程視頻監(jiān)控系統(tǒng)的系統(tǒng)結構和功能實現(xiàn)基礎上,系統(tǒng)闡述監(jiān)控系統(tǒng)中站端數(shù)據(jù)庫的設計過程和實現(xiàn)過程。
2 RVMCSPS的系統(tǒng)結構
電力遠程視頻監(jiān)控系統(tǒng)由3部分構成:監(jiān)控中心、管理服務器和變電站端。其采用典型的客戶/服務器體系結構,該系統(tǒng)結構如圖1所示。

監(jiān)控中心由監(jiān)控主機和統(tǒng)一平臺監(jiān)控軟件組成,在監(jiān)控主機上運行的是基于C/S模式的監(jiān)控軟件,實現(xiàn)對所轄前端變電站的視頻監(jiān)控,主要功能包括實時視頻監(jiān)控、遠程控制、報警管理、圖像管理、安全管理、功能配置、系統(tǒng)管理。管理服務器端由管理服務器和Web瀏覽端構成,運行的是基于B/S模式的軟件系統(tǒng)。管理服務器兼作Web服務器,管理服務器運行統(tǒng)一監(jiān)控軟件,用于變電站端設備、系統(tǒng)用戶、權限、數(shù)據(jù)等的管理,轉發(fā)視頻協(xié)議單元(RVU)和監(jiān)控中心的數(shù)據(jù)。主要管理功能包括用戶管理、用戶權限管理、數(shù)據(jù)配置、數(shù)據(jù)轉發(fā)、設備運行狀態(tài)判斷、告警、事件、日志記錄。
變電站端由監(jiān)控主機(即網(wǎng)絡硬盤錄像機DVR)、站端軟件(站端服務器)、視頻和開關量數(shù)據(jù)采集以及控制設備構成,監(jiān)控主機作為監(jiān)控中心最基本的監(jiān)控點,為網(wǎng)絡多用戶提供同時多路基于TCP/IP傳輸協(xié)議的視頻流服務和設備控制。授權的監(jiān)控人員如果對視頻監(jiān)控和云臺、照明燈等設備進行控制,可以發(fā)送控制命令給站端服務器,站端服務器接收到數(shù)據(jù)包后先按照協(xié)議解析出數(shù)據(jù)包的報文類型,然后按照報文類型分析其功能,按照相應的功能對硬盤錄像機進行控制,例如對云臺的方位控制、燈光的開關控制、雨刷的開關控制等等,控制功能實施后,變電站端發(fā)送控制命令完成與否的確認數(shù)據(jù)包返回給監(jiān)控中心給予確認。當變電站端有紅外報警、煙霧報警、玻破、水浸等意外情況報警或遠程故障發(fā)生時,站端軟件一方面主動上傳數(shù)據(jù)包給監(jiān)控中心告知報警產(chǎn)生,另一方面按照事先配置好的聯(lián)動信息對相關設備進行處理,如指定DVR主攝像頭錄像、云臺鏡頭放大并旋轉至預置位、報警喇叭開啟,照明燈或雨刷開啟等一系列聯(lián)動操作,記錄下報警的現(xiàn)場信息。
3 RVMCSPS站端軟件的功能需求
站端軟件作為服務器端軟件,主要接收監(jiān)控中心發(fā)送過來的控制報文,然后根據(jù)協(xié)議規(guī)范來解析監(jiān)控中心所發(fā)報文代表的具體含義,進而控制DVR完成相應的控制操作或者取得DVR的信息,然后把控制的結果或取得的DVR信息按照通信協(xié)議打包返回給監(jiān)控中心。
站端軟件主要功能包括:
(1) 接受遠方配置功能,接受來自服務器的布撤防、服務器設置、終端端口號等信息并按命令對本機的數(shù)據(jù)庫進行修改;
(2) 接受服務器的獲取信息請求,從本地數(shù)據(jù)庫中獲取監(jiān)控模、監(jiān)控節(jié)點、聯(lián)動配置、錄像記錄等信息返回給管理服務器;
(3) 控制功能,對任一攝像機進行控制,實現(xiàn)對攝像機視角、方位、焦距調整,對于帶預置位云臺能夠直接進行云臺的預置和操作;雨刷開關,錄像開啟或者停止;全部動作停止;照明燈開關控制;報警喇叭開關控制;網(wǎng)橋復位控制;煙霧復位控制;
(4) 當發(fā)生報警時,根據(jù)預制開啟報警錄像并對各個設備進行控制,將報警信息上傳,在日志中進行記錄;
(5) 系統(tǒng)對時功能,從監(jiān)控中心獲取標準時間進行系統(tǒng)對時;
(6) 對相關操作進行日志記錄,并在需要時發(fā)送給管理服務器。
4 RVMCSPS站端數(shù)據(jù)庫的設計和實現(xiàn)
4.1 數(shù)據(jù)庫的設計
根據(jù)RVMSE的系統(tǒng)功能要求,對站端軟件設計數(shù)據(jù)庫系統(tǒng),實現(xiàn)對變電站數(shù)據(jù)的自動管理。當端軟件接收到監(jiān)控中心發(fā)送過來的控制報文,分析報文數(shù)據(jù)流方式和動作,如果該報文的數(shù)據(jù)流向是從管理服務器發(fā)送數(shù)據(jù)到RVU,動作是設置或者操作RVU,則在操作完成后將相應的信息和操作記錄錄入數(shù)據(jù)庫;如果該報文的數(shù)據(jù)流向是從RVU發(fā)送數(shù)據(jù)到管理服務器,動作是管理服務器獲取變電站端的配置,則從數(shù)據(jù)庫中取得相應的記錄按照通信協(xié)議打包返回給監(jiān)控中心。
在變電站端的數(shù)據(jù)庫中,主要記錄3部分信息:第一部分是事先配置好的控制信息,包括用戶信息、變電站信息、遠程視頻單元信息、監(jiān)控編號信息、監(jiān)控模塊(攝像頭)信息、監(jiān)控節(jié)點信息和錄像紀錄;第二部分是監(jiān)控中心發(fā)給變電站端的信息,包括預置位信息、預案信息、定時聯(lián)動記錄、數(shù)值聯(lián)動記錄、布撤防記錄和當前告警值記錄;第三部分是日值記錄,包括用戶登錄事件記錄和歷史事件記錄。對系統(tǒng)功能要求進行需求分析后,數(shù)據(jù)庫系統(tǒng)設計完成16個基本表,3個視圖。每個基本表主要考慮所含數(shù)據(jù)域個數(shù)和命名,數(shù)據(jù)域的數(shù)據(jù)類型和長度,在該數(shù)據(jù)域上有什么約束條件,包括是否是主鍵、是否是外鍵、外鍵參照哪個數(shù)據(jù)表中的哪個數(shù)據(jù)域,能否為空,是否有缺省值,是否允許重復等。另外,每個數(shù)據(jù)域給出說明,說明該數(shù)據(jù)域的含義以及約束條件的說明。基本表的記錄格式如表1和表2所示。此外,還跟據(jù)查詢功能需要設計3個視圖,通過SQL查詢語句實現(xiàn),提高了查詢速度的同時減少了數(shù)據(jù)冗余。
4.2 數(shù)據(jù)庫實現(xiàn)
Access是基于Windows的關系數(shù)據(jù)庫管理系統(tǒng),特點是操作靈活、轉移方便、運行環(huán)境簡單。由于RVMCSPS中對數(shù)據(jù)庫的操作主要是數(shù)據(jù)存儲和簡單的數(shù)據(jù)管理、查詢,并且不需要單獨的數(shù)據(jù)庫操作界面,簡單數(shù)據(jù)庫管理系統(tǒng)Access完全能夠滿足站端軟件對數(shù)據(jù)的管理要求,所以選擇Access作為數(shù)據(jù)庫管理軟件。

變電站端的服務器端軟件是基于Windows使用Visual C++實現(xiàn)的,Visual C++提供了多種采用數(shù)據(jù)庫的方法,因此選擇使用ODBC(Open Database Connectivity)訪問數(shù)據(jù)庫,調用MFC中CRecordSet類,實現(xiàn)對數(shù)據(jù)庫的操作,主要步驟如下:
(1) 建立數(shù)據(jù)庫:在Access中創(chuàng)建數(shù)據(jù)庫RVU.mdb,使用Access設計器或者向導根據(jù)數(shù)據(jù)庫設計中表的設計,創(chuàng)建RVU數(shù)據(jù)庫中各個表,并將數(shù)據(jù)錄入數(shù)據(jù)庫;
(2) 手動創(chuàng)建數(shù)據(jù)源:在控制面板中,打開ODBC數(shù)據(jù)源,選擇用戶DSN選項,點擊添加按鈕,開始創(chuàng)建數(shù)據(jù)源,在接下來的對話框中選擇數(shù)據(jù)源的驅動程序,因使用的是Microsoft Access數(shù)據(jù)庫,從列表中選擇Microsoft Access Driver(*.mdb)數(shù)據(jù)庫驅動程序,點擊完成按鈕,寫入數(shù)據(jù)源名,點擊選擇按鈕,選擇相對應的數(shù)據(jù)庫,單擊確定后,一個數(shù)據(jù)源創(chuàng)建完成;
(3) 用ClassWizard創(chuàng)建一個CRecordset的派生類,建立記錄集,其字段數(shù)據(jù)成員與數(shù)據(jù)庫中對應的表或者查詢的各字段相對應;然后定義一個CRecordset派生類對象,該類對象與對應的數(shù)據(jù)庫關聯(lián);然后調用Open成員函數(shù)查詢數(shù)據(jù)源中的記錄并建立記錄集,在Open函數(shù)中調用GetDefaultConnect()和GetDefaultSQL()函數(shù)建立連接;在建立記錄集時,CRecordset會根據(jù)一些參數(shù)構造一個SELECT語句來查詢數(shù)據(jù)源,并用查詢的結果創(chuàng)建記錄集;
(4) 調用CRecordSet的成員函數(shù)用于對數(shù)據(jù)庫和記錄集進行添加、查找、刪除、修改等操作。
4.3 數(shù)據(jù)操作
所有對數(shù)據(jù)的操作都要首先打開記錄集,操作完成以后關閉記錄集以完成對數(shù)據(jù)庫中數(shù)據(jù)的各種操作;否則會造成數(shù)據(jù)操作丟失,造成數(shù)據(jù)庫中數(shù)據(jù)不一致。
(1) 添加新記錄。
調用AddNew()成員函數(shù)進入添加模式,把當前域數(shù)據(jù)成員的內容保存在緩沖區(qū)中,然后設置域數(shù)據(jù)成員,調用Update()把域數(shù)據(jù)成員中的內容作為新記錄寫入數(shù)據(jù)庫,結束添加。
(2) 查找指定記錄。
由于該數(shù)據(jù)庫中各個表的數(shù)據(jù)域比較多,而數(shù)據(jù)記錄比較少,所以沒有使用Find()來搜索記錄集中滿足指定某個條件的1條記錄,而是對記錄逐個進行比對是否符合條件。Recordset類提供了多個成員函數(shù)用來在記錄集中滾動,所以采用成員函數(shù)在記錄中查找。具體方法是首先調用對象的Open()成員函數(shù)打開記錄集,調用MoveFirst()滾動到記錄集中的第一個記錄,然后調用IsEOF()檢測是否滾動超出記錄集的邊界,如果沒有超出該記錄集則通過循環(huán)對記錄集中的每個記錄與查詢條件進行比對,如果符合要求則查找到;如果在記錄集中查找多條符合條件的記錄,則調用MoveNext()前進一個記錄繼續(xù)進行比對;否則,調用MoveNext()前進一個記錄,直到查找完整個記錄集。
(3) 刪除記錄。
首先查找到指定記錄,調用Delete()成員函數(shù),該函數(shù)會同時給記錄集和數(shù)據(jù)源中當前記錄加上刪除標記,如果刪除多條滿足條件的記錄,則調用MoveNext()前進1個記錄繼續(xù)查找,最后調用成員函數(shù)Close(),將對數(shù)據(jù)集的刪除操作通過數(shù)據(jù)源寫入數(shù)據(jù)庫中。
(4) 修改記錄。
首先查找到指定記錄,調用Edit()成員函數(shù)進入了編輯模式,修改域數(shù)據(jù)成員,最后調用Update()函數(shù)完成編輯,把變化后的記錄寫入數(shù)據(jù)源從而錄入數(shù)據(jù)庫中。
5 結 語
電力遠程視頻監(jiān)控系統(tǒng)將監(jiān)控中心和各個無人值守的變電站聯(lián)系起來,實現(xiàn)了對變電站的實時無人監(jiān)控,節(jié)省了人力、物力。該系統(tǒng)結構簡潔、安裝簡單、外圍設備接入比較靈活、傳輸速度快、運行穩(wěn)定,已經(jīng)在鎮(zhèn)江供電公司管轄的多個變電站正常運行,并且接入鎮(zhèn)江供電公司的統(tǒng)一控制平臺,在電力系統(tǒng)中發(fā)揮了重要的作用。
參考文獻
[1]趙新冬.變電站遠程視頻監(jiān)控系統(tǒng)統(tǒng)一平臺的設計及應用[J].電力信息化,2006,4(12):60-62.
[2]任萱,侯林海.變電站遠程網(wǎng)絡視頻監(jiān)控系統(tǒng)統(tǒng)一平臺[J].江蘇電機工程,2006,25(5):30-32.
[3]郭麗紅,楊潔,郝慧珍.電力遠程視頻監(jiān)控系統(tǒng)的設計與實現(xiàn)[J].南京工程學院學報,2006,4(3):63-67.
[4]劉生平.Visual C++.NET數(shù)據(jù)庫開發(fā)技術與實踐[M].北京:清華大學出版社,2005.
[5]張永強,趙永勇,李崇德.嵌入式遠程視頻采集系統(tǒng)的設計與實現(xiàn).現(xiàn)代電子技術,2006,29(4):75-77.
[6]楊建全,梁華,王成友.視頻監(jiān)控技術的發(fā)展與現(xiàn)狀.現(xiàn)代電子技術,2006,29(21):84-88,91.
作者簡介 郝慧珍 女,1974年出生,碩士,助教。主要研究方向為計算機通信和數(shù)據(jù)庫。