一种结构化文本程序的自动化验证装置的制作方法

文档序号:15236602发布日期:2018-08-24 05:42阅读:183来源:国知局

本发明涉及工业控制系统形式化验证技术领域,尤其涉及一种结构化文本程序的自动化验证装置。



背景技术:

随着科技技术的不断发展与进步,智能化越来越广泛的走进各个领域。近年来,德国提出了“工业4.0”计划,旨在提升制造业的智能化水平,建立具有适应性、资源效率及基因工程学的智慧工厂,其他国家也相继提出类似的工业发展计划,可见提高制造业自动化水平已成为未来工业发展的趋势之一。可想而知的,将会有越来越多的工业控制系统在未来应用于不同的行业中;其中,在一些关键性行业,如轨道交通、航空航天等,工业控制系统的安全性和可靠性极其重要,任何微小的错误都可能引发重大的经济损失,甚至是人员伤亡。因而对工业控制系统进行有效验证及其重要,而且意义重大。



技术实现要素:

为解决现有技术的不足,本发明提供一种结构化文本程序的自动化验证装置,包括:解析模块、静态分析模块、建模模块和验证模块;

所述解析模块,用于分别解析结构化文本程序及规范说明文本中的规范要求,得到对应的抽象语法树和线性时态逻辑公式;

所述静态分析模块,用于根据所述解析模块得到的抽象语法树生成所述结构化文本程序的图形化中间描述,并在所述图形化中间描述上进行静态分析得到所述结构化文本程序中的变量信息;

所述建模模块,用于根据所述静态分析模块得到的图形化中间描述和变量信息构建循环迁移系统模型;

所述验证模块,用于验证所述建模模块构建的循环迁移系统模型是否满足所述解析模块得到的线性时态逻辑公式。

可选地,所述解析模块包括:第一解析子模块和第二解析子模块;

所述第一解析子模块,用于解析结构化文本程序得到抽象语法树;

所述第二解换子模块,用于解析规范说明文本中的规范要求得到对应的程序所具备的性质,根据得到的程序所具备的性质生成对应的线性时态逻辑公式。

可选地,所述静态分析模块包括:图形化中间描述生成子模块和程序变量信息收集子模块;

所述图形化中间描述生成子模块,用于根据所述解析模块得到的抽象语法树生成所述结构化文本程序的图形化中间描述;

所述程序变量信息收集子模块,用于在所述图形化中间描述生成子模块生成的所述结构化文本程序的图形化中间描述上进行依赖分析得到所述结构化文本程序中输出变量的依赖集合,并对所述输出变量进行值集分析得到所述输出变量的值集。

可选地,所述建模模块,具体用于:根据所述图形化中间描述生成子模块生成的图形化中间描述、所述程序变量信息收集子模块得到的输出变量的依赖集合和输出变量的值集,构建循环迁移系统模型。

可选地,所述验证模块具体用于:遍历所述建模模块构建的循环迁移系统模型的状态空间,验证所述状态空间中的各状态是否满足所述解析模块得到的线性时态逻辑公式。

可选地,所述装置还包括:输出模块;

所述输出模块,用于当所述验证模块验证所述建模模块构建的循环迁移系统模型不满足所述解析模块得到的线性时态逻辑公式时,输出不满足原因。

本发明的优点在于:

本发明中的自动化验证装置,采用自动化验证技术对结构化文本程序进行验证,不仅提高了验证效率,降低了人力成本;而且有效的提高了结构化文本程序对应的工业控制系统的安全性和可靠性,降低了因程序错误而引发重大经济损失及人员伤亡的风险;同时,该装置在验证的过程中,通过对结构化文本程序在程序语句形式化语义的支持下进行等价转换,保证了转换的准确性,进而保证了验证的准确性;再者,在验证的过程中,通过遍历模型状态空间,保证了验证的完备性,避免了测试技术中覆盖率低的问题。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

附图1为本发明提供的一种结构化文本程序的自动化验证装置模块组成框图;

附图2为本发明提供的一种结构化文本程序的自动化验证装置的验证示意图;

附图3为本发明提供的一种结构化文本程序的自动化验证方法流程图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施方式。虽然附图中显示了本公开的示例性实施方式,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

实施例一

根据本发明的实施方式,提供一种结构化文本程序的自动化验证装置,如图1所示,包括:

解析模块101,用于分别解析结构化文本程序及规范说明文本中的规范要求,得到对应的抽象语法树和线性时态逻辑公式;

