CN103403628A - 安全控制装置以及安全控制方法 - Google Patents

安全控制装置以及安全控制方法 Download PDF

Info

Publication number
CN103403628A
CN103403628A CN2011800174101A CN201180017410A CN103403628A CN 103403628 A CN103403628 A CN 103403628A CN 2011800174101 A CN2011800174101 A CN 2011800174101A CN 201180017410 A CN201180017410 A CN 201180017410A CN 103403628 A CN103403628 A CN 103403628A
Authority
CN
China
Prior art keywords
time
program
district
task
control
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.)
Granted
Application number
CN2011800174101A
Other languages
English (en)
Other versions
CN103403628B (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.)
Toyota Motor Corp
Original Assignee
Toyota Motor Corp
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 Toyota Motor Corp filed Critical Toyota Motor Corp
Publication of CN103403628A publication Critical patent/CN103403628A/zh
Application granted granted Critical
Publication of CN103403628B publication Critical patent/CN103403628B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1674Programme controls characterised by safety, monitoring, diagnostic
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • 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
    • G05B19/0426Programming the control sequence
    • 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
    • G05B19/0428Safety, monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25343Real time multitasking
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25347Multitasking machine control
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34069Shared memory
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34372Inability to process, execute assigned task within allocated time interval
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34382Preemptive multitasking, cpu decides upon priority scheme, which task to start
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34383Dynamic preemptive, special event register manages time slices for applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • Debugging And Monitoring (AREA)
  • Safety Devices In Control Systems (AREA)
  • Programmable Controllers (AREA)
  • Manipulator (AREA)

Abstract

在异常发生时能够更迅速地执行安全控制。OS100的一部分具有按照调度模式来选择和确定接下来要调度的时间区的分区调度器,所述调度模式包括:对安全监视程序分配所述执行时间的TP1;对通常控制程序分配执行时间的TP2;以及对所述安全控制程序分配执行时间的TP3。处理器通过执行OS100使所述分区调度器(21)周期性地动作。分区调度器响应于由在TP1内被执行的安全监视程序或在TP2内被执行的通常控制程序检测到异常而被起动,并进行从TP1或TP2向TP3的时间区的切换。

Description

