一种可视化页面程序修改一致性校验方法转让专利

申请号 : CN201610179391.7

文献号 : CN105868043B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈宏君吕鹏飞阮思烨王业刘克金文继锋李海英王永平邹强黄志岭周强

申请人 : 南京南瑞继保电气有限公司南京南瑞继保工程技术有限公司

摘要 :

本发明公开一种可视化页面程序修改一致性校验方法:根据可视化页面内符号间输入输出数据流关系和数据类型信息,形成页面的中间信息文本。中间信息文本由该页面对外输入的输出变量名、变量类型,相关符号的输入、输出形参类型和参数设置值,输出变量的数据流调用表达式等关键内容拼接组成,基于中间信息文本计算形成CRC,作为页面的特征码,通过比较厂家内部修改页面、现场工程修改页面之间的特征码,给出页面程序修改是否一致的结果,该方法可有效解决由于位置偏差、中间变量命名不同、非相关连接子网络顺序变化等原因导致的页面文件不同,但实际功能一致时误判为不一致的问题。

权利要求 :

1.一种可视化页面程序修改一致性校验方法,其特征在于:根据可视化页面内编程符号间输入输出数据流关系和数据类型信息,形成输出变量的中间信息文本,所述中间信息文本包括数据流调用表达式、变量类型和初始值,基于中间信息文本计算形成CRC作为页面的特征码,通过比较修改页面之间的特征码,判断出页面程序修改是否一致;

所述中间信息文本的具体形成过程包括,

步骤1、解析可视化页面文件,读取编程符号和连接信息;

步骤2、根据连接信息,形成符号的输入-输出数据流依赖关系,形成有向无环网络;

步骤3、提取汇总页面对外的输入、输出符号,对输出变量按照名字进行降序排列;

步骤4、设定i=1,N=输出变量个数;

步骤5、以输出变量Outi为终止点,按照广度优先算法前向回溯前驱符号的各个分支,直至回溯到输入变量或输入为0的变量;

步骤6、汇总各分支回溯路径中的符号名、符号的输入-输出名,得到输出变量的调用计算表达式和辅助设置信息,拼接形成字符文本段Si;

步骤7、迭代计算i=i+1,若i<=N则重复步骤5-7;

步骤8、将排序后的各个输出变量的文本段汇总形成页面的中间信息文本S=S1+S2+…+SN。

2.如权利要求1所述的一种可视化页面程序修改一致性校验方法,其特征在于:步骤6中,所述辅助设置信息包括:路径中各符号的输入和输出变量类型、变量初始值、参数设置名和设置值。

3.如权利要求1所述的一种可视化页面程序修改一致性校验方法,其特征在于:所述可视化页面文件的编程符号包括输入块、输出块、功能函数块、连接线。

4.如权利要求1所述的一种可视化页面程序修改一致性校验方法,其特征在于:所述中间信息文本不包括连接线变量名,排除内部连接线命名不同时误报不一致的情况。

5.如权利要求1所述的一种可视化页面程序修改一致性校验方法,其特征在于:步骤5中,基于数据流依赖关系进行反向广度优先遍历,排除独立连接网络整体位置调换时,误报不一致的情况。

6.如权利要求1所述的一种可视化页面程序修改一致性校验方法,其特征在于:基于输出变量名进行降序排列,并记录该变量名从输入变量到输出变量整个分支路径的关键信息,进而检测出连接关系变化、调用顺序变化、功能函数变化、变量初始值变化、变量类型变化。

说明书 :

一种可视化页面程序修改一致性校验方法

技术领域

[0001] 本发明属于可视化编程领域,具体涉及一种可视化页面程序修改一致性校验方法。

背景技术

[0002] 已经投运的直流输入控制保护、柔性输电保护工程,存在新的需求时,需要修改部分可视化页面程序。首先是研发人员在厂家内修改相关程序,在厂家内做完相关试验并经过审核评审后,将修改过的页面、修改步骤文档发给现场。之后技术支持人员从现场程序服务器签出需要修改的页面,根据修改说明步骤,进行修改和编译,下载到装置。现场服务器是网络隔离的,不允许USB等端口操作,不允许直接用厂家修改的文件覆盖相关内容,这就存在研发修改的页面和现场修改的页面是否修改一致的问题,需要有校验的手段。
[0003] 常规的方法是比较可视化页面文件或产物文件。由于可视化绘制时,只要有一点位置偏差,页面存储的文件必然不同,故没有可行性。而比较产物的方法,是将可视化页面形成代码,将代码编译形成的HEX文件,比较HEX文件是否一致。然而,在绘制修改页面时,不能确保厂家内、现场新建、删除连接线的顺序前后一致,当中间连接线变量名是根据一定规则在绘制阶段自动命名时,连接线的命名由于绘制顺序不一致产生不同,故形成的连接变量名可能不同,导致形成的C代码产物或编译后的目标文件可能是不同的。而现场用户希望在编译前就能校验两者页面的一致性,并能排除中间变量命名、无关联关系的符号位置变化的无效差异,故通过比较产物的方式是行不通的。
[0004] 故需提供一种可视化页面程序修改一致性校验方法,尚未有文献阐述基于中间信息文本计算提取特征码进行比较的方法,本案由此产生。

