曹军 李林 王正阳 崔红辉
摘要:WebService是当前广泛应用于WLAN的一种新的系统集成技术,基于SOAP(Simple Object Access Protocol)协议可实现异构环境下的信息交互。IEC61400-25-4是风力系统通信标准,该标准通过WebService通信映射,可以很好解决电力系统中通信平台以及通信规约繁多,模型多样化的问题,通过实现异构平台的数据信息交互,可以极大地提高电力通信的质量与效率。本文通过探讨基于嵌入式平台系统,实现IEC61400-25-4通信服务的WebService映射方法,设计一种新型配电网智能配电终端的通信方式。
Abstract: WebService is a new system integration technology widely used in WLAN. Based on SOAP(Simple Object Access Protocol) Protocol, information interaction in heterogeneous environment can be realized. IEC61400-25-4 is a standard communication of wind power system. Through WebService communication mapping, the standard can well solve the problem of various communication platforms, communication protocols and models in the power system. By realizing data information interaction of heterogeneous platforms, it can greatly improve the quality and efficiency of power communication. This paper discusses the WebService mapping method of IEC61400-25-4 communication service based on embedded platform system, and designs a new communication mode of intelligent distribution terminal of distribution network.
關键词:WebService;Soap;智能配电终端;服务映射
Key words: WebService;Soap;intelligent distribution terminal;service mapping
中图分类号:TM727;TP277 文献标识码:A 文章编号:1006-4311(2019)28-0282-06
0 引言
当前,电力工业迅猛发展,工业生产和人们日常生活对电力的需求量日益增加。文献[1]提到电力系统变得越来越庞大,如何能有效的管理好,调度好电力系统,电力系统通信是关键。但是,文献[2]提到目前的电力系统通信方式种类繁多,通信的平台及系统软件也多种多样。而且,电力系统中通信的层次结构比较复杂,有终端单元,调度子站,调度主站,变电站系统等[3];通信的信息量大,有遥测、遥信、遥控、遥调四遥功能、故障信息录波、采样数据等大量不同类型的数据信息[4]。文献[5]提出如何能有效的实现庞大复杂的电力通信系统中数据信息共享,高效、快速、简洁的数据通信,采用合理恰当的通信协议是解决问题的要点。Webservice作为一种系统集成技术,文献[6]采用一套标准协议SOAP协议实现信息封装,实现不同信息类型、信息结构的交互,实现通信双方在Web上互操作性。并且Webservice只提供相关标准和数据封装方式,并没有强制用户使用何种语言,何种平台,这样就有效的解决平台和系统异构问题[7-9]。本文,就是通过讨论基于嵌入式的Webservice实现技术,来展望电力系统中的一种新的通信方式基于Webservice的通信服务,并且结合61400-25-4通信服务映射来实现一种新的智能FTU的通信功能。
1 WebService概述及实现方法
WebService,顾名思义就是基于Web的服务。它使用Web(HTTP)方式,接收和响应外部系统的某种请求,从而实现远程调用。它主要是为了使原来各自孤立的站点之间的信息能够相互通信、共享而提出的一种接口。WebService所使用的是Internet上统一、开放的标准,如HTTP、XML、SOAP、WSDL等,因此,WebService可以在任何支持这些标准的环境(Windows,Linux)中使用。
从WebService的工作模式上理解的话,它跟普通的Web程序(比如ASP、JSP等)并没有本质的区别,都是基于HTTP传输协议的程序。但是,WebService与普通的Web程序还是有一个重要差别,同时也是进行Webservice编程中需要仔细注意的地方:WebService只采用HTTP POST方式传输数据,不使用GET方式。
WebService中所使用的数据均采用XML格式,目前标准的WebService主要采用SOAP协议来实现数据格式封装,SOAP协议实际上就是一种基于XML编码规范的文本协议。XML是Web Service平台中表示数据的基本格式。除了易于建立和易于分析外,XML主要的优点在于它既与平台无关,又与厂商无关。XML是由万维网协会(W3C)创建,W3C制定的XML SchemaXSD定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型。
Web Service平台需要一套协议来实现分布式应用程序的创建。任何平台都有它的数据表示方法和类型系统。要实现互操作性,Web Service平台必须提供一套标准的类型系统,用于沟通不同平台、编程语言和组件模型中的不同类型系统。目前这些协议有:XML和XSD。
Web Service平台是可采用XML作为数据类型系统的。当用某种语言如C/C++,Java,VB. NET或C#来构造一个Web Service时,为了符合Web Service标准,所有使用的数据类型都必须被转换为XML类型。如想让它使用在不同平台和不同软件的不同组织间传递,还需要用某种东西将它包装起来。这种东西就是一种协议,如SOAP。
不管如何,WebService运行必须有个平台,即web服务器。WebService和web服务器的关系是:WebService是Web服务器上应用;反过来说,Web服务器是WebService运行时所必需的容器。Web服务器不仅可以是Windows,而且可以是Linux;既可以是庞大的服务器群,又可以是简单的嵌入式服务器。本文实现的正是基于嵌入式环境下IEC61400-25-4的通信服务WebService的映射。
2 SOAP及GSOAP
SOAP是实现WebService重要的协议,一种轻量级协议,主要用于在分散型、分布式环境中交换结构化信息。SOAP利用XML技术定义一种可扩展的消息处理框架,它提供了一种可通过多种底层协议进行交换的消息结构。这种框架的设计思想是要独立于任何一种特定的编程模型和其他特定实现的语义。
SOAP定义了一种方法以便将XML消息从A点传送到B点(如图1)。为此,它提供了一种基于XML且具有以下特性的消息处理框架:
2.1 可扩张性
在Web中,简单性总是比效率和纯技术更重要,因为互操作性成败的关键,就在于必须绝对要求简单。SOAP协议实现WebService,提供异构平台的互操作性,简单性仍然是主要设计目标之一。因此,SOAP就会缺少分布式系统的很多重要特性(如安全性、路由、可靠性等)。为了解决这个矛盾,SOAP定义了一种开发框架,允许以分层扩展的形式随时间推移加入这些特性。
2.2 多规约性
SOAP可以在多种传输协议(TCP、HTTP、SMTP等)上使用。但是,为了保持互操作性,需要确定一些具体的协议绑定以便通信规则。实际应用中,SOAP规范提供了一种用于定义任意协议绑定的灵活框架,由于Web中HTTP被广泛大量的使用,所以实际采用的是HTTP协议绑定。
2.3 独立于编程模型
SOAP允许任何编程模型,并且不依赖于RPC(Request For Comments)。图1说明了一种简单的单向消息,其中发送方不会受到相应。图2中,定义了一种数据信心交互的消息模式,SOAP允许使用任何数量的消息交换模式,请求/响应只是其中一种。其他还包括命令/响应、通知、点对点对话等。
正是具有这三个主要特性,SOAP可以在异构的环境中交换XML消息,实现互操作性。
简单来说,SOAP可以理解为HTTP+XML+远程调用规则,因此SOAP消息的处理也分为3个部分:HTTP协议的实现(即特性2,协议的绑定)、XML解析(特性1,可扩展性)、远程调用规则(特性3,独立于编程模型)如图3所示。
客户端与Web服务器端按照如下步驟进行信息交互:
①客户端利用SOAP工具按照应用程序要求生成SOAP消息;
②客户端使用HTTP POST方法通过网络向服务端发送SOAP请求;
③Web服务端收到HTTP信息后,解包提取SOAP消息;
④启动XML文档分析器进行解析,获取客户端请求信息;
⑤调用相应的服务程序,并进行SOAP消息封装;
⑥向客户端发送HTTP消息相应,完成WebService远程调用。
SOAP消息是由XML语言组成的,因此对XML的解析式处理SOAP消息的重点,当前常用的XML解析器主要有两种DOM(Document Object Model)和SAX(Simple API for XML)。因此要实现基于SOAP的WebService必须对SOAP协议和XML进行深入分析,增加了研发工作量,同时对平台的软硬件资源要求比较高。采用此方法在嵌入式平台,实现WebService难度较大。
为此,我们采用一款开源软件包GSOAP来实现在Linux C平台上创建一个WebService应用。GSOAP编译工具提供了一个SOAP/XML关于C/C++语言的实现,从而让C/C++语言开发Web服务或客户端程序的工作变动轻松。目前的绝大多数嵌入式开发都是基于C/C++,GSOAP极大的满足了嵌入式平台上WebService的要求,GSOAP利用编译器技术提供了一组简单的API将用户从SOAP细节实现工作中解脱出来,可以专注于应用程序的开发。GSOAP编译器可以集成C/C++代码,嵌入式系统,其他SOAP程序提供的实时软件的资源和信息;可以跨越多个操作系统,语言环境。GSOAP的解释器及导入器可以让用户不需要分析Web服务的细节就可以实现一个客户端或服务端程序。
3 IEC61400-25-4通信服务WebService具体实现
当前的电力系统通信规约繁多,电力设备的结构,信息数据也多种多样。为了增加不同类型,不同通信规约的电气设备信息共享和交互,IEC制定了一系列的通信协议来实现电气设备之间的互操作性,其中最具有代表意义的就是IEC61850。IEC61850通信规约最初目的是为了解决变电站内部一次、二次设备的通信、互操作问题。变电站的电气设备中一次、二次设备种类较多,各个厂家的通信规约也各有区别。传统的变电站监控系统中,主要是依靠调动中心的监控或者变电站控制中心。这样的做法往往会加大网络数据量,特别是一次、二次设备较多的情况下,容易发生网络堵塞。而且,在设备发生故障时,继电保护设备、监控设备之间要协调处理,需要通过主站或调动中心的控制,效率和实施性会大大降低。
正是为了有效的解决变电站系统中存在的这些矛盾,IEC提出了IEC61850通信规约。IEC61850的核心思想就是面向对象,抽象模型方法对电力设备进行模块化、抽象化,提出了LD(逻辑设备额)、LN(逻辑节点)、CDC(公用数据类)来映射现实世界的物理设备、通用功能、实际数据。IEC61850通信方式采用ACSI(抽象通信服务接口),不规定具体的通信规约,只提供抽象的接口服务。根据变电所的实际情况,IEC61850提出了GOOSE(面向对象变电站通用事件)、MMS(制造报文协议)、SNTP(简单网络对时协议)等来实现SCSM(特定通信服务映射)。通过抽象模型及特定通信服务映射,变电站系统的设备之间可实现互操作,并且实现了分布式控制的方式。大大的减轻的变电站系统网络数据流量,同时增加故障处理的实时性和有效性。
随着IEC61850的逐步推广,国内外越来越多的变电站系统采用IEC61850通信规约,实现数字化变电站,促进了电力系统的智能化。同时,IEC61850的外延性也不断增加,陆续增加了61850-7-410水电站监控模型,61850-7-420分布式新能源模型,并起草61850-7-500,61850-7-510,61850-7-520建模导则。国内很多公司和大学,积极促进IEC61850在配网、新能源、水电系统推广应用。
IEC委员会顺势推出一系列基于面向对象标准IEC61970,IEC61400-25等。其中IEC61400系列应用于风力发电机组通讯与监测,是61850在风电系统的延伸,同61850一样采用面向对象的方法,对现实设备,实际功能进行模块化、抽象化(61400-25-2信心模型,61400-25-3信息交換模型)。通信服务仍然是采用ACSI,具体通信规约采用(SCSM)。与61850有所不同的是,61400-25-4通信服务映射分别为WebService、MMS、OPC XML-DA,104,DNP规约,如图4。在现在的我国电力系统中,主要采用WebService、MMS和104规约。
三种通信规约服务映射中,映射104通信规约是因为在国内调度主站大多采用104通信规约,这样可以方便风电系统与调度主站数据通信,但是104规约仅仅实现数据通信,并不能够完成数据模型通信。体现不出抽象的信息模型,信息交互的内涵,削弱了IEC61400-25-4通信规约的意义。MMS规约在IEC61850中被用来实现各个IED之间通信,采用C/S模式,模型数据采用ASN.1中的BER方式进行二进制方式通信,通信效率高并且可以传送任何类型的数据模型,正是这些有点,所以在IEC61850中被用来实现SCSM。但是MMS规约也有自身的弱点,规约本身庞大复杂,模型数据传输需要进行ASN.1编码解码,这样就造成了MMS应用程序开发量剧增;而且MMS是建立在ISO的OSI七层协议基础上,目前一般的操作系统是以TCP/IP为主,要在此上实现OSI的七层协议栈需要对于网络通信协议要进行开发。目前国内的产品开发都是基于思科的MMSLite软件包的基础上进行开发的,MMSLite软件包价格比较昂贵,增加了开发成本。有些是基于Wrishark抓包软件,进行MMS通信,此方法只适合用于简单的通信测试,无法在此基础上进行商业开发的开发。
基于WLAN的WebService,可以说是这两个软件的折中。WebService是比较成熟的新技术,开发难度小。模型数据采用XML方式描述封装,并通过SOAP协议在HTTP上进行发送,HTTP是基于TCP/IP上实现的,非常简单,并实现了信息结构模型的发送,体现了61400-25-2信息模型。目前,国内的电力系统中,基本上都实现了以太网通信,这恰好就是WebServie实现的网络平台。
国家电网公司在配网系统中,提出了一种新型终端设备:智能化FTU。它与普通的FTU区别:是否支持即插即用。要实现FTU的即插即用,必须要实现FTU的自描述,只有这样,主站或调度中心才能够自动的识别此FTU,并实现与FTU的通信。过去常用的调度软件中,101或者104没有办法实现自描述,即插即用功能无法实现。故,国家电网公司推荐使用IEC6180通信规约,在IEC61850-6中,用户可以通过SCL(XML在变电站系统的一种应用)对每个IED设备配置ICD文件,实现对IED设备的自描述,如图5所示。
智能FTU实现即插即用最重要的步骤是注册,配电终端加入网络后,会向配电主站发送注册信息,信息包括:名字(FTU的唯一标识-编号),描述信息(FTU监测的配网一次设备信息),SCL文件下载地址,SCL版本,心跳时间间隔。通过这些信息并下载SCL文件,配电主站可以识别FTU,并可在配电主站系统里自动的加入FTU,完成注册。
配电系统的这些智能终端既可以采用数据报告的形式向主站发送实时数据,同时支持主站查询实时数据。实时数据报告支持带缓冲的报告和无缓冲报告。虽然101和104在一定的情况下可以实现这种平衡式通信,但是由于它们没办法实现自描述,所以不被单独采纳。
④WSDL。
根据需要,将2、3两部分所将涉及到的信心模型和信息交换(服务)用XML格式完成,最终形成一个WSDL文档。
⑤GSOAP实现SOAP协议。
我们研发的智能终端单元,硬件平台采用的是FreeScale基于ARM9的Imax287,软件平台是Linux嵌入式操作系统2.6核,可实现多任务。其中SOAP通信为单独一个线程来完成。
1)通过编写好的WSDL文档,生成C头文件
#/usr/local/gSoap/bin/wsdl2 –c –o FTUHeader.h
http://local/kdjc/service/smart_ftu_wsdl
2)解析FTUHeader.h文件,生成标准C客户端、服务端文档
#/usr/local/gSoap/bin/soapcpp2 –c FUTHeader.h
soapStub.h、soapH.h/soapC.c、soapClient.c、soapServer.c、Stdoap2.h、Stdsoap2.c ews.nsmap、
ews.req.xml、ews.res.xml
3)代码开发
调用WebService的getdatavalue(WebService的具体调用方式可以参见生成的soapStub.h文件)
#include “soapH.h”
#include “ews.nsmap”
int main(int argc, char**argv)
{
int master_sock, slave_sock;
struct soap smart_ftu_soap
soap_init(&smart_ftu_soap);
soap_set_namespaces(&smart_ftu_soap, namespaces);
….
master_sock=soap_bind(&smart_ftu_soap,NULL,atoi(argv[1]),100);
slave_scoke=soap_accept(&smart_ftu_soap);
soap_serve(&smart_ftu_soap);//处理远程调用
soap_end(&smart_ftu_soap);
soap_end(&smart_ftu_soap);
}
int ews_getdatavalue(struct soap *soap, struct _ews_getdatavalue *request, struct _ews_getdatavalue *response)
{
//具体根据request里的UUID,AssoID,进行数据处理
}其他的service实现都可以采用这种方法,并且在FTUHeader.H定义。这样就完成了基于嵌入式系统的IEC61400-25-4通信服务WebService实现。
通过客户端与服务器端的联调,我们在Imax287的硬件平台上实现了基于WebService和104通信协议的SmartFTU,达到了国网的技术标准。
4 结语
将来的电力系统中,智能电网慢慢的会替代当前的电网,不难想象越来越多的智能电力产品会出现在智能电网中,智能继电保护设备,智能电表,智能终端等。抽象化设计,结构化,模块化设计,自描述等将会应用于整个电力通信里,所以将WebService应用于电力通信系统中,这会是电力通信今后发展的方向。
由于规约自身设计的因素,传统的101、102、104无法实现信息模型的交互,不适合未来电力通信的发展要求,会逐渐的别的通信规约所代替。WebService以其简单、通用、跨平台并能够进行模型交互等优点被IEC61850,IEC61400采纳作为ACSI的通信服务映射。特别是配电网通信网络中,WebService更能体现出其优越性。
参考文献:
[1]孙菁.电力系统通信电源基于IEC61850通信规约的统一监控[J].通讯世界,2019,26(07):174-175.
[2]刘畅,杨浩然,刘志远,许庚梅,陈晓杰.电力通信網风险及防范措施研究[J].电力设备管理,2019(05):29-30.
[3]郭萌.电力系统通信运行问题及解决措施[J].电子技术与软件工程,2019(10):21.
[4]李晗.基于SOAP接口协议的光纤分布系统的设计与实现[D].武汉邮电科学研究院,2018.
[5]郭昊坤.电力系统通信技术发展现状综述与展望[J].电子元器件与信息技术,2017,1(06):1-6.
[6]曹秀丽.基于SOAP协议的XML跨平台WebService核心技术研究[J].湖北第二师范学院学报,2015,32(08):36-40.
[7]刘磊.Web Services服务接口安全协议设计与一致性测试方法[D].北京邮电大学,2014.
[8]王迤冉,陈劲松.基于SOAP协议的Web Services安全性研究与实现[J].煤炭技术,2011,30(06):171-173.
[9]万洪莉,李雨晨,孟宪尧.使用SOAP协议与Web Service通信的研究与实现[J].工业控制计算机,2010,23(09):85-87.