CN110291474A - 控制器 - Google Patents
控制器 Download PDFInfo
- Publication number
- CN110291474A CN110291474A CN201780086062.0A CN201780086062A CN110291474A CN 110291474 A CN110291474 A CN 110291474A CN 201780086062 A CN201780086062 A CN 201780086062A CN 110291474 A CN110291474 A CN 110291474A
- Authority
- CN
- China
- Prior art keywords
- task
- execution
- bit stream
- mission bit
- additional
- 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
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0428—Safety, monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4831—Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/13—Plc programming
- G05B2219/13065—Tasks for executing several programs asynchronously
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/13—Plc programming
- G05B2219/13068—Program divided in operation blocks, groups, tasks each executed
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/13—Plc programming
- G05B2219/13086—Priority interrupt
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/25—Pc structure of the system
- G05B2219/25419—Scheduling
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
Abstract
控制器(1)具备:任务执行管理表(12),其对包含任务的优先级的信息的任务信息进行登记;新任务取得部(16),其取得向任务执行管理表(12)追加的新的任务信息;临时优先级设定部(13),其将新的任务信息所包含的优先级变更为临时优先级而将新的任务信息向任务执行管理表(12)临时登记;以及任务执行监视部(14),其监视与临时登记的新的任务信息相对应的任务即追加任务的执行对已有的任务的执行带来的影响。
Description
技术领域
本发明涉及进行对象设备的控制的控制器。
背景技术
在专利文献1中,公开了能够使用户的便利性提高的控制器,具体地说,能够在用户程序的执行过程中对任务的优先级以及执行周期这样的程序的执行条件进行变更的控制器。在专利文献1记载的控制器所执行的用户程序中能够包含用于对程序的执行条件进行变更的命令。即,专利文献1所记载的控制器在要执行的用户程序中包含有用于对程序的执行条件进行变更的命令的情况下,对任务的优先级以及执行周期的至少一者进行修正,执行用户程序。控制器需要在针对每个任务规定的执行周期内完成各任务。
专利文献1:日本特开2015-176191号公报
发明内容
就在生产现场对设备进行控制的控制器而言,有时在用户程序的执行过程中、即在执行任务的过程中,对设定进行变更,以新执行与正在执行的已有的任务不同的任务。但是,存在以下可能性,即,已有的任务受到追加的任务即以新执行的方式设定的任务的影响而产生故障。例如,在控制器基于优先级而对任务进行调度的情况下,存在以下可能性,即,与以新执行的方式追加的任务相比优先级低的已有的任务的执行定时被延迟,无法在规定的执行周期内完成任务。如果无法在规定的执行周期内完成已有的任务,则产生如下问题,即,生产停止、生产效率下降、在对进行切削加工的装置进行控制的情况下加工精度下降。因此,在对要执行的任务进行追加的情况下,优选事先确认是否会对已有的任务带来影响,在知道不会带来影响的情况下实施追加。该情况下的对已有的任务带来影响是指,由于要执行的任务的追加而使大于或等于1个已有的任务变得无法正常地执行,具体地说,变得无法在规定的执行周期内结束任务。此外,在以下的说明中,有时将使任务的执行结束的期限称为绝限。
本发明就是鉴于上述而提出的,其目的在于得到一种控制器,该控制器能够以在事先确认了对已有的任务的影响之后执行新的任务的方式对设定进行变更。
为了解决上述课题,实现目的,本发明涉及的控制器具备:任务执行管理表,其对包含任务的优先级的信息的任务信息进行登记;以及新任务取得部,其取得向任务执行管理表追加的新的任务信息。另外,控制器具备:临时优先级设定部,其将新的任务信息所包含的优先级变更为临时优先级而将新的任务信息向任务执行管理表临时登记;以及任务执行监视部,其监视与临时登记的新的任务信息相对应的任务即追加任务的执行对已有的任务的执行带来的影响。
发明的效果
根据本发明,取得下述的效果,即,能够得到一种控制器,该控制器能够以在事先确认了对已有的任务的影响之后执行新的任务的方式对设定进行变更。
附图说明
图1是表示本发明的实施方式涉及的控制器的硬件结构的图。
图2是表示控制器的功能模块结构的一个例子的图。
图3是表示任务执行管理表的一个例子的图。
图4是表示新任务追加窗口的一个例子的图。
图5是表示控制器的动作的一个例子的流程图。
图6是表示临时优先级设定部的动作的一个例子的流程图。
图7是表示任务执行监视部的动作的一个例子的流程图。
图8是表示追加任务之前的控制器的动作的一个例子的图。
图9是表示正在执行追加任务的动作的控制器的动作的一个例子的图。
图10是表示追加了任务之后的控制器的动作的一个例子的图。
具体实施方式
以下,基于附图,对本发明的实施方式涉及的控制器详细地进行说明。此外,本发明不限定于该实施方式。
实施方式.
图1是表示本发明的实施方式涉及的控制器的硬件结构的图。控制器1由CPU(Central Processing Unit)101、存储器102、输入输出接口103以及现场通信接口104构成。向CPU 101连接有存储器102。另外,CPU 101与输入输出接口103以及现场通信接口104通过总线105进行连接。
CPU 101执行存储于存储器102的OS(Operating System)以及用户程序这样的程序。输入输出接口103是对省略了图示的作为控制对象的装置进行连接的接口。输入输出接口103通过与CPU 101所执行的程序对应地进行I/O(Input/Output)控制用输入输出,从而对所连接的装置进行控制。另外,现场通信接口104与CPU 101所执行的程序对应地进行与其它控制器、信息系统之间的通信。
图2是表示控制器1的功能模块结构的一个例子的图。控制器1具备任务执行管理表12、临时优先级设定部13、任务执行监视部14、任务执行状态存储部15、新任务取得部16以及包含调度器11的任务执行部10。这些功能模块由作为实时OS等的OS 17实现。即,通过在作为实时OS等的OS 17上执行用于作为控制器1而进行动作的程序,从而实现上述的各功能模块。图2所示的任务19是在上述的各功能模块的上级运行的用户程序等任务。任务是指控制器1上的程序执行单位,是任务执行部10的调度器11对接下来要执行的程序进行选择时的单位。任务通常具有进行系统处理的任务以及控制器1的用户独立地创建的任务,执行1个或者多个任务。应执行的任务的结构根据控制器1的规格以及用途而存在各种各样的结构,不特别限定。
任务执行部10基于在任务执行管理表12登记的任务信息,通过调度器11而决定任务的执行顺序,执行任务。图3是表示任务执行管理表12的一个例子的图。如图3所示,在任务执行管理表12登记的任务信息由任务的名称、优先级以及执行周期构成。图3示出了登记有任务A的任务信息、任务B的任务信息以及任务C的任务信息的任务执行管理表12的例子。在任务执行管理表12登记的任务信息不仅在任务的停止时而且在执行过程中也能够从外部进行改写,由此,用户能够变更任务的执行顺序。另外,通过向任务执行管理表12登记任务信息,从而能够对与已登记的任务信息相对应的任务进行调度,根据调度而执行。另外,通过删除在任务执行管理表12登记的任务信息,从而能够不执行与已删除的任务信息相对应的任务。
任务的优先级是调度器11用于对要执行的任务进行选择的指标,调度器11在能够执行的任务中选择优先级最高的任务。任务的优先级例如存在从0至255等多个等级,该值越小任务优先级越高,优先地得到调度。调度器11进行的调度设想为能够抢占的调度,即,如果在任务的执行过程中,优先级更高的任务成为能够执行的状态,则立刻向优先级比正在执行的任务更高的任务的执行切换的方式的调度。在任务执行管理表12是图3所示的表格的情况下,任务A优先级最高,任务B的优先级次高。另外,在任务A~C中任务C的优先级最低。
控制器1的任务例如像以一定间隔进行反馈控制的任务那样,必须反复地执行。该执行的时间间隔、即从能够执行该任务起至下一次能够执行相同任务为止的时间是图3所示的执行周期。任务的执行周期是鉴于该任务所要求的控制的精度等,由用户设定的。在任务执行管理表12是图3所示的表格的情况下,任务A每隔1s而变为能够执行的状态。同样地,任务B每隔4s而变为能够执行的状态,任务C每隔8s而变为能够执行的状态。
此外,在本实施方式中,设为任务执行部10具备调度器11的结构,但也可以将调度器11与任务执行部10设为独立结构。
接下来,对控制器1的动作例,具体地说,对在运行着多个任务的状态下,控制器1的用户追加新的任务的情况下的动作进行说明。就追加的任务而言,由用户预先确定应设定的优先级即目标优先级。用户鉴于追加的任务的处理内容,确定目标优先级,以使得任务在所需要的定时运行。确定目标优先级的方法在本发明的范围外。
在追加控制器1所执行的任务的情况下,用户使用用于进行控制器1的设定的应用软件即工程工具。该应用软件由经由图1所示的现场通信接口104而与控制器1连接的个人计算机执行。
用于进行控制器1的设定的工程工具如果检测到进行了向控制器1指示使追加任务信息的动作开始的操作,则显示图4所示的新任务追加窗口1000。新任务追加窗口1000包含:追加任务的设定区域1001;优先级的设定区域1002;执行周期的指定区域1003;执行按钮1004,其接收任务的追加动作的开始指示;以及显示区域1005,其显示追加结果。追加任务的设定区域1001是由用户通过例如输入该任务的入口(entrypoint)名或者执行文件名而对用户所要追加的任务进行指定的区域。优先级的设定区域1002是由用户对追加的任务的原本的优先级进行指定的区域。执行周期的指定区域1003是由用户指定应设定的执行周期的区域。
用户向追加任务的设定区域1001、优先级的设定区域1002以及执行周期的指定区域1003输入所需的信息。信息的输入通过按下各设定区域所包含的指定按钮而结束。此时,工程工具对所输入的信息是否正确进行判定,也可以在信息不正确的情况下,对这一情况进行显示等而提示重新输入。所输入的信息不正确的情况是指,例如输入了不包含在能够指定的范围中的值的优先级的情况。用户如果完成了向优先级的设定区域1002以及执行周期的指定区域1003的所需信息的输入,则按下执行按钮1004。接收到该操作的工程工具生成包含了所输入的信息,即,追加的任务的名称、优先级以及执行周期在内的任务信息,向控制器1发送。其结果,在控制器1中,执行后述的处理而进行任务的追加、即进行从工程工具接收到的任务信息的向任务执行管理表12的追加。此外,在控制器1中,新任务取得部16接收从工程工具发送来的任务信息。如果从控制器1发送来任务的追加处理的结果,则工程工具将追加处理的结果显示在新任务追加窗口1000的显示区域1005。
返回到控制器1的说明,控制器1如果从工程工具接收到追加的任务的任务信息,则执行图5所示的流程。图5是表示控制器1的动作的一个例子的流程图。更详细而言,图5是表示如下动作的流程图,即,控制器1对能否将从工程工具接收到的任务信息向任务执行管理表12追加登记进行判定,在能够追加登记的情况下,对任务信息进行登记。此外,“能够将任务信息向任务执行管理表12追加登记”是指,即使通过将任务信息追加登记而执行新的任务,也能够正常地执行全部的任务这一情况。“全部的任务”是指,将通过任务信息的追加登记而新执行的任务、以及至今为止执行的已有的任务合计起来的任务。“能够正常地执行任务”是指,能够将开始任务起至结束为止的动作在与任务相对应的任务信息所包含的执行周期内完成。例如,在图3所示的任务A的情况下,如果任务A从成为能够执行的状态起至任务A结束为止的时间在1s以内,则表示能够正常地执行任务A。
如果控制器1接收到追加的任务的任务信息,则首先,临时优先级设定部13决定所追加的任务的临时优先级(步骤S1)。临时优先级是指,在判别能否追加与从工程工具接收到的任务信息相对应的任务的处理中所使用的优先级,临时优先级设定部13将不对已有的任务的执行定时(timing)带来影响的值决定为临时优先级。以下,将追加的任务称为追加任务,将追加的任务的任务信息称为追加任务信息。在该步骤S1中,临时优先级设定部13以图6所示的流程决定临时优先级。
图6是表示临时优先级设定部13的动作的一个例子的流程图。临时优先级设定部13如果经由新任务取得部16而从工程工具接收到追加任务信息,则首先,从任务执行管理表12取得全部任务的优先级(步骤S11)。即,临时优先级设定部13从在任务执行管理表12登记的全部的任务信息中取得任务信息所包含的优先级。临时优先级设定部13接下来以与取得的全部任务的优先级中的最低优先级相比低的方式,决定追加任务的临时优先级(步骤S12)。临时优先级设定部13以与取得的优先级中的最低优先级相比低1的方式,决定追加任务的临时优先级即可。即,临时优先级设定部13将向取得的优先级中的最低优先级加上1而得到的值决定为追加任务的临时优先级。临时优先级设定部13也可以在与取得的优先级中的最低优先级相比追加任务的优先级低的情况下,将追加任务的优先级原样地决定为临时优先级。
返回图5所示的流程图的说明,接下来,临时优先级设定部13将追加任务信息所包含的优先级变更为在步骤S1中计算出的临时优先级,将变更后的追加任务信息向任务执行管理表12临时登记(步骤S2)。
接下来,调度器11对与在任务执行管理表12临时登记的追加任务信息相对应的追加任务进行调度(步骤S3)。此外,调度器11对除了追加任务以外的已有的任务也进行调度。然后,根据调度结果而周期性地执行追加任务。
任务执行监视部14对追加任务的执行完成定时进行监视,将监视结果、即追加任务的执行完成定时的信息向任务执行状态存储部15进行登记。另外,任务执行监视部14对登记下来的信息进行分析(步骤S4)。在该步骤S4中,任务执行监视部14执行图7所示的各步骤的处理,判定能否将在任务执行管理表12临时登记的追加任务信息正式地进行登记。
图7是表示任务执行监视部14的动作的一个例子的流程图。任务执行监视部14首先基于在任务执行管理表12临时登记的追加任务信息,对追加任务的绝限进行计算(步骤S21)。任务执行监视部14向追加任务成为能够执行的定时加上执行周期而对绝限进行计算。临时登记的追加任务信息所包含的优先级比其它任务信息所包含的所有优先级都低,因此任务执行监视部14能够判别在任务执行管理表12登记的任务信息中哪个任务信息为临时登记的追加任务信息。此外,任务执行监视部14也可以基于从临时优先级设定部13输出的追加任务信息而对追加任务的绝限进行计算,而非基于在任务执行管理表12临时登记的追加任务信息而对追加任务的绝限进行计算。
接下来,任务执行监视部14对判断出追加任务的绝限的实现为止所需的验证次数即追加任务的执行次数(L)、以及应满足的绝限实现次数的基准值(M)进行决定(步骤S22)。这是为了考虑到追加任务的执行时间的变动,而统计性地适当地对绝限的实现进行判断。作为执行次数L以及基准值M的决定方法,存在下述方法,即,例如假定为追加任务的执行时间基于正态分布而分布,基于用户所追求的可靠性,对追加任务的执行次数L以及绝限实现次数的基准值M进行计算。在通过该方法决定所需的执行次数以及绝限实现次数的情况下,任务执行监视部14预先保存有用户所追求的可靠性的信息。
接下来,任务执行监视部14从任务执行部10取得追加任务的执行完成定时的信息。另外,将取得的信息以能够用于分析的方式向任务执行状态存储部15进行登记(步骤S23)。
接下来,任务执行监视部14对在任务执行状态存储部15登记的信息的数量、即追加任务的执行完成定时的信息的数量(N)是否与在上述的步骤S22中决定的追加任务的执行次数L相同进行确认(步骤S24)。任务执行监视部14在不是N=L的情况下(步骤S24:No),返回步骤S23,再次执行取得追加任务的执行完成定时的信息而向任务执行状态存储部15进行登记的处理。任务执行监视部14在N=L的情况下(步骤S24:Yes),对追加任务的绝限实现次数进行计算(步骤S25)。任务执行监视部14在步骤S25中,对在任务执行状态存储部15登记的N个信息进行分析,对从追加任务成为能够执行起至追加任务完成为止的长度小于绝限的信息的数量进行计算,将其设为绝限实现次数。此外,任务执行监视部14基于在任务执行管理表12临时登记的追加任务的执行周期而求出追加任务成为能够执行的定时。
接下来,任务执行监视部14对在步骤S25中计算出的绝限实现次数是否大于或等于在步骤S22中决定的绝限实现次数的基准值M进行确认(步骤S26)。任务执行监视部14在M≤绝限实现次数的情况下(步骤S26:Yes),判断为追加任务满足绝限(步骤S27)。在追加任务满足绝限的情况下,即使正式地追加了追加任务,也能够正常地执行全部任务,即全部任务满足每个任务的绝限。另一方面,在绝限实现次数<M的情况下(步骤S26:No),任务执行监视部14判断为追加任务不满足绝限(步骤S28)。在追加任务不满足绝限的情况下,如果正式地追加追加任务,则产生不能正常地执行的任务,即产生不满足绝限的任务。在追加任务不满足绝限的情况下,如果正式地追加追加任务,则产生故障,因此无法正式地追加追加任务。
返回图5所示的流程图的说明,在步骤S4中的任务执行监视部14的分析结果示出的是追加任务满足绝限的情况下(步骤S5:Yes),临时优先级设定部13将追加任务的原本的优先级向任务执行管理表12进行登记(步骤S6)。即,临时优先级设定部13将在上述的步骤S2中临时登记的追加任务信息所包含的临时优先级变更为向临时优先级进行变更之前的原本的优先级,将追加任务信息正式地向任务执行管理表12进行登记。另外,临时优先级设定部13将追加了任务这一情况向用户进行通知(步骤S7),结束动作。在步骤S7中,临时优先级设定部13将追加了与从工程工具接收到的任务信息相对应的任务这一情况,经由新任务取得部16向工程工具进行通知,显示于工程工具的图4所示的新任务追加窗口1000。此外,工程工具在新任务追加窗口1000的显示区域1005显示追加了任务这一情况。此外,临时优先级设定部13也可以同时执行步骤S6和步骤S7,也可以将步骤S7先于步骤S6而执行。另外,步骤S7的向用户的通知也可以由任务执行监视部14进行,而非临时优先级设定部13。
与此相对,在步骤S4中的任务执行监视部14的分析结果示出的是追加任务不满足绝限的情况下(步骤S5:No),临时优先级设定部13将无法追加任务这一情况向用户通知进行通知(步骤S8)。在步骤S8中,临时优先级设定部13将无法追加与从工程工具接收到的任务信息相对应的任务这一情况,经由新任务取得部16而向工程工具进行通知,显示于工程工具的图4所示的新任务追加窗口1000。另外,临时优先级设定部13将在步骤S2中临时登记的追加任务信息从任务执行管理表12删除(步骤S9),结束动作。此外,临时优先级设定部13也可以同时执行步骤S8和步骤S9,也可以将步骤S9先于步骤S8而执行。另外,步骤S8的向用户的通知也可以由任务执行监视部14进行,而非临时优先级设定部13。
接下来,使用图8~图10,对控制器1执行图5所示的动作而追加任务的情况下的具体例子进行说明。图8是表示追加任务之前的控制器1的动作的一个例子的图。图9是表示正在执行图5所示的追加任务的动作的控制器1的动作的一个例子的图。图10是表示追加了任务之后的控制器1的动作的一个例子的图。此外,为了简化说明,将验证追加任务是否满足绝限的次数设为1。
在图8所示的动作例中,设想为按照图3所示的内容的任务执行管理表12而执行任务A、B以及C的状况,将横轴设为时间轴,表示出各时刻正在运行的任务。因此,任务A的优先级最高,任务B的优先级次高,任务C的优先级最低。另外,将各任务的绝限设为从任务成为能够执行的状态起至经过了执行周期为止。因此,任务A的绝限是1s,任务B的绝限是4s,任务C的绝限是8s。图8的最上层所记载的A~C表示任务A~C成为能够执行的定时。在图8的例子中,在时刻t=0以及8的定时任务A~C全部变得能够执行。另外,如图3所示,任务A的执行周期是1s,因此每经过1s则任务A变得能够执行。另外,任务B每经过4s则变得能够执行,任务C每经过8s则变得能够执行。此外,图8的下层所示的时刻表示以任务A~C全部成为能够执行的时刻作为基准的经过时刻。此外,在时刻t=0变得能够执行的任务A的绝限是时刻t=1,在时刻t=0变得能够执行的任务B的绝限是时刻t=4,在时刻t=0变得能够执行的任务C的绝限是时刻t=8。另外,图8的左侧所示的任务A~C的右侧相邻处的括号中所记载的数值表示各任务的执行周期以及优先级。另外,在图8中,将涂白的四边形与涂黑的四边形组合而表示1个任务,涂黑的四边形表示任务的完成。另外,四边形的附近或者之中所记载的数值表示从开始任务起至结束为止的时间。图9以及图10也同样如此。
在图8所示的状态下,任务A~C全部在每个任务的绝限内成功得到了执行,没有问题。即,任务A在成为能够执行的状态后立刻开始,在经过了200ms的时刻结束,因此满足绝限的1s。任务B如果成为能够执行的状态,则经过优先级高的任务A结束的200ms后开始。然后,任务B在从成为能够执行的状态起经过了1000ms的时刻结束,因此满足绝限的4s。另外,任务C如果成为能够执行的状态,则经过优先级高的任务A以及B结束的1000ms,进一步经过在经过了1000ms的时刻再次成为能够执行的状态的任务A结束的200ms后开始。然后,任务C在从成为能够执行的状态起经过了1600ms的时刻结束,因此满足绝限的8s。
图9表示将执行周期为2s的任务X设为追加任务,将追加任务信息向任务执行管理表12临时登记之后的控制器1的动作状态。这相当于执行了图5所示的步骤S1~S3之后的动作状态。此外,将追加任务X的原本的优先级设为任务A的优先级与任务B的优先级之间的51。已有的任务A~C中的任务C的优先级是最低的101,因此追加任务X的临时登记的追加任务信息所包含的临时优先级成为102。在该情况下,追加任务X在任务C完成之后得到执行,但从追加任务X变得能够执行起至追加任务X完成为止的所需时间小于执行周期2s,满足绝限。即,图5所示的步骤S4中的分析结果示出追加任务X满足绝限这一情况。在该情况下,即使追加了任务X,已有的全部任务(任务A、B以及C)也满足绝限。因此,控制器1判断为不存在由任务X的追加引起的对已有任务的影响。这里的“由任务X的追加引起的对已有任务的影响”是指,伴随任务X的追加,已有任务的至少一个变得不满足绝限。即使追加了任务X,全部的已有任务也均满足绝限的情况对应于不存在“由任务X的追加引起的对已有任务的影响”的情况。另一方面,如果追加了任务X则大于或等于1个已有任务变得不满足绝限的情况对应于存在“由任务X的追加引起的对已有任务的影响”的情况。在不存在由任务X的追加引起的对已有任务的影响的情况下,控制器1在图5所示的步骤S6中,将追加任务X的任务信息所包含的优先级从临时优先级102变更为原本的优先级51,正式地向任务执行管理表12进行登记。其结果,控制器1的动作成为图10所示的动作。
在图10所示的例子中,继追加的任务X而开始任务B之后,在经过了600ms的时刻,优先级高的任务A变得能够执行。因此,控制器1将任务B暂时中断,并且执行任务A,在完成了任务A之后,执行中断的任务B的剩余部分。任务B被分为2次而执行,但从成为能够执行的状态起至完成为止的所需时间比绝限即4s短,满足绝限,因此没有问题。另外,继任务B之后执行的任务C也满足绝限8s。
如上所述,本实施方式涉及的控制器1对登记有在任务的调度中使用的任务信息的任务执行管理表12进行保存,在从外部、具体地说从工程工具接收到向任务执行管理表12登记的新的任务信息的情况下,将接收到的任务信息即追加任务信息所包含的优先级变更为比已在任务执行管理表12登记的已有的任务信息所包含的所有优先级都低的临时优先级,将变更后的追加任务信息向任务执行管理表12临时登记。并且,控制器1在按照任务执行管理表12而执行已有的任务以及追加的任务,能够正常地完成追加的任务的情况下,判断为任务的追加不对已有的任务带来影响、即在追加了任务之后也能够正常地完成全部任务。此外,全部任务是指,已追加的任务以及已有的任务。控制器1在能够正常地完成追加的任务的情况下,将追加任务信息所包含的优先级从临时优先级变更为原来的优先级即原本的优先级,正式地向任务执行管理表12进行登记。另一方面,控制器1在无法正常地完成追加的任务的情况下,将临时登记的追加任务信息从任务执行管理表12删除。由此,控制器1能够以在确认了不对已有的任务带来大的影响之后执行新的任务的方式对设定进行变更。因此,在生产现场等,在控制器1正在对设备进行控制的状态下,能够在维持正常地对已有的设备进行控制的状态的同时追加而执行新的任务。
此外,在上述实施方式中,设为控制器1如果接收到新的任务信息,则将接收到的任务信息即追加任务信息所包含的优先级变更为临时优先级而向任务执行管理表12临时登记,但不限定于该流程。也可以是控制器1如果接收到新的任务信息,则首先,将接收到的任务信息即追加任务信息向任务执行管理表12临时登记,然后,将临时登记的追加任务信息所包含的优先级变更为临时优先级。
以上的实施方式所示的结构表示的是本发明的内容的一个例子,也能够与其它的公知技术进行组合,在不脱离本发明的主旨的范围也能够省略、变更结构的一部分。
标号的说明
1控制器,10任务执行部,11调度器,12任务执行管理表,13临时优先级设定部,14任务执行监视部,15任务执行状态存储部,16新任务取得部,17OS,19任务,101CPU,102存储器,103输入输出接口,104现场通信接口,105总线。
Claims (5)
1.一种控制器,其特征在于,具备:
任务执行管理表,其对包含任务的优先级的信息的任务信息进行登记;
新任务取得部,其取得向所述任务执行管理表追加的新的任务信息;
临时优先级设定部,其将所述新的任务信息所包含的优先级变更为临时优先级而将所述新的任务信息向所述任务执行管理表临时登记;以及
任务执行监视部,其监视与所述临时登记的所述新的任务信息相对应的任务即追加任务的执行对已有的任务的执行带来的影响。
2.一种控制器,其特征在于,具备:
任务执行管理表,其对包含任务的优先级的信息的任务信息进行登记;
新任务取得部,其取得向所述任务执行管理表追加的新的任务信息;
临时优先级设定部,其将所述新的任务信息向所述任务执行管理表临时登记,然后,将临时登记的任务信息所包含的优先级变更为临时优先级;以及
任务执行监视部,其监视与将所述优先级变更为所述临时优先级之后的所述临时登记的所述新的任务信息相对应的任务即追加任务的执行对已有的任务的执行带来的影响。
3.根据权利要求1或2所述的控制器,其特征在于,
所述任务执行监视部在所述追加任务能够在预先设定的任务的执行周期内完成的情况下,判断为不对已有的任务的执行带来影响。
4.根据权利要求1至3中任一项所述的控制器,其特征在于,
所述临时优先级设定部将所述临时优先级决定为比在所述任务执行管理表登记的已有的任务信息所包含的所有优先级都低的优先级。
5.根据权利要求1至4中任一项所述的控制器,其特征在于,
所述临时优先级设定部在所述追加任务的执行不对已有的任务的执行带来影响的情况下,将所述临时登记的任务信息所包含的优先级变更为向所述临时优先级进行变更之前的原本的优先级,将变更后的任务信息正式地向所述任务执行管理表进行登记。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2017/034771 WO2019064348A1 (ja) | 2017-09-26 | 2017-09-26 | コントローラ |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110291474A true CN110291474A (zh) | 2019-09-27 |
CN110291474B CN110291474B (zh) | 2020-07-03 |
Family
ID=65356130
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780086062.0A Active CN110291474B (zh) | 2017-09-26 | 2017-09-26 | 控制器 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20190384637A1 (zh) |
JP (1) | JP6469323B1 (zh) |
KR (1) | KR102054832B1 (zh) |
CN (1) | CN110291474B (zh) |
DE (1) | DE112017006764T5 (zh) |
WO (1) | WO2019064348A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110175072A (zh) * | 2019-05-28 | 2019-08-27 | 广州小鹏汽车科技有限公司 | 任务执行方法、系统及车辆 |
JP2021096498A (ja) * | 2019-12-13 | 2021-06-24 | ファナック株式会社 | 制御装置、及び制御方法 |
JP7464386B2 (ja) * | 2019-12-20 | 2024-04-09 | ファナック株式会社 | 制御装置、及び制御方法 |
JP7237245B2 (ja) * | 2020-05-13 | 2023-03-10 | 三菱電機株式会社 | スケジューリング方法、および、スケジューリングシステム |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6434591B1 (en) * | 1998-06-19 | 2002-08-13 | Kabushiki Kaisha Toshiba | Thread control system and method in a computer system |
US20030204603A1 (en) * | 2002-04-26 | 2003-10-30 | International Business Machines Corporation | Efficient delivery of boot code images from a network server |
CN103052923A (zh) * | 2011-01-31 | 2013-04-17 | 丰田自动车株式会社 | 安全控制装置及安全控制方法 |
JP2015176191A (ja) * | 2014-03-13 | 2015-10-05 | オムロン株式会社 | コントローラ |
JP2016066139A (ja) * | 2014-09-24 | 2016-04-28 | 日立オートモティブシステムズ株式会社 | 車両制御装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040172631A1 (en) * | 2001-06-20 | 2004-09-02 | Howard James E | Concurrent-multitasking processor |
JP4074296B2 (ja) * | 2005-03-25 | 2008-04-09 | 株式会社東芝 | スケジューリング可能性判定方法、リアルタイムシステム及びプログラム |
KR101644800B1 (ko) * | 2010-01-07 | 2016-08-02 | 삼성전자주식회사 | 컴퓨팅 시스템 및 방법 |
US9960965B2 (en) * | 2011-02-04 | 2018-05-01 | Arris Enterprises Llc | Stateless admission control |
US9268609B2 (en) * | 2013-04-30 | 2016-02-23 | Hewlett Packard Enterprise Development Lp | Application thread to cache assignment |
-
2017
- 2017-09-26 KR KR1020197022680A patent/KR102054832B1/ko active IP Right Grant
- 2017-09-26 US US16/480,319 patent/US20190384637A1/en not_active Abandoned
- 2017-09-26 WO PCT/JP2017/034771 patent/WO2019064348A1/ja active Application Filing
- 2017-09-26 DE DE112017006764.2T patent/DE112017006764T5/de active Pending
- 2017-09-26 CN CN201780086062.0A patent/CN110291474B/zh active Active
- 2017-09-26 JP JP2018531681A patent/JP6469323B1/ja active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6434591B1 (en) * | 1998-06-19 | 2002-08-13 | Kabushiki Kaisha Toshiba | Thread control system and method in a computer system |
US20030204603A1 (en) * | 2002-04-26 | 2003-10-30 | International Business Machines Corporation | Efficient delivery of boot code images from a network server |
CN103052923A (zh) * | 2011-01-31 | 2013-04-17 | 丰田自动车株式会社 | 安全控制装置及安全控制方法 |
JP2015176191A (ja) * | 2014-03-13 | 2015-10-05 | オムロン株式会社 | コントローラ |
JP2016066139A (ja) * | 2014-09-24 | 2016-04-28 | 日立オートモティブシステムズ株式会社 | 車両制御装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110291474B (zh) | 2020-07-03 |
WO2019064348A1 (ja) | 2019-04-04 |
JP6469323B1 (ja) | 2019-02-13 |
KR20190095507A (ko) | 2019-08-14 |
JPWO2019064348A1 (ja) | 2019-11-14 |
US20190384637A1 (en) | 2019-12-19 |
KR102054832B1 (ko) | 2019-12-12 |
DE112017006764T5 (de) | 2019-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110291474A (zh) | 控制器 | |
US9886305B2 (en) | Determining the status of plurality of threads by monitoring the execution of folded thread | |
JP3727382B2 (ja) | 制御ソフトウェア実行システムの制御方法 | |
US9058417B2 (en) | Thread serialization and disablement tool | |
US9921560B2 (en) | Control device, control system, tool device, and collection instruction program | |
CN101258469A (zh) | 信息处理设备 | |
US20140026145A1 (en) | Parallel processing in human-machine interface applications | |
US20050050541A1 (en) | Method of and apparatus for task control, and computer product | |
US9430419B2 (en) | Synchronizing exception control in a multiprocessor system using processing unit exception states and group exception states | |
US10649883B2 (en) | Method that supports multithreading/concurrent programming debugging, computer readable recording medium and computer program product | |
US20080016388A1 (en) | Method for monitoring a cyclic user program | |
US11194314B2 (en) | Numerical control device | |
KR101083049B1 (ko) | 시뮬레이션 시스템 및 시뮬레이션 방법 | |
JP3727637B2 (ja) | 制御ソフトウェア実行システムの制御方法 | |
JPH10161890A (ja) | スケジューラ | |
JP3607283B2 (ja) | 制御ソフトウェア実行システムの制御方法 | |
Champagne et al. | Towards automation of performance architectural tactics application | |
JPH0635854A (ja) | コマンド即答性保証方式 | |
CN110716801A (zh) | 一种具有多个竞争代理的多任务调度方法 | |
EP2548146A1 (en) | Distributed cnc toolpath calculations | |
JPH04160644A (ja) | 評価パラメータ学習方式 | |
JPH11353191A (ja) | ジョブスケジュール方法 | |
CN108345494A (zh) | 一种定时执行代码的方法及装置 | |
JPH0773051A (ja) | スレッド実行順序決定方法 | |
JP2004164664A (ja) | 制御ソフトウェア実行システムの制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |