CN103403633B - 可编程控制器的中央处理器单元 - Google Patents
可编程控制器的中央处理器单元 Download PDFInfo
- Publication number
- CN103403633B CN103403633B CN201180068885.3A CN201180068885A CN103403633B CN 103403633 B CN103403633 B CN 103403633B CN 201180068885 A CN201180068885 A CN 201180068885A CN 103403633 B CN103403633 B CN 103403633B
- Authority
- CN
- China
- Prior art keywords
- program
- control
- circulation
- execution
- control module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
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
- G05B19/0426—Programming the control sequence
-
- 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
- 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/10—Plc systems
- G05B2219/15—Plc structure of the system
- G05B2219/15079—Multitasking, real time multitasking
-
- 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/25419—Scheduling
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Programmable Controllers (AREA)
Abstract
调度器程序包括:使微处理器在第一控制程序的执行结束的控制循环的下一个控制循环中,在通信电路的输出数据的发送以及输入数据的接收之后开始第一控制程序的执行的命令;以及使微处理器在第一控制程序的执行没有结束的控制循环的下一个控制循环中,执行第一控制程序的未执行的部分的命令。
Description
技术领域
本发明涉及包括在用于控制机械或设备等的动作的PLC(Programmable Logic Controller,或者也被称为可编程控制器)中的输出处理、输入处理、运算处理等在内的控制动作的调度。
背景技术
PLC例如由包含执行用户程序的微处理器的CPU(Central Processing Unit,中央处理器)单元、负责来自外部的开关或传感器的信号输入以及对于外部的继电器或致动器的信号输出的IO(Input Output,输入输出)单元等多个单元构成。在这些单元之间,按控制程序的每个执行循环,经由PLC系统总线以及/或者现场网络进行数据的授受的同时,PLC执行控制动作。
例如,在专利文献1(特开2000-105604号公报)中,公开了如下技术:在PLC中,将输出更新(输出处理)、输入更新(输入处理)以及时序程序(运算处理)执行一圈的扫描时间(执行循环的周期)作为一定。该技术的原理在于,预先设定比预计执行一圈所需的时间长的时间、即恒定扫描设定时间,在每次执行一圈之后,等待该循环中从开始执行一圈起的经过时间到达恒定扫描设定时间再开始下一个循环的执行一圈。在该方式中,由于在执行一圈中不进行经过时间和恒定扫描设定时间的对比判断,所以因某些事情而执行一圈超过恒定扫描设定时间而继续的情况下,该循环直到结束执行一圈为止延长。因此,执行循环的周期成为不一定。
现有技术文献
专利文献
专利文献1:特开2000-105604号公报
发明内容
发明要解决的课题
在信息技术的领域中,正在推进微处理器或通信网络的高速化。因此,在PLC中也正在利用这些技术而缩短控制程序的执行循环的周期。由此,有利于使PLC的CPU单元与其他的单元之间进行的控制数据(输入数据以及输出数据)的通信的周期能够高精度地一定化。
若在PLC内的控制数据的通信周期一定,则在IO单元中容易对外部的设备提供的输出信号的更新周期一定化。由此,在外部的设备中,也能够容易进行与PLC的控制循环的周期同步的动作。
此外,若控制数据的通信周期一定,则在经由现场网络与CPU单元进行通信的远程IO终端中,能够进行在对CPU单元发送输入数据的预定时刻之前从外部取得输入数据这样的、时间被精密地控制的计划性的动作。由此,CPU单元可使用可获得的最新的输入数据来进行运算处理。因此,伴随着控制循环的周期的缩短,能够缩短从输入数据的取得至送出作为使用该输入数据而运算的结果的输出数据为止的响应时间。
进而,若控制数据的通信周期一定,则在PLC的任一个单元中,都能够通过检测在预定的时刻没有进行通信的情况而迅速地判定通信异常的发生。
即使是在CPU单元经由现场网络与位于PLC的外部的伺服电动机驱动器这样的控制对象设备进行直接通信的情况下,也能够使通过现场网络的控制数据的通信周期一定化,是有利的。通过能够将PLC的执行循环的周期缩短成作为伺服电动机的控制周期来使用,从而不需要另外设置专用的动作控制器,PLC的CPU单元也能够通过按每个执行循环生成并输出对于伺服电动机驱动器的指令值来进行电动机控制,但在这样的情况下,为了高精度地控制电动机,CPU单元以一定周期送出输出信号是比较重要的。
另外,本发明的PLC的CPU单元的技术范围并不停留在专门通过时序程序的执行而进行控制的现有的CPU单元的功能,还包括兼具动作控制器的功能等其功能被扩展的范围。
另外,控制程序(时序程序以及动作运算程序等)的执行所需时间,可在每次重复执行控制程序时不同。若观察该执行时间的分布,则大多数情况下表示如下倾向:在执行次数的大部分中成为比较短且偏差小的执行时间,另一方面,在执行次数的少数中表示成为比较长的执行时间。
执行时间成为这样的分布是因为,控制程序包括只有在特定的条件成立时执行的处理。在这样的条件成立的循环中,由于进行比其他的循环中的处 理多的处理,所以执行时间变长。作为执行时间变长时的例子,可举出在时序程序(用户程序)中使用的动作功能块这样的动作命令的启动条件成立的循环中,对多个轴进行初始处理的情况。该初始处理包括如下处理:用于在包括动作命令的启动条件成立的循环在内的其以后的各循环中算出动作指令值的处理。
在如专利文献1(特开2000-105604号公报)中示出的执行循环的周期的一定化方式中,若没有将执行循环的周期设定为比控制程序的最大执行时间长,则不能使通信周期一定。
但是,在将执行循环的周期设定为比控制程序的最大执行时间长的情况下,在大部分的循环中,尽管在更短的时间内执行完成控制程序,也不能实现适合这样的短的执行时间的短的执行循环的周期。
本发明考虑控制程序的执行时间被散发性地延长的情况,其目的在于,提供一种能够将用于PLC的CPU单元进行的控制数据的输出以及输入的通信的周期设为比控制程序的最大执行时间短的一定时间的PLC的CPU单元。
用于解决课题的手段
根据本发明的一个方面,提供一种对控制对象进行控制的PLC的CPU单元。PLC的CPU单元包括:微处理器;存储部件;通信电路,进行输出数据的发送以及输入数据的接收;以及设定控制循环的周期的部件。PLC的CPU单元通过重复输出数据的发送、输入数据的接收、使用输入数据而生成输出数据的第一控制程序的执行,对控制对象进行控制。存储部件用于存储第一控制程序、和控制第一控制程序的执行的调度器程序。微处理器执行在存储部件中存储的调度器程序以及第一控制程序。通信电路按每个控制循环进行输出数据的发送以及输入数据的接收。调度器程序包括:使微处理器在第一控制程序的执行结束的控制循环的下一个控制循环中,在通信电路的输出数据的发送以及输入数据的接收之后开始第一控制程序的执行的命令;以及使微处理器在第一控制程序的执行没有结束的控制循环的下一个控制循环中,执行第一控制程序的未执行的部分的命令。
根据该方面,PLC的用户在直到完成第一控制程序的执行为止所需的时间散发性地延长的状况下,能够将PLC的CPU单元为了控制数据的输出以及输入而与控制循环同步地进行的通信的周期设定为比直到完成第一控制程序的执行为止所需的时间的最大值短的一定时间。
优选地,第一控制程序包括:动作运算程序,算出在每次执行时对电动机驱动器输出的指令值。动作运算程序在通过根据用户的控制目的而制作的用户程序而启动的首次的执行中,通过执行用于开始指令值的计算所需的初始处理而需要比后续的执行所需的时间长的执行时间。
根据该方面,在动作运算程序被启动的控制循环(动作启动循环)之后的控制循环中,不发生动作运算程序的执行周期的超过,但在动作启动循环中通过将控制循环的周期以可发生执行周期的超过的程度设定得较短,所以能够实现控制循环的周期短且难以发生动作的周期超过的动作控制。
进一步,优选地,第一控制程序还包括用户程序。
优选地,存储部件还用于存储第二控制程序,该第二控制程序被设定了控制循环的周期的2以上的整数倍的周期的执行循环。调度器程序包括:使微处理器在控制循环内的第一控制程序的结束后的期间,根据执行循环而执行第二控制程序的命令。
根据该方面,通过将即使其执行循环的周期比控制循环的周期长也没有影响的处理作为第二控制程序来处理,所以能够削减第一控制程序的处理量。由此,存在能够进一步缩短控制循环的周期的可能性。此外,也存在能够减小第一控制程序的执行在一次的控制循环内没有结束的频度的可能性。进而,存在能够减小第一控制程序的执行在超过设想的控制循环数内没有结束的频度的可能性。
或者,优选地,存储部件还用于存储第二控制程序,该第二控制程序被设定了控制循环的周期的2以上的整数倍的周期的执行循环。调度器程序包括:使微处理器在控制循环内的第一控制程序的结束后的期间,根据执行循环而执行第二控制程序的命令。第一控制程序包括动作运算程序,第二控制程序包括用户程序。
优选地,存储部件还用于存储用于确定第一控制程序的一次的执行继续的控制循环数的限度数的设定内容、和第一控制程序的一次的执行在限度数的控制循环内没有结束的情况下应执行的异常处理程序。调度器程序包括:在第一控制程序继续一次的执行的控制循环的数目达到限度数、且在该控制循环内第一控制程序的执行没有结束的情况下,在下一个控制循环中,使微处理器不执行第一控制程序的未执行部分而执行异常处理程序的命令。
根据该方面,在发生了超过设想的控制循环数为止继续第一控制程序的 执行这样的异常状态的情况下,通过停止控制程序的执行且执行异常处理程序,能够确保更高的安全。
优选地,通信电路接受微处理器的控制,开始输出数据的发送以及输入数据的接收。调度器程序还包括:使通信电路按每个控制循环开始通信的命令。
根据该方面,由于微处理器集中管理控制循环,所以在通信电路中不需要以一定周期进行通信的特殊的硬件。
进一步,优选地,调度器程序还包括:在控制循环内第一控制程序的执行没有结束的情况下,在下一个控制循环中,使通信电路执行用于将第一控制程序的未执行的部分优先而开始通信的处理,之后,使微处理器执行第一控制程序的未执行的部分的命令。
根据该方面,即使是在使用单核的微处理器来控制通信开始且将第一控制程序横跨多个控制循环而执行的情况下,也能够维持通信的一定周期性。
优选地,PLC的CPU单元还包括以控制循环的周期产生信号的定时器电路。通信电路以定时器电路产生的信号作为触发,开始输出数据的发送以及输入数据的接收。
根据该方面,由于在通信电路中的通信开始是通过定时器电路产生的以控制循环的周期产生的信号而被触发,所以能够减少调度器程序中的处理量。因此,在执行第一控制程序中包含的处理内容中未执行的部分的控制循环中,调度器程序能够将用于执行在控制程序中包含的处理内容中未执行的部分的时间分配得多。其结果,能够提高使在第一控制程序中包含的处理内容中未执行的部分在其控制循环内结束执行的可能性。
优选地,微处理器包括第一以及第二核。第一核执行调度器程序,第二核执行第一控制程序。调度器程序包括:在第一控制程序的执行没有结束的控制循环的下一个控制循环中,不中断第一控制程序的执行而使微处理器执行第一控制程序的未执行的部分的命令。
根据本发明的其他方面,提供一种PLC用系统程序。PLC用系统程序在PLC的CPU单元中存储在存储部件中且由微处理器执行,PLC的CPU单元包括微处理器、存储部件以及进行输出数据的发送以及输入数据的接收的通信电路,通过按每个控制循环重复通信电路的输出数据的发送以及输入数据的接收、且重复使用输入数据而生成输出数据的、在存储部件中存储的第一 控制程序的执行,对控制对象进行控制。PLC用系统程序包括:控制第一控制程序的执行的调度器程序和、设定控制循环的周期的程序。调度器程序包括:使微处理器在第一控制程序的执行结束的控制循环的下一个控制循环中,在通信电路的输出数据的发送以及输入数据的接收之后开始第一控制程序的执行的命令;以及使微处理器在第一控制程序的执行没有结束的控制循环的下一个控制循环中,执行第一控制程序的未执行的部分的命令。
优选地,PLC用系统程序还包括:动作运算程序,算出在每次执行时对电动机驱动器输出的指令值。动作运算程序为第一控制程序的一部分或者全部。动作运算程序在通过根据用户的控制目的而制作的用户程序而启动的首次的执行中,通过执行用于开始指令值的计算所需的初始处理而需要比后续的执行所需的时间长的执行时间。
根据本发明的还其他的方面,提供一种存储了PLC用系统程序的记录介质。PLC用系统程序在PLC的CPU单元中存储在存储部件中且由微处理器执行,PLC的CPU单元包括微处理器、存储部件以及进行输出数据的发送以及输入数据的接收的通信电路,通过按每个控制循环重复通信电路的输出数据的发送以及输入数据的接收、且重复使用输入数据而生成输出数据的、在存储部件中存储的第一控制程序的执行,对控制对象进行控制。PLC用系统程序包括:控制第一控制程序的执行的调度器程序和、设定控制循环的周期的程序。调度器程序包括:使微处理器在第一控制程序的执行结束的控制循环的下一个控制循环中,在通信电路的输出数据的发送以及输入数据的接收之后开始第一控制程序的执行的命令;以及使微处理器在第一控制程序的执行没有结束的控制循环的下一个控制循环中,执行第一控制程序的未执行的部分的命令。
优选地,PLC用系统程序还包括:动作运算程序,算出在每次执行时对电动机驱动器输出的指令值。动作运算程序为第一控制程序的一部分或者全部。动作运算程序在通过根据用户的控制目的而制作的用户程序而启动的首次的执行中,通过执行用于开始指令值的计算所需的初始处理而需要比后续的执行所需的时间长的执行时间。
另外,本说明书中的(日语的)“命令”并不限定于用于实现某种功能的、在程序的源列表中表示的各个命令,也意味着这些各个命令或函数等的集合,例如在英语中如instructions这样应以复数形式记载的。
发明效果
根据本发明,PLC的用户在第一控制程序的执行时间散发性地延长的状况下,能够将PLC的CPU单元为了控制数据的输出以及输入而与控制循环同步地进行的通信的周期设定为比第一控制程序的最大执行时间短的一定时间。
附图说明
图1是表示本发明的实施方式的PLC系统的概略构成的示意图。
图2是表示本发明的实施方式的CPU单元的硬件结构的示意图。
图3是表示在本发明的实施方式的CPU单元中执行的软件结构的示意图。
图4是表示本发明的实施方式的CPU单元的主存储器的区域构成的示意图。
图5是表示本发明的实施方式1的全体处理动作的时序图。
图6是表示本发明的实施方式2的全体处理动作的时序图。
图7是表示本发明的实施方式3的全体处理动作的时序图。
图8是表示本发明的实施方式4的全体处理动作的时序图。
图9是表示本发明的实施方式5的全体处理动作的时序图。
图10是表示本发明的实施方式6的全体处理动作的时序图。
图11是表示本发明的实施方式7的全体处理动作的时序图。
图12是表示对本发明的实施方式的CPU单元连接而使用的PLC支持装置的硬件结构的示意图。
图13是表示对本发明的实施方式的CPU单元连接而使用的PLC支持装置的软件结构的示意图。
具体实施方式
参照附图详细说明本发明的实施方式。另外,对于图中的相同或者相等部分赋予相同的标号,不重复其说明。
<A.系统结构>
本实施方式的PLC控制机械或设备等的控制对象。首先,参照图1说明本实施方式的PLC1的系统结构。
图1是表示本发明的实施方式的PLC系统的概略构成的示意图。参照图1,PLC系统SYS包括PLC1、经由现场网络2与PLC1连接的伺服电动机驱动器3以及远程IO终端5、作为现场设备的检测开关6以及继电器7。此外,在PLC1中,经由连接电缆10等与PLC支持装置8连接。
PLC1包括主要执行运算处理的CPU单元13、一个以上的IO单元14、特殊单元15。这些单元能够经由PLC系统总线11相互交换数据。此外,在这些单元中,由电源单元12提供适当的电压的电源。另外,由于作为PLC1而构成的各单元是由PLC厂商提供的,所以PLC系统总线11一般由每个PLC厂商独自开发、使用。相对于此,关于后述的现场网络2,以不同的厂商的产品之间能够连接的方式,其标准等公开的情况较多。
关于CPU单元13的细节,参照图2在后述。
IO单元14是有关一般的输入输出处理的单元,负责ON/OFF的2值化的数据的输入输出。即,IO单元14收集检测开关6等的传感器检测任一对象物的状态(ON)以及不检测任一对象物的状态(OFF)中的任一状态的信息。此外,IO单元14对继电器7或致动器这样的输出目的地,输出用于激活的指令(ON)以及禁用的指令(OFF)中的任一个。
特殊单元15具有模拟数据的输入输出、温度控制、基于特定的通信方式的通信这样的、在IO单元14中不支持的功能。
现场网络2传输与CPU单元13交换的各种数据。作为现场网络2,典型地能够使用各种产业用以太网(注册商标)。作为产业用以太网(注册商标),例如已知EtherCAT(注册商标)、Profinet IRT、MECHATROLINK(注册商标)-III、Powerlink、SERCOS(注册商标)-III、CIP Motion等,能够采用这些中的任一个。进而,也可以采用产业用以太网(注册商标)以外的现场网络。例如,若不进行动作控制,则也可以采用DeviceNet、CompoNet/IP(注册商标)等。在本实施方式的PLC系统SYS中,例示典型地在本实施方式中,将作为产业用以太网(注册商标)的EtherCAT(注册商标)作为现场网络2而采用的情况下的结构。
另外,在图1中例示具有PLC系统总线11以及现场网络2的双方的PLC系统SYS,但也可以采用仅搭载一方的系统结构。例如,既可以通过现场网络2连接全部单元。或者,也可以不使用现场网络2,将伺服电动机驱动器3直接连接到PLC系统总线11。进而,也可以将现场网络2的通信单元连接到 PLC系统总线11,从CPU单元13经由该通信单元进行与连接到现场网络2的设备之间的通信。
另外,PLC1也可以是通过使CPU单元13具备IO单元14的功能或伺服电动机驱动器3的功能,从而不经由IO单元14或伺服电动机驱动器3等,CPU单元13直接对控制对象进行控制的结构。
伺服电动机驱动器3经由现场网络2与CPU单元13连接,且根据来自CPU单元13的指令值而驱动伺服电动机4。更具体而言,伺服电动机驱动器3从PLC1以一定周期接受位置指令值、速度指令值、转矩指令值等指令值。此外,伺服电动机驱动器3从连接到伺服电动机4的轴的位置传感器(回转式编码器)或转矩传感器等检测器,取得位置、速度(典型地,根据本次位置和前次位置之差来算出)、转矩等与伺服电动机4的动作有关的实际测量值。然后,伺服电动机驱动器3将来自CPU单元13的指令值设定为目标值、将实际测量值作为反馈值,进行反馈控制。即,伺服电动机驱动器3调整用于以实际测量值接近目标值的方式驱动伺服电动机4的电流。另外,伺服电动机驱动器3也被称为伺服电动机放大器。
此外,图1表示将伺服电动机4和伺服电动机驱动器3进行了组合的系统例,但也能够采用其他的结构、例如将脉冲电动机和脉冲电动机驱动器进行了组合的系统。
在图1中表示的PLC系统SYS的现场网络2中,还连接有远程IO终端5。远程IO终端5基本上与IO单元14同样地进行与一般的输入输出处理有关的处理。更具体而言,远程IO终端5包括用于进行与在现场网络2中的数据传输有关的处理的通信耦合器(coupler)52和一个以上的IO单元53。这些单元构成为能够经由远程IO终端总线51相互交换数据。
另外,关于PLC支持装置8在后述。
<B.CPU单元的硬件结构>
接着,参照图2说明CPU单元13的硬件结构。图2是表示本发明的实施方式的CPU单元13的硬件结构的示意图。参照图2,CPU单元13包括微处理器100、芯片组102、主存储器104、非易失性存储器106、系统定时器108、PLC系统总线控制器120、现场网络控制器140、USB连接器110。芯片组102和其他的组件之间经由各种总线分别耦合。
微处理器100以及芯片组102典型地基于通用的计算机结构而构成。即, 微处理器100对从芯片组102根据内部时钟而依次提供的命令代码进行分析而执行。芯片组102在与所连接的各种组件之间交换内部的数据的同时,生成微处理器100所需的命令代码。进而,芯片组102还具有对在微处理器100中的运算处理的执行的结果所获得的数据等进行高速缓存(cache)的功能。
CPU单元13作为存储部件而包括主存储器104以及非易失性存储器106。
主存储器104是易失性的存储区域(RAM),在接通了对于CPU单元13的电源之后,保持应在微处理器100中执行的各种程序。此外,主存储器104还用作微处理器100执行各种程序时的作业用存储器。作为这样的主存储器104,使用DRAM(动态随机存取存储器)或SRAM(静态随机存取存储器)的设备。
另一方面,非易失性存储器106以非易失方式保持实时OS(操作系统)、PLC1的系统程序、用户程序、动作运算程序、系统设定参数这样的数据。这些程序或数据以微处理器100能够根据需要进行访问的方式复制到主存储器104中。作为这样的非易失性存储器106,能够使用闪速存储器这样的半导体存储器。或者,还能够使用硬盘驱动器这样的磁记录介质或DVD-RAM(数字视盘随机存取存储器)这样的光学记录介质等。
系统定时器108在每一定周期产生中断信号并提供给微处理器100。典型地说,根据硬件的规格,以多个不同的周期分别产生中断信号,但也可以设定为根据OS(操作系统)或BIOS(基本输入输出系统)等而以任意周期产生中断信号。利用该系统定时器108产生的中断信号,实现后述的每个控制循环的控制动作。
作为通信电路,CPU单元13包括PLC系统总线控制器120和现场网络控制器140。这些通信电路进行输出数据的发送和输入数据的接收。
另外,在CPU单元13本身具有IO单元14或伺服电动机驱动器3的功能的情况下,基于通信电路的输出数据的发送和输入数据的接收成为以负责这些功能的部分作为通信的对方而在CPU单元13的内部进行的发送和接收。
PLC系统总线控制器120控制经由了PLC系统总线11的数据的交换。更具体地说,PLC系统总线控制器120包括DMA(动态存储器存取)控制电路122、PLC系统总线控制电路124以及缓存存储器126。另外,PLC系统总线控制器120经由PLC系统总线连接器130与PLC系统总线11在内部连接。
缓存存储器126作为经由PLC系统总线11而输出到其他的单元的数据(以下,也称为“输出数据”)的发送缓存以及经由PLC系统总线11而从其他的单元输入的数据(以下,也称为“输入数据”)的接收缓存起作用。另外,通过微处理器100的运算处理而生成的输出数据原本存储在主存储器104中。然后,应传送到特定的单元的输出数据从主存储器104中读出,暂时保持在缓存存储器126中。此外,从其他的单元传送的输入数据暂时保持在缓存存储器126之后,转移到主存储器104中。
DMA控制电路122进行从主存储器104到缓存存储器126的输出数据的传送以及从缓存存储器126到主存储器104的输入数据的传送。
PLC系统总线控制电路124在与连接到PLC系统总线11的其他的单元之间,进行发送缓存存储器126的输出数据的处理以及接收输入数据而存储在缓存存储器126中的处理。典型地,PLC系统总线控制电路124提供PLC系统总线11中的物理层以及数据链路层的功能。
现场网络控制器140控制经由了现场网络2的数据的交换。即,现场网络控制器140根据所使用的现场网络2的标准,控制输出数据的发送和输入数据的接收。如上所述,在本实施方式中,由于采用基于EtherCAT(注册商标)标准的现场网络2,所以使用包括用于进行通常的以太网(注册商标)通信的硬件在内的现场网络控制器140。在EtherCAT(注册商标)标准中,能够利用用于实现基于通常的以太网(注册商标)标准的通信协议的一般的以太网(注册商标)控制器。其中,根据采用作为现场网络2的产业用以太网(注册商标)的种类,使用与不同于通常的通信协议的专用标准的通信协议对应的特殊标准的以太网(注册商标)控制器。此外,在采用产业用以太网(注册商标)以外的现场网络的情况下,使用对应于该标准的专用的现场网络控制器。
缓存存储器146作为经由现场网络2而输出到其他的装置等的数据(以下,该数据也称为“输出数据”)的发送缓存以及经由现场网络2而从其他的装置等输入的数据(以下,该数据也称为“输入数据”)的接收缓存起作用。如上所述,通过微处理器100的运算处理而生成的输出数据原本存储在主存储器104中。然后,应传送到特定的装置的输出数据从主存储器104中读出,暂时保持在缓存存储器146中。此外,从其他的装置传送的输入数据暂时保持在缓存存储器146之后,转移到主存储器104中。
DMA控制电路142进行从主存储器104到缓存存储器146的输出数据的传送以及从缓存存储器146到主存储器104的输入数据的传送。
现场网络控制电路144在与连接到现场网络2的其他的装置之间,进行发送缓存存储器146的输出数据的处理以及接收输入数据而存储在缓存存储器146中的处理。典型地说,现场网络控制电路144提供现场网络2中的物理层以及数据链路层的功能。
USB连接器110是用于连接PLC支持装置8和CPU单元13的接口。典型地说,从PLC支持装置8传送的、可在CPU单元13的微处理器100中执行的程序等经由USB连接器110而读入PLC1中。
<C.CPU单元的软件结构>
接着,参照图3说明用于提供本实施方式的各种功能的软件组。在这些软件组中包含的命令代码在适当的定时读出,由CPU单元13的微处理器100执行。
图3是表示在本发明的实施方式的CPU单元13中执行的软件结构的示意图。参照图3,作为在CPU单元13中执行的软件,成为实时OS200、系统程序210以及用户程序236的3层。
实时OS200根据CPU单元13的计算机结构而设计,提供用于微处理器100执行系统程序210和用户程序236的基本的执行环境。典型地,由PLC的厂家或者专门的软件公司等提供该实时OS。
系统程序210是用于提供作为PLC1的功能的软件组。具体地说,系统程序210包括调度器程序212、输出处理程序214、输入处理程序216、时序命令运算程序232、动作运算程序234以及其他的系统程序220。另外,由于一般输出处理程序214和输入处理程序216是连续地(作为一体)执行,所以存在将这些程序统称为IO处理程序218的情况。
用户程序236根据用户的控制目的而生成。即,根据要使用PLC系统SYS而控制的对象的线路(处理)等,任意地设计而成的程序。
如后所述,用户程序236与时序命令运算程序232和动作运算程序234协作而实现用户的控制目的。即,用户程序236通过利用由时序命令运算程序232以及动作运算程序234所提供的命令、函数、功能模块等,实现被编程的动作。因此,也存在将用户程序236、时序命令运算程序232以及动作运算程序234统称为控制程序230的情况。
由此,CPU单元13的微处理器100执行在存储部件中存储的系统程序210以及用户程序236。
以下,进一步详细说明各个程序。
如上所述,用户程序236根据用户的控制目的(例如,对象的线路或处理)而生成。用户程序236典型地成为可在CPU单元13的微处理器100中执行的对象程序形式。通过在PLC支持装置8等中,编译由梯形语言等描述的源程序而生成该用户程序236。然后,生成的对象程序形式的用户程序236从PLC支持装置8经由连接电缆10而传送到CPU单元13,存储在非易失性存储器106等中。
调度器程序212关于输出处理程序214、输入处理程序216以及控制程序230,控制在各个执行循环中的处理开始和处理中断之后的处理再次开始。更具体地说,调度器程序212控制用户程序236以及动作运算程序234的执行。
在本实施方式的CPU单元13中,将适于动作运算程序234的一定周期的执行循环(控制循环)采用作为整个处理的共同循环。因此,由于在一个控制循环内难以完成全部处理,所以根据应执行的处理的优先级等,划分应在各个控制循环中完成执行的处理以及也可以跨越多个控制循环而执行的处理。调度器程序212管理这些被划分的处理的执行顺序等。更具体地说,调度器程序212在各个控制循环期间内,先执行被赋予了更高优先级的程序。
输出处理程序214将通过用户程序236(控制程序230)的执行而生成的输出数据再配置为适合传送到PLC系统总线控制器120以及/或者现场网络控制器140的格式。在PLC系统总线控制器120或者现场网络控制器140需要来自微处理器100的、用于执行发送的指示的情况下,输出处理程序214发出这样的指示。
输入处理程序216将通过PLC系统总线控制器120以及/或者现场网络控制器140接收到的输入数据再配置为适合控制程序230使用的格式。
时序命令运算程序232是如下程序:在用户程序236中使用的某种时序命令被执行时调用,并用于实现该命令的内容而执行。
动作运算程序234是如下程序:根据用户程序236的指示而执行,并在每次执行算出对伺服电动机驱动器3或脉冲电动机驱动器这样的电动机驱动器输出的指令值。
其他的系统程序220是将除了在图3中单独示出的程序以外的、用于实现PLC1的各种功能的程序组汇总而示出的程序。其他的系统程序220包括用于设定控制循环的周期的程序222。
控制循环的周期可根据控制目的而适当地设定。典型地,用户将用于指定控制循环的周期的信息输入到PLC支持装置8。于是,该被输入的信息从PLC支持装置8传送到CPU单元13。用于设定控制循环的周期的程序222将来自PLC支持装置8的信息存储在非易失性存储器106中,且以从系统定时器108指定的控制循环的周期产生中断信号的方式,设定系统定时器108。通过在接通对于CPU单元13的电源时,执行用于设定控制循环的周期的程序222,从非易失性存储器106读出用于指定控制循环的周期的信息,根据读出的信息而设定系统定时器108。
作为指定控制循环的周期的信息的格式,可采用表示控制循环的周期的时间的值、从预先准备了与控制循环的周期有关的多个选项中确定一个的信息(号码或者字符)等。
在本实施方式的CPU单元13中,作为设定控制循环的周期的部件,对应用于取得指定控制循环的周期的信息的与PLC支持装置8的通信部件、设定控制循环的周期的程序222、以及可任意地设定对控制循环进行规定的中断信号的周期的系统定时器108的结构等用于任意地设定控制循环的周期的元素。也可以代替从PLC支持装置8取得用于指定控制循环的周期的信息,在CPU单元13自身中设置用于接受用于指定控制循环的周期的输入的操作开关等的输入设备。
实时OS200提供随着时间的经过而切换多个程序而执行的环境。在本实施方式的PLC1中,作为用于将通过CPU单元13的程序执行而生成的输出数据输出(发送)到其他的单元或者其他的装置的事件(中断),初始设定了输出准备中断(P)以及现场网络发送中断(X)。若产生输出准备中断(P)或者现场网络发送中断(X),则实时OS200将在微处理器100中的执行对象,从在中断产生时刻执行中的程序切换到调度器程序212。另外,在调度器程序212和调度器程序212控制其执行的程序都没有执行的情况下,实时OS200执行在其他的系统程序210中包含的程序。作为这样的程序,例如包括与CPU单元13和PLC支持装置8之间的经由了连接电缆10(USB)等的通信处理有关的程序。
另外,控制程序230和调度器程序212存储在作为存储部件的主存储器104和非易失性存储器106中。
<D.主存储器结构>
接着,参照图4,说明在CPU单元13的主存储器104中构成的存储区域。
图4是表示本发明的实施方式的CPU单元13的主存储器104的区域结构的示意图。参照图4,在主存储器104中形成了各种程序区域1041、控制程序的作业区域1042、PLC系统总线发送缓存1043、PLC系统总线接收缓存1044、现场网络发送缓存1045以及现场网络接收缓存1046。
在各种程序区域1041中,暂时存储有用于执行各种程序的代码。
在控制程序的作业区域1042中,暂时存储有通过控制程序230的执行而生成的输出数据。
PLC系统总线发送缓存1043以及PLC系统总线接收缓存1044分别暂时存储经由PLC系统总线11而发送以及接收的数据。同样地,现场网络发送缓存1045以及现场网络接收缓存1046分别暂时存储经由现场网络2而发送以及接收的数据。
更具体而言,输出处理程序214在需要经由PLC系统总线11发送任一个输出数据的情况下,将对象的输出数据从控制程序的作业区域1042复制到PLC系统总线发送缓存1043。此时,输出处理程序214以能够汇总发送要对同一个单元发送的多个输出数据的方式,在PLC系统总线发送缓存1043中,将输出数据再配置为朝向同一个单元的输出数据组汇集。
同样地,输出处理程序214在需要经由现场网络2发送任一个输出数据的情况下,将对象的输出数据从控制程序的作业区域1042复制到现场网络发送缓存1045。此时,输出处理程序214在现场网络发送缓存1045中,将输出数据再配置为能够作为串行帧发送的格式。
另一方面,输入处理程序216将PLC系统总线控制器120接收并存储在PLC系统总线接收缓存1044中的输入数据以及/或者现场网络控制器140接收并存储在现场网络接收缓存1046中的输入数据复制到控制程序的作业区域1042。此时,输入处理程序216在控制程序的作业区域1042中,将输入数据再配置为适合控制程序230使用的格式。
PLC系统总线控制器120的DMA控制电路122将在PLC系统总线发送 缓存1043中存储的输出数据传送到PLC系统总线控制器120的缓存储存器146,且将在缓存存储器146中存储的输入数据传送到PLC系统总线接收缓存1044。
现场网络控制器140的DMA控制电路142将在现场网络发送缓存1045中存储的输出数据传送到现场网络控制器140的缓存存储器146,且将在缓存存储器146中存储的输入数据传送到现场网络接收缓存1046。
控制程序的作业区域1042、PLC系统总线发送缓存1043、PLC系统总线接收缓存1044、现场网络发送缓存1045以及现场网络接收缓存1046构成为能够相互独立地控制各自的访问。因此,例如能够并行执行以下所示的(1)~(3)的多个动作。
(1)微处理器100进行的、对于伴随用户程序236的执行的控制程序的作业区域1042的访问。
(2)PLC系统总线控制器120的DMA控制电路122进行的、对于用于主存储器104上的PLC系统总线发送缓存1043以及/或者PLC系统总线接收缓存1044与PLC系统总线控制器120内的缓存存储器126之间的数据传送的、主存储器104上的PLC系统总线发送缓存1043和/或PLC系统总线接收缓存1044的访问。
(3)现场网络控制器140的DMA控制电路142进行的、对于用于主存储器104上的现场网络发送缓存1045以及/或者现场网络接收缓存1046与现场网络控制器140内的缓存存储器146之间的数据传送的、主存储器104上的现场网络发送缓存1045以及/或者现场网络接收缓存1046的访问。
<E.全体处理动作(实施方式1)>
接着,以下说明本实施方式的各程序的执行顺序等。另外,在本说明书中,作为本发明的技术思想的具体例,例示实施方式1~7。图5是表示本发明的实施方式1的全体处理动作的时序图。
在本实施方式中,对输出处理程序214、输入处理程序216、控制程序230(第一控制程序)分别给予了优先级。对这些程序给予的优先级例如,从高到低为输出处理程序214、输入处理程序216、控制程序230的顺序。
PLC1的CPU单元13通过重复输出数据的发送(输出处理程序214)、输入数据的接收(输入处理程序216)、使用输入数据而生成输出数据的控制程序230的执行,对控制对象进行控制。即,微处理器100执行在存储部 件中存储的调度器程序212以及控制程序230,并根据该执行结果,通信电路(PLC系统总线控制器120以及/或者现场网络控制器140)按每个控制循环进行输出数据的发送以及输入数据的接收。
调度器程序212在各控制循环内,从优先级高的程序/线索(thread)开始使微处理器100执行。以下,也将“使微处理器100执行”简单表现为“执行”。
调度器程序212并不限定于其本身为目标实例的情况,也可以是安装到其他的各种目标实例(例如,输出处理程序214)中动作的程序(处理)。例如,也可以是在其他的目标实例中调用而动作的程序。
图5中示出的符号P以及X分别表示从系统定时器108(图2)以每一定周期发生的中断信号。具体而言,“P”表示输出准备中断,“X”表示现场网络发送中断。另外,图5中,在表示中断的符号“P”以及“X”中附加表示控制循环的号码的数字而表现。
(e1:关于控制循环1)
调度器程序212响应于输出准备中断(P-1),按照优先级执行输出处理程序214。
输出处理程序214在需要经由PLC系统总线11发送任一个输出数据的情况下,将对象的输出数据从控制程序的作业区域1042(图4)复制到PLC系统总线发送缓存1043。此外,输出处理程序214在需要经由现场网络2发送任一个输出数据的情况下,将对象的输出数据从控制程序的作业区域1042复制到现场网络发送缓存1045。
接着,输出处理程序214若完成对于PLC系统总线发送缓存1043的输出数据的复制,则对PLC系统总线控制器120指示发送执行(符号A)。然后,输出处理程序214若输出数据的复制全部完成,则暂时停止执行。
之后,调度器程序212响应于现场网络发送中断(X-1),再次开始输出处理程序214的执行。
输出处理程序214若再次开始执行,则对现场网络控制器140指示发送执行(符号B)。然后,输出处理程序214结束自身的执行。
调度器程序212若输出处理程序214的执行结束,则按照优先级,接着执行输入处理程序216。
输入处理程序216直至接收到来自PLC系统总线控制器120的接收完成
通知(符号C)或者来自现场网络控制器140的接收完成通知(符号D)为止进行待机。图5中,作为一例,表示先发生来自PLC系统总线控制器120的接收完成通知(符号C),接着发生来自现场网络控制器140的接收完成通知(符号D)的例,但该发生顺序也可以相反。
输入处理程序216若发生接收完成通知(符号C或者D),则对应于是哪个接收完成通知,从PLC系统总线接收缓存1044或者现场网络接收缓存1046对控制程序的作业区域1042复制输入数据。
输入处理程序216若输入数据的复制完成,则结束执行。
调度器程序212若输入处理程序216的执行结束,则按照优先级,接着执行控制程序230。
控制程序230使用在控制程序的作业区域1042中存储的输入数据进行处理,并将处理结果的输出数据存储在控制程序的作业区域1042中。
在控制程序230的执行结束之后有下一个输出准备中断(P-2)为止的时间,微处理器100利用实时OS的控制,执行其他的系统程序220(图2)。
(e2:关于PLC系统总线控制器120的动作)
PLC系统总线控制器120的DMA控制电路122响应于发送执行指示(符号A),将在主存储器104的PLC系统总线发送缓存1043中存储的输出数据传送到PLC系统总线控制器120的缓存存储器126。
若完成对于缓存存储器126的输出数据的传送,则PLC系统总线控制电路124从缓存存储器126对成为了各输出数据的目的地地址的单元传送对象的输出数据。之后,PLC系统总线控制电路124从PLC系统总线11上的各单元将输入数据传送到PLC系统总线控制器120的缓存存储器126。
若完成对于缓存存储器126的输入数据的传送,则PLC系统总线控制器120的DMA控制电路122将在缓存存储器126中存储的输入数据传送到主存储器104的PLC系统总线接收缓存1044。之后,若完成输入数据的传送,则DMA控制电路122将接收完成通知(符号C)发送到微处理器100。
(e3:关于现场网络控制器140的动作)
现场网络控制器140的DMA控制电路142响应于发送执行指示(符号B),将在主存储器104的现场网络发送缓存1045中存储的输出数据传送到现场网络控制器140的缓存存储器146。
若完成对于缓存存储器146的输出数据的传送,则现场网络控制电路144 从缓存存储器146对成为了各输出数据的目的地地址的装置传送输出数据。之后,现场网络控制电路144从现场网络2上的各装置将输入数据传送到现场网络控制器140的缓存存储器146。
若完成对于缓存存储器146的输入数据的传送,则现场网络控制器140的DMA控制电路142将在缓存存储器146中存储的输入数据传送到主存储器104的现场网络接收缓存1046。之后,若完成输入数据的传送,则DMA控制电路142将接收完成通知(符号D)发送到微处理器100。
以上的动作不管现场网络2的种类而都妥当,但在现场网络2为在本实施方式中采用的EtherCAT(注册商标)的情况下,进一步执行如下的处理。
即,在EtherCAT(注册商标)中,在一个帧中包含发往各单元的输出数据以及来自各单元的输入数据。若帧从被设定为主装置(master)的CPU单元13发送,则被发送的帧经由雏菊链连接的各个单元而依次传送。另外,CPU单元13以外的各个单元被设定为从动装置。若帧到达末端的单元,则因此该帧折返全二重的通信路径而再次经由作为从动装置的各个单元返回到CPU单元13。在各从动装置中,使去路的帧以FIFO(First In First Out,先进先出)方式通过的同时,选择性地获取发往本从动装置的输出数据,且将在本单元中发生的输入数据写入帧的适当的位置中。各从动装置对回路的帧不进行输出数据的读出以及输入数据的写入而使其通过。
这样,在EtherCAT(注册商标)的情况下,并不对各单元单独发送帧或者从各单元单独接收帧,而发送以及接收一个帧,这相当于基于现场网络控制电路144的、从缓存存储器146对各单元的输出数据的传送以及从各单元对缓存存储器146的输入数据的传送。
在作为现场网络2而使用EtherCAT(注册商标)的情况下,发送包含输出数据的帧,在该帧经由从动装置的各个单元而返回的情况下,在该帧中包含输入数据。因此,关于执行顺序,自然是在输出处理之后执行输入处理。但是,根据所使用的现场网络2的种类,存在在输入处理之后执行输出处理才更好的情况。这样,输出处理和输入处理的顺序根据现场网络2等的标准而适当地设计即可。
(e4:关于控制循环2~4)
基本上,控制循环2~4中的动作与控制循环1中的动作相同。以下,主要说明与控制循环1中的动作的不同点。
在控制循环2中,在发生控制循环3的输出准备中断(P-3)的时刻,控制程序230的执行也没有结束。由于控制程序230的执行周期等于控制循环的周期,所以这里可以说是发生了控制程序230的执行周期的超过。在控制循环2中执行的控制程序230在该时刻中断执行(执行对象转移到调度器程序212),调度器程序212执行控制循环3的输出处理程序214以及输入处理程序216。在输入处理程序216的执行结束后,调度器程序212再次开始在控制循环2中开始了执行的控制程序230(在控制循环3的开始时中断执行)的执行,执行在控制程序230中包含的处理内容中未执行的部分。
控制程序230的未执行的部分在控制循环3的期间中结束执行。调度器程序212在控制循环3中不会新开始控制程序的执行。
在控制循环4中,执行与控制循环1相同的通常的动作。
另外,由于在控制循环3的输出处理时,在控制循环2中开始了执行的控制程序230的执行没有结束,所以还没有完全获得作为其运算结果的新的输出数据。因此,存在在控制程序的作业区域1042中混合存在直至控制程序230的中途为止的执行的结果被更新的输出数据和未更新的输出数据的可能性。因此,控制循环3的输出处理程序214不进行从控制程序的作业区域1042到PLC系统总线发送缓存1043以及/或者现场网络发送缓存1045的输出数据的复制,对PLC系统总线控制器120指示发送执行(符号A)。
此外,与控制循环1以及2等相同地,控制循环3的输出处理程序214根据对应于现场网络发送中断(X)的、来自调度器程序212的执行的再开始指示,对现场网络控制器140进行发送执行的指示(符号B)。由此,在PLC系统总线发送缓存1043以及/或者现场网络发送缓存1045中保留的、在控制循环1中获得的输出数据被再次发送。
另外,也可以作为替代的处理例,将PLC系统设计为如下:不重复发送如上所述的已发送的输出数据,而发送表示不能更新输出数据的数据,且使各单元自己决定此时的各单元中的动作。
在控制循环3中,也从各单元获得新的输入数据,但不存在利用该输入数据而新开始执行的控制程序230。因此,控制循环3的输入处理程序216不将在PLC系统总线接收缓存1044以及现场网络接收缓存1046中存储的输入数据复制到控制程序的作业区域1042。假设执行该复制动作,则由于在控制循环3中再次开始控制程序230的执行时、即单一的控制程序230的执行 途中输入数据被更新,所以不好。
控制循环3的输入处理程序216若确认来自PLC系统总线控制器120的接收完成通知(符号C)以及来自现场网络控制器140的接收完成通知(D),则结束执行。
在图5所示的例子中,在控制循环2中开始了执行的控制程序230在控制循环2内不结束,在控制循环3中执行未执行的部分而结束一系列的执行。另外,若控制程序230在控制循环3内也没有结束一系列的执行,则在控制循环4的开始时刻再次中断执行,之后,在控制循环4中执行未执行的部分。此时的控制循环4中的处理与图5所示的控制循环3中的处理相同。
(e5:总结)
如上所述,调度器程序212包括:使微处理器100在控制程序230的执行结束的控制循环的下一个控制循环中,在基于通信电路(PLC系统总线控制器120以及/或者现场网络控制器140)的输出数据的发送以及输入数据的接收之后开始控制程序230的执行的命令。此外,调度器程序212包括:使微处理器100在控制程序230的执行没有结束的控制循环的下一个控制循环中,执行控制程序230的未执行的部分的命令。进而,调度器程序212包括:在控制循环内控制程序230的执行没有结束的情况下,在下一个控制循环中使通信电路(PLC系统总线控制器120以及/或者现场网络控制器140)执行用于对控制程序230的未执行的部分优先开始通信的处理,之后使微处理器100执行控制程序230的未执行的部分的命令。
根据本实施方式,在控制程序230的执行时间散发性地延长的状况下,能够将PLC1的CPU单元13为了控制数据的输出以及输入而与控制循环同步地进行的通信的周期设定为比控制程序230的最大执行时间短的一定时间。
由于PLC1的控制数据的通信周期一定,所以在IO单元14中容易使对外部的设备提供的输出信号的更新周期一定化。由此,即使是在外部的设备中,也能够容易进行与PLC1的控制循环的周期同步的动作。
此外,由于控制数据的通信周期一定,所以在远程IO终端5中,能够进行在对CPU单元13发送输入数据的预定时刻之前从外部取得输入数据这样的、时间被精密地控制的计划性的动作。由此,CPU单元13可使用可获得的最新的输入数据来进行运算处理。因此,伴随着控制循环的周期的缩短,能 够缩短从输入数据的取得至送出作为使用该输入数据而运算的结果的输出数据为止的响应时间。
进而,由于控制数据的通信周期一定,所以在PLC1的任一个单元中,都能够通过检测在预定的时刻没有进行通信的情况而迅速地判定通信异常的发生。
进而,按照本实施方式的CPU单元13即使是在经由现场网络2与位于PLC1的外部的伺服电动机驱动器进行直接通信的情况下,也能够使通过现场网络2的控制数据的通信周期一定化,所以能够高精度地控制电动机。
进而,按照在本实施方式的CPU单元13中,通信电路(PLC系统总线控制器120以及/或者现场网络控制器140)构成为接受微处理器100的控制而开始输出数据的发送以及输入数据的接收。并且,调度器程序212包括使通信电路按每个控制循环开始通信的命令。这样,由于微处理器100集中管理控制循环,所以还具有在通信电路中不需要用于以一定周期进行通信的特殊的硬件的优点。
<F.全体处理动作(实施方式2)>
接着,可对根据控制目的而制作的控制程序设定不同的优先级也是实用的。在实施方式2中,说明存在设定了较高的优先级的控制程序和设定了较低的优先级的控制程序的情况下的处理动作。
图6是表示本发明的实施方式2的全体处理动作的时序图。以下,主要说明与图5所示的时序的不同点。
在本实施方式中,为了便于与这些程序对比说明,设为对图5所示的控制程序230(第一控制程序)设定了较高的优先级,并将该程序称为“高优先控制程序230-1”,将设定了较低的优先级的程序(第二控制程序)称为“低优先控制程序230-2”。即,实施方式2中的高优先控制程序230-1与上述的实施方式1中的控制程序230实质上相同,仅仅是为了便于说明而改变了称呼。
由于低优先控制程序230-2的执行的优先级比高优先控制程序230-1低,所以低优先控制程序230-2的执行周期被设定为控制循环的周期的2以上的整数倍。在图6的例中,相当于4个控制循环的期间成为低优先控制程序230-2的执行周期。即,低优先控制程序230-2的执行周期为高优先控制程序230-1的周期的4倍。另外,低优先控制程序230-2也存储在作为存储部件的主存 储器104以及非易失性存储器106中。
在图6所示的时序中,直至控制循环1~4为止为低优先控制程序230-2的一个执行循环,下一个执行循环成为控制循环5~8。
参照图6,调度器程序212若在控制循环1中高优先控制程序230-1的执行结束,则执行低优先控制程序230-2。此时,低优先控制程序230-2在控制循环1内未结束,通过发生发送准备中断(P-2)而执行被中断。
若在接下来的控制循环2中,高优先控制程序230-1的执行未结束,则在低优先控制程序230-2中包含的处理内容中未执行的部分在控制循环2中不执行。
若在接下来的控制循环3中,高优先控制程序230-1的执行结束,则调度器程序212执行在低优先控制程序230-2中包含的处理内容中未执行的部分。并且,低优先控制程序230-2在控制循环3内结束。
在控制循环1中开始了执行的低优先控制程序230-2的执行周期中也包含其之后的控制循环4,但在图6所示的例中,由于低优先控制程序230-2在控制循环3内已经结束执行,所以在控制循环4内不执行低优先控制程序230-2。
由于在控制循环5中,成为低优先控制程序230-2的新的执行周期,所以与控制循环1的情况相同地,调度器程序212开始低优先控制程序230-2的执行而从最初开始执行处理。
在控制循环1中开始了执行的低优先控制程序230-2使用通过控制循环1的输入处理程序216的执行而获得的输入数据来执行。此外,低优先控制程序230-2的执行的结果获得的输出数据在相当于新的低优先控制程序230-2的执行循环的开始定时的控制循环5中通过输出处理程序214的执行而发送。
如上所述,调度器程序212包括使微处理器100在控制循环内的高优先控制程序230-1的结束后的期间中,按照执行循环来执行低优先控制程序230-2的命令。
在图6所示的例中,表示将低优先控制程序230-2的输出处理以及输入处理与高优先控制程序230-1的输出处理以及输入处理汇总进行的例子。但是,也可以将用于低优先控制程序230-2的输出以及输入的通信在与用于高优先控制程序230-1的输出以及输入的通信定时不同的定时进行。即使是在这样的情况下,若着眼于用于高优先控制程序230-1的输出以及输入的通信, 则能够以一定周期进行通信。
如上所述,在执行的优先级不同的多个控制程序230并列地执行的情况下,控制循环对应于优先级最高的控制程序能够不超过周期而执行的情况下的执行循环。
如上所述,通过在低优先控制程序230-2中包含即使该执行循环的周期比控制循环的周期长也没有影响的处理而执行,能够削减在高优先的控制程序230-1中包含的处理的处理量。由此,能够进一步缩短控制循环的周期。此外,也能够减小高优先控制程序230-1的执行在一次的控制循环内没有结束的频度。进而,也能够减小高优先控制程序230-1的执行在超过设想的控制循环数内没有结束的频度。
<G.全体处理动作(实施方式3)>
接着,说明在上述的实施方式2中说明的、将高优先控制程序以及低优先控制程序分配给具体的程序的情况下的处理。
图7是表示本发明的实施方式3的全体处理动作的时序图。在图7所示的时序中,作为一例,将在实施方式2的时序中示出的高优先控制程序230-1的内容作为动作运算程序234,将低优先控制程序230-2的内容作为用户程序236以及在其执行时需要的时序命令运算程序232。以下,主要说明与图5所示的时序的不同点。
动作运算程序234根据在用户程序236中包含的命令而被执行,按每个执行算出对电动机驱动器输出的指令值。
在图7所示的时序中,控制循环1~4为止为用户程序236的一个执行循环。假设在该执行循环的前一个执行循环中,用户程序236指示了动作运算程序234的启动。
在控制循环1中,接受该用户程序236的指示而动作运算程序234启动。若动作运算程序234启动,则首先执行被称为简档数据生成的初始处理。简档数据是在每次执行动作运算程序234时依次算出对于控制对象的各个轴的指令值所需的数据。该简档数据使用在用户程序236中的动作命令中指定的参数而算出。例如,使用在动作命令中指定的、开始位置、开始速度、目标速度、加速度、加加速度(Jerk)等的参数,算出从动作开始时刻起的、加速度增加的结束时间(恒加速度动作的开始时间)、加速度减少的开始时间、匀速动作的开始时间等。进而,动作运算程序234在其启动时的执行循环内, 接着简档数据制作而算出第1次的指令值。
若同时启动关于多个轴的多个动作运算程序234,则有时在一次的控制循环内未完成关于全部轴的简档数据的生成。在图7所示的时序中表示这样的情况,在控制循环1内未完成动作运算程序234的执行。
控制循环1相当于在用户程序236的一个执行循环中包含的(4个)控制循环中的第一个,但由于没有发生用于执行用户程序236等的剩余时间,所以在控制循环1中不执行用户程序236。
在本实施方式中,动作运算程序234在通过根据用户的控制目的而制作的用户程序236所启动的首次的执行中,通过执行用于开始指令值的计算所需的初始处理而需要比后续的执行所需的时间长的执行时间。
响应于输出准备中断(P-1),动作运算程序234中断执行,在控制循环2中,调度器程序212执行输出处理程序214以及输入处理程序216。之后,调度器程序212执行在动作运算程序234中包含的处理内容中未执行的部分。
若动作运算程序234结束,则调度器程序212执行用户程序236。用户程序236根据需要而调用时序命令运算程序232执行。在控制循环2内用户程序236没有结束,响应于输出准备中断(P-3),用户程序236中断执行。
在控制循环3以后,动作运算程序234仅仅进行用于算出指令值的处理,所以在各控制循环内执行结束。
在图7所示的时序中,表示用户程序236在控制循环3内也不能结束执行,在控制循环4中才结束执行的例子。
另外,在图7所示的时序的例中,控制循环2中输出数据(包含对于电动机驱动器的指令值)不被更新,但在控制循环2中电动机还未动作,所以对于电动机驱动器的指令值不被更新所引起的问题少。可以说在图5的时序中表示的控制程序230除了用户程序236之外还包括动作运算程序234的情况下也是相同的。
因此,在控制程序230包含动作运算程序234的情况下,在动作运算程序234被启动的控制循环(动作启动循环)之后的控制循环中,不发生动作运算程序234的执行周期的超过,但在动作启动循环中通过将控制循环的周期以可发生执行周期的超过的程度设定得较短,所以能够实现控制循环的周期短且难以发生动作中的周期超过的动作控制。
<H.全体处理动作(实施方式4)>
接着,说明在上述的实施方式1中说明的时序中,进一步安装了用于对执行周期的超过进行监视以及通知/报告的异常处理程序的情况下的处理。
图8是表示本发明的实施方式4的全体处理动作的时序图。参照图8,异常处理程序240作为在图3所示的其他的系统程序220中包含的一个程序而存储在非易失性存储器中。并且,异常处理程序240成为可在PLC1的电源接通后向主存储器104读出而执行的状态。以下,主要说明与图5所示的时序的不同点。
在上述的实施方式1的时序的一例(图5)中,例如,若在控制循环2中开始执行的控制程序在控制循环2内没有结束,在执行未执行部分的控制循环3中也没有结束执行,则在控制循环4中也继续执行。这样对在继续控制程序的一次的执行的控制循环数没有设置限度。相对于此,在本实施方式中,在一个控制程序230继续执行的期间达到控制循环数的限度数、且在与该限度数对应的控制循环内控制程序230的执行没有结束的情况下,在下一个控制循环中,不执行在控制程序230中包含的处理内容中未执行的部分,而是执行异常处理程序240。
该限度数是控制程序230的一次的执行继续的控制循环数的限度数、即是定义执行异常处理程序240的条件的数。限度数数据(限度数的设定内容)既可以在PLC1的制造时预先存储在非易失性存储器106中,也可以用户将限度数数据存储在非易失性存储器106中。作为该限度数数据的表现方式,指定限度数的值本身的形式、确定执行控制程序的未执行部分的控制循环的数目的形式(比限度数小1)、从与限度数有关的预先准备的多个选项中确定一个的信息(号码或者字符)等只要是PLC可确定限度数的方式即可。
在图8所示的时序中,表示限度数成为“2”的情况下的处理例。关于在控制循环2中开始了执行的控制程序230,控制循环3成为对应于限度数的控制循环。若在控制循环2中开始了执行的控制程序230在控制循环3中没有结束执行,则响应于输出准备中断(P-4)而执行的调度器程序212检测控制程序230的执行循环(控制循环)的数目达到限度数以及控制程序230的执行没有结束的情况。然后,调度器程序212执行输出处理程序214之后,执行异常处理程序240。另外,也可以在执行了异常处理程序240之后,不进行控制程序230的执行。
异常处理程序240典型地对PLC1的外部进行用于报告超过执行周期这 样的异常发生的处理。例如,异常处理程序240进行点亮在PLC1中搭载的异常报告用的灯(未图示)、经由高层网络(未图示)对PLC1的应用管理者发送表示异常发生的数据等的处理。
在控制循环5以后,调度器程序212仅执行输出处理程序214。直到电源被重置或者在经由USB连接的PLC支持装置8上用户进行适当的异常解除处置这样的任意解除动作为止继续这个状态。
如上所述,调度器程序212包括:在控制程序230继续一次的执行的控制循环的数目达到限度数、且在该控制循环内控制程序230的执行没有结束的情况下,在下一个控制循环中,不使微处理器100执行控制程序230的未执行部分而使其执行异常处理程序240的命令。
在本实施方式中,即使发生了执行周期超过限度数的控制循环的异常的情况下,输出处理程序214的执行也继续,维持PLC系统总线11以及现场网络2中的一定周期的通信,但也可以通过采用中断输出处理程序214的执行等处理,停止通信电路的一定周期的通信本身。
此外,也可以不将异常处理程序240作为在系统程序210中包含的程序而安装,而作为用户程序236中的一个特殊的程序来安装,从而用户能够自由地编程异常处理的内容。
根据本实施方式,在发生了超过设想的控制循环数为止控制程序230的执行继续等异常状态的情况下,通过停止控制程序230的执行并执行异常处理程序240,从而能够确保更高的安全。
<I.全体处理动作(实施方式5)>
接着,说明在上述的实施方式1中说明的时序中,控制程序在控制循环内没有结束的情况下,在下一个控制循环中不进行PLC系统总线的通信,而仅进行现场网络的通信的情况下的处理。
图9是表示本发明的实施方式5的全体处理动作的时序图。以下,主要说明与图5所示的时序的不同点。
在图9所示的时序中,表示在控制循环2中开始了执行的控制程序230在控制循环2内未能结束其执行的情况。此时,响应于输出准备中断(P-3),控制程序230中断执行。于是,调度器程序212响应于控制程序230的执行未结束的情况,在控制循环3中不进行PLC系统总线11的通信处理,而仅执行现场网络2的通信处理。即,PLC系统总线控制器120的DMA控制电 路122由于没有提供发送执行指示(符号A),所以跳过将在主存储器104的PLC系统总线发送缓存1043中存储的输出数据传送到PLC系统总线控制器120的缓存存储器126的处理。
此外,在控制循环3中,由于不存在应输出的更新的输出数据,所以调度器程序212不执行在输出处理程序214中准备经由PLC系统总线11发送的输出数据的部分的处理。另一方面,调度器程序212执行在输出处理程序214中、响应于现场网络发送中断(X-3)而对现场网络控制器140执行发送执行的指示的部分的处理。
执行准备经由现场网络2发送的输出数据的部分的处理。即,调度器程序212响应于现场网络发送中断(X-3)而执行输出处理程序214。
在图9所示的时序中,调度器程序212在发生了输出准备中断(P-3)之后到发生现场网络发送中断(X-3)为止的期间,不执行任何程序,但也可以在这个期间执行控制程序。此时,控制程序230响应于现场网络发送中断(X-3),再次中断执行。然后,调度器程序212响应于来自输出处理程序214的发送执行指示(符号B),再次开始控制程序230的执行。即,调度器程序在控制循环内比现场网络2的发送指示早的时间,也执行在控制程序230中包含的处理内容中未执行部分。这样,提高在控制循环3内结束控制程序230的可能性。
根据本实施方式,若在任一个通信路径(PLC系统总线11或者现场网络2)中进行一定周期的通信,则能够通过与通信路径的关系来维持本实施方式的作用效果。一般,连接到现场网络2的设备是基于公开的网络通信标准而由多个厂商提供。由于需要在这样的设备之间维持互换性,所以也依赖现场网络2的具体的标准,但一般在大多数情况下,现场网络2维持一定的通信周期的必要性高于PLC系统总线11。
<J.全体处理动作(实施方式6)>
接着,说明通过使系统定时器分担调度器程序的调度处理的一部分,从而提高了使控制程序在原本的执行循环内结束的可能性的结构。
图10是表示本发明的实施方式6的全体处理动作的时序图。以下,主要说明与图5所示的时序的不同点。在图10中表示使系统定时器108分担如上所述的调度器程序212的调度处理的一部分的方式的一例。具体而言,图10所示的结构是在上述的实施方式1中说明的时序中,现场网络控制器140并 非接收来自调度器程序212的发送执行指示(图5的符号B)而进行发送动作,而是直接接收来自系统定时器108的发送触发信号(Y)而进行发送动作的结构。
在图10中,发送触发信号(Y)的定时被设定为与图5所示的时序中的现场网络发送中断(X)的定时相同。即,CPU单元13还包括以控制循环的周期产生信号的定时器电路。然后,通信电路(现场网络控制器140)以定时器电路产生的信号作为触发,开始输出数据的发送以及输入数据的接收。
调度器程序212若发生发送准备中断(P),则判断控制程序230的执行是否结束,若控制程序230的执行结束则执行输出处理程序214(控制循环1、2、4)。相对于此,若控制程序230的执行没有结束,则调度器程序212执行在控制程序230中包含的处理内容中未执行的部分(控制循环3)。
另外,为了便于说明,在图10中示出不使用PLC系统总线11以及PLC系统总线11上的单元,而仅使用现场网络2来执行输出数据的发送以及输入数据的接收的例子,但也可以与上述的实施方式1相同地,一并使用PLC系统总线11。
另外,系统定时器108也可以安装在现场网络控制器140内。
根据本实施方式,由于通信电路中的通信开始是通过系统定时器108产生的一定周期的中断信号而被触发,所以能够降低调度器程序212中的处理量。因此,执行在控制程序230中包含的处理内容中未执行的部分的控制循环中,调度器程序212能够将用于执行在控制程序中包含的处理内容中未执行的部分的时间分配得多。其结果,能够提高使在控制程序230中包含的处理内容中未执行的部分在其控制循环内结束执行的可能性。
<K.全体处理动作(实施方式7)>
接着,说明使用具有多个独立的运算主体的微处理器的情况下的处理。作为通用的计算机结构,具有多个核的微处理器成为实用化。说明如下结构:由于各核能够相互独立执行运算处理,所以通过这些核分担各个程序的执行,能够提高使控制程序在原本的执行循环内结束的可能性。
图11是表示本发明的实施方式7的全体处理动作的时序图。以下,主要说明与图5所示的时序的不同点。
执行图11所示的时序的微处理器100具有核1以及核2。作为一例,设为核1执行调度器程序212、输出处理程序214以及输入处理程序216,核2 执行控制程序230。
在图11所示的例中,在控制循环1、2、4中,调度器程序212使核2执行控制程序230。
例如,在控制循环2中控制程序230的执行没有结束的情况下,在控制循环3中,核2继续控制程序230的执行。即,调度器程序212不妨碍核2继续控制程序230的执行,能够使核2执行在控制程序230中包含的处理内容中未执行的部分。换言之,调度器程序212包括:在控制程序230的执行没有结束的控制循环的下一个控制循环中,不中断控制程序230的执行,从而使微处理器100执行控制程序230的未执行的部分的命令。在该上下文中,将支配即使有发送准备中断(P)的情况下也原样继续控制程序230的执行的执行控制的系统程序210的部分(例如,通过发送准备中断(P)而启动的中断处理程序、对OS310指示进行即使有发送准备中断(P)也继续控制程序230的执行的执行控制的程序等)包含在内,称为调度器程序。
其结果,能够提高使控制程序230在原本的控制循环内结束执行的可能性。
<L.支持装置>
接着,说明用于进行在PLC1中执行的程序的制作以及PLC1的维护等的PLC支持装置8。
图12是表示对本发明的实施方式的CPU单元连接而使用的PLC支持装置8的硬件结构的示意图。参照图12,PLC支持装置8典型地由通用的计算机构成。另外,从维护性的观点出发,优选是在可移动性方面优越的笔记本型的个人计算机。
参照图12,PLC支持装置8包括:执行包含OS的各种程序的CPU81、存储BIOS或各种数据的ROM(只读存储器)82、提供用于存储在CPU81中的程序的执行所需的数据的作业区域的存储器RAM83、以非易失性方式存储在CPU81中执行的程序等的硬盘(HDD)84。
PLC支持装置8还包括接受来自用户的操作的键盘85以及鼠标86、用于对用户提示信息的监视器87。进而,PLC支持装置8包括用于与PLC1(CPU单元13)等进行通信的通信接口(IF)89。
如后所述,在PLC支持装置8中执行的各种程序被存储在CD-ROM9中而流通。该存储在CD-ROM9中的程序通过CD-ROM(致密盘只读存储器) 驱动器88所读取,并存储到硬盘(HDD)84等中。或者,也可以从高层的主计算机等通过网络而下载程序。
如上所述,由于使用通用的计算机而实现PLC支持装置8,所以不进行除此之外的详细的说明。
图13是表示本发明的实施方式的连接到CPU单元而使用的PLC支持装置8的软件结构的示意图。参照图13,在PLC支持装置8中执行OS310,提供可执行在PLC支持程序320中包含的各种程序的环境。
PLC支持程序320包括编辑程序321、编译程序322、调试程序323、仿真用时序命令运算程序324、仿真用动作运算用程序325、通信程序326。在PLC支持程序320中包括的各个程序,典型地以存储在CD-ROM9中的状态流通,并安装到PLC支持装置8中。
编辑程序321提供用于生成用户程序236的输入和编辑的功能。更具体地说,编辑程序321除了提供用户操作键盘85或鼠标86而生成用户程序236的源程序330的功能之外,还提供生成的源程序330的保存功能和编辑功能。此外,编辑程序321接受来自外部的源程序330的输入。
编译程序322提供用于对源程序330进行编译,从而生成可在CPU单元13的微处理器100中执行的目标程序形式的用户程序236的功能。此外,编译程序322提供用于对源程序330进行编译,从而生成可在PLC支持装置8的CPU81中执行的目标程序形式的用户程序340的功能。该用户程序340是用于通过PLC支持装置8对PLC1的动作进行仿真(模拟)的、仿真用的目标程序。
调试程序323提供用于对用户程序的源程序进行调试的功能。作为该调试的内容,包括用于跟踪在源程序中将用户指定的范围部分性地执行的、源程序的执行中的变量值的时间变化的动作。
调试程序323还提供用于执行作为仿真用的目标程序的用户程序340的功能。在该仿真时,使用在PLC支持程序320中包括的仿真用时序命令运算程序324和仿真用动作运算程序325,来代替在CPU单元13的系统程序中包括的时序命令运算程序232和动作运算程序234。
通信程序326提供用于对PLC1的CPU单元13传送用户程序236的功能。
一般,在PLC1中安装的系统程序210,在CPU单元13的制造阶段存储 在CPU单元13的非易失性存储器106中。其中,若在CD-ROM9中存储系统程序210,则用户还能够将CD-ROM9的系统程序210复制到PLC支持装置8,利用通信程序326提供的功能而将复制的系统程序210传送到CPU单元13。此外,若在CD-ROM9中存储在PLC1的CPU单元13中执行的实时OS200,则也能够通过用户操作将实时OS200再次安装到PLC1中。
应认为本次公开的实施方式在所有方面都是例示,并不是限制性的。本发明的范围并非由上述的说明所表示,而是由权利要求书所表示,意图包括与权利要求书等同的含义和范围内的全部变更。
标号说明
1PLC、2现场网络、3伺服电动机驱动器、4伺服电动机、5远程IO终端、6检测开关、7继电器、8PLC支持装置、9CD-ROM、10连接电缆、11PLC系统总线、12电源单元、13CPU单元、14、53IO单元、15特殊单元、51远程IO终端总线、52通信耦合器、81CPU、83RAM、85键盘、86鼠标、87监视器、88CD-ROM驱动器、100微处理器、102芯片组、104主存储器、106非易失性存储器、108系统定时器、110USB连接器、120PLC系统总线控制器、122DMA控制电路、124PLC系统总线控制电路、126、146缓存存储器、130PLC系统总线连接器、140现场网络控制器、142DMA控制电路、144现场网络控制电路、150现场网络连接器、200实时OS、210系统程序、212调度器程序、214输出处理程序、216输入处理程序、218IO处理程序、220其他的系统程序、222设定控制循环的周期的程序、230控制程序、230-1高优先控制程序、230-2低优先控制程序、232时序命令运算程序、234动作运算程序、236用户程序、240异常处理程序、320PLC支持程序、321编辑程序、322编译程序、323调试程序、324仿真用时序命令运算程序、325仿真用动作运算程序、326通信程序、330源程序、340用户程序、1041程序区域、1042控制程序的作业区域、1043PLC系统总线发送缓存、1044PLC系统总线接收缓存、1045现场网络发送缓存、1046现场网络接收缓存。
Claims (10)
1.一种PLC的CPU单元,对控制对象进行控制,包括:
微处理器;
存储部件;
通信电路,进行输出数据的发送以及输入数据的接收;以及
设定控制循环的周期的部件,
所述PLC的CPU单元通过重复所述输出数据的发送、所述输入数据的接收、使用所述输入数据而生成所述输出数据的第一控制模块的执行,对所述控制对象进行控制,
所述存储部件用于存储所述第一控制模块、和控制所述第一控制模块的执行的调度器模块,
所述微处理器执行在所述存储部件中存储的所述调度器模块以及所述第一控制模块,
所述通信电路以一定的控制循环的周期进行所述输出数据的发送以及输入数据的接收,
所述调度器模块执行以下步骤:
使所述微处理器在所述第一控制模块的执行结束的控制循环的下一个控制循环中,在所述通信电路的输出数据的发送以及输入数据的接收之后开始所述第一控制模块的执行的步骤;以及
使所述微处理器在所述第一控制模块的执行没有结束的控制循环的下一个控制循环中,执行所述第一控制模块的未执行的部分的步骤。
2.如权利要求1所述的PLC的CPU单元,其中,
所述第一控制模块包括:
动作运算模块,算出在每次执行时对电动机驱动器输出的指令值,
所述动作运算模块在通过根据用户的控制目的而制作的用户模块而启动的首次的执行中,通过执行用于开始指令值的计算所需的初始处理而需要比后续的执行所需的时间长的执行时间。
3.如权利要求2所述的PLC的CPU单元,其中,
所述第一控制模块还包括所述用户模块。
4.如权利要求1至3的任一项所述的PLC的CPU单元,其中,
所述存储部件还用于存储第二控制模块,该第二控制模块被设定了所述控制循环的周期的2以上的整数倍的周期的执行循环,
所述调度器模块执行以下步骤:
使所述微处理器在所述控制循环内的所述第一控制模块的结束后的期间,根据所述执行循环而执行所述第二控制模块的步骤。
5.如权利要求2所述的PLC的CPU单元,其中,
所述存储部件还用于存储第二控制模块,该第二控制模块被设定了所述控制循环的周期的2以上的整数倍的周期的执行循环,
所述调度器模块执行以下步骤:
使所述微处理器在所述控制循环内的所述第一控制模块的结束后的期间,根据所述执行循环而执行所述第二控制模块的步骤,
所述第一控制模块包括所述动作运算模块,
所述第二控制模块包括所述用户模块。
6.如权利要求1所述的PLC的CPU单元,其中,
所述存储部件还用于存储用于确定所述第一控制模块的一次的执行继续的控制循环数的限度数的设定内容、和所述第一控制模块的一次的执行在所述限度数的控制循环内没有结束的情况下应执行的异常处理模块,
所述调度器模块执行以下步骤:
在所述第一控制模块继续一次的执行的控制循环的数目达到所述限度数、且在该控制循环内第一控制模块的执行没有结束的情况下,在下一个控制循环中,使所述微处理器不执行第一控制模块的未执行部分而执行所述异常处理模块的步骤。
7.如权利要求1所述的PLC的CPU单元,其中,
所述通信电路接受所述微处理器的控制,开始所述输出数据的发送以及输入数据的接收,
所述调度器模块还执行以下步骤:
使所述通信电路以一定的控制循环的周期开始所述通信的步骤。
8.如权利要求7所述的PLC的CPU单元,其中,
所述调度器模块还执行以下步骤:
在控制循环内所述第一控制模块的执行没有结束的情况下,在下一个控制循环中,使所述通信电路执行用于将所述通信比所述第一控制模块的未执行的部分优先而开始的处理,之后,使所述微处理器执行第一控制模块的未执行的部分的步骤。
9.如权利要求1所述的PLC的CPU单元,还包括:
定时器电路,以所述控制循环的周期产生信号,
所述通信电路以所述定时器电路产生的所述信号作为触发,开始所述输出数据的发送以及输入数据的接收。
10.如权利要求1、7、9的任一项所述的PLC的CPU单元,其中,
所述微处理器包括第一以及第二核,
所述第一核执行所述调度器模块,所述第二核执行所述第一控制模块,
所述调度器模块执行以下步骤:
在所述第一控制模块的执行没有结束的控制循环的下一个控制循环中,不中断所述第一控制模块的执行而使所述微处理器执行所述第一控制模块的未执行的部分的步骤。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011056767A JP4894961B1 (ja) | 2011-03-15 | 2011-03-15 | Plcのcpuユニット、plc用システムプログラムおよびplc用システムプログラムを格納した記録媒体 |
JP2011-056767 | 2011-03-15 | ||
PCT/JP2011/056769 WO2012124133A1 (ja) | 2011-03-15 | 2011-03-22 | Plcのcpuユニット、plc用システムプログラムおよびplc用システムプログラムを格納した記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103403633A CN103403633A (zh) | 2013-11-20 |
CN103403633B true CN103403633B (zh) | 2016-08-10 |
Family
ID=45907942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180068885.3A Active CN103403633B (zh) | 2011-03-15 | 2011-03-22 | 可编程控制器的中央处理器单元 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9618922B2 (zh) |
EP (1) | EP2687927B1 (zh) |
JP (1) | JP4894961B1 (zh) |
CN (1) | CN103403633B (zh) |
WO (1) | WO2012124133A1 (zh) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6119224B2 (ja) * | 2012-12-10 | 2017-04-26 | 富士電機株式会社 | 診断装置、プログラマブルコントローラシステム、診断方法。 |
WO2015133175A1 (ja) | 2014-03-04 | 2015-09-11 | オムロン株式会社 | 制御システム、制御装置および制御方法 |
JP6626240B2 (ja) | 2014-03-13 | 2019-12-25 | オムロン株式会社 | コントローラ |
JP6508192B2 (ja) * | 2014-03-14 | 2019-05-08 | オムロン株式会社 | 制御装置及び制御システム |
JP6442843B2 (ja) * | 2014-03-14 | 2018-12-26 | オムロン株式会社 | 制御装置 |
US10180674B2 (en) * | 2014-03-14 | 2019-01-15 | Omron Corporation | Controller and control system |
JP6338923B2 (ja) * | 2014-04-30 | 2018-06-06 | パナソニック デバイスSunx株式会社 | プログラマブルコントローラ及び制御プログラム |
KR101593835B1 (ko) * | 2014-10-30 | 2016-02-12 | 엘에스산전 주식회사 | Plc 시스템 |
CN105938324B (zh) | 2015-03-04 | 2019-07-16 | 欧姆龙株式会社 | 控制装置及同步控制方法 |
JP2016194831A (ja) * | 2015-03-31 | 2016-11-17 | オムロン株式会社 | 制御装置 |
JP6488830B2 (ja) * | 2015-03-31 | 2019-03-27 | オムロン株式会社 | 制御装置 |
CN104932405B (zh) * | 2015-05-26 | 2017-11-10 | 宝鸡石油机械有限责任公司 | 一种用设备虚拟样机辅助测试plc控制程序的方法 |
JP6520545B2 (ja) * | 2015-08-10 | 2019-05-29 | オムロン株式会社 | サポート装置およびサポートプログラム |
KR102079499B1 (ko) * | 2015-10-20 | 2020-02-21 | 엘에스산전 주식회사 | Plc 위치 결정 시스템의 축별 제어주기 독립 할당 방법 |
CN109844659B (zh) * | 2016-10-14 | 2022-04-05 | 三菱电机株式会社 | 仿真装置 |
EP3557354B1 (en) | 2016-12-14 | 2023-03-01 | Omron Corporation | Control device, control program, and control method |
JP6919186B2 (ja) * | 2016-12-14 | 2021-08-18 | オムロン株式会社 | 制御システム、制御プログラムおよび制御方法 |
JP6792129B2 (ja) | 2017-03-03 | 2020-11-25 | 株式会社安川電機 | アーク溶接システム及びアーク溶接判定装置 |
JP6984199B2 (ja) * | 2017-07-07 | 2021-12-17 | オムロン株式会社 | 制御システム、および、制御方法 |
JP6919404B2 (ja) * | 2017-08-10 | 2021-08-18 | オムロン株式会社 | 制御装置 |
JP6806019B2 (ja) * | 2017-09-26 | 2020-12-23 | オムロン株式会社 | 制御装置 |
JP6977600B2 (ja) * | 2018-02-14 | 2021-12-08 | オムロン株式会社 | 制御装置、制御システム、制御方法、および、制御プログラム |
JP7059673B2 (ja) * | 2018-02-14 | 2022-04-26 | オムロン株式会社 | 制御装置、制御システム、制御方法、および、制御プログラム |
JP2019149763A (ja) | 2018-02-28 | 2019-09-05 | オムロン株式会社 | データの処理方法、制御システム、制御装置 |
JP7003217B2 (ja) * | 2018-03-05 | 2022-01-20 | 三菱電機株式会社 | エレベーター安全制御装置 |
JP7020198B2 (ja) * | 2018-03-09 | 2022-02-16 | オムロン株式会社 | 制御装置および制御システム |
US20210303495A1 (en) * | 2018-09-13 | 2021-09-30 | Mitsubishi Electric Corporation | Setting assistance device, setting assistance method, and program |
JP6563155B1 (ja) * | 2018-10-15 | 2019-08-21 | 三菱電機株式会社 | プログラマブルロジックコントローラ、外部機器、方法、及びプログラム |
JP6761584B2 (ja) * | 2018-10-23 | 2020-09-30 | 株式会社安川電機 | 産業機器の制御装置、産業機器の制御システム、及び産業機器の制御方法 |
JP7192427B2 (ja) * | 2018-11-19 | 2022-12-20 | オムロン株式会社 | 制御システムおよび制御装置 |
JP7251171B2 (ja) * | 2019-01-30 | 2023-04-04 | オムロン株式会社 | コントローラシステム、制御ユニット、および制御プログラム |
JP7003951B2 (ja) * | 2019-03-14 | 2022-01-21 | オムロン株式会社 | 制御システム |
WO2021106064A1 (ja) * | 2019-11-26 | 2021-06-03 | 三菱電機株式会社 | プログラマブルコントローラ |
JP7512886B2 (ja) | 2020-12-23 | 2024-07-09 | オムロン株式会社 | 制御装置、制御方法および制御プログラム |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS57152065A (en) * | 1981-03-13 | 1982-09-20 | Omron Tateisi Electronics Co | Programmable logic controller |
JPS60101612A (ja) * | 1983-11-08 | 1985-06-05 | Toshiba Corp | プログラマブルコントロ−ラ |
EP1367469A1 (en) * | 2002-05-29 | 2003-12-03 | Fanuc Ltd | Controller for machine |
JP2004038555A (ja) * | 2002-07-03 | 2004-02-05 | Toshiba Corp | プログラマブルコントローラ |
JP2005267335A (ja) * | 2004-03-19 | 2005-09-29 | Yokogawa Electric Corp | プログラム実行処理装置 |
JP2006048284A (ja) * | 2004-08-03 | 2006-02-16 | Yaskawa Electric Corp | プログラマブルコントローラ装置およびオプションモジュールとの同期方法 |
CN101131575A (zh) * | 2006-08-21 | 2008-02-27 | 株式会社东芝 | 具有快速输入/输出功能的控制设备及其控制数据的控制方法 |
CN101657783A (zh) * | 2007-03-29 | 2010-02-24 | 英特尔公司 | 利用低功率模式控制核工作循环的方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63310004A (ja) * | 1987-06-12 | 1988-12-19 | Omron Tateisi Electronics Co | プログラマブル・コントロ−ラ |
CA2048944A1 (en) * | 1990-08-31 | 1992-03-01 | Otomar S. Schmidt | Processor for a programmable controller |
JP2575973B2 (ja) * | 1991-06-20 | 1997-01-29 | 株式会社ミツトヨ | 測定データ処理システム用タスクスケジューリング方法 |
JPH11219211A (ja) * | 1998-01-30 | 1999-08-10 | Yamazaki Mazak Corp | 数値制御工作機械及びその制御方法 |
JP3356077B2 (ja) | 1998-09-29 | 2002-12-09 | 三菱電機株式会社 | プログラマブルコントローラのコンスタントスキャン設定時の出力間隔の一定化方法 |
DE10143756A1 (de) * | 2001-09-06 | 2003-03-27 | Siemens Ag | Synchronisationsverfahren und -vorrichtung |
JP4442358B2 (ja) * | 2004-08-02 | 2010-03-31 | 株式会社デンソーウェーブ | 制御装置及びコンピュータプログラム |
JP2007140655A (ja) * | 2005-11-15 | 2007-06-07 | Yaskawa Electric Corp | モーションコントローラ |
US8155769B2 (en) * | 2008-03-17 | 2012-04-10 | National Instruments Corporation | Industrial control with integrated machine vision |
JP2010170536A (ja) * | 2008-12-26 | 2010-08-05 | Omron Corp | プログラマブル・コントローラ |
JP2010198600A (ja) * | 2009-02-02 | 2010-09-09 | Omron Corp | 産業用コントローラ |
JP4752983B1 (ja) * | 2011-03-15 | 2011-08-17 | オムロン株式会社 | Plcのcpuユニット、plc用のシステムプログラムおよびplc用のシステムプログラムを格納した記録媒体 |
JP4752984B1 (ja) * | 2011-03-15 | 2011-08-17 | オムロン株式会社 | Plcのcpuユニット、plc用のシステムプログラムおよびplc用のシステムプログラムを格納した記録媒体 |
-
2011
- 2011-03-15 JP JP2011056767A patent/JP4894961B1/ja active Active
- 2011-03-22 CN CN201180068885.3A patent/CN103403633B/zh active Active
- 2011-03-22 WO PCT/JP2011/056769 patent/WO2012124133A1/ja active Application Filing
- 2011-03-22 EP EP11861122.7A patent/EP2687927B1/en active Active
-
2013
- 2013-09-04 US US14/017,929 patent/US9618922B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS57152065A (en) * | 1981-03-13 | 1982-09-20 | Omron Tateisi Electronics Co | Programmable logic controller |
JPS60101612A (ja) * | 1983-11-08 | 1985-06-05 | Toshiba Corp | プログラマブルコントロ−ラ |
EP1367469A1 (en) * | 2002-05-29 | 2003-12-03 | Fanuc Ltd | Controller for machine |
JP2004038555A (ja) * | 2002-07-03 | 2004-02-05 | Toshiba Corp | プログラマブルコントローラ |
JP2005267335A (ja) * | 2004-03-19 | 2005-09-29 | Yokogawa Electric Corp | プログラム実行処理装置 |
JP2006048284A (ja) * | 2004-08-03 | 2006-02-16 | Yaskawa Electric Corp | プログラマブルコントローラ装置およびオプションモジュールとの同期方法 |
CN101131575A (zh) * | 2006-08-21 | 2008-02-27 | 株式会社东芝 | 具有快速输入/输出功能的控制设备及其控制数据的控制方法 |
CN101657783A (zh) * | 2007-03-29 | 2010-02-24 | 英特尔公司 | 利用低功率模式控制核工作循环的方法 |
Also Published As
Publication number | Publication date |
---|---|
US9618922B2 (en) | 2017-04-11 |
US20140012402A1 (en) | 2014-01-09 |
JP2012194663A (ja) | 2012-10-11 |
EP2687927A1 (en) | 2014-01-22 |
EP2687927B1 (en) | 2016-10-19 |
WO2012124133A1 (ja) | 2012-09-20 |
CN103403633A (zh) | 2013-11-20 |
JP4894961B1 (ja) | 2012-03-14 |
EP2687927A4 (en) | 2014-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103403633B (zh) | 可编程控制器的中央处理器单元 | |
CN102792237B (zh) | 可编程逻辑控制器的cpu单元 | |
US9618924B2 (en) | CPU of PLC, system program for PLC, and recording medium storing system program for PLC | |
CN106020008B (zh) | 控制装置 | |
CN102854901B (zh) | 同步控制装置、同步控制方法 | |
US5761518A (en) | System for replacing control processor by operating processor in partially disabled mode for tracking control outputs and in write enabled mode for transferring control loops | |
EP2672346B1 (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 | |
EP3416014A1 (en) | Process data synchronization between redundant process controllers | |
JP4752983B1 (ja) | Plcのcpuユニット、plc用のシステムプログラムおよびplc用のシステムプログラムを格納した記録媒体 | |
CN112732311B (zh) | 一种大型储能系统bms程序热更新方法、系统及介质 | |
US9568905B2 (en) | CPU of PLC, system program for PLC, and recording medium storing system program for PLC | |
CN107943732B (zh) | 一种基于国产化fpga器件实现1553b总线模块 | |
CN103345952A (zh) | 一种基于模型的操纵员辅助计算系统 | |
US20150066160A1 (en) | Control program management device, information processing device, and control program processing method | |
JP2007004317A (ja) | 主幹制御装置の更新方法 | |
CN111600382B (zh) | 一种电网功率调度系统、方法、装置及存储介质 | |
JP5845629B2 (ja) | Plcのcpuユニット、plc用のシステムプログラムおよびplc用のシステムプログラムを格納した記録媒体 | |
CN220730653U (zh) | 一种换热站控制系统 | |
JPH01214795A (ja) | 原子炉の制御棒クラスターの制御システムを改修する方法及び該方法によって改修された制御システム | |
CN118450502A (zh) | 双环形通信网络的数据传输控制方法及、系统及电子设备 | |
CN115396836A (zh) | 一种适用于控制智能配电箱操作的通信系统 | |
JP2004192432A (ja) | 制御システム | |
JPS5864501A (ja) | 多重制御装置 | |
JPH02223257A (ja) | プログラム転送方式 |
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 |