最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

基于Qt的配电调度自动化软件的跨平台开发

IT圈 admin 34浏览 0评论

2024年6月6日发(作者:犁若彤)

维普资讯

42 基于Qt的配电调度自动化软件的跨平台开发 

基于Qt的配电调度自动化软件的跨平台开发 

Cross——platform Development of Distribution and Dispatch Automation System Based on Qt 

路致远 刊、广明 (国网电力科学研究院,江苏南京210003) 

摘 要 

随着计算机技术的快速发展和用户需求的日益提高,电力系统自动化逐渐出现多平台共存的现象,能够兼容多种操作 

系统平台是配电调度自动化软件的发展方向之一。介绍了Qt开发工具包,将其应用到电力系统自动化软件的设计开发中, 

从而实现应用程序跨平台的能力。 

关键词:电力系统,SCADA,跨平台,Qt 

Abstrac1 

With the rapid development of the computer technology and the improvement of the consumer need。it appears gradual— 

ly that there are many platforms in the electric power system,and the system which can run on many kinds of the opeating 

systems is one of direction of the distribution and dispatch automation systems.In this paper,the technology of Qt is intro- 

duced.and is applied to develop the electric power automation system.Thereby.the application can realize the ability of the 

cross-platfOrm 

Keywords:electric power.SCADA,cross-platform,Qt 

随着技术的快速发展,电力系统配电调度自动化软件不断 

地向多平台延伸。虽然目前我国变电站监控调度系统已经相当 

成熟,在Windows、Linux及Unix平台下都有很多产品出现,但 

是大部分都是同一系统在不同平台下分别开发,真正实现跨平 

台的软件很少,另外由于Unix下的软件开发技术起点较高,开 

发成本较大,面临一定风险。 

Qt是一个由挪威TroflTech公司开发的跨平台C++图形用 

户界面库,目前包括Qt、基于Framebuffer的Qt Embedded、 

1.3调度员工作站 

调度员工作站时直接提供给调度员进行监控和各种操作的 

界面,显示各种画面(包括系统图、接线图、地理图、曲线、棒图 

等)、报表、告警信息和管理信息,并且可以检索各种历史数据, 

进行遥控、遥调操作和查询各种参数。 

1.4 Web服务器 

Web服务器,实现了SCADA/DA系统、MIS系统、上下级 

调度系统等各Intranet网内节点间的信息、图形、报表、历史曲 

快速开发工具Qt Designer以及国际化工具Qt Linguist等部 

分。Qt支持所有Unix系统,当然也包括Linux,还支持WinNT/ 

Win2000、Win95/98平台。Qt完全面向对象且很容易扩展,其优 

良的跨平台特性、丰富的API,以及对2D/3D图形渲染、 

线、各种告警操作记录等信息的共享。 

1.5报表工作站 

报表工作站主要完成报表的相关功能,包括报表的创建、浏 

览、打印等功能。 

OpenGL、XML的支持正在逐渐成为众多跨平台软件的首选。本 

文将Qt开发工具包应用到配电调度自动化软件中,相同的软件 

代码在不同平台编译后即可在该平台运行,真正实现应用程序 

电力系统中对安全运行的条件要求比较高,基本都采用了 

双网双库来保证其安全稳定运行,其配电调度自动化系统结构 

简单示意图如图1所示。 

跨平台的能力。 

1 系统结构与分析 

完整的系统结构比较复杂,包含了数据采集(SCADA功 

能)、图形显示、报表打印、远程控制、实时数据与历史数据查询 

等诸多方面。在此,仅对系统主要结构进行简单介绍。 

1.1数据采集工作站(前置机) 

数据采集工作主要负责实时数据的采集与处理,以及向远 

方智能终端设备下发控制命令,完成对开关、刀闸、变压器档位 

等的远方控制。前置机主机在将采集的数据处理并保存至本机 

数据库的同时,将处理后的实时数据以广播的方式在实时网络 

上发布,各工作站节点接收网上的数据报文,实时刷新数据库, 

这样减轻了各个工作站数据处理的负担。系统支持各类常见的 

通信规约,包括:部颁CDT、XT9702、IEC101一IEC104等。 

I・;; 

Rt 转笈 

1l2数据库服务器 

实时数据库的数据定义来自商用数据库,在每个客户机上常 

图1 配电自动化系统结构简图 

2系统设计与实现 

2.1图形组态模块 

驻内存,其定义及描述是在系统启动时根据商用数据库的内容而 

