IEC61850的Web Services映射及实现
2013-10-22陈志伟徐丙垠韩国政
陈志伟,徐丙垠,韩国政
(1.山东大学 电气工程学院,山东 济南 250061;2.山东理工大学 电气与电子工程学院,山东 淄博 255012;3.山东科汇电力自动化有限公司,山东 淄博 255087;4.山东轻工业学院 电气工程与自动化学院,山东 济南 250353)
0 引言
配电系统网络结构复杂,采用的终端设备种类繁多,这些配电终端的功能和接口大不相同,通常要进行大量的配置和转换工作才能实现设备间共享信息,增加了系统运行维护成本。
IEC61850是IEC TC57制定的关于变电站通信网络和系统的国际标准,可以有效地实现设备间的无缝集成[1],随着应用领域的扩展目前已更名为电力企业自动化通信网络与系统标准。借鉴IEC61850在变电站自动化等领域的成功应用经验,将其推广到配电自动化领域,为解决配电设备之间的互操作问题提供了有效的途径。
配电网中常用的通信规约有IEC60870-5系列远动规约、DL451-91规约、DNP3.0规约等。目前,将 IEC61850映射到 IEC60870-5-101/104的研究较多[2-3],而对映射到Web Services的研究却很少。Web Services以可扩展标记语言XML(eXtensible Markup Language)和简单对象访问协议SOAP(Simple Object Access Protocol)为基础,对 IEC61850 的信息模型和信息交换模型支持良好,因此,研究IEC-61850的Web Services映射及实现是非常有益的。
1 IEC61850的Web Services映射
1.1 IEC61850的简介
制定IEC61850标准的出发点就是为了指导实现设备与系统的互操作。IEC61850包含4个主要部分:信息模型、抽象通信服务接口ACSI(Abstract Communication Service Interface)、特定通信服务映射SCSM(Specific Communication Service Mapping)和变电站配置描述语言SCL(Substation Configuration description Language)配置文件[4-5]。信息模型采用面向对象的统一建模技术,采用分布、分层的结构体系。ACSI只是抽象地描述设备之间如何交换信息,与设备间怎样具体实现交换无关。SCSM利用具体的通信网络实现ACSI中的服务模型。SCL文件用于对变电站系统结构、通信系统结构和IED信息模型、服务模型进行统一的描述,从而被其他的IED和主站识别。
1.2 Web Services技术
Web Services技术是服务器程序通过Internet发布应用服务并能够被客户端程序远程调用的一种标准机制[6-8]。 它采用的标准和技术有XML、SOAP、HTTP、Web Services描述语言(WSDL)和通用唯一识别码(UDDI)等。Web Services不是仅针对电力行业的专用技术,具有普遍性。客户端程序通过Web Services,调用暴露在外界的应用程序编程接口(API),就可以使用位于服务器的Web Services。下面介绍XML技术、SOAP和WSDL:
a.XML技术是Web Services的关键技术,是描述结构化信息的标准格式,具有自描述、可扩展等特点;
b.SOAP是一种基于XML的数据传输协议,Web Services利用SOAP实现不同设备与系统之间的远程调用;
c.WSDL是基于XML的服务描述标准,用于描述Web Services的功能和调用方法。
1.3 IEC61850的Web Services映射方案
IEC61850的Web Services映射和MMS的映射不同,MMS有相对独立的信息模型,根据模型的层次结构,基本上可以将IEC61850的信息功能模型映射到MMS的模型。但是,在映射过程中,由于MMS与IEC61850的对象层次结构不同,服务响应中会包含大量的冗余信息。Web Services采用基于语法的XML Schema。XML Schema没有相对独立的信息模型,支持自定义。IEC61850到Web Services的映射实际上就是将信息模型和信息交换模型用Web Services的WSDL描述出来。
IEC61850的映射包括信息模型映射和信息交换模型映射2个方面。信息模型中的Server、LogicalDevice、LogicalNode、Data等对象分别映射为 Web Services 中的 tServer、tLD、tLN、tData 等对象[9],信息交换模型中的读服务器目录(GetServerDirectory)等服务也映射为相应的GetServerDirectory等服务。下面以tServer和GetServerDirectory为例介绍Web Services中的WSDL描述。
服务器类型tServer的WSDL定义如下:
在上述定义中,tServer包含若干个访问节点(ServerAccessPoint)和若干个逻辑设备(LD)。 采用WSDL描述tServer与IEC61850中的Server有很好的对应性。同样,可完成对tLD、tLN、tData的定义。
在IEC61850中,GetServerDirectory服务用于获取服务器包含的LD,其访问参数包括对象类型等,其返回参数为包含的LD。在Web Services中,需要对访问参数和返回参数分别进行定义。GetServerDirectoryRequest中包含服务所需的请求参数,WSDL的定义如下:
GetServerDirectoryResponse中包含服务返回的响应数据,WSDL的定义如下:
除了IEC61850中已定义的对象类型外,还需要增加1个关联ID用于描述通信的关联和1个UUID。
轮腿机构设计应满足以下要求:结构简单,可以快速灵活地实现单个轮腿的升降,从而稳定挖沟机车体姿态,保证挖沟机工作部件运行平稳、工作可靠.
Web Services的映射方案如下,示意图见图1。
a.ACSI客户端在数据定时更新、遥控操作或数据主动更新时建立抽象服务,调用相应的Web Services应用程序。应用程序创建SOAP请求消息,消息中包含服务请求所需的参数,向下经过HTTP处理模块,将SOAP消息封装成HTTP报文发送到服务器端。
b.服务器端以阻塞状态等待来自客户端的连接请求,收到请求消息后创建新线程同时返回继续监听。新线程调用HTTP模块解析HTTP报文,取出其中的SOAP请求消息,发送给服务器端的Web Services应用程序,应用程序解析SOAP请求消息,根据其中的服务请求参数,调用相应的服务执行程序。
c.ACSI服务器端的Web Services应用程序将服务执行程序返回的响应数据封装成SOAP响应消息,向下通过HTTP处理模块生成HTTP报文返回给客户端。
d.客户端通过HTTP模块解析出返回的SOAP响应消息,再通过Web Services应用程序取出其中的响应数据,发送给ACSI客户端,完成整个抽象服务通信过程。
图1中的Web Services应用程序都是利用gSoap工具包编写的,用来实现SCSM过程中抽象服务到Web Services应用层报文的生成,完成报文的处理和收发。虚线下方的通信过程无需考虑,由gSoap工具包自身完成。
图1 Web Services映射方案Fig.1 Mapping to Web Services
2 Web Services在配电终端中的实现
2.1 gSoap介绍
本文介绍的Web Services的实现采用了开源的工具gSoap。gSoap的出现使在C/C++环境下实现一个通用性较强的Web Services程序变得简单。gSoap的编译器能够自动地将用户定义的本地化的C/C++数据类型转变为符合XML语法的数据结构,这样只用一组简单的API就将用户从SOAP细节实现工作中解脱出来,能够专注到应用程序的实现中去。
2.2 配电终端
图2 配电终端信息模型Fig.2 Information model of distribution terminal
配电终端按照功能划分为3个LD:LD1(测控)、LD2(保护)和LD3(电源),LD下面是为了完成 LD相应功能而聚集在一起的逻辑节点。
配电终端采用IEC61850的SCL文件实现配电终端的自描述,其最后下载的完整的SCL文件是pzk.cid文件,其他IED或系统可方便地获得其中的配置信息,如通信参数、信息模型和所能提供的服务等。信息模型是IEC61850的基础,是实现互操作的前提,因此,获取pzk.cid文件中的信息模型至关重要。本文通过在服务器端解析pzk.cid文件获取信息模型[11-12],如图 3 所示。
在配电终端上电初始化时,运行XML解析模块,把pzk.cid配置文件加载至内存进行处理,解析获得符合服务器、LD、逻辑节点、数据、数据属性层次关系的IEC61850信息模型数据结构,将其保存在存储器中。PZK-3配电终端采用数据点表的方式存储数据,利用科汇公司的用户方式字配置工具实现实时数据点表与IEC61850信息模型的配置转换,抽象服务通过寻址便可轻松获得装置的信息模型和实时数据。
图3 信息模型获取Fig.3 Acquisition of information model
2.3 Web Services映射实现
IEC61850的全部抽象服务都可由Web Services实现,以GetServerDirectory服务为例进行说明[13-14]。该服务的功能是检索由寻址服务器对请求的客户变成可视的、可访问的全部LD名字表或文件名字表。在IEC61850-7-2中规定的GetServerDirectory服务参数如图4所示。
图4 GetServerDirectory参数Fig.4 Parameters of GetServerDirectory
请求(Request)中包含一个 ObjectClass参数,此参数为被选择的类,可以取值为LD或文件;肯定响应参数(Response+)指明服务请求成功,在Reference中返回LD的objectReference或文件的FileName;否定响应参数(Response-)指明服务请求失败,返回相应的 ServiceError。
参照图4所示参数,实现Web Services的过程如下。
a.定义GetServerDirectory的响应数据类型。
b.定义GetServerDirectory服务函数,包括函数名、形参和如何实现服务的具体程序代码。
相应地,其他的服务也可按照上述方式编写。
c.函数编写好之后,要想实现功能服务,还需要搭建SOAP的应用环境。首先,初始化SOAP应用环境,调用soap_bind()将服务绑定到具体的端口,然后调用soap_accept()等待接收客户端的请求,在客户端通过调用相应的服务函数,如ns_GetServerDirectory()就可获取相应的服务返回。
3 试验验证
试验的硬件环境如表1所示。
将PZK-3配电终端和控制中心管理者样机接入10 Mbit/s局域网内,然后在管理机侧调用Get-ServerDirectory操作测试返回请求的正确性和时间性。在管理机侧接收到的GetServerDirectory服务的响 应 中,_sizeLDRef=3,LDRef[]={“LD1”,“LD2”,“LD3”},与2.2节定义的配电终端的信息模型结构完全一致;经过多次试验,从GetServerDirectory请求发出到请求返回所用时间小于1 s,完全满足配电自动化的时间需求[15]。对于一些要求响应返回较多数据的服务如GetDataDefinition、GetAllDataValues等,返回时间会随着数据的增多延长,由于配网自动化的时间要求较低,也还是可以满足要求。
表1 硬件试验环境Tab.1 Hardware environment of test
4 结论
目前,IEC61850标准在配电自动化中的应用还处于探索阶段。本文所提IEC61850的Web Services映射,通过分析和试验证明了其在配电自动化领域应用的可行性,为IEC61850标准在配网的推广提供一定的参考。当然,Web Services还存在一些实际应用方面的问题,如占用CPU、内存资源较多;在传输相同数据时,需要较高的带宽等,相信这些问题会随着配电终端的升级和通信技术的发展得到解决。