配电主站数据流跨区交互通道的设计与实现

2019-05-15 01:13曹寅翔李俊达
综合智慧能源 2019年4期
关键词:跨区适配器服务端

曹寅翔,李俊达

(南京国电南自电网自动化有限公司,南京 211153)

0 引言

国家电网公司(以下简称国网)2017版《配电自动化系统主站功能规范(试行)》(以下简称《主站规范》)中指出,主站内部生产控制大区(I区)和管理信息大区(III区)的应用数据流,包括采集监控类、故障处理类、分析应用类等10类数据,需按照特定模式、频率和流向进行交换同步。遵循IEC 61968标准的信息交换总线,其基于主题定制的、可跨隔离信息交互的功能,以及在容量、效率和并发方面的技术规范表明,恰好支撑主站I,III区之间的数据交互需求。本文从配电自动化信息交换总线的功能规范出发,针对主站双区应用数据流交互要求,完成数据流传输通道的设计与实现,并进行了功能测试和性能测试[1-4]。

1 方案设计

基于IEC 61968 标准的信息交换总线(以下简称总线),本身就是国网《主站规范》中系统构架的一部分。在满足规范要求的前提下,基于现有的总线产品(包括软硬件),本节给出了主站双区数据流交互通道的软件设计方案[5-6]。

1.1 信息交换机制

配电自动化系统中,总线作为中间件实现各应用的解耦与消息透传。根据总线在国网技术规范中固有的信息交换机制,并结合主站 I,III 区数据流交互的应用场景,得出主站数据流跨区交互模型图如图1所示。

总线中间件包括应用适配器、中间件适配器和总线服务器。应用适配器负责对应用数据进行封装和转换,采用基于IEC 61968标准的格式,以“动词+名词”方式标志数据交换模式和内容,称为“主题”。中间件适配器通过访问总线服务器接口,将封装好的消息以指定的信息交换模式发送给总线服务器,并由其执行跨隔离传输和动态路由。应用适配器和中间件适配器共同构成标准接口适配器,对外开放数据传输接口(客户端)和接收接口(服务端)。

总线共支持3种信息交换模式,包括同步请求/应答模式、异步请求/应答和发布/订阅模式。

图1 主站数据流跨区交互模型Fig.1 Interaction model of data stream in the master station

总线对外提供图形化的、人机交互友好的流程编排功能。适配器可在线注册,总线基于主题机制统一分配适配器的发送/接收权限,适配器跨区部署形成交互通道。本文正是通过总线静态编排与动态路由特性,实现主站数据流跨区交互通道的灵活搭建。

1.2 信息封装格式

1.2.1 消息格式结构

IEC 61968定义的消息格式如图2所示。消息体可选,用来承载消息数据内容;消息信封至少包含消息头、请求组件和应答组件中的一种,用来封装请求消息、应答消息、发布消息和异常消息的标志信息。

图2 消息格式结构Fig.2 Message format structure

1.2.2 消息头HeaderType

消息头封装了包括主题、异步标志、关联ID在内的一些重要信息。其中,主题动词Verb必须选自IEC 61968标准定义的范畴,如请求消息通常选用get,应答消息只能用reply,发布消息通常是created;名词Noun可自定义,但不可为空。

1.2.3 消息体PayloadType

消息体包含4种数据格式供选择封装:字符数组容器、OperationSet集合、字符串、ID集合容器,如图3所示。丰富的数据格式可满足配电主站数据流包括字符串、二进制数据和文献数据类型的封装,文件数据类型由二进制数据包结合位置标志组装而成,从而支持跨区交互的主站数据流的承载。

图3 PayloadType结构Fig.3 PayloadType structure

1.3 数据流跨区交互通道

配电主站图、模型、权限等配置数据可以通过请求/应答模式进行双向跨区传输,而Ⅰ,Ⅲ区的终端遥信、遥测等实时数据,选择发布/订阅模式[7]。基于信息交换总线的功能特性,支持双机主备的数据流跨区双向同步通道搭建如图4(配置数据)和图5(实时数据)所示。

图4 配置数据流跨区交互通道Fig.4 Cross-area interactive channels for configuration data stream

图5 实时数据流跨区交互通道Fig.5 Cross-area interactive channels for real-time data stream

