0 引言
電力調度自動化系統(Power Dispatching Automation System)可對電網運行進行合理的管理、調度、控制等,使電力系統實現最優運行,是電力生產自動化和管理現代化的重要基礎,高速實時的數據庫和友好直觀的人機界面是優秀調度系統的前提。
1 數據庫設計
在調度自動化系統中,數據庫系統是實現有組織、動態地存儲大量電網數據、方便多用戶訪問的由計算機軟硬件資源組成的系統。不論是傳統的SCADA系統所具有的數據采集和處理程序,還是各種高級應用程序,或是各類MIS系統,其功能的最終操作對象都是數據,就此意義而言,數據庫系統是調度自動化系統的核心。它采用分布式結構和客戶/服務器模式,將數據庫存放于服務器上,其他用戶節點(包括MIS系統)或應用程序作為客戶通過通用數據訪問接口和DBMS提供的數據訪問方式來實現對數據的操作。
1.1 調度自動化系統中數據庫設計
調度自動化系統的特點是實時性強,信息量大。為增強系統的處理能力,提高反應速度,在系統的數據庫服務器中開設三個數據庫――實時數據庫、歷史數據庫、報警數據庫來保存數據。系統采用掃描方式工作,采集實時數據,添加到實時數據庫的相應表中,然后對數據進行判斷,看其是否超過表中各列所設的閾值,若超過,則將該值復制并添加到報警數據庫中相應位置;若該值為開關量,則與上一記錄比較看其是否發生跳變,若是則將其復制并添加到報警數據庫中。比較完畢后,對數據進行功率因數、視在功率、取最值等運算。然后,判斷實時數據庫中各表的容量是否已達到設定值,如達到就將首記錄導出至歷史數據庫中相應位置。數據庫部分的工作流程如圖1。
圖1 數據庫工作流程圖
本文選用Microsoft公司的Microsoft SQL Server數據庫,它使用Transact-SQL語句在服務器和客戶機之間傳送請求,客戶機環境可以是 Windows NT、Windows 2000 Server、Windows 9x、Windows 3.x、MS-DOS、第三方平臺和 Internet 瀏覽器。數據庫分布的信息是由系統開發人員在設計之初作為數據庫模式的一部分予以定義的,并且保存在數據字典中。本系統通過SQL Server提供的企業管理器和SQL命令編輯器等工具來實現此功能。當用戶訪問數據庫時,由系統根據數據字典進行解釋,并決定是否將命令傳送到另一節點上。本系統具有各種類型的實時數據,分布在不同的網絡節點上并且備有同一實時數據的備份。
當實時數據庫里的數據到達一定容量或一定時間,要對實時實據庫中的數據進行存盤,以提高實時數據庫接收數據的能力。在SQL Server中開辟歷史數據庫,將實時數據庫中的數據導出到歷史數據庫中。為方便數據的添加、導出,實時數據庫和歷史數據庫的結構相同。由于歷史數據庫保存的是電網運行的歷史數據,對后續分析十分重要,所以歷史數據庫的容量要設計的大一些,最好能單獨存放于一個磁盤,容量只受磁盤大小的約束。實時顯示如圖2所示。
圖2 實時顯示界面
越警數據存入報警數據庫中,這一功能通過在表中編寫觸發器來實現。調度員通過查詢報警數據庫,可以及時了解電網運行可能存在的隱患。各數據表中以采集時間(Collect_time)為主鍵,方便查詢。報警顯示如圖3,查詢界面如圖4。
圖3 報警顯示界面
圖4 查詢界面
1.2 數據庫訪問
開放式數據庫訪問開放式數據庫互連(ODBC)為應用程序提供了一套調用層接口(CLI)函數和基于動態鏈接庫的運行支持環境,具有很好的適應性和可移植性,而且具備同時訪問多種數據庫系統的能力。客戶端在使用ODBC訪問數據庫之前,必須確保本機已安裝了ODBC驅動程序管理器(ODBC32.EXE或ODBC.EXE),然后,由ODBC驅動程序管理器根據已建立的ODBC數據源或應用程序所提供的ODBC調用參數,將客戶的連接和操作請求交給相應的數據庫ODBC驅動程序。實時數據庫訪問技術本系統采用Windows NT的動態鏈接庫和內存映射技術,在各個網絡節點間建立起一條“數據通道”,即軟總線技術,既實現了數據庫的分布,又保證了數據的實時性。
數據庫結構和模式調度自動化系統中最主要的公用數據是SCADA數據庫,主要是對各廠站、各RTU以及網絡等對象的運行情況的反映。因此,本系統在保留表格這一關系型DBMS的基本數據結構的基礎上,引入層次和面向對象的概念,根據面向對象不同對其分別進行描述并建立聯系。首先將數據按其實時性特征歸為實時數據和歷史數據兩類,以便應用程序分開處理;其次,對于面向調度對象、RTU等設備、網絡通信的數據,分別按廠站結構、RTU結構、計算機通信結構予以描述定義,以便監視;再次,按數據類型將遙測、遙信各類數據存放在不同的表中。而在同一表中又按數據點的ID號排列,并以廠站名、RTU名分類,統一數據的定義。同時,為大部分表定義時標、ID等主鍵和索引,優化了查詢能力,提高了數據訪問處理效率。除了在SQL Server服務器上直接定義數據模式外,本系統還為用戶在客戶端定義數據模式開發了專門的應用程序。它具有全圖形交互式模式定義界面,可允許用戶方便地添加/刪除/修改庫、表、記錄、字段及其屬性,定義關鍵字、索引。
1.3 數據庫安全管理
有關用戶的所有信息將被保存在系統數據庫中,由數據庫管理員統一管理。至于客戶端,只要用戶的身份或登錄標識與其口令一致, SQL Server就允許該用戶連接到數據庫服務器上,向服務器傳遞SQL 語句來訪問數據庫,再根據該用戶對于數據庫的訪問權限來進一步確定用戶的訪問和操作范圍。
2 人機界面設計
人機界面MMI(Man Machine Interface)作為認與計算機之間傳遞、交換信息的媒介,是用戶使用計算機系統的綜合操作環境。
電力調度自動化系統收集、處理電網運行實時信息,通過人機界面把電網運行狀況集中而有選擇的顯示出來,實現對電網有關設備的監控,并完成經濟調度和安全分析,調度自動化系統的人機界面系統中,不同應用的界面往往沒有通用性,畫面量大類多。
2.1 開發工具
Delphi是Borland公司的軟件產品,是一個優秀的可視化軟件開發環境,并已廣泛用于數據庫軟件的開發。在Delphi C/S版環境中,結合其優化的數據庫操作,以及Borland Database Engine(即:BDE,數據庫引擎),對開發客戶機/服務器系統下的網絡數據庫軟件提供了更加快速有效的途徑。Delphi有很多優點,如快速應用程序開發,可視化的組件庫與面向對象的架構,加速程序編寫和減少語法錯誤,數據庫架構等。
2.2 Delphi中數據庫的配置及操作
在SQL Server已經設置完成的情況下,在Delphi進行配置以實現對SQL Server數據庫的操作。
第一步,注冊ODBC數據源。這是至關重要的一步,否則就無法實現對數據庫的訪問。在系統中,我們定義可訪問SQL服務器上BJ數據庫的數據源test。首先,選擇SQL Server類型的數據庫,進入“ODBC SQL Server Setup”窗口。然后,定義數據源名稱為“test”;定義Server為“SQL Server”;以及網絡路徑為“\\SQL Server”;最后,按option命令按鈕選擇訪問的數據庫為BJ即可。
第二步,配置BDE。它是Delphi專用的數據庫引擎。既可以從Delphi程序組里啟動,也可以從Delphi程序項的Tools菜單下啟動。Delphi首先調用BDE中的別名,別名再通過BDE中的ODBC Driver直接訪問ODBC數據源實現的。而在BDE的ODBC Driver中還可以定義其他ODBC屬性,例如語言驅動程序或打開模式等等。首先,在Drivers標記頁中,按“New ODBC Driver”添加新的驅動程序。在添加窗口中有三欄需要填寫。第一欄SQL Link Driver可任取一名,如:ODBC―test;第二欄Default ODBC Driver中選擇SQL Server;在第三欄default Data Source Name中選擇剛才注冊的數據源test。按OK確認后就增加了一個名為ODBC―test的Delphi ODBC驅動程序。在其右側的參數表中,還可以設置打開模式OPENMODE、查詢模式SQL QRYMODE、SQL語句執行模式SQLPASSTHRUMODE以及語言驅動程序LANGDRIVER等。接下來,在Aliases標記頁中,按“New Alias”命令按鈕增加一個新的別名。在增加新別名窗口中有兩欄需要填寫。第一欄為New alias name,可任取一個名字,如:BJ;這個別名就是我們要在Table控件中直接調用的數據庫名字。第二欄Alias type選擇剛才在Drivers標記頁中定義的ODBC―test,最后按OK確認,就增加了一個名為BJ的別名。這樣,Table控件可以通過別名BJ,別名BJ通過Delphi的ODBC Drivers(即:ODBC―test),ODBC―test再通過ODBC數據源BJ就可連接到SQL Server服務器上的BJ數據庫了。以上相當于完成了在BDE中的注冊,接下來就可以進行控件的屬性設置了。
第三步,設置Data Access控件屬性以實現與數據庫的連接。DataSource1對象就與test數據庫的某個表建立了聯系。以后,只要對DataSource1對象訪問,就可以實現對該表的操作了。設置Data Controls控件屬性以實現對數據庫的操作。一旦Data Access類的控件被成功打開,處于窗口中的Data Controls標記頁的控件就可以使用了。這些控件有DBGrid、DBNavigator、DBText、DBEdit、DBMemo、DBImage、DBListBox、DBComboBox、DBCheckBox以及DBRadioGroup等。這些控件只要設定它們的DataSource和DataFields屬性就可以實現對表的讀寫操作。
3 結論
調度自動化系統是電力生產自動化和管理現代化的重要基礎,本文運用SQL Server 設計實現了調度自動化系統中的客戶/服務器式的數據庫,運用Delphi開發了人機界面部分功能,并詳細介紹了Delphi環境中數據庫的配置和應用問題。