CN102460397B - 用于创建安全控制装置的应用程序的方法和装置 - Google Patents

用于创建安全控制装置的应用程序的方法和装置 Download PDF

Info

Publication number
CN102460397B
CN102460397B CN201080027502.3A CN201080027502A CN102460397B CN 102460397 B CN102460397 B CN 102460397B CN 201080027502 A CN201080027502 A CN 201080027502A CN 102460397 B CN102460397 B CN 102460397B
Authority
CN
China
Prior art keywords
code
instruction
safety
security
source 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
CN201080027502.3A
Other languages
English (en)
Other versions
CN102460397A (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.)
Pilz GmbH and Co KG
Original Assignee
Pilz GmbH and Co KG
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 Pilz GmbH and Co KG filed Critical Pilz GmbH and Co KG
Publication of CN102460397A publication Critical patent/CN102460397A/zh
Application granted granted Critical
Publication of CN102460397B publication Critical patent/CN102460397B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Abstract

本发明涉及一种用于创建安全控制装置(20)的应用程序的方法,该安全控制装置构建为控制自动化设备(22),其带有多个传感器(26)和多个执行器(24),该方法具有如下步骤:创建应用程序的源代码(52),其中源代码(52)包括多个用于控制执行器(24)的控制指令(160,162)和多个用于产生诊断报告的诊断指令(164,166),其中在处理控制指令(160,162)期间,故障安全地处理安全相关的程序变量,根据源代码(52)产生机器代码(70),确定至少一个校验和(102,104),其中针对机器代码(80,98)的至少一部分确定校验和(102,104),并且其中在确定校验和(102,104)时不考虑诊断指令(164,166)。此外,本发明还涉及相应的装置和计算机程序。

Description