2 软件实现

2.1 交换模式序列化

本节以Ⅰ区往Ⅲ区异步请求/应答的模式为例,将信息交换过程序列化,如图6所示。

表1 跨区单向传输测试数据Tab.1 Test data of cross-area transmission (one way)

图6 Ⅰ到Ⅲ区异步请求/应答过程Fig.6 Asynchronous request/response process(Ⅰ to Ⅲ)

虚线箭头表示返回消息,_CallBack()表示服务端回调。在异步模式下,Ⅰ区和Ⅲ区应用既是总线客户端,又是服务端,需要同时向总线注册初始化;发送Request请求共经历2次应答。

2.2 数据结构与接口

基于总线各信息交换模式的序列化结果,本文自主设计了通用访问接口,涵盖了客户端初始化、请求发送、发布主题消息,以及服务端初始化,回调注册、应答发送、订阅主题消息等功能。同样以请求/应答模式为例,给出总线访问接口函数如图7所示。结构体BS_MSG_INFO为消息体,涵盖消息类型、内容数据和消息长度。

图7 总线访问接口函数Fig.7 Interface function of bus

2.3 gSoap实例化

总线对外提供统一的、基于WebService的交换服务接口,以及相应描述文件(.wsdl)。本文采用gSoap工具生成C++封装的总线客户端和适配器服务端,共同构成图1中标准接口适配器。gSoap指令如图8所示,通过gSoap工具先将wsdl文件转化为接口描述头文件,继而生成C++包装的客户端和服务端文件。

图8 gSoap指令Fig.8 gSoap Command

3 性能测试与分析

3.1 测试方案

本文共设计出3种试验方案,对基于信息交换总线的跨区交互通道进行效率、容量和并发测试,具体如下。

3.1.1 跨区单向传输性能测试

从Ⅰ区向Ⅲ区发送为例,在Ⅰ区测试程序中开辟多线程使用同一个发送通道,检测并发性能;设置不同的发送消息体积和消息数量,检测稳定性能。统计消息发送数和接收数,检测是否丢包;统计每条消息从Ⅰ区到Ⅲ区、再从Ⅲ区返回Ⅰ区各自时间,检测传输效率。

3.1.2 多通道正反向并行测试

同时使用请求/响应(同步)和发布/订阅模式的通道,且双向部署,观察4个通道同时运行时的性能是否与3.1.1单向传输一致。增加通道数量,检测总线系统可接入数量。在同一方向、同一模式的不同通道中,检验总线主题优先级功能。

3.1.3 大单体消息跨区传输测试

设置单体消息大小分别为100,200和1 000 MB,统计大消息分别在正向和反向传输所需时间。

3.2 试验结果

以3.1.1试验为例,给出测试结果数据(部分)见表1。

可以发现,反向跨隔离传输时间>2 s,消息大小对总线传输速率会产生少许影响,在单线程运行下总线运行稳定;而客户端采用多线程并发调用同一传输通道,则产生了丢包、总线阻塞的异常。

对跨区交互通道的性能测试分析,是同时对信息交换总线和自设计适配器性能的检验。通过试验数据客观反映各环节运行结果,从而准确定位总线或者适配器的异常和缺陷,为性能优化提供参考。

4 结束语

本文从信息交换总线的功能出发,遵循总线规范设计出与总线兼容的、可扩展的标准接口适配器,灵活搭建配电主站跨区交互通道,供配置/实时数据双向传输。详细给出了适配器的软件实现过程,给实际工程应用的落地提供参考。最后详细设计出一套性能检测试验方案,能够客观、完整的检测出总线和适配器的各项性能数据,为整个跨区传输通道的稳定运行和性能优化提供数据支撑。

猜你喜欢
跨区适配器服务端
组织水稻跨区作业,提高水稻机收水平
千余台雷沃谷神履带机随“天中麦客”浩荡出征
新时期《移动Web服务端开发》课程教学改革的研究
基于3D打印的轻型导弹适配器
潜空导弹垂直发射出筒适配器受载变形仿真研究
电源适配器怎么选
美国麦格普公司新型M—LOK相机三脚架适配器
摸清黑客套路防范木马侵入