CN1328658C - 用于安全控制的编译器的再验证方法 - Google Patents

用于安全控制的编译器的再验证方法 Download PDF

Info

Publication number
CN1328658C
CN1328658C CNB038152347A CN03815234A CN1328658C CN 1328658 C CN1328658 C CN 1328658C CN B038152347 A CNB038152347 A CN B038152347A CN 03815234 A CN03815234 A CN 03815234A CN 1328658 C CN1328658 C CN 1328658C
Authority
CN
China
Prior art keywords
compiler
test procedure
compiling
software
equipment
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.)
Expired - Lifetime
Application number
CNB038152347A
Other languages
English (en)
Other versions
CN1666178A (zh
Inventor
A·奥佩姆
M·贡马克
K·汉森
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.)
ABB Schweiz AG
Original Assignee
ABB AB
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 ABB AB filed Critical ABB AB
Publication of CN1666178A publication Critical patent/CN1666178A/zh
Application granted granted Critical
Publication of CN1328658C publication Critical patent/CN1328658C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及在用于工业控制系统的控制语言编译器每次被使用之后该编译器的再验证。特别地,本发明揭示了一种用于对编译用户编写的程序的编译器进行再验证的方法,该用户编写的程序用于现实世界实体的安全控制。需经编译器编译的用户编写的程序用来在装置中执行,该装置包括向工业控制系统中添加安全部件的功能。本发明保证了不会由于编译器代码中的差错而将错误引入该装置。这种差错可能例如在编译器代码的分发期间产生,或者由计算机的存储器中的故障或者存储编译器代码的磁盘上的故障引起。因此,本发明保证了这样的错误不会被引入到现实世界实体的控制中,否则这样的错误可能会导致伤害人的事故或是造成对环境的破坏。

Description

