安全控制期间工业控制器中的故障检测的制作方法

文档序号:6422575阅读:188来源:国知局
专利名称:安全控制期间工业控制器中的故障检测的制作方法
技术领域
本发明涉及在工业控制系统环境中执行安全控制指令的CPU的诊断。
背景技术
工业控制系统应用于例如制造与加工业,诸如化工厂、油生产厂、冶炼厂、纸浆和造纸厂、钢厂和自动化工厂。工业控制系统还广泛用于电力工业。定义工业控制系统语言结构的标准是IEC 61131-3。这种工业控制系统可包含或可结合附加有安全特性的某些设备。这种设备的例子有安全控制器。需要附加安全特性而不是标准工业控制系统所提供的加工的例子有在近海处生产平台上的加工、核能工厂的某些加工区和化工厂的危险区。安全特性可与安全关闭、火和/或报警系统以及火和气检测结合使用。涉及附加了安全特性的工业控制系统的复杂计算机系统的使用,给不断增加的检测工业控制器故障的需求提出了挑战。
GB2277814中描述了一种已提高了故障检测能力的工业控制系统中设备的例子,其是关于包括CPU的容错PLC(可编程逻辑控制器)。在正电源总线与负载之间连接一对第一I/O模块。在负电源总线与负载之间连接一对第二I/O模块。GB2277814还描述了电源到负载不会因为负载任何一侧的一个I/O模块失效而断开。该方法的缺点是它没有将CPU中的可能失效考虑进去。
通常,计算让程序执行包括CPU指令的测试并将结果与预定义的正确结果相比较是已知的。这可在启动时执行一次,或在运行时间内循环执行。US 6081908描述了一种存储和验证测试码的方法。该方法关于具有至少在单一封装中装有CPU和ROM的单片微计算机的测试。
检测CPU中故障的其他已知通用计算方法利用看门狗定时器。定时器计数器接收预定频率的时钟输入脉冲,并且每次施加时钟输入脉冲,定时器计数器便增加计数。在计数达到预设最大计数的情况下,定时器计数器产生输出脉冲。用检查计算机处理器是否正确运行的自测试模块来对CPU进行编程。CPU周期性地将从自测试模块得到的信号提供给复位输入以对计数器进行复位。如果CPU中发生故障,将不会发生复位,并且计数器将达到其指示故障的最大值。用这种方法的缺点是当CPU中发生故障时,复位信号可能被阻塞,且尽管CPU中有故障,但计数器可能永远达不到其最大值。
EP 1063591描述了一种检测运行主程序的计算机处理器中故障条件的方法。该方法包括基于初始输入值来顺序执行多个功能的步骤。用这种故障检测方法的缺点是它没有描述如何检测CPU中的故障,换句话说,可能在执行包括安全相关指令的应用程序期间发生故障。
在先有技术中,可通过离线执行应用程序来测试将用于安全控制的CPU,即在安全控制器用于现实世界对象的在线安全控制之前。用这种方法的缺点是一旦CPU用于在线安全控制,就在执行应用程序期间可能发生CPU故障,因此这种方法不会检测出在线安全控制期间的CPU故障。另一个缺点是这种离线测试不是自动进行的,因此只有当操作人员启动离线测试时才进行离线测试。先有技术中已知的更完全测试是离线运行包括CPU所有主指令的测试程序。用这种测试方法的缺点是它不适于在线测试,因为它太耗CPU。

