在Linux下用Qt開發新一代DTS圖形數據系統的分析

2021-01-10 電子產品世界
摘要:DTS圖形數據系統是DTS(調度員培訓仿真系統Dispatcher Training Simulator)的一個重要組成部分,文中提出了一種基於Linux,並運用Qt對DTS圖形數據系統進行完善的新方案,此方案價格低廉、硬體兼容性好、編程簡便、維護方便、可移植性強、結構清晰、運行速度快,可為EMS/DTS的推廣開闢一條新路。文中詳細分析和設計了該系統。

關鍵詞:DTS;圖形數據系統; Qt;Linux

1 引言

調度員培訓模擬系統(Dispatcher Training Simu-lator,簡稱DTS)是一個計算機系統,它可以按照被仿真的實際電力系統的數學模型來模擬各種調度操作和故障後的系統工況,並將這些信息送到電力系統控制中心的模型內,為調度員提供一個逼真的培訓環境,以達到既不影響實際電力系統的運行,又可以培訓調度運行人員的目的。

作業系統的發展,面對對象技術的出現,以及電力系統國際標準IEC 61970的制定,都給DTS的發展提供了更廣闊的空間,其相應的發展也迫在眉睫。圖形數據一體化支撐環境(DGSE)作為DTS(調度員培訓仿真系統Dispatcher Training Simulator?軟體的重要組成部分它的好壞直接影響到DTS上高級應用軟體的開發及整個系統的成敗。在以往的軟體結構上) DGSE通常僅包括底層通用圖形模塊、電力系統相關的圖形模塊、與離線庫和實時資料庫接口的支持模塊。本文第一次提出一個以Qt為底層圖形模塊、用C++和Qt圖形用戶界面類庫開發的DTS圖形數據一體化支撐環境的技術方案,本方案經過反覆測試以及用戶考驗證明,具有較高的穩定性和可靠性。

2 相關技術分析

2.1 作業系統

在中國,EMS/DTS的主流作業系統是UNIX和NT。隨著計算機的發展,更多的用戶接受了Linux這種自由軟體形式。作為作業系統的替代品,把Linux用作EMS/DTS操作平臺中有很多的優勢。因為,Linux的代碼是公開的,因而對Linux的改進更為容易,此外,Linux還有很多可以免費獲得的工具。更突出的優勢是Linux硬體兼容性好,可以運行在絕大多數的現有計算機中。而不像UNIX必須運行在強大的伺服器或RISC工作站上。另一方面,在Linux平臺下開發圖形界面程序比在UNIX平臺下相對簡單和快捷。用Linux來開發可降低硬體成本並提高軟體開發效率。實踐證明:當EMS/DTS運行在裝有Linux的PC機上時,它的速度比運行在裝有UNIX的RISC工作站上要快許多。

2.2 面向對象技術

面向對象技術具有封裝性、繼承性、多態性三大特點。這些特性將大大提高軟體的可靠性、可維護性、重用性和擴充性。該技術在八十年代末逐漸為工業界所接受並開始得到應用,且以其獨特的封裝性、繼承性和多態性為軟體工程帶來了一場革命。同傳統的軟體開發方法相比,面向對象技術可以更直觀地對現實世界進行抽象,因此更符合軟體開發的規律,同時可使軟體開發和調試更加規範化。進入九十年代以後,面向對象的技術更顯示出其強大的生命力和廣闊的發展前景。在電力工業方面,面向對象技術應用於DTS可大大改善DTS開放性差、擴充性差、以及難維護等方面的不足。

2 .3 C++和Qt 3.0

在目前面向對象的程式語言中,C++具有執行速度快、佔用系統資源少的突出優勢,DTS對系統的實時性要求很高,是開發DTS的首選語言。加之以往很多電力系統軟體採用C語言開發,因此可以利用以往的工程成果,從而大大減少了開發的工作量。

Qt是Linux下的C++用戶界面開發包,它具有以下優點:

