关键词: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库、绘图操作模块和图形库模块基础上的,主要用于在基本图形和图形库中实现电气的图元绘制及维护系统图、厂站图及初始化曲线以及棒图等功能。
数据维护模块主要实现对初始化模块初始实时数据库数据的调用、实时数据库的访问以及实时数据库的修改等功能。它采用三层架构方式来将用户界面、业务逻辑、数据访问分离开来,而它们彼此间则通过接口交互。在这种架构下,用户通过中间层来访问和修改数据库,这样有利于保持数据的一致性和正确性。由于用户不直接访问数据库,因此,数据库结构的改变不会引起用户服务程序的修改,而只需修改中间层。
图形、数据维护模块负责绘图模块和数据维护模块的协调工作,它可在绘图的同时通过图形及友好的人机界面输入相应的设备参数和运行参数,并具有合理性校验、自动生成网络拓扑结构等功能,该模块是本系统的核心部分。