用于安全控制的编译器的再验证方法
技术领域
本发明涉及用于工业控制系统的控制语言编译器的再验证。特别地,本发明揭示一种在编译器被用于编译用户编写的程序之后对编译器进行再验证的方法,该程序用于现实世界实体的安全控制。需经编译器编译的用户编写的程序用来在设备中执行,该设备包括向工业控制系统添加安全部件的功能。本发明保证了不会由于编译器代码中的差错而将错误引入该设备中。这种差错例如可能在编译器代码的分发期间产生。差错也可能由于在编译器运行时计算机的存储器中的故障或者存储编译器代码的磁盘上的故障而产生。本发明保证了这样的错误不会被引入现实世界实体的控制中,否则可能会导致伤害人的事故或是造成对环境的破坏。
背景技术
工业控制系统例如应用在制造和加工工业、例如化学工厂、石油生产工厂、精炼厂、纸浆和造纸厂、钢厂以及自动化工厂中。工业控制系统也广泛地应用在电力工业中。这样的工业控制系统可能需要包括或联合添加安全部件的设备。要求额外的、标准工业控制系统提供的安全部件的处理的例子有在近海生产平台上的处理、在核电站中和化学工厂的危险区域的处理。安全部件可以与安全关闭、火灾和/或同样用于火灾和瓦斯探测的报警系统结合使用。
一个包括安全临界功能的工业控制系统的例子在DE19857683“Safetycritical function monitoring of control systems for process control applications hasseparate unit”中描述。该系统具有一个通过若干分散的数据接收器耦合至不同处理器的主控制器总线。
通用计算机系统的使用提出下面的问题,就是用户编写的程序在执行的过程中并不会受编译器代码中的错误影响。
由Alfred V.Aho,Ravi Sethi和Jeffrey D.Ullman编写的并于1988年由Addison-Wesley出版社出版的“Compilers:Principles,techniques and tools”包括了对通用编译器的检验的讨论。第731页第11.4段“测试和维护”涉及在使用编译器之前依据标准软件测试来检验编译器。书中建议的一种途径是“回归”测试。保持一组测试程序,一旦编译器被修改,就同时用新的和旧的编译器版本来编译测试程序。任何由这两个编译器产生的目标程序中的差异都被报告给编译器编写者。该书进一步指出选择要包含在测试组中的程序是一个困难的问题。
编译技术领域中的现有技术包括用于编译器优化的方法和系统。US5577253“Analyzing inductive expressions in a multilanguage optimizingcompiler”描述了一种在计算机系统中执行的方法,在该计算机系统中通过普通编译器后端使用归纳变量来执行多个最优化。这个正申请专利的优化技术没有指出后来对编译器的校正。
US6071316“Automated validation and verification of computer software”揭示了一种用于检验已经被编译的源代码执行代码中所有不同路径的方法。这没有涉及到编译器的校正。
在现实世界实体的安全控制领域中遗留的问题是保证用户编写的程序的最高可能的可靠性。
另一个涉及工业控制系统的问题是系统软件分发(例如通过互联网)的复杂性已经导致在编译器软件中发生差错的危险性增加。
发明人已经发现需要保证用于具有对现实世界实体进行安全控制目的的软件的编译器在代码被分发、作为二进制代码被存储或被装载到RAM中时不改变其产生代码的方式。
发明内容
本发明的一个目的是提供一种在编译器被使用之后对其进行再验证的方法,该编译器用来对由用户编写的、用于在工业控制系统中执行安全控制的程序进行编译。
这个以及其它的目的通过本发明依据权利要求1所描述的方法实现。有益的实施方案在从属权利要求中描述。
根据本发明,以控制语言定义的测试程序被编译。通过检验测试程序正确地执行来对编译器进行再验证。生成用于随后的比较用途的第一软件装置。在编译了用户编写的程序之后,编译测试程序。基于测试程序的编译来生成第二软件装置。通过比较第一和第二软件装置,针对在第一和第二次编译之间引入的差错来对编译器进行再验证。如果再验证表明在编译器中没有差错,用户编写的程序就能够在具有用于控制现实世界实体的安全部件的设备中执行。
需经编译器编译的用户编写的程序用来在一个设备中执行,该设备包括向工业控制系统添加安全部件的功能。如上面所述,依据本发明的方法包括示出如何基于一个被编译的测试程序产生第一和第二软件装置的步骤。典型地,在建立一种控制语言的编译器的新版本或修订版时,生成第一软件装置。第一软件装置典型地同现有的编译器代码的版本或修订版相关。该方法包括在用户编写的程序被编译之后生成第二软件装置的步骤。该方法包括通过将第一软件装置和第二软件装置相比较来利用第一和第二软件装置对编译器进行再验证的步骤。第一软件装置和第二软件装置通过使用相同的原理从编译过的测试程序中导出。
本发明有利于保证不会因为编译器代码或者其执行环境中的差错而将错误引入工业控制系统中。这种差错例如可能在编译器代码的分发期间产生,或者差错可能是由计算机存储器中的故障或存储编译器代码的磁盘中故障引起的。编译器代码中的差错也可能由于计算机寄存器、堆栈存储器或是CPU中的错误而出现。
本发明尤其有用的一个特点是它有助于保证这样的错误不会被引入用于现实世界实体的安全控制的设备中,否则这样的错误可能会导致伤害人的事故或造成对环境的破坏。
典型地,用户编写的程序用控制语言来编写,该控制语言例如基于IEC61131-3。
本发明的一个目的是检测编译器代码或是其执行环境中的错误。本发明在编译的任何时候检测编译器代码中的差错,这保证了由所述编译器编译的、安全临界的用户编写的程序的高可靠性。
本发明的进一步的目的是提供一种计算机程序产品,其包括可以被装载到通用计算机或工作站和/或设备的内存中的软件代码装置,其中该计算机程序产品具有执行上述方法中的至少一个步骤的软件装置。
本发明的又一个目的是提供一种计算机程序,其包括计算机代码装置和/或软件代码部分,用于使计算机或处理器执行上述方法中的任意一个步骤。
附图说明
本发明将结合所附的示意图做进一步的详细阐述。
图1示出了一个包括一个装载有编译器代码的计算机和一个具有安全控制部件的设备的工业控制系统的总体示意图。
图2示出了基于本发明的方法的流程示意图。
图3示出了本发明的一个实施方案的简图,其中在用户编写的程序被编译之后,执行测试程序的编译。编译后的测试程序与该测试程序的前一次编译相比较。
图4示出了本发明的另一实施方案的简图,其中在用户编写的程序被编译之后,执行测试程序的编译。图中示出第二软件装置被下载到一个执行安全控制的设备,在该设备中第二软件装置与第一软件装置相比较。
具体实施方式
图1示出了具有包括安全部件6b的设备6a的工业控制系统2的示意图。用于现实世界实体10的安全控制的用户编写的程序典型地在工作站5a或通用计算机中进行编译。这种工作站5a或通用计算机通过通信装置3连接到设备6a上。通信装置3基于例如现场总线技术或例如TCP/IP等通信标准。工业控制系统2包括许多不同的设备,例如控制器6c,PLC 7,操作员站或处理入口4以及处理输入输出(I/O)8。上述的设备通常可在工业控制系统中以任何数目并且与其他设备联合存在。包括安全部件6b的设备6a可以是例如PLC或控制器的独立设备。安全部件是这样的,以致设备和/或工业控制系统遵循例如在IEC 61508标准中定义的安全完整性水平(SIL)等安全标准。设备也可以包括具有添加到设备中的安全部件的一个或几个软件模块。设备6a经由例如现场总线或处理输入输出(I/O)等通信装置连接到必须进行安全控制的现实世界实体10上。现实世界实体的例子是传动装置、仪表、马达、阀门、泵、风扇等等。一个现实世界实体也可以是一组实体或实体的系统。
在处理控制系统2中用于安全应用的设备6a典型地执行用户编写的应用程序,该应用程序是使用源自本领域技术人员熟悉的IEC 61131-3标准的高级语言来描述的。因此,编译器22典型地是一个针对源自IEC 61131-3标准的高级语言的编译器。
以下,将编译器的发行版、版本或修订版都称作编译器。
用于安全控制的编译器的验证典型地在软件工厂中完成。本文中的软件工厂是指一个场所,在那里可利用足够的和验证合格的测试设备以及胜任的人员来执行对编译器的测试和验证。对编译器的验证和相关的测试应当充分。测试应当例如保证编译器22和安全部件符合安全认证的要求。同时,也需要满足其他要求,例如,需要有足够的性能以便在工业控制系统2中执行其他应用程序或程序。对编译器的验证包括验证应用程序是否在用于对现实世界实体进行安全控制的设备中正确地执行。
除了对编译器进行上述验证之外,本发明还公开了建立一个测试程序20,该测试程序20的目的是使用它作为在软件工厂之外编译器22的再验证的输入。测试程序20应当包括用于安全控制应用的控制语言的所有逻辑。在典型的测试程序中使用的定义典型地来自于IEC 61131-3标准。一个优选的测试程序是通过使用所有的语言、所有的函数和所有的语言结构建立的。这是为了保证编译器22在该测试程序的编译期间分析和检查所有的逻辑表达式,该逻辑表达式以后将在用户编写的程序21中使用。
在本发明的一个实施方案中,来自软件工厂的编译器的一个版本或修订版与测试程序相关。该测试程序在软件工厂中在对编译器进行验证时至少部分被使用。用于后来的比较目的的第一软件装置也与编译器的该版本或修订版相关。更有利的是将测试程序连同编译器的发行版、版本和修订版一起分发。
图2表示基于本发明的方法的流程示意图。测试程序20用控制语言定义。该方法包括通过编译器编译11a测试程序的步骤。该方法还进一步包括通过检验测试程序正确地执行来对编译器进行验证的步骤11b。
图2也表示出该方法包括产生第一软件装置12的步骤。第一软件装置依赖于测试程序20的可执行代码。第一软件装置可以有多种实施方案。在一种实施方案中,第一软件装置23包括编译后的测试程序的可执行源代码。在另一种实施方案中,生成第一软件装置12包括校验和和/或循环冗余校验码的计算。在这种实施方案中,校验和和/或循环冗余校验码是利用作为一个输入的编译后的测试程序计算的。下面将循环冗余校验码称为CRC。CRC可以用几种方法计算或得出。例如,CRC的长度可以是16位或32位。16位多项式CRC-CCITT(X16+X12+X5+1)或者16位多项式(X16+X15+X2+1)是适合用在本发明的实施方案中的多项式的例子。一个可被用于计算CRC的32位多项式的例子是(X32+X26+X23+C22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X+1)。上述32位多项式是在以太网标准IEEE 802.3中定义的,并且是在本发明的实施方案中使用的优选的多项式。在一种替代的实施方案中,可以使用校验和,例如奇偶校验。
图2表示出基于本发明的方法包括第二次编译13测试程序20的步骤。编译13测试程序20在编译了用户编写的程序21之后完成。在生成12第一软件装置23、35和第二次编译13测试程序20之间的时间滞后典型地是几天或几周。时间滞后可能长达几年。在生成12第一软件装置和第二次编译13测试程序20之间的时间里,编译器代码中可能已出现差错。这种差错可能例如在编译器代码的分发期间产生,或者差错可能是由计算机存储器中的故障或存储编译器代码的磁盘中的故障引起的。编译器代码中的差错也可能是由于计算机寄存器、堆栈存储器或编译器运行的CPU中的错误而出现的。
此外,图2表示出该方法包括基于对测试程序20的第二次编译而生成14第二软件装置24a、31的步骤。生成12第二软件装置24a、31的步骤是基于与先前生成第一软件装置的步骤相同的原理。如同第一软件装置一样,第二软件装置可以有多种实施方案。在一种实施方案中,第二软件装置24a包括编译后的测试程序20的第二次编译的可执行代码。在另一种实施方案中,生成14第二软件装置包括校验和和/或循环冗余校验码的计算。计算校验和和/或循环冗余校验码的替代方法在上面对生成第一软件装置的阐述中更详细地描述了。图3更详细地示出了生成14第二软件装置24a以及之后比较15软件装置的步骤和启动16用户编写的程序26的步骤的概要。图4表示了在本发明的一种替代的实施方案中第二软件装置31被下载到设备6a中。
图2也示出了该方法包括比较15第一软件装置和第二软件装置的步骤。图3示出了在该方法的一种实施方案中比较步骤是由安装有编译器22的相同的工作站5a或通用计算机来完成的。在这种实施方案中,第一软件装置23和第二软件装置24a的比较步骤15可以通过使用由操作系统提供的标准部件来实现。
在另一实施方案中,比较步骤15是由设备6a完成的。图4示出了这种实施方案的概要。在这种实施方案中,优选的是第一软件装置35应同系统软件一起被下载到设备6a中。图4表示出在测试程序20的第二次编译之前第一软件装置35一般已经被下载到设备6a中。第二软件装置31结合用户编写的程序的成功编译26被下载34。
在本发明的一种实施方案中,对软件装置的比较15包括对暗示值的比较-并且不在计算中包括暗示的值之间进行比较。在后面的情况中,值将会是0,并且0和0之间的比较可能导致所存储的计算被置于某些或全部的位被保持在0的存储器中,并且该比较可能得出无效的结果。这就是为什么非零值(例如暗示值)之间的比较会产生更高的发现错误的几率。
在本发明的一种替代的实施方案中,编译测试程序13、产生14第二软件装置以及比较15第一和第二软件装置的步骤被重复许多次。在这种替代的实施方案中,为了产生第一和第二软件装置的变化,可使用一个附加的数据源。这种实施方案的一个例子是,产生第二软件装置的步骤包括结合一个和第二软件装置一起随时间变化的变量的附加步骤。随时间变化的变量典型地与测试程序的第二次编译相关。在相同的替代的实施方案中,比较步骤可包括下载随时间变化的变量的附加步骤。有利的是使用日期和时间标记。在根据图4的一种实施方案中,日期和时间标记被下载到设备6a中并且将该日期和时间标记与第一软件装置35相结合。使用随时间变化的变量、例如日期和时间标记的优点是,随时间产生第一和第二软件装置的变化。这种变化消除了以下可能性,即在下载期间下载链路中的一个单元存储第二软件装置以及在随后的下载期间将该第二软件装置代替其接收的新的第二软件装置发送出去。
图2也表示出该方法包括使编译后的用户编写的程序26能够在具有用于控制现实世界实体10的安全部件的设备6a中执行的步骤16。该方法的该使能步骤是在假设在先前步骤中没有检测到差错的情况下完成的。
依据本发明的方法至少是部分地在包含在一个计算机程序存储设备中的一组计算机可读指令的控制下执行的。
本发明也公开了一种用于在工业控制系统2中的安全控制的计算机程序产品5b。计算机程序产品5b包括在根据上述的方法对编译器进行再验证之后使用户编写的程序能够执行的功能。此外,计算机产品包括用于执行进一步的操作来接收通过互联网1发送的、包括第一软件装置35的信号的软件装置。
本发明也公开了一种计算机程序,其包括用于使计算机或处理器执行上述方法中任一步骤的计算机代码装置。
本发明的前述公开内容和描述是示例性的和解释性的,在部件、处理和计算步骤以及程序、以及示意性电路和操作方法的细节方面都可以在不背离本发明的精神的情况下作出改变。

