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中,并得到调度员和专业人士的好评,同时也证明了此方案的可行性与实用性。
- 在Lin(5554)
相关推荐
QT+Linux+Microblaze实现的三轴数控系统
9578
如何在嵌入式Linux开发板上配置Qt运行环境
2117Linux系统中搭建Qt Creator开发环境
17064412开发板烧写Linux-QT问题
LINUX的Qt开发和ARM的GUI开发差别有多大
Linux Qt 及Arm开发板汉字显示
在Arm linux开发环境下运行主机中编译好的QT程序
在PanGu Board上运行Qt应用实战
在嵌入式Linux环境下怎么实现软键盘?
新一代数据库技术在双11中的黑科技
ARM9嵌入式系统设计与开发教程
ARM嵌入式Linux 系统开发从入门到精通
ARM嵌入式Linux系统开发从入门到精通
DIAdem怎么截取任意一段波形数据保存?
DM8168 linux开发,请问DSP与ARM处理器程序开发是独立的吗?
IMX6开发板学习烧写Linux-QT系统步骤做个笔记
STM32怎样用串口与Linux下的QT用户界面通信???
ST助力NTT Plala推出先进新一代智能IPTV机顶盒
ST助力NTT Plala推出先进新一代智能IPTV机顶盒
TI 新一代明星CPU
WT5000是横河新一代高精度功率分析仪的首个机型
《嵌入式Linux系统开发技术详解》
【NanoPi M1 Plus试用体验】【结项】-基于Qt环境下的FTP服务工具开发
【NanoPi M2试用体验】之基于QT图形界面编程操作MySQL数据库
【OK210试用体验】+Linux嵌入式下QT图形界面开发(二)
【OK210试用体验】+inux嵌入式下QT图形界面开发(一)
【Rico Board试用体验】Qt编程语言介绍
【Rico Board试用体验】Amazon Iot物联网终端之十七 QT Creator开发环境测试
基于4G和Beyond 3G的新一代移动通信系统讨论
基于QT的嵌入式linux图形应用软件设计
基于ARM Linux QT的掌上多媒体系统的设计和实现 (1)
基于嵌入式Linux的彩色LCD驱动设计
如何安装QT
嵌入式Linux图形系统(GUI)快速参考手册
嵌入式Linux系统中GUI编程
嵌入式Linux系统开发学习步骤
嵌入式Linux系统开发学习步骤
嵌入式Linux系统开发学习步骤
嵌入式Linux系统开发学习步骤
嵌入式Linux系统开发学习步骤,深圳嵌入式Linux培训高薪一路相伴
嵌入式Linux系统开发学习路线
嵌入式Linux系统开发学习路线
嵌入式linux系统与应用开发就业班
成为一名嵌入式Linux开发工程师需要学习哪些知识?
成为一名嵌入式Linux开发工程师需要学习哪些知识?
成为一名嵌入式Linux开发工程师需要学习哪些知识?
成为一名嵌入式Linux开发工程师需要学习哪些知识?
成为一名嵌入式Linux开发工程师需要学习哪些知识?
探讨一下嵌入式Linux系统中UI编程
教你做一个用嵌入式linux开发板和web端来实现的视频监控系统
无GUI桌面的QT5文件系统发布
有关linux系统下用qt编写车载导航系统的问题
板载linux OS下,利用FPGA做图像硬件加速
求一种基于Linux的Qt图形化MP3播放器的设计方案
求问(附优龙YL2440开发板使用手册):基于ARM嵌入式linux的
迅为IMX6ULL教程更新至2060+页,裸机开发,Linux系统移植,驱动开发,构建文明系统,QT开发,系统编程
基于Qt/Embedded的嵌入式控制界面开发
48Qt嵌入式图形开发(入门篇)
125基于Qt4的图形用户界面程序设计
75Linux窗口程序设计—Qt4精彩实例分析
241基于Qt的嵌入式Linux通讯簿程序设计
3406qt4图形设计与嵌入式开发
10Qt图形编程基础之使用Qt编写“Hello,World”程序实验
1Qt/Embedded开发入门
9嵌入式linux GUI-Qt解析
1嵌入式linux应用开发之QT
4基于Linux Qt平台可视化管理的网关系统设计
4Qt Creator下载和安装(详细教程)
5057Linux Qt 及Arm开发板汉字显示
405如何在linux操作系统的机器上安装Qt图形开发环境安装手册免费下载
18嵌入式LINUX的Qt开发入门教程
20654
图形数据库是一种NoSQL数据库
3632嵌入式LINUX的Qt开发入门教程详细说明
30嵌入式LINUX的Qt开发入门教程
23基于嵌入式Linux系统的Qt-Embedded图像处理界面开发总结
7嵌入式LINUX的Qt开发入门教程
12Qt 嵌入式图形开发大全和QT开发手册
21
电子发烧友App



评论