llzzyy 2019-04-08
南京南瑞继保电气有限公司的研究人员陈宏君、张磊、徐睿、曾凯、刘坤,在2019年第3期《电气技术》上撰文,分析了面向国际市场的用户软件现状与问题,介绍了新一代控制保护平台PCS-S系列装置配套软件设计理念与关键实现技术。
软件以驱动包文件衔接装置研发、工程实施、用户运维等过程,支持驱动包在线升级更新。以“所见即所得”的设计理念,通过分布式配置和集中式浏览编辑,解决数据一致性和同步等难题。通过MOT选型、可配置脚本、可视化主接线、图形化跳闸矩阵等手段提升装置可配置能力。
软件通过模块化元件内嵌IEC 61850模型、图形化配置过程层数据模型等方式实现IEC 61850多版本自动建模。支持以装置能力描述文件为输入源,进行数字化回路配置,实现智能变电站装置配置、调试、集成和运维一体设计。基于本文设计的PCS-Studio软件已经在多个工程实施中应用,满足用户可配置、易维护的需求。
保护测控装置已经实现了平台化、可视化、可配置和调试的功能,一些厂家的产品已经销售到国际市场,与国内的大客户定制化、标准化模式相比,国际市场区域分散、用户需求存在较大差异,装置软硬件平台、应用程序配置、用户运维软件等需要提升灵活性、可配置能力。
对过程控制系统(process control system, PCS)系列装置配套PCS- Explorer软件,在国内外工程实施进行调研总结,在获得用户的认可同时,亦存在如下不足:
①部分应用配置复杂度较高,即使深入阅读说明书,也存在理解和操作上的困难,例如针对主变高、中、低压侧的模拟量分配和保护功能连接关系的配置,需要提供50余页专项说明;
②限制于工具软件所能提供的功能,部分应用的灵活可配置能力有待提升,例如国外不同地区的间隔的接线方式非常灵活,往往超出预设的组合范围,一些特殊接线只能二次变更开发;
③IEC 61850采用全自动化建模方式,用户无法自主设置实例号,导致后续工程维护升级时新增/删除信号带来逻辑节点实例号的变化,加大了维护工作量;
④装置配置调试和变电站集成需要通过2个软件分步完成,缺少一体化设计交互能力。
针对上述反馈,结合新一代控制保护平台PCS-S系列装置的推广需求,新开发了配套的面向国际市场的装置开发运维软件PCS-Studio,本文介绍了该软件的设计理念和关键技术。
软件需注重用户体验,实现所见即所得。按照支撑产品全生命周期的要求进行设计,从装置订货、研发调试、工程实施、运行维护等环节,提供装置选型、应用开发、插件选配、用户配置、整站集成、状态浏览、波形分析等功能模块。
1.1 概念定义
元件是完成特定功能逻辑、面向对象封装的一组数据和对数据进行处理的过程,处理完后输出的数据供其他元件使用。元件包含输入、输出、参数、逻辑节点、人机配置等内容。
驱动包是一个自定义格式的文件,把硬盘目录下整个装置的编程、配置、建模相关文件打包压缩形成*.dev。其包括装置的元件库、可视化页面、定值、事件录波、装置选型、液晶主画面等装置配置的源素材文件,还包括通过分析源素材文件形成的装置运行接口文件、ICD(装置能力描述文件)等。
研发人员通过PCS-Studio软件开发装置驱动包,将驱动包下载到装置运行。工程人员和用户可从装置中装上驱动包、或者从驱动包安装库中选择驱动包新建离线配置,进行本地化配置,形成新的驱动包。
1.2 配置调试集成一体化设计
如图1所示,PCS-Studio采用一体化设计,以变电站为单位创建工程,支持单装置配置调试、跨装置集成功能。
图1 配置调试集成一体化设计
软件提供的功能包括:
上述功能覆盖了从单装置研发到现场运行调试的相关过程。软件的用户包括装置研发人员、生产制造人员、技术支持人员、产品代理人员、购买装置的用户。
以技术支持用户为例,其典型的操作流程如图2所示:
对于智能变电站的装置,还可进行过程层变电站事件(generic object oriented substation event, GOOSE)、模拟量采样(sampled value, SV)的发送接收端子配置,形成单装置ICD文件。之后在资源管理器导入其他装置的ICD文件,将其他装置的GOOSE-SV发送数据集对应的发送端子选择拖入到ICD的Inputs节点内,并选择外装置的FCDA和本装置的接收虚端子DAI关联,通过ExtRef存储对应关系。
装置是以回路实例配置(configured circuit description, CCD)文件作为数字化传输的接口,配置软件根据ICD文件中的发送数据集和Inputs接收端子信息,形成该配置文件,通过1个软件,即完成了装置间的数据传输配置。完成相关离线配置后,将驱动包下载到装置进行在线调试。
1.3 以驱动包为核心衔接全流程设计
面向国内外市场,要求保护测控装置具备灵活的可配置能力和快速集成能力。基于传统的定制化编程方式,已经很难适应不同国家和地区用户需求。需提供可配置方法,支持用户二次开发,满足现场需求,而面向用户的可配置,要求风险可靠,避免用户进行程序编译等复杂度高的操作。
另外随着研发分工的细化,装置程序的研发也需分步实现,模块研发人员侧重于单个功能模块的设计,以提高模块的研发质量和运行效率,装置集成研发人员基于可复用的模块库,搭建装置功能,并设计开放给用户的配置接口,以提高装置集成速度。本软件以驱动包为核心,实现不同用户分权限、分步骤开发,如图3所示。
图2 用户操作流程设计
图3 以驱动包为核心的分步开发过程
用户版软件仅显示用户可见的模块、页面、定值、配置选项等数据,用户版本的逻辑编程数据处理采用动态注册技术,是免编译的。
1.4 提升装置可配置能力设计
在PCS-Explorer软件中,装置运行的主体功能使用图形化元件搭建,在保留该软件部分核心功能前提下,PCS-Studio新增了主接线功能、图形化跳闸矩阵功能,进一步提升母差保护装置、主变保护装置的可配置能力,降低上述应用的配置复杂度,并对IEC 61850建模配置进行了新的设计,提升用户自主配置修改方便性。
1)主接线配置
母差保护采用面向间隔对象的方法来形成差动构成图,该方法针对不同母差主接线情况下,只需要修改母差配置,不需要修改母差程序。之前的标准母差保护支持的主接线形式固定(通过MOT提供11种可选接线方式),无法满足一些较特殊的主接线方式,由研发人员进行二次开发实现。故需要通过绘制母差主接线图实现自动形成母差配置的功能。其主接线实现步骤如下:
在进行变压器保护配置前,需要了解原理图、用户习惯,由于变压器主变接线方式和高中低压侧的分支数可变,所以对应的模拟量拉线、命名、HMI配置都有可能要修改,由于其灵活的可配置模式,对工程人员和用户来说,需要深刻理解掌握变压器保护的配置思路,专业门槛高,存在一定难度,也需要通过图形化的方式,以直观地进行模拟量和功能配置。其主接线配置实现步骤如下:
图4 主变保护主接线示意图
2)跳闸矩阵
主变三侧保护多,跳闸开关多,每个保护跳的开关不一样,如果都用继电器就需要定义很多压板。之前是通过定值整定或者通过搭建繁杂的逻辑页面实现,存在不直观、不易汇总的问题。跳闸矩阵先将要跳的每个开关的继电器固定,对每个保护要跳开关编码,用点击圆圈方式直接起动要跳开关继电器。
通过对各种保护跳闸进行统一需求分析,设计了通用的跳闸矩阵符号,其在数据建模是个通用的元件,包括输入、输出、参数、逻辑节点模型,在图形上进行特殊处理,根据输入个数,动态调整显示行数,固定32个输出和定值,采用围棋模式的按比特位进行整定,支持修改关联变量描述,其他页面可使用跳闸矩阵的输出变量。
3)IEC 61850建模
目前国际市场存在IEC 61850Ed1、Ed2两个版本建模的需求,需支持可选切换导出符合Ed1、Ed2标准的模型,为此构建了支持2个版本的SCL数据模型,通过传入形参数,动态形成对应版本的属性和子节点。针对单装置的IEC 61850建模,采用三类图形化符号实现。
(1)应用元件内嵌逻辑节点模型。例如零序过流保护元件采用类型为PDOC的逻辑节点关联,在符号库元件制作阶段,可导入2个版本的数据模板,将逻辑节点作为元件的成员模型,进行元件变量和逻辑节点的数据属性映射配置、数据集配置,元件实例化时逻辑节点也同步实例化,完成装置主体功能建模。
(2)提供通用逻辑节点图形化符号建模,例如MMXU、GGIO,进行用户级自定义模拟量、开关量符号建模,这类符号可以关联跨元件的变量。
(3)提供PTRC、TCTR、TVTR等过程层GOOSE、SV的数据发送接收符号,采用图形化方式进行发送压板控制、接收逻辑编程,通过分析上述符号的拓扑关系,进行过程层虚端子建模。
通过元件关联逻辑节点和图形化符号,实现IEC 61850的自动化、图形化建模,用户不用关心底层SCL语法,降低了配置建模复杂度,支持用户基于研发人员预配置的数据集,进行用户级数据集的创建,筛选装置侧上送给后台的信号。同时提供集中式浏览界面,汇总各个页面的逻辑节点模型,支持用户集中修改实例化、前缀等内容,驱动包升级时保留用户设置的属性。
1.5 可靠性设计
在提升软件可靠性方面,通过组件化的设计,提升系统的稳定性、可选升级能力;通过基于用户角色的权限管理(role-based access control, RBAC)进行用户操作控制;通过内置校验规则进行防误校验,实现用户操作的日志记录,用户驱动包下载前的配置合规检查。
1)基于组件的软件工程理念
软件系统比较庞大复杂,同时用户对软件的发布、升级的可靠性、运行过程的稳定性的要求越来越高,对软件的设计和开发带来挑战,需要有合适的软件工程方法来指导软件设计开发过程。基于组件软件工程是一种基于复用方法来定义、实现和组合松散耦合的独立组件,使之成为一个系统。组件是比对象更高层次的抽象,其接口的实现细节对其他组件是隐藏的。开发可靠易维护的软件设计原则如下:
组件具有标准化、独立性、可组合性、可部署性、文档化等特征。基于组件复用的软件开发过程包括:系统需求概览定义、识别候选组件、根据发现的组件修改需求、体系结构设计、识别候选组件、组合组件并构建系统。本文的PCS-Studio软件采用了组件化设计理念。
2)权限管理
按照IEEE 1686规范进行角色权限设计。预设置7种用户角色,分别为“查看”、“控制”、“定值”、“测试”、“配置”、“调试”和“管理”。工具默认提供一个管理员账户,默认具有所有权限。用户第一次配置时使用admin账户进行登录,登录以后需要立即修改默认的用户名和密码。
管理员可以进行权限配置:①设置哪些权限不需要校验密码;②设置免密码操作的超时时间;③之后再创建角色,给角色分配权限,并且创建用户,将用户添加到角色组中。配置完成后相关设置信息保存到权限文件中,再下载到装置最终生效。图5是PCS-Studio的虚拟液晶调试子进程和装置通信时的权限校验过程。
图5 虚拟液晶调试软件登录过程
3)防误校验
软件在防误操作设计方面,在编辑过程中进行即时校验,例如定值设置超范围提示、IO插件不允许逻辑编程的控制、部分元件实例个数的控制、部分元件仅能在指定插件的范围内使用、连接线两端输出-输入变量类型不匹配提示等多项细节的提示,减少用户配置过程中的误操作。
软件梳理总结了装置侧系统软件相关配置检查规则,在驱动包形成处理过程中,进行逐条检测,并按照错误/告警/提示的级别进行展示,仅当零错误的配置才形成可下载的驱动包。此外客户端软件与装置之间的调试下载通信进行完整性校验机制,采用了MD5对敏感数据保护进行保护,通信报文采用加密处理,避免非法会话与攻击。
2.1 可扩展脚本技术
在MOT选型、系统配置、可视化主接线等场景,配置选项的修改,需要即时生效。例如投入退出插件、显示隐藏页面、修改内部参数等。QT库的QObject类和派生类有property属性和c++slot接口,可以在python解释引擎中注册相关实体对象,在脚本中调用注册对象的API接口,界面上点击保存或失去焦点时自动执行相关脚本,实现数据联动修改功能。图6是可视化主接线中双CT母联符号内置的脚本示例。
图6 配置脚本
在图6中,Bay表示当前符号注册名,Graph表示主接线画面注册名,GetSymbolByName等是软件预先定义的接口函数,装置应用开发人员可调用软件提供的API函数,编写应用层逻辑,实现工具软件和不同应用逻辑之间解耦。
2.2 数据刷新同步技术
由于模块化元件支持该元件内变量菜单分组配置功能,在可视化页面组件和LCD菜单组件均可进行菜单分组配置,因此采用一次读取驱动包内容到共享内存、多处视图编辑浏览、即时刷新同步的策略实现数据一致性。
软件需实现离线HMI菜单配置和可视化页面配置的同步生效。将配置相关的数据源主体存储在可视化页面文件中,集中分组配置的菜单文件按顺序存储变量的ID。首次点击装置节点时,需一次读取菜单分组、定值、录波和可视化页面信息,确保需同步的数据在内存中。
以新建元件为例,从符号库中选择元件块释放到页面,则从变量库中获取默认实例名、默认的逻辑节点实例名,构建符号、变量的ID。读取符号内分组引用表的配置,汇总各个菜单引用表的变量ID,根据层次菜单英文名,查找离线HMI配置的数据(包括菜单、录波、事件、定值),将相关变量ID顺次添加到对应的离线分组内存数据中。
2.3 组件化集成技术
PCS-Studio软件采用组件加载和子进程调用的集成模式,设计了主进程-子进程-子组件的分层架构,分主框架、顶层界面组件层、数据模型层、公共服务驱动层,支持功能灵活扩展。
基于组件的开发设计要点包括:①实现对组件的管理,宿主程序可以搜索、加载、卸载组件和维护组件的状态。将这些功能放到组件配置树(组件容器)模块实现;②接口的设计和识别,接口是不同组件之间、宿主程序与组件之间的通信基础。宿主程序只有识别接口,才能加载组件;③资源的互斥和同步,多个组件的并行运行可能对申请资源产生竞争。
组件系统的功能由组件实现,设计了基础数据basedata.dll、基础界面basegui.dll、抽象组件basepackage.dll、消息总线msgbus.dll作为底层驱动公共服务模块,数据模块和应用能够组件继承自上述基础模块,组件之间通过消息总线交互数据,各应用层组件如图7所示,包括工程管理组件、图形化配置组件、全局配置组件等。
2.4 主界面框架设计技术
软件主框架的顶层窗体QWidget由区域1、区域2、区域3组成,3个区域使用QVBoxLayout竖式对齐。其中区域1为主标题窗体,显示软件名字和当前打开的工程名称。区域2包括菜单栏、工具栏。区域3为QMainWindow,由QSpliter和状态栏组成。
使用QSpliter作为中心窗体,依次竖式管理左侧工具栏、左侧停靠窗体、中间界面容器、右侧停靠窗体、右侧工具栏。中间界面容器分两个子区域,包括QWorkSpace工作空间、底部停靠窗体,使用横式排列。QWorkSpace用于管理各中子界面。整个软件的配色使用QSS的层次样式表设计,通过分层主界面框架,实现新型自定义软件界面风格。
图7 组件集成架构
图8 PCS-Studio主界面框架
PCS-Studio软件采用模块化设计思想,通过可视化的方式配置调试PCS-S系列装置。以变电站为单位管理PCS-S系列装置,能有效管理全站的装置配置方案。使用驱动包和MOT创建装置,基于标准模板,可快速构建配置。提供功能丰富的离线配置和在线调试。支持跨装置的GOOSE-SV数据传输配置功能。软件在功能完善性、界面友好性、操作易用性、运行稳定性等方面有了较大改进提升,促进了PCS-S系列装置的市场推广。