用于创建安全控制装置的应用程序的方法和装置
本发明涉及用于创建安全控制装置的应用程序的方法和装置,其构建为控制具有多个传感器和多个执行器的自动化设备。
在本发明的意义下的安全控制装置是如下设备或装置,其记录由传感器提供的输入信号并且由此通过逻辑链接和可能通过其他信号或数据处理步骤产生输出信号。输出信号于是可以被输送给执行器,执行器根据输入信号在受控的设备中引起动作或反应。
这种安全控制装置的一个优选的应用领域是对在机器安全领域中的应急关断按键、双手控制装置、安全门或光栅的监控。这样的传感器被使用来保护例如如下机器,在工作中由该机器导致对人或材料物品的危险。在打开安全门的情况下或在操作应急关断按键的情况下相应产生信号,该信号作为输入信号被输送给安全控制装置。对此反应地,安全控制装置于是例如借助执行器来关断机器的带来危险的部分。
与“正常的”控制装置相比,安全控制装置的特性是:安全控制装置本身即使在故障出现在其中或与其连接的设备中时也始终保证了带来危险的设备或机器的安全状态。因此,在安全控制装置中对实际安全性提出了极高的要求,这导致在开发和制造时的极高的开销。
通常,安全控制在其使用之前需要通过主管监管局如在德国为职业协会或者TüV的特别许可。在此,安全控制装置必须遵守预先给定的安全标准,其例如记录在欧洲标准EN954-1或者类似的标准,例如标准IEC61508或者标准ENISO13849-1中。因此,在下文中安全控制装置理解为如下设备或者装置,其至少满足所提及的欧洲标准EN954-1的安全类型3或其安全整体水平(SIL)至少达到根据所述的标准IEC61508的第2级。
可编程的安全控制装置提供给应用者如下可能性:根据其需要借助软件、所谓的应用程序单独地确定逻辑链接和在必要情况下其他的信号处理步骤或者数据处理步骤。由此得到了与以前的解决方案相比大的灵活性,在以前的解决方案中通过在不同的安全部件之间的限定的接线产生逻辑链接。应用程序例如可以借助在市面上可获得的个人计算机(PC)并且通过使用相应设置的软件程序来创建。
如已提及的那样,安全控制装置在其应用之前需要由主管监管局的特别许可。在这样的许可的情况下,应用程序的安全相关的环境被检验。应用程序的安全相关的环境是安全指令,其对于由安全控制装置要解决的安全任务是必要的。在处理安全指令期间,故障安全地处理安全相关的程序变量。在成功检验之后针对应用程序的安全相关的环境尤其是针对机器代码的安全相关的环境确定校验和,并且以校验和证明安全相关的环境。根据校验和,监管局可以在进行批准之后识别在应用程序的安全相关的环境上进行的改变。这样,例如对应用程序的安全相关的环境的不允许的操纵被确定
如果在监管局进行许可之后对现有的应用程序的安全相关的环境进行改变,例如以便使在受控的设备上运行的应用最优化,则需要监管局对改变的应用程序进行重新许可。由于应用程序的安全相关的环境也包括诊断指令,所以在事后仅仅对这样的诊断指令进行改变时则重新的许可也是必要的。在此情况下并非不常用的是,在进行许可之后对诊断指令进行改变。例如,首先基于设备的测试运行得到如下认识:要求诊断指令的匹配。由于诊断指令本身与安全控制装置指令相比并非安全相关的,所以不利的是,在已经进行许可之后事后仅对诊断指令进行改变时需要监管局重新许可。这与提高的时间开销和附加的成本相关联。此外,这限制了要控制的设备的规划时的灵活性并且因此限制了在创建应用程序时的灵活性。
因此,本发明的任务是改进开头所述的类型的方法和装置,以便提高在创建应用程序时的灵活性和因此提高了在实现安全控制装置时的灵活性,以便因此能够实现更快和更成本低廉地对安全控制装置编程。
因此,该任务通过开头提及的类型的方法来解决,其中实施以下步骤:
–创建应用程序的源代码,其中源代码包括多个用于控制执行器的控制指令和多个用于产生诊断报告的诊断指令,其中在处理控制指令期间,故障安全地处理安全相关的程序变量,
–根据源代码产生机器代码,
–确定至少一个校验和,其中针对机器代码的至少一部分确定校验和,并且其中在确定校验和时不考虑诊断指令。
此外,该任务通过如下装置来解决,其具有如下单元:用于创建应用程序的源代码的单元,其中源代码包括用于控制执行器的多个控制指令和用于产生诊断报告的多个诊断指令,其中在处理控制指令期间,故障安全地处理安全相关的程序变量;用于根据源代码产生机器代码的单元;以及用于确定至少一个校验和的单元,其中针对机器代码的至少一部分确定校验和,并且其中在确定校验和时不考虑诊断指令。
该新方法和新装置所基于的是,在确定校验和时不考虑诊断指令。校验和因此仅仅针对安全控制指令来确定。因此,也在由监管局许可的范围中所确定的校验和的情况下不考虑诊断指令。因此可能的是,在进行许可之后可以对诊断指令进行改变,而这对检验目的要创建的校验和没有影响。因此,在进行许可或批准之后可以对已经在许可之前存在的诊断指令进行补充。但也可考虑的是,在进行许可之后首先创建诊断指令。这提高了应用程序创建时的灵活性。由于对诊断指令的改变并不要求监管局之一对应用程序重新许可,因此减小了时间开销并且也因此减小了用于创建应用程序和因此对安全控制装置编程的开销。
上述任务因此完全被解决。
在本发明的另一扩展方案中,对诊断指令进行标记。
标记的诊断指令可以明确地识别。因此保证:诊断指令在确定校验和时被识别并且因此确定地不被考虑。该措施实现了根据本发明的方法和根据本发明的装置可靠地工作。
优选地,诊断标记在创建源代码时通过用于创建应用程序的计算机程序自动地标记。因此,应用程序的程序员自己并不不必做这。该措施解决时间并且因此节约成本。此外,该措施保证了根据本发明的方法和根据本发明的装置的高可靠性。
优选地,通过分别前置和后置诊断标记来对诊断指令进行标记。诊断指令因此嵌入两个诊断标记中或由其加框。但也可以考虑其他措施来标记诊断指令。这样,每个单个的诊断指令例如可以通过添加为此设计的特殊符号来标记。
在本发明的另一扩展方案中,机器代码包括第一安全代码和第二安全代码,其中针对两个安全代码的每个分别确定校验和。
该措施能够实现关于可能在监管局进行许可之后进行的改变方面的特别高的灵活性。例如,如果仅仅进行了影响安全控制装置的两个通道之一的改变,对于应用程序的与通道相关的环境需要重新许可。
在本发明的另一扩展方案中,机器代码包括第一安全代码和第二安全代码,其中在产生第一安全代码时考虑诊断指令,而在产生第二安全代码时不考虑诊断指令。
该措施具有如下优点:安全控制装置的两个通道之一完全不含诊断指令。因此,对诊断指令的改变对该通道影响最小。因此,另外的诊断指令可以添加到已存在的诊断指令或完全首次创建诊断指令,而这对该通道没有影响。
应理解的是,上文所述的和下文还要阐述的特征可以不仅以分别所说明的组合而且以其他组合或单独地应用,而不离开本发明的范围。
本发明的实施例在附图中示出并且在以下的描述中更为详细地予以阐述。其中:
图1示出了要控制的设备的示意性视图;
图2示出了用于阐述机器代码的产生和对校验和的确定的示意图。
在图1中,根据本发明的装置在其整体上用附图数字10表示。
装置10包含传统的计算机12,其带有显示单元14。在计算机12上运行计算机程序16。计算机程序16能够实现创建安全控制装置的应用程序。因此,计算机程序16按专业术语通常也称作编程工具。计算机12可以实施为PC并且显示单元14可以实施为监控器。
在图1中示出了在其整体上用附图数字18表示的安全电路,其具有安全控制装置20,其构建为控制在其整体上用附图数字22表示的自动化设备。自动化设备22包括多个执行器24和多个传感器26。示例性地示出了在设备22中包含的负载28,其例如可以是机器人。
安全控制装置20双通道冗余地构建以便实现必要的故障安全性以控制安全关键的过程或应用。对于双通道结构代表性地在图1中示出了两个彼此分离的处理器,即第一处理器30和第二处理器32。两个处理器30、32通过双向通信接口34彼此连接,以便能够相对彼此地控制和交换数据。优选地,安全控制装置20的两个通道和两个处理器30、32是多样性的,即彼此不同地构建,以便在很大程度上排除系统错误。
用附图标记36表示输入/输出单元,其与两个处理器30、32的每个连接。输入/输出单元36记录来自多个传感器26的多个控制输入信号38并且将其以匹配的数据格式转发给两个处理器30、32的每个。此外,输入/输出单元36根据处理器30、32产生多个控制输出信号40,借助其激励多个执行器24。
用附图标记42表示程序存储器,在该程序存储器中以机器代码形式存储应用程序。机器代码借助装置10来创建。如果程序存储器42构建为芯片卡,这能够实现简单地交换机器代码并且因此简单交换应用程序,而不直接连接到计算机12上。可替选地,程序存储器42也可以构建为固定地安装在安全控制装置20中的存储器,例如EEPROM。
计算机程序16在显示单元14上提供用户界面44。用户界面44使编程员能够创建应用程序。程序员通过如下方式创建应用程序:其通过连接到其上的输入单元为计算机12输送输入。输入单元例如可以是按键或鼠标。根据用于创建应用程序的编程语言,输入方案彼此不同。如果结构化文本或指令表用作编程语言,则应用程序通过文本的输入来创建。而如果将程序模块图用作编程语言,则程序员通过如下方式创建应用程序,程序员通过使用鼠标来选择预先定义的程序模块,其例如借助图形符号在用户界面44上被表征。
计算机程序16包括显示模块46。由程序员通过输入单元进行的输入借助显示模块46来检测和分析。一方面,显示模块46产生表征相应输入的源代码环境48,其存储在源代码存储器50中。另一方面,显示模块46使图形符号显示在用户界面44上。图形符号表征由程序员进行的输入并且因此表征由显示模块46产生的源代码环境48。
在程序员进行所有对应用程序所需的输入时,在源代码存储器50中存在源代码52。源代码52包括第一源代码部分54和第二源代码部分56。第一源代码部分54代表安全指令,其对于由安全控制装置20要解决的安全任务是必要的。安全指令是用于控制执行器的第一控制指令58。在处理第一控制指令58期间,故障安全地处理安全相关的程序变量。第一控制指令也可以称作安全控制指令。此外,安全指令是第一诊断指令60,用于产生诊断报告。第一诊断指令也可以称作安全诊断指令。第二源代码部分56表征标准指令,其对于由安全控制装置20要解决的标准任务而言是必要的。标准指令是用于控制执行器的第二控制指令62。在处理第二控制指令62期间,处理非安全相关的程序变量,其中对于非安全相关的程序变量并不需要故障安全的处理。第二控制指令也可以称作标准控制指令。此外,标准指令是用于产生诊断报告的第二诊断指令64。第二诊断指令也可以称作标准诊断指令。
根据在源代码存储器50中包含的源代码52借助两个编译器66、68产生机器代码70。机器代码70通过网关72传输给安全控制装置20并且在那里存储在程序存储器42中。机器代码70如下产生:
源代码52被输送给第一编译器66。第一编译器66包括第一机器代码产生单元74和第一校验和确定单元76。借助第一机器代码产生单元74产生第一机器代码部分78。第一机器代码部分78包括第一安全代码80和标准代码82。第一安全代码80根据第一源代码部分54产生。第一安全代码80包括第三控制指令84(所谓的安全控制指令)和第三诊断指令86(所谓的安全诊断指令)。在产生第一安全代码80时,因此第一源代码部分54完全转换成机器代码,即不仅第一控制指令58而且第一诊断指令60转换成机器代码。适用于如下相关性:源代码侧的第一控制指令58对应于机器代码侧存在的第三控制指令84。源代码侧存在的第一诊断指令60对应于机器代码侧存在的第三诊断指令86。
标准代码82根据第二源代码部分56来产生。标准代码82包括第四控制指令88,所谓的标准控制指令,和第四诊断指令90,所谓的标准诊断指令。在产生标准代码82时,因此第二源代码部分56完全转换成机器代码,即不仅第二控制指令62而且第二诊断指令64都转换成机器代码。如下相关性适用:源代码侧存在的第二控制指令62对应于机器代码侧存在的第四控制指令88。源代码侧存在的第二诊断指令64对应于机器代码侧存在的第四诊断指令90。
此外,源代码52被输送给第二编译器68。第二编译器68包括第二机器代码产生单元92和第二校验和确定单元94。借助第二机器代码产生单元92产生第二机器代码部分96。第二机器代码部分96包括第二安全代码98。第二安全代码98根据第一源代码部分54来产生。第二源代码部分56不被考虑。第二安全代码98包括仅仅第五控制指令100,所谓安全控制指令。第二安全代码98不包括诊断指令。在产生第二安全代码98时因此不将完全的第一源代码部分54转换成机器代码。仅仅第一安全指令58转换成机器代码。第一诊断指令60不被考虑。
借助第一校验和确定单元76确定第一安全代码80的第一校验和102。当然,第一校验和102仅仅针对在第一安全代码80中包含的第三控制指令84被确定。在第一安全代码80中包含的第三诊断指令86在此不被考虑。第一校验和102同样通过网关72传输给安全控制装置20并且存储在程序存储器42中。借助第二校验和确定单元94确定第二安全代码98的第二校验和104。由于第二安全代码98并不包含诊断指令,所以在确定第二校验和104时仅仅考虑控制指令,具体而言为第五控制指令100。第二校验和104同样通过网关72传输给安全控制装置20并且存储在程序存储器42中。根据两个存储并且因此寄存在安全控制装置20中的的校验和102、104在任何时候都可以检验:安全控制装置20所实施的应用程序是否与安全相关的环境相同,该环境由监管局许可时检验并且通过那时确定的校验和来证明。优选地,在许可的范围中所确定的校验和也存储在安全控制装置20中。
有利地,两个机器代码产生单元74、92和两个校验和确定单元76、96多样性地构建。但也可以考虑的是,两个校验和确定单元76、94相同地构建。此外,也考虑的是,仅仅设置单个的校验和确定单元。借助其于是不仅针对通过机器代码产生单元74产生的第一安全代码80而且针对借助机器代码产生单元92产生的第二安全代码98分别确定校验和。
总之,机器代码70由第一安全代码80、标准代码82和第二安全代码98组成,其中第一安全代码80和标准代码82与第一处理器30相关。第二安全代码98与第二处理器32相关。由程序员创建的应用程序总体上通过源代码52和机器代码70来表征。
根据应用程序的处理进行在第一处理器30中一方面处理第一当前安全指令106而另一方面处理当前标准指令108。基本上同时地在第二处理器32中处理第二当前安全指令110。第一当前安全指令106可以是在第三控制指令84中包含的安全控制指令或是在第三诊断指令86中包含的安全诊断指令。当前标准指令108可以是在第四控制指令88中包含的标准控制指令或在第四诊断指令90中包含的标准诊断指令。第二当前安全指令110是在第五控制指令100中包含的安全控制指令。安全控制指令也称作安全相关的控制指令。标准控制指令也称作非安全的控制指令。
如果当前标准指令108是标准控制指令,则第一非安全相关的数据112在第一处理器30与输入/输出单元36之间被交换。在此情况下,通过使用程序输入变量将数据输送第一处理器30,其中其瞬时值表征非安全相关的控制输入信号114的值,其由非安全相关的传感器116产生。非安全相关性的传感器116是如下传感器,其例如检测对驱动调节所需的输入量。在此情况下,例如可以是转速、角度或速度。非安全相关的传感器116非故障安全地构建。输入/输出单元36通过使用编程输出变量被输送数据,其中其瞬时值表征非安全相关的控制输出信号118的值,其被输送给非安全相关的执行器120,用于其激励。非安全相关的执行器120例如可以是电动机或调节气缸。非安全相关的程序输出变量的瞬时值根据按照标准指令的非安全相关的程序输入变量来确定。
如果当前标准指令108是标准诊断指令,则第二非安全相关的数据122在第一处理器30与输入/输出单元36之间被交换。例如,为第一处理器30同样被输送非安全相关的控制输入信号114的瞬时值和/或非安全相关的控制输出信号118的瞬时值。根据所输送的瞬时值,于是可以确定的是,存在要控制的设备22的何种处理状态。相应的诊断报告借助诊断显示单元124来显示。
如果第一当前安全指令106是安全控制指令,则第一安全相关的数据126在第一处理器30与输入/输出单元36之间被交换。在此情况下,第一处理器30被通过使用安全相关的程序输入变量来输送数据,其中其瞬时值表征安全相关的控制输入信号128的值,其由安全相关的传感器130来产生。安全相关的传感器130例如是应急关断按键、双手控制装置、安全门、转速监控设备或用于记录安全相关的参数的其他传感器。输入/输出单元36被通过使用安全相关的程序输出变量来输送数据,其中其瞬时值表征安全相关的控制输出信号132的值,其被输送给安全相关的执行器134,用于其激励。安全相关的执行器134例如是所谓的接触器、其工作接触部设置在电流供给装置136和负载28之间的连接中。通过安全相关的执行器134可以关断负载28的电流供给装置136,由此可能的是在出现相应的故障时至少将负载28过渡至安全状态中。安全相关的程序输出变量的瞬时值根据按照安全控制指令的安全相关的程序输入变量来确定。
如果第一当前安全指令106是安全诊断指令,则第二安全相关的数据138在第一处理器30与输入/输出单元36之间被交换。例如,为第一处理器30同样输送安全相关的控制输入信号128的瞬时值和/或安全相关的控制输出信号132的瞬时值。根据所输送的瞬时值于是可以确定的是,存在要控制的设备22的何种处理状态。相应的诊断报告借助诊断显示单元124来显示。
第二当前的安全指令110是安全相关指令,其中根据在第一处理器30中处理的第一当前安全指令106进行处理。在第二当前安全指令110方面使用第三安全相关的数据140,其对应于第一安全相关的数据126。
根据其不仅由第一处理器30而且由第二处理器32产生安全相关的控制输出信号132的值的前述实施并不意味着:由这两个处理器30、32产生的值同时作为控制输出信号132输出。前述实施仅仅要反映在要解决的安全任务方面冗余的安全控制装置20的结构。两个处理器30、32构建为确定控制输出信号132的值。在安全控制装置20无故障运行期间仅仅输出由处理器例如第一处理器30确定的值,作为控制输出信号132。
通过输入/输出单元36在安全控制装置20与安全相关的传感器130、安全相关的执行器134以及诊断显示单元124之间交换测试信号142。借助测试信号142可以在安全控制装置20中确定连接到其上的部件是否无故障地工作,这是必要的,因为只要与安全控制装置20连接的设备出现故障就必须保证要控制的设备22的安全状态。
在图2中示出了用于根据源代码产生机器代码的方法,其中仅仅关注第一源代码54和因此源代码和应用程序的安全相关的环境。
第一源代码部分54包括用附图标记160表示的第一安全控制指令FSSA1QC。所使用的术语在此具有如下意义:FS代表“故障安全”并且因此显示出,其为安全相关的控制指令。SA一般而言代表“控制指令”。通过后置数字1得到了安全控制指令的标志,借助该标志可以将该安全控制指令在多个安全控制指令识别出。QC显示出,其为源代码侧的安全控制指令。术语在图2中统一地使用。
用附图标记162标识第二安全控制指令FSSA2QC。两个安全控制指令FSSA1QC和FSSA2QC包含在第一指令58中。用附图标记164、166标识第一安全诊断指令FSDA1QC和第二安全诊断指令FSDA2QC。DA在此一般而言代表“诊断指令”。通过后置例如数字1得到了标志,借助其可以将安全诊断指令在多个安全诊断指令中识别出。
两个安全诊断指令FSDA1QC和FSDA2QC被用附图标记168表示的第二诊断标记FSDM1QC和用附图标记170表示的第二诊断标记FSDM2QC包围或加框或被其包含。DM在此一般而言代表“诊断标记”。通过后置数字1例如得到标志,借助其可以识别诊断标记。借助两个诊断标记FSDM1QC和FSDM2QC可以在进行编译时识别安全诊断指令,其包含在第一源代码部分54中。两个安全诊断指令FSDA1QC和FSDA2QC以及两个诊断标记FSDM1QC和FSDM2QC包含在第一诊断指令60中。
第一源代码部分54被输送给第一编译器66,这通过箭头172表示。用第一编译器66产生第一通道数据174。第一通道数据174与包含有第一处理器30的通道相关。用第一机器代码产生单元74产生第一安全代码80,其包括第三控制指令84。第三控制指令84是用附图标记176表示的第三安全控制指令FSSA1MCA和用附图标记178表示的第四安全控制指令FSSA2MCA。MC显示出,其为机器代码侧的安全控制指令。字母A显示出,安全控制指令分配给第一处理器30并且因此分配给通道A。在源代码侧的安全单元控制指令与机器代码侧的安全控制指令之间适用如下相关性:机器代码侧的第三安全控制指令FSSA1MCA与源代码侧的第一安全控制指令FSSA1QC相关。机器代码侧的第四安全控制指令FSSA2MCA与源代码侧的第二安全控制指令FSSA2QC相关。
此外,第一安全代码80包括第三诊断指令86。第三诊断指令86是用附图标记180表示的第三安全诊断指令FSDA1MCA和用附图标记182表示的第四安全诊断指令FSDA2MCA。在源代码侧的安全诊断指令与机器代码侧的安全诊断指令之间适用如下相关性:机器代码侧的第三安全诊断指令FSDA1MCA与源代码侧的第一安全诊断指令FSDA1QC相关。机器代码侧的第四安全诊断指令FSDA2MCA与源代码侧的第二安全诊断指令FSDA2QC相关。
借助第一校验和确定单元76确定用附图标记102表示的用于第一安全代码80的第一校验和CRCFSA。字母CRC(循环冗余校验)表示:所述的校验和确定根据CRC方法来进行。在创建第一校验和CRCFSA时,仅仅考虑在第一安全代码80中包含的安全控制指令,即两个安全控制指令FSSA1MCA和FSSA2MCA。不考虑在第一安全代码80中包含的安全诊断指令,即两个安全诊断指令FSDA1MCA和FSDA2MCA。
第一校验和确定单元76于是构建为在第一源代码部分54中包含的安全诊断指令在确定第一校验和CRCFSA时不被考虑。为此,第一校验和确定单元76识别在第一源代码部分54中包含的诊断标记。通过两个诊断标记FSDM1QC和FSDM2QC针对第一校验和确定单元76来确定,使得在这两个诊断标记之间设置的安全指令在创建第一校验和CRCFSA时不被考虑。
此外,第一源代码部分54输送给第二编译器68,这通过箭头184来表示。借助第二编译器68产生第二通道数据186。第二通道数据186指定于包含有第二处理器32的通道。借助第二机器代码产生单元92产生第二安全代码98。第二安全代码98包括第五控制指令100。第五控制指令100是用附图标记188表示的第五安全控制指令FSSA1MCB和用附图标记190表示的第六安全控制指令FSSA2MCB。字母B显示出,这些安全控制指令分配给第二处理器32和因此分配给通道B。在此在源代码侧的安全控制指令与机器代码侧的安全控制指令之间适用如下相关性:机器代码侧的第五安全控制指令FSSA1MCB与源代码侧的第一安全控制指令FSSA1QC相关。机器代码侧的第六安全控制指令FSSA2MCB与源代码侧的第二安全控制指令FSSA2QC相关。
第二机器代码产生单元92在此构建为不考虑在第一源代码部分54中包含的安全诊断指令,即两个安全诊断指令FSDA1QC和FSDA2QC。为此,第二机器代码产生单元92识别在第一源代码部分中包含的诊断标记,即两个诊断标记FSDM1QC和FSDM2GC。通过两个诊断标记FSDM1QC和FSDM2GC针对第二机器代码产生单元92来确定:在这两个诊断标记之间设置的安全指令在创建第一安全代码98时不被考虑。两个诊断标记将在其间设置的安全指令表示为安全诊断指令。
通过第二校验和确定单元94确定第二安全代码98的用附图标记104表示的第二校验和CRCFSB。由于第二安全代码98仅仅包含安全控制指令,所以在确定第二校验和CRCFSB的情况下不考虑安全诊断指令。
由于这两个机器代码侧的安全诊断指令FSDA1MCA和FSDA2MCA在确定第一校验和CRCFSA的情况下不被考虑,所以这两个代码侧的安全诊断指令FSDA1QC和FSDA2QC在此情况下不被考虑。

