CN116457758A - 控制装置、控制方法以及控制程序 - Google Patents
控制装置、控制方法以及控制程序 Download PDFInfo
- Publication number
- CN116457758A CN116457758A CN202180074552.5A CN202180074552A CN116457758A CN 116457758 A CN116457758 A CN 116457758A CN 202180074552 A CN202180074552 A CN 202180074552A CN 116457758 A CN116457758 A CN 116457758A
- Authority
- CN
- China
- Prior art keywords
- cycle
- program
- control
- fixed
- executed
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 65
- 230000010365 information processing Effects 0.000 claims abstract description 161
- 230000008569 process Effects 0.000 claims description 52
- 238000012545 processing Methods 0.000 description 53
- 238000004891 communication Methods 0.000 description 36
- 230000006870 function Effects 0.000 description 18
- 230000005540 biological transmission Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000005259 measurement Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000004092 self-diagnosis Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- 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
- 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
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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/15—Plc structure of the system
- G05B2219/15126—Calculate duration of cycle
-
- 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/25344—In one cycle, application task is executed, if time is left, communication or user interface task is executed
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)中执行的调度器程序(212)在正在执行规定的周期程序的控制周期即执行中控制周期内,推测作为预定要在接下来的控制周期即下个控制周期执行的固定周期任务的固定周期程序(230)的执行时间,根据作为推测结果的推测执行时间的长度,设定作为在执行中控制周期内执行的信息处理任务的信息处理程序(235)的执行时间。
Description
技术领域
本发明涉及一种在为了控制机械或设备的动作而使用的控制装置中,固定周期程序以及信息处理程序的执行的调度。
背景技术
作为机械、设备等的动作的控制,有时包含用于对马达的运动进行控制的运动控制。关于此种运动控制,典型已知的是可编程控制器(以下也称作可编程逻辑控制器(Programmable Logic Controller,PLC)),所述PLC以一个中央处理器(CentralProcessing Unit,CPU)执行对驱动马达的马达驱动器周期性地输出指令值的运动运算程序的执行与序列运算。
在PLC之类的实时系统中,在每个控制周期执行需要以固定周期执行的固定周期任务。为此,必须准确地算出固定周期任务的执行时间,而公开了各种技术。
现有技术文献
专利文献
专利文献1:日本专利特开2012-194663号公报
专利文献2:日本专利特开2012-194669号公报
专利文献3:日本专利特开2012-194671号公报
发明内容
发明所要解决的问题
当前,在PLC中使用高速的中央处理器(Central Processing Unit,CPU)或实时操作系统(Operating System,OS),能够执行更多样的处理。因而,考虑下述技术:除了在规定的控制周期中执行固定周期任务以外,还在每个控制周期执行不需要以固定周期执行的高度的信息处理任务。在控制周期中,在执行中控制周期执行信息处理任务,由此,能够有效地活用高速的CPU。
图12表示执行所述的固定周期任务与优先级比固定周期任务低的信息处理任务时的时间图。
如图12所示,控制装置1以规定的控制周期,例如以一毫秒的控制周期来反复执行相同内容的固定周期任务1、2、…N。固定周期任务是需要实时性的任务,必须切实地以规定的控制周期(此处为一毫秒)来执行。而且,控制装置1中,在执行中控制周期内,执行信息处理任务(信息处理任务1、2、…N)。此处,对于信息处理任务,设想未必需要在控制周期内执行处理的处理。因而,通过在控制周期内的固定周期任务的非执行期间执行信息处理任务,能够有效地活用CPU等的资源。
但是,与硬件或微型计算机之类的不使用OS的系统不同,在使用CPU或OS的系统中,任务的执行所需的时间不确定。因而,若在执行中控制周期内进行对CPU造成负载的高度的信息处理任务,则在下个控制周期执行的预定的固定周期任务会被信息处理任务影响,而导致此固定周期任务的执行时间变长。例如,因执行信息处理任务导致保存于CPU的高速缓冲存储器(cache)等中的与固定周期任务相关的代码、参数等信息被覆盖。其结果,有时必须重新加载程序或参数的一部分,而导致固定周期任务的执行时间变长。
图13表示与对控制装置1的CPU造成的负载的量相应的、固定周期任务的执行时间的确立分布。如图13的上方的图表所示,与不在固定周期任务以外执行信息处理任务的情况相比,在执行信息处理任务且对CPU造成的负载为15%的情况下,固定周期任务执行时间朝变长的方向分散。而且,固定周期任务的执行时间的最大值也变大。进而,在执行对CPU造成的负载高的信息处理任务,对CPU造成的负载达到30%的情况下,固定周期任务的执行时间朝进一步变长的方向分散。图13的下方的图表表示了执行消息队列遥测传输(MessageQueueing Telemetry Transport,MQTT)发送时的示例,以作为信息处理任务的具体例。本示例中,在进行数据数5000的MQTT发送的情况下,CPU的负载为13%,在进行数据数15000的MQTT发送的情况下,CPU的负载为26%。如本图表所示可知的是,在进行MQTT发送的情况下,也存在与图13的上方的图表中所说明的内容同样的倾向。
与固定周期任务一同执行信息处理任务的结果,产生图14所示的问题。例如,因在执行中控制周期内执行了信息处理任务(N-1)的影响,在下个控制周期执行的固定周期任务N的执行时间变长,从而无法在下个控制周期内完成固定周期任务N的处理。
本发明的目的在于提供一种控制装置,实现即便在规定的控制周期中执行固定周期任务与信息处理任务这两者的情况下,也能切实地执行固定周期任务。
解决问题的技术手段
为了解决所述问题,本发明的一实施例的控制装置对经由网络而连接的控制对象机器进行控制,所述控制装置包括:微处理器;以及存储部,所述存储部保存:固定周期程序,使所述微处理器执行在规定的控制周期中应必须执行的固定周期任务;信息处理程序,使所述微处理器执行优先级比所述固定周期任务低的信息处理任务;以及调度器程序,使所述微处理器执行在所述控制周期中执行的所述固定周期程序以及所述信息处理程序的调度设定处理,所述调度器程序在正在执行规定的所述固定周期程序的所述控制周期即执行中控制周期内,推测预定要在接下来的所述控制周期即下个控制周期执行的所述固定周期程序的执行时间,根据作为推测结果的推测执行时间的长度,来设定在所述执行中控制周期内执行的所述信息处理程序的执行时间。
根据所述结构,首先,推测预定要在下个控制周期执行的固定周期程序的执行时间。并且,根据所推测出的执行时间的长度来设定在执行中控制周期内执行的信息处理程序的执行时间。由此,能够防止在下个控制周期中,固定周期程序的执行时间变得过长而固定周期任务得不到充分执行的事态。
为了解决所述问题,本发明的一实施例的控制方法是对经由网络而连接的控制对象机器进行控制的控制装置的控制方法,所述控制方法包括:固定周期程序的执行步骤,使微处理器执行在规定的控制周期中应必须执行的固定周期任务;信息处理程序的执行步骤,使所述微处理器执行优先级比所述固定周期任务低的信息处理任务;以及调度器程序执行步骤,使所述微处理器执行在所述控制周期中执行的所述固定周期程序以及所述信息处理程序的调度设定处理,所述调度器程序执行步骤是在正在执行规定的所述固定周期程序的所述控制周期即执行中控制周期内,推测预定要在接下来的所述控制周期即下个控制周期执行的所述固定周期程序的执行时间,根据作为推测结果的推测执行时间的长度,来设定在所述执行中控制周期内执行的所述信息处理程序的执行时间。
根据所述结构,能够起到与控制装置同样的效果。
发明的效果
根据本发明的一实施例,首先,推测预定要在下个控制周期执行的固定周期程序的执行时间。并且,根据所推测出的执行时间的长度,来设计在执行中控制周期内执行的信息处理程序的执行时间。由此,能够防止在下个控制周期中,固定周期程序的执行时间变得过长而固定周期任务得不到充分执行的事态。
附图说明
图1是表示本发明的实施方式的控制装置的系统结构的图。
图2是表示CPU单元的硬件结构的图。
图3是表示本发明的实施方式的CPU单元所执行的软件结构的示意图。
图4表示在本发明的实施方式1的控制装置中执行的处理的时间图。
图5是表示在本发明的实施方式1的控制装置中执行的处理的流程的流程图。
图6表示在本发明的实施方式2的控制装置中执行的处理的时间图。
图7是表示在本发明的实施方式2的控制装置中执行的处理的流程的流程图。
图8表示在本发明的实施方式3的控制装置中执行的处理的时间图。
图9是表示在本发明的实施方式3的控制装置中执行的处理的流程的流程图。
图10表示在本发明的实施方式4的控制装置中执行的处理的时间图。
图11是表示在本发明的实施方式4的控制装置中执行的处理的流程的流程图。
图12是执行固定周期任务与信息处理任务这两者的控制装置中的时间图。
图13是表示图12所示的控制装置中的对CPU造成的负载量与固定周期任务的执行时间的关系的图表。
图14是执行固定周期任务与信息处理任务这两者的控制装置中的时间图。
具体实施方式
以下,对本发明的实施方式进行说明。
<系统结构>
本实施方式的控制装置对机械或设备等控制对象进行控制。本实施方式的控制装置包含CPU单元作为其构成元件。CPU单元包括微处理器、包含微处理器的主存储器的存储部件以及通信电路。本实施方式的控制装置的CPU单元构成为,反复进行输出数据的发送、输入数据的接收、以及使用输入数据来生成输出数据的控制程序的执行,由此来对控制对象进行控制。
存储部件被用于控制程序以及系统程序的保存,所述系统程序对所述控制程序的执行与输入数据及输出数据的输入/输出进行控制。微处理器执行被保存于存储部件中的系统程序以及控制程序。
通信电路发送输出数据且接收输入数据。如后所述,本实施方式的控制装置具有第一通信电路与第二通信电路来作为通信电路,所述第一通信电路通过控制装置系统总线来进行输出数据的发送以及输入数据的接收,所述第二通信电路通过现场网络来进行输出数据的发送以及输入数据的接收。
首先,参照图1来说明本实施方式的控制装置1的系统结构。本图是表示本发明的实施方式的控制装置系统的概略结构的示意图。参照图1,控制装置系统包括控制装置1、经由现场网络2而与控制装置1连接的各种控制对象机器即伺服马达驱动器3以及远程输入输出(Input Output,IO)终端5、以及作为现场机器的传感器6以及继电器7。而且,控制器支持装置8经由连接线缆10等连接于控制装置1。
控制装置1包含执行主要的运算处理的CPU单元13、一个以上的IO单元14以及特殊单元15。这些单元构成为,能够经由控制装置系统总线11来相互交换数据。而且,对于这些单元,由电源单元12供给适当电压的电源。另外,构成为控制装置1的各单元是由控制装置制造商所提供,因此控制装置系统总线11一般是由每个控制装置制造商独自开发并使用。与此相对,如后所述,关于现场网络2,其规格等公开的情况也多,以使得不同制造商的制品能够彼此连接。
关于CPU单元13的详细,将参照图2来后述。IO单元14是与一般的输入/输出处理相关的单元,负责接通/断开等经二值化的数据的输入/输出。即,IO单元14收集传感器6等传感器是检测到了某些对象物的状态(接通)以及任何对象物都未检测到的状态(断开)中的哪一种的信息。而且,IO单元14对于继电器7或致动器等输出目标,输出用于激活的指令(接通)以及用于不激活的指令(断开)中的任一种。
特殊单元15具有模拟数据的输入/输出、温度控制、借助特定通信方式的通信等IO单元14不支持的功能。
现场网络2传输与CPU单元13交换的各种数据。作为现场网络2,典型的是可使用各种工业以太网(注册商标)。作为工业以太网(注册商标),例如已知有EtherCAT(注册商标)、Profinet IRT、MECHATROLINK(注册商标)-III、Powerlink、SERCOS(注册商标)-III、CIPMotion等,采用这些中的哪一种皆可。进而,也可使用工业以太网(注册商标)以外的现场网络。例如,若是不进行运动控制的情况,则也可使用DeviceNet、CompoNet/IP(注册商标)等。本实施方式的控制装置系统SYS中,典型的是,在本实施方式中,对采用作为工业以太网(注册商标)的EtherCAT(注册商标)来作为现场网络2时的结构进行例示。另外,本说明书中的“网络”是指也包含通用串行总线(Universal Serial Bus,USB)或串行端口等在内的、作为抽象概念的网络。
另外,控制装置1也可为下述结构:通过使CPU单元13具备IO单元14的功能或伺服马达驱动器3的功能,从而对于此类能够通过内置功能来提供的范围,不经由IO单元14或伺服马达驱动器3等而由CPU单元13直接对控制对象进行控制。
伺服马达驱动器3经由现场网络2而与CPU单元13连接,并且依据来自CPU单元13的指令值来驱动伺服马达4。更具体而言,伺服马达驱动器3从控制装置1以固定周期接收位置指令值、速度指令值、扭矩指令值等指令值。而且,伺服马达驱动器3从连接于伺服马达4的轴的位置传感器(旋转编码器)或扭矩传感器等检测器,获取位置、速度(典型的是,根据此次位置与前次位置之差而算出)、扭矩等与伺服马达4的动作相关的实测值。并且,伺服马达驱动器3将来自CPU单元13的指令值设定为目标值,将实测值作为反馈值来进行反馈控制。即,伺服马达驱动器3对用于驱动伺服马达4的电流进行调整,以使实测值接近目标值。另外,伺服马达驱动器3也有时被称作伺服马达放大器。
而且,图1中表示了将伺服马达4与伺服马达驱动器3加以组合的系统例,但也可采用其他结构,例如采用将脉冲马达与脉冲马达驱动器加以组合的系统。
在图1所示的控制装置系统SYS的现场网络2,进而连接有远程IO终端。远程IO终端基本上与IO单元14同样,进行与一般的输入/输出处理相关的处理。更具体而言,远程IO终端包含用于进行与现场网络2中的数据传输相关的处理的通信耦合器52与一个以上的IO单元53。这些单元构成为,能够经由远程IO终端总线来彼此交换数据。
关于控制器支持装置8将后述。
<CPU单元的硬件结构>
接下来,参照图2来说明CPU单元13的硬件结构。图2是表示本发明的实施方式的CPU单元13的硬件结构的示意图。参照图2,CPU单元13包含微处理器100、芯片组102、主存储器104、非易失性存储器(存储部)106、系统计时器108、通信控制器150、系统总线控制器120、现场网络控制器140以及USB连接器(未图示)。芯片组102与其他组件之间经由各种总线而分别结合。
微处理器100以及芯片组102典型的是遵照通用的计算机架构而构成。即,微处理器100对从芯片组102依据内部时钟依次供给的命令代码进行解释并执行。芯片组102与所连接的各种组件之间交换内部数据,并且生成微处理器100所需的命令代码。进而,芯片组102具有对微处理器100中的运算处理的执行的结果获得的数据等进行高速缓冲存储的功能。
CPU单元13具有主存储器104以及非易失性存储器106以作为存储部件。
主存储器104是易失性的存储区域(随机存取存储器(Random Access Memory,RAM)),在对CPU单元13接通电源后保持应由微处理器100来执行的各种程序。而且,主存储器104也被用作微处理器100执行各种程序时的作业用存储器。作为此种主存储器104,使用动态随机存取存储器(Dynamic Random Access Memory,DRAM)或静态随机存取存储器(Static Random Access Memory,SRAM)等器件。
另一方面,非易失性存储器106非易失地保持实时操作系统(Operating System,OS)、控制装置1的调度器程序212、固定周期程序230以及信息处理程序235、系统设定参数等数据。这些程序或数据根据需要被复制到主存储器104中,以便微处理器100能够访问。作为此类非易失性存储器106,可使用快闪存储器之类的半导体存储器。或者,也可使用硬盘驱动器之类的磁记录介质或者数字多功能光盘随机存取存储器(Digital Versatile DiskRandom Access Memory,DVD-RAM)之类的光学记录介质等。
通信控制器150典型的是包含现场可编程门阵列(Field Programmable GateArray,FPGA)或专用集成电路(Application Specific lntegrated Circuit,ASIC)等硬件,且构成为,可经由芯片组来与主存储器104收发数据。通信控制器150具有被用于与主存储器104的数据通信的存储器区域,对于后述的系统总线控制器120或现场网络控制器140,进行从主存储器转发的数据的转发。而且,对于系统总线控制器120以及现场网络控制器140,发布使它们发送从主存储器转发的数据的命令。
通信控制器150还包括系统计时器108。系统计时器108在每个固定周期产生中断信号并提供给微处理器100。典型的是,根据硬件的规格而构成为以多个不同的周期分别产生中断信号,但也可根据操作系统(Operating System,OS)或基本输入输出系统(BasicInput Output System,BIOS)等而设定为以任意的周期来产生中断信号。利用所述系统计时器108所产生的中断信号,实现如后所述的、每个执行周期的控制动作。
作为通信电路,具有系统总线控制器120以及现场网络控制器140。这些通信电路进行输出数据的发送以及输入数据的接收。
另外,在使CPU单元13自身具备IO单元14或伺服马达驱动器3的功能的情况下,由系统总线控制器120所进行的输出数据的发送以及输入数据的接收是将承担这些功能的部分作为通信的对象而在CPU单元13的内部进行的发送以及接收。
通信控制器150对经由控制装置系统总线11的数据交换进行控制。更具体而言,通信控制器150包含系统总线控制器120、动态存储器存取(Dynamic Memory Access,DMA)控制电路122以及缓冲存储器126。
缓冲存储器126作为经由控制装置系统总线11向其他单元输出的数据(以下称作“输出数据”)的发送缓冲器、以及经由控制装置系统总线11从其他单元输入的数据(以下称作“输入数据”)的接收缓冲器发挥功能。另外,通过微处理器100所进行的运算处理而制作的输出数据最开始被保存于主存储器104中。并且,应向特定单元转发的输出数据从主存储器104被读出,并被一次性地保持于缓冲存储器126中。而且,从其他单元转发的输入数据被一次性地保持于缓冲存储器126中之后,被移交给主存储器104。
DMA控制电路122进行输出数据从主存储器104向缓冲存储器126的转发、以及输入数据从缓冲存储器126向主存储器104的转发。
系统总线控制电路124进行与连接于控制装置系统总线11的其他单元之间发送缓冲存储器126的输出数据的处理以及接收第一输入数据并保存至缓冲存储器126的处理。典型的是,系统总线控制电路124提供控制装置系统总线11中的物理层以及数据链接层的功能。
现场网络控制器140对经由现场网络2的数据交换进行控制。即,现场网络控制器140依据所用的现场网络2的规格,对输出数据的发送以及输入数据的接收进行控制。如上所述,在本实施方式中采用依据EtherCAT(注册商标)规格的现场网络2,因此使用包含用于进行通常的以太网(注册商标)通信的硬件的、现场网络控制器140。在EtherCAT(注册商标)规格中,可利用实现遵循通常的以太网(注册商标)规格的通信协议的一般的以太网(注册商标)控制器。但是,根据作为现场网络2而采用的工业以太网(注册商标)的种类,使用与跟通常的通信协议不同的专用规格的通信协议对应的特别规格的以太网(注册商标)控制器。而且,在采用了工业以太网(注册商标)以外的现场网络的情况下,使用与所述规格相应的专用的现场网络控制器。
缓冲存储器126作为经由现场网络2向其他装置等输出的数据(以下称作“输出数据”)的发送缓冲器、以及经由现场网络2从其他装置等输入的数据(以下称作“输入数据”)的接收缓冲器发挥功能。通过微处理器100所进行的运算处理而制作的输出数据一开始被保存于主存储器104。并且,应向特定装置转发的输出数据从主存储器104被读出,并被一次性地保持于通信电路缓冲器146中。而且,从其他装置转发的输入数据在被一次性地保持于缓冲器146中之后,被移交给主存储器104。
DMA控制电路122进行输出数据从主存储器104向缓冲器的转发、以及输入数据从缓冲器向主存储器104的转发。
现场网络控制电路144进行与连接于现场网络2的其他装置之间发送缓冲器的输出数据的处理以及接收输入数据并保存至通信电路缓冲器中的处理。典型的是,现场网络控制电路144提供现场网络2中的物理层以及数据链接层的功能。
USB连接器是用于连接控制器支持装置8与CPU单元13的接口。典型的是,从控制器支持装置8转发的、可由CPU单元13的微处理器100所执行的程序等经由USB连接器110而导入至控制装置1。
<CPU单元的软件结构>
接下来,参照图3来说明用于提供本实施方式的各种功能的软件群。这些软件中所含的命令代码在适当的时机被读出,并由CPU单元13的微处理器100予以执行。
图3是表示本发明的实施方式的CPU单元13所执行的软件结构的示意图。参照图3,作为由CPU单元13所执行的软件,为实时OS 200、系统程序210与用户程序236及各种处理程序这三阶层。
实时OS 200是对应于CPU单元13的计算机架构而设计,提供用于微处理器100执行系统程序210以及用户程序236的基本执行环境。
系统程序210是用于提供作为控制装置1的功能的软件群。具体而言,系统程序210包含调度器程序212、输出处理程序214、输入处理程序216、序列运算程序232、运动运算程序234以及通信等程序242。另外,一般而言,输出处理程序214以及输入处理程序216是连续地(作为一体而)执行,因此也有时将这些程序总称为IO处理程序218。
用户程序236是对应于用户的控制目的而制作。即,是对应于使用控制装置系统来控制的对象的线(工艺)等而任意设计的程序。
如后所述,用户程序236与序列运算程序232以及运动运算程序234协作而实现用户的控制目的。即,用户程序236通过利用由序列运算程序232以及运动运算程序234所提供的命令、函数、功能模块等,实现所编程的动作。
通过用户程序236、IO处理程序218、序列运算程序232以及运动运算程序234所执行的任务是在每个控制周期应切实地执行的固定周期任务。因而,将执行所述固定周期任务的程序称作固定周期程序230。
信息处理程序235使所述微处理器执行优先级比固定周期任务低的信息处理任务。信息处理程序235包含系统程序210中所含的通信等程序242以及各种处理程序241。
以下,更详细地说明各程序。如上所述,用户程序236是对应于用户的控制目的(例如作为对象的线或工艺)而制作。用户程序236典型的是成为可由CPU单元13的微处理器100来执行的对象程序格式。所述用户程序236是通过在控制器支持装置8等中对由梯形语言等所记述的源程序进行编译而生成。并且,所生成的对象程序格式的用户程序236从控制器支持装置8经由连接线缆10并转发至CPU单元13,并保存在非易失性存储器106等中。
调度器程序212对于固定周期程序230以及信息处理程序235,控制各执行循环中的处理开始以及处理中断后的处理继续。而且,调度器程序212使微处理器100执行在控制周期中执行的固定周期程序230以及信息处理程序235的调度设定处理。
输出处理程序214将通过用户程序236(固定周期程序230)的执行而生成的输出数据重新配置成适合于转发给通信控制器的格式。在系统总线控制器120或现场网络控制器140需要来自微处理器100的、用于执行发送的指示的情况下,输出处理程序214发布此种指示。
输入处理程序216将由系统总线控制器120和/或现场网络控制器140所接收的输入数据重新配置成适合于固定周期程序230使用的格式。
序列运算程序232是如下所述的程序,即,在执行由用户程序236所使用的某种序列命令时被调用并执行,以实现所述命令的内容。
运动运算程序234是如下所述的程序,即,依据用户程序236发出的指示来执行,每次执行时,计算输出到伺服马达驱动器3或脉冲马达驱动器等马达驱动器的指令值。
通信等程序242是将作为固定周期任务的程序以外的、用于实现控制装置1的各种功能的程序群汇总表示的程序。例如是使微处理器执行与机械的控制装置的通信或者基于来自外部机器的请求的处理、自诊断处理的程序。而且,使主存储器的数据转发至外部存储介质的处理或从外部存储介质读出数据的处理也包含在通信等程序242中。更具体而言,作为由通信等程序242所进行的处理,可列举OPC统一架构(OPC Unified Architecture,OPC-UA)通信、远程文件访问(对网络附属存储器(Network Attached Storage,NAS)等的访问)、数据库(Data Base,DB)输入/输出、云连接/通信、MQTT等的物联网(Internet of Things,IoT)通信、PLC间通信以及装置间通信(超宽带射频消息收发(Hyper-wideband Enabled RFMessaging,HERMES)、日本机器人工业会规格(Japan Robot Association,JARAS)等)等。
各种处理程序是由用户所提供的、进行实时性低的各种信息处理的程序。作为各种处理程序的一例,可列举关键绩效指标(Key Performance Indicator,KPI)计算以及Web服务器处理以及人工智能(Artificial Intelligence,AI)处理等。
实时OS 200提供用于随着时间的经过来切换执行多个程序的环境。本实施方式的控制装置1中,作为用于将通过CPU单元13的程序执行而生成的输出数据输出(发送)至其他单元或其他装置的事件(中断),初始设定的是控制循环开始的中断。实时OS 200在发生了控制循环开始的中断时,将微处理器100中的执行对象从在中断发生时间点正在执行中的程序切换为调度器程序212。
另外,所述中,如图2所示,对使用单核处理器的实施方式进行了说明,但也可为使用多核处理器的实施方式。例如也可为如下所述的实施方式,即,在实施方式中,使用在硬件上未完全分离的多核处理器,固定周期任务与信息处理任务共用所述多核处理器。
〔实施方式1〕
<时间图>
图4表示在本发明的实施方式1的控制装置1中执行的处理的时间图。在本实施方式1的控制装置1中,使微处理器执行在规定的控制周期中应必须执行的固定周期任务与优先级比固定周期任务低的信息处理任务这两者。而且,调度器程序212进行固定周期任务以及信息处理任务的执行调度的设定处理。本实施方式中,调度器程序212设定如以下所示的、固定周期任务以及信息处理任务的执行调度。
固定周期任务(1、2、…N)是以规定的控制周期(例如一毫秒)反复执行。而且,信息处理任务(1、2、…N-1)是在执行中控制周期内的未执行固定周期任务的空闲时间执行。
调度器程序212在正在执行固定周期任务(N-1)的控制周期中,推测预定要在接下来的控制周期即下个控制周期执行的固定周期任务N的执行时间。例如,调度器程序212在正在执行固定周期任务(N-1)的控制周期中,推测预定要在接下来的控制周期即下个控制周期执行的固定周期任务N的执行时间。并且,根据所推测出的固定周期任务N的执行时间的长度,来设定在执行中控制周期内执行的信息处理任务的执行时间。此时,调度器程序212也可在所推测出的执行时间超过规定阈值时,设定在执行中控制周期内执行的信息处理任务的执行时间。
本实施方式中,如图4所示,调度器程序212在推测执行时间超过了规定阈值的情况下,将在执行中控制周期内执行的信息处理任务的执行时间设为0(中止执行)。此时,在执行中控制周期内,不执行信息处理任务(N-1),而留待到接下来的控制周期中执行。
根据如上所述的处理,当判断为所推测的下个控制周期中的固定周期任务的执行时间为超过阈值的长度时,中止执行中控制周期内的信息处理任务的执行,由此,能够使预定要在下个控制周期执行的固定周期任务切实地在控制周期内完成。而且,通过比较推测执行时间与阈值这一相对较简单的判断,便能够设定在执行中控制周期内执行的信息处理程序235的执行时间。因而,能够减少此判断所造成的运算负载。
<流程图>
图5是表示本发明的实施方式1的控制装置1中所执行的固定周期程序230、信息处理程序235、以及调度器程序212所进行的调度设定的处理的流程的流程图。以下所示的各处理是通过微处理器100执行固定周期程序230、信息处理程序235以及调度器程序212而实现。
步骤S10中,调度器程序212进行分配,以使微处理器100执行与固定周期任务(N-1)对应的固定周期程序230。以下,将此处理说明为,调度器程序212将CPU分配给固定周期任务(N-1)。
步骤S12中,使固定周期程序230执行固定周期任务(N-1)。
步骤S14中,在固定周期程序230执行固定周期任务(N-1)的过程中,进行预定要在下个控制周期执行的固定周期任务N的执行准备。
步骤S16中,调度器程序212推测固定周期任务N的执行时间。
若在步骤S16中对固定周期任务N推测的执行时间大于规定阈值,则前进至步骤S18。
步骤S18中,进入休眠状态,不执行信息处理任务。
步骤S20中,调度器程序212判定是否经过了控制周期。
若在步骤S20中调度器程序212判定为尚未经过控制周期,则继续休眠状态。
若在步骤S20中调度器程序212判定为经过了控制周期时间,则返回步骤S10,对于下个控制周期的固定周期任务N重复步骤S10至S16为止的处理。
若在步骤S16中对固定周期任务N推测的执行时间为规定阈值以下,则前进至步骤S24。
步骤S24中,调度器程序212向信息处理任务进行任务切换。随后,前进至步骤S26。
步骤S26中,调度器程序212将CPU分配给信息处理任务。
步骤S28中,信息处理程序235执行信息处理任务。
步骤S30中,调度器程序212判定是否经过了控制周期。
直至在步骤S30中判定为经过了控制周期为止,返回步骤S28而执行信息处理任务。一旦判定为经过了控制周期,则前进至步骤S32。
步骤S32中,向固定周期任务进行任务切换。
随后,返回步骤S10,固定周期程序230执行下个控制周期的固定周期任务N。
以下,重复相同的处理。
根据所述结构,在推测执行时间超过规定阈值的情况下,进行中止在执行中控制周期内执行的信息处理程序235的执行这一简单的控制。因而,能够防止在下个控制周期中,固定周期程序230的执行时间变得过长而固定周期任务得不到充分执行的事态。进而,能够减少此控制所造成的运算负载。
〔实施方式2〕
以下说明本发明的另一实施方式。另外,为了方便说明,对于具有与所述实施方式中说明的构件相同的功能的构件,标注相同的符号并不再重复其说明。
<时间图>
图6表示在本发明的实施方式2的控制装置1中执行的处理的时间图。本实施方式2中,也执行固定周期任务(1、2、…N)与信息处理任务(1、2、…N-1)这两者,并且,调度器程序212设定以下所示的、固定周期任务以及信息处理任务的执行调度。
所述实施方式2中,调度器程序212在正在执行固定周期任务(N-1)的控制周期中,推测预定要在接下来的控制周期即下个控制周期执行的固定周期任务N的执行时间,在所推测出的固定周期任务N的执行时间超过了规定阈值的情况下,缩短在执行中控制周期内执行的信息处理任务(N-1)的执行时间。
如图6所示,即便预定要在下个控制周期执行的固定周期任务N的执行时间超过了规定阈值的情况下,也并非在当前执行中控制周期内使信息处理任务(N-1)的执行全部中止,而是以设定得短的执行时间来执行信息处理任务(N-1)。但是,并非使用控制周期的全部时间,而是在开始接下来的控制周期之前设置空闲(idle)时间。
根据如上所述的处理,即便在所推测的下个控制周期内的固定周期任务的执行时间超过了规定阈值的情况下,也设定经缩短的执行时间来执行信息处理任务。因而,能够进一步活用固定周期任务的执行时间的空闲时间。而且,通过将执行中控制周期内的固定周期任务的执行时间设定得短而设置空闲时间,从而能够在下个控制周期中切实地完成固定周期任务。
<流程图>
图7是表示在本发明的实施方式2的控制装置1中执行的处理的流程的流程图。以下,参照图7来说明处理的流程。
步骤S110中,调度器程序212将CPU分配给固定周期任务(N-1)。
步骤S112中,固定周期程序230执行固定周期任务(N-1)。
步骤S114中,固定周期程序230在执行固定周期任务(N-1)的过程中,进行预定要在接下来的控制周期执行的固定周期任务N的执行准备。
步骤S116中,调度器程序212推测固定周期任务N的执行时间。
若在步骤S116中对固定周期任务N推测的执行时间大于规定阈值,则前进至步骤S118。
步骤S118中,缩短在执行中控制周期内执行的信息处理任务的执行时间。
如图6所示,即便在预定要在下个控制周期执行的固定周期任务N的执行时间超过了规定阈值的情况下,也并非在当前执行中控制周期内使信息处理任务(N-1)的执行全部中止,而是以设定得短的执行时间来执行信息处理任务(N-1)。但是,并非使用控制周期的全部时间,而是在开始接下来的控制周期之前设置空闲时间。
根据如上所述的处理,即便在所推测的下个控制周期内的固定周期任务的执行时间超过了规定阈值的情况下,也设定经缩短的执行时间来执行信息处理任务。因而,能够进一步活用固定周期任务的执行时间的空闲时间。而且,通过将执行中控制周期内的固定周期任务的执行时间设定得短而设置空闲时间,从而能够在下个控制周期中切实地完成固定周期任务。
<流程图>
图7是表示在本发明的实施方式2的控制装置1中执行的处理的流程的流程图。以下,参照图7来说明处理的流程。
步骤S110中,调度器程序212将CPU分配给固定周期任务(N-1)。
步骤S112中,固定周期程序230执行固定周期任务(N-1)。
步骤S114中,固定周期程序230在执行固定周期任务(N-1)的过程中,进行预定要在接下来的控制周期执行的固定周期任务N的执行准备。
步骤S116中,调度器程序212推测固定周期任务N的执行时间。
若在步骤S116中对固定周期任务N推测的执行时间大于规定阈值,则前进至步骤S118。
步骤S118中,缩短在控制周期执行的信息处理任务的执行时间。
步骤S120中,调度器程序212判定是否经过了控制周期。
若在步骤S120中判定为尚未经过控制周期,则前进至步骤S124。
若在步骤S120中判定为经过了控制周期,则返回步骤S110,对于接下来的固定周期任务,重复步骤S110至S116的处理。
若在步骤S116中对固定周期任务N推测的执行时间为规定阈值以下,则前进至步骤S124。
步骤S124中,调度器程序212向信息处理任务进行任务切换。随后,前进至步骤S126。
步骤S126中,调度器程序212将CPU分配给信息处理任务。
步骤S128中,信息处理程序235执行信息处理任务。
步骤S130中,调度器程序212判定是否经过了控制周期。
直至在步骤S130中判断为经过了控制周期为止,返回步骤S128而由信息处理程序235执行信息处理任务。一旦判断为经过了控制周期,则前进至步骤S132。
步骤S132中,调度器程序212向固定周期任务进行任务切换。
随后,返回步骤S110,固定周期程序230执行下个控制周期的固定周期任务。
以下,重复相同的处理。
所述处理中,推测下个控制周期的固定周期任务的执行时间,在所推测出的执行时间超过规定阈值的情况下,缩短执行中的控制周内的信息处理任务的处理时间。因而,能够在执行中控制周期内执行信息处理任务,并且能够切实地在控制周期内完成固定周期任务的执行。
而且,调度器程序212也可根据在执行中控制周期内执行的信息处理任务的种类,来设定在所述执行中控制周期内执行的所述信息处理任务的执行时间。
例如,在固定周期任务中,有使用外部设备(存储卡或标签数据链接等的IP通信等)的任务。由于外部设备处于CPU控制之外,因此在信息处理任务是使用这些外部设备的任务的情况下,不仅会产生对CPU资源的影响,还会因外部设备的冲突而对固定周期任务的执行产生影响。例如,当在固定周期任务中进行了使用标签数据链接功能的、与其他PLC的变量同步时,若信息处理任务因云通信等而占用了网络频带,则固定周期任务中的借助标签数据链接的变量同步可能会失败。因而,通过根据信息处理任务的种类来改变执行时间,能够避免外部设备(CPU以外的资源)的冲突。
另外,所述的示例中,是根据信息处理任务的种类来设定信息处理任务的执行时间,但调度器程序212也可根据在执行中控制周期内执行的信息处理任务的种类来设定阈值。
即,根据所述处理,即便在固定周期任务的推测执行时间超过了规定阈值的情况下,也能够根据同时执行的信息处理任务的种类来设定适当的阈值或信息处理任务的执行时间。因而,能够兼顾在控制周期内完成固定周期任务以及有效活用未进行固定周期任务的空闲时间。
〔实施方式3〕
以下说明本发明的另一实施方式。另外,为了方便说明,对于具有与所述实施方式中说明的构件相同的功能的构件,标注相同的符号并不再重复其说明。
<时间图>
所述实施方式1以及实施方式2中,对所执行的固定周期任务为一个的情况进行了说明。但本发明并不限定于此,对于执行多个固定周期任务的情况也能够适用。即,也可为,作为固定周期任务而执行的固定周期程序230为多个,调度器程序212对于多个固定周期程序230的各个,推测下个控制周期内的推测执行时间而算出合计时间,并根据所述合计时间的长度来设定在执行中控制周期内执行的信息处理程序235的执行时间。
图8表示在本发明的实施方式3的控制装置1中执行的处理的时间图。本实施方式3中,以相同的规定的控制周期执行第一固定周期任务(1、2、…N)以及第二固定周期任务(1、2、…N)。进而,还执行比这些固定周期任务高度的信息处理任务(1、2、…N-1),并且,调度器程序212设定以下所示的、第一固定周期任务、第二固定周期任务以及信息处理任务的执行调度。
实施方式3中,也可为,调度器程序212对于多个固定周期程序230的各个,推测下个控制周期内的所述推测执行时间而算出合计时间,并根据所述合计时间的长度来设定在所述执行中控制周期内执行的所述信息处理程序235的执行时间。
例如,如图8所示,在执行第一固定周期任务(N-1)的过程中,推测预定要在下个控制周期执行的第一固定周期任务N的执行时间。而且,在执行第二固定周期任务(N-1)的过程中,推测预定要在下个控制周期执行的第二固定周期任务N的执行时间。并且,对第一固定周期任务以及第二固定周期任务的推测执行时间的合计值设定阈值。本实施方式3中,在第一固定周期任务以及第二固定周期任务的推测执行时间的合计值超过了阈值的情况下,在当前执行中控制周期内中止信息处理任务(N-1)的执行。并且,将信息处理任务(N-1)的执行留待到下个控制周期。
根据如上所述的处理,即便在所推测的下个控制周期内的固定周期任务的执行时间超过了规定阈值的情况下,也能够通过中止执行中控制周期内的信息处理任务的执行,而使预定要在下个控制周期执行的固定周期任务切实地在控制周期内完成。而且,通过比较推测执行时间与阈值这一相对较简单的判断,便能够设定在执行中控制周期内执行的信息处理程序的执行时间。因而,能够减少此判断造成的运算负载。
本实施方式3中,以固定周期任务为两个的情况为例进行了说明。但固定周期任务的数量并无特别限定,也可为三个以上。
即便固定周期任务为多个,信息处理任务也能够以执行固定周期任务的期间的间隙时间而尽力(best-effort)地执行。
<流程图>
图9是表示在本发明的实施方式3的控制装置1中执行的处理的流程的流程图。以下,参照图9来说明处理的流程。
步骤S210中,调度器程序212将CPU分配给第一固定周期任务(N-1)。
步骤S212中,固定周期程序230执行第一固定周期任务(N-1)。
步骤S214中,固定周期程序230在执行第一固定周期任务(N-1)的过程中,进行预定要在接下来的控制周期执行的第一固定周期任务N的执行准备。
步骤S216中,调度器程序212推测第一固定周期任务N的执行时间(T1)。
步骤S218中,调度器程序212向第二固定周期任务(N-1)进行任务切换。
步骤S220中,调度器程序212将CPU分配给第二固定周期任务(N-1)。
步骤S222中,固定周期程序230执行第二固定周期任务(N-1)。
步骤S224中,固定周期程序230在执行第二固定周期任务(N-1)的过程中,进行预定要在接下来的控制周期执行的第二固定周期任务N的执行准备。
步骤S226中,调度器程序212推测第二固定周期任务N的执行时间(T2)。进而,调度器程序212对在步骤S216中推测出的第一固定周期任务N的执行时间(T1)与第二固定周期任务N的执行时间(T2)进行合计,并判断是否超过规定阈值。
若在步骤S226中判断为所推测出的执行时间超过规定阈值,则前进至步骤S228。
步骤S228中,进入休眠状态,不执行信息处理任务。
步骤S230中,调度器程序212判定是否经过了控制周期。
若在步骤S230中判定为尚未经过控制周期,则继续休眠状态,直至经过控制周期为止。
若在步骤S230中判定为经过了控制周期,则前进至步骤S232,进行任务切换。
随后,返回步骤S210,重复步骤S210至步骤S232为止的处理。
若在步骤S226中判定为所推测出的执行时间为规定阈值以下,则前进至步骤S234。
步骤S234中,向信息处理任务进行任务切换。随后,前进至步骤S236。
步骤S236中,调度器程序212将CPU分配给信息处理任务。
步骤S238中,信息处理程序235执行信息处理任务。
步骤S240中,调度器程序212判定是否经过了控制周期。
直至在步骤S240中调度器程序212判定为经过了控制周期为止,返回步骤S238而由信息处理程序235执行信息处理任务。一旦判断为经过了控制周期,则前进至步骤S242。
步骤S242中,调度器程序212向固定周期任务进行任务切换。
随后,返回步骤S210,固定周期程序230执行下个控制周期的固定周期任务N。
以下,重复相同的处理。
根据所述结构,即便在控制周期内执行多个固定周期程序的情况下,也能够防止在下个控制周期中,固定周期程序的执行时间变得过长而固定周期任务得不到充分执行的事态。
〔实施方式4〕
以下说明本发明的另一实施方式。另外,为了方便说明,对于具有与所述实施方式中说明的构件相同的功能的构件,标注相同的符号并不再重复其说明。
<时间图>
所述实施方式3中,以下述情况为例进行了说明,即,在多个固定周期任务与信息处理任务一同执行的情况下,在各个预定要在下个控制周期执行的固定周期任务的执行时间的合计值超过了规定阈值的情况下,在执行中控制周期内中止信息处理任务的执行。但本发明并不限定于此,也可根据各个预定要在下个控制周期执行的固定周期任务的执行时间的合计值,来设定执行中控制周期内的信息处理任务的执行时间。
图10表示在本发明的实施方式4的控制装置1中执行的处理的时间图。例如,本实施方式4中,以相同的规定的控制周期执行第一固定周期任务(1、2、…N)以及第二固定周期任务(1、2、…N)。进而,还执行比这些固定周期任务高度的信息处理任务(1、2、…N-1),并且,调度器程序212设定以下所示的、第一固定周期任务、第二固定周期任务以及信息处理任务的执行调度。
实施方式3中,也可为,调度器程序212对于多个固定周期程序的各个,推测下个控制周期内的所述推测执行时间而算出合计时间,并根据所述合计时间的长度来设定在所述执行中控制周期内执行的所述信息处理程序的执行时间。
例如,如图10所示,在执行第一固定周期任务(N-1)的过程中,推测预定要在下个控制周期执行的第一固定周期任务N的执行时间。而且,在执行第二固定周期任务(N-1)的过程中,推测预定要在下个控制周期执行的第二固定周期任务N的执行时间。并且,调度器程序212对第一固定周期任务以及第二固定周期任务的推测执行时间的合计值设定阈值。并且,调度器程序212判定第一固定周期任务以及第二固定周期任务的推测执行时间是否超过规定阈值。本实施方式4中,在第一固定周期任务以及第二固定周期任务的推测执行时间的合计值超过了阈值的情况下,在当前执行中控制周期内将信息处理任务(N-1)的执行时间设定得短。
根据如上所述的处理,即便所执行的固定周期任务为多个,在所推测的下个控制周期内的多个固定周期任务的执行时间的合计值超过了规定阈值的情况下,也设定经缩短的执行时间来执行信息处理任务。因而,能够更有效地活用多个固定周期任务的执行时间的空闲时间。而且,通过将执行中控制周期内的固定周期任务的执行时间设定得短而设置空闲时间,从而能够在下个控制周期中切实地完成固定周期任务。
<流程图>
图11是表示在本发明的实施方式4的控制装置1中执行的处理的流程的流程图。以下,参照图9来说明处理的流程。
图11所示的流程图中,步骤S328以及S330与图9所示的流程图中的步骤S228以及S230不同。但图11的流程图中的步骤S310~步骤S326以及S332~步骤S342与图9的流程图中的步骤S210~步骤S226以及S232~步骤S242相同。
因而,以下,仅对步骤S326以及步骤S328进行说明。步骤S328中,调度器程序212缩短信息处理任务的执行时间。
步骤S330中,调度器程序212判定为执行中控制周期内的固定周期任务的执行已结束。
若在步骤S330中,调度器程序212判定为固定周期任务的执行已完成,则前进至步骤S334。
根据所述结构,在执行多个固定周期任务的情况下,推测预定要在接下来的控制周期进行的第一以及第二固定周期任务的执行时间而算出合计时间,在推测为超过规定阈值的情况下,缩短信息处理任务的处理时间。因而,能够以执行中控制周期内的未进行固定周期任务的间隙时间来有效地进行信息处理任务,并且能够切实地使固定周期任务在控制周期内完成。
另外,关于调度器程序212,也可为如下所述的实施方式,即,虚拟机管理器成为调度器程序,对固定周期任务用的OS与信息处理任务用的OS分配计算资源。
〔总结〕
为了解决所述问题,本发明的一实施例的控制装置对经由网络而连接的控制对象机器进行控制,所述控制装置包括:微处理器;以及存储部,所述存储部保存:固定周期程序,使所述微处理器执行在规定的控制周期中应必须执行的固定周期任务;信息处理程序,使所述微处理器执行优先级比所述固定周期任务低的信息处理任务;以及调度器程序,使所述微处理器执行在所述控制周期中执行的所述固定周期程序以及所述信息处理程序的调度设定处理,所述调度器程序在正在执行规定的所述固定周期程序的所述控制周期即执行中控制周期内,推测预定要在接下来的所述控制周期即下个控制周期执行的所述固定周期程序的执行时间,根据作为推测结果的推测执行时间的长度,来设定在所述执行中控制周期内执行的所述信息处理程序的执行时间。
根据所述结构,首先,推测预定要在下个控制周期执行的固定周期程序的执行时间。并且,根据所推测出的执行时间的长度来设定在执行中控制周期内执行的信息处理程序的执行时间。由此,能够防止在下个控制周期中,固定周期程序的执行时间变得过长而固定周期任务得不到充分执行的事态。
而且,所述一方面的控制装置也可为,所述调度器程序在所述推测执行时间超过规定阈值的情况下,设定在所述执行中控制周期内执行的所述信息处理程序的执行时间。
根据所述结构,通过比较推测执行时间与阈值这一相对较简单的判断,便能够设定在执行中控制周期内执行的信息处理程序的执行时间。因而,能够减少此判断造成的运算负载。
而且,所述一方面的控制装置也可为,所述调度器程序在所述推测执行时间超过规定阈值的情况下,中止在所述执行中控制周期内执行的所述信息处理程序的执行。
根据所述结构,在推测执行时间超过规定阈值的情况下,进行中止在执行中控制周期内执行的信息处理程序的执行这一简单的控制。因而,能够减少此控制所造成的运算负载。
而且,所述一方面的控制装置也可为,所述调度器程序在所述推测执行时间超过规定阈值的情况下,缩短在所述执行中控制周期内执行的所述信息处理程序的执行时间。
根据所述结构,在推测执行时间超过规定阈值的情况下,在执行中控制周期内执行的信息处理程序的执行时间变短。因而,与中止在执行中控制周期内执行的信息处理程序的执行这一控制相比较,能够一定程度地执行信息处理程序。因而,能够使信息处理任务更快执行完成。
而且,所述一方面的控制装置也可为,所述调度器程序根据在所述执行中控制周期内执行的所述信息处理程序的种类,来设定在所述执行中控制周期内执行的所述信息处理程序的执行时间。
根据所述结构,根据信息处理程序的种类,对于预定要在下个控制周期执行的固定周期程序的执行时间的影响有时不同。与此相对,根据所述结构,根据在执行中控制周期所执行的信息处理程序的种类来设定在执行中控制周期内执行的信息处理程序的执行时间,因此能够更适当地设定在执行中控制周期内执行的信息处理程序的执行时间。
而且,所述一方面的控制装置也可为,所述调度器程序根据在所述执行中控制周期内执行的所述信息处理程序的种类来设定所述阈值。
根据所述结构,根据信息处理程序的种类,对于预定要在下个控制周期执行的固定周期程序的执行时间的影响有时不同。与此相对,根据所述结构,根据在执行中控制周期所执行的信息处理程序的种类来设定阈值,因此能够更适当设定在执行中控制周期内执行的信息处理程序的执行时间。
而且,所述一方面的控制装置也可为,作为所述固定周期任务而执行的所述固定周期程序为多个,所述调度器程序对于多个所述固定周期程序的各个,推测所述下个控制周期内的所述推测执行时间而算出合计时间,根据所述合计时间的长度来设定在所述执行中控制周期内执行的所述信息处理程序的执行时间。
根据所述结构,即便在控制周期内执行多个固定周期程序的情况下,也能够防止在下个控制周期中,固定周期程序的执行时间变得过长而固定周期任务得不到充分执行的事态。
为了解决所述问题,本发明的一实施例的控制方法是对经由网络而连接的控制对象机器进行控制的控制装置的控制方法,所述控制方法包括:固定周期程序的执行步骤,使微处理器执行在规定的控制周期中应必须执行的固定周期任务;信息处理程序的执行步骤,使所述微处理器执行优先级比所述固定周期任务低的信息处理任务;以及调度器程序执行步骤,使所述微处理器执行在所述控制周期中执行的所述固定周期程序以及所述信息处理程序的调度设定处理,所述调度器程序执行步骤是在正在执行规定的所述固定周期程序的所述控制周期即执行中控制周期内,推测预定要在接下来的所述控制周期即下个控制周期执行的所述固定周期程序的执行时间,根据作为推测结果的推测执行时间的长度,来设定在所述执行中控制周期内执行的所述信息处理程序的执行时间。
根据所述结构,能够起到与控制装置同样的效果。
为了解决所述问题,本发明的一实施例的控制程序也可为用于使计算机作为所述的控制装置发挥功能的控制程序,其中,所述控制程序包含所述调度器程序。
根据所述结构,能够起到与控制装置同样的效果。
本发明并不限定于所述的各实施方式,可在权利要求所示的范围内进行各种变更,将不同的实施方式中分别公开的技术部件适当组合而获得的实施方式也包含在本发明的技术范围内。
符号的说明
1:控制装置
100:微处理器
106:非易失性存储器(存储部)
212:调度器程序
230:固定周期程序
235:信息处理程序
Claims (9)
1.一种控制装置,对经由网络而连接的控制对象机器进行控制,所述控制装置包括:
微处理器;以及
存储部,
所述存储部保存:
固定周期程序,使所述微处理器执行在规定的控制周期中应必须执行的固定周期任务;
信息处理程序,使所述微处理器执行优先级比所述固定周期任务低的信息处理任务;以及
调度器程序,使所述微处理器执行在所述控制周期中执行的所述固定周期程序以及所述信息处理程序的调度设定处理,
所述调度器程序在正在执行规定的所述固定周期程序的所述控制周期即执行中控制周期内,推测预定要在接下来的所述控制周期即下个控制周期执行的所述固定周期程序的执行时间,根据作为推测结果的推测执行时间的长度,来设定在所述执行中控制周期内执行的所述信息处理程序的执行时间。
2.根据权利要求1所述的控制装置,其中所述调度器程序在所述推测执行时间超过规定阈值的情况下,设定在所述执行中控制周期内执行的所述信息处理程序的执行时间。
3.根据权利要求2所述的控制装置,其中所述调度器程序在所述推测执行时间超过规定阈值的情况下,中止在所述执行中控制周期内执行的所述信息处理程序的执行。
4.根据权利要求2所述的控制装置,其中所述调度器程序在所述推测执行时间超过规定阈值的情况下,缩短在所述执行中控制周期内执行的所述信息处理程序的执行时间。
5.根据权利要求1至4中任一项所述的控制装置,其中所述调度器程序根据在所述执行中控制周期内执行的所述信息处理程序的种类,来设定在所述执行中控制周期内执行的所述信息处理程序的执行时间。
6.根据权利要求2至4中任一项所述的控制装置,其中所述调度器程序根据在所述执行中控制周期内执行的所述信息处理程序的种类来设定所述阈值。
7.根据权利要求1至6中任一项所述的控制装置,其中作为所述固定周期任务而执行的所述固定周期程序为多个,
所述调度器程序对于多个所述固定周期程序的各个,推测所述下个控制周期内的所述推测执行时间而算出合计时间,根据所述合计时间的长度来设定在所述执行中控制周期内执行的所述信息处理程序的执行时间。
8.一种控制方法,是对经由网络而连接的控制对象机器进行控制的控制装置的控制方法,所述控制方法包括:
固定周期程序的执行步骤,使微处理器执行在规定的控制周期中应必须执行的固定周期任务;
信息处理程序的执行步骤,使所述微处理器执行优先级比所述固定周期任务低的信息处理任务;以及
调度器程序执行步骤,使所述微处理器执行在所述控制周期中执行的所述固定周期程序以及所述信息处理程序的调度设定处理,
所述调度器程序执行步骤是在正在执行规定的所述固定周期程序的所述控制周期即执行中控制周期内,推测预定要在接下来的所述控制周期即下个控制周期执行的所述固定周期程序的执行时间,根据作为推测结果的推测执行时间的长度,来设定在所述执行中控制周期内执行的所述信息处理程序的执行时间。
9.一种控制程序,是用于使计算机作为如权利要求1至7中任一项所述的控制装置发挥功能的控制程序,其中,所述控制程序包含所述调度器程序。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020-214052 | 2020-12-23 | ||
JP2020214052A JP2022099958A (ja) | 2020-12-23 | 2020-12-23 | 制御装置、制御方法および制御プログラム |
PCT/JP2021/008037 WO2022137577A1 (ja) | 2020-12-23 | 2021-03-03 | 制御装置、制御方法および制御プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116457758A true CN116457758A (zh) | 2023-07-18 |
Family
ID=82158008
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180074552.5A Pending CN116457758A (zh) | 2020-12-23 | 2021-03-03 | 控制装置、控制方法以及控制程序 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230401090A1 (zh) |
EP (1) | EP4270122A1 (zh) |
JP (1) | JP2022099958A (zh) |
CN (1) | CN116457758A (zh) |
WO (1) | WO2022137577A1 (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5655448B2 (ja) * | 2010-09-09 | 2015-01-21 | 富士電機株式会社 | Plcシステム、その開発支援装置 |
JP4905597B1 (ja) | 2011-03-15 | 2012-03-28 | オムロン株式会社 | コントローラサポート装置、その装置において実行されるためのコントローラサポートプログラム、およびそのプログラムを格納する記録媒体 |
JP4748286B1 (ja) | 2011-03-15 | 2011-08-17 | オムロン株式会社 | コントローラサポート装置、その装置において実行されるためのコントローラサポートプログラム、そのプログラムを格納した記録媒体、および、制御プログラムの実行時間を推定する方法 |
JP4894961B1 (ja) | 2011-03-15 | 2012-03-14 | オムロン株式会社 | Plcのcpuユニット、plc用システムプログラムおよびplc用システムプログラムを格納した記録媒体 |
EP2927763B1 (en) * | 2014-04-04 | 2019-06-19 | Abb Ag | System and method for an optimized operation of real-time embedded solutions in industrial automation |
JP6927089B2 (ja) * | 2018-03-05 | 2021-08-25 | オムロン株式会社 | 制御装置、システムプログラム、制御方法 |
-
2020
- 2020-12-23 JP JP2020214052A patent/JP2022099958A/ja active Pending
-
2021
- 2021-03-03 EP EP21909739.1A patent/EP4270122A1/en active Pending
- 2021-03-03 WO PCT/JP2021/008037 patent/WO2022137577A1/ja active Application Filing
- 2021-03-03 CN CN202180074552.5A patent/CN116457758A/zh active Pending
- 2021-03-03 US US18/036,164 patent/US20230401090A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230401090A1 (en) | 2023-12-14 |
EP4270122A1 (en) | 2023-11-01 |
WO2022137577A1 (ja) | 2022-06-30 |
JP2022099958A (ja) | 2022-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110231781B (zh) | 控制装置、存储介质、控制方法 | |
US10274936B2 (en) | Control apparatus | |
EP2515189B1 (en) | Plc cpu unit, system program for plc, and storage medium having system program for plc stored therein | |
WO2012124133A1 (ja) | Plcのcpuユニット、plc用システムプログラムおよびplc用システムプログラムを格納した記録媒体 | |
EP2672384B1 (en) | Cpu of plc, system program for plc, and recording medium storing system program for plc | |
US8504176B2 (en) | CPU unit of PLC, system program for PLC, and recording medium storing system program for PLC | |
US10162673B2 (en) | Controller preventing communication collisions between parallel control programs | |
US11061377B2 (en) | Control device | |
JP6679758B2 (ja) | 制御装置を駆動するための方法及び装置 | |
US9568905B2 (en) | CPU of PLC, system program for PLC, and recording medium storing system program for PLC | |
CN111095138B (zh) | 控制装置、控制装置的控制方法、信息处理程序及记录介质 | |
US11855907B2 (en) | Robot control system and control method | |
US20110144803A1 (en) | Real-time distributed control system, real-time distributed control method, and robot | |
CN116457758A (zh) | 控制装置、控制方法以及控制程序 | |
JP7455239B2 (ja) | 数値制御システム、タスク割り当て変更装置及び数値制御方法 | |
WO2022190424A1 (ja) | 情報処理装置およびプログラム | |
WO2022190425A1 (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 |