发明内容

[0005] 本发明的目的是通过分析可视化页面程序内容,转换为中间信息文本,计算得到CRC特征码,进行页面的一致性比较,即能去除中间变量名、无关联关系符号位置差异的同时,又能有效比较出页面实质内容发生变化。为了达成上述目的,本发明提供一种可视化页面程序一致性校验方法,其特征在于根据可视化页面内符号间输入输出数据流关系和数据类型信息,形成输出变量的数据流调用表达式和变量类型和初始值等中间信息文本,基于中间信息文本计算形成CRC,作为页面的特征码,通过比较厂家内部修改页面、现场工程修改页面之间的特征码,给出页面程序修改是否一致的结果。
[0006] 所述中间信息文本的具体形成过程包括,
[0007] 1、解析可视化页面文件,读取编程符号和连接信息;
[0008] 2、根据连接信息,形成符号的输入-输出数据流依赖关系,形成有向无环网络;
[0009] 3、提取汇总页面对外的输入、输出符号,对输出变量按照名字进行降序排列;
[0010] 4、设定i=1,N=输出变量个数;
[0011] 5、以输出变量Outi为终止点,按照广度优先算法前向回溯前驱符号的各个分支,直至回溯到输入变量或输入为0的变量;
[0012] 6、汇总各分支回溯路径中的符号名、符号的输入-输出名,得到输出变量的调用计算表达式和辅助设置信息,拼接形成字符文本段Si;
[0013] 7、迭代计算i=i+1,若i<=N则重复步骤5-7;
[0014] 8、将排序后的各个输出变量的文本段汇总形成页面的中间信息文本S=S1+S2+…+SN。
[0015] 作为本发明的进一步优选方案,步骤6中,所述辅助设置信息包括:路径中各符号的输入和输出变量类型、变量初始值、参数设置名和设置值。
[0016] 作为本发明的进一步优选方案,所述可视化页面文件的编程符号包括输入块、输出块、功能函数块、连接线。
[0017] 作为本发明的进一步优选方案,所述中间信息文本不包括连接线变量名,排除内部连接线命名不同时误报不一致的情况。
[0018] 作为本发明的进一步优选方案,步骤5中,基于数据流依赖关系进行反向广度优先遍历,排除独立连接网络整体位置调换时,误报不一致的情况。
[0019] 作为本发明的进一步优选方案,基于输出变量名进行降序排列,并记录该变量名从输入变量到输出变量整个分支路径的关键信息,进而检测出连接关系变化、调用顺序变化、功能函数变化、变量初始值变化、变量类型变化等。
[0020] 采用上述方案后,本发明具有如下有益效果:针对用户网络安全管理的规定和章程,页面程序经过研发人员、现场技术支持人员的2次修改,能用一种自动化的方法得出修改是否一致可信的结论,避免了基于页面文件、产物C代码、二进制目标文件进行比较时,误报不一致的问题,可有效过滤页面中间变量名变化、非关联子网络位置变化的差异,并能有效判断出输出变量调用链的函数、变量类型、初始值不同的差异,从而提高了可视化工程的防误校验能力,提高了工程实施的可靠性,已经在多个直流输入控制保护、柔性输电保护工程进行了批量应用,通过了实践检验,确保了可视化页面程序升级的有效性、一致性。

附图说明

[0021] 图1 是可视化页面程序修改一致性校验方法;
[0022] 图2 是输出变量中间信息文本形成示意图;
[0023] 图3 独立子网络位置变化一致性等价示例图。

具体实施方式

