CN107567618B - 用于检查代码等价性的方法 - Google Patents

用于检查代码等价性的方法 Download PDF

Info

Publication number
CN107567618B
CN107567618B CN201680024717.7A CN201680024717A CN107567618B CN 107567618 B CN107567618 B CN 107567618B CN 201680024717 A CN201680024717 A CN 201680024717A CN 107567618 B CN107567618 B CN 107567618B
Authority
CN
China
Prior art keywords
node
function block
source code
instance
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201680024717.7A
Other languages
English (en)
Other versions
CN107567618A (zh
Inventor
理查德·克里克尔
安德烈亚斯·昆泽尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Areva Nuclear Power
Original Assignee
Areva Nuclear Power
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Areva Nuclear Power filed Critical Areva Nuclear Power
Publication of CN107567618A publication Critical patent/CN107567618A/zh
Application granted granted Critical
Publication of CN107567618B publication Critical patent/CN107567618B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B9/00Safety arrangements
    • G05B9/02Safety arrangements electric
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G21NUCLEAR PHYSICS; NUCLEAR ENGINEERING
    • G21DNUCLEAR POWER PLANT
    • G21D3/00Control of nuclear power plant
    • G21D3/04Safety arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Automation & Control Theory (AREA)
  • Testing And Monitoring For Control Systems (AREA)
  • Stored Programmes (AREA)
  • Hardware Redundancy (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

一种用于检查控制系统的两个软件的功能等价性的方法,尤其是从具有多个互连功能块的功能块图(120,196)设计的、基于可编程逻辑控制器的控制系统,所述方法包括以下步骤:a)借助于遵循第一组顺序化规则的第一代码发生器来从第一多个功能块图(70,74,78)产生可编译源代码的第一实例;b)解析所述源代码的第一实例并识别全部功能块I/O端口和结点(节点)的组以及数据流的全部功能块I/O端口和结点(弧)之间的全部连接的组;c)使用来自步骤b)的信息来在上行方向上重建所述源代码的第一实例的第一数据流图(86);d)借助于遵循第一组顺序化规则的第一代码发生器或遵循第二组顺序化规则的第二代码发生器来从第二多个功能块图(90,94,98)产生可编译源代码的第二实例;e)解析所述源代码的第二实例并识别全部功能块I/O端口和结点(节点)的组以及数据流的全部功能块I/O端口和结点(弧)之间的全部连接的组;f)使用来自步骤e)的信息来在上行方向上重建所述源代码的第二实例的第二数据流图(106);g)将所述第一识别的数据流图(86)与所述第二识别的数据流图(106)彼此逐个节点地比较,由此检查在所述源代码的第二实例中上至节点的输入的传递闭包是否与在所述源代码的第一实例中相同。

Description