发明内容
本发明的目的是提供一种检测将用于现实世界对象安全控制的工业控制器CPU中故障的方法。本发明允许在应用程序在线执行期间通过重复执行测试应用(test application)来检测CPU中的故障。所述测试应用包括CPU可用的汇编指令总数的子集。
根据在权利要求1中描述的方法,本发明实现了这个和其它目的。在从属权利要求中描述了有利的实施例。
基于本发明的方法包括如下步骤在应用程序中定义的高级语言结构又在测试应用中定义。用将用于安全控制的高级语言来定义应用程序,并随后编译成汇编指令。所述方法包括如下步骤将测试应用编译成汇编指令,其中所述汇编指令是CPU可用的指令总数的子集。应用程序以及测试应用被下载到工业控制器。在工业控制器中,重复执行测试应用。进一步地,将来自测试应用的结果与在测试模块中预定义的结果相比较。所述方法还包括如下步骤在现实世界对象在线安全控制期间检测CPU中的故障,其中通过执行所述测试应用来检测CPU中的故障。
基于本发明的方法允许检测CPU中的故障,在执行包含在所述测试应用中的某汇编指令时该故障变得明显。CPU中故障的例子有CPU寄存器中的失效和存储器(诸如高速缓冲存储器)中的失效。本发明允许在安全关键应用程序执行汇编指令之前检测CPU故障。本发明的一个重要方面是在现实世界对象在线安全控制期间,在某汇编指令执行时进行CPU故障检测。基于本发明的方法的步骤不必按它们被提到的顺序执行。
在本发明上下文中,术语“工业控制器”不应限制本发明的范围,并且备选术语的例子有PLC(可编程逻辑控制器)。
本发明的又一目的是提供一种用在工业控制系统中的计算机程序产品,包含可加载到将用于现实世界对象安全控制的工业控制器中央单元中的软件码装置。所述计算机程序产品包括使工业控制器执行上述方法的相关步骤的装置。
本发明的再一目的是提供一个工业控制系统,包括带有配备了将用于现实世界对象安全控制的CPU的中央单元的工业控制器、以及根据上述方法CPU受到故障检测的I/O系统。
本发明直接的重要优点是它提供了安全关键应用的增强的安全整体水平。
本发明的进一步优点是它公开了一种涉及现实世界对象安全控制的测试CPU指令并检测故障的有效方法,其中用诸如IEC61131-3的高级控制语言来定义安全应用。
本发明的另一有利特征是它提供了CPU中故障的检测,其故障在执行某CPU指令时变得明显。