产生,反应当前电网的状态,存发实时性要求比较高的数据。 

整个系统的电力设备库主要是通过组态绘图软件自动建 

维普资讯

《工业控制计算机)2008年21卷第9期 

立。图一库一模一体化设计通过如下主要阶段完成建模任务,如 

SYBASE支持的db—library或ct—library方式。编译时,需包含 

图2所示。 

用户图形交互 

公用设备库 

绘制厂站画_向 

记录标识字段 

厂站接线图 

的数据结构 

设备连接 

电力连接关系字 

连接合理性榆杳 

连接合理性字段 

连接合理性显示 

图2厂站图绘制、建库和建模的流程图 

1)绘制电力设备图元等价于建立电力设备的数据库记录; 

2)连接关系建立、存库等价于为电力设备记录添连接关系 

属性; 

3)映射量测库:等价与建立电力设备需要SCADA库记录; 

4)网络拓扑检查:对接线图中的网络拓扑进行合理性检查, 

为拓扑着色做准备。 

在Qt 4.2中,Graphics View提供了一个界面,它既可以 

管理大数量的定制2D Graphical Items,又可与它们交互,并 

支持旋转与缩放。对于在Graphics Scene中的这些Items,具 

有双精度的交互能力,能处理键盘、鼠标事件。Graphics View 

使用BSP树来提供对Item的快速查找,使用这种技术,它可以 

实时地绘制大规模场景Graphics Scene,甚至以百万Items 

计。Graphics View提供的是一种类似于Qt model—view的编 

程。多个View可以监视同一个场景,而场景包含多个具有多种 

几何外形的Items。在电力设备库的组态上,需要显示多个诸如 

直线、矩形、圆形等几何图形,利用Graphics View和Graphics 

Scene的这些特性,可以很方便地绘制和显示出多种用户定义 

的图形,以构造出各种电力设备元件。 

针对电力组态绘图存盘文件的读写,主要采用了XML编程 

的DOM和SAX方式。DOM解析器读入整个文档,然后构建一 

个驻留内存的树结构,然后代码就可以使用DOM接口来操作 

这个树结构。SAX解析器主要提供事件驱动,发现元素开始、元 

素结束、文本、文档的开始或结束等的时候,发送事件、程序员编 

写响应这些事件的代码。Qt对这两种方式的读写都提供了很好 

的支持。 

2-2数据库模块 

针对跨平台应用,数据库选择主流的商用数据库SYBASE 

或者ORACLE。Qt的数据库访问SQL类主要分成以下三层:用 

户接口层,主要提供了基于数据的窗口部件;SQL应用编程接口 

层,用于存取数据库;驱动程序层,在数据库和SQL类之间提供 

了底层的桥梁。Qt对数据库的访问采用插件来实现,针对不同 

的数据库,编写不同的SQL驱动程序插件即可,Qt的SQL模块 

可以在运行期动态的装载新的驱动程序。所有的数据库访问组 

件都从QSqlDriver、QSqlResult和QSqlDriverPIugin继承。以 

SYBASE为例,用户根据自己的需要实现QTDSDriver、QTD— 

SResult和QTDSDriverPlugin三个类即可,具体可以选择 

¥(SYBASE)/¥(SYBASE-OCS)/include下的头文件,以及 

¥(SYBASE)/¥(SYBASE_OCS)/lib下的库文件,编译好的插件 

放置在¥QTDIR/plugins/sqldrivers目录下,Qt可以在运行时自 

动装载,为QSqIDalabase所用。 

2.3数据采集模块 

在数据采集模块中,SCADA前置系统通过与各远方RTU 

或变电站综合自动化系统的通信实现对电网实时运行信息的采 

集,将其接收到的实时数据通过网络点对点通信方式写入到系 

统的实时数据库中去,涉及较多的是实现各类设备的网络通信 

编程。系统中,充分利用了Qt提供的诸如QSocket、QServer- 

Socket、QSocketDevice、QSocketNotifier等与套接字相关的网 

络编程类,避免了与各类平台的操作系统底层特性打交道,真正 

实现跨平台操作。 

2.4其他 

Qt的事件驱动是基于Qt的一项关键技术Signal/Slot(信 

号与槽)机制。不同与大多数GUl工具包的控件,其所能处理的 

每一个事件都对应一个回调函数,在Qt中,Signal和Slot替代 

了这些繁杂的回调函数指针。Signal和Slot用于对象间的通信, 