(1)支持多平臺。其程序可在MS Windows系列(Windows 95、Windows 98、Windows NT、和Windows 2000)和UNIX/X11 系列(Linux、Sun Solaris、HP-UX、Digital UNIX、IBM AIX、SGI IRIX)等作業系統上進行方便地移植。

(2)國際化支持好。已經有多個語言版本,包括中文,從而解決了漢化問題。

(3)高度面向對象,模塊化高,編寫程序簡單明了。一般來說,用Motif?在UNIX上開發DTS用戶界面的主流類庫?編寫百行的代碼才可實現的功能,用Qt只用十幾行就能實現,因而可使程式設計師從繁瑣的編程中解脫出來,以專注於程序本身的內容。

(4)因為其類庫的本質可以與Mofit類庫混編,且Qt具有不同的系統風格(包括UNIX),並能很好地和Motif用戶界面溶合在一起?因而它是很好的優化DTS的工具。

2.4 SVG

SVG(可升級矢量圖形,Scalable Vector Graphics)是由國際WWW委員會(W3C)組織於2000年8月2日制定的一種新的二維矢量圖形格式。W3C對SVG的解釋是:「SVG是一種使用XML來描述二維圖形的語言。」目前,國外陸續湧現了許多SVG文檔的顯示、編輯和轉換工具,也包括瀏覽器插件。例如,在Windows中裝上Adobe的SVG Viewer後,SVG文件就能在IE中被瀏覽。

因為SVG本身也是XML,它同時也可以包含數據信息,所以,它能夠將DTS中的圖形信息以SVG格式進行輸出,同時可向同一個文件中以XML格式輸出數據信息,這樣不僅可供Web調用或供第三方應用軟體使用,還有利於與不同開發商的EMS/DTS進行信息交換。此外,也可以向國際標準IEC 61970靠攏。

2.5 圖形、數據維護現狀

DTS的數學模型比較複雜,畫面信息量大,操作種類多,數據維護量大。以往的維護都是通過圖形維護資料庫等工具和手段來進行。由於圖形和數據是分開輸入和維護的,因此二者無法直接對應和同步,圖形修改與設備、網絡模型、系統參數等數據修改不能同步進行?從而影響了數據維護的形象直觀性。另外,不直接面向電力設備對象也導致了分散的資料庫中過多的交叉信息,因而造成大量冗餘信息的輸入和維護,資料庫間數據一致性也難以保證,數據的維護也極困難。由於沒有標準的信息交換接口及文件格式,所以各廠家的數據交互比較困難。

而本系統則將原有UNIX下Motif開發的系統向Linux下移植,並用更為結構化的C++語言和更方便的Qt 3.0圖形界面類庫來對其進行修改並完善其功能,從而使之向國際標準IEC61970靠攏,同時也提高了與其它系統的互操作性。

3 體系結構設計

選擇合適的體系結構,對於軟體開發者來說是最重要的決策之一。良好的軟體體系結構可以降低軟體系統的複雜性,這對大規模的並行開發起著舉足輕重的作用。

新一代的DTS圖形數據系統體系結構設計如圖1所示。其中,Qt庫是Linux作業系統預裝的C++圖形用戶界面類庫,它包含了對話框、菜單、字體、基本圖形(直線、矩形、圓等)的繪製等等圖形界面基礎類,是系統界面的基礎。

繪圖操作模塊包含有繪圖中各種操作的實現模式,包括對各種基本圖形及電氣圖元進行編輯操作,例如:區域或單元多單元,文件內及文件間的選擇、複製、剪切、粘貼、縮放、旋轉、變形、恢復、撤消等基本操作。