用于检查代码等价性的方法
技术领域
本发明涉及一种用于检查安全控制系统的两个软件的功能等价性的方法。本发明涉及具有从功能块图自动产生的源代码的控制系统。本发明还涉及永久计算机可读储存器件。本发明还涉及永久计算机可读储存介质。本发明还涉及计算机程序产品、系统和计算机。
背景技术
为了核电站或其他安全至上系统的安全操作和可靠操作,电力和控制系统是至关重要的,尤其是安全仪表&控制(I&C)系统。对于可能具有多个冗余分区的给定数字安全I&C系统和允许系统工程师在多个后续版本中使用FBD(功能块图)来指定软件的工程系统,需要为每个冗余分区和为每个版本确认软件,直到满足全部接收标准为止。
如果考虑到将存在相当大的相似性:一些FBD在不同的冗余分区中将基本上相同,只有一些FBD将从一个版本变到下一版本,则确认每个冗余分区和每个版本的开销相当大。对FBD的手动修改(在不同冗余分区上或者从一个版本到另一版本)具有以如下方式改变所产生的代码的趋势:该方式放大了这些版本之间的所产生的代码中的差异。这使得通常不可能准确找出所产生的代码中的差异。
迄今为止,全部FBD都必须经历验证和确认(V&V)行为,即使其功能未改变。在应用软件的开发或验证和确认期间,为了省略对功能上等价FBD的确认行为的冗余验证,可能会出现任务以验证两个FBD是功能上等价的。对此任务的需求可能是由识别不同冗余中实现相同功能的功能块图的需求或识别在应用的不同版本之间已经改变的功能块图的需求而引起的。
为了判断一个图是否实现与另一图相同的功能,这两个图的源代码的简单逐行区分可能引起很多误报。这是因为代码发生器在产生用于功能块图的源代码时具有若干自由度。在范围从对符号的不同标识符上至功能块调用的不同顺序化的源代码中可能存在差异。然而,即使存在这些差异,功能块图的功能(即,可观察行为)也可以是相同的。这使得所产生的计算机代码(例如,C代码)的“回译(back-translation)”到工程数据库之内的功能块图非常复杂。
因此本发明的目的是提供一种方法,该方法允许可靠地且精确地确定所产生的两个不同的FBD源代码的等价性。
发明内容
在第一方面中,本发明涉及一种用于检查控制系统(尤其是从具有多个互连功能块的功能块图设计的、基于可编程逻辑控制器的控制系统)的两个软件的功能等价性的方法,所述方法包括以下步骤:
a)借助于遵循第一组顺序化规则的第一代码发生器来从第一多个功能块图产生可编译源代码的第一实例;
b)解析源代码的第一实例并识别全部功能块I/O端口和结点(节点)的组以及数据流的全部功能块I/O端口和结点(弧)之间的全部连接的组;
c)使用来自步骤b)的信息来在上行方向上重建源代码的第一实例的第一数据流图;
d)借助于遵循第一组顺序化规则的第一代码发生器或遵循第二组顺序化规则的第二代码发生器来从第二多个功能块图产生可编译源代码的第二实例;
e)解析源代码的第二实例并识别全部功能块I/O端口和结点(节点)的组以及数据流的全部功能块I/O端口和结点(弧)之间的全部连接的组;
f)使用来自步骤e)的信息来在上行方向上重建源代码的第二实例的第二数据流图;
g)将所述第一识别的数据流图(86)与所述第二识别的数据流图(106)彼此逐个节点地比较,由此检查在所述源代码的第二实例中上至节点的输入的传递闭包是否与在所述源代码的第一实例中相同。
本发明基于以下考虑:从FBD产生的两个源代码的差异的简单比较是不够的,因为可能由于在代码产生中(例如在图中所使用的功能块的顺序化)的自由度而导致很多误报的可能性。因此将期望具有这样的程序:从这些差异中提取但维持基本的信息。
申请人已经认识到两个计算机代码的可靠且精确的比较能够通过从包含流入和流出数据的代码块产生数据图来实现。根据本发明的方法能够可靠地判断两个I&C规格的部分是否保证具有相同的行为,即使他们跨越多个FBD。这通过解析所产生的(C或任何其他正式指定的)代码并在上行方向为每个功能块(FB)传输数据流图来实现。如果全部上行FB是同一类型、具有相同的参数以及通过等价顶点与其他FB或输入信号链接,则他们执行相同的I&C功能。以此方式,可以证明两个比较的FBD组功能上等价。
根据本发明的方法包括将为定向多图的FBD的所产生的代码转变成能够唯一地模拟由FBD实现的功能的定向图。该图的表示按照这样的方式来完成:该方式通过包括全部相关功能特性和上至每个节点的输入的传递闭包来允许对图中的每个节点和每个顶点的唯一识别。这允许对不同FBD的比较以证明他们是否实现相同的功能。
该方法是在计算机上运行的计算机实现的方法,优选地允许用于与其交互,以及优选地连接到用户在其上显示代码比较的结果的显示设备。
在优选的实施例中,在上行方向上构建第一数据图包括识别全部环路,以及用占位符取代他们,使得在环路延迟节点处无限递归停止。
在另一优选的实施例中,在上行方向上构建第二数据图包括识别全部环路,以及用占位符取代他们,使得在环路延迟节点处无限递归停止。
优选地,借助于所述相应的第一代码发生器的第一多个功能块图和/或第二多个功能块图被产生为C计算机语言中的源代码。
优选地,第二组的顺序化规则与第一组的顺序化规则相同。
有利地,第一数据图和/或第二数据图包括以下类型的节点:
-功能块节点,表示功能块的主体;
-功能块端口节点,表示功能块的输入端口或输出端口;
-信号取反器节点,表示对连接在功能块的端口处的模拟信号或二进制信号或其他类型的信号的取反;以及
-信号节点,表示跨图信号或分配给I/O模块的信号。
优选地,功能块节点包括分别作为属性的功能块类型和功能相关设计参数值,以及其中,功能块端口节点包括分别作为属性的端口的方向(功能块的输入或输出)和识别相应的功能块的端口的数字。
优选地,上述的方法应用于例如核电站中的安全控制系统。
有利地,上述的方法应用于包括若干冗余分区的安全控制系统,每个分区运行在至少一个功能块图中指定的至少一个安全功能。
在第二方面中,本发明涉及一种永久计算机可读储存器件,其耦接到计算机且具有储存在其上的指令,当所述指令在所述计算机上运行时,所述指令使能和/或使计算机来执行用于检查控制系统的两个软件的功能等价性的操作,所述操作包括上述的方法。
在第三方面中,本发明涉及一种包含指令的永久计算机可读储存介质,当所述指令被加载至计算机的存储器中并在计算机上运行时,使能和/或使计算机来执行用于检查控制系统的两个软件的功能等价性的操作,所述操作包括上述的方法。
在又一方面中,本发明涉及一种计算机程序产品,其储存在诸如闪存盘、CD、DVD、硬盘的永久计算机可读介质中,且能够被直接加载至计算机的存储器中,包括在计算机上运行时使能和/或使所述计算机来执行上述的方法的软件代码段。
在又一方面中,本发明涉及一种系统,包括:
-至少一个计算器件;
-永久计算机可读储存器件,其耦接到所述计算器件且具有储存在其上的指令,当所述指令在所述计算机上运行时,使能和/或使所述计算机来执行用于检查控制系统的两个软件的功能等价性的操作,所述操作包括上述的方法。
在又一方面中,本发明涉及一种计算机,其包括具有储存在其上的软件代码段的存储器,当所述软件代码段在所述计算机上运行时,使能和/或使计算机来执行上述的方法。
本发明的优点具体如下。相比于处理图形规格,处理所产生的代码是有利的,因为在规定的环境中这更接近于终端产品,且避免了与从图形规格到代码(代码产生)的转化步骤的可靠性相关的问题。另一优点在于相比于通过FB来处理FB(先前的工具已经如此做),能够充分地重建数据流图,因为这捕获了全部输入数据,因此做出声明:“这个软件与那个软件做的一样”100%可靠。
附图说明
通过下面参考附图对其一些优选实施例做出的详细描述,本发明的其它特征和优点将变得更清楚,该优选实施例作为指示给出而非用于限制的目的。
具体地,附图意在提供对本发明的进一步理解,且被并入并构成此说明书的一部分。附图与说明书一起解释本发明的原理。在这些附图中:
图1示出了安全控制系统中的保护功能的示意图;
图2示出了功能块的图以及所产生的此图的源代码中的功能块的两个不同顺序化;
图3示出了使用所产生的FBD源代码的图表示来对所产生的FBD源代码的比较;
图4示出了包括功能块、连接线和信号取反的第一功能块图;
图5示出了模拟图4的功能块图的图的直观表示;
图6示出了包括功能模块和连接线的第二功能块图;以及
图7示出了模拟图6的功能块图的图的直观表示。
具体实施方式
在图1中示出了保护功能的典型结构2。该典型结构2包括在用于核电站的控制系统中的多个冗余中实现的一组I&C功能6、10、14、18。这些功能中的第一个功能6从一个或更多个传感器26接收信号,然后该信号在计算块30中处理。然后计算结果经由安全网络34传递到另一计算块38,在该计算块38中该计算结果被处理成用于控制一个或更多个执行器42的信号。其他功能10、14、18按照相同的方式来实现。
为了实现具有多个冗余的功能,用于功能6、10、14、18的对应的功能块图被实现多次。在典型保护系统中,特定的图必须被实现多达四次以实现这种冗余分区,即使由这些图实现的逻辑是相同的。对于这些功能块图,独立地产生代码,这导致实现等价功能的四个不同源代码。
在该方法的优选实施例中,功能块图通过代码发生器而从工程数据库转变成ANSIC码。为了在所产生的源代码中具有唯一的标识符,一种规格的两个功能块图至少在符号的命名上不同。例如,与功能块图相关的符号包括其名字之内的该图的内部数字ID。此外,所产生的代码中的标识符也能够在一个图的源代码的两个版本之间不同。原因可能是对图自身的改变,以及对互连图的信号的改变。这是由下面的事实引起的:所产生的代码中的标识符可以使用所采用的不能被设计的数据库的内部数据库密钥。一个示例是跨图信号的规格宽的唯一标识符。
下面的例子使用数字图ID(数字99)和数字信号ID(数字1111)示出了功能块图源代码的部分。
Figure GDA0002722507100000051
两个功能相同的图可以在其源代码方面不同的另一点是功能块调用的顺序化。相同的图可以导致功能块顺序化的不同排列,同时仍是功能等价的(即,具有相同的可观察行为)。例如,在图2中,示出了具有三个不同功能调用A、B和C的非常简单的图标50,其在通过代码发生器56转变成源代码时可以产生两个顺序化60、64(其二者正确地实现该图)。在顺序化60中,首先功能A被调用,然后功能B被调用,以及然后功能C被调用。在顺序化64中,首先功能B被调用,然后功能A被调用,以及然后功能C被调用。
下面的例子示出了包含取决于功能块的顺序化的ID的功能块图源代码的部分。
static const fb_123_t locFb_0={...};
static const fb_321_t locFb_1={...};
如果全部顺序化遵守一组给定顺序化规则,则全部顺序化被认为功能上等价。在本实施例中使用的代码发生器产生用于遵从这些规则的功能块图的源代码。在一个功能块图之内的功能块之间的数据交换被严格定义,且使用专门的对象来储存此数据。
功能块图的等价性检查可以用作验证从功能块图产生的代码对输入信号的任意顺序的功能块图上的电路方面完全如指定的那样表现的正式程序,或者用作验证从功能块图产生的一组代码与另一组代码表现完全一样的正式程序。
为了基于其实现的数据流图来比较功能块图,相应的代码被转变成这样的定向图。
在图3中,在转变步骤82中从功能块图产生的第一组三个源代码70、74、78被转变成第一数据流图86。在转变步骤102中从功能块图产生的第二组三个源代码90、94、98被转变成第二数据流图106。在比较步骤110中,比较数据流图86、106。如果他们相同,则断言源代码组70、74、78与源代码组90、94、98的等价性。
在比较两个定向图时,通过定义,如果在两个图中这两个组V(顶点)和A(节点)是相同的,则图是等价的。这样的比较需要每个节点的唯一识别。利用本发明的方法,节点可以通过将节点类型、节点的功能相关特性以及全部节点输入的传递闭包添加到每个节点的识别来唯一地识别。
描述功能块图的逻辑的图优选地包括以下节点类型。
·功能块节点,表示功能块的“主体”;
·功能块端口节点,表示功能块的输入端口或输出端口;
·信号取反器节点,表示对连接在功能块的端口处的模拟信号或二进制信号或其他类型的信号的取反;以及
·信号节点,表示跨图信号或分配给I/O模块的信号。
与被实现的功能相关的功能块图的其他属性被模拟成图的节点的特性。优先考虑下面的属性。
对于功能块节点:
·功能块的类型;
·功能上相关的设计参数值。
对于功能块端口节点:
·端口的方向(输入或输出),
·对相应的功能块的端口的识别。
设计的功能块、功能块图和/或I/O模块之间的数据流通过连接图的节点的定向边沿来模拟。
通过使用上述节点来创建数据流图,他们的特性、功能块图的互连、由功能块实现的功能可以被模拟,且作为结果的图可以通过比较包含的节点和边沿来与其他图进行比较。
图4示出了包含四个功能块124、128、132、136、三个连接线140、144、148以及在块132的上输入处的一个信号取反150的非常简单的功能块图120,块132是ADD块,将经由连接线140从块124传送来的取反信号与经由连接线144从块128传送来的信号相加。
在图5中示出模拟此功能块图120的图的直观表示。方块160、164、168、172仅标记功能块边界,而不模拟图之内的任何节点。方块176表示图4中示出的信号取反150。
图6示出了实现稍微不同逻辑的另一个简略的功能块图196。该简图包含四个功能块190、194、198、202、三个连接线206、210、214,但是在为ADD块的块198的输入处缺失信号取反。缺失的信号取反为功能块图120与196之间的唯一差异。
在图7中显示对应的图。方块220、224、228、232仅标记功能块边界,而不模拟图之内的任何节点。对包含在图之内的节点的识别必须包括以上命名特性以及节点的输入的传递闭包。下面的示例示出了图7中所示的节点的包括关于节点输入的层级信息的更正式表示。为了更容易读取,示例不包含节点标识符之内的任何其他功能特性。
-A-CONGEN()
-Out1(A-CONGEN())
-A-CONGEN()
-Out1(A-CONGEN())
-In2(Out1(A-CONGEN())))
-In3(Out1(A-CONGEN()))
-ADD(In2(Out1(A-CONGEN()))),In3(Out1(A-CONGEN())))
-Out1(ADD(In2(Out1(A-CONGEN()))),In3(Out1(A-CONGEN()))))
-In1(Out1(ADD(In2(Out1(A-CONGEN()))),In3(Out1(A-CONGEN())))))
-SINK(In1(Out1(ADD(In2(Out1(A-CONGEN()))),In3(Out1(ACONGEN()))))))
将这样的节点表示与全部相关功能特性的组合允许关于使用该节点实现的功能的对每个节点的唯一识别。
注意:观察以上的示例,可以看出两个功能等价节点可能具有绝对正确的相同标识符。对于此示例,这对于两个A-CONGEN功能块和其输出信号是真的。在它们使用不同参数化的情况下,识别将因这些功能参数而不同。
在比较图5和图7的两个图时,包含的节点的组通过缺失取反节点而不同。此外,包含的边沿的组也因缺失节点而不同。基于根据本发明的方法的等价性检查不优先考虑对功能块图的行为无影响的属性,诸如:
·在功能块图上画出功能块的位置和次序,
·如何画出连接线(布线,包括跨图页的连接器),或
·在图的输入和输出区域中跨图信号的位置。
那些是用于功能块图的视觉显示的纯图形属性,且对所产生的代码结构无影响。
使用此方法,功能块图的每个实例能够使用以上列出的功能相关属性来转变成基于唯一数据流的图。通过仅使用针对此转变的功能块图的功能相关属性,可以比较作为结果的图表示。如果两个功能块图的图表示是相同的,则这产生两个功能块图功能上等价的证据。
在比较使用信号互连的多个图时,优选地跨图边界来分析数据流图。这也意味着检测到在图的互连中的差异。当评价功能块图之间的互连时,检查比较的信号是否具有等价的源节点和目标节点。
所实施的方法优选地允许用户定义每组功能块图从哪里读取。这使得用户可以指定一个代码发生目录或两个分离的代码发生目录以用于比较。该方法优选地用于:
·来自应用的一个版本的两组图,例如,用于比较冗余之间的图;
·来自同一应用的两个版本的两组图,例如,用来检查仅引入计划的改变,甚至是
·来自两个不同应用的两组图,例如,用来检查正确地引入复制的图。
在开始比较时,仅当用户明确请求时才优选地处理被标记为可选的属性。默认忽略这些属性。