建立图形对象的动画连接。电力图元动画连接的实现方法是将 

用户窗口中的图形对象与实时数据库中的数据对象建立相关性 

连接,并设置相应的动画属性,将物理对象的特征参数以动画图 

形方式来进行描述,这样在系统运行过程中,图形对象的外观和 

状态特征,就会由数据对象的实时采集结果进行驱动,从而实现 

图形的动画效果,使电力图形界面“动”起来,进而产生形象逼真 

的动画效果。 

此外,系统采用了Qt的多语言翻译功能,把想要翻译的字 

符串放入tr()中,如QString str=tr(”Legal ),在开始的时候载人 

预先制作好的翻译文件(.qm),并在程序中加载,轻松跨平台的 

实现系统的多语言支持。 

3结束语 

Windows系统易于使用,但是可靠性、安全性不高,容易受 

到病毒以及网络攻击;Unix稳定可靠,但是不容易使用,而且主 

机和操作系统成本较高;而Linux介于二者之间。三种平台互有 

优缺点,谁也无法代替谁,在未来的很长一段时间内,电力系统 

自动化软件将是多平台共存的现象,能够兼容多种操作系统平 

台时配电调度自动化软件的发展方向之一。 

本系统系国网电力科学研究院AE900o配电调度自动化系 

统的新一代升级产品,采用Qt作为跨平台的开发工具,成功实 

现了对Windows、Unix以及Linux等多平台的支持,其稳定运 

行证明基于Qt开发电力系统配电调度自动化软件是完全可行 

的,并且也是最为经济适用分方案之一。 

参考文献 

[1]姚建国,杨胜春,高宗和,等.电网调度自动化系统发展趋势展望[J]. 

电力系统自动化,2007,31(13):7—10 

[2]黄艳玲,王菽蓉.电力电网调度自动化系统的软件设计[J].自动化技 

术与应用,2002(1):44—46 

[3]谢忻,黄益庄,牟晓勇.开放式调度自动化系统的软件设计[J].电网 

技术,2o01,25(12):34—37 

[4]刘臣亮,刘宇.电力调度自动化系统的关键任务监视报警软件[J].水 

电自动化与大坝监测,2007,31(1):29—31 

[收稿日期:2008.6.16] 

2024年6月6日发(作者:犁若彤)

维普资讯

42 基于Qt的配电调度自动化软件的跨平台开发 

基于Qt的配电调度自动化软件的跨平台开发 

Cross——platform Development of Distribution and Dispatch Automation System Based on Qt 

路致远 刊、广明 (国网电力科学研究院,江苏南京210003) 

摘 要 

随着计算机技术的快速发展和用户需求的日益提高,电力系统自动化逐渐出现多平台共存的现象,能够兼容多种操作 

系统平台是配电调度自动化软件的发展方向之一。介绍了Qt开发工具包,将其应用到电力系统自动化软件的设计开发中, 

从而实现应用程序跨平台的能力。 

关键词:电力系统,SCADA,跨平台,Qt 

Abstrac1 

With the rapid development of the computer technology and the improvement of the consumer need。it appears gradual— 

ly that there are many platforms in the electric power system,and the system which can run on many kinds of the opeating 

systems is one of direction of the distribution and dispatch automation systems.In this paper,the technology of Qt is intro- 

duced.and is applied to develop the electric power automation system.Thereby.the application can realize the ability of the 

cross-platfOrm 

Keywords:electric power.SCADA,cross-platform,Qt 

随着技术的快速发展,电力系统配电调度自动化软件不断 

地向多平台延伸。虽然目前我国变电站监控调度系统已经相当 

成熟,在Windows、Linux及Unix平台下都有很多产品出现,但 

是大部分都是同一系统在不同平台下分别开发,真正实现跨平 

台的软件很少,另外由于Unix下的软件开发技术起点较高,开 

发成本较大,面临一定风险。 

Qt是一个由挪威TroflTech公司开发的跨平台C++图形用 

户界面库,目前包括Qt、基于Framebuffer的Qt Embedded、 

1.3调度员工作站 

调度员工作站时直接提供给调度员进行监控和各种操作的 

界面,显示各种画面(包括系统图、接线图、地理图、曲线、棒图 

等)、报表、告警信息和管理信息,并且可以检索各种历史数据, 

进行遥控、遥调操作和查询各种参数。 

1.4 Web服务器 

Web服务器,实现了SCADA/DA系统、MIS系统、上下级 