结合所附示意图,将更加详细地描述本发明。
图1示出了测试应用的简化图(用例如IEC 61131-3的高级语言),测试应用被编译成汇编CPU指令。
图2示出了基于本发明的方法的概略图。
图3是基于本发明的系统的示意性概略图。
具体实施例方式
图1示出了包括CPU 8、22的工业控制器6的中央单元6。将用于现实世界对象24安全控制的CPU 8、22通常是将用于一般工业用途的CPU。这种CPU包含在工业控制器的中央单元6中。这种CPU的例子有摩托罗拉公司的MPC86x CPU。这种CPU有约230条主指令的指令集。涉及现实世界对象安全控制的典型应用程序使用1/3的主指令。发明人已经发现CPU的有效在线故障检测要执行只包含预先来自用高级控制语言(例如IEC 61131)定义的测试应用的那些汇编指令的测试应用。
图1示出了本发明的概略图。测试应用1包括用于现实世界对象24安全控制的所有相关高级语言结构。在优选实施例中,根据IEC61131-3定义高级测试应用。语言型式可以是在IEC 61131-3中所定义的任一种,诸如结构文本、阶梯或功能框图。测试应用1被编译2成汇编码3中的测试应用。已编译成汇编码3的测试应用包括是CPU的所有可用主指令4的子集的指令。因此,大多数主CPU指令5不用在测试应用3中,这使得与包括所有可用CPU指令的测试相比该测试应用在执行期间消耗的资源较少。在本发明的一个实施例中,测试应用包括对应于在线安全控制应用程序的汇编指令。进一步地,图1示出了汇编码的测试应用被下载7到工业控制器的至少一个中央单元6。中央单元6可包括多个模块和/或板,例如电路板。典型的中央单元6包括底板和与现实世界对象通信的通信装置。出于冗余原因,中央单元可包括多个特定类型的电路板和/或模块。冗余的主CPU板是这种冗余的一个例子。将用于现实世界对象24安全控制的CPU 8、22执行测试应用3。确认模块11用于测试应用执行结果10的测试确认功能。模块11接收来自执行测试应用3的CPU的输出值10,并将结果与预定义结果相比较。模块11还可将输入值9发送到在CPU中执行的测试应用。当输出值可用时,在CPU 8与模块11之间的同步12可用来为测试确认功能标记。在一个实施例中,确认模块11包括一个双端口存储器,其用于更新来自测试应用3的输出,并允许模块11的确认功能存取输出值。该输出值可包含顺序号,确认功能用该顺序号来建立测试应用已经应答的测试参数。
应该理解到,与在先有技术中所显示的相比,本发明极大提高了在线安全控制的可靠性。这是由于即使在在线安全控制期间也执行该测试应用,并且它以其编译形式包含应用程序的所有单个汇编指令。在稳定过程和现实世界对象正常控制期间,不执行某些汇编指令。在应用程序的初始下载之后,可几周或几个月进行检测异常或危险过程情况,例如炸药或毒气的检测。在异常或危险过程情况的检测之后,现实世界对象安全控制的应用程序可以执行例程,并且在稳定过程与现实世界对象正常控制期间,不执行某些汇编指令。本发明确保由测试应用执行某些汇编指令,以检测CPU中的故障。
图2示出了基于本发明的方法的概略图。它是一种在线安全控制现实世界对象期间检测工业控制器的CPU中故障的方法。图2显示该方法包括步骤16,将用于安全控制的高级语言所定义的应用程序编译成汇编码。该方法包括步骤17,将测试应用1编译成汇编指令3,其中用与应用程序相同的高级语言预先定义该测试应用。作为备选项,汇编码可用来代替汇编指令。编译的测试应用的汇编指令是定义测试应用的CPU可用的汇编指令总数的子集,其中测试应用至少覆盖用在应用程序中的所有语言结构。
图2还示出了下载步骤17,在此应用程序、测试应用和测试应用的预定义结果被下载到工业控制器的中央单元6。在优选实施例中,由于应用程序中的更新或改变,顺序进行测试应用与应用程序的下载7。最好,管理应用程序下载的软件例程自动下载该测试应用。然而,业可以这种方式执行下载步骤在应用程序外的其它时间下载测试应用和预定义结果。该方法包括另一步骤18,重复执行工业控制器中的汇编测试应用。在本发明的一个实施例中,循环执行测试应用。最好,在正常在线安全操作期间,根据给定过程安全时间值来确定循环时间。在现实世界对象24在线控制期间进行测试应用3的执行,这意味着应用程序也在CPU中执行。在一个实施例中,在重复执行循环之前执行的是完全测试应用。在优选实施例中,测试应用被划分成多个功能部分,其中在重复执行循环之前执行各功能部分。在优选实施例中,每个功能部分都有相应的预定义结果。
图2还示出了比较步骤19,将测试应用的结果10与预定义结果或预定义结果之一相比较。在一个优选实施例中,比较步骤主要由确认模块11来执行。图2还示出了步骤20,检测CPU 8、22中的错误。在一个实施例中,进行检测,以便例如借助报警系统来通知操作人员。该检测可包括出于分析目的在日志(log)或类似装置中存储汇编指令和/或测试功能。进一步的终止步骤21,应用程序的执行禁止汇编指令的执行,否则将引起应用程序失效。
上述步骤按顺序提到,这是步骤可按顺序执行的例子。
图3示出了本发明的另一实施例,它作为一个系统,例如工业控制系统25,包括将用于现实世界对象24安全控制、配备有CPU 22的中央单元21的工业控制器、I/O系统23,其中CPU 8、22根据上述方法进行故障检测。
须经安全控制的现实世界对象的例子有致动器、电子管、发动机、驱动系统和风扇。进一步的例子有更复杂的现实世界对象,诸如气/烟/火检测系统、钻孔设备、管和管道、蒸馏塔、压缩机、传送系统、锅炉和涡轮机。图3示出了更复杂的现实世界对象24的例子。
权利要求
1.一种在现实世界对象在线安全控制期间检测工业控制器的CPU中故障的方法,包括如下步骤-将应用程序编译成汇编指令,其中预先用将用于安全控制的高级语言来定义应用程序,其特征在于,所述方法包括如下步骤-将测试应用编译成汇编指令,其中所述汇编指令是所述CPU可用的汇编指令总数的子集,其中预先用将用于安全控制的所述高级语言来定义测试应用,并且所述测试应用至少覆盖了用在所述应用程序中的所有语言结构;-将所述应用程序和所述测试应用下载到工业控制器的中央单元;-在所述工业控制器中重复执行所述测试应用;-通过测试模块将来自所述测试应用的结果与所述测试模块中的预定义结果进行重复比较;-当来自所述测试应用的所述结果不等于在所述测试模块中存储的所述预定义结果、且所述测试应用的意外结果是由于执行所述测试应用的汇编指令时,检测所述CPU中的故障;-终止所述应用程序的执行,其中所述应用程序被禁止执行所述汇编指令,否则会引起所述应用程序失效。
2.如权利要求1所述的方法,其中所述测试应用的汇编型式包括从可用于现实世界对象安全控制的所述高级语言中的所有语言结构中得到的汇编码。
3.如权利要求1或2所述的方法,其中将用于安全控制的所述高级语言基于IEC 61131-3。
4.如权利要求3所述的方法,其特征在于,定义测试应用的步骤包括分析应用,以便确定用在所述应用码中的子集和软件库。
5.如权利要求4所述的方法,其特征在于,定义测试应用的步骤是自动进行的,无需来自应用程序员的任何附加命令。
6.如权利要求5所述的方法,其特征在于,重复执行所述测试应用的步骤是通过所述测试应用的循环执行来实现的,其中循环时间根据给定过程安全时间值来确定。
7.如权利要求6所述的方法,其特征在于,所述测试应用在执行之前接收一组输入值,并且所述输入值通过所述测试模块产生。
8.如权利要求7所述的方法,其特征在于,应用程序和测试应用的下载步骤包括下载预定义结果的附加步骤。
10.一种用在工业控制系统中的计算机程序产品,包含可加载到将用于现实世界对象安全控制的工业控制器中央单元中的软件码装置,所述计算机程序产品,其特征在于,它包括使所述工业控制器执行如下步骤的装置-在所述工业控制器中重复执行所述测试应用;-通过测试模块将来自所述测试应用的结果与所述测试模块中的预定义结果进行重复比较;-当来自所述测试应用的所述结果不等于在所述测试模块中存储的所述预定义结果、且所述测试应用的意外结果是由于执行所述测试应用的汇编指令时,检测所述CPU中的故障;-终止所述应用程序的执行,其中所述应用程序被禁止执行所述汇编指令,否则会引起所述应用程序失效,所有步骤根据权利要求1所述的方法。
11.一种工业控制系统,包括具有配备了将用于现实世界对象安全控制的CPU的中央单元的工业控制器,一种I/O系统,其特征在于,根据权利要求1所述的方法所述CPU受故障检测。
全文摘要
本发明涉及现实世界对象安全关键(critical)控制中的改进的可靠性。现实世界对象须经安全控制的例子有气/烟/火检测系统、钻孔设备、管和管道、蒸馏塔、压缩机、传送系统、锅炉和涡轮机。测试应用包括所有相关高级语言结构,并作为汇编码在工业控制器中重复执行,在线安全控制期间其CPU须经故障检测。
文档编号G06F11/36GK1723445SQ200380105314
公开日2006年1月18日 申请日期2003年10月13日 优先权日2002年10月15日
发明者M·古马尔卡, K·汉森, A·奥皮姆 申请人:Abb股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1