圖形庫模塊可在Qt庫和繪圖操作模塊的基礎上進行開發,它可以提供給用戶製作、使用、維護電氣圖元的功能。圖形庫模塊包含有表示電力系統設備的基本要素類,如一個圖形元件的形狀、連接點、資料庫關聯等。用面向對象的方法來封裝電力系統中的這些要素,並以這些要素去繪製電力系統中的電氣設備(如開關、刀閘、發電機等),以製作一個可以整體使用的,並具有電網屬性的電氣圖元,可以大大提高系統的可擴展性和用戶的自適應性。

繪圖模塊是構建在Qt庫、繪圖操作模塊和圖形庫模塊基礎上的,主要用於在基本圖形和圖形庫中實現電氣的圖元繪製及維護系統圖、廠站圖及初始化曲線以及棒圖等功能。

數據維護模塊主要實現對初始化模塊初始實時資料庫數據的調用、實時資料庫的訪問以及實時資料庫的修改等功能。它採用三層架構方式來將用戶界面、業務邏輯、數據訪問分離開來,而它們彼此間則通過接口交互。在這種架構下,用戶通過中間層來訪問和修改資料庫,這樣有利於保持數據的一致性和正確性。由於用戶不直接訪問資料庫,因此,資料庫結構的改變不會引起用戶服務程序的修改,而只需修改中間層。

圖形、數據維護模塊負責繪圖模塊和數據維護模塊的協調工作,它可在繪圖的同時通過圖形及友好的人機界面輸入相應的設備參數和運行參數,並具有合理性校驗、自動生成網絡拓撲結構等功能,該模塊是本系統的核心部分。

DTS潮流計算及仿真培訓模塊嚴格地說不屬於圖形數據一體化支撐平臺,它是基於圖形數據一體化支撐平臺的高級應用,是圖形數據一體化支撐平臺服務的對象。

4 圖形數據的維護

圖形、數據維護是本系統的核心部分。結合DTS系統以往的數據維護方式,考慮到各種維護工作側重點的不同,本系統具有三種維護使用方式:交互式、圖庫一體化、批處理。這三種維護方式各有其特點和應用範圍。交互式能提供友好界面以供用戶瀏覽、查詢、維護,該方式側重於對少量數據的錄入修改;圖庫一體化方式可將圖形與資料庫中的設備、網絡模型、系統參數等數據關聯起來,該方式側重於設備、電力網絡模型的維護。批處理方式側重數據的大批量裝入和導出,當然,批量的導入僅限於一些不改變關聯關係的操作。對於不同類型的用戶,可以根據所維護工作的特點選用不同的維護方式。通常,普通用戶可使用交互式,同時僅使用數據瀏覽權限;圖庫一體化用戶由於要維護系統設備參數和網絡拓撲結構,因而可使用圖庫一體化方式;而對於資料庫維護人員,則應使用批處理、交互式方式或圖庫一體化方式。

4.1 交互式

交互式可提供統一的、面向調度自動化系統的數據維護工具,以幫助用戶透明地維護所有的資料庫,其中包括計算機通信系統以及SCADA系統、特殊計算、報警管理、網絡拓撲、設備參數、模擬盤等資料庫。交互式主要實現瀏覽查詢和數據維護兩項功能,其中瀏覽查詢可提供一致和透明的工具,以供使用人員瀏覽查詢資料庫信息,它包含兩種方式:一是表格瀏覽器方式,該方式可供維護人員和系統管理員對系統的各個具體資料庫進行瀏覽查詢;另一種是整體數據查詢方式,可供使用人員或調度員瀏覽查詢電力系統結構和全部數據,該方式支持層次、關係的瀏覽查詢。

數據維護可使維護人員編輯和修改各種數據參數,如增加計算點,修改採集點等。

4.2 圖庫一體化

圖庫一體化方式就是自動保持圖形與資料庫數據的一致。該方式可在圖形編輯器繪製單線圖的同時將對應的電力網絡中的資料庫數據一併填寫完畢,並進行校驗以保證資料庫填寫的正確性。這種方式面向設備圖元,形象直觀,設備之間的連接關係比較清晰,且圖形和數據同步,能解決以往系統中圖形、資料庫和網絡建模因多次輸入而可能造成的數據不一致的問題,從而提高了系統的整體水平。