Claims (5)

1.一种用于创建安全控制装置(20)的应用程序的方法,该安全控制装置构建为控制自动化设备(22),该自动化设备带有多个传感器(26)和多个执行器(24),该方法具有如下步骤:
-创建应用程序的源代码(52),其中源代码(52)包括多个用于控制执行器(24)的控制指令(160,162)和多个用于产生诊断报告的诊断指令(164,166),其中在处理控制指令(160,162)期间,按故障安全的方式处理安全相关的程序变量,
-根据源代码(52)产生机器代码(70),
-确定至少一个校验和(102,104),其中针对机器代码(80,98)的至少一部分确定校验和(102,104),并且其中在确定校验和(102,104)时不考虑诊断指令(164,166)。
2.根据权利要求1所述的方法,其特征在于,诊断指令(164,166)被标记。
3.根据上述权利要求之一所述的方法,其特征在于,机器代码(70)包括第一安全代码(80)和第二安全代码(98),其中针对两个安全代码(80,98)的每个分别确定校验和(102,104),其中根据所述源代码(52)借助两个编译器(66,68)产生所述机器代码(70)。
4.根据权利要求1或2所述的方法,其特征在于,机器代码(70)包括第一安全代码(80)和第二安全代码(98),其中在产生第一安全代码(80)的情况下考虑诊断指令(164,166)并且在产生第二安全代码(98)的情况下不考虑诊断指令(164,166),其中根据源代码(52)借助两个编译器(66,68)产生所述机器代码(70)。
5.一种用于创建安全控制装置(20)的应用程序的装置,该安全控制装置构建为控制自动化设备(22),该自动化设备带有多个传感器(26)和多个执行器(24),
具有:用于创建应用程序的源代码(52)的单元(12,14,16),其中源代码(52)包括用于控制执行器(24)的多个控制指令(160,162)和用于产生诊断报告的多个诊断指令(164,166),其中在处理控制指令(160,162)期间,按故障安全的方式处理安全相关的程序变量,
以及具有:用于根据源代码(52)来产生机器代码(70)的单元(72,92),
具有:用于确定至少一个校验和(102,104)的单元(76,94),其中针对机器代码(80,98)的至少一部分确定校验和(102,104),并且其中在确定校验和(102,104)时不考虑诊断指令(164,166)。
CN201080027502.3A 2009-04-20 2010-04-20 用于创建安全控制装置的应用程序的方法和装置 Active CN102460397B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102009019089.9 2009-04-20
DE102009019089A DE102009019089A1 (de) 2009-04-20 2009-04-20 Verfahren und Vorrichtung zum Erstellen eines Anwenderprogramms für eine Sicherheitssteuerung
PCT/EP2010/002435 WO2010121795A1 (de) 2009-04-20 2010-04-20 Verfahren und vorrichtung zum erstellen eines anwenderprogramms für eine sicherheitssteuerung

