在Linux下用Qt開(kāi)發(fā)新一代DTS圖形數據系統的分析
關(guān)鍵詞:DTS;圖形數據系統; Qt;Linux
1 引言
調度員培訓模擬系統(Dispatcher Training Simu-lator,簡(jiǎn)稱(chēng)DTS)是一個(gè)計算機系統,它可以按照被仿真的實(shí)際電力系統的數學(xué)模型來(lái)模擬各種調度操作和故障后的系統工況,并將這些信息送到電力系統控制中心的模型內,為調度員提供一個(gè)逼真的培訓環(huán)境,以達到既不影響實(shí)際電力系統的運行,又可以培訓調度運行人員的目的。
操作系統的發(fā)展,面對對象技術(shù)的出現,以及電力系統國際標準IEC 61970的制定,都給DTS的發(fā)展提供了更廣闊的空間,其相應的發(fā)展也迫在眉睫。圖形數據一體化支撐環(huán)境(DGSE)作為DTS(調度員培訓仿真系統Dispatcher Training Simulator?軟件的重要組成部分它的好壞直接影響到DTS上高級應用軟件的開(kāi)發(fā)及整個(gè)系統的成敗。在以往的軟件結構上) DGSE通常僅包括底層通用圖形模塊、電力系統相關(guān)的圖形模塊、與離線(xiàn)庫和實(shí)時(shí)數據庫接口的支持模塊。本文第一次提出一個(gè)以Qt為底層圖形模塊、用C++和Qt圖形用戶(hù)界面類(lèi)庫開(kāi)發(fā)的DTS圖形數據一體化支撐環(huán)境的技術(shù)方案,本方案經(jīng)過(guò)反復測試以及用戶(hù)考驗證明,具有較高的穩定性和可靠性。
2 相關(guān)技術(shù)分析
2.1 操作系統
在中國,EMS/DTS的主流操作系統是UNIX和NT。隨著(zhù)計算機的發(fā)展,更多的用戶(hù)接受了Linux這種自由軟件形式。作為操作系統的替代品,把Linux用作EMS/DTS操作平臺中有很多的優(yōu)勢。因為,Linux的代碼是公開(kāi)的,因而對Linux的改進(jìn)更為容易,此外,Linux還有很多可以免費獲得的工具。更突出的優(yōu)勢是Linux硬件兼容性好,可以運行在絕大多數的現有計算機中。而不像UNIX必須運行在強大的服務(wù)器或RISC工作站上。另一方面,在Linux平臺下開(kāi)發(fā)圖形界面程序比在UNIX平臺下相對簡(jiǎn)單和快捷。用Linux來(lái)開(kāi)發(fā)可降低硬件成本并提高軟件開(kāi)發(fā)效率。實(shí)踐證明:當EMS/DTS運行在裝有Linux的PC機上時(shí),它的速度比運行在裝有UNIX的RISC工作站上要快許多。
2.2 面向對象技術(shù)
面向對象技術(shù)具有封裝性、繼承性、多態(tài)性三大特點(diǎn)。這些特性將大大提高軟件的可靠性、可維護性、重用性和擴充性。該技術(shù)在八十年代末逐漸為工業(yè)界所接受并開(kāi)始得到應用,且以其獨特的封裝性、繼承性和多態(tài)性為軟件工程帶來(lái)了一場(chǎng)革命。同傳統的軟件開(kāi)發(fā)方法相比,面向對象技術(shù)可以更直觀(guān)地對現實(shí)世界進(jìn)行抽象,因此更符合軟件開(kāi)發(fā)的規律,同時(shí)可使軟件開(kāi)發(fā)和調試更加規范化。進(jìn)入九十年代以后,面向對象的技術(shù)更顯示出其強大的生命力和廣闊的發(fā)展前景。在電力工業(yè)方面,面向對象技術(shù)應用于DTS可大大改善DTS開(kāi)放性差、擴充性差、以及難維護等方面的不足。
2 .3 C++和Qt 3.0
在目前面向對象的編程語(yǔ)言中,C++具有執行速度快、占用系統資源少的突出優(yōu)勢,DTS對系統的實(shí)時(shí)性要求很高,是開(kāi)發(fā)DTS的首選語(yǔ)言。加之以往很多電力系統軟件采用C語(yǔ)言開(kāi)發(fā),因此可以利用以往的工程成果,從而大大減少了開(kāi)發(fā)的工作量。
Qt是Linux下的C++用戶(hù)界面開(kāi)發(fā)包,它具有以下優(yōu)點(diǎn):
(1)支持多平臺。其程序可在MS Windows系列(Windows 95、Windows 98、Windows NT、和Windows 2000)和UNIX/X11 系列(Linux、Sun Solaris、HP-UX、Digital UNIX、IBM AIX、SGI IRIX)等操作系統上進(jìn)行方便地移植。
(2)國際化支持好。已經(jīng)有多個(gè)語(yǔ)言版本,包括中文,從而解決了漢化問(wèn)題。
(3)高度面向對象,模塊化高,編寫(xiě)程序簡(jiǎn)單明了。一般來(lái)說(shuō),用Motif?在UNIX上開(kāi)發(fā)DTS用戶(hù)界面的主流類(lèi)庫?編寫(xiě)百行的代碼才可實(shí)現的功能,用Qt只用十幾行就能實(shí)現,因而可使程序員從繁瑣的編程中解脫出來(lái),以專(zhuān)注于程序本身的內容。
(4)因為其類(lèi)庫的本質(zhì)可以與Mofit類(lèi)庫混編,且Qt具有不同的系統風(fēng)格(包括UNIX),并能很好地和Motif用戶(hù)界面溶合在一起?因而它是很好的優(yōu)化DTS的工具。
2.4 SVG
SVG(可升級矢量圖形,Scalable Vector Graphics)是由國際WWW委員會(huì )(W3C)組織于2000年8月2日制定的一種新的二維矢量圖形格式。W3C對SVG的解釋是:“SVG是一種使用XML來(lái)描述二維圖形的語(yǔ)言?!蹦壳?,國外陸續涌現了許多SVG文檔的顯示、編輯和轉換工具,也包括瀏覽器插件。例如,在Windows中裝上Adobe的SVG Viewer后,SVG文件就能在IE中被瀏覽。
因為SVG本身也是XML,它同時(shí)也可以包含數據信息,所以,它能夠將DTS中的圖形信息以SVG格式進(jìn)行輸出,同時(shí)可向同一個(gè)文件中以XML格式輸出數據信息,這樣不僅可供Web調用或供第三方應用軟件使用,還有利于與不同開(kāi)發(fā)商的EMS/DTS進(jìn)行信息交換。此外,也可以向國際標準IEC 61970靠攏。
2.5 圖形、數據維護現狀
DTS的數學(xué)模型比較復雜,畫(huà)面信息量大,操作種類(lèi)多,數據維護量大。以往的維護都是通過(guò)圖形維護數據庫等工具和手段來(lái)進(jìn)行。由于圖形和數據是分開(kāi)輸入和維護的,因此二者無(wú)法直接對應和同步,圖形修改與設備、網(wǎng)絡(luò )模型、系統參數等數據修改不能同步進(jìn)行?從而影響了數據維護的形象直觀(guān)性。另外,不直接面向電力設備對象也導致了分散的數據庫中過(guò)多的交叉信息,因而造成大量冗余信息的輸入和維護,數據庫間數據一致性也難以保證,數據的維護也極困難。由于沒(méi)有標準的信息交換接口及文件格式,所以各廠(chǎng)家的數據交互比較困難。
而本系統則將原有UNIX下Motif開(kāi)發(fā)的系統向Linux下移植,并用更為結構化的C++語(yǔ)言和更方便的Qt 3.0圖形界面類(lèi)庫來(lái)對其進(jìn)行修改并完善其功能,從而使之向國際標準IEC61970靠攏,同時(shí)也提高了與其它系統的互操作性。
3 體系結構設計
選擇合適的體系結構,對于軟件開(kāi)發(fā)者來(lái)說(shuō)是最重要的決策之一。良好的軟件體系結構可以降低軟件系統的復雜性,這對大規模的并行開(kāi)發(fā)起著(zhù)舉足輕重的作用。
新一代的DTS圖形數據系統體系結構設計如圖1所示。其中,Qt庫是Linux操作系統預裝的C++圖形用戶(hù)界面類(lèi)庫,它包含了對話(huà)框、菜單、字體、基本圖形(直線(xiàn)、矩形、圓等)的繪制等等圖形界面基礎類(lèi),是系統界面的基礎。
繪圖操作模塊包含有繪圖中各種操作的實(shí)現模式,包括對各種基本圖形及電氣圖元進(jìn)行編輯操作,例如:區域或單元多單元,文件內及文件間的選擇、復制、剪切、粘貼、縮放、旋轉、變形、恢復、撤消等基本操作。
圖形庫模塊可在Qt庫和繪圖操作模塊的基礎上進(jìn)行開(kāi)發(fā),它可以提供給用戶(hù)制作、使用、維護電氣圖元的功能。圖形庫模塊包含有表示電力系統設備的基本要素類(lèi),如一個(gè)圖形元件的形狀、連接點(diǎn)、數據庫關(guān)聯(lián)等。用面向對象的方法來(lái)封裝電力系統中的這些要素,并以這些要素去繪制電力系統中的電氣設備(如開(kāi)關(guān)、刀閘、發(fā)電機等),以制作一個(gè)可以整體使用的,并具有電網(wǎng)屬性的電氣圖元,可以大大提高系統的可擴展性和用戶(hù)的自適應性。
繪圖模塊是構建在Qt庫、繪圖操作模塊和圖形庫模塊基礎上的,主要用于在基本圖形和圖形庫中實(shí)現電氣的圖元繪制及維護系統圖、廠(chǎng)站圖及初始化曲線(xiàn)以及棒圖等功能。
數據維護模塊主要實(shí)現對初始化模塊初始實(shí)時(shí)數據庫數據的調用、實(shí)時(shí)數據庫的訪(fǎng)問(wèn)以及實(shí)時(shí)數據庫的修改等功能。它采用三層架構方式來(lái)將用戶(hù)界面、業(yè)務(wù)邏輯、數據訪(fǎng)問(wèn)分離開(kāi)來(lái),而它們彼此間則通過(guò)接口交互。在這種架構下,用戶(hù)通過(guò)中間層來(lái)訪(fǎng)問(wèn)和修改數據庫,這樣有利于保持數據的一致性和正確性。由于用戶(hù)不直接訪(fǎng)問(wèn)數據庫,因此,數據庫結構的改變不會(huì )引起用戶(hù)服務(wù)程序的修改,而只需修改中間層。
圖形、數據維護模塊負責繪圖模塊和數據維護模塊的協(xié)調工作,它可在繪圖的同時(shí)通過(guò)圖形及友好的人機界面輸入相應的設備參數和運行參數,并具有合理性校驗、自動(dòng)生成網(wǎng)絡(luò )拓撲結構等功能,該模塊是本系統的核心部分。
DTS潮流計算及仿真培訓模塊嚴格地說(shuō)不屬于圖形數據一體化支撐平臺,它是基于圖形數據一體化支撐平臺的高級應用,是圖形數據一體化支撐平臺服務(wù)的對象。
4 圖形數據的維護
圖形、數據維護是本系統的核心部分。結合DTS系統以往的數據維護方式,考慮到各種維護工作側重點(diǎn)的不同,本系統具有三種維護使用方式:交互式、圖庫一體化、批處理。這三種維護方式各有其特點(diǎn)和應用范圍。交互式能提供友好界面以供用戶(hù)瀏覽、查詢(xún)、維護,該方式側重于對少量數據的錄入修改;圖庫一體化方式可將圖形與數據庫中的設備、網(wǎng)絡(luò )模型、系統參數等數據關(guān)聯(lián)起來(lái),該方式側重于設備、電力網(wǎng)絡(luò )模型的維護。批處理方式側重數據的大批量裝入和導出,當然,批量的導入僅限于一些不改變關(guān)聯(lián)關(guān)系的操作。對于不同類(lèi)型的用戶(hù),可以根據所維護工作的特點(diǎn)選用不同的維護方式。通常,普通用戶(hù)可使用交互式,同時(shí)僅使用數據瀏覽權限;圖庫一體化用戶(hù)由于要維護系統設備參數和網(wǎng)絡(luò )拓撲結構,因而可使用圖庫一體化方式;而對于數據庫維護人員,則應使用批處理、交互式方式或圖庫一體化方式。
4.1 交互式
交互式可提供統一的、面向調度自動(dòng)化系統的數據維護工具,以幫助用戶(hù)透明地維護所有的數據庫,其中包括計算機通信系統以及SCADA系統、特殊計算、報警管理、網(wǎng)絡(luò )拓撲、設備參數、模擬盤(pán)等數據庫。交互式主要實(shí)現瀏覽查詢(xún)和數據維護兩項功能,其中瀏覽查詢(xún)可提供一致和透明的工具,以供使用人員瀏覽查詢(xún)數據庫信息,它包含兩種方式:一是表格瀏覽器方式,該方式可供維護人員和系統管理員對系統的各個(gè)具體數據庫進(jìn)行瀏覽查詢(xún);另一種是整體數據查詢(xún)方式,可供使用人員或調度員瀏覽查詢(xún)電力系統結構和全部數據,該方式支持層次、關(guān)系的瀏覽查詢(xún)。
數據維護可使維護人員編輯和修改各種數據參數,如增加計算點(diǎn),修改采集點(diǎn)等。
4.2 圖庫一體化
圖庫一體化方式就是自動(dòng)保持圖形與數據庫數據的一致。該方式可在圖形編輯器繪制單線(xiàn)圖的同時(shí)將對應的電力網(wǎng)絡(luò )中的數據庫數據一并填寫(xiě)完畢,并進(jìn)行校驗以保證數據庫填寫(xiě)的正確性。這種方式面向設備圖元,形象直觀(guān),設備之間的連接關(guān)系比較清晰,且圖形和數據同步,能解決以往系統中圖形、數據庫和網(wǎng)絡(luò )建模因多次輸入而可能造成的數據不一致的問(wèn)題,從而提高了系統的整體水平。
4.3 批處理
批處理方式主要用于大批量數據的維護,主要包括導入和導出功能。導入主要用于實(shí)現數據庫的批量生成,即利用準備好的數據文件填寫(xiě)離線(xiàn)庫的數據;導出則是利用離線(xiàn)庫數據生成批量裝入文件。其中數據文件具有文本文件和XML(Extensible Markup Language,可擴展標記語(yǔ)言)文件兩種形式。
文本文件形式簡(jiǎn)單直觀(guān)、導入導出快捷,但是不同廠(chǎng)商獨立開(kāi)發(fā)的DTS 應用數據的描述方式不盡相同,故該文件形式不適用于廣泛的信息交換。
以SVG格式表達圖形信息的XML文件格式來(lái)表達數據信息可使信息組織高度結構化。XML 是不同應用系統之間的數據接口標準,是所有信息的中間層表示,可解決信息表示、關(guān)聯(lián)的統一,實(shí)現跨平臺、跨操作系統的信息交互。XML 的HTML 標準信息傳輸格式還擴大了網(wǎng)絡(luò )傳輸和信息共享范圍。當XML與控制中心接口的公用信息模型(CCAPI ―CIM)結合(即在應用程序或構件接口語(yǔ)義級上基于CIM)時(shí),不同廠(chǎng)商開(kāi)發(fā)的應用程序或不同系統的應用軟件間就可以用統一的XML文件方式實(shí)現正確的信息交換。
5 結論
本系統以Linux為平臺,具有較高的穩定性,硬件兼容性好,價(jià)格低廉,速度快。將面向對象技術(shù)應用于DTS可大大改善DTS開(kāi)放性差、擴充性差、難維護等不足。而采用C++和Qt類(lèi)庫編程,則可利用前人已有的成果進(jìn)一步降低開(kāi)發(fā)難度,提高開(kāi)發(fā)效率。同時(shí)也很容易向UNIX移植,以適應一些用戶(hù)的特殊要求。由于該系統在圖形數據維護上對老系統進(jìn)行了完善,因而大大減少了原有DTS數據維護的工作量及繁雜度。另外,與EMS API IEC 61970標準相結合還可導出XML數據文本和SVG格式畫(huà)面,從而可方便地與其它系統實(shí)現互操作。目前,此系統已應用于山東臨沂的DTS中,并得到調度員和專(zhuān)業(yè)人士的好評,同時(shí)也證明了此方案的可行性與實(shí)用性。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論