技术领域
[0001] 本技术涉及评价安全程序的功能安全的评价系统和评价方法。
相关背景技术
[0002] 为了安全地使用被用于许多生产现场的器械而必须使用依照国际标准的安全设备(安全组件)。该安全设备的目的在于,防止人的安全受到机器人等自动动作的装置的威胁。这种安全设备以执行安全程序的安全控制器为首,包含检测人的存在和侵入的检测设备、受理紧急时的操作的输入设备以及实际使设备停止的输出设备等。
[0003] 作为这种确保生产现场的安全的技术之一,例如,日本特开2014-137621号公报公开有一种辅助设计安全控制器的用户程序的方法,能够使安全控制器的用户程序的设计变得容易。
[0004] 日本特开2014-137621号公报公开有下述这样的结构:安全控制器与安全I/O端子经由总线型网络连接,安全控制器根据来自与安全I/O端子连接的安全输入设备的输入信号,对与安全I/O端子连接的安全输出设备输出用于进行安全动作的指令。
[0005] 对于由安全控制器执行的安全程序,需要确认按照预先设计的那样进行动作。日本特开2014-137621号公报虽然公开有一种辅助设计安全控制器的用户程序的方法,能够使安全控制器的用户程序的设计变得容易,但是,对于检查已完成的安全控制器的用户程序的方法却没有任何启示。
[0006] 因此,期望能够更容易地评价安全程序的功能安全的技术。
具体实施方式
[0036] 参照附图,对本发明的实施方式详细地进行说明。另外,对图中的相同或相当的部分标记相同的标号而不重复其说明。
[0037] <A.评价系统的概要>
[0038] 首先,对本实施方式的评价系统的概要进行说明。评价系统评价任意安全程序的功能安全。
[0039] 在本说明书中,“安全程序”是用于在预定的条件(安全条件)成立时使对象设备以确保安全的方式动作的程序,意味着定义安全控制器的处理的命令群。更具体来说,安全程序包含用于针对1个或多个输入信号决定1个或多个输出信号的值的命令的组合。
[0040] 安全程序只要是定义安全控制器的处理的程序,可以是任何实体。即,安全程序可以作为1个或多个源代码存在,也可以作为1个或多个目标代码存在,还可以是能够由安全控制器的处理器执行的形式(执行形式)。
[0041] 此外,也可以使用功能框图(FBD:Function Block Diagram)来记述安全程序。或者,也可以通过梯形图(LD:Ladder Diagram)、命令列表(IL:Instruction List)、结构化文本(ST:Structured Text)以及顺序功能图(SFC:Sequential Function Chart)中的任意一个或它们的组合来记述。而且,或者也可以利用Java 或C语言这样的通用编程语言来记述。
[0042] 另外,优选作为进行PLC编程的国际基准IEC 61131-3(JIS B 3503)的普及活动以及不依赖于供应商的标准功能块图的规格制定和认定的第三方机构的 依据在technical committee 5中公开的条款来制作安全程序。
[0043] 本实施方式的评价系统中的安全程序的功能安全的评价用于验证基于对象安全程序的行动是否符合适当的安全规格。具体而言,输入被输入到安全程序中的变量值的各组合,依次判断针对该输入的输出结果是否与本来应有的结果一致。评价系统能够自动执行与这样的输入值的各组合有关的验证动作。
[0044] 在以下的说明中,对被记作变量程序的安全程序进行例示。因此,将实际上可在安全控制器与安全组件等之间交换的信号(典型的是输入信号和输出信号)在安全程序内分别作为“变量”处理。由于这些实际的信号与安全程序内的对应的变量本质上相同,因此,在以下的说明中,将它们统称作“信号”。即,在本说明书中,“信号”除了实际可交换的电信号以外,还可以包含在安全控制器上参照对该电信号分配的值的变量。
[0045] 参照图1,作为评价系统1的主要功能,评价系统1包含程序执行功能2、比较功能4以及解析/提取功能6。
[0046] 程序执行功能2依照安全程序10按照每个规定周期或每次发生事件执行运算处理并输出其执行结果。在程序执行功能2的程序执行时,取得1个或多个输入值,根据该取得的输入值来执行逻辑运算等。预先准备包含输入值和与该输入值对应的输出期待值的组合的评价条件20,根据评价条件20依次更新安全程序10的输入值。
[0047] 比较功能4比较将基于评价条件20的输入值输入到程序执行功能2时输出的输出值和在评价条件20中与该输入值对应的输出期待值。在双方一致的情况下,判断为一次安全动作是健全的。
[0048] 在评价条件20中储存有输入值和与该输入值对应的输出期待值,并且还储存有恢复动作的条件。在本实施方式的功能安全评价中,依照已设定的恢复动作的条件改变或维持先前输入的输入值。并且,还对伴随该输入值的变化或维持的输出值的变化或维持是否符合预先设定的恢复动作的条件进行判断。
[0049] 这样,在本实施方式中,除了是否通过给出作为安全动作的触发的输入值来执行适当的安全动作的评价(一次安全动作的评价)以外,在作为安全动作的触发的输入值恢复到原来的值时,还对是维持停止状态等还是停止状态等恢复到通常的动作状态进行评价(二次安全动作的评价)。另外,在二次安全动作的评价中,对是否是依照预先设定的恢复动作的条件的行动进行判断。
[0050] 以上的评价结果也可以作为功能安全评价结果30输出到画面上或纸面上。
[0051] 本实施方式的评价系统1也可以安装自动提取安全程序10中定义的输入值并自动生成评价条件20所需的输入值的列表等的功能。当安全程序10中包含的逻辑(安全通道)增多时,难以手动提取全部输入值与输出值之间的关系。因此,在本实施方式的评价系统1中,解析/提取功能6解析安全程序10,提取其中包含的输入值等,以辅助评价条件20的制作。通过安装这种辅助功能,能够更可靠地评价功能安全。
[0052] 以下,更详细地对执行功能安全评价的处理以及辅助评价条件20的制作的处理等进行说明。
[0053] <B.评价系统的硬件结构>
[0054] 接下来,参照图2,对评价系统1的硬件结构进行例示。
[0055] 图2所示的本实施方式的评价系统1典型地是通过通用计算机执行预先安装的程序来实现的。具体而言,评价系统1作为主要的组件包含:处理器102,其执行操作系统(OS:Operating System)和后述的各种程序;存储器104,其提供用于储存处理器102执行程序所需的数据的操作区域;输入部106,其受理键盘或鼠标等的用户操作;输出部108,其输出显示器、各种指示器、打印机等的处理结果;网络接口(I/F:Inter Face)110,其用于与外部网络进行通信;光驱112;本地通信接口(I/F)116,其用于与安全控制器等进行通信;以及辅助存储補装置120。这些组件以能够经由内部总线118等进行数据通信的方式连接。
[0056] 评价系统1具有光驱112,从非易失地储存计算机可读取的程序的光学记录介质(例如,DVD(Digital Versatile Disc:数字光盘)等)的计算机可读取的记录介质114,读取各种程序并安装到辅助存储装置120等中。本实施方式的功能安全的评价涉及的处理也可以作为针对安全控制器提供设定、编程、调试等功能的开发环境程序的一部分来提供。
[0057] 由评价系统1执行的各种程序可以经由计算机可读取的记录介质114进行安装,也可以以从网络上的服务器装置等下载的形式进行安装。此外,还存在以利用OS提供的模块的一部分的形式来实现本实施方式的功能安全的评价涉及的程序的情况。在这种情况下,并不发布实现本实施方式的功能安全的评价所需的全部软件模块,而是仅发布该软件模块的一部分。这种情况也包含在本发明的技术范围内是显而易见的。此外,还可以将本实施方式的功能安全的评价涉及的处理作为其它程序或软件的一部分来安装。
[0058] 辅助存储装置120例如由HDD(Hard Disk Drive:硬盘驱动器)、SSD(Flash Solid State Drive:闪存固态驱动器)等构成,用于储存由处理器102执行的程序。具体而言,辅助存储装置120作为提供后述处理的程序包含用于根据安全程序(源程序)生成可由处理器102执行的代码(执行模块)的执行模块生成程序122、用于模拟安全控制器而执行安全程序(执行模块)的仿真程序124以及用于评价后述的功能安全的功能安全评价程序126。这些程序提供的功能和处理将在后面进行叙述。
[0059] 此外,辅助存储装置120保持作为功能安全的评价对象的安全程序10和各种设定130。
[0060] 在图2中,通过由通用计算机执行程序来实现本实施方式的安全程序的功能安全的评价,但是,也可以利用硬连线电路安装其全部或一部分来代替这种结构。例如,也可以使用ASIC(Application Specific Integrated Circuit:专用集成电路)或FPGA(Field-Programmable Gate Array:现场可编程门阵列)来安装通过处理器102执行上述各种程序而提供的功能。
[0061] <C.评价系统的软件结构>
[0062] 接下来,对评价系统1的软件结构进行例示。图3是示出本实施方式的评价系统1的软件结构的一例的示意图。参照图3,评价系统1作为其软件组件包含执行模块生成部152、仿真器154、输入值变更部156、比较部158、结果输出部160以及评价条件生成部170。
[0063] 执行模块生成部152是通过由处理器102执行执行模块生成程序122(图2)而实现的,根据安全程序10生成执行模块。执行模块生成部152典型地包含编译、汇编、链接等功能。
[0064] 仿真器154是通过由处理器102执行仿真器程序124(图2)而实现的,执行由执行模块生成部152生成的执行程序。
[0065] 输入值变更部156依照预先准备的评价条件而将用于评价功能安全的输入值给出至仿真器154。比较部158比较通过将用于评价功能安全的输入值给出至仿真器154而计算出的输出值和与该输入值对应的输出期待值,并输出其比较结果。关于该比较处理,如后所述存在多种。结果输出部160将来自比较部158的比较结果作为功能安全的评价输出进行输出。
[0066] 输入值变更部156、比较部158以及结果输出部160是通过由处理器102执行功能安全评价程序126(图2)而实现的。
[0067] 评价条件生成部170解析安全程序10的内容,生成功能安全评价所需的输入值的组合等。
[0068] 在图2和图3中,对使用通用计算机中安装的仿真器来执行安全程序的结构进行了例示,但是,也可以使用实际的安全控制器。以下,参照图4A、4B,对本实施方式的评价系统的具体结构例进行例示。
[0069] 图4A示出仅由通用计算机实现评价系统的示例,图4B示出使用通用计算机和安全控制器实现评价系统的示例。
[0070] 如图4A所示,在仅由通用计算机PC实现评价系统的情况下,要在通用计算机PC上安装仿真器154、比较部158以及结果输出部160。
[0071] 与之对应地,在使用通用计算机PC和安全控制器实现评价系统的情况下,以能够进行数据交换的方式连接通用计算机PC和安全控制器。在此基础上,在通用计算机PC上安装比较部158和结果输出部160,并且在安全控制器上执行对象的安全程序10。
[0072] 这样,评价系统1具有下述的处理执行功能:通过根据1个或多个输入信号执行依照安全程序10的运算来决定对应的1个或多个输出信号的值,可利用能够实际地或假想地执行安全程序10的环境来实现该处理执行功能。
[0073] <D.安全程序>
[0074] 接下来,参照图5,对以本实施方式的评价系统1为对象的安全程序的一例进行说明。在本实施方式中,作为一例,示出使用依照国际基准IEC 61131-3(JIS B 3503)功能块图(FBD:Function Block Diagram)进行记述的示例。
[0075] 图5所示的安全程序10典型地是假定下述设备等的程序:配置有任意的机器人,利用安全围栏围住位于机器人周围的危险区,并且,人能够在安全围栏的一部分出入。在人出入危险区的部分设有光幕,并且,在危险区周围设有紧急停止按钮,该紧急停止按钮能够在发生万一的事态时使机器人紧急停止。
[0076] 图5所示的安全程序10包含2个紧急停止功能块(以下,也记作“紧急停止FB”)12、14、输出检查功能块(以下,也记作“输出检查FB”)18以及连接双方的“与”块16。紧急停止FB12是处理来自紧急停止按钮的输入信号的逻辑,紧急停止FB14是用于处理来自光幕的输入信号的逻辑。
[0077] 在以本实施方式的评价系统1为对象的安全程序10中,利用变量编程来记述程序。即,从紧急停止按钮或光幕输出的信号分别依照预定的设定而被分配给独一无二的内部变量。在安全程序10中,通过针对各功能块将适当的内部变量与输入或输出逻辑性地相关联,从而实现目的动作。
[0078] 作为紧急停止FB12、14各自的输入,共计具有设定功能块处理的有效/无效的“Activate”、被输入从紧急停止的安全组件输出的信号的“S_EStopIn”、被输入设定是否开始复位之后的程序执行的信号的“S_StartReset”、被输入设定安全动作之后的复位类别的信号的“S_AutoReset”以及被输入使安全动作之后的动作复位的信号的“Reset”这5个。
[0079] 此外,作为紧急停止FB12、14各自的输出,共计具有输出表示功能块是否为运转状态的信号的“Ready”、输出指示安全动作的信号的“S_EStopOut”、输出表示发生某种错误的信号的“Error”以及输出与发生的错误内容对应的代码的“DiagCode”这4个。
[0080] 在本实施方式中,在安全程序10中,设正常时的输入值和输出值为“TRUE”(“1”或“真”)。即,在以某种条件来进行安全动作的情况下,通过使作为该安全动作的触发的输入值变化成“FALSE(“0”或“假”)”,由此使得输出值也成为“FALSE”,对象装置利用“FALSE”的输出值进行安全动作。
[0081] 被设定为输入信号和输出信号的初始值的“TRUE”使用与如下的存储器的状态下示出的值(即,“FALSE”)不同的值,该存储器的状态与对执行安全程序10的安全控制器供给的电源丧失时相同。即,通过使用与在安全控制器的非易失性存储器中未保持电荷等的状态下示出的值不同的值,能够在硬件的故障等时实现进行安全动作的所谓的故障防护。
[0082] 另外,对正常时和紧急时的输入值和输出值分配值是设计事项,可以是任何值。但是,从上述的故障防护的观点等出发,优选将正常时的输入值和输出值设为“TRUE”。
[0083] 在图5所示的安全程序10中,对紧急停止FB12的输入“S_EStopIn”分配表示从紧急停止按钮输出的信号的变量“Var_EmergencyStop1”,对输入“Reset”分配表示针对安全控制器的系统复位的变量“SystemReset”。
[0084] 对紧急停止FB14的输入“S_EStopIn”分配表示从光幕输出的信号的变量“Var_LightCurtain1”,对输入“Reset”分配表示针对安全控制器的系统复位的变量“SystemReset”。
[0085] 在紧急停止FB12、14的“Activate”中都设定“TRUE”即处理有效,在“S_StartReset”中都设定“TRUE”即复位之后的程序执行,在“S_AutoReset”中都设定“FALSE”,即设定“手动复位”作为复位类别。
[0086] 当被输入到“S_EStopIn”的变量成为“FALSE”时,基本上紧急停止FB12、14各自的“S_EStopOut”的输出值会变化成“FALSE”。在这样的安全动作之后,依照已设定的复位类别,根据被输入到“S_EStopIn”的变量和/或被输入到“Reset”的变量的值,使“S_EStopOut”的输出值复位或维持“S_EStopOut”的输出值。
[0087] 来自紧急停止FB12和紧急停止FB14的各个紧急停止FB的“S_EStopOut”被输入到“与”块16中,双方的逻辑与被输入到输出检查FB18中。
[0088] 输出检查FB18是检查掌管安全动作的安全组件是否按照指令发挥功能的逻辑。作为输出检查FB18的输入,共计具有设定功能块的处理有效/无效的“Activate”、被输入表示安全组件的动作指令的信号的“S_OutControl”、被输入表示安全组件的状态值的信号的“S_EDM1”和“S_EDM2”、被输入表示健全性的监视周期的值的“Monitoring Time”、被输入设定是否开始复位之后的程序执行的信号的“S_StartReset”以及被输入使安全动作之后的状态值复位的信号的“Reset”这7个。
[0089] 此外,作为紧急停止FB18的输出,共计具有输出表示功能块是否为运转状态的信号的“Ready”、输出指示针对安全组件的安全动作的最终信号的“S_EDM_Out”、输出表示发生某种错误的信号的“Error”以及输出与发生的错误内容对应的代码的“DiagCode”这4个。
[0090] 输出检查FB18根据输入到“S_OutControl”的输入值来改变从“S_EDM_Out”给出至对象安全组件的指令值,并且,对安全组件的状态值是否与指令值一致进行判断。由此,例如能够检测出由于安全继电器的断线等引起的不动作以及由于熔接等引起的始终动作等不良情况。
[0091] 图5所示的安全程序10示出简单逻辑的一例,但是,也可以给出更多的输入信号,并且对更多的安全组件给出指令值。
[0092] <E.复位类别>
[0093] 接下来,对设定于图5所示的安全程序10中包含的紧急停止FB的复位类别进行说明。如上所述,在紧急停止FB中,作为一例,可以选择性地设定“自动复位”和“手动复位”。
[0094] “自动复位”例如在仅在来自光幕等安全组件的输入信号成为“FALSE”的期间内进行安全动作这样的情况下等是优选的。例如,可以用于仅在人侵入危险区的期间内使装置停止,在除此以外的状态下使装置动作这样的状况。通过设定这种“自动复位”,能够在对作业者确保安全的同时,减少对生产节拍时间的影响。
[0095] “手动复位”是一般的复位类别,在操作紧急停止按钮等安全组件进行安全动作之后,复位需要规定的恢复操作的情况下是优选的。例如,在操作紧急停止按钮而使装置在作业中途停止的情况下等,优选的是,在使该装置返回到初始位置后进行复位。
[0096] 这样,作为复位类别包含:“自动复位”(第1类别),其表示在输入信号的值从“FALSE”(第2输入值)返回到“TRUE”(第1输入值)时,使对应的输出信号的输出值联动地返回到原来的值;以及“手动复位”(第2类别),其表示直到预定的复位条件成立为止不使输出信号的输出值返回到原来的值。
[0097] 图6A、6B是用于说明设定于本实施方式的安全程序10中包含的紧急停止FB的复位类别的图。
[0098] 图6A示出设定“自动复位”作为复位类别的情况,图6B示出设定“手动复位”作为复位类别的情况。
[0099] 在图6A所示的“自动复位”中,当紧急停止FB的输入“S_EStopIn”从“TRUE”变化成“FALSE”时,紧急停止FB的输出“S_EStopOut”从“TRUE”变化成“FALSE”。根据该“S_EStopOut”的变化来进行安全动作。然后,当紧急停止FB的输入“S_EStopIn”从“FALSE”恢复到“TRUE”时,还一并执行复位动作。即,紧急停止FB的输出“S_EStopOut”也与紧急停止FB的输入“S_EStopIn”联动地发生变化。
[0100] 在本实施方式的评价系统1中,关于已被设定“自动复位”的输出变量,确认其值与对应的输入变量的值的变化联动地变化。
[0101] 在图6B所示的“手动复位”中,紧急停止FB的输入“S_EStopIn”从“TRUE”变化成“FALSE”,紧急停止FB的输出“S_EStopOut”从“TRUE”变化成“FALSE”之后,即使紧急停止FB的输入“S_EStopIn”从“FALSE”恢复到“TRUE”,紧急停止FB的输出“S_EStopOut”也被维持在“FALSE”。在该状态下,通过使紧急停止FB的输入“Reset”从“FALSE”变化成“TRUE”而使紧急停止FB的输出“S_EStopOut”开始从“FALSE”变化成“TRUE”。
[0102] 在本实施方式的评价系统1中,关于已被设定“手动复位”的输出变量,确认即使在执行安全动作之后对应的输入变量的值发生了变化,也维持该变化后的值,以及当被输入复位的变量时其值被复位成初始值。
[0103] <F.功能安全评价的整体流程>
[0104] 接下来,对本实施方式的评价系统1提供的功能安全评价的整体流程进行说明。
[0105] 图7是示出以本实施方式的评价系统1为对象的安全程序10的另一例的示意图。图8A、8B是说明本实施方式的功能安全评价的流程的一例的时序图。在图8A、8B中按照时序示出以图7所示的安全程序10为对象应用功能安全评价时的流程。在图7所示的安全程序10中,设被输入到紧急停止FB12的“S_EStopIn”的变量为“输入变量1”,设被输入到紧急停止FB14的“S_EStopIn”的变量为“输入变量2”,设被共同输入到紧急停止FB12、14的“Reset”的变量为“复位变量”,设从紧急停止FB12的“S_EStopOut”输出的变量为“输出变量1”。另外,图8A、8B未示出从紧急停止FB14的“S_EStopOut”输出的变量。
[0106] 图8A示出对输出变量设定“自动复位”的示例,图8B示出对输出变量设定“手动复位”的示例。
[0107] 本实施方式的功能安全评价典型地包含3个阶段(初始化阶段、截止阶段、恢复阶段)。在初始化阶段,确认在将全部输入变量设定成预先设定的初始值时,输出变量已成为适当的初始状态。在截止阶段,确认在已设定的输入变量变化成表示安全动作的值时,对应的输出变量变化成适当的值和/或对应的输出变量未发生变化。在恢复阶段,确认在输入变量和/或复位变量变化成表示复位动作的值时,以已设定的复位类别进行复位。
[0108] 在图8A、8B所示的功能安全评价的流程中,输出变量1为将“TRUE”设定为期待值的变量,预定相对于输入变量1进行联动。与此相对,输出变量2为将“FALSE”设定为期待值的变量,预定相对于输入变量1不进行联动。以下说明的判断处理是由图1所示的比较功能4和图3所示的比较部158执行的。
[0109] 首先,参照图8A,对设定“自动复位”作为复位类别时的功能安全评价的流程进行说明。
[0110] 在初始化阶段,将评价对象的输入信号的值设定成初始值(第1输入值),并且对由依照安全程序10的运算处理决定的评价对象的输出信号的值(第4输出值)是否与初始值一致进行判断。
[0111] 具体而言,将已登记的全部输入变量设置成“TRUE”(标号202)。同时,将复位变量暂时设置成“TRUE”之后(标号204),再设置成“FALSE”(标号206)。与该变化对应地,确认已登记的全部输出变量为“TRUE”(标号208)。如果任意的输出变量为“FALSE”,则判断为存在某种异常(标号210)。
[0112] 在接下来的截止阶段,使评价对象的输入信号的值从作为初始值的“TRUE”(第1输入值)变化成“FALSE”(第2输入值),并且对由依照安全程序10的运算处理决定的评价对象的输出信号的值(第1输出值)是否与对应的输出期待值一致进行判断。
[0113] 具体而言,将特定的输入变量1从“TRUE”设置成“FALSE”(标号212)。与该变化对应地,确认期待值设定已被检查(预定相对于输入变量1进行联动)的输出变量1为“FALSE”(标号214)。如果输出变量1为“TRUE”,则未与输入变量1联动而判断为存在某种异常(标号216)。另一方面,确认期待值设定未被检查(预定相对于输入变量1不进行联动)的输出变量
2为“TRUE”(标号218)。如果输出变量2为“FALSE”,则已与输入变量1联动而判断为存在某种异常(标号220)。
[0114] 在最终的恢复阶段,使评价对象的输入信号的值从“FALSE”(第2输入值)返回到“TRUE”(第1输入值),并且对由依照安全程序10的运算处理决定的评价对象的输出信号的值(第2输出值)是否与截止阶段的值(第1输出值)一致进行判断。
[0115] 具体而言,将输入变量1从“FALSE”设置成“TRUE”(标号222)。此时,复位变量仍被维持在“FALSE”。与该变化对应地,确认已登记的全部输出变量为“TRUE”(标号224、228)。如果任意的输出变量为“FALSE”,则判断为存在某种异常(标号226、230)。
[0116] 这样,在已被设定“自动复位”(第1类别)的情况下,当将输入信号的值从“FALSE”返回到“TRUE”时的评价对象的输出信号的输出值与“FALSE”(第1输出值)不同时,判断为正常。
[0117] 接下来,参照图8B,对设定“手动复位”作为复位类别时的功能安全评价的流程进行说明。在已被设定“手动复位”时的功能安全评价的流程中,初始化阶段和截止阶段分别与图8A所示的“自动复位”的初始化阶段和截止阶段相同,因此,不重复其说明。
[0118] 在恢复阶段,将输入变量1从“FALSE”设置成“TRUE”(标号232)。此时,复位变量仍被维持在“FALSE”。与该变化对应地,确认期待值设定已被检查(预定相对于输入变量1进行联动)的输出变量1为“FALSE”(标号236)。如果输出变量1变化成“TRUE”,则不等待复位变量的变化就会与输入变量1联动,判断为存在某种异常(标号238)。
[0119] 接着,将复位变量暂时设置成“TRUE”之后(标号240),再设置成“FALSE”(标号242)。与该变化对应地,确认已登记的全部输出变量为“TRUE”(标号244)。如果任意的输出变量为“FALSE”,则判断为存在某种异常(标号246)。
[0120] 这样,在已被设定“手动复位”(第2类别)的情况下,当将输入信号的值从“FALSE”返回到“TRUE”时的评价对象的输出信号的输出值与“FALSE”(第1输出值)一致时,判断为正常。在此基础上,使复位信号有效,并且对由依照安全程序10的运算处理决定的评价对象的输出信号的值(第3输出值)是否与截止阶段的值(第1输出值)一致进行判断。
[0121] <G.评价条件的设定>
[0122] 本实施方式的评价系统1自动执行图8A、8B所示的功能安全评价。以下,对自动执行功能安全评价所需的评价条件20的设定方法等进行说明。
[0123] 图9是示出用于在本实施方式的评价系统1中设定评价条件20的用户接口画面的一例的示意图。评价系统1显示图9所示的设定画面300,并且受理由用户对设定画面300的设定。
[0124] 更具体来说,设定画面300包含:RUN按钮302,其指示功能安全评价的自动执行;显示按钮304,其显示功能安全评价的执行结果;变量登记按钮306,其用于登记评价对象的变量;复位变量设定区308,其设定用于复位变量的变量;输入设定显示区310,其显示输入变量的设定值;输出设定显示区320,其显示输出变量的设定值;以及期待值设定区330,其设定输出变量相对于输入变量的期待值(以下,也称作“输出期待值”)
[0125] 在复位变量设定区308设定作为复位信号被共同输入到评价对象的安全程序中包含的功能块的变量。即,评价条件20包含作为自动复位的预定的复位条件的复位信号的设定。另外,在图9所示的设定画面300中被共同输入单一的复位信号,但是,也可以针对每个功能块使用不同的复位信号。
[0126] 在输入设定显示区310中,能够登记和显示对象的安全程序中包含的输入变量的信息。在输出设定显示区320中,能够登记和显示对象的安全程序中包含的输出变量的信息。通过选择变量登记按钮306而使输入设定显示区310和输出设定显示区320中的变量登记有效。
[0127] 输入设定显示区310包含:变量名显示栏312,其显示预先设定的输入变量的变量名;注释显示栏314,其显示关于对应的输入变量的注释;复位类别显示栏316,其显示关于对应的输入变量的复位类别;以及输入类型显示栏318,其显示关于对应的输入变量的输入类型。
[0128] 输出设定显示区320包含:变量名显示栏322,其显示预先设定的输出变量的变量名;以及注释显示栏324,其显示关于对应的输出变量的注释。
[0129] 期待值设定区330受理本实施方式的功能安全评价所需的评价条件。即,期待值设定区330的各行成为功能安全评价的各条件。具体而言,期待值设定区330包含:输入变量显示区334,其显示作为对象的输入变量;注释显示栏336,其显示关于对应的输入变量的注释;复位类别显示栏338,其显示关于对应的输入变量的复位类别;以及期待值设定栏340,其设定关于对应的输入变量的各输出变量的输出期待值。
[0130] 在期待值设定栏340中,对于1个输入变量以作为对象的输出变量的数量来设定输出值(输出期待值)。在图9所示的设定画面300的示例中,与在输出设定显示区320中显示的4个输出变量对应地设有4个栏,能够在各栏中设定输出期待值。用户根据事先的安全设计在期待值设定栏340中设定适当的值。另外,在图9的期待值设定栏340中,“0”意味着在对应的输入变量成为“FALSE”时对应的输出变量也变化成“FALSE”,“1”意味着即使在对应的输入变量成为“FALSE”时对应的输出变量也维持“TRUE”。
[0131] 例如,在某一紧急停止按钮A触发配置于危险区A内的装置A的安全动作的情况下,关于与对应于来自该紧急停止按钮A的输入信号的输入变量相关联地表示向掌管位于危险区A内的装置A的紧急停止的安全继电器发送的指令的输出变量,设定表示安全动作的“FALSE”即“0”作为输出期待值。另一方面,在紧急停止按钮A并不面向危险区B而是在危险区B内设有别的紧急停止按钮B的情况下,没有预定利用对紧急停止按钮A的操作来使危险区B的装置B停止。因此,关于与对应于来自该紧急停止按钮A的输入信号的输入变量相关联地表示向掌管位于危险区B内的装置B的紧急停止的安全继电器发送的指令的输出变量,设定表示不进行安全动作的“TRUE”即“1”作为输出期待值。这样,在期待值设定栏340中,设定各个输入变量与各自的输出变量之间的关系。
[0132] 期待值设定区域330包含用于设定是否将各输入变量作为功能安全评价的对象的检查框332。在本实施方式的功能安全评价中,改变检查到对应的检查框332的输入变量的值(输入值),并且对各输出变量的值是否与期待值设定栏340中设定的期待值一致进行判断。
[0133] 如图9所示,期待值设定栏340受理评价条件20,该评价条件20包含评价对象的输入信号、评价对象的输出信号以及应与评价对象的输入信号的值的变化对应地输出的评价对象的输出信号的值即输出期待值。通常,作为评价条件20,可以包含多个输入信号、输出信号以及输出期待值的组。
[0134] 如参照图9说明的那样,本实施方式依照评价系统1受理评价条件,该评价条件包含评价对象的输入信号、评价对象的输出信号以及应与评价对象的输入信号的值的变化对应地输出的评价对象的输出信号的值即输出期待值。
[0135] 接下来,对使作为评价条件的一部分的、对图9所示的设定画面300中包含的期待值设定栏340设定输出期待值变得容易的功能的一例进行说明。
[0136] 本实施方式的评价系统1能够进行依照一般的格式(典型地,CSV(Comma-Separated Values:逗号分隔值)格式或文本格式)记述的输出期待值的数据的外部读入,以便能够使输出期待值的设定和再利用变得容易。此外,还能够将预先设定的输出期待值作为该一般的格式的数据输出。
[0137] 图10是用于说明本实施方式的评价系统中的输出期待值的出口和入口处理的图。例如,当用户选择设定画面300的导出按钮342(图9)时,将设定画面300的期待值设定栏340中设定的输出期待值的一览作为CSV格式的数据(外部输出数据346)输出/保存到外部。
[0138] 此外,当用户选择设定画面300的导入按钮344(图9)时,读入预先准备的CSV格式的数据(外部输出数据346),各值被设定于设定画面300的期待值设定栏340中。
[0139] 这样,通过安装输出期待值能够作为一般的格式的数据进行外部输出和外部读入的功能,与其它应用等之间的协作得到强化,能够更迅速且容易地进行功能安全的评价。
[0140] 除了使用图10所示的文件的与其它应用之间的协作以外,还可以直接使用由其它应用设定的输出期待值。
[0141] 图11是用于说明在本实施方式的评价系统中通过与其它应用之间的协作来设定输出期待值的处理的图。参照图11,例如,在表计算应用400上制作表示设定于期待值设定栏340中的输出期待值的表,选择和复制成为该制作出的对象的范围402,在设定画面300的期待值设定栏340上进行粘贴(所谓的复制&粘贴操作),由此,用户能够设定期望的输出期待值。
[0142] 另外,图11中,作为典型例,对与表计算应用之间的协作进行了例示,但是,不限于此,只要是能够进行复制&粘贴操作的应用,则可以与任何应用协作。
[0143] 这样,能够利用与其它应用之间的协作,更容易地设定输出期待值。
[0144] <H.功能安全评价的处理流程>
[0145] 接下来,对本实施方式的功能安全评价的处理流程进行说明。当在图9所示的设定画面300中设定评价对象的输入变量与对应的输出期待值的组时,依照以下的流程来评价对象的安全程序的功能安全。
[0146] 图12和图13是示出在本实施方式的评价系统1中执行的功能安全评价的处理流程的流程图。图12和图13所示的各步骤典型地是通过由处理器102执行功能安全评价程序126(都是图2)而实现的。另外,设图9所示的评价条件已被预先设定。
[0147] 参照图12和图13,首先,取得评价对象的安全程序,生成该取得的安全程序的执行模块(步骤S2)。然后,开始由仿真器(或外部的安全控制器)执行执行模块(步骤S4)。即,根据1个或多个输入信号执行依照安全程序的运算,由此反复执行决定对应的1个或多个输出信号的值的处理。然后,开始评价处理。
[0148] 首先,执行评价处理的初始化阶段。在初始化阶段执行如下处理:将评价对象的输入信号的值设定成作为初始值的“TRUE”(第1输入值),并且对由依照安全程序的运算决定的评价对象的输出信号的输出值是否与作为初始值的“FALSE”一致进行判断。
[0149] 具体而言,将被输入到仿真器中的全部输入变量设置成作为初始值的“TRUE”(步骤S10)。在由仿真器执行安全程序的执行模块的情况下,经由内部接口(典型地,API(Application Programming Interface:应用程序接口))将已设定的输入变量的值给出至该仿真器。另一方面,在由外部的安全控制器执行安全程序的执行模块的情况下,经由本地通信接口116等来交换输入变量和输出变量。
[0150] 接着,将复位变量暂时设置成“TRUE”之后,返回到“FALSE”(标号12)。然后,对作为评价对象的1个或多个输出变量的值是否都是“TRUE”进行判断(步骤S14)。
[0151] 在作为评价对象的任意输出变量的值为“FALSE”的情况下(在步骤S14中为“否”的情况下),确定作为“FALSE”的输出变量,并且输出初始化阶段的错误消息(步骤S16)。该情况下,中止之后的功能安全评价的处理。作为初始化阶段的错误消息,例如使用“输出变量(XXX)在复位时成为FALSE”这样的消息。
[0152] 在作为评价对象的任何输出变量的值都是“TRUE”的情况下(在步骤S14中为“是”的情况下),执行以下的截止阶段和恢复阶段的处理。针对期待值设定区330(评价条件20)中设定的每个输入变量,反复进行截止阶段和恢复阶段的处理。
[0153] 具体而言,首先,选择期待值设定区330中设定的输入变量中的、检查到对应的检查框332的1个输入变量(步骤S20)。然后,执行如下处理:使评价对象的输入信号的值从作为初始值的“TRUE”(第1输入值)变化成“FALSE”(第2输入值),并且对由依照安全程序的运算决定的评价对象的输出信号的第1输出值是否与输出期待值一致进行判断。
[0154] 具体而言,将选择出的输入变量设置成“FALSE”(步骤S22),取得作为评价对象的1个或多个输出变量的值(步骤S24)。即,选择出的输入变量被截止。接着,对关于与选择出的输入变量对应的评价对象各自的输出变量的输出期待值与已取得的各个输出变量的值是否一致进行判断(步骤S26)。即,关于作为输出期待值已设定“FALSE”的输出变量,对已取得的值是否为“FALSE”进行判断,关于作为输出期待值已设定“TRUE”的输出变量,对已取得的值是否为“TRUE”进行判断。
[0155] 在关于任何输出变量取得的值与输出期待值都不一致的情况下(在步骤S26中为“否”的情况下),确定与该输出期待值不一致的输出变量,并且输出截止阶段的错误消息(步骤S28)。该情况下,后续的恢复阶段跳过而执行步骤S60的处理。作为截止阶段的错误消息,例如使用“输出变量(XXX)与输出期待值不一致”这样的消息。
[0156] 另一方面,在关于评价对象各自的输出变量的输出期待值与已取得的各个输出变量的值全部一致的情况下(在步骤S26中为“是”的情况下),接着,执行恢复阶段的处理。即,执行如下处理:使评价对象的输入信号的值从“FALSE”(第2输入值)返回到“TRUE”(第1输入值),并且对由依照安全程序的运算决定的评价对象的输出信号的第2输出值是否与第1输出值一致进行判断。
[0157] 具体而言,对选择出的输入变量中设定的复位类别是“自动复位”还是“手动复位”进行判断(步骤S30)。
[0158] 在作为复位类别已设定“自动复位”的情况下(在步骤S30中为“自动复位”的情况下),使选择出的输入变量返回到“TRUE”(步骤S32),取得作为评价对象的1个或多个输出变量的值(步骤S34)。即,恢复选择出的输入变量。接着,对与选择出的输入变量对应的作为评价对象的任何输出变量的值是否都是“TRUE”进行判断(步骤S36)。即,对对应的全部输出变量是否也伴随着选择出的输入变量的恢复而恢复进行判断。
[0159] 在作为评价对象的任意输出变量的值仍是“FALSE”的情况下(在步骤S36中为“否”的情况下),确定仍是“FALSE”的输出变量,并且输出恢复阶段的错误消息(步骤S38),执行步骤S60的处理。作为恢复阶段的错误消息,例如使用“输出变量(XXX)未自动恢复”这样的消息。
[0160] 另一方面,在作为评价对象的任何输出变量的值都是“TRUE”的情况下(在步骤S36中为“是”的情况下),关于选择出的输入变量,输出功能安全评价全部合格的情况(步骤S40),执行步骤S60的处理。
[0161] 另一方面,在作为复位类别已设定“手动复位”的情况下(在步骤S30中为“手动复位”的情况下),使选择出的输入变量返回到“TRUE”(步骤S42),取得作为评价对象的1个或多个输出变量的值(步骤S44)。即,恢复选择出的输入变量。接着,对与选择出的输入变量对应的评价对象的输出变量中的、输出期待值都被设定成“FALSE”的输出变量的值是否仍是“FALSE”进行判断(步骤S46)。即,对作为“手动复位”的对象的输出变量的值没有伴随着选择出的输入变量的恢复而恢复进行判断。
[0162] 在输出期待值都被设定成“FALSE”的任意输出变量的值为“TRUE”的情况下(在步骤S46中为“否”的情况下),确定“TRUE”的输出变量,并且输出恢复阶段的错误消息(步骤S48),执行步骤S60的处理。作为恢复阶段的错误消息,例如使用“输出变量(XX)已自动恢复”这样的消息。
[0163] 在输出期待值都被设定成“FALSE”的全部输出变量的值为“FALSE”的情况下(在步骤S46中为“是”的情况下),执行如下处理:使复位信号有效,并且对由依照安全程序的运算决定的评价对象的输出信号的第3输出值是否与第1输出值一致进行判断。即,将复位变量暂时设置成“TRUE”之后,返回到“FALSE”(步骤S50),取得作为评价对象的1个或多个输出变量的值(步骤S52)。即,激活复位变量。接着,对作为评价对象的1个或多个输出变量的值是否都是“TRUE”进行判断(步骤S54)。
[0164] 在作为评价对象的任意输出变量的值为“FALSE”的情况下(在步骤S54中为“否”的情况下),确定“FALSE”的输出变量,并且输出恢复阶段的错误消息(步骤S56)。作为恢复阶段的错误消息,例如使用“输出变量(XXX)在复位时成为FALSE”这样的消息。
[0165] 在作为评价对象的任何输出变量的值都是“TRUE”的情况下(在步骤S54中为“是”的情况下),关于选择出的输入变量,输出功能安全评价全部合格的情况(步骤S58),执行步骤S60的处理。
[0166] 在步骤S60中,对期待值设定区330中设定的输入变量中的、检查到对应的检查框332的全部输入变量是否已被执行评价进行判断(步骤S60)。在关于被检查到的任意输入变量的评价尚未执行的情况下(在步骤S60中为“否”的情况下),选择评价尚未执行的任意输入变量(步骤S62),再次执行步骤S22以下的处理。
[0167] 在关于被检查到的全部输入变量的评价已被执行的情况下(在步骤S60中为“是”的情况下),功能安全评价的处理结束。
[0168] <I.功能安全评价的评价结果>
[0169] 接下来,对图12和图13所示的功能安全评价的评价结果进行说明。
[0170] 本实施方式的评价系统1具有与评价对象的输入信号相关联地输出功能安全评价的评价结果的功能。
[0171] 图14是示出在本实施方式的评价系统1中执行的功能安全评价的评价结果的一例的示意图。参照图14,评价结果画面350包含:变量名显示栏354,其显示作为对象的输入变量的变量名;注释显示栏356,其显示关于对应的输入变量的注释;复位类别显示栏358,其显示关于对应的输入变量的复位类别;期待值设定栏360,其显示关于对应的输入变量的输出期待值的组合;结果显示栏372,其显示评价结果;结果注释显示栏374,其显示与评价结果对应的注释;以及日期时间显示栏376,其显示评价执行日期时间。
[0172] 在结果显示栏372中,根据上述评价,对于合格的显示“Passed”,对于发生了某种错误的显示“Failed”。而且,在发生了某种错误的情况下,在期待值设定栏360中,使得发生了该错误的输出变量的显示形态不同。在结果注释显示栏374中显示与该错误对应的错误消息。即,判断结果包含确定在哪个阶段被判断为异常的信息。此外,判断结果包含与被判断为异常的阶段对应的注释。
[0173] 如图14所示,评价条件20一般包含多个由评价对象的输入信号、评价对象的输出信号以及输出期待值构成的组。并且,对各组执行上述的评价处理。判断结果包含确定对哪个组的输入信号判断为异常的信息。
[0174] 此外,如图14所示,评价条件20一般包含由评价对象的输入信号、多个评价对象的输出信号以及分别对应的多个输出期待值构成的组。并且,对多个输出期待值分别执行上述的评价处理。判断结果包含确定对哪个输出信号判断为异常的信息。
[0175] 以这样的输出期待值为基准,当任意输出变量发生错误时,能够通过与输出期待值对应地显示该错误的内容,更高效地进行安全程序的功能安全评价。
[0176] <J.评价条件的设定辅助>
[0177] 接下来,对用于辅助通过图9所示的设定画面300输入的评价条件的设定的结构进行说明。以下说明的处理是由图1所示的解析/提取功能6提供的。
[0178] 本实施方式的评价条件包含1个或多个输入信号(或者输入变量)的设定、1个或多个输出信号(或者输出变量)以及输出期待值。用户可以任意设定这些信息,但是,如果安全程序的步骤数(程序量)增多,则设定全部应作为对象的输入信号和输出信号比较需要时间。因此,在本实施方式的评价系统1中,也可以安装辅助评价条件的设定的功能。
[0179] 图15和图16是说明本实施方式的评价系统1提供的评价条件的设定辅助功能的示意图。
[0180] 参照图15,执行如下处理:提取安全程序10包含的命令中的面向用于使对象设备以确保安全的方式动作的运算处理的命令。接着,执行如下处理:提取与从安全程序10提取出的命令相关联的输入信号和输出信号。这样,能够提取安全程序10中包含的安全动作的命令,并提取该提取出的命令中设定的变量等。并且,如图9所示,通过设定画面300对应地显示提取出的输入信号和输出信号,并且,对已显示的输出信号执行如下处理:受理用于使对象设备以确保安全的方式动作的值即输出期待值的设定。最终,如图13和图14所示,改变提取出的输入信号的值,并且判断根据该输入信号的值的变化通过依照安全程序的运算而计算出的输出信号的值是否与所设定的输出期待值一致,由此来评价功能安全。
[0181] 安全程序10还存在作为其它程序的一部分被装入的情况,此外,还存在包含除了安全动作以外的处理的命令的情况。因此,优选选择性地提取安全程序10中包含的安全动作的命令(在图15所示的示例中为功能块)。
[0182] 特别是关于依据某个条款制作出的安全程序,不管哪个制造商,在安全动作中使用的功能块的规格等都是通用的,例如,紧急停止FB和输出检查FB是从安全程序中提取的。并且,提取作为输入或输出而设定于提取出的功能块的变量,作为用于评价条件的变量。此外,也可以一并还提取对提取出输入信号的命令设定的复位类别。
[0183] 在图15所示的示例中,作为对象的输入变量,提取对紧急停止FB12的“S_EStopIn”分配的变量“Var_EmergencyStop1”,提取对紧急停止FB14的“S_EStopIn”分配的变量“Var_EmergencyStop2”。与该输入变量的提取一并提取对象功能块中设定的复位类别的值。在图15所示的示例中,根据紧急停止FB12、FB14的“S_AutoReset”中设定的值“FALSE”,判断为“手动复位”。
[0184] 此外,作为对象的输出变量,提取对输出检查FB18的“S_EDM_OUT”分配的变量“Var_Saety_Relay1”。
[0185] 这样,在依据 等公开的条款使用功能块来记述安全程序的情况下,提取安全程序中包含的紧急停止功能块(在图15所示的示例中为紧急停止FB12、14)。并且,提取对紧急停止功能块分配的输入信号。进而,提取沿着与提取出的紧急停止功能块的输出目的地连接的其它功能块(在图15所示的示例中为输出检查FB18)而最终输出的信号,作为对象的输出信号。
[0186] 对于如图16所示设定的变量,利用上述处理来提取作为功能安全评价的对象的输入变量和输出变量。然后,将提取出的输入变量和输出变量的组合显示在设定画面300的期待值设定区330(图9)等中。
[0187] 通常提取多个输入信号,因此,如图9的设定画面300所示,显示多个上述提取出的输入信号,并且与各输入信号对应地显示与提取出的输入信号相关联的多个输出信号。
[0188] 图17是示出本实施方式的评价系统1提供的评价条件的设定辅助功能的处理流程的流程图。图17所示的各步骤典型地是通过由处理器102执行功能安全评价程序126(都是图2)而实现的。
[0189] 参照图17,首先,取得评价对象的安全程序,执行对该取得的安全程序的解析(分析;parse)(步骤S100)。接着,根据对安全程序的解析结果,提取安全程序中包含的安全动作的命令(功能块:例如紧急停止FB和输出检查FB)(步骤S102),提取对提取出的命令分配的输入变量(步骤S104)。与该输入变量的提取一并还提取对象命令中设定的复位类别的信息(步骤S106)。进而,提取对提取出的命令分配的输出变量(步骤S108)。
[0190] 将这些提取出的输入变量、与输入变量对应的复位类别、输出变量的信息反映在图9所示的设定画面300的期待值设定栏340中(步骤S110)。然后,结束处理。
[0191] 在执行用于辅助这种评价条件的设定的处理之后,受理用户对评价条件的设定。
[0192] <K.优点>
[0193] 根据本实施方式,规定安全程序中包含的输入信号和与该输入信号对应的1个或多个输出信号的组合,并且设定各组合中的各输出信号值的期待值(输出期待值)。此外,还设定与各输入信号对应的复位类别。在此基础上,按照3个阶段(初始化阶段、截止阶段、恢复阶段)改变输入信号的值(输入值),并且对在各阶段计算出的输出值是否是与预先设定的输出期待值和复位类别对应的值进行判断,由此来自动评价安全程序的综合的功能安全。因此,能够更容易地评价安全程序的功能安全。
[0194] 此外,根据本实施方式,当在任意阶段发生异常时,确定发生了该异常的阶段以及发生了该异常的输出信号,并且作为功能安全的评价结果输出。因此,即使安全程序的功能安全存在某种不良情况,也能够容易地确定其原因和解决方法。
[0195] 此外,根据本实施方式,自动提取安全程序中包含的输入信号、输出信号、复位类别,因此,用户仅设定输出期待值就能够容易地进行功能安全的评价。
[0196] 对本发明的实施方式进行了说明,但是,本次公开的实施方式在全部方面均为例示,应该认为不是限制性的内容。本发明的范围由权利要求书示出,包含与权利要求书同等的含义和范围内的全部变更。