孙志佳,范东凯,罗来峰,周俊峰
(长园深瑞继保自动化有限公司,广东 深圳 518057)
IEC TC57(国际电工委员会第57技术委员会)从1995年开始制订,于2004年完成制定并发布了IEC 61850变电站通信网络和系统系列标准的第一版。该技术标准吸收了国际最先进的技术,并大量引用了多个领域的国际标准,是一个十分庞大的标准体系,而不仅仅是通信协议标准[1]。标准采用面向对象的建模技术,面向未来的可扩展通信架构,以实现“一个世界、一种技术、一个标准”为目标,IEC 61850 系列标准的出现解决了以往变电站自动化系统中不同厂家设备的互操作问题,实现了不同厂家设备的网络连接。工程实践表明,在不同制造商的IED(智能电子设备)之间实现了良好的互操作性,并且能够适应通信及应用技术的快速发展[2-5]。IEC 61850 系列标准技术委员会跟随技术发展,对系列标准不断更新、扩展、完善,系列标准于2009 年开始逐步发布ED2.0 版本,并于2018 发布了修订版本ED2.1,目前是该系列标准的最新版本[6]。
我国变电站通信技术一直紧跟国际步伐,在IEC 61850系列标准第一版发布后,迅速组织设备厂商和相关领域专家将此国际标准转换为国内的电力行业标准并贯彻执行,对提高国内变电站自动化水平、促进变电站自动化技术发展、实现变电站设备厂家的互操作性非常重要。我国于2004—2006 年翻译引进IEC 61850 标准,结合实际情况制定了DL/T 860 系列标准。从“十二五”开始,国家加快智能电网建设,坚定了IEC 61850 ED1.0系列标准作为国内智能变电站通信网络与系统建设基础的决心,在智能变电站建设中占据主导地位[7]。智能变电站采用三层两网的通信架构,过程层通信网络采用标准提出的GOOSE(面向通用对象的变电站事件)、SV(采样值)技术,站控层通信网络采用标准提出的MMS(制造报文规范)技术。为加快数字化变化站建设的步伐和IEC 61850标准的应用,国内设备厂商对GOOSE和SV技术依据标准组织研发实现,站控层通信网络MMS技术大多数是通过购买SISCO 公司开发的MMSEASE Lite软件包的方式实现快速开发,目前也是在购买SISCO 公司采用C 语言开发的软件包基础上结合实际应用情况进行二次开发,以满足IED设备的通信需求。虽然SISCO 公司开发的软件包是专门为嵌入式应用设计,对CPU(中央处理器)和内存的使用低,执行效率高,降低了开发成本和风险,大大缩短了设备的研发周期,但由于软件包价格高且后续升级维护需缴纳高昂费用,国内厂商基本都是购买一个版本,不包含后续维护升级服务。采用MMS-EASE Lite 软件包开发的IED设备能够满足变电站设备通信及互操作要求,但在大量工程应用实践过程中依然存在很多问题,例如MMS 结构复杂功能二次开发难度大且效率低、软件包本身BUG、未掌握核心技术、代码维护难度高等[8-10]。针对上述问题,考虑到国外对国内的技术封锁以及国内自主可控意识的不断增强,核心技术的国产替代十分必要,MMS作为站控层网络通信的核心技术,考虑电网稳定安全等因素,实现国产技术替代已迫在眉睫,在这样的大环境背景下,国家电网公司组织二次设备厂家开展MMS技术的替代工作,并制定了变电站二次系统CMS(通信报文规范),实现了IEC 61850 服务映射核心技术的自主可控[11-12]。
鉴于IEC 61850在国内变电通信技术的核心地位以及自主可控新一代设备对站控层通信网络技术的要求,本文提出一种变电站CMS在自主可控新一代产品上应用的技术实现方案,同时对比CMS 与MMS 的技术差异,分析新技术优势和效果,从设备厂商角度考虑如何兼容两种技术的工程实践应用,实现无缝切换。由于篇幅原因,过程层通信技术GOOSE和SV的应用实现本文不做阐述。
CMS 协议在ACSI(抽象通信服务接口)的映射上与MMS协议相比产生较大改变,但两者均是基于IEC 61850标准将抽象通信服务接口映射到底层通信协议栈的技术[13]。CMS信息模型映射遵循DL/T 860.73 和DL/T 860.74 标准,依然采用DL/T 860.6 SCL 语言配置的SCD(系统配置文件)、ICD(能力描述文件)、CID(ICD实例配置文件),在静态模型文件的应用上MMS与CMS协议完全兼容。CMS 协议的在线模型与MMS 存在差异,CMS在通信服务中采用一组分离的引用名和功能约束参数表示,不采用DL/T 860.81 在进行功能服务映射时的扩展处理,DL/T 860.81 修改了引用名格式,将FC添加至引用名,成为”XXX/XXX$FC$XXX”的形式,CMS不采用此种形式的扩展。CMS协议的通信服务模型遵循DL/T 860.72标准,并对部分服务进行了扩展,以适应国内变电站建设的应用场景,完全替代了DL/T 860.81部分阐述的特定通信服务映射到MMS的相关技术要求,直接将ACSI映射到TCP/IP协议栈,采用ASN.1 的PER(压缩编码规则),替换MMS 使用的BER(基本编码规则),为满足变电站对通信安全和个别应用场景需求扩展的服务包括:传输层安全、应用层安全、关联协商、数据服务的功能约束、文件服务的断点续传、远程过程调用。CMS 与MMS 协议的服务一致性测试依然遵循IEC 61850—10部分要求,对扩展服务需单独增加测例。
IEC 61850系列标准采用抽象的建模方法和面向对象的思想,为变电站应用定义了抽象的通信服务应用实例,该部分定义由IEC 61850 标准的7-2、7-3、7-4 部分规定。将定义的抽象通信服务接口映射到具体的底层通信协议上,实现信息交换在IEC 61850 标准8-1 部分定义,即MMS 协议。CMS协议替代思想摒弃了IEC 61850标准8-1部分规定的特定通信服务模型映射到底层协议栈MMS的方法,将标准定义的抽象通信服务模型直接映射到TCP/IP,实现原有信息服务模型映射到MMS协议子集的替代,采用信息服务模型到底层应用协议的一对一映射方法,规定了特定报文格式和报文语法,实现变电站设备间的信息交换[13-14]。MMS与CMS的映射差异如图1所示。
由图1可以看出核心ACSI服务以及抽象信息模型映射在两种底层通信协议之间的差异。IEC 61850 标准8-1 规定的核心ACSI 服务原语并不具备通信功能,没有特定的报文格式和编、解码规范,不可以直接用于信息交换,需进行特定通信服务映射到底层通信协议后才可进行信息交互,IEC 61850 标准8-1 部分规定了核心ACSI 到底层协议MMS 的映射关系,MMS 为国际标准而并非为IEC 61850 设计,核心ACSI 映射到MMS 协议无法实现一对一映射,需对IEC 61850模型和服务分别映射,将多个ACSI服务与模型分解并分别映射到某几个MMS 服务与模型上,CMS 协议将ACSI 直接映射到TCP/IP,信息模型则直接采用IEC 61850 模型,无需做MMS 模型映射转换。MMS 协议通过服务加信息模型共同区分ACSI 服务,CMS 协议则通过报文的服务码区分服务来实现信息交互。IEC 61850的主要抽象通信服务接口映射到CMS 与MMS 协议的服务差异如表1所示。
表1 MMS与CMS服务映射差异Table 1 Differences in MMS and CMS service mapping
由表1 可以看出,MMS 协议映射分为两种形式,分别是一对一映射、多对一映射;CMS则是一对一映射方式。CMS 协议在原有服务接口上,扩展了一组用于实现远程过程调用的通信服务接口,该组接口是一种通用化、自描述的接口和方法,客户端可以动态获取接口和方法定义,根据定义动态的组织发送结构数据并对响应进行解析。依据CMS 标准规范该组接口可以用于任何功能,但出于安全考虑,目前仅用于数据查询和数据分析,功能服务接口主要包括:GetRpcInterfaceDirectory(读远程调用接口目录)、GetRpcMethodDIrectory(读远程调用方法目录)、GetRpcInterfaceDefinition(读远程调用接口定义)、GetRpc-MethodDefinition(读远程调用方法定义)。除此之外,CMS协议还扩展了以下服务:GetAllDataDefinition(读所有数据定义服务)、GetAllCBValues(读所有控制块值服务)、Test(测试帧服务)、AssociateNegotiate(关联协商服务)、GetFileDirectory(列文件目录服务)。
IEC 61850 标准8-1 部分在将服务映射MMS时,对IEC 61850 标准7-2 部分的服务数据对象进行了扩展。而CMS 协议映射则是按照IEC 61850标准7-2部分规定执行,未采用MMS协议映射的扩展,主要体现在以下几个方面:
1)不采用MMS 映射扩展的功能约束:CO、BR、RP、LG、GO、GS、MS、US。
2)不采用MMS 映射扩展的数据对象:SBOW、Oper、Cancel。
3)不采用MMS 映射扩展的控制块数据服务对象。
4)不采用MMS 映射使用的Reference 形式IEDNAME LD/LN $FC $DO $DA,而采用的是IEDNAME LD/LN.DO.DA形式。
MMS 协议采用ASN.1 的BER,CMS 则采用ASN.1 的PER,两种编码规则均是将ASN.1 形式的数据结构编码成用于数据传输的比特流,数据解码过程则和编码过程相反。ANS.1 用于描述通信协议传输的PDU(协议数据单元),利用ASN.1描述的数据结构,可以在任何操作系统上转换为具体的内部通信语法结构,并不产生歧义。标准的ASN.1 编码规则有BER、PER、CER(规范编码规则)、DER(唯一编码规则)、XER(XML编码规则)[15]。本文只对比CMS与MMS协议映射使用的编码规则,其余编码规则不做赘述。
1.2.1 BER编码
BER 是ASN.1 中最早定义的,传输语法格式是TLV 三元组
图2 传输语法示例Fig.2 An example of transmission syntax
BER 编码中的Tag 是一个八位组,指明具体的传输值类型。Tag有两种形式,当Tag值不大于30 时,Tag 只有一个八位组编码;当Tag 大于30时,则Tag 在多个八位组中编码。当在多个八位组编码时,第一个八位组后5位全部为1,其余八位组最高位为1表示后续还有,直到最高位为0表示Tag结束,Tag的组合形式如图3所示。
图3 Tag的组合形式Fig.3 The combination form of Tag
BER 编码Length 字段表示Value 字段占用八位组的个数,分定长方式和不定长方式两类,在确定方式后,根据Length 字段占用八位组个数分短、长两种形式。如图4 所示,如果采用定长方式,当数据长度不大于127 时,Length 字段只在一个八位组编码;当数据长度大于127,则需要在多个八位组编码,此时第一个八位组低7 位表示Length 大小。采用不定长方式,Length 字段固定编码0x80,Value 字段编码结束后以两个0x00结尾。
图4 Length的3种组合形式Fig.4 Three combination forms of Length
BER 编码Value 字段表示需要传递的实际值,具体传输编码规则根据Tag选择,此处不再赘述。
1.2.2 PER 编码
BER 编码常常因为其开销过大而受到诟病,与真实编码数据相比,平均需要增加约50%的额外数据,由于BER编码这种缺点,推动了PER编码的诞生。相同的传输协议,使用PER 编码比使用BER 编码在传输数据大小上,至少有40%~60%的改进,可以有效减少传输带宽,在视频通话、多媒体等高速数据传输领域有广泛应用[16-18]。CMS 协议考虑到MMS 协议映射使用BER 编码缺陷,改用PER 编码以缩减传输带宽并提高传输效率,减轻网络传输压力。
PER 编码的格式为[P][L][V]
IEC 62351—6 部分阐述了IEC 61850 的通信安全,但目前国内变电站对IEC 62351标准的应用非常少,虽然已有部分设备厂商开展了标准的应用开发,但未在国内变电站建设中得到推广应用。CMS 协议规范考虑到目前变电站通信的安全隐患,在标准制定过程中引入IEC 62351—6 部分规范,阐述了变电站安全通信体系架构。变电站安全主要包括站控层网络和过程层网络的安全防护。站控层网络安全又分为传输层安全T-Profile 与应用层安全A-Profile,传输层安全采用TLS协议作为传输层安全协议,加密算法采用国密算法,加密套件采用ECDHE_SM4_SM3 和ECC_SM4_SM3;应用层安全采用认证参数的方式实现身份识别。过程层安全考虑到数据传输实时性的要求,采用HMAC 消息认证机制实现安全通信。变电站安全通信架构如图5所示。
图5 变电站安全通信架构Fig.5 The secure communication architecture of the substation
实现CMS 协议开发分为4 个部分:基于IEC 61850 对象与CMS 数据结构的映射,基于ASN.1的PER 编、解码过程设计,基于面向连接的TCP/IP网络传输机制设计,MMS协议与CMS协议兼容性设计。如上文所述CMS 协议映射摒弃IEC 61850 对象向MMS 协议映射的复杂过程,采用了直接映射方式。CMS 通信服务流程如图6 所示:CMS 客户端向服务端发起连接请求,服务端与客户端建立连接,客户端向服务端发送服务命令请求,服务端正确接收报文后进行解码和语义校验,通过后根据报文中的服务码进行不同服务流程处理,组织响应数据结构经PER 编码转换为二进制比特流,传输至以太网实现信息交换。
图6 CMS服务流程Fig.6 The CMS service process
CMS 协议规范定义的服务语法是采用ASN.1方式标记描述,实际开发过程中要将其定义的语法文件转换为高级语言对应的类型和语法,这种映射关系是唯一映射[17-19]。考虑代码维护性和自主可控特性,开发过程中并未采用第三方开源的ASN.1语法翻译软件包,而是采用自主研发方案,将CMS协议描述的服务模型翻译成C语言对应的语法和数据类型,并加以封装,实现CMS的编码解码应用。CMS编码处理流程如图7所示。
图7 CMS编解码处理流程Fig.7 The encoding and decoding process of CMS
CMS 协议规范描述了安全和非安全两种方式的通信方法,在程序开发过程中均设计了具体的实现方案。本文采用配置文件方式实现通信配置,配置内容包括:传输层安全的相关证书路径、应用层安全的相关证书路径、通信白名单、是否启用传输层安全及应用层安全的配置开关。每条通信连接单独配置,可同时支持安全和非安全通信,满足工程现场多场景通信需求。通信连接处理流程如图8所示,服务端初始化加载配置后,形成通信连接池,只有在通信连接池内的客户端IP 才可与服务端建立连接,同时根据连接请求是否为安全请求,做不同通信流程处理。
图8 通信连接处理流程Fig.8 The communication connection process
本文讨论的是国产化自主可控保护装置CMS协议映射实现方案,因此软硬件开发环境为嵌入式,具体情况如下:嵌入Linux操作系统、自主可控型保护装置、Arm-Linux 交叉编译环境、元器件国产化率达95%以上的硬件平台。
软件在设计过程中充分考虑了后续可能的应用场景,设计了CMS 协议与MMS 协议无缝自由切换的软件架构,在实际工程应用时通过配置区分采用何种通信协议,程序启动初始化时根据协议配置加载不同的协议组件和资源配置,实现通信环境构建。主程序流程如图9 所示。由于CMS协议与MMS 协议在IEC 61850 模型映射上的差异,软件设计在静态模型加载后的映射上做了兼容处理,根据协议配置实现不同资源结构映射。此软件架构设计同一时间只有CMS 或MMS 协议可用,不可同时使用。
图9 主程序启动流程Fig.9 The startup process of main program
基于上述CMS协议的设计方案,开发了服务端通信程序并应用于自主可控新一代装置,为了验证协议服务的一致性、代码健壮性以及CMS协议栈性能,搭建了测试环境。一台联想L14 笔记本(处理器主频1.6 GHz,内存16 GB)运行由公司测试组开发的CMS 协议一致性测试客户端工具,一台自主可控新一代线路保护装置PRS 753 运行CMS 服务端程序,两者通过交换机相连。测试所用装置模型包含LD0、PROT、RCD 这3 个逻辑设备、50个逻辑节点、20个数据集、20个报告控制块、一个日志控制块、一个定值控制块,静态模型大小为367 kB。采用由公司测试组开发的wireshark协议解析插件抓取报文分析。
IEC 61850 服务一致性测试遵循IEC 61850—10 部分的规定,CMS 协议规范在进行ACSI 映射时做了部分服务扩展,除扩展服务外其余服务的ACSI 遵循规定,但CMS 协议还需验证协议的语法和语义的正确性。针对上述情况测试组对一致性测试工具进行了测例调整。
测试结果表明,采用本文所述的CMS协议实现方案,可满足通信要求且可通过协议服务一致性测试考验,在测试过程中出现部分服务的否定测例不通过、错误码回复不正确等问题,经修复后再次验证可通过测试。
协议健壮性测试是发现CMS协议程序在出现故障时,能否恢复或忽略异常的重要测试手段,可以有效验证代码的容错能力。为了验证本文开发的CMS协议软件代码的健壮性,采用了模糊攻击、重放攻击、差错报文攻击等手段进行测试。结果表明,在应对部分攻击时出现程序无法运行、异常无法恢复等问题,经过有效容错后再次验证,并未出现异常无法恢复问题。
针对上文提出的CMS 协议与MMS 协议兼容性方案,通过协议配置选择不同协议,分别使用CMS 和MMS 客户端、一致性测试工具,验证服务有效性和代码健壮性。测试结果表明,CMS 与MMS协议可以通过配置选择切换,并通过了服务一致性和代码健壮性测试。
分别搭建MMS 和CMS 的测试环境进行协议性能对比测试,两台PRS753 装置分别运行CMS和MMS 协议程序,两台联想L14 笔记本(处理器主频1.6 GHz,内存16 GB)分别运行由测试组开发的CMS客户端工具和MMS客户端工具,装置与客户端通过交换机连接,所用模型大小为367 kB。模型包含LD0、PROT、RCD 这3 个逻辑设备、50个逻辑节点、20个数据集、436个数据集成员、10 个RCB、两个日志控制块、一个定值控制块,为验证数据交互性能,在客户端部署wireshark 软件抓包分析。测试内容包括:读取模型初始化效率测试、读取数据测试、总召及报告报文测试等。
3.5.1 在线读模型初始化效率测试
在线读模型初始化效率测试结果表明,CMS协议的整体传输性能相比于MMS 协议有显著提高。在线获取模型效率对比如表2 所示,CMS 协议的初始化时间是MMS 协议的约40%,性能提高明显。
表2 在线获取模型效率对比Table 2 Comparison of online model acquisition efficiencies
在线读取模型的通信过程包括以下步骤。
1)客户端工具与服务端建立连接和应服务关联后,将从服务端获取全部模型数据,包含各个LD、各个LD 下的LN、各个LN 下的DO 和DA、各个LN下的数据集、报告控制块等。
2)根据实例化号读取对应报告控制块的当前值信息,并将控制使能标志设置为0,修改报告控制块参数后,使能报告控制块。
3)对各个使能的报告控制块写总召,服务端发送总召报告后,初始化结束。
3.5.2 数据读取测试
客户端工具调用GetAllDataValues 服务,分别读取两台装置的同一测点,BP2CPROT/Sys-MMXU1。测试结果如表3 所示,对比MMS 协议,CMS 协议请求和响应的整体时间以及请求响应的报文长度都有显著提高,请求报文长度减少明显,报文长度仅需MMS协议的1/3左右。
表3 数据读取性能对比Table 3 Comparison of data retrieval performances
3.5.3 总召报告测试
客户端选取一个缓存报告控制块brcbRelay-Din01 作为测试点,执行总召,brcbRelayDin01 关联的数据集dsRelayDin 包含57 个成员。wireshark抓取客户端下发总召命令、命令返回、以及总召报告上送全过程。由表4可知,BRCB总召命令请求响应时间、请求报文长度、响应报文长度、报告报文长度等指标均有显著提升,表明CMS协议相对MMS协议在传输的报文长度和报文交互效率上得到了提升。
表4 BRCB总召报告性能对比Table 4 Comparison of BRCB performance from general interrogation report
本文所阐述的CMS协议标准在自主可控新一代装置上的实现方案,为后续CMS协议标准在其余自主新一代变电站产品平台的应用推广提供了思路。该方案目前在国家电网公司自主可控新一代产品线上大面积应用推广,相应产品在国内多个自主可控变电站运行试点,并通过了国内专业检测机构的检测,对推动国内变电站通信核心技术的加速国产化、保障电网通信的稳定安全具有重大意义。