★北京广利核系统工程有限公司 赵潮涌,江国进
核电站I/O变量信息快速检查方法的研究
★北京广利核系统工程有限公司 赵潮涌,江国进
I/O变量信息是核电站DCS的重要组成之一,对核电站的安全稳定运行有着十分重要的影响,故I/O变量信息的检查一直都是核电站DCS测试的一项重要内容。本文在分析现行I/O变量信息检查方法的基础上,针对核电站数据库的构成特点并结合EXCEL的函数功能,提出了一种按照“数据类型”进行I/O变量信息快速检查的新方法。经实际测试表明,该方法能够大幅提高I/O变量信息的测试效率。该方法目前已经在多个项目中得到应用,有着广阔的应用前景。
核电站DCS; I/O变量信息;数据库;测试技术
I/O变量信息是核电站DCS的重要组成部分[1],其在核电站DCS实时数据库(以下简称数据库)中组态的正确与否将直接影响核电站DCS对外部数据的采集、相应数据在DCS内部的传输、逻辑计算以及DCS控制命令的输出等多项功能[2][3][4],所以对I/O变量信息组态正确性的检验一直都是核电站DCS测试的重要内容之一。测试方法通常为:依据设计部门提供的I/O变量清单检查数据库中相应I/O变量信息是否与其一致。测试方法在经历了最初采用人工手动逐一比较的原始方法后,现在已经发展为使用计算机进行软件程序设计,自动进行I/O变量信息数据的查找与比对。
但在实际测试时,受制于I/O变量信息数据量的庞大,并且在I/O变量清单和数据库中相应I/O变量信息数据存储方式的不同,导致目前使用的自动化数据查找与比对方法效率不高,耗时也相对较长。寻求一种更快速高效的I/O变量信息检查方法已经成为目前核电站DCS测试工作中一项迫切的技术需求。
本研究在吸取原测试方法经验的基础上,根据I/O变量清单和数据库的构成特点,并结合EXCEL的函数功能,提出了一种按照“数据类型”(也称为点类型)方式在数据库中快速查找大量I/O变量信息的新方法[6]。实际测试表明该方法可以大幅提高I/O变量信息的检查效率和测试质量。
在设计部门提供的I/O变量清单中,I/O变量信息作为LD/AD逻辑功能图的组成部分,是按照逻辑系统功能进行分类排列的,图1所示为国内某核电DCS项目中APA控制系统的部分I/O变量清单。
图1 I/O变量清单(局部)
而在工程组态的数据库中,I/O变量信息是按照“数据类型”进行分类排列的,两者的排列方式并不相同;加之I/O变量清单和数据库中的数据量都比较庞大,这给在数据库中进行相应I/O变量信息的查找与比对带来了困难。例如,以广利核公司负责的国内某核电站DCS项目为例,其常规岛控制系统采用HOLLIASMACSVI平台,数据库是由100多个EXCEL SHEET页所组成,约有5万多个变量点,平均每个变量点约有30多种“点项”信息,总数据量达到150万之多;而所有系统的I/O变量清单中约有1万左右个变量点,平均每个变量点约有10多种“点项”信息,数据总量约为10万左右。数据库中的数据量要远远大于I/O变量清单中的数据量,这是因为在数据库中不仅仅包含I/O变量信息,还包含大量工程实施所需要的其他变量信息[5]。所以在进行I/O变量信息检查时就需要在数据总量为150万的数据库中对数据量约为10万的I/O变量信息进行一致性校验,若没有一种快速高效的数据查找与比对方法,即便是应用计算机来自动进行,查找效率也将不会太高。
目前I/O变量信息自动化测试一般采用如图2所示的数据处理流程来进行I/O变量信息在数据库中的查找与比对。
从图2中可以看出目前采用的数据查找与比对方法为:依次读取I/O变量清单中的每一个数据点信息,然后在数据库的每个SHEET页中进行查找,若找到,则进行数据一致性比对;若未找到,则进行标记。又由于“点名”是I/O变量信息间相互区别的唯一标识,所以该方法首先进行“点名”信息的查找与比对,再进而根据“点名”对其他“点项”信息进行查找和比对。
这种数据查找与比对方法虽然相对于人工手动方法有了较大的进步,但是,由于其固有的缺陷性,在查询数据量比较大的情况下,很容易造成数据查找效率低下、耗时比较长的现象。其缺陷具体表现在以下三个方面:
(1)在数据查找过程中,待查找数据量的缩减速度慢,只是呈线性递减趋势,这是因为该方法每次只能查找一个数据造成的。若能实现同时查找多个数据,则待查找数据量的缩减速度将会显著提高。
图2 现行I/O 变量信息自动化检查方法所采用的数据处理流程图
(2)在数据查找过程中,该方法所使用的数据查找范围是固定不变的。从查找第一个数据的“点名”开始到查找最后一个数据的“点名”为止,查找范围都是整个数据库的全体,查找范围没有任何缩减。查找范围的不缩减,意味着对于每一个“点名”数据的查找,都必须在数据库的全体EXCEL SHEET页中进行。例如,在前面提到的某核电站DCS项目中,所有“点名”数据的查找,都需要在100多个EXCEL SHEET页中进行,这种查找数据的方法严重阻碍了数据查找的效率,而理想的数据查找方式应该是:随着数据查找的进行,数据查找范围呈快速递减趋势。
(3)在数据查找过程中,该方法把数据的查找和一致性比对工作放在一起进行,即对每一个需要检查的“点项”信息都是采取在数据库中先进行查找,找到之后紧接着进行一致性比较,并依据比较结果做出相应标记。这样,查找的“点项”信息有多少个,就需要进行多少次一致性比较。若能把数据的查找与一致性比对分开来进行,分别实现数据查找和数据比对的批量处理,无疑将会大幅提高数据查找与比对的效率。
在分析现行I/O变量信息检查方法缺陷的基础上,新方案的设计主要基于以下几方面的考虑:
(1)由于I/O变量清单文件和数据库文件都是以EXCEL表形式出现的,或者可以转化为EXCEL表形式,而EXCEL表自身就具有强大的数据处理能力,拥有众多的数据处理函数;所以在新方案中,充分利用了EXCEL表自身强大的数据处理功能。
(2)I/O变量信息在EXCEL表中的存储形式为:同一个变量点的各种“点项”信息按列排布在同一数据行之中,并以“点名”作为唯一的区别标识。所以在新方案中,是以“点名”为依据,在数据库中对I/O变量清单中的相应数据进行查找,进而进行一致性比对。“点名”是沟通I/O变量清单和数据库的唯一桥梁。
(3)核电站DCS数据库的构成特点是:在数据库中变量信息是根据该变量点所包含“点项”信息的不同而进行分类排布的,即按照数据类型(也称为“点类型”)进行分类排布。相同数据类型的变量点具有完全相同的“点项”信息,这些具有相同“点项”信息的变量点在数据库中被排布在同一个SHEET页之中,并且该SHEET页就以该种数据类型来命名。在新方案中,正是根据核电站DCS数据库的这种构成特点,采用了一种按照“数据类型”来进行大量I/O变量信息数据在数据库中进行快速查找的新方法[6],具体实施方案如图3所示。
图3 按照“数据类型”在数据库中进行I/O变量信息快速查找与比对的数据处理流程图
步骤1中的I/O变量清单和数据库样式如图4、图5所示。
图4 I/O变量清单(局部)
图5 数据库(局部)
需要查找和比对的“点项”信息依I/O变量清单的不同会稍有差异,但通常都包括:点名、点说明、量程下限、量程上限、低2限值、低1限值、高1限值、高2限值、低2限报警级、低1限报警级、高1限值报警级、高2限值报警级、输出格式等。
步骤2中生成的比对表样式如图6所示。
图6 比对表(局部)
步骤6,在数据查找比对表的“数据库中点名”列,且尚未找到“点名”数据的单元格内,通过输入或填充EXCEL公式进行“点名”一致性查找,输入或填充的公式为:
=INDEX(ARRAY,MATCH(LOOKUP_ VALUE,LOOKUP_ARRAY,[MATCH_TYPE]))
公式中的相关参数设置如下:
· ARRAY:数据库当前SHEET页中 “点名”所在“数据列”的范围;
· LOOKUP_VALUE:比对表中待查找的“点名”位置;
· LOOKUP_ARRAY:数据库当前sheet页中“点名”所在“数据列”的范围;
· MATCH_TYPE:为0(精确匹配);
该EXCEL公式的使用可以把数据库当前SHEET页中所包含的I/O变量信息表中的所有相同的“点名”数据快速的查找和提取出来,如图7所示。
图7 “点名”查找示意图
步骤7中排序的目的是为了区分开经过步骤6找到的“点名”数据和未找到“点名”的数据,使找到的“点名”排列在比对表的上部,而未找到的“点名”排列在比对表的下部。而接下来的步骤9就只在找到“点名”的区域进行;而在数据库下一个SHEET页中查找I/O变量信息数据则仅在未找到“点名”的区域进行。排序后的结果如图8所示。
图8 按照“点名”排序的示意图
步骤9,在数据查找比对表的相应其他“点项”所对应的“数据库中点项列”,通过EXCEL公式填充功能,输入如下公式:
=INDEX(ARRAY,MATCH(LOOKUP_ VALUE,LOOKUP_ARRAY,[MATCH_TYPE]))
公式中的相关参数设置如下:
· ARRAY:数据库当前SHEET页中待查找的“点项”所在“数据列”的范围;
· LOOKUP_VALUE:比对表中待查找的“点名”位置;
· LOOKUP_ARRAY:数据库当前SHEET页中 “点名”所在“数据列”的范围;
· MATCH_TYPE:为0(精确匹配);
注:此公式与步骤6中的公式区别仅在于参数ARRAY设置的不同。
通过该EXCEL公式可以把数据库当前SHEET页中在第6步刚刚找到“点名”的数据所对应的其他“点项”信息快速的查找和提取出来。如图9所示。
图9 其他“点项”信息的查找示意图
至此,完成I/O变量信息在数据库第一个SHEET页中的查找。接下来,对数据库全体SHEET页循环执行上述查找方法。
经步骤14后,在数据库中的I/O变量信息已经全部查找并提取到比对表中,效果如图10所示。
图10 I/O变量信息查找完毕示意图
步骤15,在本程序中是通过使用EXCEL的EXACT函数来实现相邻单元格内数据一致性的比对。输入或填充如下公式:
=EXACT(TEXT1,TEXT2)
· EXACT:用于检测两个字符串是否完全相同,如果两个参数完全相同,返回TRUE值;否则返回FALSE值,
· TEXT1引用的是I/O变量清单中“点项”信息对应的文本字符串;
· TEXT2引用的是相应的数据库中“点项”信息对应的文本字符串;
“点项”信息比对的效果如图11所示。
在本方法中是把所有数据库中相应的I/O变量信息查找并提取到比对表之中,使I/O变量清单中的和数据库中的I/O变量信息处于比对表中同一数据行相邻的数据列,然后再应用EXCEL的函数公式实现比对表中所有数据的批量快速比对。
图11 数据一致性比较示意图
在本方案中,除了采用按照“点类型”来实现数据的快速查找之外,针对数据库所包含的SHEET页数量众多,且被查找数据在数据库的SHEET页中非均匀分布的特点,设计了三个数据处理“环路”来进一步提高软件程序的数据查找效率:
· 环路一:步骤4→5→12→13→4
在数据库当前SHEET页的标题行中若不包含所需查找的数据“点项”信息的情况下,通过这一环路可快速把数据查找范围移向数据库下一个SHEET页。
· 环路二:步骤4→5→6→7→8→12→13→4
在数据库当前SHEET页的标题行中虽然含有需要查找的数据“点项”信息,但在实际未查找到相关数据“点名”的情况下,通过这一环路,可快速把数据查找范围移向数据库下一个SHEET页。
· 环路三:步骤4→5→6→7→8→9→10→11→12→13→4
只有针对那些确实包含有所需查找的数据“点项”的数据库SHEET页,才通过这一环路,并结合相应的EXCEL函数公式来查找并提取数据库SHEET页中的相关数据。
由于VBA计算机语言处理EXCEL表数据具有得天独厚的优势,所以在本研究中采用VBA计算机语言按照上面揭示的方法进行程序设计[7],软件操作界面如图12所示。
图12 核电站DCS I/O变量信息快速比对软件
本项研究以多个广利核公司负责的国内核电站DCS项目的I/O变量清单(数据量约为10000点左右)为例进行了测试,所采用的硬件设备:联想昭阳笔记本电脑E43G(配置为:Intel® Core(TM)2 CPU, P7450 @2.13GHz, 1.60GHz, 1.86GB的内存。采用Microsoft Windows XP Professional版本2002 Service Pack 2操作系统),经测试,完成的时间均在5分钟以内,而以原来的方法进行同样的测试则需要耗时2~3天左右。
I/O变量信息检查结果如图13所示。
图13 测试结果图(局部)
现将两种方法的技术特征进行对比,如表1所示。
表 1 两种方法的对比
针对现行核电站DCS中I/O变量信息自动化检查存在效率低下、耗时比较长的现象,本文在分析原方法的基础上,结合I/O变量清单和数据库的构成特点,提出了一种按照“数据类型”在数据库中快速查找I/O变量信息的新方法。经实际测试表明,该方法能够大幅提高核电站DCS中I/O变量信息的检查效率,该方法目前已经在北京广利核系统工程有限公司负责的多个核电站DCS项目中得到应用,显著提高了测试效率和测试质量,具有广泛的应用前景和应用价值。
[1] 霍建波, 古丹, 高连国. CPR1000核电站数字化仪控系统常规岛I/O通道自动测试工具的应用[J]. 自动化博览, 2013 ( 6 ) : 62 - 65.
[2] 高素萍. DCS控制系统中数据库系统的设计与实现[J]. 计算机工程与设计, 2005, 26 ( 10 ) : 2792 - 2794.
[3] 方军, 王晓宇, 孙国明, 等. CPR1000核电站NC-DCS平台数据库管理与创新[J]. 黑龙江电力, 2015, 37 ( 1 ) : 82 - 85.
[4] 张大发. 核电站信息数据库应用现状及其探讨[J]. 核动力工程, 1993 ( 4 ) : 301 - 305.
[5] 彭超. 大亚湾核电站KIT/KPS系统变量属性的计算与传递[R]. 西南三省一市自动化与仪器仪表学术年会, 2009.
[6] 赵潮涌, 胡劲松,高连国, 等. 一种核电站DCS系统设计输入文件与变量信息数据库一致性校验方法[P]. 中国专利: CN2014104282543, 2014 - 12 - 10.
[7] 张强, 刘飚. Excel 2007与VBA编程从入门到精通[M]. 北京 : 电子工业出版社, 2008.
Research on High Speed Method for Checking the Nuclear Power Plant I/O Variable Information
The I/O variable information is one of the important components of nuclear power plant DCS, which has a very important influence on the safe and stable operation of the nuclear power plant. Therefore, the I/O variable information inspection has always been an important part of the nuclear power plant DCS test. This paper analyzed the current method for checking the nuclear power plant DCS I/O variable information. On the basis of analyzing constitute characteristics of nuclear power plant database and EXCEL's functions, this study implemented a high speed method for checking the I/O data in the database according to the data type. Practical test shows that the method can greatly improve the test efficiency of the I/O variable information. This method has been applied in many projects, and has broad application prospects.
Nuclear power plant DCS; I/O variable information; Database; Testing technology
赵潮涌(1973-),男,天津宁河人,工程师,硕士研究生,现就职于北京广利核系统工程有限公司,主要从事核电站DCS系统研发工作。