国网驻马店供电公司河南驻马店463000
摘要:传统的面向对象的编程技术,对象与访问该对象的程序只能存在于同一进程中,外部进程无法了解和访问这些对象。提出一种基于CORBA技术的分布式对象模型的电力监控系统的软件设计思路,结合命名服务及CORBA回调技术实现电力监控系统的实时响应性和安全可靠性,最后介绍了系统的整体结构框架和模型,该框架具有良好的可重用性、可移植性、可扩展性和互操作性。并在实践基础上提出对CORBA技术应用的展望,希望寻找一种更适合分布式电力监控系统的通信方法。
关键词:CORBA技术;分布式对象;电力监控系统;命名服务;回调技术
一、前言
分布对象技术采用面向对象的多层客户/服务器计算模型,该模型将分布在网络上的全部资源(无论是系统层还是应用层)都按照对象的概念来组织,每个对象都有定义明晰的访问接口。通过重用已有的软构件,使用构件对象模型的软件开发者可以像搭积木一样快速构造应用程序。这样不仅可以节省时间和经费,提高工作效率,而且可以产生更加规范、更加可靠的应用软件。考虑到各电站监控系统的分布性和跨平台性,我们优先采用了CORBA标准。我们将这种三层信息体系应用于电力监控系统中,经过实际工程测试,基于CORBA技术的三层信息体系分布式对象模型完全能够满足电力监控系统的实时通信要求。
二、系统设计
2.1系统结构
SUPERX监控系统软件(以下简称SUPERX)是南京申瑞电气系统控制有限公司研发的新一代基于CORBA技术的分布式电力监控系统软件,已在贵州红林水电站、甘肃九甸峡水电站等数个水电站得到成功的应用。系统分为现地控制层、监控层、管理层。其网络拓扑图如图1。
现场控制层包括PLC(可编程控制器)、GPS(卫星同步时钟服务器)、保护装置等二次设备,采集现场送来的信号,同时完成连续控制、顺序控制或逻辑控制功能,也可能完成其中的一种控制功能;监控层的主要设备有运行员操作站、工程师站和通讯机,一般配备两台主计算机、两台工程师操作站、一台通讯机、一台工程师培训站,一台厂级终端,两台主计算机主从备份数据库;管理层包含的内容比较广泛,可能是一个发电厂的厂级管理计算机,也可能是调度等行政管理或运行管理人员,主要是检测企业各部分的运行情况,利用历史数据和实时数据预测可能发生的各种情况,从企业全局利益出发辅助企业管理人员进行决策,实现其规划目标。
2.2软件结构
SUPERX系统采用三层信息结构:数据库服务器、应用服务器、客户端。计算机监控系统实现了设备监控、报表自动打印、事件顺序记录、历史数据查询、事件追忆及存贮等功能。软件结构图如下图2。
SUPERX软件系统中的主要功能实现和计算均是由应用服务器完成,而作为客户端(浏览器、简报服务、AGC等)需要对服务进行远程调用,通过服务接口获得执行的结果,而基于请求代理的CORBA就在该系统中充当桥梁的作用。同时CORBA独立于编程语言,不同语言开发的组件可以方便地集成。例如在选择C++或C语言来开发数据库服务器、应用服务器,而客户端采用Java、JavaScript、c++或其他高级语言开发,通过中间件服务实现了客户端、数据流程处理逻辑和数据库数据资源的完全分离,能解决远程对象之间的互操作问题,CORBA独立于网络协议、编程语言和软硬件平台的特性使得基于对象的软件成员在异构分布计算机环境中具有可重用性、可移植性和互操作性。
2.3软件设计
系统与外部PLC、GPS、保护装置通信或者调度的通讯如果受外设的限制则采用传统的SOCKET通讯方式和串行通信,系统内部主要采用CORBA技术来实现分布式对象从而实现进程间的相互通信,我们根据系统的大致功能简单介绍以下几个服务进程:
2.3.1数据库编辑接口服务
在系统使用之前,必须组态数据库,我们通过一个实时数据库访问接口,实现组态软件与数据库的连接。
2.3.2数据库实时查询接口服务
在系统中很多应用程序例如画面,历史库,自动发电控制等需要从数据库中去相应变量的数值,操作员的指令也是通过数据库传到现场的。为此我们通过一个实时数据库访问接口,实现组态软件与数据库的连接。
2.3.3数据库驱动接口服务
数据库的实时数据来自不同的驱动程序,驱动程序将现场控制层采集到的数据和信号传至数据库。该接口服务用于管理所有的驱动,一个驱动注册一次,如果系统发现驱动运行异常退出,可通过识别注册的id号,重启驱动确保运行的安全性。
2.3.4报警服务
计算机监控系统的语音报警分不同的类别,最基本的显示在简报窗,监控系统的所有信息以滚动方式在简报窗陆续显示。对事故信号、保护信号以及重要的辅助设备等都设置了语音报警。
三、应用展望
我们已经在分布式电力监控系统中成功的运用了CORBA技术。由以上实例可以看出,CORBA技术非常适合电力监控系统的异构和分布式的特点。
传统的面向对象的分布式应用之间的数据交换都是基于SOCKET的面向字节流的方式。以电力通讯为例,就有u4f,CDT,SC1801,IEC101,IEC102,IEC103,IEC104,TASE-2,DNP十数种之多。所有这类通讯一般也都采用了面向字节流处理的模式,即客户和服务器侧应用程序都必须根据特定的规约(标准的和自定义的)对接收和发送的字节流数据进行处理和分析,对字节流进行数据重构,从而得到需要的数据信息。其处理程序既复杂又容易出错,一旦中间数据出错或者丢失,两侧的应用程序往往需要编写复杂的错误处理程序。我们使用分布式CORBA技术就不需要考虑这方面的顾虑。
利用CORBA技术,我们只需在网络上任意两台机器的服务器端和客户端上定义相同的接口,事件产生时服务器端以函数调用的形式传输数据,客户端便可在相应的接口上读取需要的数据。此方法屏蔽对象通信的细节,完成对象的注册、定位和激活;请求解释;差错处理;参数配置以及操作传送等工作。这意味着只要IDL接口文件一致,任意两个厂家的通讯程序就可以相互访问,甚至无需关心对方是何种语言编程。
四、结束语
电力监控系统设计是一门综合性强、技术密集、涉及面广的综合性学科。将CORBA应用于电力监控系统领域,可以解决其复杂的异构问题,降低网络应用程序的开发难度,提高软件的重用性和可靠性及互操作性,为实现基于标准的、开放的、分布式电力监控系统提供一条更好的有效途径。本文提出的利用CORBA的分布式对象远程调用的模式适合于电力系统内的各种网络通讯,其设计思路可供同行借鉴和参考。
参考文献
[1]朱斌师春科刘惠芳.CORBA中间件在电力系统中的应用研究[J].计算机工程,2012(03).
[2]鲁杰爽石东源.基于CORBA/XML的电力企业应用集成[J].继电器,2013(05).
[3]刘晓岚.CORBA技术在电力监控系统中的应用[J].供用电,2016(06).
[4]陈丁剑吴健李恩菊.一种基于CORBA的电力监控系统的设计[J].计算机应用,20142(24).
[5]滑楠史浩山.基于中间件的分布式电力监控系统设计与研究[J].计算机工程与应用,2014(06).