静态分析模块102,用于根据解析模块101得到的抽象语法树生成结构化文本程序的图形化中间描述,并在图形化中间描述上进行静态分析得到结构化文本程序中的变量信息;

建模模块103,用于根据静态分析模块102得到的图形化中间描述和变量信息构建循环迁移系统模型;

验证模块104,用于验证建模模块103构建的循环迁移系统模型是否满足解析模块101得到的线性时态逻辑公式。

优选地,在本实施例中,结构化文本程序为符合iec61131标准的工业控制程序,其中,iec61131是国际电工委员会(internationalelectrotechnicalcommission,iec)制定的可编程逻辑控制器标准,目前是工业控制系统中应用最广泛的国际标准。在其第三部分(iec61131-3)定义了5种编程语言,包括两种文本编程语言和三种图形化编程语言。其中,结构化文本(structuredtext,简称st)语言是应用最广泛的文本编程语言,且是一种高级语言,适于编写具有复杂计算的程序。

本发明中以对iec61131-3结构化文本程序进行功能性安全验证为例,对应地,规范说明文本具体为系统应具备的功能性安全性质规范说明文本。

根据本发明的实施方式,解析模块101具体包括:第一解析子模块和第二解析子模块,其中:

第一解析子模块,用于解析结构化文本程序得到抽象语法树;

第二解析子模块,用于解析规范说明文本中的规范要求得到对应的程序所具备的性质,根据得到的程序所具备的性质生成对应的线性时态逻辑公式。

需要指出地,第一解析子模块能够对多语言混合编写的文本控制程序进行解析。

根据本发明的实施方式,静态分析模块102包括:图形化中间描述生成子模块和程序变量信息收集子模块,其中:

图形化中间描述生成子模块,用于根据解析模块101得到的抽象语法树,生成结构化文本程序的图形化中间描述;

程序变量信息收集子模块,用于在图形化中间描述生成子模块生成的图形化中间描述上进行依赖分析得到结构化文本程序中输出变量的依赖集合,并对输出变量进行值集分析得到输出变量的值集。

其中,图形化中间描述包括控制流图(controlflowgraph,简称cfg)、调用图(callgraph,简称cg)、程序依赖图(programdependencygraph,pdg)等。

进一步地,程序变量信息收集子模块进行依赖分析及值集分析操作,以在不执行程序的情况下收集程序运行时信息,为构件模块103构建循环迁移系统模型提供数据基础。

根据本发明的实施方式,建模模块103具体用于:根据图形化中间描述生成子模块生成的图形化中间描述、程序变量信息收集子模块得到的输出变量的依赖集合和输出变量的值集,构建循环迁移系统模型。

通常地,工业控制系统程序多采用循环执行模式,并可分为三个主要阶段:第一阶段,获取输入,即控制程序轮询各传感器(通常与输入变量相关联),将传感器状态保存到输入变量中;第二阶段,执行程序,即根据输入变量计算输出变量的值;第三阶段,发布输出变量的值,将其传输到执行器。上述阶段不断重复,以实现对控制过程的闭环控制。本发明中,根据工业控制系统的该执行特点,通过构件模块103依据图形化中间描述、输出变量的依赖集合和输出变量的值集,获取循环迁移系统模型的状态空间,从而构建循环迁移系统模型并作为结构化文本程序的形式化模型,确保了模型贴合实际,为后续提高验证的准确性提供有力保障。

根据本发明的实施方式,验证模块104具体用于:遍历建模模块103构建的循环迁移系统模型的状态空间,验证状态空间中的各状态是否满足解析模块101得到的线性时态逻辑公式。

根据本发明的实施方式,该装置还包括:输出模块;

输出模块,用于当验证模块104验证建模模块103构建的循环迁移系统模型不满足解析模块101得到的线性时态逻辑公式时,输出不满足原因。

本发明中,通过输出模块输出不满足原因,可以使程序编写人员快速的定位问题并进行改进。

进一步地,本实施例中的自动化验证装置对结构化程序文本进行验证的过程示意如图2所示,通过自动化的验证,提高了验证效率,并具有较高的准确性。

实施例二

根据本发明的实施方式,提供一种结构化文本程序的自动验证方法,如图3所示,包括:

步骤201:分别解析结构化文本程序及规范说明文本中的规范要求,得到对应的抽象语法树和线性时态逻辑公式;

根据本发明的实施方式,步骤201具体包括:

解析结构化文本程序得到抽象语法树(abstractsyntaxtree,简称ast);

解析规范说明文本中的规范要求得到对应的程序所具备的性质,根据得到的程序所具备的性质生成对应的线性时态逻辑(lineartemporallogic,简称ltl)公式。

优选地,在本实施例中,结构化文本程序为符合iec61131标准的工业控制程序,同时其可以为多语言混合编写的控制程序;其中,iec61131是国际电工委员会(internationalelectrotechnicalcommission,iec)制定的可编程逻辑控制器标准,目前是工业控制系统中应用最广泛的国际标准。在其第三部分(iec61131-3)定义了5种编程语言,包括两种文本编程语言和三种图形化编程语言。其中,结构化文本(structuredtext,简称st)语言是应用最广泛的文本编程语言,且是一种高级语言,适于编写具有复杂计算的程序。

本发明中以对iec61131-3结构化文本程序进行功能性安全验证为例进行说明,对应地,规范说明文本具体为系统应具备的功能性安全性质规范说明文本。

步骤202:根据得到的抽象语法树生成结构化文本程序的图形化中间描述,并在图形化中间描述上进行静态分析得到结构化文本程序中的变量信息;

具体地,根据得到的抽象语法树生成结构化文本程序的图形化中间描述,在生成的图形化中间描述上进行依赖分析得到结构化文本程序中输出变量的依赖集合,并对输出变量进行值集分析(valuesetanalysis,简称vsa)得到输出变量的值集。

其中,图形化中间描述包括控制流图(controlflowgraph,简称cfg)、调用图(callgraph,简称cg)、程序依赖图(programdependencygraph,pdg)等。

进一步地,根据得到的图形化中间描述进行依赖分析得到结构化文本程序中输出变量的依赖集合,并对输出变量进行值集分析得到各程序点处输出变量的可能值,即输出变量的值集,以在不执行程序的情况下收集程序运行时信息,为后续构建循环迁移系统模型提供数据基础。

步骤203:根据生成的图形化中间描述和得到的变量信息构建循环迁移系统模型;

具体地,根据生成的图形化中间描述、得到的输出变量的依赖集合和输出变量的值集,构建循环迁移系统(circulartransfersystem,简称cts)模型。

通常地,工业控制系统程序多采用循环执行模式,并可分为三个主要阶段:第一阶段,获取输入,即控制程序轮询各传感器(通常与输入变量相关联),将传感器状态保存到输入变量中;第二阶段,执行程序,即根据输入变量计算输出变量的值;第三阶段,发布输出变量的值,将其传输到执行器。上述阶段不断重复,以实现对控制过程的闭环控制。本发明中,根据工业控制系统的该执行特点,依据得到的图形化中间描述、输出变量的依赖集合和输出变量的值集,获取循环迁移系统模型的状态空间,从而构建循环迁移系统模型并作为结构化文本程序的形式化模型,确保了模型贴合实际,并为后续提高验证的准确性提供有力保障。

步骤204:验证构建的循环迁移系统模型是否满足解析得到的线性时态逻辑公式。

具体地,遍历循环迁移系统模型的状态空间,验证状态空间中的各状态是否满足解析得到的线性时态逻辑公式。

进一步地,当验证构建的循环迁移系统模型不满足解析得到的线性时态逻辑公式时,还包括:输出不满足原因。

本发明中,通过输出不满足原因,可以使程序编写人员快速的定位问题并进行改进。

实施例三

根据本发明的实施方式,提供一种结构化文本程序的自动化验证设备,包括:

一个或多个处理器,存储一个或多个程序的存储装置;

当所述一个或多个程序被所述一个或多个处理器执行时,所述一个或多个处理器实现如前所述的结构化文本程序的自动验证方法的步骤。

实施例四

根据本发明的实施方式,提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被处理器执行时,实现如前所述的结构化文本程序的自动验证方法的步骤。

本发明中的自动化验证装置,采用自动化验证技术对结构化文本程序进行验证,不仅提高了验证效率,降低了人力成本,而且有效的提高了结构化文本程序对应的工业控制系统的安全性和可靠性,降低了因程序错误而引发重大经济损失及人员伤亡的风险;同时,该装置在验证的过程中,通过对结构化文本程序在程序语句形式化语义的支持下进行等价转换,保证了转换的准确性,进而保证了验证的准确性;再者,在验证的过程中,通过遍历模型状态空间,保证了验证的完备性,避免了测试技术中覆盖率低的问题。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1