安全控制装置以及安全控制方法
技术领域
本发明涉及为了确保功能安全而搭载在服务机器人和运输设备等上的安全控制装置,特别地涉及使用了计算机系统的安全控制装置。
背景技术
服务机器人需要通过外界传感器或自诊断装置来持续监视安全状态,并在检测到任何危险时通过执行适当的安全控制逻辑来确保功能安全。
作为国际标准制定了IEC 61508,该国际标准与以上述的服务机器人以及运输设备等按电气原理动作的系统为对象的功能安全相关。在IEC61508中,将为了确保功能安全而设置的系统称为安全关联系统。IEC61508规定了用于通过微处理器及PLC(Programmable Logic Controller:可编程逻辑控制器)等硬件和计算机程序(软件)来构建安全关联系统的各种方法。通过使用由IEC 61508规定的方法,能够使用计算机系统来构建安全关联系统。
另一方面,近年来,微处理器等可编程电子设备的处理能力提高。因而,通过利用多任务OS(Operating System:操作系统),在一个计算机系统上并行执行各种应用程序,能够对搭载在服务机器人及汽车等设备上的多用途计算机系统进行整合。
例如,专利文献1公开了如下技术:使与功能安全的确保相关的应用程序(以下,称为安全关联应用)与其他的应用程序(以下,称为非安全关联应用)共同在一个计算机系统上动作。
当将由IEC 61508规定的方法应用于包含安全关联应用及非安全关联应用的软件整体时,会产生还应用于非安全关联应用的必要性。因而,存在软件开发成本提高的问题。
因此,在专利文献1所公开的技术中,通过系统程序的时间分区,使安全关联应用(安全监视程序及安全控制程序)独立于非安全关联应用(通常控制程序)。因而,能够从安全关联系统中去除通常控制程序,从而能够有利于使用计算机系统构成的安全关联系统的低成本化。
在先技术文献
专利文献
专利文献1:日本专利文献特开2010-271759号公报
发明内容
本发明所要解决的技术问题
但是,如专利文献1例示的那样的安全控制装置中存在如下说明的技术问题。
首先,对第一技术问题进行说明。在包括时间分区功能的现有技术中,当在执行安全监视程序的时间区中检测到异常而切换到安全控制程序进行执行时,在执行安全监视程序的时间区的时间资源结束之前的期间,无法改变时间区。另外,即使通常控制程序自身采用能够检测到异常的结构,通常控制程序在执行过程中检测到自身异常,在现有技术中,在通过安全监视程序检测到与通常控制程序的执行有关的异常,并根据来自安全监视程序的通知切换时间区之前的期间,也无法通过安全控制程序的执行进行异常处理。如此,在现有技术中,存在异常发生时异常处理的执行延迟而有可能发生进一步的异常的问题。
接下来,对第二技术问题进行说明。在具有时间分区功能的现有技术中,由于重视时间限制,因此,以首先实施分区调度、然后实施任务调度这样的顺序进行调度。因此,在任务的优先级的设计上缺少灵活性,关于被配置在时间区中的任务,例如,有可能仅优先级高的任务聚集的时间区或仅优先级低的任务聚集的时间区等被调度。然而,关于时间区和任务的调度,不仅依赖于优先级,还依赖于其周期性,因此现有技术无法解决与这样的调度有关的问题。
另外,在为了解决这样的调度的问题而调度时施加在一个时间区中仅配置一个任务这样的限制的情况下,存在时间区切换次数将不必要地增加,导致系统整体的效率性下降的问题。
使用图17对第二问题进行更具体的说明。
图17示出了现有技术涉及的时间调度和任务调度的具体例。在图17中,时间区的调度基于优先级被设定到QoS时隙。使设定到QoS时隙的时间区动作,并执行与该时间区有关的分配时间(QoS时隙的处理时间)的处理,由此QoS时隙被推进。在设定到QoS 时隙的时间区被改变的情况下,时间区被切换。
根据基于现有技术的调度,作为调度的结果,TP2(B)中包含的任务需要TP1中包括的任务的执行结果,因此,将与TP2有关的任务分为TP2(A)中包含的任务和TP2(B)中包含的任务而配置。但是,由于TP2(A)中包含的任务和TP2(B)中包含的任务本来紧密相关,因此可能的话优选配置在相同的时间区内。另外,由于TP1中包含的任务是处理传感器等的输入输出的任务,并且TP1中包含的任务的优先级和周期性都很高,因此可能的话优选能够以更高周期执行。
另外,使用其他的例子进行具体的说明。关于时间区和任务调度,考虑下述的情况:考虑到时间区和任务调度各自的优先级和周期性,使时间区的理想的顺序为“TP2(A1)、TP1、TP2(A2)、TP1、TP2(B1)、TP1、TP2(B2)…”,并且这些时间区的各时间区被配置期望的任务。
在现有技术中,为了实现上述的理想的执行顺序,可考虑采用以下的两种调度方法。首先,作为第一种调度方法,可考虑“确保能够仅执行TP2(A1)的任务的时间区时间,确保能够执行TP1的任务的时间区时间,确保能够仅执行TP2(A2)的时间区时间、…”那样的调度方法。但是,在该方法中,难以对各时间区高效地分配时间,导致系统整体的效果下降。
另外,作为第二种方法,可考虑“将TP2(A)内的两个任务分离在各自不同的时间区内(分离为TP2(A1)内的任务和TP2(A2)内的任务),将TP2(B)内的两个任务分离在各自不同的时间区内(分离为TP2(b1)内的任务和TP2(B2)内的任务)…”那样的调度方法。但是,在该方法中,由于要分离相关性大的任务,因此要使用过大的存储器区域或者需要在分离了的任务之间进行通信。因此,存在引起系统的复杂化、庞大化的问题。因此,需要在考虑了分配给各时间区的时间之后能够满足任务的优先级和周期性的调度方法。
接下来,对第三问题进行说明。在具有时间分区功能的现有技术中,在多个时间区内的任务协调地进行处理的情况下,分区调度器保证了与时间资源有关的执行时间。但是,关于多个时间区内的任务如何共享在多个时间区内的任务之间必须共享的数据会成为问题。通常,大多数情况将共享存储器用于数据的共享,但是,在对共享存储器的访问过程中发生时间区切换而锁定的情况、或者在对共享存储器的访问过程中发生时间区的切换进而被变更为执行对象外的时间区的情况等下,任一任务都无法访问共享存储器,导致系统有可能不能动作。
使用图23和图24对第三问题进行更具体的说明。
图23是示出根据与本发明相关的技术的、分区调度器的处理步骤的具体例的流程图。另外,在图23中,以TP1将数据写入共享存储器时TP2和TP3利用该写入的数据的情况为例进行说明。
首先,在TP2中,TP2内的通常控制任务26对共享存储器进行访问(S181)。在1Tick经过后(S182)分区调度器动作,分区调度器进行时间区的调度(S183)。通过调度,时间区被从TP2切换到TP1,并且在TP1中开始安全监视任务24的执行(S184)。
在TP1内执行的安全监视任务24利用通过在TP2内执行通常控制任务26而获得的数据,因此TP2内的通常控制任务26判断是否正在访问共享存储器(S185)。在并非正在访问共享存储器(S185中为否)的情况下,安全监视任务24访问共享存储器,并执行处理(S186)。在正在访问共享存储器(S185中为是)的情况下,安全监视任务24无法访问共享存储器,因而不能执行处理(S187)。
如图24所示,在任一任务访问共享存储器的情况下,其他的任务无法访问共享存储器,因而不能继续进行处理。因此,根据情况,从通常控制任务26所属的TP2向安全控制任务28所属的TP3的切换处理有可能不被执行,因而无法执行安全控制。因此,需要当关于多个时间区在该多个时间区内的任务之间必须共享时能够避免上述的问题的技术。
本发明是鉴于上述的见解而做出的,其目的是提供能够解决以下的技术问题的安全控制装置和安全控制方法。即,所要解决的第一技术问题是在异常发生时能够更迅速地执行安全控制。另外,所要解决的第二技术问题是能够实现在考虑分配给各时间区的时间之后能够满足任务的优先级和周期性的调度。另外,所要解决的第三技术问题是能够避免由数据在时问区间的共享引起的失败。
用于解决问题的技术手段
本发明的一个方式涉及的安全控制装置包括:硬件资源,所述硬件资源包括至少一个处理器;以及系统程序,所述系统程序用于控制所述处理器的执行时间对下述程序的分配:(a)监视与控制对象有关的异常的发生的安全监视程序;(b)与通常时所述控制对象的控制相关联的通常控制程序;以及(c)与异常时所述控制对象的控制相关联的安全控制程序。所述系统程序的一部分具有按照调度模式来选择和确定接下来要调度的时间区的分区调度器,所述调度模式包括:(d)对所述安全监视程序分配所述执行时间的第一时间区;(e)对所述通常控制程序分配所述执行时间的第二时间区;以及(f)对所述安全控制程序分配所述执行时间的第三时间区。所述处理器通过执行所述系统程序使所述分区调度器周期性地动作。所述分区调度器响应于由在所述第一时间区内被执行的所述安全监视程序或在所述第二时间区内被执行的所述通常控制程序检测到异常而被起动,并进行从所述第一时间区或所述第二时间区向所述第三时间区的切换。
根据上述的本发明的一个方式,能够在异常发生时更迅速地执行安全控制。
另外,也可以是:所述分区调度器响应于由在所述第二时间区内被执行的所述通常控制程序检测到异常而被强制地起动,并立即进行从所述第二时间区向所述第三时间区的切换。
另外,也可以是:所述通常控制程序在检测到异常时,判断在所述通常控制程序被执行的所述第二时间区内是否剩余可执行时间,在剩余有可执行时间时,向所述分区调度器通知时间区的切换请求,所述分区调度器在接收到来自所述通常控制程序的时间区的切换请求通知时,在下一个周期动作,并进行从所述第二时间区向所述第三时间区的切换。
另外,也可以是:所述系统程序的一部分还具有进行在所述时间区内被执行的程序的调度的任务调度器,所述分区调度器使所述任务调度器动作,并根据所述任务调度器对所述程序的切换次数来判断所述程序在所述时间区内的执行状况。
另外,也可以是:所述分区调度器具有所述任务调度器,所述分区调度器使所述任务调度器动作。
另外,也可以是:所述程序被分别设定优先级,所述时间区的一个周期构成为包括多个所述时间区,并且多个所述时间区的每一个被分配时间,所述分区调度器根据所述程序的优先级以及在所述程序被执行的所述时间区内所剩余的可执行时间来确定接下来要执行的程序,并切换到包括该确定的程序的时间区。由此,能够实现在考虑分配给各时间区的时间之后能够满足任务的优先级及周期性的调度器。
另外,也可以是:所述分区调度器按照所述程序的优先级来检索接下来要执行的程序,并在该检索到的程序被执行的所述时间区内剩余有可执行时间时,将该检索到的程序确定为接下来要执行的程序。
另外,也可以是:所述分区调度器在所述程序被执行的所述时间区中检索剩余有可执行时间的时间区,并在该检索到的时间区内按照优先级确定接下来要执行的程序。
另外,也可以是:安全控制装置还包括:共享存储器,所述共享存储器被构成为用于第一程序和第二程序之间的数据通信,并被分割为多个共享部分,所述第一程序和所述第二程序是所述安全监视程序、所述通常控制程序、以及所述安全控制程序中的任两个程序,所述处理器通过执行所述系统程序来选择和确定所述时间区,并在所述时间区内被执行的所述第一程序访问所述共享存储器中的任一共享部分时,将在所述时间区内被执行的所述第二程序的访问目的地作为所述第一程序未访问且存储有最新的更新数据的共享部分。由此,能够避免由数据在时间区的共享引起的失败。
另外,也可以是:所述处理器通过执行所述系统程序来选择和确定所述时间区,并在所述时间区内被执行的所述第一程序访问所述共享存储器中的任一共享部分时访问了规定的次数以上的情况下,判断为发生异常。
发明效果
根据本发明,能够提供能够解决上述的技术问题的安全控制装置及安全控制方法。
附图说明
图1是示出本发明的实施方式1涉及的安全控制装置的构成例的框图。
图2是用于说明本发明的实施方式1中的时间分区的概念的图。
图3是用于说明本发明的实施方式1中的资源分区的概念的概念图。
图4表示由图1所示的OS提供的执行环境下起动的、分区调度器和任务之间的关系的图。
图5A是表示调度模式的具体例的图。
图5B是表示调度模式的具体例的图。
图6是表示分区调度器的处理步骤的具体例的流程图;
图7是表示微控制器的复位处理步骤的具体例的流程图。
图8是表示微控制器的复位处理步骤的具体例的流程图。
图9是表示分区调度器的处理步骤的具体例的流程图;
图10是表示异常发生时时间区切换的具体例的图。
图11是表示分区调度器的处理步骤的具体例的流程图。
图12是表示异常发生时时间区切换的具体例的图。
图13是表示分区调度器的处理步骤的具体例的流程图。
图14是表示分区调度器的处理步骤的具体例的流程图。
图15A是用于说明根据现有技术的调度结果的图。
图15B是用于说明根据本发明的调度结果的图。
图16是表示分区调度器的处理步骤的具体例的流程图。
图17是用于说明本发明的第二技术问题的图。
图18是表示本发明的实施方式7涉及的分区调度器和任务之间的关系的图。
图19A是表示对分区间共享存储器的访问的具体例的图。
图19B是表示对分区间共享存储器的访问的具体例的图。
图20是表示对分区间共享存储器的访问的处理步骡的具体例的流程图。
图21是表示对分区间共享存储器的访问的处理步骤的具体例的流程图。
图22是表示对分区间共享存储器的访间的处理步骤的具体例的流程图。
图23是用于说明本发明的第三技术问题的图。
图24是用于说明本发明的第三技术问题的图。
图25A是用于说明现有技术的效果的图。
图25B是用于说明本发明的效果的图。
具体实施方式
以下,参照附图详细说明应用了本发明的具体的实施方式。在各图中,对相同要素标注相同符号,为了使说明明确化,根据需要省略重复说明。
<本发明的实施方式1>
本实施方式涉及的安全控制装置1被搭载在服务机器人或运输设备等上,以执行用于确保功能安全的安全控制。安全控制装置1被构成为通过同一个计算机系统来执行安全关联应用和非安全关联应用。图1是表示本实施方式涉及的安全控制装置1的结构例的框图。
处理器10进行程序(指令流)的获取、指令的解码、以及与指令的解码结果相应的运算处理。另外,在图1中仅示出了一个处理器10,但安全控制装置1也可以是具有多个处理器10的多处理器结构。此外,处理器10也可以是多核处理器。处理器10通过执行作为系统程序的操作系统(OS)100来提供多道程序设计环境。多道程序设计环境是指通过定期地切换多个程序并执行、或者根据某事件的发生来切换要执行的程序从而如同多个程序被并行执行的环境。
多道程序设计有时也被称为多进程、多线程、多任务等。进程、线程以及任务是指在多道程序设计环境中被并行执行的程序单位。本实施方式的处理器10具有的多道程序设计环境可以是多进程环境,也可以是多线程环境。
执行用存储器11是用于处理器10执行程序所使用的存储器。执行用存储器11中存储从非易失性存储器13加载的程序(OS 100以及应用101~103等)、以及处理器10的输入输出数据等。此外,处理器10也可以不将程序从非易失性存储器13加载到执行用存储器11,而是直接从非易失性存储器13执行这些程序。
具体地说,执行用存储器11只要成为SRAM(Static Random AccessMemory:静态随机存取存储器)、DRAM(Dynamic Random AccessMemory:动态随机存取存储器)等能够随机存取的易失性存储器即可。图1的执行用存储器11示出了逻辑上的构成单位。即,执行用存储器11例如可以是多个SRAM设备的组合、多个DRAM设备的组合、或者SRAM设备和DRAM设备的组合。
I/O端口12被用于与外部设备之间进行数据的发送和接收。例如,在安全控制装置1被安装于服务机器人的情况下,外部设备是能够测量服务机器人周围的障碍物的视觉传感器、使服务机器人进行动作的执行器等。
非易失性存储器13是能够不接受电力供应而比执行用存储器11更稳定地维持存储内容的存储器设备。例如,非易失性存储器13是ROM(Read Only Memory:只读存储器)、闪速存储器、硬盘驱动器或光盘驱动器、或者它们的组合。非易失性存储器13保存OS100以及应用101~103。此外,非易失性存储器13的至少一部分可以被构成为能够从安全控制装置1卸下。例如,能够卸下保存了应用101~103的存储器。另外,非易失性存储器13的至少一部分可以被配置在安全控制装置1的外部。
OS 100被处理器10执行,从而利用处理器10、执行用存储器11、以及非易失性存储器13等硬件资源进行包含任务调度的任务管理、中断管理、时间管理、资源管理、以及提供任务间同步以及任务间通信机构等。
而且,为了提高与确保功能安全相关的安全监视应用101以及安全控制应用103相对于通常控制应用102的独立性,OS 100具有在时间上以及空间上保护硬件资源的功能。这里,硬件资源包括处理器10、执行用存储器11、I/O端口12。
其中,时间上的保护通过将称作处理器10的执行时间的时间上的资源进行分区来进行。具体地说,时间上的保护是通过将处理器10的执行时间分区、并向各个分区(称为时间区)分配任务(进程或者线程)来进行。OS 100的调度功能(分区调度器21)针对被分配到各时间区(下面,有时简称为TP)的任务保证包含处理器10的执行时间的资源的利用。
图2是有关时间分区的概念图。在图2的例子中示出了将预先确定的一个周期时间分割为TP1、TP2、以及TP3三个的例子。例如,在将一个周期时间设为100Tick(100刻度)的情况下,规定其中前一半的20Tick是TP1、中间的30Tick是TP2、后一半的50Tick是TP3。
另外,在图2的例子中,第一应用(APL1)至第四应用(APL4)被分配到TP1~TP3中的某一个。OS 100的调度功能(分区调度器21)根据时间的流逝来选择并决定激活TP1~TP3中的哪一个。而且,被分配到激活的TP的应用被处理器10执行。
另一方面,空间上的保护通过对包含执行用存储器11以及I/O端口12的固定的资源进行分区、并将任务分配到各个分区(称为资源区)来进行。OS 100的调度功能(分区调度器21)禁止任务超过被预先分配的资源区(下面,有时简称为RP)而访问其他的资源。
图3是有关资源分区的概念图。在图3的例子中,示出了两个RP(RP1以及RP2)。执行用存储器11以及非易失性存储器13的一部分(A区域)、以及I/O端口12的一部分(端口A)被分配给RP1。另外,执行存储器11以及非易失性存储器13的另外的一部分(B区域)、以及I/O端口12的另外的一部分(端口B)被分配给RP2。从RP1访问被分配给RP2的资源被禁止,从RP2访问被分配给RP1的资源被禁止。
此外,无需将所有的资源互斥地分配给某个RP。也就是说,可以有被多个RP共享的资源。例如,在进行服务机器人的安全控制的情况下,需要能够从通常控制应用101以及安全控制应用102的这两者访问执行器。因此,用于控制执行器的I/O端口可以被通常控制应用101所属的RP和安全控制应用102所属的RP共享。
返回到图1继续进行说明。应用101~103在由OS 100以及处理器10提供的多道程序设计环境下被执行。其中,安全监视应用101包括用于使处理器10执行监视通常控制应用102的执行状况、监视安全控制应用103的执行状况、监视向I/O端口12的输入输出数据的指令码。而且,安全监视应用101包括用于使处理器10执行向分区调度器21通知结果的指令码。也就是说,安全监视应用101是安全关联应用。
另外,通常控制应用102包含用于使处理器10执行用于使服务机器人等控制对象执行通常的功能、动作的控制步骤的指令码。而且,通常控制应用102包含用于使处理器10执行向分区调度器21通知结果的指令码。也就是说,通常控制应用102是非安全关联应用。
另外,安全控制应用103包含用于使处理器10执行应对任何异常被检测到的情况而为了确保功能安全所确定的控制步骤的指令码。而且,安全控制应用103包含用于使处理器10执行向分区调度器21通知结果的指令码。也就是说,安全控制应用103是安全关联应用。
复位电路14基于来自OS 100的信号来进行微控制器15的复位。关于使用了复位电路14的微控制器15的复位机构在后面叙述。
接着,以下使用图4来说明分区调度器21与由应用101~103的起动而生成的任务之间的关系。图4是示出在由OS 100提供的多道程序设计环境下被起动的分区调度器21与任务24、26、28的关系的图。
微控制器15包括处理器10、执行用存储器11、I/O端口12、非易失性存储器13等。此外,在图4中虽然例示出了在微控制器15的外部包括复位电路14的构成,但是也可以是在微控制器15的内部包括复位电路14的构成。
来自外部的时钟源的时钟信号被提供给微控制器15,处理器10等以基于该时钟信号的预定的计时器周期进行动作。在本实施方式中,设预定的计时器周期是1Tick来进行说明。因此,通过由处理器10执行OS100,分区调度器21在每1Tick进行动作,并且在各TP内,任务调度器23、25、27以及任务(安全监视任务24、通常控制任务26、安全控制任务28)在每1Tick进行动作。
分区调度器21在每1Tick进行动作,进行TP的切换(分区、调度)。分区调度器21选择并决定在下一个1Tick期间激活TP1~TP3中的哪一个。而且,分区调度器21使与选择的TP相关的任务调度器开始动作。
具体地叙述分区调度器21进行的分区、调度,分区调度器21参照调度表22,按照确定了TP的设定的调度模式来进行分区、调度。
调度表22保持有规定了TP的切换顺序以及时刻的调度模式。此外,调度表22至少保持有两个不同的调度模式。一个是适用于不进行基于安全监视任务24的异常检测的情况(即,通常时)的调度模式。另一个是适用于由安全监视任务24检测到异常的情况的调度模式。以下将通常时适用的调度模式称为“通常控制调度模式”。以下将异常检测时适用的调度模式称为“安全控制调度模式”。
图5A示出了通常控制调度模式的具体例子。在图5A  中,通常控制任务26所属的TP2被分配在一个周期时间的前半段(T1)。另外,安全监视任务24所属TP1被分配在一个周期时间的后半段(T2)。根据图5A的调度模式,通常控制任务26和安全监视任务24被反复调度。
图5B示出了安全控制调度模式的具体例子。在图5B 中,安全控制任务28所属的TP3被分配在一个周期时间的前半段(T3)。另外,安全监视任务24所属TP1被分配在一个周期时间的后半段(T4)。根据图5B的调度模式,安全控制任务28和安全监视任务24被反复调度。
返回到图4继续进行说明。任务调度器23、25、27进行各自所属的TP之内的任务的调度。各TP内的任务的调度只要应用一般的基于优先级的调度即可。此外,在图4中,各TP图示出了分别仅包含一个任务,但是实际上其包含一个以上的任务。例如,在通常控制用的TP2内,可以包含通常控制任务A以及通常控制任务B这两个任务。
安全监视任务24是由于安全监视应用101的起动而生成的任务。在图4的例子中,安全监视任务24被分配到TP1以及RP1。安全监视任务24监视作为非安全关联应用的通常控制任务26的执行状况、作为安全关联应用的安全控制任务28的执行状况、以及I/O端口12的输入输出数据。而且,安全监视任务24将任务的执行状况通知给分区调度器21。
通常控制任务26是由于通常控制应用102的起动而生成的任务。在图4的例子中,通常控制任务26被分配到TP2以及RP2。通常控制任务26进行用于使服务机器人等控制对象进行通常的功能、动作的控制。而用,通常控制任务26将任务的执行状况通知给分区调度器21。
安全控制任务28是由于安全控制应用103的起动而生成的任务。在图4的例子中,安全控制任务28被分配到TP3以及RP3。安全控制任务28应对检测到某些异常的情况而进行为了确保功能安全而被确定的控制。而且,安全控制任务28将任务的执行状况通知给分区调度器21。此外,作为从各任务向分区调度器21通知结果的具体的构成,能够采用各种各样的方法。例如,任务调出OS 100的系统调用(服务调用),经由OS100能够将结果通知给分区调度器21,另外,例如,将与任务的执行状况相关的标志保存在执行用存储器11,任务根据其执行状况设定标志的值,分区调度器21能够根据标志的设定值来判断任务的执行状况。
如上述的那样,分区调度器21在每1Tick进行动作,选择并决定激活TP1~TP3中的哪一个。而且,分区调度器21使与选择的TP相关的任务调度器开始动作。而且,通过任务调度器23、25、27开始动作而进行任务的调度,处理器10按照由任务调度器23、25、27调度的顺序执行TP内的任务。由此,被分配到激活的TP中的应用被处理器10执行。
接着,以下使用图6来说明分区调度器21所执行的分区、调度。图6是示出分区调度器21的处理步骤的具体例子的流程图。此外,在图6中,以按照通常控制调度模式(例如图5A)或者安全控制调度模式(例如图5B)来执行调度的情况为例来进行说明。即,以下述情况为例来进行说明:在TP2或者TP3之后下一个TP是TP1、并TP2内的异常在TP1内被检测到的情况下,接收来自TP1的结果,下一个被选择并决定的TP是TP3。
首先,在每1Tick进行动作的分区调度器21使TPX的任务调度器动作(S11)。这里,变量X表示TP的编号,假设X是1以外的值。即,在S11中使除了用于安全监视的TP1之外的TP2或者TP3中的一个动作。
在S11中开始动作的TPX的任务调度器根据优先级执行TPX内的任务(S12)。而且,经过1Tick之后,分区调度器21开始TP的调度(S13)。即,分区调度器21按照调度模式选择并决定在下一个1Tick期间激活哪个TP。
分区调度器21在不改变下一个激活的TP的情况下(S14中的否),返回到S11,继续针对同一个TPX的动作。因此,在直到TPX的切换时刻为止的期间,S11~S14的处理被反复执行。
分区调度器21在改变下一个激活的TP的情况下(S14中的是),使该改变的时间区的任务调度器进行动作(S15)。这里,使TP1的任务调度器进行动作。而且,TP1的任务调度器23根据优先级执行TP1内的任务(S16)。
在TP1内被执行的安全监视任务24监视通常控制任务26的执行状况、I/O端口12的输入输出数据,并判断它们是否正常(S17)。在判断为判断的结果是异常时(S18中的否),安全监视任务24向分区调度器21通知该结果(S19)。
经过1Tick之后,分区调度器21再次开始调度(S20)。分区调度器21根据调度模式选择并决定在接下来的1Tick内激活哪一个TP,并在不改变接下来激活的TP的情况下(S21中的否)返回到S15,继续针对TP1的动作。
分区调度器21在改变接下来激活的TP的情况下(S21中的是),还根据在S19中的来自TP1的通知结果来判断TPX是否正常(S22)。当判断的结果是异常时(S22中的否),分区调度器21选择并决定TP3作为在接下来的1Tick内激活的TP(S23)。
当判断的结果是正常时(S22中的是),分区调度器21选择并决定TP1和TP3以外的TPX作为接下来的1Tick内激活的TP(S24)。
针对图6所示的处理,来说明分区、调度的具体例子。
首先,说明按照图5A所示的通常控制调度模式在S11开始调度的情况。该情况下,在S11中以TPX=TP2开始,在S12~S14阶段也保持TPX=TP2不变。然后,在S15中从TP2改变到TP1,在S15~S21阶段保持为TP1不变。当在S18中判定与TP2相关的执行状况(数据输入输出)为正常时,在S24中,变成TPX=TP2(也就是说,继续从TP2开始的通常控制调度模式)。另一方面,当在S18中判定为与TP2相关的执行状况(数据输入输出)为异常时,在S23中,变成TPX=TP3(也就是说,切换到从TP3开始的安全控制调度模式)。
另外,说明按照图5B所示的安全控制调度模式在S11开始调度的情况。在该情况下,在S11中以TPX=TP3开始,在S12~S14阶段也保持TPX=TP3不变。然后,在S15中从TP3改变到TP1,在S15~S21阶段保持为TP1不变。当在S18中判定与TP3相关的执行状况(数据输入输出)为正常时,在S24中,变成TPX=TP2(也就是说,切换到从TP2开始的通常控制调度模式)。另一方面,当在S18中判定为与TP3相关的执行状况(数据输入输出)为异常时,在S23中,变成TPX=TP3(也就是说,继续从TP3开始的安全控制调度模式)。
此外,在上述的例子中,作为调度模式,以仅组合了三个TP(安全监视用的TP1、通常控制用的TP2、安全控制用的TP3)的情况为例进行了说明,但是如TP2这样的通常控制用的分区或者如TP3这样的安全控制用的分区可以分别存在多个。例如,可以存在两个通常控制用的TP2以及TP4、安全监视用的TP1、以及两个安全控制用的TP3以及TP5,组合这五个TP(TP1~TP5)来构成调度模式。在该情况下,在S23中,分区调度器21只要判定与TPX相关的执行状况(数据输入输出)的异常状态的种类、并根据该异常种类来选择安全控制用的TP3和TP5中的某一个即可。另外,在S24中只要选择通常控制用的TP2和TP4中的某一个即可。
如上所述,在本实施方式中,OS 100包括根据来自安全监视用的TP1的通知、或者来自各TP的通知来选择并决定接下来激活的分区的分区调度器21。分区调度器21与在各TP内被执行的任务独立,以预定的计时器周期进行动作。通过以预定的计时器周期独立动作的分区调度器21具有分区、调度功能,能够达到以下的效果。
首先,一般来说,为了充分确保通常控制任务26的执行时间,要求尽可能缩短安全监视任务24的执行时间。在以往技术(例如专利文献1)中,安全监视任务24除了监视通常控制任务26的执行状况、I/O端口12的输入输出数据以外,还要进行调度模式的选择并决定,因此对于该选择并决定所需要的执行时间也需要与安全监视任务24所属的TP2相关地预先分配。
另外,为了保证能够确保功能安全,基本上需要交替地执行安全监视任务24和通常控制任务26。因此,在以往技术中,伴随着通常控制任务26的执行,基于安全监视任务24的调度模式的选择和决定也每次都被执行,如果遍布多个周期进行合计,则为了由安全监视任务24进行调度模式的选择和决定需要很多的执行时间。
与此相对,根据本实施方式,安全监视任务24自身没有必要执行调度模式的选择和决定。另外,分区调度器21在调度模式的选择和决定所需要的执行时间可以是短时间。因此,与以往技术相比,能够起到以下效果:安全监视用的TP1能够被分配更短的时间,并且,通常控制用的TP2能够被分配更长的时间。
而且,在图6中例示的处理中,以分区调度器21根据来自TP1的结果通知来选择并决定安全控制用的TP3(S23)、或者选择并决定通常控制用的TP2(S24)的情况进行了说明,但是本发明不限定于此。例如,取代仅从安全监视用的TP1向分区调度器21通知结果的构成,而成为从TP1~TP3的每个向分区调度器21通知执行状况结果的构成,分区调度器21可以根据来自各TP的结果通知来选择并决定安全控制用的TP3。
通过采用与各TP独立动作的分区调度器21从所有的TP接收结果通知的构成,分区调度器21能够统一地掌握与所有的TP有关的状况。因此,例如,分区调度器21在基于来自各TP的结果通知考虑了各TP的状况的基础上,能够执行跳过不需要执行的TP等判断。因此,起到能够有意地仅跳过不需要执行的时间区的效果。另外,例如,分区调度器21在基于来自安全监视用的TP1的结果通知而考虑了各TP的状况的基础上,能够仅从处于正常状态的TP决定并选择接下来的分区。因此,与以往技术相比,起到能够实现更加准确的分区、调度的效果。
接着,以下使用图7以及图8来说明使用了复位电路14的微控制器15的复位机构。图7以及图8是示出使用了复位电路14的微控制器15的复位处理步骤的具体例子的流程图。
在本实施方式中,在每1Tick进行动作的分区调度器21具有微控制器15的复位功能。分区调度器21在检测到OS 100中的异常的情况下,与复位电路14协作来进行异常处理。复位电路14基于来自分区调度器21的信号来复位微控制器15。
首先,使用图7来说明使用了复位电路14的微控制器15的复位处理步骤的具体例子。在图7所示的处理中,在从分区调度器21接收了复位指示信号的情况下,复位电路14复位微控制器15。此外,在图7中,TPX是TP1和TP3以外的TP。
首先,在S31~S33中,分区调度器21通过使TPX的动作开始,在直到接下来激活的TP被改变为止的期间内,执行与TPX相关的处理。而且,在分区调度器21使TP1的任务调度器23开始动作(S34)之后,TP1所属的安全监视任务24判断与TPX相关的处理(输入输出)是否正常(S35)。当判断的结果是正常(S35中的是)时,返回到S31,继续执行针对同一TPX的动作。
当判断的结果是异常(S35中的否)时,TP1所属的安全监视任务24判断TPX内的异常是否是属于TP3的安全控制任务28中能够应对的异常(S36)。当不是TP3中能够应对的异常(S36中的否)时,属于TP1的安全监视任务24向分区调度器21通知是具有紧急停止的异常(S37)。接收到来自属于TP1的安全监视任务24的通知的分区调度器21,向复位电路14输出复位指示信号,接收到复位指示信号的复位电路14对微控制器15进行复位(S38)。
在是TP3中能够应对的异常(S36中的是)时,属于TP1的安全监视任务24向分区调度器21通知TPX发生异常(S39)。接收到来自TP1的通知的分区调度器21从TPX切换到TP3(S40)。
接着,使用图8来说明使用了复位电路14的微控制器15的复位处理步骤的其他的具体例子。在图8所示的处理中,从分区调度器21定期向复位电路14发送信号,复位电路14在来自分区调度器21的发送信号中断的情况下,复位微控制器15。此外,在图8中,TPX是TP1和TP3以外的TP。
与图7的S31~S35阶段的处理相比,在图8的S53中,分区调度器21在每1Tick进行动作这一点被明确化,另外,在S54以及S55中,在分区调度器21定期向复位电路14发送信号这一点上是不同的。其他的图8所示的S51~S57阶段的处理与图7所示的S31~S35阶段的处理基本上是相同的。
另外,与图7的S36~S40阶段的处理相比,在图8的S60中分区调度器21停止向复位电路14发送信号、在S63中分区调度器21向复位电路14发送信号这一点上是不同的。而且,在图8的S61中,根据来自分区调度器21的发送信号中断的情况复位电路14复位微控制器15这一点是不同的。其他的图8所示的S58~S64阶段的处理与图7所示的S36~S40阶段的处理基本上是相同的。
而且,如图8的S71以及S72所示,与S51~S64阶段的处理并行,在分区调度器21中产生不良情况的情况下、或者在从分区调度器21到复位电路14的信号线中产生不良情况的情况下,从分区调度器21向复位电路14的发送信号不再被传递。在这种情况下,根据来自分区调度器21的发送信号中断,复位电路14复位微控制器15(S61)。
根据图8所示的处理,除了有意地从分区调度器21向复位电路14指示复位的情况之外,在分区调度器21自身因为某些原因而没有正常地动作的情况下、或者在从分区调度器21向复位电路14传递发送信号的信号线产生不良情况的情况下,也能够可靠地复位微控制器15。另外,同时对于TP的切换在每1Tick是否被正常地执行也能够保证。
此外,在图7以及图8中,说明了分区调度器21根据来自TP1的结果通知向复位电路14输出复位指示信号、或者停止向复位电路14发送信号,但是也可以根据来自TP1~TP3中的某一个的结果通知向复位电路14输出复位指示信号、或者停止向复位电路14发送信号。
<发明的实施方式2>
本实施方式所涉及的安全控制装置是上述的安全控制装置1的变形。本实施方式所涉及的安全控制装置的整体的构成只要与图1所示的安全控制装置1的构成相同即可。另外,由本实施方式所涉及的安全控制装置所具有的OS提供的任务执行环境只要与图4所示的任务执行环境的构成相同即可。
本实施方式的特征在于,在通常控制任务26的执行过程中发生需要紧急处理的异常的情况下,通常控制任务26响应于异常发生而立即强制起动分区调度器21,分区调度器21将时间区切换到安全控制任务28被执行的时间区。另外,作为需要紧急处理的异常,例如包含有可能引起服务机器人或运输设备等的跌倒的异常、以及有可能由于故障或发热引起火灾的异常等。
接下来,使用图9和图10对本实施方式涉及的安全控制装置1的处理更详细地进行说明。另外,在图9和图10中,执行通常控制任务26的时间区可以存在多个。
图9是示出分区调度器的处理步骤的具体例的流程图。
首先,在TP2内在通常控制任务26的执行过程中发生了异常(S81)的情况下,通常控制任务26响应于异常发生而立即调出分区调度器21(S82)。具体地,在检测出需要紧急处理的异常的发生时,通常控制任务26对分区调度器21进行起动指示。分区调度器21响应于来自通常控制任务26的调出而被强制起动(S82)。另外,作为通常控制任务26强制起动分区调度器21的结构,例如,可利用OS 100的系统调用。
分区调度器21将时间区从执行通常控制任务26的TP2切换到执行安全控制任务28的TP3(S84)。由于时间区被切换到TP3,因此执行属于TP3的安全控制任务28。因此,原来分配给TP2的时间资源中的剩余的时间资源被用于安全控制任务28的执行。
在通过安全控制任务28执行的处理结束的情况下,分区调度器21按照调度模式重新开始分区调度(S85)。在此,在通过安全控制任务28执行的处理结束的情况下,例如,通过由安全控制任务28向分区调度器21通知处理的结束,分区调度器21能够判断通过安全控制任务28执行的处理是否结束。另外,在通过安全控制任务28执行的处理结束的情况下,分区调度器21可以按照调度模式将时间区切换为新的时间区,也可以关于在S84中被切换为TP3之前已执行的TP2,以使时间区返回到被预定在TP2之后的时间区的方式切换时间区。
图10是示出异常发生时的时间区切换的具体例的图。另外,在图10中,以存在通常控制用的两个时间区(TP2(A)及TP2(B))的情况为例进行说明。
首先,如图10的上图所示,在TP2(A)中发生了异常的情况下,执行过程中的通常控制任务26立即调出分区调度器21。于是,如图10的下图所示,响应于来自通常控制任务26的调出,分区调度器21被强制地起动,分区调度器21将时间区切换到执行安全控制任务28的TP3。然后,在安全控制任务28被执行并结束的情况下,分区调度器21以使时间区切换到TP2(B)的方式进行时间调度。如此,根据本实施方式,在发生异常时能够立即进行异常处理。
<本发明的实施方式3>
本实施方式是上述的实施方式2涉及的安全控制装置1的变形。因此,对与上述的实施方式2相同的结构,省略说明,下面以与实施方式2不同的结构为中心进行说明。
根据上述的实施方式2,由于在执行通常控制任务26期间的时间区内的中途,被强制地切换到执行安全控制任务28的时间区,因此,对异常发生的反射性高,但是以后的调度中的、时间区的切换时刻有可能发生偏差。例如,如图10的下图所示,在时间区TP2的中途切换到TP3,其结果是,在TP2(B)中通常控制任务26所执行的控制的时刻有可能与原来预定的时刻发生偏差。其结果是,由装置执行的控制有可能不稳定(即,反射和不稳定处于折衷的关系)
因此,本实施方式的特征在于,在通常控制任务26的执行过程中发生了需要紧急处理的异常的情况下,取代响应于异常的发生立即强制起动分区调度器21,而在确认了在相同的时间区内是否剩余足以执行安全控制任务28的程度的时间资源后,在经过1Tick后的接下来的时刻中,通过分区调度器21将时间区切换到执行安全控制任务28的时间区。
接下来,使用图11和图12更详细地进行说明通过本实施方式涉及的安全控制装置1执行的处理。另外,在图11和图12中,执行通常控制任务26的时间区可以存在多个。
图11是示出分区调度器的处理步骤的具体例的流程图。另外,在图11中,以按照通常控制调度模式(例如,图5A)执行分区调度的情况下在TP2中发生了异常的情况为例进行说明。
首先,如果在TP2内在通常控制任务26的执行过程中发生了异常(S91),则通常控制任务26获得被分配给TP2的时间资源中剩余的时间资源,并判断是否剩余可用于执行安全控制任务28的程度的时间资源(S92)。作为判断是否剩余时间资源的结构,例如,能够采用基于被分配给时间区的总Tick数、各任务的执行所需的执行Tick数、时间区从开始时经过的经过Tick数来判定剩余的时间资源的方法。具体而言,将表示分配给时间区的总Tick数、各任务的执行所需的执行Tick数的信息预先存储在执行用存储器11中。另外,分区调度器21对时间区从开始时经过的经过Tick数进行计数。然后,各任务向分区调度器21询问总Tick数和经过Tick数,并从总Tick数中减去经过Tick数,由此能够计算同一时间区内的剩余的Tick数。然后,基于由该减法运算求出的Tick数是否大于执行Tick数,能够判断时间资源是否剩余。在本实施方式中,通常控制任务26作为TP2中的剩余的时间资源判断是否剩余1Tick以上。
如果TP3中可利用的时间资源剩余(S92中为是),则通常控制任务28向分区调度器21通知切换请求,以在1Tick经过后的接下来的时刻进行时间区的切换(S93)。分区调度器21在1Tick经过后起动(S94),并响应于来自通常控制任务26的切换请求将时间区从执行了通常控制任务26的TP2切换到执行安全控制任务28的TP3(S95)。由于时间区被切换到TP3,因此属于TP3的安全控制任务28被执行。
在通过安全控制任务28执行的处理结束的情况下,分区调度器21按照调度模式重新开始分区调度(S96)。
另外,如果TP3中可利用的时间资源未剩余(S92中为否),则通常控制任务28不向分区调度器21通知时间区的切换请求,在成为切换到TP2之后的TP1的时刻之前的期间,继续执行TP2内的通常控制任务28。
图12是示出异常发生时的时间区切换的具体例的图。另外,在图12中,以存在通常控制用的两个时间区(TP2(A)和TP2(B))的情况为例进行说明。
首先,如图12的上图所示,在TP2(A)中发生了异常的情况下,执行过程中的通常控制任务26在考虑了TP2(A)的剩余的时间资源后,向分区调度器21请求时间区的切换。于是,如图12的下图所示,在接下来的1Tick内起动的分区调度器21响应于来自通常控制任务26的请求将时间区切换到执行安全控制任务28的TP3。然后,在安全控制任务28被执行并结束的情况下,分区调度器21以使时间区切换到TP2(A)的方式进行时间调度。如此,可以不改变关于TP2(B)的时间区的开始时刻,因此能够避免关于在TP2(B)中执行的通常控制任务26由于控制周期的偏差引起的不稳定。
如此,根据本实施方式,在异常发生时,能够迅速地进行异常处理。另外,根据本实施方式,在异常发生时,在Tick的时刻进行从TP2向TP3的切换,因此与实施方式2相比,反射性下降,但能够维持稳定性。
<本发明的实施方式4>
本实施方式涉及的安全控制装置是上述的安全控制装置1的变形。本实施方式涉及的安全控制装置的全体的结构可以与图1所示的安全控制装置1的结构相同。另外,由本实施方式涉及的安全控制装置所具有的OS所提供的任务执行环境可以与图4所示的任务执行环境的结构相同。
在实施方式1中,分区调度器21、各时间区中的任务调度器23、25、27被包括在OS100中,分区调度器21能够执行时间区和资源分区的管理。但是,分区调度器21对在各分区中由任务调度器执行的任务的切换是否被正常实施无法把握。另外,在存在多个安全监视任务24那样的情况下,也可认为某些安全监视任务24未被执行而发生监视遗漏。因此,要求分区调度器21能够把握时间区内的任务的切换次数,并且能够防止与安全监视任务24有关的监视遗漏。
在本实施方式中,在各时间区中,任务调度器保存任务的切换次数。然后,分区调度器21在切换分区时,参照由任务调度器保存的任务的切换次数,并根据该切换次数是否为规定次数,来判断各时间区内的任务的执行状况。由此,分区调度器21进行时间区和资源分区的管理,各时间区中的任务调度器23、25、27进行任务的执行,进而分区调度器21能够把握由任务调度器执行的任务的切换是否被正常实施。另外,本实施方式优选应用于例如搭载在关于任务的切换时刻为高速的服务机器人等、任务的数量多的服务型机器人等、那样的服务型机器人等中的安全控制装置1。
接下来,使用图13对由本实施方式涉及的安全控制装置1执行的处理进行更详细的说明。另外,在图13中,执行通常控制任务26的时间区可以存在多个。
图13是示出分区调度器的处理步骤的具体例的流程图。另外,在图13中,以按照通常控制调度模式(例如,图5A)执行分区调度的情况为例进行说明。另外,假定TPX是TP1和TP2中的任一个。
首先,分区调度器21使TPX的任务调度器动作(S101)。任务调度器根据优先级来执行任务(S102)。任务调度器关于所执行的任务对表示将任务切换几次的切换次数进行计数,并将其保存在执行用存储器11中(S103)。
分区调度器21在将要实施分区切换时确认在S103中保存的任务的切换次数(S104)。分区调度器21判断任务的切换次数是否达到了规定次数(S105)。当达到了规定次数时(S105中为是),分区调度器21返回到S101继续处理而不切换时间区。另外,关于任务的切换次数的规定次数,由使用者预先设定为适当的值。
当任务的切换次数未达到规定次数时(S105中为否),分区调度器21判断执行了任务的时间区是否是执行安全监视任务24的TP2(S106)。当不是TP2时(S106中为否),分区调度器21将时间区切换为TP3(S107)。当是TP2时(S106中为是),分区调度器21使复位电路14动作以停止微控制器15的动作(S108)
另外,在图13中,以TPX为TP1和TP2中的任一个的情况为例进行了说明,但也可以在TPX为TP3且TP3中任务的切换次数不是规定次数的情况下,分区调度器21使复位电路14动作以停止微控制器15的动作。
根据以上所说明的本实施方式,分区调度器21能够把握时间区内的任务的切换次数,因此能够实施根据切换次数的适当的分区切换。另外,还能够防止与安全监视任务24有关的监视遗漏。
<本发明的实施方式5>
本实施方式涉及的安全控制装置是上述的安全控制装置1的变形。本实施方式涉及的安全控制装置的全体的结构可以与图1所示的安全控制装置1的结构相同。另外,由本实施方式涉及的安全控制装置所具有的OS提供的任务执行环境可以与图4所示的任务执行环境的结构相同。
在本实施方式中,时间区的一个周期构成为包括多个时间区,并且多个时间区的每一个被分配时间。分区调度器21的特征在于,在调度时间区和任务时,首先按照优先级检索任务,并在考虑了关于该任务被执行的时间区剩余的时间资源后,确定接下来要执行的任务。
接下来,使用图14对由本实施方式涉及的安全控制装置1执行的处理进行更详细的说明。图14是示出分区调度器的处理步骤的具体例的流程图。另外,在图14中,T(tx,py)表示在时间区tx内被执行的任务py。另外,在图14中,以假定TP1中的任务3正在执行(S111)、对以后的周期中包含的时间区和任务进行调度的情况为例进行说明。另外,在图14中,示出了分区调度器21起动过程中的处理。
首先,在1Tick结束(S112)时,分区调度器21判断控制周期是否结束(S113)。具体地,分区调度器21判断对于一个周期中包含的所有的时间区各自被分配的时间资源是否全部用尽。例如,在一个周期中包含TP1和TP2两个时间区,在TP1被分配了10Tick、TP2被分配了20Tick的情况下,判断对于TP1的执行10Tick是否结束,并且对于TP2的执行20Tick是否结束。在控制周期结束(S113中为是)的情况下,分区调度器21对所有的时间区再次分配时间资源(S114)。
分区调度器S115对之后的一个周期进行调度,因此判断之后的一个周期中包含的所有的任务是否被检索(S115)。在没有检索所有的任务(S115中为否)的情况下,分区调度器21判断被检索的任务是否是优先级比当前的候选任务高的任务(S117)。在图14中,将被检索的任务作为T(tx,py),判断被检索的任务是否是优先级比当前的候选任务T(t3,p1)高的任务。
在被检索的任务T(tx,py)的优先级比当前的候选任务的优先级高(在S118中为是s)的情况下,分区调度器21判断对于被检索的任务T(tx,py)被执行的时间区是否剩余时间资源(S118)。
当对于任务T(tx,py)的时间区剩余了时间资源(S118中为是)时,分区调度器21将接下来要执行的任务的候选确定为T(tx,py)(S119)。如此,通过S115~S119中的处理,当在优先级最高且该任务所属的时间区中剩余有时间资源时,将该任务确定为接下来要执行的任务。
当检索了所有的任务(在S115中为是)时,分区调度器21为了使在S119中确定的任务被执行,将时间区切换到包含该任务的时间区(S116)。然后,在S111中,假定在S119中确定的任务正在执行,重复以后的处理。
接下来,使用图15A、图15B 对由现有技术涉及的调度方法获得的结果(图15A)与由本实施方式涉及的调度方法获得的结果(图15B)之间的差异进行说明。另外,在图15A、图15B中,以包含两种时间区TP1和TP2且TP2的前半部分为TP2(A)、TP2的后半部分为TP2(B)的情况为例进行说明。另外,将TP2(A)、TP1、TP2(B)分别包含的任务设定为Task1、Task2、Task3,在这些任务中,假定Task1的优先级最高,Task2的优先级次高,Task3的优先级最低。
如图15A所示,根据现有技术涉及的调度方法,对各时间区分配固定的时间,并且按照优先级配置各任务。因此,作为调度的结果,例如在TP2(A)中Task1被执行并结束时,无法在之后立即开始后续的TP1(即,无法在Task1的执行结束后立即开始优先级次高的Task2)
与此相对,如图15B所示,根据本实施方式涉及的调度方法,取代对分别被分配固定的时间的时间区配置任务,首先,按照优先级来检索任务,并在考虑了对于该任务被执行的时间区有剩余的时间资源后,确定接下来要执行的任务。因此,能够在维持被分配给占据整个一个周期的各时间区的执行时间的比率的状态下,按照优先级来配置任务并在之后立即执行后续的任务。因此,能够实现在考虑了被分配给各时间区的时间之后能够满足任务的优先级和周期性的调度。
<本发明的实施方式6>
本实施方式是上述的实施方式5涉及的安全控制装置1的变形。因此,对于与上述的实施方式5相同的结构,省略说明,下面以与实施方式2不同的结构为中心进行说明。
在上述的实施方式5中,在任务的检索时,首先,以优先级为基准进行检索。在此,由于任务的个数比时间区的个数多(任务数>时间区数),因此,本实施方式的特征在于,以时间区的个数为基准进行任务的检索。由此,能够更有效地检索任务。
本实施方式的特征在于,在调度时间区和任务时,首先,检索剩余有时间资源的时间区,并按照该被检索的时间区内的任务的优先级来确定接下来要执行的任务。
接下来,使用图16对由本实施方式涉及的安全控制装置1执行的处理进行具体的说明。图16是示出分区调度器的处理步骤的具体例的流程图。另外,图16所示的S131~S134以及S138中的处理与图14所示的S111~S114以及S116中的处理相同。因此,下面以与图14所示的处理不同的处理(图16的S135~S137)为中心进行说明。并且,图16表示分区调度器21正在起动的处理。
分区调度器S115对以后的一个周期进行调度,因此对于以后的一个周期中包含的所有的时间区检索剩余有时间资源的时间区的一览表(S115)。
分区调度器S115在剩余有时间资源的时间区中对这些时间区中所包含的任务检索优先级最高的任务(S136)。分区调度器21将在S136中检索的任务确定为接下来要执行的任务的候选并作为T(tx,Py)(S137)。如此,通过S135~S137中的处理,检索属于剩余有时间资源的时间区的且优先级最高的任务,并将该任务确定为接下来要执行的任务。
<本发明的实施方式7>
本实施方式涉及的安全控制装置是上述的安全控制装置1的变形。本实施方式涉及的安全控制装置的整体结构可以与图1所示的安全控制装置1的结构相同。图18是示出由本实施方式涉及的安全控制装置所具有的OS提供的任务执行环境的概念图。在本实施方式中,OS100提供用于在安全监视任务24、通常控制任务26、安全控制任务28相互之间交换数据的任务间通信。
在图18的例子中,为了安全监视任务24、通常控制任务26、安全控制任务28之间的数据通信,而提供共享存储器29。例如,本实施方式的安全监视任务24从通常控制任务26经由共享存储器29接管与控制对象(服务型机器人、运输设备等)有关的控制信息。然后,安全控制任务28基于接管的控制信息来开始控制对象的安全控制。如此,在向安全控制进行切换时,安全控制任务28接管控制信息,由此能够顺利地开始针对控制对象的安全控制。
在本实施方式中,通过将共享存储器29分为多个分区间共享存储器。在此,将共享存储器29分为需要数据共享的时间区的个数的分区间共享存储器。当各时间区内的任务访问分区间共享存储器时,使访问且的地相互不同,并且每次访问时分别改变作为数据写入的对象的分区间共享存储器以及作为数据读出的对象的分区间共享存储器。然后,在任务读出数据时,从具有完成更新的最新的数据的分区间共享存储器中进行数据的读出。
使用图19至图21对由本实施方式涉及的安全控制装置1执行的处理进行具体的说明。
图19A、图19B是示出对分区间共享存储器的访问的具体例的图。另外,在图中,以与三个时间区(TP1,TP2,TP3)相应地具有三个分区间共享存储器A、B、C的情况为例进行说明。分区间共享存储器A在时间t-2已完成更新,分区间共享存储器B在时间t-1已完成更新,分区间共享存储器C当前正在更新中,并在时间t完成更新。
如图19A所示,TP2内的通常控制任务26对分区间共享存储器C进行数据的写入。另一方面,TP1内的安全监视任务24不访问任何存储器,并且处于对存储有完成更新的最新数据的分区间共享存储器B访问的过程中。在这种情况下,TP3内的安全控制任务28能够访问分区间共享存储器A。然后,如图19B所示,在TP1内的安全监视任务24的访问按时结束时,TP3内的安全控制任务28不访问任何存储器,并且能够开始访问存储有完成更新的最新数据的分区间共享存储器B。
图20是示出对分区间共享存储器的访问的处理步骤的具体例的流程图。另外,在图20中,作为任务调度模式,以TP2的后续的时间区为TP1的情况为例进行说明。
首先,在TP2内的通常控制任务26的执行过程中(S141),OS100检索未被任一分区内的任务访问的分区间共享存储器(S142)。
TP2内的通常控制任务26访问由OS100所指定的分区间共享存储器,并进行数据的更新(S143)。另外,在由TP2内的通常控制任务26执行的更新没有完成的情况下,后续的时间区内的任务也访问不同的分区间共享存储器,因此S143中的数据更新不一定完成。
在1Tick经过后(S144),分区调度器21起动从而开始调度(S145)。时间区被切换到TP1,并且TP1内的安全监视任务24开始执行(S146)。OS100检索未被任一时间区内的任务访问且在完成更新的分区间共享存储器中存储有最新数据的分区间共享存储器(S147)。
TP1内的安全监视任务24访问OS100所指定的分区间共享存储器(S148)。另外,在S148中,当TP1访问分区间共享存储器时,也可以发生从TP1向其他的时间区的切换。
图21是示出在对分区间共享存储器进行访问时进行数据的写入的情况下的处理步骤的具体例的流程图。
首先,时间区内的任务开始访问分区间共享存储器(S151)。OS100检索未被任一时间区内的任务访问且在完成更新的分区间共享存储器中存储有最新数据的分区间共享存储器(S152)。
时间区内的任务访问在S152中被检索的分区间共享存储器(S153)。在正在访问分区间共享存储器的任务执行向分区间共享存储器的写入时,为了表示最新的数据被存储于当前正在访问的分区间共享存储器中,OS100保存与分区间共享存储器的更新有关的信息(S154)。
根据以上说明的本实施方式,即使在任一时间区内的任务访问共享存储器29的情况下,也能够避免由于数据在时间区间的共享引起的失败。
<本发明的实施方式8>
本实施方式涉及的安全控制装置是上述的实施方式7涉及的安全控制装置1的变形。因此,对于与上述的实施方式7相同的结构,省略说明,以下,以与实施方式7不同的结构为中心进行说明。
根据上述的实施方式7,即使在任一时间区内的任务访问共享存储器29的情况下,也能够避免由于数据在时间区间的共享引起的失败,但关于能否对需要共享的数据正确地(无遗漏地)共享,则不一定能够保证。因此,例如,在期望利用最新的传感器数据来实现服务机器人等的控制的情况下,有可能在使用旧数据的状态下继续控制。
根据上述的实施方式7,作为数据更新的对象的分区间共享存储器基本上每次被访问时都不同。因此,在时间区内的任务对分区间共享存储器的访问由本来不应该访问的时间区内的任务进行时,存储于分区间共享存储器中的数据有可能不是最新的数据。
因此,本实施方式的特征在于,除在实施方式7中说明的处理以外,在时间区内的任务对分区间共享存储器进行访问时由本来不应该访问的任务进行了访问的情况下,判断为异常,进行相应的处理。
接下来,使用图22对由本实施方式涉及的安全控制装置1执行的处理进行具体的说明。
图22是示出对分区间共享存储器的访问的处理步骤的具体例的流程图。另外,在图22中,作为任务调度器,以TP2的后续的时间区为TP1的情况为例进行说明。
图22的处理与图20的S141~S143阶段的处理相比,不同之处在于S163和S164。即,OS100在TP2内的通常控制任务26对分区间共享存储器进行访问时,判断是否是由本来应该访问的任务进行的访问(S163),在不是由本来应该访问的任务进行的访问(S163中为否)的情况下,将发生访问异常的信息保存于共享存储器29中(S164)。作为S163中的判断,例如,在对相同的分区间共享存储器连续进行规定次数以上的访问时,可判断为不是由本来应该访问的任务进行的访问。规定的次数由使用者预先设定为适当的值。另外,图22所示的S161~S165阶段的其他的处理与图20所示的S141~S143阶段的处理基本上相同。
图22的处理与图200的S144~S148阶段的处理相比,不同之处在于S168和S172。即,OS100根据在S164中保存的异常发生信息的有无,判断对共享存储器29的访问有无异常(S168)。当有异常时(S168中为是),指示分区调度器21执行时间区的切换或者进行微控制器15的复位。另外,图22所示的S168~S172阶段的其他的处理与图20所示的S144~S148期间的处理基本上相同。
根据以上说明的本实施方式,即使在任一时间区内的任务访问共享存储器29的情况下,关于时间区间的数据的共享,也能够保证可正确地(无遗漏地)共享数据。
<本发明的实施方式9>
本实施方式涉及的安全控制装置是上述的安全控制装置1的变形。本实施方式涉及的安全控制装置的全体的结构可以与图1所示的安全控制装置1的结构相同。由本实施方式涉及的安全控制装置所具有的OS提供的任务执行环境与图4所示的任务执行环境的结构基本上相同,但在分区调度器21具有任务调度器的功能的方面与其不同。因此,对于与上述的实施方式相同的结构,省略说明,下面以不同的结构为中心进行说明。
本实施方式的特征在于,取代在各时间区内存在任务调度器23、25、27的结构,分区调度器21也执行在各时间区内任务的任务调度器。
在包括时间分区功能的现有技术中,通常,具有(a)由任务产生的执行时间与由分区调度器产生的处理时间或由任务调度器产生的处理时间相比充分长(例如,lmsec),并且(b)由于对于每个时间区需要不同的调度方法,因此对于每个时间区需要提供任务调度器等状况。但是,本实施方式涉及的安全控制装置1具有下面的状况:由于假定服务型机器人等中的控制用途,因此,由任务产生的执行时间非常短(例如,30usec),并且也不需要对每个时间区改变任务调度。因此,在本实施方式中,分区调度器21除了实施时间区的调度以外,还实施时间区内的任务的调度。
在本实施方式中,分区调度器21还实施时间区内的任务的调度。因此,例如,在图6所示的处理步骤中,取代由任务调度器执行S12和S16中的处理,也可以由分区调度器21执行S12和S16中的处理。
使用图25A、25B对本实施方式产生的效果进行说明。
图25A、25B是示出各处理在一个时间区内所占的比率的图。图25A示出根据现有技术的比率,并且需要由任务调度器产生的处理时间独立于分区调度器21的处理。图25B示出根据本实施方式的比率,由任务调度器产生的处理时间被包含在由分区调度器21产生的处理时间内,并且任务的可处理时间很短。
根据以上说明的本实施方式,通过将任务调度器集成于分区调度器21中,能够提高整个系统的效率。并且,本实施方式优选应用于搭载在服务型机器人等的较小的控制周期的马达控制ECU(Electronic Control Unit:电子控制单元)或处理较简单的服务型机器人等。
另外,本发明不限于上述的实施方式,在不脱离上述的本发明的主旨的范围内可进行各种变更。例如,可以分别实施上述的各实施方式,也可以组合多个实施方式进行实施。例如,在发生具有紧急停止的异常的情况下,应用实施方式2或实施方式3涉及的任一技术,关于其他的异常,也可以使用实施方式4涉及的技术来判定异常发生。另外,例如,在执行与时间区和任务有关的调度时,应用实施方式5或实施方式6涉及的任一技术,在被调度后的任务的执行中发生异常时,也可以应用实施方式2至4涉及的任一技术。另外,例如,在使用共享存储器29在任务之间进行数据通信的情况下,也可以在应用实施方式7或实施方式8涉及的任一技术中组合其他的实施方式1至6中的任一个进行应用。
符号说明
1     安全控制装置
10    处理器
11    执行用存储器
12    I/O端口
13    非易失性存储器
14    复位电路
15    微控制器
21    分区调度器
22    调度表
23、25、27任务调度器
24    安全监视任务
26    通常控制任务
28    安全控制任务
29    共享存储器
100   操作系统
101   安全监视应用
102   通常控制应用
103   安全控制应用