Claims (7)

1.一种在编译器(22)已被使用之后对其进行再验证的方法,该编译器用来编译由用户编写的、用于在工业控制系统(2)中执行安全控制的程序,该方法包括以下步骤:
-第一次编译(11a)一个测试程序(20),该测试程序以一种控制语言来定义;
-通过检验该测试程序正确地执行来对编译器进行验证(11b);
其特征在于,还包括以下步骤:
-生成(12)源自编译后的测试程序的、用于后面的比较的第一软件装置;
-在编译了用户编写的程序之后第二次编译(13)该测试程序;
-基于该测试程序的第二次编译生成(14)用于比较的第二软件装置;
-比较(15)第一软件装置和第二软件装置;其中针对在第一和第二次编译之间引入的任何差错对编译器(22)进行再验证;
-假如再验证表明编译器(22)中没有差错,则允许(16)用户编写的程序在具有用于控制现实世界实体(10)的安全部件的设备(6a)中执行。
2.如权利要求1的方法,其特征在于,所述比较步骤(15)在与运行编译器(22)的工作站(5a)或通用计算机相同的工作站(5a)或通用计算机中执行。
3.如权利要求1的方法,其特征在于,所述软件装置是校验和或循环冗余校验码。
4.如权利要求3的方法,其特征在于,所述比较步骤(15)在具有安全部件的设备(6a)中执行。
5.如权利要求4的方法,其特征在于,所述比较步骤(15)包括下载随时间变化的变量的附加步骤,该变量与校验和或循环冗余校验码在相同的消息中被下载到所述设备(6a)中,其中随时间变化的变量被用来实现消息的变化。
6.如权利要求1的方法,其特征在于,所述测试程序(20)是以源自IEC6-1131标准的控制语言来定义的。
7.一种具有包括安全部件(6b)的设备(6a)和包括编译器(22)的工作站(5a)的工业控制系统(2),其特征在于进一步包括:
包含软件代码装置的计算机程序产品(5b),该软件代码装置可以被装载到通用计算机或工作站(5a)和/或设备(6a)的内存中,其中所述计算机程序产品具有装置,用于执行由计算机实现的第二次编译(13)测试程序的步骤、由计算机实现的生成第二软件装置(14)的步骤、由计算机实现的比较(15)第一软件装置和第二软件装置的步骤以及由计算机实现的允许(16)用户编写的程序在设备(6a)中执行的步骤,所有根据权利要求1的步骤。
CNB038152347A 2002-06-28 2003-06-27 用于安全控制的编译器的再验证方法 Expired - Lifetime CN1328658C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
SE02020196 2002-06-28
SE0202019A SE0202019D0 (sv) 2002-06-28 2002-06-28 Revalidation of a compiler for safety control