4.3 批處理

批處理方式主要用於大批量數據的維護,主要包括導入和導出功能。導入主要用於實現資料庫的批量生成,即利用準備好的數據文件填寫離線庫的數據;導出則是利用離線庫數據生成批量裝入文件。其中數據文件具有文本文件和XML(Extensible Markup Language,可擴展標記語言)文件兩種形式。

文本文件形式簡單直觀、導入導出快捷,但是不同廠商獨立開發的DTS 應用數據的描述方式不盡相同,故該文件形式不適用於廣泛的信息交換。

以SVG格式表達圖形信息的XML文件格式來表達數據信息可使信息組織高度結構化。XML 是不同應用系統之間的數據接口標準,是所有信息的中間層表示,可解決信息表示、關聯的統一,實現跨平臺、跨作業系統的信息交互。XML 的HTML 標準信息傳輸格式還擴大了網絡傳輸和信息共享範圍。當XML與控制中心接口的公用信息模型(CCAPI ―CIM)結合(即在應用程式或構件接口語義級上基於CIM)時,不同廠商開發的應用程式或不同系統的應用軟體間就可以用統一的XML文件方式實現正確的信息交換。

5 結論

本系統以Linux為平臺,具有較高的穩定性,硬體兼容性好,價格低廉,速度快。將面向對象技術應用於DTS可大大改善DTS開放性差、擴充性差、難維護等不足。而採用C++和Qt類庫編程,則可利用前人已有的成果進一步降低開發難度,提高開發效率。同時也很容易向UNIX移植,以適應一些用戶的特殊要求。由於該系統在圖形數據維護上對老系統進行了完善,因而大大減少了原有DTS數據維護的工作量及繁雜度。另外,與EMS API IEC 61970標準相結合還可導出XML數據文本和SVG格式畫面,從而可方便地與其它系統實現互操作。目前,此系統已應用於山東臨沂的DTS中,並得到調度員和專業人士的好評,同時也證明了此方案的可行性與實用性。

