基于WebService的状态监测系统I2接口研究与实现
郭宏燕;龚东武;万煜新;周水斌;王龙阁
【摘 要】针对变电设备状态在线监测信息只能在站内查看的"信息孤岛"问题,提出了一个基于Web Service的状态监测系统I2接口解决方案。通过对I2模型及建模方法、Dom4j实现模型文档的模板化、Axis2从WSDL生成Web服务客户端代码等内容的研究,详细阐述了监测数据上传服务通信过程、通信参数,完成了CAC与主站系统(含CAG)的信息共享和远程控制。调用webservice服务
【期刊名称】《电器与能效管理技术》
【年(卷),期】2016(000)003
【总页数】5页(P58-62)
【关键词】在线监测信息 WebService I2接口 Dom4j Axis2 CAC CAG
【作 者】郭宏燕;龚东武;万煜新;周水斌;王龙阁
【作者单位】许继集团有限公司,河南许昌461000
【正文语种】中 文
【中图分类】TM769
按照坚强智能电网建设及变电设备精益化管理要求,国家电网公司将建立和推广覆盖总部、网省和地市三级应用的统一输变电设备状态监测系统[1]。为了打破状态监测信息只能站内查看的“信息孤岛”,规范变电设备状态监测数据接入输变电设备状态监测主站系统的方式,实现输变电设备状态的全面监测和状态运行管理,促使孤立、静止的监测系统向输变电一体化、全局、网络化的综合状态监测、诊断和服务管理系统过渡,国家电网公司发布了Q/GDW 740—2012《变电设备在线监测I2接口网络通信规范》。I2接口是CAC(状态接入控制器)与CAG(状态接入网关机)之间信息交互和资源共享的网络接口。
本文提出了一个基于WebService的I2接口实现方案。基于智能变电站状态监测系统框架,统一信息模型和通信规约,研究CAC和CAG的通信交互过程、通信双方提供的服务方法,实现各类变电设备状态信息的标准化上传,以及标准化控制指令的解析和下达,有利于站内数据资
源整合,为设备在线监测故障诊断、设备智能化、信息化提供了数据支撑,有较好的应用前景。
变电设备状态监测系统在网省和变电站两级进行完整部署,系统框架如图1所示。在网省级,主站系统对各类变电设备状态监测信息进行集中存储、统一处理和应用。在变电站部署站端监测单元、综合监测单元和各类在线监测装置。I1接口是综合监测单元和在线监测装置到CAC之间的接口,采用标准的IEC 61850格式数据,传递的是原始的在线监测数据和监测装置控制信号。I2接口是CAC与变电CAG 之间的接口,面向主站系统,传递高级的加工后“熟数据”和高级控制信号[2]。对于主站系统建设而言,I2接口设计需要遵循严格规范的接口层级,采用计算机软件业界先进开放的WebService和XML技术实现。
WebService是一种跨编程语言和跨操作系统平台的远程调用技术,向外界提供一个能够通过Web进行调用的API。在WebService中有服务请求者、服务提供者和服务注册中心3种角[3]。角间主要有发布、查和绑定3个操作。服务提供者提供服务的具体实现;服务请求者从服务注册中心获取它必须从服务提供者那里收发的消息结构以及访问该服务所用的协议;服务请求者无需了解服务提供者的内部实现方式。不同功能或不同在线监测厂商提供的
监测系统,都可通过标准的服务封装集成在面向服务的统一框架中,由服务注册中心统一管理,向外发布服务,从而能方便地被服务请求者调用,实现网省级在线监测数据的共享和流程的集成。
Axis2是Apache下的一个重量级Web Service框架,准确说是一个WebServices/SOAP/WSDL的引擎[4],比较全面地集成了WebService框架。利用其制作和发布Web Service应用,不管Java语言或别的语言,大多能利用Axis2来比较简单地生成服务端和客户端代码。本设计通过Axis2实现CAC中服务客户端JAVA类的自动生成,大大简化了开发流程。
Dom4j是一个纯 JAVA实现的开源XML 解析器,采用了Java集合框架并完全支持DOM,SAX和JAXP[5]。Dom4j可以方便快捷地实现JAVA 对象与XML 数据间的相互转换,实现多系统间数据共享。本设计中使用Dom4j完成在线监测数据模型的建立及模型转化为标准的XML数据文件等工作。
3.1 数据建模及模板化
I2接口按照变电设备状态监测数据接入规范对站内在线监测数据进行建模,用于规范变电站站端监测单元(含CAC)与网省侧主站(含CAG)之间的信息交换内容,为信息共享和各类专业应用功能的设计和开发提供基本依据[6]。I2模型实现的在线监测类型如表1所示。
I2模型根据相对独立的通信模型,抽象出变电站中I2接口转发所需的CAC、被监测设备、监测装置、监测参数类别、监测参数、模拟量、状态量、配置参数等对象信息。在MySQL数据库i2 model中创建i2_cac、i2_equipment、i2_sensor、i2_cacconfigpara、i2_monitortype、i2_monitorpara、i2_analog和i2_status等数据表存储对象信息,并能通过配置工具对I2模型进行修改和扩充。数据表status和analog为CAC管理的符合IEC 61850标准的数据对象信息,通过导入、配置操作,映射为I2模型数据。i2_analog对象依赖i2_monitorpara、i2_monitortype 、i2_monitorpara、i2_sensor、i2_cac完善所属监测装置、监测类型、监测参数的配置,完成模拟量数据模型的建立。I2模型约束关系如图2所示。
配置完成的I2模型数据以数据库表的形式存在,利用Dom4j的SAXReader、XMLWriter、Element和OutputFormat等类实现数据库表单向数据文件的转换,将在线监测模型组织成满足Q/GDW 740—2012定义的XML模板文件,根据实时库中存储在线监测遥测、遥信、装置
信息等数据变化按照一定的时间间隔对各XML模板文件进行数据填充和定时刷新,实时生成一套与CAG交互的XML标准格式文件,为数据转发和交互做好数据准备。
3.2 Axis2创建CAC客户端
Axis2提供了一个wsdl2java命令可以根据WSDL文件自动产生调用WebService的代码。wsdl2java命令可以在Axis2安装目录下的bin目录中到。在使用wsdl2java命令之前需要设置AXIS2_HOME环境变量。在执行完wsdl2java相关命令后,就会发现在当前目录下多了个stub目录,在stub/src/client目录可以到一个CAGTransfServiceStub.java文件。可以在准备好数据文件模板之后,在业务程序中直接使用这个类,上面的代码大大简化了调用WebService的步骤,并使代码更加简洁。生成过程如图3所示。但要注意wsdl2java.bat命令生成的Stub类将WebService方法的参数都封装在了相应的类中,类名为方法名,如uploadCACHeartbeatInfo方法的参数都封装在了uploadCACHeartbeatInfo类中,要想调用uploadCACHeartbeatInfo方法,必须先创建uploadCACHeartbeatInfo类的对象实例。
3.3 数据转发与交互
在本设计中CAC通过WebService的方式获取CAG发布的所有服务方法,具体通过URL:http:∥CAGIP:8808/CAG 进行定位。其中CAGIP指主站为CAG分配的固定IP地址;CAC通过调用CAG的服务接口实现与CAG的交互过程,交互过程传送的数据格式为标准的XML数据文件。
具体交互过程:CAG作为服务提供者设计实现心跳检测、数据上传、数据召唤、数据重传、读配置、写配置和远程更新等Web服务,并将调试正确后的Web服务通过服务注册中心发布、注册;CAC作为服务请求者,通过CAG提供的接口访问地址,利用SOAP消息向服务注册中心请求特定的服务;服务注册中心充当管理者角,根据CAC请求查询UDDI,为CAC寻满足请求的服务,返回满足条件的Web服务描述信息WSDL,并将需上传的数据组织成规定的XML格式以参数方式传递给CAG,实现Web服务的调用;CAG按照SOAP消息执行相应的Web服务,通过解析服务接口参数获取状态监测,并将服务结果返回CAC,完成一次CAC 与CAG交互的过程。具体交互过程如图4所示。现仅以上传监测数据服务为例进行详细说明。
3.4 监测数据上传通信过程
CAC通过WebService接口调用CAG的uploadCACData()服务,以发送全站某一段时间内的监测数据,CAG 返回结果中按交互场景的不同包含不同类型的指令和信息。若包含配置信息,则CAC根据控制指令更新所辖在线监测装置配置信息并将执行结果信息返回CAG,CAG对CAC返回的结果进行判断:若为成功则删除之前下发的控制命令,更新CAC相关配置;若为失败则在缓存中仍保留该控制命令。输入参数和输出参数均为约定格式标准的 XML。监测数据通信过程如图5所示;监测数据上传服务输入参数Schema如图6所示;监测数据上传服务输出参数Schema如图7所示。
输入参数Schema中对应CAC所辖所有状态监测装置的监测数据组,标签内容为各状态监测装置的监测数据,包括状态监测装置的唯一标识、监测类型编码、被监测设备的标识以及数据采集时间。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。