Claims (14)

1.一种用于检查控制系统的两个软件的功能等价性的方法,尤其是从具有多个互连功能块的功能块图(120,196)设计的、基于可编程逻辑控制器的控制系统,所述方法包括以下步骤:
a)借助于遵循第一组顺序化规则的第一代码发生器来从第一多个功能块图(70,74,78)产生可编译源代码的第一实例;
b)解析所述源代码的第一实例并识别全部功能块I/O端口和第一结点的组以及数据流的全部功能块I/O端口和第二结点之间的全部连接的组,其中,第一结点为节点,第二结点为弧;
c)使用来自步骤b)的信息来在上行方向上重建所述源代码的第一实例的第一数据流图(86);
d)借助于遵循第一组顺序化规则的第一代码发生器或遵循第二组顺序化规则的第二代码发生器来从第二多个功能块图(90,94,98)产生可编译源代码的第二实例;
e)解析所述源代码的第二实例并识别全部功能块I/O端口和第三结点的组以及数据流的全部功能块I/O端口和第四结点之间的全部连接的组,其中,第三结点为节点,第四结点为弧;
f)使用来自步骤e)的信息来在上行方向上重建所述源代码的第二实例的第二数据流图(106);
g)将所述第一数据流图(86)与所述第二数据流图(106)彼此逐个节点地比较,由此检查在所述源代码的第二实例中上至节点的输入的传递闭包是否与在所述源代码的第一实例中相同。
2.如权利要求1所述的方法,其中,所述第二组顺序化规则与所述第一组顺序化规则相同。
3.如权利要求1或2所述的方法,其中,在上行方向上构建所述第一数据流图(86)包括识别全部环路,以及用占位符取代他们,使得在环路的延迟节点处无限递归停止。
4.如权利要求1或2所述的方法,其中,在上行方向上构建所述第二数据流图(106)包括识别全部环路,以及用占位符取代他们,使得在环路的延迟节点处无限递归停止。
5.如权利要求1或2所述的方法,其中,所述两个软件的等价性通过检查对于每个节点在所述源代码的第二实例中上至该节点的输入的传递闭包是否与在所述源代码的第一示例中相同来确定。
6.如权利要求1或2所述的方法,其中,所述第一多个功能块图(70,74,78)借助于所述第一代码发生器生成为以C编程语言编写的源代码,和/或,所述第二多个功能块图(90,94,98)借助于所述第二代码发生器生成为以C编程语言编写的源代码。
7.如权利要求1或2所述的方法,其中,所述第一多个功能块图(70,74,78)和/或所述第二多个功能块图(90,94,98)包括组中的至少一种元件:延迟块、非延迟块、取反器,以及其中,所述第一组顺序化规则和/或所述第二组顺序化规则遵从定义的顺序化规则。
8.如权利要求1所述的方法,其中,所述第一数据流图(86)和/或第二数据流图(106)包括以下类型的节点:
功能块节点,表示功能块的主体;
功能块端口节点,表示功能块的输入端口或输出端口;
信号取反器节点,表示对连接在功能块的端口处的模拟信号或二进制信号或其他类型的信号的取反;以及
信号节点,表示跨图信号或分配给I/O模块的信号。
9.如权利要求8所述的方法,其中,功能块节点包括分别作为属性的功能块类型和功能相关设计参数值,以及其中,功能块端口节点包括分别作为属性的端口的方向和相应的功能块的端口的识别,其中,端口的所述方向包括功能块的输入或输出。
10.如权利要求1或2所述的方法,该方法应用于核电站中的安全控制系统。
11.如权利要求1或2所述的方法,该方法应用于包括若干冗余分区的安全控制系统,每个分区运行在至少一个功能块图中指定的至少一个安全功能。
12.一种永久计算机可读储存器件,其耦接到计算机且具有储存在其上的指令,当所述指令在所述计算机上运行时,所述指令使得所述计算机执行用于检查控制系统的两个软件的功能等价性的操作,所述操作包括根据权利要求1至11中任一项的方法。
13.一种永久计算机可读储存介质,其包含指令,当所述指令被加载至计算机的存储器中并在计算机上运行时,使得所述计算机执行用于检查控制系统的两个软件的功能等价性的操作,所述操作包括根据权利要求1至11中任一项的方法。
14.一种计算机,其包括具有储存在其上的软件代码段的存储器,当所述软件代码段在所述计算机上运行时,使得所述计算机执行根据权利要求1至11中任一项的方法。
CN201680024717.7A 2015-04-29 2016-04-28 用于检查代码等价性的方法 Active CN107567618B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP15165729.3A EP3089037B1 (en) 2015-04-29 2015-04-29 Method for checking equivalence of code
EP15165729.3 2015-04-29
PCT/EP2016/059479 WO2016174132A1 (en) 2015-04-29 2016-04-28 Method for checking equivalence of code