Claims (14)

1.一种安全控制装置,包括:
硬件资源,所述硬件资源包括至少一个处理器;以及
系统程序,所述系统程序用于控制所述处理器的执行时间对下述程序的分配:(a)监视与控制对象有关的异常的发生的安全监视程序;(b)与通常时所述控制对象的控制相关联的通常控制程序;以及(c)与异常时所述控制对象的控制相关联的安全控制程序,
所述系统程序的一部分具有按照调度模式来选择和确定接下来要调度的时间区的分区调度器,所述调度模式包括:(d)对所述安全监视程序分配所述执行时间的第一时间区;(e)对所述通常控制程序分配所述执行时间的第二时间区;以及(f)对所述安全控制程序分配所述执行时间的第三时间区,
所述处理器通过执行所述系统程序使所述分区调度器周期性地动作,
所述分区调度器响应于由在所述第一时间区内被执行的所述安全监视程序或在所述第二时间区内被执行的所述通常控制程序检测到异常而被起动,并进行从所述第一时间区或所述第二时间区向所述第三时间区的切换。
2.如权利要求1所述的安全控制装置,其特征在于,
所述分区调度器响应于由在所述第二时间区内被执行的所述通常控制程序检测到异常而被强制地起动,并立即进行从所述第二时间区向所述第三时间区的切换。
3.如权利要求1所述的安全控制装置,其特征在于,
所述通常控制程序在检测到异常时,判断在所述通常控制程序被执行的所述第二时间区内是否剩余可执行时间,在剩余有可执行时间时,向所述分区调度器通知时间区的切换请求,
所述分区调度器在接收到来自所述通常控制程序的时间区的切换请求通知时,在下一个周期动作,并进行从所述第二时间区向所述第三时间区的切换。
4.如权利要求1至3中任一项所述的安全控制装置,其特征在于,
所述系统程序的一部分还具有进行在所述时间区内被执行的程序的调度的任务调度器,
所述分区调度器使所述任务调度器动作,并根据所述任务调度器对所述程序的切换次数来判断所述程序在所述时间区内的执行状况。
5.如权利要求4所述的安全控制装置,其特征在于,
所述分区调度器具有所述任务调度器,
所述分区调度器使所述任务调度器动作。
6.如权利要求1至5中任一项所述的安全控制装置,其特征在于,
所述程序被分别设定优先级,
所述时间区的一个周期构成为包括多个所述时间区,并且多个所述时间区的每一个被分配时间,
所述分区调度器根据所述程序的优先级以及在所述程序被执行的所述时间区内所剩余的可执行时间来确定接下来要执行的程序,并切换到包括该确定的程序的时间区。
7.如权利要求6所述的安全控制装置,其特征在于,
所述分区调度器按照所述程序的优先级来检索接下来要执行的程序,并在该检索到的程序被执行的所述时间区内剩余有可执行时间时,将该检索到的程序确定为接下来要执行的程序。
8.如权利要求6所述的安全控制装置,其特征在于,
所述分区调度器在所述程序被执行的所述时间区中检索剩余有可执行时间的时间区,并在该检索到的时间区内按照优先级确定接下来要执行的程序。
9.如权利要求1至8中任一项所述的安全控制装置,其特征在于,还包括:
共享存储器,所述共享存储器被构成为用于第一程序和第二程序之间的数据通信,并被分割为多个共享部分,所述第一程序和所述第二程序是所述安全监视程序、所述通常控制程序、以及所述安全控制程序中的任两个程序,
所述处理器通过执行所述系统程序来选择和确定所述时间区,并在所述时间区内被执行的所述第一程序访问所述共享存储器中的任一共享部分时,将在所述时间区内被执行的所述第二程序的访问目的地作为所述第一程序未访问且存储有最新的更新数据的共享部分。
10.如权利要求9所述的安全控制装置,其特征在于,
所述处理器通过执行所述系统程序来选择和确定所述时间区,并在所述时间区内被执行的所述第一程序访问所述共享存储器中的任一共享部分时访问了规定的次数以上的情况下,判断为发生异常。
11.一种控制对象的安全控制方法,包括下述步骤:
周期性地动作以使处理器按照调度模式选择和确定接下来要调度的时间区,所述调度模式包括(a)对监视与控制对象有关的异常的发生的安全监视程序分配所述处理器的执行时间的第一时间区、(e)对与通常时所述控制对象的控制相关联的通常控制程序分配所述执行时间的第二时间区、以及(f)对与异常时所述控制对象的控制相关联的安全控制程序分配所述执行时间的第三时间区;以及
进行动作,以使所述处理器响应于由在所述第一时间区内被执行的所述安全监视程序或在所述第二时间区内被执行的所述通常控制程序检测到异常而进行从所述第一时间区或所述第二时间区向所述第三时间区的切换。
12.如权利要求11所述的安全控制方法,其特征在于,
所述安全控制方法还包括下述步骤:
进行动作以使所述处理器根据所述程序的切换次数来判断所述程序在所述时间区内的执行状况。
13.如权利要求11或12所述的安全控制方法,其特征在于,
所述安全控制方法还包括下述步骤:
进行动作,以使所述处理器在所述程序被执行的所述时间区中检索剩余有可执行时间的时间区,并在该检索到的时间区内按照优先级确定接下来要执行的程序。
14.如权利要求11至13中任一项所述的安全控制方法,其特征在于,
所述安全控制方法还包括下述步骤:
进行动作以使所述处理器执行对共享存储器的访问,所述共享存储器被构成为用于第一程序和第二程序之间的数据通信,并被分割为多个共享部分,所述第一程序和所述第二程序是所述安全监视程序、所述通常控制程序、以及所述安全控制程序中的任两个程序,
在进行动作以使所述处理器执行对所述共享存储器的访问的步骤中,在所述时间区内被执行的所述第一程序访问所述共享存储器中的任一共享部分时,将在所述时间区内被执行的所述第二程序的访问目的地作为所述第一程序未访问且存储有最新的更新数据的共享部分。
CN201180017410.1A 2011-01-31 2011-01-31 安全控制装置以及安全控制方法 Expired - Fee Related CN103403628B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/000527 WO2012104899A1 (ja) 2011-01-31 2011-01-31 安全制御装置および安全制御方法