Publications (2)

Publication Number Publication Date
CN102460397A CN102460397A (zh) 2012-05-16
CN102460397B true CN102460397B (zh) 2016-01-20

Family

ID=42543305

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080027502.3A Active CN102460397B (zh) 2009-04-20 2010-04-20 用于创建安全控制装置的应用程序的方法和装置

Country Status (8)

Country Link
US (1) US8910131B2 (zh)
EP (1) EP2422271B1 (zh)
JP (1) JP5436660B2 (zh)
CN (1) CN102460397B (zh)
DE (1) DE102009019089A1 (zh)
ES (1) ES2417309T3 (zh)
HK (1) HK1166533A1 (zh)
WO (1) WO2010121795A1 (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102005061393A1 (de) * 2005-12-22 2007-07-05 Robert Bosch Gmbh Verfahren zur Verteilung von Softwaremodulen
EP2495625B1 (de) * 2011-03-04 2020-06-17 Siemens Aktiengesellschaft Verfahren und Programmiersystem für die Authentifizierung eines sicherheitsrelevanten Programms einer Automatisierungseinrichtung
JP5816019B2 (ja) * 2011-07-29 2015-11-17 Ntn株式会社 冗長機能付きステアバイワイヤ式操舵装置の制御装置
DE202012013193U1 (de) 2012-06-26 2015-05-06 INTER CONTROL Hermann Köhler Elektrik GmbH & Co KG Vorrichtung für eine sicherheitskritische Anwendung
US8938710B2 (en) * 2012-12-28 2015-01-20 The Mathworks, Inc. Preventing interference between subsystem blocks at a design time
DE102013218814A1 (de) * 2013-09-19 2015-03-19 Siemens Aktiengesellschaft Verfahren zum Betreiben eines sicherheitskritischen Systems
JP6045716B2 (ja) * 2013-10-31 2016-12-14 三菱電機株式会社 プログラム作成装置、プログラム作成方法、およびプログラム
JP5619331B1 (ja) * 2014-03-25 2014-11-05 三菱電機株式会社 プログラミング装置及び実行コード生成方法
DE102014208774A1 (de) * 2014-05-09 2015-11-12 Siemens Aktiengesellschaft Rechenvorrichtung mit einer Manipulations-Erkennung sowie Verfahren zur Erkennung einer Manipulation einer Rechenvorrichtung
KR101906823B1 (ko) * 2016-03-07 2018-12-05 주식회사 럭스로보 멀티 모듈 컴파일 시스템 및 멀티 모듈 컴파일 방법, 그리고 컴파일러 프로그램을 갖는 컴퓨터 판독가능 저장매체
JP6520772B2 (ja) * 2016-03-14 2019-05-29 オムロン株式会社 評価システム、評価プログラムおよび評価方法
EP3355230A1 (de) * 2017-01-25 2018-08-01 Siemens Aktiengesellschaft Verfahren und vorrichtung zum rechnergestützten erstellen und ausführen einer steuerfunktion
EP3499324B1 (de) * 2017-12-12 2021-01-27 Sick Ag Verfahren zur modularen verifikation einer konfiguration eines geräts
US10503634B1 (en) * 2018-05-25 2019-12-10 Microsoft Technology Licensing, Llc Semantic comparison of computer compiler traces
DE102018120344A1 (de) * 2018-08-21 2020-02-27 Pilz Gmbh & Co. Kg Automatisierungssystem zur Überwachung eines sicherheitskritischen Prozesses
DE102018120347A1 (de) * 2018-08-21 2020-02-27 Pilz Gmbh & Co. Kg Automatisierungssystem zur Überwachung eines sicherheitskritischen Prozesses
DE102018129354A1 (de) 2018-11-21 2020-05-28 Phoenix Contact Gmbh & Co. Kg Verfahren zum Bearbeiten von Anwendungsprogrammen auf einem verteilten Automatisierungssystem
DE102021004639A1 (de) 2021-09-14 2023-03-16 Hydac Electronic Gmbh Sensorvorrichtung zum Ermitteln einer Größe
CN117032940B (zh) * 2023-10-08 2024-02-13 北京小米移动软件有限公司 资源调度的系统、方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1353834A (zh) * 1999-04-22 2002-06-12 陶氏化学公司 具有集成安全控制系统的过程控制系统
US6868538B1 (en) * 1996-04-12 2005-03-15 Fisher-Rosemount Systems, Inc. Object-oriented programmable controller
CN1666178A (zh) * 2002-06-28 2005-09-07 Abb股份有限公司 用于安全控制的编译器的再验证

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR920001574B1 (ko) 1987-05-29 1992-02-18 후지쓰 가부시끼가이샤 전송선로를 통해 전송되는 신호의 에러 검출 방법 및 시스템
JPH06242957A (ja) * 1993-02-16 1994-09-02 Fujitsu Ltd プログラム実行制御装置
JPH07295602A (ja) * 1994-04-22 1995-11-10 Shimadzu Corp 二重化制御装置
JPH10187202A (ja) * 1996-12-24 1998-07-14 Toshiba Corp マイクロプロセッサ制御装置
US6161051A (en) * 1998-05-08 2000-12-12 Rockwell Technologies, Llc System, method and article of manufacture for utilizing external models for enterprise wide control
US6201996B1 (en) * 1998-05-29 2001-03-13 Control Technology Corporationa Object-oriented programmable industrial controller with distributed interface architecture
DE10108962A1 (de) * 2001-02-20 2002-09-12 Pilz Gmbh & Co Verfahren und Vorrichtung zum Programmieren einer Sicherheitssteuerung
WO2003001343A2 (en) * 2001-06-22 2003-01-03 Wonderware Corporation Supervisory process control and manufacturing information system application having an extensible component model
US6880149B2 (en) * 2002-04-01 2005-04-12 Pace Anti-Piracy Method for runtime code integrity validation using code block checksums
US7076311B2 (en) * 2002-07-09 2006-07-11 Rockwell Automation Technologies, Inc. Configurable safety system for implementation on industrial system and method of implementing same
DE10240584A1 (de) * 2002-08-28 2004-03-11 Pilz Gmbh & Co. Sicherheitssteuerung zum fehlersicheren Steuern von sicherheitskritischen Prozessen sowie Verfahren zum Aufspielen eines neuen Betriebsprogrammes auf eine solche
SE524639C2 (sv) * 2002-10-15 2004-09-07 Abb As Feldetektering i en industriell kontroller under säkerhetsrelaterad styrning
US7818729B1 (en) * 2003-09-15 2010-10-19 Thomas Plum Automated safe secure techniques for eliminating undefined behavior in computer software
US7203885B2 (en) * 2003-09-30 2007-04-10 Rockwell Automation Technologies, Inc. Safety protocol for industrial controller
DE102004035456A1 (de) * 2004-07-22 2006-02-16 Robert Bosch Gmbh Verfahren zum Steuern von technischen Vorgängen und Vorrichtung zum Überwachen des Ablaufs eines Steuerprogramms auf einem Rechengrät
DE102004055971B8 (de) * 2004-11-19 2012-06-21 Kw-Software Gmbh Verfahren und Vorrichtung zur sicheren Parametierung gemäß IEC 61508 SIL 1 bis 3 oder EN 954-1 Kategorie 1 bis 4
DE102005046696B4 (de) * 2005-09-29 2009-11-05 Fujitsu Siemens Computers Gmbh Verfahren zum Erzeugen von geschütztem Programmcode und Verfahren zum Ausführen von Programmcode eines geschützten Computerprogramms sowie Computerprogrammprodukt
US8161465B2 (en) * 2006-07-27 2012-04-17 Oracle International Corporation Method and apparatus for performing conditional compilation
JP4849261B2 (ja) * 2007-05-14 2012-01-11 オムロン株式会社 安全アプリケーション作成支援装置
JP5174798B2 (ja) * 2009-01-26 2013-04-03 三菱電機株式会社 安全制御プログラムの安全性診断装置及び安全性診断方法
DE102009011679A1 (de) * 2009-02-23 2010-08-26 Pilz Gmbh & Co. Kg Verfahren und Vorrichtung zum Erstellen eines Anwenderprogrammes für eine Sicherheitssteuerung

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6868538B1 (en) * 1996-04-12 2005-03-15 Fisher-Rosemount Systems, Inc. Object-oriented programmable controller
CN1353834A (zh) * 1999-04-22 2002-06-12 陶氏化学公司 具有集成安全控制系统的过程控制系统
CN1666178A (zh) * 2002-06-28 2005-09-07 Abb股份有限公司 用于安全控制的编译器的再验证

Also Published As

Publication number Publication date
JP5436660B2 (ja) 2014-03-05
ES2417309T3 (es) 2013-08-07
HK1166533A1 (en) 2012-11-02
WO2010121795A1 (de) 2010-10-28
DE102009019089A1 (de) 2010-11-04
EP2422271B1 (de) 2013-06-19
CN102460397A (zh) 2012-05-16
JP2012524352A (ja) 2012-10-11
EP2422271A1 (de) 2012-02-29
US20120096428A1 (en) 2012-04-19
US8910131B2 (en) 2014-12-09

Similar Documents

Publication Publication Date Title
CN102460397B (zh) 用于创建安全控制装置的应用程序的方法和装置
EP3076291B1 (en) Method for assignment of verification numbers
JP2004524620A (ja) フェイルセーフ制御システムのプログラミング方法及び装置
WO2015136959A1 (ja) 制御システム、方法、プログラムおよび情報処理装置
JP4128083B2 (ja) ソフトウェア共通類型故障を排除したデジタル原子炉保護システム
CN103124938B (zh) 对可编程逻辑控制器的执行环境进行升级的方法及系统
CN101833298B (zh) 输入/输出单元以及产业用控制器
CN102460316B (zh) 用于控制自动化设备的安全控制装置和方法
NO331420B1 (no) Fremgangsmåte og midler for å øke sikkerhetsintegritets¬nivået til et kontrollsystem
CN103459691B (zh) 经编机及访问并控制该机器的方法
CN102292681B (zh) 用于控制带有多个设备硬件部件的自动化设备的安全控制装置和方法
CN102292680A (zh) 用于为安全控制装置创建应用程序的方法和装置
CN106873443A (zh) 用于对安全控制器进行编程的方法
JP2014137621A (ja) 安全コントローラのユーザプログラムの設計を支援する方法、装置およびプログラム
US20110264396A1 (en) Electrical circuit with physical layer diagnostics system
CN110678817B (zh) 用于参数化现场设备的方法和可参数化的现场设备
JP2009042913A (ja) マルチplc・分散制御システムにおけるツール装置
CN106164787B (zh) 用于安全关断电力负载的方法和装置
CN108572611A (zh) 信息处理装置、信息处理方法及计算机可读取记录媒体
US10606239B2 (en) Shaping plant and safety program
JP2008027156A (ja) シミュレーション装置
KR20100051080A (ko) 자동차 오작동의 진단을 위한 방법 및 시스템
JP5174798B2 (ja) 安全制御プログラムの安全性診断装置及び安全性診断方法
US11194307B2 (en) Controller and control system for execution of a callback operation for an industrial machine
Soliman et al. A methodology to upgrade legacy industrial systems to meet safety regulations

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