Publications (2)

Publication Number Publication Date
CN107567618A CN107567618A (zh) 2018-01-09
CN107567618B true CN107567618B (zh) 2021-01-26

Family

ID=53052694

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680024717.7A Active CN107567618B (zh) 2015-04-29 2016-04-28 用于检查代码等价性的方法

Country Status (6)

Country Link
US (1) US20180074934A1 (zh)
EP (1) EP3089037B1 (zh)
CN (1) CN107567618B (zh)
CA (1) CA2981129C (zh)
HU (1) HUE046575T2 (zh)
WO (1) WO2016174132A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114756464B (zh) * 2022-04-18 2024-04-26 中国电信股份有限公司 代码检查配置方法、装置及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8181134B2 (en) * 2009-10-16 2012-05-15 International Business Machines Corporation Techniques for performing conditional sequential equivalence checking of an integrated circuit logic design
CN102999325A (zh) * 2011-07-11 2013-03-27 霍尼韦尔国际公司 用于验证模型等价性的系统和方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5291190A (en) * 1991-03-28 1994-03-01 Combustion Engineering, Inc. Operator interface for plant component control system
US6047222A (en) * 1996-10-04 2000-04-04 Fisher Controls International, Inc. Process control network with redundant field devices and buses
CA2891143C (en) * 2003-06-25 2019-02-12 Craig W. Stanfill Computer-aided parallelizing of computation graphs
US8161469B1 (en) * 2005-12-13 2012-04-17 Altera Corporation Method and apparatus for comparing programmable logic device configurations
US8510727B2 (en) * 2008-03-18 2013-08-13 Oracle America, Inc. Link-time redundant code elimination using functional equivalence
US8015521B2 (en) * 2008-05-30 2011-09-06 Synopsys, Inc. Method and system for performing sequential equivalence checking on integrated circuit (IC) designs
US8464204B1 (en) * 2008-10-06 2013-06-11 The Mathworks, Inc. Verification of computer-executable code generated from a model
WO2010053603A1 (en) * 2008-11-07 2010-05-14 Intrinsity, Inc. Method for piecewise hierarchical sequential verification
US9779195B2 (en) * 2012-12-04 2017-10-03 The Mathworks, Inc. Model-based retiming with functional equivalence constraints

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8181134B2 (en) * 2009-10-16 2012-05-15 International Business Machines Corporation Techniques for performing conditional sequential equivalence checking of an integrated circuit logic design
CN102999325A (zh) * 2011-07-11 2013-03-27 霍尼韦尔国际公司 用于验证模型等价性的系统和方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"等价理论的偏差分析与改进研究";张乾等;《原子能科学技术》;20131220;第47卷;第683-688页 *