调度系统等各Intranet网内节点间的信息、图形、报表、历史曲 

快速开发工具Qt Designer以及国际化工具Qt Linguist等部 

分。Qt支持所有Unix系统,当然也包括Linux,还支持WinNT/ 

Win2000、Win95/98平台。Qt完全面向对象且很容易扩展,其优 

良的跨平台特性、丰富的API,以及对2D/3D图形渲染、 

线、各种告警操作记录等信息的共享。 

1.5报表工作站 

报表工作站主要完成报表的相关功能,包括报表的创建、浏 

览、打印等功能。 

OpenGL、XML的支持正在逐渐成为众多跨平台软件的首选。本 

文将Qt开发工具包应用到配电调度自动化软件中,相同的软件 

代码在不同平台编译后即可在该平台运行,真正实现应用程序 

电力系统中对安全运行的条件要求比较高,基本都采用了 

双网双库来保证其安全稳定运行,其配电调度自动化系统结构 

简单示意图如图1所示。 

跨平台的能力。 

1 系统结构与分析 

完整的系统结构比较复杂,包含了数据采集(SCADA功 

能)、图形显示、报表打印、远程控制、实时数据与历史数据查询 

等诸多方面。在此,仅对系统主要结构进行简单介绍。 

1.1数据采集工作站(前置机) 

数据采集工作主要负责实时数据的采集与处理,以及向远 

方智能终端设备下发控制命令,完成对开关、刀闸、变压器档位 

等的远方控制。前置机主机在将采集的数据处理并保存至本机 

数据库的同时,将处理后的实时数据以广播的方式在实时网络 

上发布,各工作站节点接收网上的数据报文,实时刷新数据库, 

这样减轻了各个工作站数据处理的负担。系统支持各类常见的 

通信规约,包括:部颁CDT、XT9702、IEC101一IEC104等。 

I・;; 

Rt 转笈 

1l2数据库服务器 

实时数据库的数据定义来自商用数据库,在每个客户机上常 

图1 配电自动化系统结构简图 

2系统设计与实现 

2.1图形组态模块 

驻内存,其定义及描述是在系统启动时根据商用数据库的内容而 

产生,反应当前电网的状态,存发实时性要求比较高的数据。 

整个系统的电力设备库主要是通过组态绘图软件自动建 

维普资讯

《工业控制计算机)2008年21卷第9期 

立。图一库一模一体化设计通过如下主要阶段完成建模任务,如 

SYBASE支持的db—library或ct—library方式。编译时,需包含 

图2所示。 

用户图形交互 

公用设备库 

绘制厂站画_向 

记录标识字段 

厂站接线图 

的数据结构 

设备连接 

电力连接关系字 

连接合理性榆杳 

连接合理性字段 

连接合理性显示 

图2厂站图绘制、建库和建模的流程图 

1)绘制电力设备图元等价于建立电力设备的数据库记录; 

2)连接关系建立、存库等价于为电力设备记录添连接关系 

属性; 

3)映射量测库:等价与建立电力设备需要SCADA库记录; 

4)网络拓扑检查:对接线图中的网络拓扑进行合理性检查, 

为拓扑着色做准备。 

在Qt 4.2中,Graphics View提供了一个界面,它既可以 

管理大数量的定制2D Graphical Items,又可与它们交互,并 

支持旋转与缩放。对于在Graphics Scene中的这些Items,具 

有双精度的交互能力,能处理键盘、鼠标事件。Graphics View 

使用BSP树来提供对Item的快速查找,使用这种技术,它可以 

实时地绘制大规模场景Graphics Scene,甚至以百万Items 

计。Graphics View提供的是一种类似于Qt model—view的编 

程。多个View可以监视同一个场景,而场景包含多个具有多种 

几何外形的Items。在电力设备库的组态上,需要显示多个诸如 

直线、矩形、圆形等几何图形,利用Graphics View和Graphics 

Scene的这些特性,可以很方便地绘制和显示出多种用户定义 

的图形,以构造出各种电力设备元件。 

针对电力组态绘图存盘文件的读写,主要采用了XML编程 

的DOM和SAX方式。DOM解析器读入整个文档,然后构建一 

个驻留内存的树结构,然后代码就可以使用DOM接口来操作 

这个树结构。SAX解析器主要提供事件驱动,发现元素开始、元 

素结束、文本、文档的开始或结束等的时候,发送事件、程序员编 