相關焦點

  • 嵌入式linux新手入門手記-準備qt5.4.1開發平臺
    ubuntu的qt安裝在/home/XXXX/qt5.4.1目錄下,QtCreator也安裝在相同目錄下,上述的qtdemo程序用QtCreator創建並編譯通過。這裡需要注意一點,我們在交叉編譯qt5.4.1的工具包時,涉及到2種不同的編譯:第一種是使用ubuntu安裝的GCC和G++編譯qmake工具,這些qmake工具將運行在ubuntu下,用於將後續自己編寫的qt應用程式的原始碼編譯成能夠運行在arm平臺上的目標可執行程序;第二種是使用arm-linux-gnueabihf編譯器,將qt5.4.1的庫編譯成運行於arm平臺的靜態庫或者共享庫。
  • 嵌入式Linux用Qt Designer快速開發
    RAD(快速應用程式開發)是一種高效的軟體開發形式,可以讓用戶在極短的時間裡創建一個圖形化的用戶界面。通常情況下,在一張空白的表單上,開發人員可以通過拖拉或點擊的方式,在窗口的適當位置上添加一些輸入框和按鈕等窗口組件。
  • 山西省知識產權局新一代專利檢索分析系統投用
    11月6日,我省新一代專利檢索及分析系統已部署完成並通過整體測試,正式上線啟用。自此,省內的創新主體和專利權人可便捷檢索分析涵蓋103個國家、組織和地區的超過1.5億條專利文獻數據。這是省智慧財產權管理部門持續服務創新主體、不斷優化營商環境的又一重要進展。
  • linux下安裝虛擬機,完美在linux系統下運行通達信軟體
    現在越來越多的人使用linux系統,現在很多的國產作業系統都是基於linux內核上的。雖說不少的軟體都可以運行在linux的系統上。但是對於股票軟體來說在linux上的使用是一個硬傷。能夠運行在linux下的國內股票軟體少之又少。
  • Linux下常用的研發工具和環境
    但以上三種UML工具都只能在Windows環境下運行。Linux下,目前常用的UML工具為UMbrello。三、集成開發環境:當前Linux上,已有兩款優秀的集成開發環境KDevelop和Eclipse。Eclipse是目前最著名的一款開源集成開發環境。KDevelop目的是為KDE提供一個易用的集成開發環境(官網:www.kdevelop.org).
  • 基於Qt環境下物理實驗數據處理系統的設計與實現
    摘要:基於物理實驗數據的處理複雜性與繁瑣性,採用Qt軟體所提供的C++編程環境,進行實驗數據處理軟體開發。以麥可遜幹涉儀實驗數據處理為實例,設計研發得到一套實驗數據計算分析的處理軟體。研製具有簡潔方便的實驗數據處理工作平臺,應用於繁瑣的物理實驗數據處理中,適應於不同物理參數的測試需求;並且具備有其自身的個性化特點,適合特殊性物理參數測試需求。全篇以麥可遜實驗數據處理軟體實例作為個案來展開,具體描述整個軟體的設計與開發。Qt作為系統開發的環境,具有不可替代的優勢。
  • 在MPSoC上運行基於eglfs_kms的QT應用程式
    對於有GPU的嵌入式Linux系統,建議使用eglfs。 當使用KMS/DRM時,EGLFS的Backend是eglfs_kms。更多信息,可以參考QT文檔,https://doc.qt.io/qt-5/embedded-linux.html 3 Xilinx支持情況 Xilinx支持eglfs_kms。
  • 如何使用Qt為arduino製作圖形界面
    如何使用Qt為arduino製作圖形界面 網絡整理 發表於 2019-11-13 11:11:39 步驟1:安裝Qt
  • 從串口驅動到Linux驅動模型,想轉Linux的必會!
    本文通過對Linux下串口驅動的分析。由最上層的C庫。到作業系統系統調用層的封裝。再到tty子系統的核心。再到一系列線路規程。再到最底層的硬體操作。對Linux中的tty子系統進行簡要的說明。從理論到實踐。以便讀者能對OS原理有更深入的了解和更具體的掌握。在具體分析之前。我們必須對串口。驅動。和Linux作業系統有一定的了解。
  • Linux GUI子系統概述 GUI子系統的構成及工作流程
    但同時由於它處在整個系統的核心位置,對外需要通過滑鼠、鍵盤 、顯示器進行I/O獲取和控制,在內需要負責圖形的生成,渲染,整個系統複雜度比較高。本文會從以下幾個 方面來介紹GUI子系統: 以Linux下的原生GUI子系統為例,概述GUI子系統的概念,軟硬體部分在GUI子系統的中的角色及大致構成; 著重分析Linux下DRM+KMS的軟體實現方式,並且以Xilinx的Zynq-7000 SOPC為例,詳細介紹相關片內硬體模塊在GUI系統中的角色及實現方式;(由於GPU模塊硬體的源碼的開源程度不高,不在本文的分析範圍內
  • 基於MATLAB的遠程信號分析與診斷系統的開發
    它集數值分析、矩陣運算、信號處理、仿真控制和圖形顯示等於一體,構成了一個方便的、功能強大的、界面友好的用戶環境和系統開發平臺,在故障診斷等眾多工程領域有著廣泛的應用[2,3]。近年來,隨著計算機技術與通信技術的發展,Internet/Intranet技術已成為遠程信號分析與處理系統開發的理想平臺,然而,要實現真正意義上的基於WEB的遠程監測、分析與診斷,非常困難[4]。
  • 基於嵌入式Linux的語音識別系統硬軟體設計
    在嵌入式Linux作業系統下,運用多進程機制完成了對語音識別晶片、超聲波測距和雲臺的控制,並將語音識別技術應用於多角度超聲波測距系統中。通過測試,系統可以通過識別語音指令控制測量方向,無需手動幹預,最後將測量結果通過語音播放出來。
  • Linux找不到CAD軟體?這些常用CAD軟體很好用
    經常有很多人抱怨Linux找不到好用的軟體,特別是CAD軟體。因此很多人對使用Linux系統心存疑慮,打消了使用Linux系統的念頭。那麼Linux下真的沒有CAD軟體可用嗎?新版本的Varicad採用了全新的工作界面,支持Linux下的三維滑鼠,改過了三維內核,增強了2d對像,能夠大幅度的提升設人員的工作效率,快速創建,評估和修改模型。使用VariCAD研發特殊的工業產品或幫用戶繪製產品3D繪圖,能使你的繪圖工作更快速更精準,能更快速的研發新產品。VariCAD支持2D製圖和3D建模,功能豐富,是Linux下一個好用的CAD軟體。
  • 盤點嵌入式開發工具,或許能用上!
    嵌入式開發就是指在嵌入式作業系統下進行開發,一般常用的系統有μcos,vxworks,linux,android等。當然,對於嵌入式或單片機工程師的利器就是C語言、C++或彙編語言。那麼有哪些好工具可以讓工作事半功倍呢?
  • 嵌入式Linux開發環境的搭建之:嵌入式開發環境的搭建
    本文引用地址:http://www.eepw.com.cn/article/257141.htm5.1嵌入式開發環境的搭建5.1.1嵌入式交叉編譯環境的搭建linux作業系統文章專題:linux作業系統詳解(linux不再難懂)交叉編譯的概念在第4章中已經詳細講述過,搭建交叉編譯環境是嵌入式開發的第一步,也是必備的一步。
  • 中科鼎創發布新一代ODS數據保護系統
    近日,深圳市中科鼎創集團推出了新一代ODS數據保護系統,創新性的ODS軟體實現主流作業系統資料庫文件的實時本、異地備份,數據的任意點回退,達到了True CDP標準,其實現為國內數據保護系統起到了示範作用。
  • 數據分析與挖掘 - 08圖形繪製
    1 柱狀圖在實際的企業應用中,我們要掌握多種圖形的繪製,並且深度結合自己的應用場景,用合適的圖形來展示適合它的數據場景,使得數據更具有說明力。>我們再次來看一下柱狀圖,柱狀圖在數據的可視化展示用應用的場景非常的多了,比如按照月份的商品銷量展示,銷售人員的業績統計等等場景我們都會用到。
  • 17 個 Linux 下用於 C/C++ 的最好的 IDE
    其功能分為編譯器、調試器、界面功能,它們包括:支持多種編譯器如 GCC、clang、Borland C++ 5.5、digital mars 等等非常快,不需要 makefile支持多個目標平臺的項目支持將項目組合起來的工作空間GNU GDB 接口支持完整的斷點功能,包括代碼斷點,數據斷點
  • MDA V8–新一代測量數據分析器
    MDA V8 – 新一代測量數據分析器 來自ETAS的測量數據分析器(MDA )是一個用於回看、分析和驗證所記錄測量數據的高性能工具。最新版MDA V8.5.2具有文件加載速度快,分析能力強大,可提供直觀的用戶體驗等特點。新一代的MDA採用了新設計的架構,性能和實用性均大幅提升。
  • 智慧公安大數據分析平臺開發警務通APP系統開發
    智慧公安大數據分析平臺開發警務通APP系統開發眾所周知,大數據在公安機構一直以來都素有「智慧大腦」之稱,而數據又是智慧公安建設極其重要的基礎,通過系統的採集分析計算,能進一步的打通數據聯通壁壘,實現數據資源一體化,推動上下左右聯通共享,實現各種數據關聯性分析,異常監測等,將數據轉化為有效資源,對警情進行預測防範。