邓小军,祝杰,张旭,姚璋,黄鹏,张子鹏
(1.中国核动力研究设计院,核反应堆系统设计技术重点实验室,成都610213;2.中核四〇四有限公司,嘉峪关735100)
在仪控系统工程设计中,DCS(digital control sys⁃tem)不同站点之间存在大量数据(2万~4万的网络变量)交互,设计站间网络变量需要提供准确的对端站点信息。各站点存在设计阶段不同步的情况,不同设计人员进行交互设计时依赖于接口信息传递是否及时准确,在进行站间接口设计时容易产生设计差错。DCS设计过程需要经历多次迭代设计,每一版设计的更迭均有可能造成接口变更,变更时需要对所有网络变量进行核对,采用人工核对既费时且易出错。提高设计过程的综合效率,一直是工程设计的重点研究方向之一。
在工程设计中使用自动化软件进行辅助设计及检查能够极大提升设计效率[1-5]。本文针对DCS设计过程中组态网络变量编制及修改过程中的繁琐流程,设计并实现了一种基于LabVIEW软件自动生成DCS组态网络变量的软件系统,成功应用于某核电厂1、2号机组安全级DCS设计项目中,提升了设计效率,降低了人因错误率。
以组态中的仪控功能图为例,其主要功能区分为软件逻辑部分和辅助接口信息部分,其分界为MPU(main process unit)边框,如图1所示。
图1仪控功能图绘图区域
图1为基于“龙鳞”DCS平台图形组态软件NASLAD绘制的仪控功能图。辅助接口信息为站点与外部的接口,由静态接口图符组成,包括硬接线类型和网络类型。PLM为优先级逻辑模块,通过PLM接入的信号同样包括了硬接线类型和网络类型。辅助接口信息不参与软件逻辑运算,而是帮助识图者理解软件逻辑及硬件的连接关系。虽然辅助接口信息的错误不会对下装的组态软件造成影响,但是其错误会给识图者造成误解,引发错误的维护操作,进而影响设备安全。
基于以上需求,考虑开发一套软件系统可以针对静态图符中的网络变量信息进行自动生成和核对,包括网络变量名称、对端功能图页号和对端站号等。
目前市面上应用的DCS组态软件多种多样,本系统以基于“龙鳞”DCS平台的组态软件NASLAD为例,其组态生成的文件可通XML(extensible markup lan⁃guage,可扩展标记语言)格式保存并导出。XML是一种基于文本的、用于标记电子文件使其具有结构性的语言,便于在不同应用程序之间中进行格式化数据的交换。本文采用LabVIEW作为开发平台,LabVIEW为NI(national instruments)公司推出的一款编程软件,其先进便捷的图形化开发方式目前应用广泛。Lab⁃VIEW中提供的XML解析器是使用DOM文档对象模型的Xerces 2.7解析器,本文通过相关的XML解析器VI和属性节点可以对XML文件进行各种处理。
自动生成系统包括4个子模块,即循环控制模块(A)、对端变量读取模块(B)、辅助功能模块(C)、网络变量生成模块(D)。4个模块在系统中的位置和接口关系如图2所示。
循环控制模块通过读取图页名称列表,控制每张图页检查模块的执行次数;对端变量读取模块读取对端网络变量表Excel,为本端网络变量的生成提供信息;辅助功能模块主要实现新建输出路径文件夹的功能;网络变量生成模块是核心部分,循环实现每张功能图页中网络变量的自动生成,循环次数为功能图总页数。同时,总替换数量变量记录总共生成的网络变量标签的个数。利用这个参数,可将软件作为检查工具使用。在总替换变量个数为0时,表示原图纸的网络变量标签是正确的。
循环控制模块(A)如图2所示。图纸列表文件以txt格式存储在“Station站号AlgPageList.txt”文件中。通过人机界面读入的信息,使用LabVIEW自带的“路径拆分”子VI、“路径构建”子VI、“读取文本文件”子VI进行读取,然后使用“电子表格字符串至数组转换”子VI将列表信息转换为数组。由此得到的图纸页数即为网络变量生成模块的循环次数,达到控制循环的目的。
网络变量表包含对端站点的变量列表信息,包含网络变量名称、说明、功能图页码等。循环控制模块如图2中的B部分所示。采用ActiveX技术读取Excel,结合实际工程项目背景,读取内容主要两种形式(网络变量和PLM变量)。具体实现如图3所示。
图2 控制站网络变量自动生成
循环控制模块如图2中的C部分所示。利用各种字符串和路径操作子VI,获得生成图页文件的存储路径,并判断该路径是否存在。如果存在,则不作操作;反之则新建文件夹。最终将文件夹路径传至网络变量生成模块。
网络变量生成模块(D)实现对每一张功能图的处理,其核心部分是CREATE子VI。由循环控制模块(A)得到功能图的总页数,即循环次数,实现对控制站每一页功能图页网络变量的自动生成。
每一张功能图对应一个XML文件,每处理一个XML文件将调用一次CREATE子VI。CREATE子VI内部如图4所示。
CREATE子VI分为读取元素节点模块(a)、读取完整图页信息模块(b)、替换元素模块(c)、生成新图页文件模块(d)。
2.5.1 读取元素节点模块
读取元素节点模块(a)利用XML解析器工具包,实现对XML文件中所有元素节点的读取,包括算法块、变量、静态图符等。其实现如图5所示。
利用Property Node(获得XML文件引用)、Get All Matched Nodes.vi(获取XML所有匹配节点)、In⁃voke Node(XML转字符串)等功能块及子VI,逐步解析XML文件内容。
图3读取网络变量表Excel
图4 CREATE子VI
图5读取所有的元素节点
其中,Static Item子VI内部如图6所示,该子VI的功能是获得该功能图页的所有元素节点后,筛选出静态附图元素节点,再按照指定格式的簇捆绑成静态图符集。
循环该页的所有元素节点,通过对比,获取所需的“/item/frameType”节点,并向后传输。
Static Item子VI的输出分为两个接口。其一包含了静态图符的元素字符串(数组“静态item”),后续用于替换节点的蓝本使用;其二包含该静态图符的元素的属性值(簇“静态图符集”),后续用于匹配替换的元素节点属性。
图6 Static Item函数
2.5.2 读取完整图页信息模块
读取完整图页信息模块(b)。利用“获取所有匹配节点”子VI,先读取所有的页节点元素,通过元素引用的“获取XML属性”读取XML字符串,形成字符串数组。由于每张功能图只有一个页节点(
2.5.3 替换元素模块
根据实际功能需求,替换元素模块(c)包括网络变量和PLM变量两种情况。两种情况的处理方法类似。
(1)网络变量。网络变量表中的功能图页码,表示该变量在对端站点所处的功能图页码。在原有
(2)PLM变量。PLM变量的情况与上述情况类似。PLM变量表中主要包含了功能图中PLM的反馈信号去向,根据PLM变量表中的功能图页码核对该功能图。若不一致,则进行替换,然后生成新的静态图符元素节点。具体实现如图9所示。
图8网络变量表的功能图页码核对
2.5.4 生成新图页文件模块
生成新图页文件模块(d)如图所示,将新生成的静态图符元素节点替换旧节点后,形成新的图页XML文件。利用“写入文本文件”子VI,保存新生成的XML文件,此文件由于需要XML解析,因此在文件起始处增加文本“”。
将更新后的静态图符内容与原图页XML文件框架结合,形成符合标准格式的图页XML文件,并在目标文件路径生成新图页XML。循环更新每一图页后,即完了对目标站点的网络变量自动生成。
图9 PLM变量表的功能图页码核对
图10 XML文件保存
本文基于LabVIEW软件设计了一套软件系统,通过读取txt、xml、Excel等格式的文件,并按特定规则处理比较,实现了DCS仪控功能图中网络变量的自动生成及检查。本系统成功应用于某核电厂1、2号机组安全级DCS项目的设计,提高了设计效率,降低了人因错误导致的设计错误量。软件开发过程中应用的技术可迁移至DCS设计过程中的其他工作,进一步提升设计效率。