[0024] 以下将结合附图,对本发明的技术方案进行详细说明。可视化页面程序修改一致性校验方法和步骤如图1所示:计算厂家修改的可视化页面A的中间信息文本和CRC1;计算现场技术支持人员修改的页面A’和32为CRC2,通过比较CRC1和CRC2是否一致,得出页面修改一致性的结论。其中形成页面的中间信息文本是关键步骤,具体实施如下:
[0025] 1)读取可视化页面文件,包括输入符号、输出符号、功能函数符号、连接线等符号数据;
[0026] 2)通过连接线记录的连接起始端符号ID、连接终止符号ID、连接起始变量名、连接终止变量名,形成基于图论结构的输入输出的网状关系,每条连接线记录起始符号、终止符号、起始连接点、终止连接点的数据指针,每个符号的连接点记录与之相连接的连接线指针;
[0027] 3)根据连接线连接关系和指针双向记录结构,形成符号的输入-输出数据流依赖关系,根据数据流关系,形成有向无环的AOV等价网络;即页面可视为M个输入、N个输出的黑盒子,内部的功能函数网状连接形成。则通过汇总输出变量的计算表达式和辅助信息,可得到等价中间信息文本;
[0028] 4)提取汇总页面对外的输入、输出符号,对输出变量按照名字进行降序排列(依次比较每位ASCII字符的数值,相同条件下短名字优先,例如ABC>ABCD);
[0029] 5)设置循环变量i=1,并置N=输出变量个数;
[0030] 6)依次取出排序后的输出变量,以输出变量Outi为终止点,前向回溯前驱符号的各个分支路径,按照广度优先算法完成前向回溯,直至回溯到输入变量或输入为0的变量;
[0031] 7)汇总各分支回溯路径中的符号名、符号的输入-输出名,逐级替换,得到输出变量的调用计算表达式和辅助设置信息。辅助设置信息包括分支路径中各符号的输入和输出变量类型、变量初始值、参数设置名和设置值),拼接形成字符文本段Si;
[0032] 8)i=i+1;
[0033] 9)i<=N则重复步骤6)到步骤8 ;
[0034] 10) 将排序后的各个输出变量的文本段汇总形成页面的中间信息文本S=S1+S2+…+SN。
[0035] 如图2所示,输出变量Out1前驱是OR2,  则遍历L1时,可得到式1:Out1=XOR2.b1XOR2.b1=XOR2( XOR2.a1, XOR2.a2)。
[0036] 之后遍历XOR2的2个输入连接线L2,L3,可得到:式2:XOR2.a1=AND3.b1[0037] XOR2.a2=OR3.b1。代入式1可得到式3:Out1= XOR2(AND3.b1, OR3.b1)[0038] 再遍历 AND3的输入连接线L4、L5、L6,OR3的输入连接线L7、L8、L9,可得:
[0039] 式4:AND3.b1=AND3(AND3.b1, AND3.b2, AND3.b3)
[0040] AND3.b1=AND3(In1, In2, In3)
[0041] 式5: OR3.b1 =OR3(OR3.b1, OR3.b2, OR3.b3)
[0042] OR3.b1=OR3(In4, In5, In6)
[0043] 代入到式3,可得到Out1的计算表达式为:
[0044] Out1= XOR2( AND3(In1,In2,In3),OR3(In4, In5,In6) );
[0045] 假设各个符号的变量类型为char、初始值为0,则辅助信息为:
[0046] In1.type=char,In2.type=char,In3.type=char Out1.type=char[0047] AND3.a1.type=char,…XOR2.b1.type=char;
[0048] AND3.b1.init=0; OR3.b1.init=0; XOR3.init=0;
[0049] 最终输出变量的中间信息文本不包括连接线变量名,可排除内部连接线命名不同时误报不一致的情况。中间辅助信息记录该变量名从输入变量到输出变量整个分支路径的关键信息,能有效检测出连接关系变化、调用顺序变化、功能函数变化、变量初始值变化、变量类型变化等差异。
[0050] 基于数据流依赖关系进行反向广度优先遍历,可排除若干独立连接网络(无数据流交互)整体位置调换时,误报不一致的情况,如图3所示,Out1、Out2是没有关联关系的独立子网络,则子网络调整绘制顺序时,基于变量名降序进行文本段拼接后中间信息文本一致,故视为等价、一致的页面。
[0051] 逐个遍历汇总各个输出变量的中间信息,拼接为页面的中间信息文本。调用标准的CRC算法,将中间信息文本段作为输入,计算得到CRC值作为页面的特征码;比较可视化页面的特征码,导入两个页面(厂家修改的可视化页面A、现场技术支持人员修改的页面A’),比较特征码,特征码一致则给出页面程序修改一致,否则给出不一致结论。
[0052] 以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,[0053] 凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。