Publications (2)

Publication Number Publication Date
CN1666178A CN1666178A (zh) 2005-09-07
CN1328658C true CN1328658C (zh) 2007-07-25

Family

ID=20288369

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB038152347A Expired - Lifetime CN1328658C (zh) 2002-06-28 2003-06-27 用于安全控制的编译器的再验证方法

Country Status (6)

Country Link
US (1) US7712089B2 (zh)
EP (1) EP1540471A1 (zh)
CN (1) CN1328658C (zh)
AU (1) AU2003242897A1 (zh)
SE (1) SE0202019D0 (zh)
WO (1) WO2004003739A1 (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7818729B1 (en) * 2003-09-15 2010-10-19 Thomas Plum Automated safe secure techniques for eliminating undefined behavior in computer software
US20050193378A1 (en) * 2004-03-01 2005-09-01 Breault Richard E. System and method for building an executable program with a low probability of failure on demand
BRPI0502411A (pt) * 2005-03-31 2006-11-28 Univ Minas Gerais processo de desenvolvimento de substáncias como inibidores potentes e seletivos de isoformas de fosfodiesterases dos tipos 1 a 5 (pde1,pde2,pde3, pde4, pde5) na base de diocleìna, fluranol ou análogos e suas composições farmacêuticas para o estudo e tratamento de doenças cardiovasculares e produtos associados
CN100442243C (zh) * 2005-08-12 2008-12-10 中国科学院计算技术研究所 一种对编译器中的错误进行自动定位的方法
US8392008B2 (en) * 2006-10-20 2013-03-05 Rockwell Automation Technologies, Inc. Module arbitration and ownership enhancements
US7676292B2 (en) 2006-10-20 2010-03-09 Rockwell Automation Technologies, Inc. Patterns employed for module design
US7680550B2 (en) 2006-10-20 2010-03-16 Rockwell Automation Technologies, Inc. Unit module state processing enhancements
US8601435B2 (en) * 2006-10-20 2013-12-03 Rockwell Automation Technologies, Inc. Module class subsets for industrial control
US7844349B2 (en) 2006-10-20 2010-11-30 Rockwell Automation Technologies, Inc. Standard MES interface for discrete manufacturing
US7684877B2 (en) 2006-10-20 2010-03-23 Rockwell Automation Technologies, Inc. State propagation for modules
US7894917B2 (en) * 2006-10-20 2011-02-22 Rockwell Automation Technologies, Inc. Automatic fault tuning
US7725200B2 (en) * 2006-10-20 2010-05-25 Rockwell Automation Technologies, Inc. Validation of configuration settings in an industrial process
US7908596B2 (en) * 2007-01-05 2011-03-15 International Business Machines Corporation Automatic inspection of compiled code
KR101418969B1 (ko) * 2008-02-27 2014-08-13 삼성전자주식회사 프로세서 및 컴파일 방법
US8255875B2 (en) * 2008-09-30 2012-08-28 Rockwell Automation Technologies, Inc. Application builder for industrial automation
DE102009019089A1 (de) * 2009-04-20 2010-11-04 Pilz Gmbh & Co. Kg Verfahren und Vorrichtung zum Erstellen eines Anwenderprogramms für eine Sicherheitssteuerung
US20110099439A1 (en) * 2009-10-23 2011-04-28 Infineon Technologies Ag Automatic diverse software generation for use in high integrity systems
US20110208948A1 (en) * 2010-02-23 2011-08-25 Infineon Technologies Ag Reading to and writing from peripherals with temporally separated redundant processor execution
US8516356B2 (en) 2010-07-20 2013-08-20 Infineon Technologies Ag Real-time error detection by inverse processing
US9678483B2 (en) 2011-01-26 2017-06-13 Honeywell International Inc. Programmable controller with both safety and application functions
DE102011109888B4 (de) * 2011-08-10 2020-01-23 Phoenix Contact Gmbh & Co. Kg Verfahren und Vorrichtung zum automatischen Erstellen einer ausführbaren Sicherheitsfunktion für ein Gerät
US8930765B2 (en) * 2012-07-31 2015-01-06 Oracle International Corporation Systems and methods for feedback driven regression testing
US10754630B2 (en) * 2018-06-06 2020-08-25 International Business Machines Corporation Build-time code section-specific compiler selection

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0179334A2 (en) * 1984-10-24 1986-04-30 International Business Machines Corporation System for generating a translator program
US5359659A (en) * 1992-06-19 1994-10-25 Doren Rosenthal Method for securing software against corruption by computer viruses
US5754860A (en) * 1996-07-23 1998-05-19 Digital Equipment Corporation Method and apparatus for software testing using a differential testing technique to test compilers
JP2001084162A (ja) * 1999-09-10 2001-03-30 Toshiba Corp プログラム試験方法及び記憶媒体
US6223337B1 (en) * 1997-12-12 2001-04-24 Hewlett-Packard Company Random test generation for compiler optimization

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL9002460A (nl) * 1990-11-09 1992-06-01 Tech Force B V Werkwijze voor het analyseren en voorspellen van een programmatuurontwikkelingsproces.
IL100989A (en) 1991-02-27 1995-10-31 Digital Equipment Corp Analysis of inductive expressions in multilingual mehadoptimization
US6071316A (en) 1997-09-29 2000-06-06 Honeywell Inc. Automated validation and verification of computer software
US6061643A (en) * 1998-07-07 2000-05-09 Tenfold Corporation Method for defining durable data for regression testing
DE19857683B4 (de) 1998-12-14 2007-06-28 Wratil, Peter, Dr. Verfahren zur Sicherheitsüberwachung von Steuerungseinrichtungen
US6598074B1 (en) * 1999-09-23 2003-07-22 Rocket Network, Inc. System and method for enabling multimedia production collaboration over a network
US7000191B2 (en) * 2000-08-07 2006-02-14 Siemens Aktiengesellschaft Flowchart programming for industrial controllers, in particular motion controllers
US20030135842A1 (en) * 2002-01-16 2003-07-17 Jan-Erik Frey Software development tool for embedded computer systems

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0179334A2 (en) * 1984-10-24 1986-04-30 International Business Machines Corporation System for generating a translator program
US5359659A (en) * 1992-06-19 1994-10-25 Doren Rosenthal Method for securing software against corruption by computer viruses
US5754860A (en) * 1996-07-23 1998-05-19 Digital Equipment Corporation Method and apparatus for software testing using a differential testing technique to test compilers
US6223337B1 (en) * 1997-12-12 2001-04-24 Hewlett-Packard Company Random test generation for compiler optimization
JP2001084162A (ja) * 1999-09-10 2001-03-30 Toshiba Corp プログラム試験方法及び記憶媒体

Also Published As

Publication number Publication date
EP1540471A1 (en) 2005-06-15
SE0202019D0 (sv) 2002-06-28
CN1666178A (zh) 2005-09-07
WO2004003739A1 (en) 2004-01-08
AU2003242897A1 (en) 2004-01-19
US7712089B2 (en) 2010-05-04
US20060101433A1 (en) 2006-05-11

Similar Documents

Publication Publication Date Title
CN1328658C (zh) 用于安全控制的编译器的再验证方法
CN106528100B (zh) 用于安全关键软件开发的基于模型的技术和过程的系统和方法
EP1019818A1 (en) Automated validation and verification of computer software
CN103460196A (zh) 校验和生效plc系统中冗余软件的系统和方法
US9829866B2 (en) Method and apparatus for automatically creating an executable safety function for a device
CN101167050A (zh) 用于铁路信号网络的控制系统
CN101937396B (zh) 软件程序中变量的不安全使用的检测方法
Profeta et al. Safety-critical systems built with COTS
US7451351B2 (en) Fault detection in an industrial controller during safety control
Shin et al. Model-based automatic test case generation for automotive embedded software testing
CN109815131B (zh) 轨道交通车载软件半形式化需求用的静态检查系统及方法
CN114968819A (zh) 面向微服务持续集成的代码质量问题检测及修复方法
Godboley et al. Atomic Condition Coverage Analysis for Structured Text Based Programmable Logic Controller (PLC)
WO2014121817A1 (en) Software diversity for industrial control systems
JP5667948B2 (ja) プログラム検査装置
Lee et al. A Preliminary Report on Static Analysis of C Code for Nuclear Reactor Protection System
Clarke Safety considerations in using IEC 1131-3 programming languages
Parekh et al. Confluent Modeling of Heterogeneous Safety and Operational I&C Systems
Tsiplaki Spiliopoulou et al. JACoW: experience with static PLC code analysis at CERN
Germinario et al. JACOW: Towards Automatic Generation of Fail-Safe PLC Code Compliant with Functional Safety Standards
Chen et al. Mocov: Model Based Fuzzing Through Coverage Guided Technology
CN116931877A (zh) 一种软件自动构建方法及电子设备
Sampson Evidence gathering using static code analysis
Bertoli et al. A structured approach to the formal certification of safety of computer aided development tools
Ogiso Safety aspect of digital reactor protection system in Japan

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20180413

Address after: Baden, Switzerland

Patentee after: ABB Switzerland Co.,Ltd.

Address before: Norway Billings Todd

Patentee before: ABB Co.,Ltd.

CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20070725