基于libIEC61850开源库的电力通信可行性分析
扫描二维码
随时随地手机看文章
引言
智能化是目前世界电力发展的新趋势,发展智能电网已成为世界各国的共识。2009年,国家电网公司在"2009特高压输电技术国际会议"上就提出了名为"坚强智能电网"的发展规划,分为三个阶段稳步推进,并计划于2020年全面建成统一的"坚强智能电网"。
为了满足电力系统自动化的需求,早在2002一2005年之间IECTC57就相继颁布了IEC61850规约(第一版)的l4个分册。该规约是迄今为止变电站自动化领域最为完善的通信标准,也是未来智能电网发展的方向。IEC61850采用分层结构、面向对象建模等新技术,IEC61850中的抽象通信服务接口ACSI直接映射到制造报文规范MMS。目前符合IEC61850标准的智能产品层出不穷,如ABB的615系列,南瑞继保的pCS系列,许继的DTM、DBM系列等。各个公司均推出了符合IEC61850的标准库,以应用到具体的IED中,如SISCo公司的MMS一EaseLite以及开源的libIEC61850(C语言)和openIEC61850(Java语言)。
libIEC61850(以下简称lib)采用标准C语言编写,提供了一种基于IEC61850的MMS标准协议的具体实现。同时支持MMS服务、GooSE服务、SV服务等。libIEC61850符合IEC61850第二版且向下兼容,以其开源、低成本、代码结构清晰、占用内存少、社区维护快等优点而得以推广使用。
111EC#650与MMS的映射关系
1.1AES1核心服务到MMS服务的映射
1.1.1ACSI服务
如文献所述,IEC61850总结了电力生产过程的特点和要求,在IEC61850-7-2/3/4中,对现实世界变电站进行抽象、归纳,建立了一个分层的、面向对象的数据模型。同时,在通信服务方面设计了ACSI,使得数据模型和对应的服务独立于底层通信协议和网络类型,所建的数据模型可以更好地适应通信技术的飞速发展。
ACSI采用虚拟的观点描述和表示设备的所有行为,定义了相关通信服务、通信对象、通信的参数。ACSI提供的数据模型有服务器、逻辑设备、逻辑节点、数据、数据集、取代、定值组控制块、GSE、报告控制块、时钟对时、关联等。ACSI通过分离应用过程提供特殊通信服务用以变电站内通信,但它仅仅是一个概念性的接口,没有特定的报文格式和编解码语法,本身不具备任何通信功能。目前,IEC61850选择将ACSI映射到应用层协议MMS。
1.1.2MMS服务及特殊通信服务映射SCSM
制造报文规范MMS是国际标准化组织制定的用于工业控制系统的通信协议。他通过对实际设备进行面向对象建模的方法,实现了网络环境下不同制造商设备之间的互操作。MMS规范位于ISo/oSI参考模型的应用层,由六部分组成。核心部分是第一部分服务规范和第二部分协议规范部分,其他属于伴同规范。
MMS通信采用客户端/服务器模式。服务器包含VMD及有名变量等,客户端则可以发出服务请求或命令。MMS的通信服务可以分为带确认和不带确认两种,通信流程如下:
(1)带确认的服务:1)客户端发送一个请求:2)服务器收到该服务的指示:3)服务器执行相应操作:4)返回操作结果,肯定响应和否定响应:5)客户端收到返回的确认信息。
(2)不带确认的服务:在一定的时间间隔内,服务器主动向客户端上送报告或测量值,这类服务称之为非确认服务。
MMS定义了虚拟制造设备(VMD)、域(Domain)、变量(Variab1e)、日志(Journa1)、文件(Fi1e)等对象模型。IEC61850标准在映射到MMS时只用到了MMS协议的一个子集,如VMD、域、有名变量、有名变量列表、文件、日志。
IEC61850对象到MMS对象的映射如表1所示。由表可知,IEC61850与MMS之间并非一一对应,如逻辑节点、数据、控制块等均映射到MMS的有名变量。
此外,IEC61850ACSI的服务与MMS服务之间也并非一一对应。其中多个ACSI服务可映射到同一个MMS服务,如Read和write服务:而有的ACSI服务需要映射到多个MMS服务,如GetFi1e服务。文献给出了详细的服务映射关系对照表,本文不再赘述。
1.2ASN.1的编解码
1.2.1编解码规则
IEC61850中定义的服务器、逻辑设备、逻辑节点等抽象模型,映射到MMS中的VMD、域、有名变量等对象:ACSI核心服务映射到Read、write等MMS服务。而任何一种MMS服务都需要生成MMSPDU,然后经过编码变成二进制数据流,发送至物理网络上。在描述MMSPDU时,描述语言采用ASN.1。ASN.1是抽象语法标记的缩写,分为语法规则(如数据类型、内容顺序等)和编码规则。提供多种编码规则,IEC61850采用的是ASN.1中的基本编码规则BER。由于ASN.1描述语言所具有的优点,人工编码和解码工作变得简单,也使利用C语言实现编码和解码成为可能[5]。
ASN.1的基本编码规则BER遵循的格式如图1所示。
此格式中,Tag描述信息类型,如通用类、应用类等:Length代表信息长度:Values则为所包含的内容,Values也可以是层次嵌套结构。
BER的编解码过程是与MMSPDU的层次结构严格对应的,解码过程与编码过程相反。解码时,先从MMS报文中分离出Tag值,确认描述信息类型:再分离长度值,确定长度:最后解析Value的内容,层层递进。
1.2.2协议数据单元PDU
ASN.1规范描述的MMSPDU包含14种服务,其数据组织结构层层嵌套,最后嵌套至最基本的数据类型。现以Read一Request进行简要说明。
在图2所示PDU的描述中,关键字SEoUENCE代表编解码时该PDU内部的成员要按顺序排列,而CHIoCE则表示只能在PDU内部选择某一个成员。在每一部分PDU的描述行,第一个字段代表该PDU的名字(如:specificationwithResult、address):第二个字段如""表示Tag值:第三个字段表明其类型,如"Address"表明是地址。分析该PDU描述,可以看出,第一部分中嵌套着第二部分,第二部分又嵌套着第三部分。而对于诸如"objectName"这样的结构体,仍旧需要用ASN.1规范进行详细描述。具体细节均可在MMS标准的第二部分中查询。
2IEC61850通信模型的实现
2.1lib相关简介
lib是一个开源(GPLv3)实现IEC61850的客户端和服务器的库。采用C语言实现,可最大程度地满足在不同平台上的移植。它可以在嵌入式操作系统、PC机上实现IEC61850兼容的客户端和服务器应用程序。该库包含一系列简单的例程,开发人员可在这些例程的基础上开发出符合自己项目要求的应用程序。该库实现了IEC61850核心部分的MMS映射。它在TCP/IP上提供了MMS协议栈以及变电站内GooSE的实时数据传输。lib中的API遵循IEC61850中通信标准,分为客户端和服务器两部分:同时,也提供低级别的MMSAPI以供使用者做后续开发。
2.2ASN.1规范的C语言实现
在lib中,可以将核心文件划分为三大部分:通信应用程序开发、IEC61850服务、MMS服务。MMS服务部分依据IEC61850-8-1对MMS一致性的要求,对完整的ISo9506-2进行精简,并利用C语言实现。该部分提供了IEC61850MMS子集的VMD和对应的MMS服务。核心文件引用结构如图3所示。
图3中部分文件提供AP1图中标记实心圆点的文件),方便调用。在MMSs一er一e中,包含一些回调函数,利用回调函数提供的句柄可细化其功能,如决定vewi一服务是控制还是属性值的设置。实际IED的功能通过这些回调函数实现。图D中,MMSs一er一ecreate是创建一个MMS服务:参数1是1so服务,用于服务器与其他服务器通信:参数2(Mmsd一rwc一*)是VME的名称,指定需要为哪一个VME创建MMS服务。Mmsd一rwc一是VME的具体定义,包含了VME名称、域以及有名变量和有名变量列表等,Mmsd一rwc一可将实际IED装置的IEC61850模型映射到MMS。标准中完整的VME由Mmsd一rwc一和MMSs一er一e组成,后者提供具体的MMS服务。
2.3MMS服务到ACSI的实现
IEC61850服务部分根据IEC61850-7的数据模型建立实际IED的模型,包括静态模型和动态模型,并创建通信服务接口。该部分代码提供了ACSI向MMS服务的映射。核心文件引用结构如图5所示。
图5IEC61850服务部分文件引用关系
图6中IEDModel_create创建一个实际IED的静态模型,参数一般为实际IED名称。IEDs一er一eCreate创建IED的动态模型,完成IED服务器的创建过程。而MMSMappwng完成IED模型向MMS的映射,即创建上一节中的Mmsdwrivece。
上述过程只是实现具体通信服务底层代码的搭建。在实际应用过程中,可以通过调用不同文件中的AP1来完成应用程序的开发,也可根据工程要求进行修改完成特定的任务。
3libIEC61850库的使用及测试
3.1实验平台及工具
硬件平台:PC机、IED为EG/850-w60x简称BF60x)开发平台。
软件工具:AlioraxMLspy、vwe一shaek、TFTPs一er一e、Hyp一eT一emwnal、IEDscoui、Noi一pad++。
PC机上安装有运行于VMwae一中的Ubuniu嵌入式操作系
统。文献[7]对BF60x开发平台的硬件进行了详细介绍。TFTPs一er一e用于应用程序的下载(至IED),vwe一shaek用于通信报文的截取,其余均为常见软件。
3.2应用程序测试
根据IEC61850-6中提供的xsE文件以及BF60x平台的资源,利用xMLspy修改1CE模板,并验证1CE文件的有效性。BF60x的IED名为"w一dl",逻辑设备实例为"BF60x"。应用程序开发采用Noi一pad++。应用程序的简要流程如图7所示。
综合上述工作,在Ubuniu环境下,使用编写好的Jarascewpi将1CE文件转换为与BF60x(IED)模型相关的文件,包含siaiwcmodl一.h和siaiwcmodel_.c文件。添加模型文件和BF60x相关的头文件至应用程序文件夹下,执行文件夹下的Mak一fwl一文件。将生成的应用程序和定值组文件下载至BF60x并执行。利用Hyp一eT一emwnal和vwe一shaek完成操作和通信报文的截取,IEDscoui充当客户端与BF60x进行交互。
IEDscoui客户端读取BF60x(IED)平台模型和动态监测测量数据的结果如图8所示,图示中显示了创建的四个数据集及其内容,也给出了报告控制块的数据模型,测量数据实时更新并周期上送。
图9是vwe一shaek截获的MMS不带确认的服务报文。截获的MMS报文中,"unconfwem一d-PEU"表示是不带确认的服务。报告包含十个元素,图中实线框标出部分为数据集引用,下方为对应的BtR编码,采用十六进制显示。