Also Published As

Publication number Publication date
EP3089037B1 (en) 2019-07-17
CA2981129A1 (en) 2016-11-03
EP3089037A1 (en) 2016-11-02
US20180074934A1 (en) 2018-03-15
HUE046575T2 (hu) 2020-03-30
CN107567618A (zh) 2018-01-09
CA2981129C (en) 2023-10-03
WO2016174132A1 (en) 2016-11-03

Similar Documents

Publication Publication Date Title
Tabuada et al. Towards robustness for cyber-physical systems
Cabral et al. A Petri net diagnoser for discrete event systems modeled by finite state automata
CN109634600B (zh) 一种基于安全扩展SysML和AADL模型的代码生成方法
US9829866B2 (en) Method and apparatus for automatically creating an executable safety function for a device
CN102508766A (zh) 一种航天嵌入式c语言软件运行时错误的静态分析方法
CN107567618B (zh) 用于检查代码等价性的方法
Antoy et al. Proving non-deterministic computations in Agda
Nair et al. A static code analysis tool for control system software
Li et al. Requirements-based automated test generation for safety critical software
Mani et al. Automatic test case generation for programmable logic controller using function block diagram
Yoo et al. Verification of PLC programs written in FBD with VIS
Missaoui et al. Verification and validation of the consistency between multi-domain system models
Mross et al. Transformation of GRAFCET into GAL for verification purposes based on a detailed meta-model
Zaeh et al. Model-driven development of PLC software for machine tools
Paige et al. FPTC: automated safety analysis for domain-specific languages
JP2008305079A (ja) 要求仕様自動検証方式
Hammarberg et al. Formal verification of fault tolerance in safety-critical reconfigurable modules
CN110119358A (zh) Fbd程序的测试方法及装置
Werner et al. Formal Methods-Based Optimization of Dataflow Models with Translation to Synchronous Models
US10394688B2 (en) Method for detecting computer module testability problems
Morbé et al. Fully symbolic TCTL model checking for incomplete timed systems
Wu et al. Formal specification and transformation method of system requirements from B Method to AADL Model
Holtmann et al. Play-out for hierarchical component architectures
Louzaoui et al. A Robustness Testing Approach for an Object Oriented Model.
de Assis Barbosa et al. On the automatic generation of timed automata models from isa 5.2 diagrams

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant