實時數據庫采用基於SQLite內存模式的數據庫,配置數據庫采用基於SQLite文件模式的數據,曆史數據庫由於需要存儲的數據比較大,因此采用MySQL 5.0進行數據存儲。內存數據庫通過加載配置數據庫進行構建。在配置或運行過程中,係統也會將實時數據的內容寫入到配置數據庫和曆史數據庫。在Qt中,可以通過QSqlDatabase這個類對數據庫進行操作,這個類對ODBC、Oracle、MySQL、SQLite、SQLServer以及PostgreSQL進行了封裝並提供了統一的訪問操作接口。開發者隻需要指定不同數據庫源,就可以很方便的對各種不同類型的數據庫進行操作。由於實時數據庫和配置數據庫都采用SQLite作為它的數據庫,因此兩者之間的兼容性極佳。
電氣監控係統接入規約的實現采用了Qt Plugin的方式,各個規約模塊由規約管理模塊統一進行加載和管理。當規約采集到遙信變位、遙測變位等信息後,通過Qt的Signal/Slot機製將數據變化信息發送到EventBus這個模塊,界麵模塊連接到EventBus模塊獲取數據變化信息並在界麵上進行顯示更新。
Qt Plugin是Qt提供的一種插件架構,插件通過預定義的標準接口同主程序互相交互,以實現特定的功能。采用插件方式進行架構設計,由於各插件之間相互獨立,使得整個圖形平台結構清晰易懂。同時插件僅與主程序之間通過接口聯係,圖形平台須增加、刪除或修改某項功能時僅需修改其對應的插件,其擴展、升級與維護相當容易。
由於電氣監控係統需要將一些實際的遙測/遙信合並成虛遙信,為了讓係統對這些數據處理看起來更加統一,因此開發了虛擬規約這個模塊。
5 總結
通過Qt的Signal/Slot機製,有效的實現了事件消息在各個模塊之間的傳遞,使得係統設計更合理、模塊結構更獨立、容易進行軟件維護和代碼二次開發。采用Qt插件方式設計的規約模塊使得係統在通訊方麵的處理更加靈活,規約模塊可以很方便的進行修改和替換,極大提高了係統的可定製性。采用SQLite作為係統的內存數據庫,極大減輕了係統在實時數據庫處理方麵的工作量,而且利用成熟的技術提高了係統的可靠性。同時由於SQLite數據庫可以被多個進程同時訪問,係統中的各個模塊都被設計成獨立的進程,模塊之間的耦合更小,從而係統的運行也變得更加穩定。
參考文獻
[1] 郭慶來,孫宏斌,張伯明,李欽,劉崇茹,李尹,楊誌新,王小英,李海峰.江蘇電網AVC主站係統的研究和實現[J].電力係統自動化,2004,28(22):83-87.
[2] 李欽,溫柏堅.廣東電網電廠AVC子站建設研究[J].電力係統保護與控製,2008,36(21):38-42.