Publications (2)

Publication Number Publication Date
CN103403628A true CN103403628A (zh) 2013-11-20
CN103403628B CN103403628B (zh) 2014-10-22

Family

ID=46602154

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180017410.1A Expired - Fee Related CN103403628B (zh) 2011-01-31 2011-01-31 安全控制装置以及安全控制方法

Country Status (5)

Country Link
US (1) US8756606B2 (zh)
EP (1) EP2672344B1 (zh)
JP (1) JP5267737B2 (zh)
CN (1) CN103403628B (zh)
WO (1) WO2012104899A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106062649A (zh) * 2014-03-14 2016-10-26 欧姆龙株式会社 控制装置及控制系统
CN107976918A (zh) * 2016-10-24 2018-05-01 菜鸟智能物流控股有限公司 一种任务切换方法和相关装置
CN109507980A (zh) * 2017-09-14 2019-03-22 欧姆龙株式会社 控制装置及控制方法
CN110231781A (zh) * 2018-03-05 2019-09-13 欧姆龙株式会社 控制装置、存储介质、控制方法

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103052924B (zh) * 2011-01-31 2014-09-24 丰田自动车株式会社 安全控制装置及安全控制方法
JP2014211689A (ja) * 2013-04-17 2014-11-13 トヨタ自動車株式会社 安全制御装置および安全制御方法
JP6508192B2 (ja) * 2014-03-14 2019-05-08 オムロン株式会社 制御装置及び制御システム
CN104520815B (zh) * 2014-03-17 2019-03-01 华为技术有限公司 一种任务调度的方法及装置
JP6520545B2 (ja) * 2015-08-10 2019-05-29 オムロン株式会社 サポート装置およびサポートプログラム
KR102079499B1 (ko) * 2015-10-20 2020-02-21 엘에스산전 주식회사 Plc 위치 결정 시스템의 축별 제어주기 독립 할당 방법
DE102017011130B4 (de) * 2017-12-01 2021-03-04 Kuka Deutschland Gmbh Verfahren und System zum Steuern eines Roboters
WO2019163133A1 (ja) * 2018-02-26 2019-08-29 三菱電機株式会社 エレベータ安全制御装置
US11543798B2 (en) 2019-02-27 2023-01-03 Veo Robotics, Inc. System architecture for safety applications
WO2024202105A1 (ja) * 2023-03-30 2024-10-03 ソニーグループ株式会社 情報処理装置、動作制御方法、及び、移動体

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62245304A (ja) * 1986-04-17 1987-10-26 Fanuc Ltd 数値制御におけるプログラムスキツプ方式
JP2002099435A (ja) * 2000-09-21 2002-04-05 Toshiba Corp マルチタスク制御方法および情報処理装置
JP2010271759A (ja) * 2009-05-19 2010-12-02 Toyota Motor Corp 安全制御装置および安全制御方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0774786A (ja) 1993-08-31 1995-03-17 Oki Electric Ind Co Ltd 多地点間データ伝送方法
JP3832517B2 (ja) * 1996-07-05 2006-10-11 セイコーエプソン株式会社 ロボット用コントローラ及びその制御方法
JPH1165992A (ja) 1997-08-27 1999-03-09 Canon Inc バス管理方法及び装置
JPH11175357A (ja) 1997-12-17 1999-07-02 Chokosoku Network Computer Gijutsu Kenkyusho:Kk タスク管理方法
US7302685B2 (en) * 2000-06-02 2007-11-27 Honeywell International Inc. Methods and apparatus for sharing slack in a time-partitioned system
JP2002086379A (ja) 2000-09-13 2002-03-26 Toshiba Corp ロボット、ロボットの制御方法およびロボットを動作するプログラムを記憶したコンピュータ読み取り可能な記憶媒体
JP2002287987A (ja) 2001-03-28 2002-10-04 Namiki Precision Jewel Co Ltd タスクの並行処理を実行させるためのプログラム及び並行処理する組込み制御装置及び並行処理方法並びにプログラムが記録されている記録媒体
JP3952992B2 (ja) * 2003-06-03 2007-08-01 ソニー株式会社 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム
DE102004054571B4 (de) 2004-11-11 2007-01-25 Sysgo Ag Verfahren zur Verteilung von Rechenzeit in einem Rechnersystem
CA2538503C (en) * 2005-03-14 2014-05-13 Attilla Danko Process scheduler employing adaptive partitioning of process threads
JP2006285724A (ja) 2005-04-01 2006-10-19 Seiko Epson Corp 情報処理装置および情報処理方法
JP2006338426A (ja) * 2005-06-03 2006-12-14 Hitachi Ltd 計算機システム
JP2008191823A (ja) 2007-02-02 2008-08-21 Omron Corp 安全管理方法、安全管理システムおよび安全制御機器
CN103052924B (zh) * 2011-01-31 2014-09-24 丰田自动车株式会社 安全控制装置及安全控制方法
US20120198464A1 (en) * 2011-01-31 2012-08-02 Toyota Jidosha Kabushiki Kaisha Safety controller and safety control method
WO2012104897A1 (ja) * 2011-01-31 2012-08-09 トヨタ自動車株式会社 安全制御装置および安全制御方法
US8706265B2 (en) * 2011-01-31 2014-04-22 Toyota Jidosha Kabushiki Kaisha Safety controller and safety control method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62245304A (ja) * 1986-04-17 1987-10-26 Fanuc Ltd 数値制御におけるプログラムスキツプ方式
JP2002099435A (ja) * 2000-09-21 2002-04-05 Toshiba Corp マルチタスク制御方法および情報処理装置
JP2010271759A (ja) * 2009-05-19 2010-12-02 Toyota Motor Corp 安全制御装置および安全制御方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106062649A (zh) * 2014-03-14 2016-10-26 欧姆龙株式会社 控制装置及控制系统
US10180674B2 (en) 2014-03-14 2019-01-15 Omron Corporation Controller and control system
CN107976918A (zh) * 2016-10-24 2018-05-01 菜鸟智能物流控股有限公司 一种任务切换方法和相关装置
CN107976918B (zh) * 2016-10-24 2020-10-13 菜鸟智能物流控股有限公司 一种任务切换方法和相关装置
CN109507980A (zh) * 2017-09-14 2019-03-22 欧姆龙株式会社 控制装置及控制方法
CN109507980B (zh) * 2017-09-14 2021-09-17 欧姆龙株式会社 控制装置及控制方法
CN110231781A (zh) * 2018-03-05 2019-09-13 欧姆龙株式会社 控制装置、存储介质、控制方法
CN110231781B (zh) * 2018-03-05 2022-04-05 欧姆龙株式会社 控制装置、存储介质、控制方法

Also Published As

Publication number Publication date
EP2672344B1 (en) 2017-06-28
CN103403628B (zh) 2014-10-22
JPWO2012104899A1 (ja) 2014-07-03
EP2672344A1 (en) 2013-12-11
WO2012104899A1 (ja) 2012-08-09
EP2672344A4 (en) 2014-08-06
JP5267737B2 (ja) 2013-08-21
US20120291036A1 (en) 2012-11-15
US8756606B2 (en) 2014-06-17

Similar Documents

Publication Publication Date Title
CN103403628B (zh) 安全控制装置以及安全控制方法
CN103080858B (zh) 安全控制装置及安全控制方法
EP2677377B1 (en) Safety control device and safety control method
CN103026309B (zh) 安全控制装置以及安全控制方法
EP2672342B1 (en) Safety control device and safety control method
JP5621857B2 (ja) 安全制御装置および安全制御方法
JP2013097719A (ja) 制御装置および制御方法
JP2015212969A (ja) 情報処理装置およびdmaコントローラの動作確認方法
JP2013148956A (ja) 情報処理装置およびdmaコントローラの動作確認方法

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20141022

Termination date: 20160131

EXPY Termination of patent right or utility model