CN102792237B - 可编程逻辑控制器的cpu单元 - Google Patents
可编程逻辑控制器的cpu单元 Download PDFInfo
- Publication number
- CN102792237B CN102792237B CN201180003420.XA CN201180003420A CN102792237B CN 102792237 B CN102792237 B CN 102792237B CN 201180003420 A CN201180003420 A CN 201180003420A CN 102792237 B CN102792237 B CN 102792237B
- Authority
- CN
- China
- Prior art keywords
- program
- control
- perform
- execution
- action
- 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/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/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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
- Numerical Control (AREA)
Abstract
系统程序包含第1执行控制命令以及第2执行控制命令,所述第1执行控制命令在与控制循环的周期相同周期的每个第1执行循环,使第1控制程序开始执行,所述第2执行控制命令在控制循环的周期的2以上的整数倍的周期的每个第2执行循环,使第2控制程序开始执行。第2执行控制命令包括以下命令:在第2执行循环开始的控制循环中,在第2控制程序的执行结束后使第2控制程序开始执行,若该控制循环结束之前第2控制程序未结束,则在下一个控制循环中,在第1控制程序的执行结束后,使第2控制程序的未执行的部分开始执行。
Description
技术领域
本发明涉及在用于控制机械或设备等的动作的PLC(Programmable Logic Controller,又被称为可编程逻辑控制器)中执行的、用于控制电动机的运动的动作控制处理。
背景技术
PLC例如由包含用于执行用户程序的微处理器的CPU(中央处理单元)单元、负责来自外部的开关和传感器的信号输入以及对外部的继电器和致动器(actuator)的信号输出的IO(输入输出)单元等多个单元构成。在这些单元之间,在每个用户程序执行循环,一边经由PLC系统总线和/或现场网络而交换数据,PLC一边执行控制动作。
作为机械、设备等的动作的控制,有时包含用于控制电动机的运动的动作控制。以往,这样的动作控制,典型的是用于对驱动电动机的电动机驱动器周期性地输出指令值的控制处理(动作运算程序的执行),在与PLC分开单独设置的动作控制器中进行。但是,在信息技术的领域,正在进行微处理器和通信网络的高速化。因此,在PLC中也利用这些技术,在一个微处理器中,不仅可执行用户程序,还执行动作运算程序。
例如,在专利文献1((日本)特开2007-149655号公报)中,公开了以下的结构:通过一个CPU来处理用于控制电动机的动作控制功能以及用于执行时序运算(用户程序)的PLC功能。更具体地说,公开了以下结构:在基本时钟的每个循环,执行“定周期动作控制处理以及各轴处理”与“高速时序处理”,进一步在各基本时钟循环内的剩下的时间,执行“低速时序处理”或“非定周期动作控制处理”。
现有技术文献
专利文献
专利文献1:(日本)特开2007-140655号公报
发明内容
发明要解决的课题
在将用于执行动作运算程序的功能合并到PLC的微处理器中时,自然而然地想到以下的结构:与以往的动作控制器同样地,在一定周期的执行循环内进行对于电动机驱动器的指令值的计算以及其计算结果的输出,并在各执行循环的剩下的时间进行用户程序的执行以及其他的PLC动作。但是,若在每次的执行循环内进行用于进行动作控制的PLC的动作所需的全部的处理,则不得不延长执行循环的周期。因此,对于电动机驱动器的指令值的输出周期变长,难以高速且高精度地进行动作控制。
在上述的专利文献1中,通过将处理分为在基本时钟的每个循环中执行的“定周期动作控制处理以及各轴处理”与“高速时序处理”、以及并非在每个循环执行的“低速时序处理”与“非定周期动作控制处理”,从而表示了想要缩短“定周期动作控制处理以及各轴处理”与“高速时序处理”的执行循环。但是,在专利文献1中,并未说明针对各处理,具体设想怎样的处理内容。尤其是不清楚从具体的处理内容看的情况下怎样区分“高速时序处理”与“低速时序处理”,与动作控制处理具有怎样的关系,或者是否没有关系。而且,对于“非定周期动作控制处理”,没有说明具体的处理内容,但是若根据名称来看是动作控制处理的一种,则尽管是动作控制处理却是以非定周期来执行是不理想的。
本发明的目的在于,在具有动作控制功能的PLC中,为了要求高速处理的一部分的动作控制处理而确保比较短周期的执行循环,而且除此之外的动作控制处理也能够以一定周期来执行。
用于解决课题的方法
根据本发明的某一方面,提供用于控制控制对象的PLC的CPU单元。PLC的CPU单元包括微处理器、存储部件、以及通信电路。
PLC的CPU单元被构成为,通过重复输出数据的发送、输入数据的接收、以及使用输入数据生成输出数据的控制程序的执行,从而控制控制对象。通信电路以控制循环的周期发送输出数据并接收输入数据。存储部件用于存储系统程序以及控制程序。微处理器执行系统程序以及控制程序。控制程序包含第1控制程序以及第2控制程序。第1控制程序包含第1动作运算程序, 第1动作运算程序生成用于控制电动机的运动的第1动作指令值数据。第2控制程序包含第2动作运算程序,第2动作运算程序生成用于控制电动机的运动的第2动作指令值数据。第1控制程序以及第2控制程序中的至少一个包括根据用户的控制目的而生成的用户程序,用户程序包含对第1动作运算程序以及第2动作运算程序提供其执行所需的指示的命令。系统程序包括第1执行控制命令以及第2执行控制命令,第1执行控制命令使微处理器在与控制循环的周期相同周期的每个第1执行循环开始执行第1控制程序,第2执行控制命令使微处理器在控制循环的周期的2以上的整数倍的周期的每个第2执行循环开始执行第2控制程序。第2执行控制命令包括以下的命令:使微处理器在第2执行循环开始的控制循环中,在第1控制程序的执行结束后开始执行第2控制程序,若在该控制循环结束之前第2控制程序未结束,则在下一个控制循环中在第1控制程序的执行结束后开始执行第2控制程序的未执行的部分。
优选地系统程序使微处理器执行以下的处理:在第1动作运算程序处于有效状态的期间,在每个第1执行循环,使要发送的输出数据中包含通过第1动作运算程序的执行而被更新的第1动作指令值数据;以及在第2动作运算程序处于有效状态的期间,至少在每个第2执行循环,使要发送的输出数据中包含通过第2动作运算程序的执行而被更新的第2动作指令值数据。
优选地,第1控制程序包含用户程序,用户程序包含对第1动作运算程序提供其执行所需的指示的命令、以及对第2动作运算程序提供其执行所需的指示的命令。
或者优选地,第2控制程序包含用户程序,用户程序包含对第1动作运算程序提供其执行所需的指示的命令、以及对第2动作运算程序提供其执行所需的指示的命令。
或者优选地,用户程序包含第1用户程序以及第2用户程序,第1用户程序包含对第1动作运算程序提供其执行所需的指示的命令,第2用户程序包含对第2动作运算程序提供其执行所需的指示的命令,第1控制程序包含第2用户程序,第2控制程序包含第2用户程序。
根据本发明的另一个方面,提供一种PLC用的系统程序,在PLC的CPU单元中,存储在存储部件中并被微处理器执行,PLC的CPU单元包括微处理器、存储部件、以及通信电路,通过重复输出数据的发送、输入数据的接收、 以及使用输入数据而生成输出数据的控制程序的执行,从而控制控制对象。通信电路以控制循环的周期发送输出数据并接收输入数据。存储部件用于存储系统程序、控制程序。微处理器除了执行系统程序之外,还执行控制程序。控制程序包含第1控制程序以及第2控制程序。第1控制程序包含第1动作运算程序,第1动作运算程序生成用于控制电动机的运动的第1动作指令值数据。第2控制程序包含第2动作运算程序,第2动作运算程序生成用于控制电动机的运动的第2动作指令值数据。第1控制程序以及第2控制程序中的至少一个包含根据用户的控制目的而生成的用户程序,用户程序包含对第1动作运算程序以及第2动作运算程序提供其执行所需的指示的命令。系统程序包含第1执行控制命令以及第2执行控制命令,第1执行控制命令使微处理器在与控制循环的周期相同的周期的每个第1执行循环开始执行第1控制程序,第2执行控制命令使微处理器在控制循环的周期的2以上的整数倍的周期的每个第2执行循环开始执行第2控制程序。第2执行控制命令包含以下的命令:使微处理器在第2执行循环开始的控制循环中,在第1控制程序的执行结束后开始执行第2控制程序,若在该控制循环结束之前第2控制程序没有结束,则在下一个控制循环中第1控制程序的执行结束后开始第2控制程序的未执行的部分。
优选地,系统程序使微处理器执行以下的处理:在第1动作运算程序处于有效状态的期间中,在每个第1执行循环,使要发送的输出数据包含通过第1动作运算程序的执行而被更新的第1动作指令值数据;以及在动作运算程序处于有效状态的期间中,至少在每个第2执行循环中,使要发送的输出数据包含通过第2动作运算出程序的执行而被更新的第2动作指令值数据。
根据本发明的另一个其他的方面,提供一种存储了PLC用的系统程序的记录介质,PLC用的系统程序在PLC的CPU单元中,存储在存储部件中并被微处理器执行,PLC的CPU单元包括微处理器、存储部件、以及通信电路,通过重复输出数据的发送、输入数据的接收、以及使用输入数据而生成输出数据的控制程序的执行,从而控制控制对象。通信电路以控制循环的周期发送输出数据并接收输入数据。存储部件用于存储系统程序、控制程序。微处理器除了执行系统程序之外,还执行控制程序,控制程序包含第1控制程序以及第2控制程序。第1控制程序包含第1动作运算程序,第2动作运算程序生成用于控制电动机的运动的第1动作指令值数据。第2控制程序包含第 2动作运算程序,第2动作运算程序生成用于控制电动机的运动的第2动作指令值数据。第1控制程序以及第2控制程序中的至少一个包含根据用户的控制目的而生成的用户程序,用户程序包含对第1动作运算程序以及第2动作运算程序提供其执行所需的指示的命令。系统程序包含第1执行控制命令以及第2执行控制命令,第1执行控制命令使微处理器在与控制循环的周期相同的周期的每个第1执行循环开始执行第1控制程序,第2执行控制命令使微处理器在控制循环的周期的2以上的整数倍的周期的每个第2执行循环开始执行第2控制程序。第2执行控制命令包含以下的命令:使微处理器在第2执行循环开始的控制循环中,在第1控制程序的执行结束后开始执行第2控制程序,若在该控制循环结束之前第2控制程序没有结束,则在下一个控制循环中第1控制程序的执行结束后开始第2控制程序的未执行的部分。
优选地,系统程序使微处理器执行以下处理:在第1动作运算程序处于有效状态的期间中,在每个第1执行循环,使要发送的输出数据包含通过第1动作运算程序的执行而被更新的第1动作指令值数据;以及在动作运算程序处于有效状态的期间中,至少在每个第2执行循环中,使要发送的输出数据包含通过第2动作运算出程序的执行而被更新的第2动作指令值数据。
另外,本说明书中(日语)的“命令”并不现定于用于是实现某功能的由程序的源码表表示的各命令,还表示这些各命令和函数等的集合,例如在英语中是如instructions那样应通过多个形式表示。
发明效果
根据本发明,在具有动作控制功能的PLC中,为需要高速处理的一部分动作控制处理确保比较短的周期的执行循环,且除此之外的动作控制处理也能够以移动周期执行。
附图说明
图1是表示本发明的实施方式的PLC系统的概要结构的示意图。
图2是表示本发明的实施方式的CPU单元的硬件结构的示意图。
图3是表示在本发明的实施方式的CPU单元执行的软件结构的示意图。
图4是表示本发明的实施方式的CPU单元的主存储器的区域结构的示意图。
图5是表示由本发明的实施方式的控制程序提供的动作控制的概略的处 理步骤的流程图。
图6是表示本发明的实施方式的整体处理动作的时序图。
图7是用于说明本发明的实施方式的控制程序内的程序结构与指示的流向的示意图。
图8是表示本发明的实施方式的CPU单元的微处理器通过执行系统程序来实现的处理的步骤的流程图。
图9是表示本发明的实施方式的连接到CPU单元而使用的PLC支持装置的硬件结构的示意图。
图10是表示本发明的实施方式的连接到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提供适当的电压的电源。另外,作为PLC而构成的各单元由PLC厂商提供,因此PLC系统11一般由每个PLC厂商独自开发并使用。相对于此,如后所述,对于现场网络2,有时公开其规格等,以便不同的厂商的产品之间能够连接。
参照图2,将在后面叙述CPU单元13的细节。在本实施方式中,CPU单元13主要控制电动机等控制对象。
IO单元14是有关一般的输入输出处理的单元,负责导通/截止这样的被二值化的数据的输入输出。即,IO单元14收集检测开关6等传感器是检测 某个对象物的状态(导通)、以及不检测任何对象物的状态(截止)中的哪一个状态的信息。此外,IO单元14对继电器7或致动器这样的输出目的地,输出用于激活的指令(导通)以及用于失活的指令(截止)中的任一个。
特殊单元15具有模拟数据的输入输出、温度控制、基于特定的通信方式的通信这样的IO单元14中不支持的功能。
现场网络2传输与CPU单元13交换的各种数据。作为现场网络2,典型地,可以使用各种产业用以太网(注册商标)。作为产业用以太网(注册商标),已知例如EtherCAT(注册商标)、Profinet IRT、MECHATROLINK(注册商标)-III、Powerlink、SERCOS(注册商标)-III、CIP Motion等,可以采用它们中的任一个。而且,也可使用产业用以太网(注册商标)以外的现场网络。例如,若是不进行动作控制的情况下,可以利用DeviceNet、CompoNet/IP(注册商标)等。在本实施方式的PLC系统SYS中,典型地,在本实施方式中,例示作为现场网络2而采用产业用以太网(注册商标)的EtherCAT(注册商标)的情况下的结构。
另外,图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中的数据传输的处理的通信耦合器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典型地按照通用的计算机体系结构(architecture)来构成。即,微处理器100分析并执行从芯片组102根据内部时钟依次提供的命令码。芯片组102在与连接的各种元件之间交换内部的数据,并生成对微处理器100必要的命令码。而且,芯片组102具有将在微处理器100中执行运算处理的执行的结果而获得的数据等缓存的功能。
CPU单元13作为存储部件而具有主存储器104以及非易失性存储器106。
主存储器104是易失性的存储区域(RAM),在对CPU单元13接通电源后保持应在微处理器100中执行的各种程序。此外,主存储器104也可以作为在微处理器100执行各种程序时的作业用存储器来使用。作为这样的主存储器104,使用DRAM(动态随机存取存储器)或SRAM(静态随机存取存储器)等设备。
另一方面,非易失性存储器106非易失性地保持实时OS(操作系统)、PLC1的系统程序、用户程序、动作运算程序、系统设定参数这样的数据。根 据需要,这些程序和数据被复制到主存储器104,使得微处理器100能够访问。作为这样的非易失性存储器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这三个层构成。
实时OS200根据CPU单元13的计算机体系结构而设计,提供用于微处理器100执行系统程序210以及用户程序236的基本的执行环境。典型地,该实时OS由PLC的厂商或专门的软件公司等提供。
系统程序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。特别地,将执行循环为共通的用户程序236与动作运算程序234作为一个控制程序230来掌握。
这样,CPU单元13的微处理器100执行在存储部件中存储的系统程序210与控制程序230。即,存储部件至少用于系统程序与控制程序的存储。
以下,更详细说明各程序。
如上所述,上述用户程序236根据用户的控制目的(例如,对象的线、过程)而生成。典型地,用户程序236成为CPU单元13的微处理器100中能够执行的目标程序形式。在PLC支持装置8等中,通过汇编由LADDER语言等记述的源程序而生成该用户程序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包括用于设定控制循环的周期的程序。
控制循环的周期能够根据控制目的而适当设定。典型地,用户将用于指定控制循环的周期的信息输入到PLC支持装置8。然后,该被输入的信息从PLC支持装置8转发到CPU单元13。用于设定控制循环的周期的程序使来自PLC支持装置8的信息存储到非易失性存储器106,并设定系统定时器108,使得中断信号以从系统定时器108指定的控制循环的周期产生。在对CPU单元13接通电源时,通过执行用于设定控制循环的周期的程序,从而从非易失性存储器106读取用于指定控制循环的周期的信息,并根据所读取的信息来指定系统定时器108。
作为用于指定控制循环的周期的信息的形式,能够采用用于表示控制循环的周期的时间的值、用于从有关控制循环的周期的预先准备的多个选项中 确定一个选项的信息(号码或字符)等。
在本实施方式的CPU单元13中,作为设定控制循环的周期的部件,对应于为了取得用于指定控制循环的周期的信息而使用的与PLC支持装置8的通信部件、用于设定控制循环的周期的程序、以及被构成为能够任意地设定用于规定控制循环的中断信号的周期的系统定时器108的结构这样的用于任意地设定控制循环的周期的要素。
实时OS200提供用于将多个程序随着时间经过而切换执行的环境。在本实施方式的PLC1中,作为用于将根据CPU单元13的执行生成而生成的输出数据输出(发送)到其他的单元或其他的装置的事件(中断),初始设定控制循环开始的中断。若发生了控制循环开始的中断,则实时OS200将微处理器100中的执行对象从在中断发生时刻正在执行的程序切换为调度器程序212。另外,当调度器程序212以及调度器程序212控制其执行的程序某些没有被执行的情况下,执行其他的系统程序210中包含的程序。作为这样的程序,例如包括有关经由CPU单元13与PLC支持装置8之间的连接电缆10(USB)等的通信处理的程序。
利用上述的中断,PLC1的CPU单元13通过重复输出数据的发送、输入数据的接收、使用输入数据生成输出数据的控制程序的执行而控制控制对象。此时,PLC系统总线控制器120以及现场网络控制器140(通信电路)以控制循环的周期发送输出数据并接收输入数据。
另外,对于用于提供决定通信电路发送输出数据并接收输入数据的定时的通信触发信号的方法,典型地,考虑以下的安装方式。
(1)在每次通信时,微处理器100对通信电路提供触发信号的结构
(2)通信电路从系统定时器108直接接受通信触发信号的结构
(3)通信电路内置用于产生通信触发信号的定时器电路的结构
无论是以上结构的哪一种结构的情况,通信触发信号都以控制循环的周期产生。
<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.动作控制的概略步骤>
接着,说明本实施方式的PLC系统SYS提供的动作控制的概略步骤。
首先,说明上述的用户程序236中包含的典型的结构。用户程序236包括周期地判断与电动机的运动有关的控制开始的条件是否成立的命令。例如,是判断通过电动机的驱动力而进行某种处理的工件是否被搬运到规定的处理位置的逻辑。然后,用户程序236还包括响应于判断为该控制开始的条件成立的情况而使动作控制开始的命令。随着该动作控制的开始,指示执行动作命令。则与被指示的动作命令对应的动作运算程序234启动,首先,在每次执行动作运算程序234时,执行计算对于电动机的指令值所需的初始处理。此外,在与初始处理相同的控制循环中,算出在第1循环中的指令值。从而,初始处理以及第1个指令值计算处理成为所启动的动作运算程序234在第1个执行中应完成的处理。之后,依次算出在各循环中的指令值。
图5是表示由本发明的实施方式的控制程序230(用户程序236、时序命令运算程序232以及动作运算程序234)提供的动作控制的概略的处理步骤的流程图。参照图5,微处理器100周期性地判断有关电动机的运动的控制开始的条件是否成立(步骤S2)。该控制开始的条件是否成立的判断通过用户程序236以及时序命令运算程序232来实现。当控制开始的条件不成立的 情况下(步骤S2:否),重复步骤S2的判断。
当控制开始的条件成立的情况下(步骤S2:是),微处理器100执行有关动作控制的初始处理(步骤S4)。作为该初始处理,包括电动机的运动的开始位置坐标、结束位置坐标、初始速度、初始加速度、轨迹等的运算处理。接着,微处理器100执行第1循环中的指令值的计算处理(步骤S6)。进一步,微处理器100执行所计算出的指令值的输出处理(步骤S8)。
此后,微处理器100等待至下一个控制循环到来(步骤S10)。然后,微处理器100周期性地判断有关电动机的运动的控制结束的条件是否成立(步骤S12)。该控制结束的条件成立表示伺服电动机4到达了结束位置的状态等。当控制结束的条件成立的情况下(步骤S12:是),再次重复步骤S2以下的处理。此时,启动着的动作运算程序234维持无效的状态直到新的控制开始的条件成立为止。
当控制结束的条件不成立的情况下(步骤S12:否),微处理器100执行当前的循环中的指令值的计算处理(步骤S14)。然后,微处理器100执行算出的指令值的输出处理(步骤S16)。然后,重复步骤S10以下的处理。
在图5所示的流程图中,控制开始的条件成立后(步骤S2中取“是”时开始),控制结束的条件成立为止(步骤S12中取“是”时为止),相当于动作运算程序234处于“有效状态”的期间。
在算出的指令值的输出处理(步骤S8以及S16)中,算出的指令值从图4的控制程序的作业区域1042复制到PLC系统总线发送缓冲器1043或现场网络发送缓冲器1045。然后,若下一个发送定时到来,则被复制的指令值作为被更新的动作指令值数据而发送。
另外,也可以发送在每次控制循环中存储到发送缓冲器(PLC系统总线发送缓冲器1043或现场网络发送缓冲器1045)中的动作指令值数据,而与动作指令值数据是否被更新无关,或者也可以仅在动作指令值数据被更新时执行该动作指令值数据的发送。
这样,本实施方式的系统程序210使微处理器100在第1动作运算程序处于有效状态的期间中,在每次执行循环中执行使发送的输出数据包含通过该动作运算程序的执行而被更新的动作指令值数据的处理。
如后所述,当执行各自包含动作运算程序的多个控制程序的情况下,针对这样的处理,使各动作运算程序在对应的执行循环中独立执行。即,本实 施方式的系统程序210使微处理器100在第1动作运算程序处于有效状态的期间中,在每个第1执行循环中执行用于使发送的输出数据包含通过第1动作运算程序的执行而被更新的第1动作指令值数据的处理,并在第2动作运算程序处于有效状态的期间中,至少在每个第2执行循环中执行用于使发送的输出数据包含通过第2动作运算程序的执行而被更新的第2动作指令值数据的处理。
<F.整体处理动作>
接着,以下说明本实施方式的各程序的执行顺序等。
图6是表示本发明的实施方式的整体处理动作的时序图。参照图6,考虑在本实施方式的PLC1的执行中,微处理器100执行多个控制程序(第1控制程序230-1以及第2控制程序230-2)的情况。此时,微处理器100也分时地执行IO处理程序218(输出处理程序214以及输入处理程序216)。
典型地,设第1控制程序230-1以及第2控制程序230-2分别包含第1动作运算程序234-1以及第2动作运算程序234-2。此外,设第1控制程序230-1以及第2控制程序230-2中的至少一个还包括用户程序236。
图6的沿着第1和第2控制程序各自的时间轴表示的虚线的圆形角的矩形表示对应的控制程序的执行循环。作为一例,第1控制程序230-1将一次控制循环设为执行循环,第2控制程序230-2将两次控制循环设为执行循环。
在图6中,从IO处理程序218至第2控制程序230-1以及第2控制程序230-2分别延伸的箭头表示输入数据的流向。具体地说,相当于输入数据从接收缓冲器(现场网络发送缓冲器1045和/或现场网络接收缓冲器1046)至控制程序的作业区域1042的复制。在控制程序230(第1控制程序230-1和/或第2控制程序230-2)包含用户程序236的情况下,该输入数据除了包括该用户程序236要使用的输入数据之外,还包括动作运算程序234要使用的输入数据(有时动作运算程序234不使用输入数据而进行运算)。
同样,在图6中,从第1控制程序230-1和第2控制程序230-2至IO处理程序分别延伸的箭头表示输出数据的流向。具体地说,相当于输出数据从控制程序的作业区域1042至发送缓冲器(PLC系统总线发送缓冲器1043和/或现场网络发送缓冲器1045)的复制。当控制程序230(第1控制程序230-1和/第2控制程序230-2)包含用户程序236的情况下,该输出数据除了包括该用户程序236生成的输出数据之外,还包括在动作运算程序234处于有效 状态的期间中该动作运算程序234生成的动作指令值数据。
在图6所示的PLC1的执行中进行的时序如下。
(1)根据IO处理程序218的命令而执行输出处理。更具体地说,通过之前的处理而存储到发送缓冲器(PLC系统总线发送缓冲器1043和/或现场网络发送缓冲器1045)中的输出数据发送到其他的单元,或者发送到其他的装置。
(2)现场网络控制器140接收输入数据而对现场网络接收缓冲器1046存储该输入数据,和/或,PLC系统总线控制器120接收输入数据而对PLC系统总线接收缓冲器1044存储该输入数据。
(3)根据IO处理程序218的命令,存储到PLC系统总线接收缓冲器1044和/或现场网络接收缓冲器1046中的输入数据被转发到控制程序的作业区域1042。
(4)根据第1控制程序230-1的命令,通过使用输入数据执行各种处理而算出输出数据,且所算出的输出数据被存储到控制程序的作业区域1042。
(5)根据IO处理程序218的命令,存储在控制程序的作业区域1042的输出数据被转发到PLC系统总线发送缓冲器1043和/或现场网络发送缓冲器1045。
(6)根据第2控制程序230-2的命令,通过使用输入数据执行各种处理而算出输出数据,且所算出的输出数据被存储到控制程序的作业区域1042。另外,第2控制程序230-2的执行循环相当于两个控制循环,因此,若在第2控制程序230-2的执行结束之前发生用于开始下一个控制循环的中断,则第2控制程序230-2的执行暂时被中断,在下一个控制循环中,在IO处理程序218以及第1控制程序230-1的执行结束后,执行第2控制程序230-2的未执行部分。
(7)根据IO处理程序218的命令,在控制程序的作业区域1042中存储着的输出数据被转发到PLC系统总线发送缓冲器1043和/或现场网络发送缓冲器1045。
<G.控制程序内的程序结构与指示的流向>
接着,说明控制程序内的程序结构、以及程序之间的指示的流向。
图7是用于说明本发明的实施方式的控制程序内的程序结构与指示的流向的示意图。图7表示在第1控制程序230-1和第2控制程序230-2中包含的 用户程序的变化的例子。即,图7(a)表示仅第1控制程序230-1具有用户程序236的例子,图7(b)表示仅第2控制程序230-2具有用户程序236的例子,图7(c)表示第1控制程序230-1以及第2控制程序230-2两者具有用户程序236的例子。
在图7中,从用户程序236(在图7(c)中是236-1或236-2)向动作运算程序234(234-1或234-2)延伸的箭头表示执行动作运算程序234所需的指示的流程。该指示例如在用户程序236中,作为对于定义动作控制的内容的动作功能块的输入参数(输入常数或输入变量)来记述。然后,若随着执行用户程序,动作控制开始的条件成立而执行动作功能块,则该输入参数被提供给动作运算程序。
控制程序230也可以作为包含用户程序236的执行与动作运算程序234的执行的线程来构成。
控制程序230包含用户程序236以及动作运算程序234的情况下的各程序的执行顺序哪一个先执行都可以。当先执行用户程序236的情况下,能够将用户程序236的执行结果立即反映到动作运算程序234的执行,这一点是理想的。另一方面,当先执行动作运算程序234的情况下,用户程序236的执行结果在下一个执行循环中反映到动作运算程序234的执行。
如图6所示,以两个控制循环作为执行循环的第2控制程序230-2若在其执行结束之前开始下一个控制循环,则其执行被中断,在该下一个控制循环中第1控制程序230-1的执行结束后再开始执行。第2控制程序230-2有时在其包含的用户程序236的执行中被中断,有时还在其包含的动作运算程序234的执行中被中断。
(g1:仅第1控制程序包含用户程序的情况)
参照图7(a),说明仅在第1控制程序230-1中包含用户程序236的方式。该图7(a)所示的实施方式能够在以下情况下采用:在期望的控制循环时间中能够执行对第1动作运算程序234-1与第2动作运算程序234-2两者提供指示的用户程序236、以及第1动作运算程序234-1的情况。
即,在图7(a)所示的例子中,第1控制程序230-1包含用户程序236,所述用户程序236包含对第1动作运算程序234-1提供其执行所需的指示的命令、以及对第2动作运算程序234-2提供其执行所需的指示的命令。
根据图7(a)所示的实施方式,无论在第1动作运算程序234-1的哪个 执行循环中,都能够从用户程序236提供新的指示。从而,能够迅速地对动作控制反映对于执行中的电动机的运动变更的指示等。另外,在第2动作运算程序234-2的执行循环的途中对第2动作运算程序234-2提供的指示,在第2动作运算程序234-2的下一个执行循环中被反映。此外,根据图7(a)所示的实施方式,能够将用户程序236汇集为一个程序,因此其设计变得容易。
(g2:仅第2控制程序包含用户程序的情况)
参照图7(b),说明仅在第2控制程序230-2中包含用户程序236的方式。该图7(b)所示的实施方式是适合以下情况的实施方式:在期望的控制循环时间内,除了第1动作运算程序234-1的执行时间的、能够对用户程序236的执行分配的时间少。
即,在图7(b)所示的例子中,第2控程序230-2包括用户程序236,所述用户程序236包括对第1动作运算程序234-1提供其执行所需的指示的命令、以及对第2动作运算程序234-2提供其执行所需的指示的命令。
根据图7(b)所示的实施方式,能够将控制循环时间缩短至足以执行第1动作运算程序234-1的时间。其中从用户程序236至第1动作运算程序234-1的指示只能以第2控制程序230-2的执行循环的周期提供。但是,动作运算程序234若从用户程序236一旦接受例如“从坐标A以速度V移动至坐标B”的指示而成为有效状态,则该指示的执行完成为止,无来自用户程序236的指示,能够在每个执行循环算出动作指令值数据。从而,在这样的指示的执行途中,无需提供中止电动机的运动的指示或变更为其他的运动的指示而迅速反应的情况下,采用图7(b)所示的实施方式也无妨。根据该实施方式,能够进一步将用户程序236汇集为一个,因此其设计变得容易。
(g3:第1和第2控制程序两者包含用户程序的情况)
参照图7(c),说明第1控制程序230-1和第2控制程序230-2分别包含用户程序236-1和236-2的方式。即,在图7(c)所示的例子能够,作为用户程序236,包括第1用户程序236-1与第2用户程序236-2,所述第1用户程序236-1包含用于对第1动作运算程序234-1提供其执行所需的指示的命令,所述第2用户程序236-2包含用于对第2动作运算程序234-2提供其执行所需的指示的命令。第1控制程序230-1包含第1用户程序236-1,第2控制程序230-2包含第2用户程序236-2。
根据图7(c)所示的实施方式,使第1控制程序230-1包含的第1用户 程序236-1无需进行与提供对于第2动作运算程序234-2的指示的情况有关的处理,因此能够相对地缩短执行时间。从而,能够相对地缩短作为能够执行第1用户程序236-1与第1动作运算程序234-2的时间的控制循环时间。此外,无论在第1动作运算程序234-1和第2动作运算程序234-2的哪个执行循环,能够从用户程序236-1与236-2分别提供新的指示。
<H.处理步骤>
接着,说明通过PLC1的微处理器100执行系统程序210而实现的处理。
图8是表示本发明的实施方式的CPU单元的微处理器100执行系统程序210而实现的处理的步骤的流程图。另外,图8所示的流程图更详细地表示图5所示的流程图所示的步骤S6~S16的处理。
参照图8,微处理器100等待控制循环开始的中断信号(步骤S100)。若接受控制循环开始的中断信号(步骤S100:是),则微处理器100将第1控制程序230-1生成的输出数据从第1控制程序230-1的作业区域(控制程序的作业区域1042的一部分)复制到发送缓冲器(PLC系统总线发送缓冲器1043和/或现场网络发送缓冲器1045)(步骤S102)。
接着,微处理器100判断第2控制程序230-2的执行循环是否从该控制循环开始(步骤S104)。当第2控制程序230-2的执行循环从该控制循环开始的情况下(步骤S104:是),微处理器100将第2控制程序230-2生成的输出数据从第2控制程序230-2的作业区域(控制程序的作业区域1042的一部分)复制到发送缓冲器(PLC系统总线发送缓冲器1043和/或现场网络发送缓冲器1045),并将第2控制程序230-2的当前状态设定为“执行前”(步骤S106)。
另外,本实施方式的系统程序210包含用于在应执行预先决定的处理的执行循环内,监视是还没有开始处理的状态即“执行前”、在该执行循环内正在进行处理的“执行中”、以及在该执行循环内已经完成处理的“执行结束”中的哪一个的执行状态的命令。
当第2控制程序230-2的执行循环并没有从该控制循环开始的情况下(步骤S104:否),跳过步骤S106的处理。
接着,微处理器100对通信电路(PLC系统总线控制器120和/或现场网络控制器140)指示发送执行(步骤S108)。响应于该发送执行的指示,通信电路(PLC系统总线控制器120和/或现场网络控制器140)发送在发送缓冲器(PLC系统总线发送缓冲器1043和/或现场网络发送缓冲器1045)中存储 着的输出数据。
此后,微处理器100等待来自通信电路(PLC系统总线控制器120和/或现场网络控制器140)的接收完成通知(步骤S110)。
若接受来自通信电路的接收完成通知(步骤S110:是),则微处理器100将存储在接收缓冲器(PLC系统总线接收缓冲器1044和/或现场网络接收缓冲器1046)中的、第1控制程序230-1所使用的输入数据复制到第1控制程序230-1的作业区域(控制程序的作业区域1042的一部分)(步骤S112)。
接着,微处理器100判断第2控制程序230-2的执行循环是否从该控制循环开始(步骤S114)。当第2控制程序230-2的执行循环从该控制程序开始的情况下(步骤S114:是),微处理器100将存储在接收缓冲器(PLC系统总线接收缓冲器1044和/或现场网络接收缓冲器1046)中的、第2控制程序230-2所使用的输入数据复制到第2控制程序230-2的作业区域(控制程序的作业区域1042的一部分)(步骤S116)。
当第2控制程序230-2的执行循环没有从该控制循环开始的情况下(步骤S114:否),跳过步骤S116的处理。
接着,微处理器100开始执行第1控制程序230-1(步骤S118)。然后,微处理器100等待第1控制程序230-1的执行结束通知(步骤S120)。另外,在步骤S118中,通过开始执行第1控制程序230-1,由微处理器100执行的处理从系统程序210的处理切换到第1控制程序230-1的处理。即,在从第1控制程序230-1的执行开始至执行结束为止的期间,微处理器100不执行系统程序210。
若接受第1控制程序230-1的执行结束通知(步骤S120:是),微处理器100判断第2控制程序230-2的当前状态(步骤S122)。
当第2控制程序230-2的当前状态为“执行前”的情况下(步骤S122:“执行前”),微处理器100将第2控制程序230-2的当前状态设定为“执行中”,并开始执行第2控制程序230-2(步骤S124)。然后,处理进入步骤S130。
当第2控制程序230-2的当前状态为“执行中”的情况下(步骤S122:“执行中”),微处理器100开始执行第2控制程序230-2的未执行的部分(步骤S126)。然后,处理进入步骤S130。
当第2控制程序230-2的当前状态为“执行结束”的情况下(步骤S122:“执行结束”),处理进入步骤S134。
若在步骤S124或S126中,开始执行第2控制程序230-2,则微处理器100等待第2控制程序230-2的执行结束通知、或者下一个控制循环开始的中断信号(步骤S130)。另外,通过在步骤S124或S126中开始执行第2控制程序230-2,从而通过微处理器100执行的处理从系统程序210的处理切换为第2控制程序230-2的处理。即,在从第2控制程序230-2的执行开始至执行结束为止的期间,微处理器100不执行系统程序210。然后,若在第2控制程序230-2的执行结束之前有下一个控制循环开始的中断,则实时OS200使微处理器100中的第2控制程序230-2的执行中断,并使系统程序210的执行再开始。或者,若有第2控制程序230-2的执行已经结束的通知(第2控制程序230-2的执行结束通知),则微处理器100中的执行对象从第2控制程序230-2返回系统程序210。
若接受第2控制程序230-2的执行结束通知(步骤S130:“执行结束通知”),则微处理器100将第2控制程序230-2的当前状态设定为“执行结束”(步骤S132)。然后,处理进入步骤S134。
在步骤S134中,微处理器100等待下一个控制循环开始的中断信号(步骤S134)。若接受控制循环开始的中断(步骤S134:是),则再次执行步骤S102以下的处理。
另一方面,若在第2控制程序230-2的执行结束通知之前接受控制循环开始的中断(步骤S130:“控制循环开始”),则在微处理器100中正在执行的第2控制程序230-2被中断,微处理器100再次执行步骤S102以下的处理。
图8所示的处理步骤能够如下总结。
即,本实施方式的控制程序230包含第1控制程序230-1以及第2控制程序230-1(参照图7)。然后,第1控制程序230-1包含第1动作运算程序234-1,所述第1动作运算程序234-1生成用于控制电动机的运动的第1动作指令值数据(输出数据)。此外,第2控制程序230-2包含第2动作运算程序234-2,所述第2动作运算程序234-2生成用于控制电动机的运动的第2动作指令值数据(输出数据)。
而且,第1控制程序230-1和第2控制程序230-2中的至少一个,包含用户程序236(在图7(c)中是236-1以及236-2),所述用户程序236包含对根据用户的控制目的而生成的第1动作运算程序234-1与第2动作运算程序234-1提供其执行所需的指示的命令。
本实施方式的系统程序210包括第1执行控制命令(参照图6)以及第2执行控制命令(参照图6),所述第1执行控制命令使微处理器100在与控制循环的周期相同周期的每一个第1执行循环开始执行第1控制程序230-1,所述第2执行控制命令使微处理器100在控制循环的周期的2以上的整数倍的周期的每个第2执行循环开始执行第2控制程序230-2。
第2执行控制命令包含以下命令:使微处理器100在第2执行循环开始的控制循环中,在第1控制程序230-1的执行结束后开始执行第2控制程序230-2,且若第2控制程序230-2的执行在该控制循环结束之前未结束,则在下一个控制循环中,在第1控制程序230-1的执行结束后,开始执行第2控制程序230-2的未执行的部分(参照图6)。
<I.支持装置>
接着,说明用于进行在PLC1中执行的程序的生成以及PLC1的维护等的PLC支持装置8。
图9是表示连接到本发明的实施方式的CPU单元而使用的PLC支持装置8的硬件结构的示意图。参照图9,典型地,PLC支持装置8由通用的计算机构成。另外,从维护性的观点出发,优选可移动性良好的笔记本型的个人计算机。
参照图9,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利用通用的计算机而实现,因此不再进行进一步的详细的说明。
图10是表示连接到本发明的实施方式的CPU单元而使用的PLC支持装 置8的软件结构的示意图。参照图10,在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的功能。在该仿真时,代替CPU单元13的系统程序中包含的时序命令运算程序232以及动作运算程序234,使用在PLC支持程序320中包含的仿真用时序命令运算程序324以及仿真用动作运算程序325。
通信程序326提供对PLC1的CPU13转发用户程序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。
<J.优点>
在本实施方式,在具有动作控制功能的PLC中,为了需要高速处理的一部分动作控制处理,确保较短的周期的执行循环,并能够以一定周期还执行除此之外的动作控制处理。
例如,当控制对对象物进行切削加工的加工机的情况下,能够以短的周期执行与刃具的运动控制有关的高速且高精度的控制所需的动作控制处理,且与对于加工机的对象物的搬入、搬出有关的不那么需要高速性的动作控制处理也能够以一定周期执行。
应该认为本次公开的实施方式在其所有方面仅仅是例示,并非是限制性的。本发明的范围并不是由上述的说明来表示,而是由权利要求书来表示,与权利要求书等同意思以及范围内的全部的变更均包含在本发明的范围内。
标号说明
1 PLC、2现场网络、3伺服电动机驱动器、4伺服电动机、5终端、6检测开关、7继电器、8PLC支持装置、9CD-ROM、10连接电缆、11PLC系统总线、12电源单元、13CPU单元、14、53IO单元、15特殊单元、51终端总线、52通信耦合器、81CPU、83RAM、85键盘、86鼠标、87监视器、88驱动、100微处理器、102芯片组、104主存储器、106非易失性存储器、108系统定时器、110USB连接器、120PLC系统总线控制器、122DMA控制电路、124PLC系统总线控制电路、126、146缓冲存储器、130连接器、140现场网络控制器、142DMA控制电路、144现场网络控制电路、210、220系统程序、212调度器程序、214输出处理程序、216输入处理程序、218IO处理程序、230控制程序、230-1第1控制程序、230-1第2控制程序、232时序命令运算程序、234动作运算程序、234-1第1动作运算程序、234-2第2动作运算程序、236用户程序、236-1第1用户程序、236-2第2用户程序、320支持程序、321编辑器程序、322编译器程序、323调试器程序、324仿真用时序命令运算程序、325仿真用动作运算程序、326通信程序、330源程序、340用户程序、1041程序区域、1042控制程序的作业区域、1043PLC系统总线发送缓冲器、1044PLC系统总线接收缓冲器、1045现场网络发送缓冲器、1046现场网络接收缓冲器、200实时OS、SYS系统。
Claims (5)
1.一种PLC的CPU单元,用于控制控制对象,所述CPU单元包括:
微处理器;
存储部件;以及
通信电路,
所述PLC的CPU单元被构成为,通过重复输出数据的发送、输入数据的接收、以及使用所述输入数据生成所述输出数据的控制程序的执行,从而控制控制对象,
所述通信电路以控制循环的周期发送所述输出数据并接收所述输入数据,
所述存储部件用于存储系统程序以及所述控制程序,
所述微处理器执行基于所述系统程序的处理以及基于所述控制程序的处理,其中,基于所述控制程序的处理包含第1控制处理以及第2控制处理,基于所述系统程序的处理包括第1执行控制处理以及第2执行控制处理,
所述微处理器包括:
执行包含第1动作运算处理的所述第1控制处理的部件,其中所述第1动作运算处理生成用于控制电动机的运动的第1运作指令值数据;
执行包含第2动作运算处理的所述第2控制处理的部件,其中所述第2动作运算处理生成用于控制电动机的运动的第2运作指令值数据;
执行所述第1执行控制处理,使得在与所述控制循环的周期相同周期的每个第1执行循环开始执行所述第1控制处理的部件;以及
执行所述第2执行控制处理,使得在所述控制循环的周期的2以上的整数倍的周期的每个第2执行循环开始执行所述第2控制处理,且在所述第2执行循环开始的所述控制循环中,使所述第1控制处理结束后开始所述第2控制处理,若在该控制循环结束之前所述第2控制处理未结束,则在下一个控制循环中在所述第1控制处理结束后开始所述第2控制处理的未执行的部分的部件,
其中,第1控制处理以及第2控制处理中的至少一个包含根据用户的控制目的为所述第1动作运算处理以及所述第2动作运算处理提供其所需的指示的处理。
2.如权利要求1所述的PLC的CPU单元,其中,
所述微处理器包括在所述第1动作运算处理处于有效状态的期间,在每个所述第1执行循环,使要发送的所述输出数据中包含通过所述第1动作运算处理的执行而被更新的所述第1动作指令值数据的部件;以及
在所述第2动作运算处理处于有效状态的期间,至少在每个所述第2执行循环,使要发送的所述输出数据中包含通过所述第2动作运算处理的执行而被更新的所述第2动作指令值数据的部件。
3.如权利要求1或2所述的PLC的CPU单元,其中,
所述第1控制处理包含根据用户的控制目的为所述第1动作运算处理以及所述第2动作运算处理提供其所需的指示的处理,所述根据用户的控制目的为所述第1动作运算处理以及所述第2动作运算处理提供其所需的指示的处理包含对所述第1动作运算处理提供其执行所需的指示的处理、以及对所述第2动作运算处理提供其执行所需的指示的处理。
4.如权利要求1或2所述的PLC的CPU单元,其中,
所述第2控制处理包含根据用户的控制目的为所述第1动作运算处理以及所述第2动作运算处理提供其所需的指示的处理,所述根据用户的控制目的为所述第1动作运算处理以及所述第2动作运算处理提供其所需的指示的处理包含对所述第1动作运算处理提供其执行所需的指示的处理、以及对所述第2动作运算处理提供其执行所需的指示的处理。
5.如权利要求1或2所述的PLC的CPU单元,其中,
所述根据用户的控制目的为所述第1动作运算处理以及所述第2动作运算处理提供其所需的指示的处理包含对所述第1动作运算处理提供其执行所需的指示的处理以及对所述第2动作运算处理提供其执行所需的指示的处理,
所述第1控制处理包含对所述第1动作运算处理提供其执行所需的指示的处理,
所述第2控制处理包含对所述第2动作运算处理提供其执行所需的指示的处理。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011056776A JP4752984B1 (ja) | 2011-03-15 | 2011-03-15 | Plcのcpuユニット、plc用のシステムプログラムおよびplc用のシステムプログラムを格納した記録媒体 |
JP2011-056776 | 2011-03-15 | ||
PCT/JP2011/056777 WO2012124141A1 (ja) | 2011-03-15 | 2011-03-22 | Plcのcpuユニット、plc用のシステムプログラムおよびplc用のシステムプログラムを格納した記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102792237A CN102792237A (zh) | 2012-11-21 |
CN102792237B true CN102792237B (zh) | 2015-05-13 |
Family
ID=44597103
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180003420.XA Active CN102792237B (zh) | 2011-03-15 | 2011-03-22 | 可编程逻辑控制器的cpu单元 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP2515189B1 (zh) |
JP (1) | JP4752984B1 (zh) |
CN (1) | CN102792237B (zh) |
WO (1) | WO2012124141A1 (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4894961B1 (ja) * | 2011-03-15 | 2012-03-14 | オムロン株式会社 | Plcのcpuユニット、plc用システムプログラムおよびplc用システムプログラムを格納した記録媒体 |
JP6299064B2 (ja) * | 2013-01-25 | 2018-03-28 | オムロン株式会社 | 制御装置、制御方法、およびプログラム |
CN105122158B (zh) * | 2013-04-16 | 2017-12-22 | 西门子公司 | 具有短延迟时间的可编程控制装置 |
JP5957423B2 (ja) * | 2013-07-11 | 2016-07-27 | 株式会社日立製作所 | 制御コントローラおよびデータ制御方法 |
EP2902862A1 (en) | 2014-01-30 | 2015-08-05 | Omron Corporation | Control device and method for controlling motion of a machine, motion program and recording medium storing the same |
JP6626240B2 (ja) | 2014-03-13 | 2019-12-25 | オムロン株式会社 | コントローラ |
JP6540166B2 (ja) | 2015-03-31 | 2019-07-10 | オムロン株式会社 | 制御装置 |
JP2016194831A (ja) * | 2015-03-31 | 2016-11-17 | オムロン株式会社 | 制御装置 |
KR102079499B1 (ko) | 2015-10-20 | 2020-02-21 | 엘에스산전 주식회사 | Plc 위치 결정 시스템의 축별 제어주기 독립 할당 방법 |
JP6520759B2 (ja) * | 2016-02-26 | 2019-05-29 | オムロン株式会社 | プログラマブルコントローラ、プログラマブルコントローラの制御プログラム |
DE112017005554T5 (de) * | 2017-03-03 | 2019-07-11 | Mitsubishi Electric Corporation | Datenverarbeitungsgerät, Datenverarbeitungsverfahren, Einstellungsverwaltungsgerät und Datenverarbeitungssystem |
JP6919404B2 (ja) * | 2017-08-10 | 2021-08-18 | オムロン株式会社 | 制御装置 |
JP6950385B2 (ja) * | 2017-09-12 | 2021-10-13 | オムロン株式会社 | 制御装置および制御方法 |
JP6901430B2 (ja) * | 2018-04-09 | 2021-07-14 | ファナック株式会社 | 制御装置及び編集装置 |
KR102132857B1 (ko) * | 2018-05-03 | 2020-07-10 | 엘에스일렉트릭(주) | Plc의 모터 구동 제어 방법 |
JP7111038B2 (ja) * | 2019-03-15 | 2022-08-02 | オムロン株式会社 | 制御システム、中継装置、および中継プログラム |
WO2022185830A1 (ja) * | 2021-03-03 | 2022-09-09 | 村田機械株式会社 | モータシステム |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11219211A (ja) * | 1998-01-30 | 1999-08-10 | Yamazaki Mazak Corp | 数値制御工作機械及びその制御方法 |
JP2000020114A (ja) * | 1998-07-07 | 2000-01-21 | Yaskawa Electric Corp | モーションコントローラのプログラム作成および実行方法 |
JP2006048231A (ja) * | 2004-08-02 | 2006-02-16 | Denso Wave Inc | 制御装置及びコンピュータプログラム |
CN101165619A (zh) * | 2006-10-16 | 2008-04-23 | 欧姆龙株式会社 | 可编程逻辑控制器装置 |
CN101361094A (zh) * | 2005-11-15 | 2009-02-04 | 生活协同组合札幌 | 代码管理系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7038421B2 (en) * | 2003-06-17 | 2006-05-02 | International Business Machines Corporation | Method and system for multiple servo motor control |
JP2007140655A (ja) | 2005-11-15 | 2007-06-07 | Yaskawa Electric Corp | モーションコントローラ |
-
2011
- 2011-03-15 JP JP2011056776A patent/JP4752984B1/ja active Active
- 2011-03-22 CN CN201180003420.XA patent/CN102792237B/zh active Active
- 2011-03-22 WO PCT/JP2011/056777 patent/WO2012124141A1/ja active Application Filing
- 2011-03-22 EP EP11815839.3A patent/EP2515189B1/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11219211A (ja) * | 1998-01-30 | 1999-08-10 | Yamazaki Mazak Corp | 数値制御工作機械及びその制御方法 |
JP2000020114A (ja) * | 1998-07-07 | 2000-01-21 | Yaskawa Electric Corp | モーションコントローラのプログラム作成および実行方法 |
JP2006048231A (ja) * | 2004-08-02 | 2006-02-16 | Denso Wave Inc | 制御装置及びコンピュータプログラム |
CN101361094A (zh) * | 2005-11-15 | 2009-02-04 | 生活协同组合札幌 | 代码管理系统 |
CN101165619A (zh) * | 2006-10-16 | 2008-04-23 | 欧姆龙株式会社 | 可编程逻辑控制器装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2012194670A (ja) | 2012-10-11 |
EP2515189A4 (en) | 2014-02-26 |
EP2515189B1 (en) | 2017-05-10 |
CN102792237A (zh) | 2012-11-21 |
WO2012124141A1 (ja) | 2012-09-20 |
JP4752984B1 (ja) | 2011-08-17 |
EP2515189A1 (en) | 2012-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102792237B (zh) | 可编程逻辑控制器的cpu单元 | |
JP4894961B1 (ja) | Plcのcpuユニット、plc用システムプログラムおよびplc用システムプログラムを格納した記録媒体 | |
CN103403632B (zh) | 运算单元、辅助装置、输出控制方法、显示控制方法、以及程序 | |
CN103403631B (zh) | 可编程逻辑控制器的cpu单元 | |
CN103403630B (zh) | 运算单元、输出控制方法和程序 | |
CN103562807B (zh) | Plc的cpu单元、plc系统、plc辅助装置 | |
US9618924B2 (en) | CPU of PLC, system program for PLC, and recording medium storing system program for PLC | |
CN102792235B (zh) | 控制器支持装置、以及估计控制程序的执行时间的方法 | |
JP7189383B1 (ja) | 検証システムおよび検証方法 | |
US8977534B2 (en) | Controller support apparatus, controller support program executed on the apparatus, storage medium storing the program, and method of estimating execution time of control program | |
JP6299064B2 (ja) | 制御装置、制御方法、およびプログラム | |
JP6488830B2 (ja) | 制御装置 | |
US20080147206A1 (en) | Control system for Real Time Applications for Cooperative Industrial Robots | |
CN102870053B (zh) | 可编程控制器的cpu单元 | |
Berger | Automating with STEP 7 in STL and SCL: SIMATIC S7-300/400 programmable controllers | |
US9568905B2 (en) | CPU of PLC, system program for PLC, and recording medium storing system program for PLC | |
WO2012124145A1 (ja) | 演算ユニット、支援装置、支援プログラム、支援プログラムを格納した記憶媒体、および、支援装置における動作方法 | |
JP7231073B2 (ja) | 制御装置および制御システム | |
JP2004310437A (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 |