写响应这些事件的代码。Qt对这两种方式的读写都提供了很好 

的支持。 

2-2数据库模块 

针对跨平台应用,数据库选择主流的商用数据库SYBASE 

或者ORACLE。Qt的数据库访问SQL类主要分成以下三层:用 

户接口层,主要提供了基于数据的窗口部件;SQL应用编程接口 

层,用于存取数据库;驱动程序层,在数据库和SQL类之间提供 

了底层的桥梁。Qt对数据库的访问采用插件来实现,针对不同 

的数据库,编写不同的SQL驱动程序插件即可,Qt的SQL模块 

可以在运行期动态的装载新的驱动程序。所有的数据库访问组 

件都从QSqlDriver、QSqlResult和QSqlDriverPIugin继承。以 

SYBASE为例,用户根据自己的需要实现QTDSDriver、QTD— 

SResult和QTDSDriverPlugin三个类即可,具体可以选择 

¥(SYBASE)/¥(SYBASE-OCS)/include下的头文件,以及 

¥(SYBASE)/¥(SYBASE_OCS)/lib下的库文件,编译好的插件 

放置在¥QTDIR/plugins/sqldrivers目录下,Qt可以在运行时自 

动装载,为QSqIDalabase所用。 

2.3数据采集模块 

在数据采集模块中,SCADA前置系统通过与各远方RTU 

或变电站综合自动化系统的通信实现对电网实时运行信息的采 

集,将其接收到的实时数据通过网络点对点通信方式写入到系 

统的实时数据库中去,涉及较多的是实现各类设备的网络通信 

编程。系统中,充分利用了Qt提供的诸如QSocket、QServer- 

Socket、QSocketDevice、QSocketNotifier等与套接字相关的网 

络编程类,避免了与各类平台的操作系统底层特性打交道,真正 

实现跨平台操作。 

2.4其他 

Qt的事件驱动是基于Qt的一项关键技术Signal/Slot(信 

号与槽)机制。不同与大多数GUl工具包的控件,其所能处理的 

每一个事件都对应一个回调函数,在Qt中,Signal和Slot替代 

了这些繁杂的回调函数指针。Signal和Slot用于对象间的通信, 

建立图形对象的动画连接。电力图元动画连接的实现方法是将 

用户窗口中的图形对象与实时数据库中的数据对象建立相关性 

连接,并设置相应的动画属性,将物理对象的特征参数以动画图 

形方式来进行描述,这样在系统运行过程中,图形对象的外观和 

状态特征,就会由数据对象的实时采集结果进行驱动,从而实现 

图形的动画效果,使电力图形界面“动”起来,进而产生形象逼真 

的动画效果。 

此外,系统采用了Qt的多语言翻译功能,把想要翻译的字 

符串放入tr()中,如QString str=tr(”Legal ),在开始的时候载人 

预先制作好的翻译文件(.qm),并在程序中加载,轻松跨平台的 

实现系统的多语言支持。 

3结束语 

Windows系统易于使用,但是可靠性、安全性不高,容易受 

到病毒以及网络攻击;Unix稳定可靠,但是不容易使用,而且主 

机和操作系统成本较高;而Linux介于二者之间。三种平台互有 

优缺点,谁也无法代替谁,在未来的很长一段时间内,电力系统 

自动化软件将是多平台共存的现象,能够兼容多种操作系统平 

台时配电调度自动化软件的发展方向之一。 

本系统系国网电力科学研究院AE900o配电调度自动化系 

统的新一代升级产品,采用Qt作为跨平台的开发工具,成功实 

现了对Windows、Unix以及Linux等多平台的支持,其稳定运 

行证明基于Qt开发电力系统配电调度自动化软件是完全可行 

的,并且也是最为经济适用分方案之一。 

参考文献 

[1]姚建国,杨胜春,高宗和,等.电网调度自动化系统发展趋势展望[J]. 

电力系统自动化,2007,31(13):7—10 

[2]黄艳玲,王菽蓉.电力电网调度自动化系统的软件设计[J].自动化技 

术与应用,2002(1):44—46 

[3]谢忻,黄益庄,牟晓勇.开放式调度自动化系统的软件设计[J].电网 

技术,2o01,25(12):34—37 

[4]刘臣亮,刘宇.电力调度自动化系统的关键任务监视报警软件[J].水 

电自动化与大坝监测,2007,31(1):29—31 

[收稿日期:2008.6.16] 

发布评论

评论列表 (0)

  1. 暂无评论