(国电南瑞科技股份有限公司 江苏南京 211100)
摘要:目前,各电网自动化系统独立设计、开发,不能满足调度、监控和综合分析决策对系统一体化的迫切要求,针对这一现状,提出了基于模块化分层理论的通用电网调度控制图形软件架构。该架构提取和抽象了不同系统图形软件架构的共性模块,形成一体化的基础开发平台。基于该平台,可快速开发一体化的电网调度、配电和变电站图形交互软件。对总体架构、模块化分层理论、图形通用API和架构关键技术进行了阐述。该架构已应用到了多个电网调控图形软件项目的开发中,且工程应用良好,满足电网调控一体化需求,有效降低了系统开发成本。
关键词:电力系统自动化;图形软件架构;分层架构;图形渲染;多终端
引言
近年来,随着电力发展步伐不断加快,电网规模日益扩大,电力系统的自动化水平也得到了飞速发展。变电站自动化、电网调度自动化、配电自动化等各种自动化系统随着计算机技术、自动控制技术和网络技术的发展而日新月异。然而目前各自动化系统独立设计开发,自成体系,不同系统间通过文件或者数据接口交互,不能满足电网调度、监控及综合分析决策的要求。同时与电力系统发展的一体化、标准化和智能化的方向背道而驰[1-3]。
目前,图形软件作为各自动化系统的一个模块,以各应用需求为驱动,以满足功能性需求为目标,与业务逻辑绑定紧密,耦合过高,层次扁平,不能很好地满足可靠性、可扩展性、可定制化和可维护性等软件质量的要求。同时各系统间共性的功能交叉,存在软件重用性差问题。
因此,通用的电力图形软件架构的研究迫在眉睫。本文通过抽象各自动化系统图形模块的共性,采用组件式松耦合架构,设计了全新的电网控制系统图形平台软件。基于该平台软件架构可快速开发EMS、DMS、变电站自动化等自动化图形软件。
1 电网调度控制系统图形软件的总体架构
1.1 概述
对于变电站自动化、电网调度自动化、配电系统自动化系统的图形平台的抽象要求图形架构具有多层体系结构,将交叉的功能需求提炼为具体的模块,向上层提供开发接口。底层框架不再针对电力系统业务需求设计,而是以构建通用图形平台的范式来设计,使得底层框架具备开发不同应用图形系统的灵活性。
1.2 模块化分层架构
模块化分层架构采用层次化的组织方式,每一层都是为上一层提供服务,并使用下一层提供的功能,每层又由若干不同的子层和库组成。这种模式允许将一个复杂问题逐步分模块分层实现。层次模式中的每一层最多只影响两层,只要给相邻层提供相同的接口,就允许每层用不同的方法实现,可以充分支持软件复用。
各自动化系统只需关心与具体功能相关的那些功能层模块即可,各层从低层获取服务,并向高层提供服务。在构建各应用图形软件时,只需要根据该图形软件的相关功能需求,从底层平台中选取需要的资源,基于该通用资源二次开发即可。将复杂的用户需求按功能分解,使整体设计更为清晰,支持电力图形模块设计的逐级抽象,具有较好的可扩展性和可复用性。
本文提出的电力图形平台软件架构将整个图形平台分拆为六个具体的层级,每个层级独立完成工作,高层依赖低层,低层不依赖高层。总体架构如图 1 所示,下面对架构做具体的分析。
1.2.1 系统抽象层
提供系统相关API的封装,并提供了共同的面向对象的API以平台无关的方式访问系统资源;标准模板库(STL)在这里作为泛型容器类来使用,STL提供了容器、迭代器、算法等实现;
操作系统库(OSL)封装了用来访问和使用系统资源(例如文件、内存、套接字、管道等)的操作系统功能。OSL是具有面向对象API的很薄的一层,和上层不同的是这里的面向对象API是C语言实现的API。C语言API的优势在于允许将该层用不同的实现语言移植到不同的平台上去。
图1 图形平台架构图
Fig.1 The architecture diagram of graphic platform
1.2.2 基础设施层
构建应用程序同平台无关的环境,为了向上提供服务,这一层完整地包含了面向对象平台所需API的很多方面,包括脚本解析、工具、消息管理、窗口系统和数据服务等。
窗口系统提供相关功能模块,满足不同自动化系统对于窗体生成、布局、交互和管理的需求。
构建消息管理模块,满足不同层、不同库之间灵活的消息管理,提供消息对象绑定功能,实现一对一、一对多、多对多等不同的消息分发、响应机制,提供消息过滤功能,构建基于事件的图形操作环境。
1.2.3 架构层
为在不同应用间能够实现复用,提供每个实现和所有共享功能(例如:公共对话框、文件访问、配置管理等)所需要的架构和环境,架构层是系统扩展能力的核心模块,要提供多维度的开放。
应用构架库为所有的实现提供环境,每个实现所共享的而没有被其他层提供的功能都在这里实现,就程序结构来讲,每个应用都要实现一个窗体部件和若干视图。
共享功能库提供可共享的基础模块,封装系统抽象层和基础设施层的功能,提供灵活的模块管理和交互机制,满足实现层不同的渲染和交互需求。
1.2.4 实现层
实现层,通过Qt基本渲染实现二维图形基本功能,构建图形绘制的基本工具,封装点、线、圆等基础渲染工具,抽象电力系统基础图元,支持局部坐标系,具备自动重绘、碰撞检测、覆盖等基础功能,实现基于有向无环图的对象管理数据结构。通过openGL基础渲染实现基础可视化,通过三维渲染引擎实现虚拟现实,通过混合编程实现对html5、js、webGL等先进技术的融合并提高展示能力,GIS模块包含基于Qt的GIS客户端和三维GIS。
1.2.5 应用层
基于系统抽象层、基础设施层、架构层和实现层提供的基础功能,应用层可以根据各自动化系统对于图形系统的需求,选取应用开发需要的底层模块,自由组合,构建专属的开发框架,快速满足应用功能的需求。
1.2.6 场景层
系统提供对不同场景的展示功能,包括生产系统的工作站、大屏和手持设备等不同设备的适配展示。
1.3 图形系统通用API
图形系统通用API接口采用较大的开放力度,从基础设施层往上层全部开放,每一层都基于核心的参考类实现继承体系。基于元对象编程的API开放,实现对不同层次不同粒度的开放方案,这种接口结构对于决定开发中需要重新实现应用程序到何程度非常重要。
该API从应用和组件开发者的角度来设计,提供了几乎所有的图形平台框架组件程序接口,并且可以集成新的组件。
2 架构关键技术
2.1 构建基础设施
2.1.1 窗口系统
本系统采用多窗口多视图呈现方式,一个屏幕可以存在多个窗口,每个窗口可以存在多个视图。图形系统构建在窗口之上,窗口提供视口和渲染的容器,各窗口独立完成绘制和交互操作,同时窗口管理系统提供完备的交互机制。提供不同窗口、不同视图间自由交互,让全局信息、局部信息实现联动,支持图形系统对历史信息的追溯和多维数据的钻取功能。
2.1.2 脚本化
脚本化是允许电力图形二次开发者使用脚本语言来访问图形底层 API的技术。通过Qt的信号与槽(SIGNAL/SLOT)机制,不同图形对象间可以互相发送和接收消息;通过编写代码截获Qt事件让脚本可以接收事件,完成信息的传递工作;脚本化基于适配器设计模式而开发,提供了从一种语言到另一种语言的映射关系。
脚本化技术的原理图,如图2所示。
图2 脚本化技术原理图
Fig.2 Schematic diagram of scripting
图形架构开放的图形API和Python包装模块,通过编译生成关联动态库,将该关联动态库导入Python程序中,即可以在脚本中调用包装好的图形API。
2.2 实现层混合渲染
实现层通过多场景多视图支持渲染工具包里不同绘制方式的渲染工作。场景管理器提供渲染所需要的上下文环境,模型模块提供插件管理机制,将通过插件开发的形式来支持多种不同格式的模型文件,包含G文件、SVG、osg、xml等格式,场景管理器通过遍历器将渲染的结果提交到视图中显示。
实现层混合渲染架构,如图3所示。
图3 渲染架构
Fig.3 Schematic diagram of rendering architecture
2.2.1 二维渲染
本图形框架采用图形/视图(GraphicsView)架构在二维画板上显示大量的、轻量级的、可与用户交互的、任意形状的项。通过场景管理器GraphicsScene来管理模型,模型中组合不同的GraphicsItem来构成渲染场景,提供基于项的图形操作接口,可以完美地满足基于项的高性能绘制和交互的需求。在电力图形中较大且复杂的拓扑潮流图、地理潮流图、GIS地图等都可以采用该渲染框架来实现。
2.2.2三维渲染引擎
三维渲染拥有普通二维绘制所不具备的效果和效率,本框架提供基础的openGL渲染来满足图形对于基础三维功能的需求,重点基于三维渲染引擎开发可视化应用。三维渲染引擎不但有openGL的跨平台的特性和较高的渲染性能,同时提供3D数据文件格式解析、文理字体支持、细节层次控制、多线程数据分页处理等功能,可以充分利用可视化技术快速有效地处理大规模电力图形数据,基于该引擎开发虚拟现实技术的地理潮流图,采用拼接技术实现全网电气潮流图等。
2.2.3 多平台展示
多平台混合展示拥有桌面应用程序(C/S架构)所拥有的全部优点,并且可以集成展示基于B/S架构的信息。本架构基于Webkit开发混合渲染模块,支持HTML5、js、webGL、Flex等web页面的展示方式,并以图元的形式嵌入到桌面应用程序中,让桌面应用程序可以很方便的嵌入网络页面,对于电力图形的多窗口、多画面、多应用一体化展示都是比较好的解决方案。
2.3 多应用场景支撑
2.3.1电力图形产品
基于模块化分层图形软件架构提供的图形系统API,各应用系统从底层框架动态获取开发需要的资源,通过应用编程、脚本编程和配置的方式,快速构建基本的图形编辑和浏览工具。各应用系统可以定制不同的模型文件,基于模型模块插件机制开发解析插件,实现不同应用系统模型灵活应用。
各图形应用系统根据平台提供的基础功能,扩展实现本系统的业务需求功能,核心模块调用架构提供的底层实现,业务逻辑部分可以采用脚本编程,实现快速、高迭代、低耦合的业务整合。
2.3.2 多展示方式支持
随着各种终端的普及,电脑桌面已经不再是唯一的信息获取通道。大屏、手机、平板电脑等终端可以方便、快捷的获取信息。该框架通过对窗口系统、底层渲染、消息管理等模块的抽象,形成了统一的图形系统API,该API可以适应不同平台的运行环境,支持大屏对于大场景高渲染像素的要求,支持各种手持设备对于性能和小屏幕的需求,同时支持不同终端间的交互联动。实现层的基本图形功能、可视化功能和GIS皆支持跨平台,在不同的终端上开发相应的包装程序就可以得到完美支持。
3 结语
本文设计了基于模块化分层理论的通用电网调度控制图形软件架构,解决了不同自动化系统独立设计开发,导致的自成体系和系统孤立问题,同时满足了电力系统发展的一体化、标准化和智能化的需求。基于该架构可以快速开发不同的电力系统图形应用,同时基础设施层和构架层会沉淀下来稳定的接口及核心模块动态库,实现层的核心渲染框架也会渐渐稳定,应用层和场景层的灵活性则能很好的满足不同应用不同场景的需求,整个框架会随着应用系统的不断开发而具有更好的稳定性和可扩展性,从而更好地满足电网调度控制图形软件的需求。
参考文献:
[1]汪际峰. 南方电网一体化电网运行只能系统建设初探[J] .南方电网技术,2012,6(2):1-5.
Wang Jifeng. A preliminary investigation on development of operation smart system for china southern power grid[J] .Southern Power System Technology,2012,6(2):1-5.
[2]张文亮,刘壮志,王明俊,等. 智能电网的研究进展及发展趋势[J] . 电网技术2009,33(13):I—11.
Zhang Wenliang,Liu Zhuangzhi,Wang Mingjun,et al. Research status and development trend of smart gird)[J] . Power System Technology,2009,33(13):I—11.
[3]罗杰,陈赤培,刘静芳. PAS/DMS/DMIS/TMR一体化系统的研究与设计[J] . 继电器,2005,33(1):57-59,72.
LUO Jie,CHEN Chipei,LIU Jingfang. Research and design ofthe integrated PAS/DMS/DMlS/TMR system[J] . Relay,2005,33(1):57-59,72.
作者简介:李 猛(1988—),男,硕士研究生,主要研究方向:电力系统自动化。
韩 晓(1982—),男,硕士研究生,主要研究方向:电力系统自动化。
论文作者:李猛,韩晓
论文发表刊物:《电力设备》2018年第13期
论文发表时间:2018/8/21
标签:图形论文; 架构论文; 系统论文; 功能论文; 电网论文; 模块论文; 平台论文; 《电力设备》2018年第13期论文;