CN106020008B - 控制装置 - Google Patents
控制装置 Download PDFInfo
- Publication number
- CN106020008B CN106020008B CN201510811827.5A CN201510811827A CN106020008B CN 106020008 B CN106020008 B CN 106020008B CN 201510811827 A CN201510811827 A CN 201510811827A CN 106020008 B CN106020008 B CN 106020008B
- Authority
- CN
- China
- Prior art keywords
- program
- control
- communication
- control program
- data
- 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
- 230000006854 communication Effects 0.000 claims abstract description 109
- 238000004891 communication Methods 0.000 claims abstract description 102
- 230000015654 memory Effects 0.000 claims description 53
- 241001269238 Data Species 0.000 claims description 4
- 238000009432 framing Methods 0.000 claims 2
- 238000000034 method Methods 0.000 description 37
- 238000012545 processing Methods 0.000 description 37
- 238000004364 calculation method Methods 0.000 description 30
- 230000005540 biological transmission Effects 0.000 description 26
- 230000006870 function Effects 0.000 description 16
- 238000003860 storage Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013316 zoning Methods 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000004080 punching Methods 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000004092 self-diagnosis Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012559 user support system Methods 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/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0428—Safety, monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
- G06F13/128—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine for dedicated transfers to a network
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- 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/54—Interprogram communication
-
- 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/22—Pc multi processor system
- G05B2219/2205—Multicore
-
- 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/24—Pc safety
- G05B2219/24024—Safety, surveillance
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
- Multi Processors (AREA)
Abstract
提供一种控制装置,每当使用多内核处理器并行执行控制程序时,能够防止控制装置的通信冲突,进而能够以短周期来执行。以多个周期来周期性地执行控制程序。按照第一控制程序与第二控制程序的执行优先级,已使得与第一控制程序所相关的外部设备的通信的不产生冲突的方式,控制执行第二控制程序中的通信处理的时机。
Description
技术领域
本发明涉及针对为了控制机械或设备的动作而使用的控制装置,控制与连接到网络上的设备进行通信的处理。
背景技术
控制装置,针对用于对连接在网络上的继电器或促动器输出信号的IO单元,发送输出数据,并且接收外部设备的输入数据。基于输入数据来进行计算,从而计算输出数据。控制装置反复执行这一系列的动作,从而控制设备或机械。
这些控制装置所连接的现场网络存在多个种类。它们优选用于求出实时性的控制的领域。
例如在专利文献1中,公开了经由现场网络来控制机械的产业用计算机。产业用计算机具有用于控制周期性执行的通信的通信时序管理。通信时序管理,如果从程序接收到数据的发送要求,暂时包括其数据,控制利用规定时隙(timeslot)发送数据的时机,从而能够在多个周期的时机实现通信。
现有技术文献
专利文献
专利文献1:JP特开2010-224939公报
在从多个控制程序指示通信的情况下,在现场网络的通信主机中,物理的通信处理有可能发生冲突。考虑到这些通信冲突,引用文献的通信主机针对通过执行控制程序而输出的指令值,将发送的时机与控制程序的执行周期相对应关联,来决定通信的时序安排。
通过经由现场网络的通信,从外部设备读取输入数据,进行计算,通过通信将输出数据输出到外部设备,如果完成这一系列处理的时间能够缩短,则能够执行高精度的控制。
发明内容
为了解决上述课题,本发明的控制装置针对经由网络连接的装置,输出计算出的结果,从而进行控制,所述控制装置具有:微处理器,存储器,其用于存储多个控制程序以及***程序,通信控制器,其作为与所述网络进行通信的通信接口来进行动作;所述***程序包括时序管理程序,其用于控制使所述微处理器执行所述控制程序的时机,所述多个控制程序针对所述通信控制器而具有通信命令,所述通信命令使所述通信控制器针对经由所述网络连接的所述装置发送计算出的所述结果,所述微处理器并行执行所述多个控制程序;所述时序管理程序,每当并行执行的所述多个控制程序所含的通信命令被执行时,以使所述通信控制器中的通信处理不冲突的方式,来使微处理器发出通信命令。
本发明能够达到如下效果:每当使用多内核处理器并行执行控制程序时,能够防止控制装置的通信冲突,进而能够以短周期来执行。
附图说明
图1是表示组合了伺服马达与伺服马达驱动器的***例的图。
图2是表示CPU单元的硬件结构的图。
图3是表示本发明的实施方式的CPU单元所执行的软件结构的示意图。
图4是表示本发明的实施方式的控制装置的硬件结构的示意图。
图5是表示控制装置中的控制装置的设定步骤的一例的图。
图6是表示进行控制程序的设定的画面例的图。
图7是表示程序的分配设定的画面例的图。
图8是表示对控制程序分配的图片的图。
图9是表示第一~第三控制程序的执行时机的图。
其中,附图标记说明如下:
1、8 控制装置
14、53IO (Input/Output:输输入输出)单元
122、142DMA (Directional Memory Access:直接内存访问)控制回路
210、220 ***程序
214 输出处理程序
216 输入处理程序
230 控制程序
234 动作计算程序
236 用户程序
具体实施方式
<***结构>
本实施方式的控制装置,对机械或设备等的控制对象进行控制。本实施方式的控制装置作为其结构要素而包括CPU单元。CPU单元包括:微处理器、包括微处理器的主存储器在内的存储单元、通信回路(电路)。本实施方式的控制装置的CPU单元,反复执行输出数据的发送、输入数据的接收、用于使用输入数据生成输出数据的控制程序,从而来对控制对象进行控制。
存储单元存储控制程序以及***程序,该***程序用于控制该控制程序的执行以及控制输入数据以及输出数据的输入输出。微处理器执行存储在存储单元中的***程序以及控制程序。
通信回路发送输出数据以及接收输入数据。如后述,本实施方式的控制装置,具有以下回路来作为通信回路:第一通信回路,其通过控制装置***总线来进行输出数据的发送以及输入数据的接收;第二通信回路,其通过现场网络来进行输出数据的发送以及输入数据的接收。
首先,参照图1,来说明本实施方式的控制装置1的***结构。图是表示本发明的实施方式的控制装置***的概略结构的示意图。参照图1,控制装置***SYS包括:控制装置1、经由现场网络2而与控制装置1连接的伺服马达驱动器(伺服驱动器)3以及远程IO终端5、作为现场设备的传感器6以及继电器7。另外,在控制装置1中,经由连接电缆10等而连接控制装置8。
控制装置1包括:主要进行计算处理的CPU单元13、一个以上的IO单元14、特殊单元15。这些单元能够经由控制装置***总线11而相互交换数据。另外,在这些单元中,由电源单元12提供恰当电压的电源。此外,作为控制装置1而构成的各单元,是由控制装置制造商提供的,因此,控制装置***总线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(注册商标)、ProfinetIRT、MECHATROLINK(注册商标)-III、Powerlink、SERCOS(注册商标)-III、CIPMotion等,能够在其中采用任意的网络。进而,也可以采用产业用以太网(注册商标)以外的现场网络。例如,如果不进行动作控制,则可以使用DeviceNet、CompoNet/IP(注册商标)等。在本实施方式的控制装置***SYS中,典型的,在本实施方式中例示出作为产业用以太网(注册商标)的EtherCAT(注册商标)来作为现场网络2的结构。
此外,控制装置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终端5。远程IO终端5基本上与IO单元14同样地,进行一般的输入输出处理。更具体而言,远程IO终端5包括通信耦合器52和一个以上的IO单元53,该通信耦合器52用于利用现场网络2进行数据传送的处理。这些单元,经由远程IO终端总线51而能够相互交换数据。
在后面叙述控制装置支持装置8。
<CPU单元的硬件结构>
接下来,参照图2,说明CPU单元13的硬件结构。图2是表示本发明的实施方式的CPU单元13的硬件结构的示意图。参照图2,CPU单元13包括:微处理器100、微处理器100的处理器核心140、芯片组102、主存储器104、非易失性存储器106、***计时器108、通信控制器150、***总线控制器120、现场网络控制器140、USB连接器(未图示)。芯片组102与其它组成构件之间分别经由各种总线连接(结合)。
微处理器100以及芯片组102,典型的以通用的计算机体系结构为基准来构成。即,微处理器100解释并执行从芯片组102按照内部时钟而顺次供给的命令代码。芯片组102,在所连接的各种组成构件之间进行内部的数据交换,并且,生成微处理器100所需的命令代码。进而,芯片组102发挥高速缓存的功能,高速缓存由微处理器100进行计算处理而得的结果的数据等。
CPU单元13具有主存储器104以及非易失性存储器106来作为存储单元。
主存储器104是易失性的存储区域(RAM),对CPU单元13投入电源后,保存应该由微处理器100执行的各种程序。另外,主存储器104也用作由微处理器100执行各种程序时的工作用存储器。作为这样的主存储器104,可以使用DRAM(Dynamic Random Access Memory:动态随机存取存储器)、SRAM(Static Random Access Memory:静态随机存取存储器)这样的设备。
另一方面,非易失性存储器106以非易失的方式保存实时OS(Operating System:操作***)、控制装置1的***程序、用户程序、动作计算程序、***设定参数这样的数据。这些程序或数据,能够根据需要而复制到主存储器104中,能够由微处理器100访问。作为这样的非易失性存储器106,能够使用闪存器这样的半导体存储器。或者,能够使用磁盘这样的磁记录介质、DVD-RAM(Digital Versatile Disk Random Access Memory:数字多功能光盘-随机存取存储器)这样的光学记录介质等。
通信控制器典型的由FPGA(Field-Programmable Gate Array:即现场可编程门阵列)、ASIC(Application Specific Integrated Circuits:专用集成电路)等的硬件构成,能够经由芯片组来与主存储器之间收发数据。通信控制器具有用于与主存储器进行数据通信的存储器区域,针对后述的***总线控制器、现场网络控制器,传送从主存储器传送来的数据。另外,针对***总线控制器以及现场网络控制器发出命令,使它们将从主存储器传送来的数据发送出去。
通信控制器还具有***计时器108。***计时器108按照每个一恒定周期(规定周期)产生中断信号,将中断信号提供至该微处理器100。典型的,根据硬件的规格,能够以多个不同的周期来分别产生中断信号,但也能够设定为通过OS(Operating System:操作***)或BIOS(Basic Input Output System:基础输入输出***)等来以任意周期产生中断信号。利用该***计时器108产生的中断信号,能够实现后述那样的针对每个执行周期的控制动作。
作为通信回路,有***总线控制器120以及现场网络控制器140。这些通信回路进行输出数据的发送以及输入数据的接收。
此外,在CPU单元13自身具有IO单元14或伺服马达驱动器3的功能的情况下,本来由控制装置***总线控制器120进行的输出数据的发送以及输入数据的接收,变为将承担这些功能的部分作为通信对方(通信目标)而在CPU单元13的内部进行的发送以及接收。
通信控制器150控制经由控制装置***总线11的数据交换。更具体而言,包括***总线控制器120、DMA(Dynamic Memory Access:动态存储器存取)控制回路122、缓存(缓冲存储器)126。
缓存(缓冲区)126发挥发送缓存和接收缓存的功能,发送缓存用于对要经由控制装置***总线11而向其他单元输出的数据(以下也称为“输出数据”或“第一输出数据”)进行缓冲存储,接收缓存用于对经由控制装置***总线11而从其它单元输入的数据(以下也可称为“输入数据”或“第一输入数据”)进行缓冲存储。此外,通过微处理器100的计算处理而生成的第一输出数据,原本存在主存储器104中。并且,应该向特定单元传送的第一输出数据,被从主存储器104中读出,暂时保存在缓存126中。另外,从其它单元传送来的第一输入数据,被暂时保存在缓存126后,进而被转移至主存储器104。
DMA控制回路122从主存储器104向缓存126传送第一输出数据,以及从缓存126向主存储器104传送第一输入数据。
通信控制器,在与控制装置***总线11连接的其它单元之间,进行发送缓存126的第一输出数据的处理以及接收第一输入数据并将其存储在缓存126中的处理。典型的,***总线通信控制器提供控制装置***总线11中的物理层以及数据链路层的功能。
现场网络控制器140,控制经由现场网络2的数据交换。即,现场网络控制器140按照所用的现场网络2的规格,控制输出数据的发送以及输入数据的接收。如上述,本实施方式中采用按照EtheerCAT(注册商标)规格的现场网络2,因此,能够使用包括用于通常的以太网(注册商标)通信的硬件在内的现场网络控制器140。在EtheerCAT(注册商标)规格中,能够使用一般的以太网(注册商标)控制器,来实现按照通常的以太网(注册商标)规格的通信协议。其中,根据作为现场网络2而采用的产业用以太网(注册商标)的种类,也能够采用与通常通信协议不同的专用规格的通信协议所对应的特别规格的以太网(注册商标)控制器。另外,在采用产业用以太网(注册商标)以外的现场网络的情况下,能够使用与该规格对应的专用的现场网络控制器。
缓存发挥经由现场网络2向其它装置等输出数据(以下也称为“输出数据”或“第二输出数据”)的发送缓存以及经由现场网络2而从其它装置等输入(接收)数据(以下也称为“输入数据”或“第二输入数据”)的接收缓存的功能。微处理器100通过计算处理而生成的第二输出数据,原本被存储在主存储器104中。并且,应该向特定的装置传送的第二输出数据,被从主存储器104读出而暂时存储在通信回路缓存146中。另外,从其它装置传送来的第二输入数据暂时被保存在缓存146中,进而被转移至主存储器104。
DMA控制回路142从主存储器104向缓存传送第二输出数据,以及从缓存向主存储器104传送第二输入数据。
现场网络通信控制器144,在与现场网络2连接的其它装置之间,进行发送缓存的第二输出数据的处理以及接收第二输入数据并将其存储在通信回路缓存中的处理。典型的,现场网络通信控制器144提供现场网络2中的物理层以及数据链路层的功能。
USB连接器是用于对控制装置支持装置8与CPU单元13进行连接的接口。典型的,从控制装置支持装置8传送来的能够由CPU单元13的微处理器100执行的程序等,经由USB连接器110而被读入至控制装置1。
<C.CPU单元的软件结构>
接下来,参照图3,说明用于提供本实施方式的各种功能的软件群。这些软件所含的命令代码,在恰当时机被读出,由CPU单元13的微处理器100、处理器核心140执行。
图3是表示本发明的实施方式的CPU单元13所执行的软件结构的示意图。参照图3,作为CPU单元13所执行的软件,构成实时OS200、***程序210、用户程序236这三层。
实时OS200是根据CPU单元13的计算机体系结构而设计的,提供用于微处理器100执行***程序210以及用户程序236的基本执行环境。
***程序210是用于提供控制装置1的功能的软件群。具体而言,***程序210包括时序管理程序212、输出处理程序214、输入处理程序216、顺序命令计算程序(顺序计算程序)232、动作计算程序234、其它***程序220。此外,一般而言,输出处理程序214以及输入处理程序216被连续(作为一个整体)执行,因此,有时将这些程序统称为IO处理程序218。
用户程序236是根据用户的控制目的而作成的。即,是根据使用控制装置***SYS进行控制的对象的生产线(工序)等,任意设计的程序。
如后述,用户程序236与顺序命令计算程序232以及动作计算程序234联动,来实现用户的控制目的。即,用户程序236利用由顺序命令计算程序232以及动作计算程序234提供的命令、函数、功能模块等,来实现程序的动作。因此,有时将用户程序236、顺序命令计算程序232以及动作计算程序234统称为控制程序230。
这样,CPU单元13的微处理器100执行存储在存储单元中的***程序210以及控制程序230。
以下,详细说明各程序。
用户程序236如上述所述,是根据用户的控制目的(例如,对象的生产线或工序)而作成的。用户程序236,典型的,成为能够由CPU单元13的微处理器100执行的对象程序形式。在控制装置支持装置8等中,该用户程序236是对由梯形语言(ladder language)等记述的源程序进行编译而生成的。并且,所生成的对象程序形式的用户程序236被从控制装置支持装置8经由连接电缆10传送至CPU单元13,存储在非易失性存储器106等中。
时序管理程序212,针对输出处理程序214、输入处理程序216以及控制程序230,控制各执行循环主的处理开始以及处理中断后的处理重新开始。更具体而言,时序管理程序212控制用户程序236以及动作计算程序234的执行。
在本实施方式的CPU单元13中,采用与动作计算程序234相适合的一恒定周期(规定周期)的执行循环(控制循环),作为整个处理的通用循环。因此,在一个控制循环内,难以使全部处理执行结束,因此,根据应该执行的处理的优先级等,区分为在各控制循环中应该执行完的处理和也可以分配在多个控制循环中执行的处理。时序管理程序212管理这些区分后的处理的执行顺序等。更具体而言,时序管理程序212,在各控制循环期间内优先执行优先级高的程序。
输出处理程序214,将通过执行用户程序236(控制程序230)而生成的输出数据,重新配置成适于向通信控制器传送的形式。在***总线控制器120或现场网络控制器140需要来自微处理器100的用于进行发送的指示的情况下,输出处理程序214发出这样的指示。
输入处理程序216将由控制装置***总线控制器120以及/或现场网络控制器140接收的输入数据,重新配置成适于控制程序230使用的形式。
在由用户程序236使用的某种顺序命令被执行时,调用顺序命令计算程序232,用于实现其命令。
按照用户程序236的指示来执行动作计算程序234,按照用户程序236在每次执行时,计算要对伺服马达驱动器3或脉冲马达驱动器这样的马达驱动器输出的指令值。
通信程序,用于执行经由现场网络及***总线进行通信相关的处理。生成适于用后述的设定参数来在现场网络、***总线中发送的数据报文。另外,与时序管理程序、输出处理程序联动地,控制经由现场网络及***总线的数据发送的时机。
其它***程序220是图3中分别所示的程序以外的程序,总括表示用于实现控制装置1的各种功能的程序群。该程序例如使微处理器执行与机械的控制控制装置的通信、来自外部设备的要求的处理、自身诊断处理。另外,其它***程序还包括执行向外部存储介质传送主存储器的数据的处理、从外部存储介质读取数据的处理。
实时OS200,提供用于随着时间经过而且换执行多个程序的环境。在本实施方式的控制装置1中,作为将通过CPU单元13执行程序而生成的输出数据向其它单元或其它装置输出(发送)的事件(中断),初始设定有控制循环开始的中断。如果产生了控制循环开始的中断,则实时OS200将微处理器100中的执行对象,从在中断产生时点正在执行的程序切换为时序管理程序212。此外,在时序管理程序212以及控制执行时序管理程序212的程序都没有被执行的情况下,实时OS200执行包含在其它***程序210中的程序。作为这样的程序,例如包括在CPU单元13与控制装置支持装置8之间经由连接电缆10(USB)等进行通信处理相关的程序。
此外,控制程序230以及时序管理程序212,被存储在作为存储单元的主存储器104以及非易失性存储器106中。
<支持装置的硬件结构>
接下来,说明控制装置8,其用于生成由控制装置1执行的程序以及进行控制装置1的维护等。
图4是表示本发明的实施方式的控制装置8的硬件结构的示意图。参照图4,控制装置8典型的由通用的计算机构成。此外,从维护性的观点出发,优选便携性良好的笔记本型个人计算机。
参照图4,控制装置8包括:CPU81,其执行包括OS在内的各种程序;ROM(Read OnlyMemory:只读存储器)82,其存储BIOS、各种数据;存储器RAM83,其提供工作区域,用于存储由CPU81执行程序所需的数据;硬盘(HDD)84,其非易失的存储由CPU81执行的程序等。CPU81相当于控制装置8的计算部,ROM82、RAM83以及硬盘84相当于控制装置8的存储部。
控制装置8还包括用于接受用户操作的键盘85以及鼠标86、用于向用户提示信息的监视器87。进而,控制装置8包括用于与控制装置1(CPU单元13)等进行通信的通信接口(IF)89。
如后述,控制装置8所执行的各种程序被存储在CDROM9中流通。存储在该CD-ROM9中的程序,被CDROM(Compact Disk-Read Only Memory:光盘只读存储器)驱动器88读取,进而被存入硬盘(HDD)84等。或者,可以从上位的主计算机等通过网络来下载程序。
<控制程序>
在本实施方式中,控制程序为执行一系列动作的单位,包括顺序计算程序、动作计算程序,这些顺序计算程序、动作计算程序是随着执行IO处理程序、用户程序、用户程序的执行而执行的程序。
针对并行执行的程序进行编程,是需要由用户考虑到执行开始的时机或执行结束、数据的复制处理等的时机来进行的。
在本实施方式中,针对每个控制程序设定执行周期、所执行的优先级,为了能够以更短周期执行,设定使各个控制程序开始执行的时机、限制条件。时序管理程序按照控制程序的执行优先级、执行周期,来使微处理器执行控制程序。
第一控制程序是以最高优先级来周期性执行的,包括第一输出处理程序、第一输入处理程序在内,按顺序生成输出数据、读入输入数据、执行所分配的第一用户程序、执行第一动作计算程序、计算针对马达的指令值。
第二控制程序是以仅次于第一控制程序的优先级来周期性执行的,包括第二输出处理程序、第二输入处理程序在内,按顺序生成输出数据、读入输入数据、执行所分配的第二用户程序、执行第二动作程序。
第三控制程序是以恒定周期来周期性地执行的。第三控制程序,是以上述的第一控制程序执行读入输出数据或输入数据为前提的。具体而言,是接受通过第一控制程序的IO刷新来读入的输入数据交接,在每个所设定的周期生成输出数据的控制程序。
第三控制程序是适合于如下情形的程序:为了缩短第一控制程序的执行周期,将包括在第一控制程序中且可能会以稍长周期执行的控制程序分配给该第三控制程序。第四控制程序仅由用户程序构成。第四控制程序与高速控制计算无关,而用于描述通信处理、备份处理等。
接下来,示出使用控制器支持装置来在控制装置中进行编程的步骤。图5示出控制装置中的控制装置的设定步骤的一例。
在步骤S(STEP)1中,确定经由现场网络或***总线连接的设备。具体而言,设定用于对与现场网络乃至***总线连接的设备进行通信的信息。虽未图示,也可以自动地与经由现场网络或***总线连接的设备进行通信,取得经由现场网络或***总线连接的设备、连接顺序等的信息。
在步骤S2中,用户使用控制器支持装置,如上述那样配合控制目的来生成用户程序。所生成的程序,使用在步骤S1登录的从与现场网络乃至***总线连接的设备输入的数据,执行顺序计算、动作计算,生成输出数据。该用户程序也可以分割为多个程序模块而生成。
在步骤S3中,用户进行控制程序的设定。配合用户的控制目的,设定用于执行控制程序的周期。
在步骤S4中,分别针对经由在步骤S1中设定的网络连接的设备,登录用于进行IO刷新的控制程序。图6表示用于进行控制程序的设定的画面例。分别针对与现场网络乃至***总线连接的设备,登录用于进行IO刷新(IOrefresh)的控制程序。以一览方式显示控制对象设备,同时显示单元名称。以下拉式菜单形式使用户选择分别针对各设备进行IO刷新的控制程序。
在步骤S5中,将所生成的用户程序分配给控制程序。图8表示对控制程序分配的图(Image)。图7中,分别针对控制程序,将所生成的用户程序(Program0-Program6)分配给控制程序。在将多个用户程序分配给控制程序的情况下,登录用户程序的执行顺序。在图7的例子中,对第一控制程序分配用户程序Program0、Program2。在第二控制程序中,分配有用户程序Program4、Program5、Program6。在第三控制程序中,分配有Program1。
通过上述的操作,针对每个控制程序,生成所执行的周期、设定参数和包括所执行的用户程序在内的控制程序,该设定参数表示通过控制程序所含的IO控制程序进行数据交换的设备。控制装置的时序管理程序,参照传送来的设定参数,参照控制程序的执行周期等,控制开始或结束执行程序的时机。另外,在本实施方式中的控制程序的执行周期,成为经由现场网络乃至***总线而与外部设备进行通信(IO刷新)的周期,因此,基于设定参数,通信程序确定以通信周期以及该周期进行IO刷新的对象和设备。
<第一实施方式>
控制程序的并行执行与通信的冲突
图8是表示控制程序执行的通信的时序安排的图。时序管理程序监视计时器的时刻,如果检测到规定时刻到来,则使微处理器的第一核心开始并行执行第一控制程序、第二控制程序。
发出这样的命令:该命令用于,按照第一控制程序的第一输出处理程序的命令,从主存储器上读出与第一控制程序相关的输出数据,将其传送至通信控制器的缓存,并且指定由通信控制器发送输出数据的时刻(1)。在此,在括号内的数字表示图中圆圈中的数字。以下相同。
通信控制器,针对接收到的第一控制程序的输出数据,如果达到所指定的时刻,则经由现场总线控制器、***总线控制器,向外部设备发送输出数据(1’)。
通信控制器,通过经由现场网络、***总线的通信,从外部设备接收输入数据。将所接收到的输入数据从缓存发送至主存储器上的通信缓存(2’)。如果从通信控制器发送结束,则按照第一输入处理程序的命令,从主存储器上的通信缓存向计算区域复制(2)。
按照第一用户程序的命令,微处理器的第一核心利用复制到计算区域中的输入数据、存储在第一用户程序的工作区域中的输入数据,来进行顺序计算,将输出数据存储至通信缓存。另外,利用输入数据进行计算,计算出输出的动作控制用数据。将计算出的动作控制用数据传送至动作控制程序进行工作的区域。
按照第一动作计算程序的命令,微处理器的第一核心利用第一动作计算程序来进行计算,计算与第一控制程序的控制周期对应的用于向马达发送的指令值,从而计算出输出数据。将输出数据传送至用于对通信控制器进行传送的缓存区域。按照对第一控制程序设定的周期来执行这一系列的动作。
发出这样的命令:该命令用于,按照第二控制程序的第二输出处理程序的命令,从主存储器上读取与第二控制程序相关联的输出数据,将其传送至通信控制器的缓存,并且指定由通信控制器发送与第二控制程序相关联的输出数据的时刻(3)。从该通信控制器进行发送的时刻,被设定为通信控制器中的通信处理与第一控制程序所相关的输出数据的通信不会冲突的时刻。
每当计算发送时刻时,与通信程序联动地,计算通信控制器中的第一控制程序相关的输出数据的发送、输入数据的接收结束的时刻。基于通信线路长度或所发送的数据量而预先决定,计算出经由现场网络及***总线进行通信的时刻。
关于与第一控制程序相关的输出数据的发送、输入数据的接收,可以预先决定频带空闲的时刻。
通信控制器,针对所接收的第二控制程序的输出数据,如果到达了所指定的时刻,则经由现场总线控制器、***总线控制器,向外部设备发送输出数据(3’)。
通信控制器,通过经由现场网络、***总线的通信,从外部设备接收第二控制程序相关的输入数据。将所接收的输入数据从缓存发送至主存储器上的通信缓存(4’)。如果从通信控制器发送结束,按照第一输入处理程序的命令,从主存储器上的通信缓存向计算区域复制(4)。
按照第二动作计算程序的命令,微处理器的第二核心利用存储在第二用户程序的工作区域中的输入数据,进行顺序计算,将输出数据存储至通信缓存。另外,利用输入数据进行计算,计算所输出的动作控制用数据。将计算出的动作控制用数据传送至由动作控制程序进行工作的区域。
按照第二动作计算程序的命令,微处理器的第二核心利用第二动作计算程序来进行计算,计算出与第二控制程序的控制周期对应的用于向马达发送的指令值,从而计算出输出数据。将输出数据传送至用于对通信控制器进行传送的缓存区域。
在图中的例子中,以第一控制程序所执行的周期的两倍周期来执行第二控制程序。不限于该例子,也可以以第一控制程序的执行周期的多倍周期来执行第二控制程序,也可以以与第一控制程序的执行周期相同的周期来执行第二控制程序。
通过这样构成,在并行执行多个控制程序时,也能够避免通信控制器中的通信冲突。能够优先执行第一控制程序中的通信处理,能够进一步缩短从读入输入数据到发送输出数据为止的一系列的周期的时间。
就用户而言,根据控制目的,将想要以短周期执行的控制程序设定为第一控制程序,将能够长周期执行程序设定为第二控制程序,由此,不必特意顾及通信处理,就能够生成符合控制目的的程序。
<第二实施方式>
图9是用于说明每当执行第二控制程序时分帧发送的例子的图。如果检测到规定执行周期到来,则时序管理程序分别使第一核心以及第二核心开始并行执行第一控制程序、第二控制程序。第一控制程序的执行与第一实施方式相同,不重复说明。
在第二控制程序中,在经由现场网络、***总线进行通信的设备为多个时,有时会接收不完经由现场网络、***总线发送来的通信帧(也称为数据报文)。此时,按照输出处理程序的命令,与通信程序联动地,从主存储器上读出与第二控制程序相关联的输出数据,将其分成两个帧,分别将每个帧传送至通信控制器的缓存。另外,针对通信控制器发送用于指定每个帧的发送时刻的命令。
就通信控制器而言,如果到了与第二控制程序相关联的分割了输出数据的时刻,则从通信控制器进行发送。
每次计算发送时刻时,与通信程序联动地,将该时刻设定为不会妨碍第一控制程序的通信的时刻。
具体而言,根据所设定的第一控制程序的执行周期,来设定用于进行以下处理的时刻,这些处理包括:确定频带空闲的时刻的处理,根据电缆的总长度来确定所需的传播延迟时间的处理,确定要发送的帧的发送时刻的处理等。
通信控制器,如果到达了发送帧(1)(在此,括号内的数字表示图中圆圈内的数字。以下相同。)的时刻,经由现场网络、***总线来发送帧。具体而言,将输出数据发送至与现场网络连接的外部设备,将来自外部设备的输入数据存储至通信控制器的缓存。
通信控制器,如果到达了分割帧(2)的时刻,则经由现场网络、***总线来发送帧。具体而言,将输出数据发送至与现场网络连接的外部设备,将来自外部设备的输入数据存储至通信控制器的缓存。如果全部的输入数据被通信控制器缓存接收,则通信控制器将这些数据传送至主存储器上的通信缓存。
按照输入处理程序的命令,从主存储器上的通信缓存向第二用户程序的工作区域传送。
按照第二用户程序的命令,处理器的第二核心利用存储在第二用户程序的工作区域中的输入数据进行顺序计算,将输出数据存储至通信缓存。另外,利用输入数据进行计算,计算所输出的动作控制用数据。将计算出的动作控制用数据传送至由动作控制程序进行工作的区域。
按照第二动作计算程序的命令,微处理器的第二核心利用第二动作计算程序进行计算,计算出与第二控制程序的控制周期对应的用于向马达发送的指令值,从而计算出输出数据。将输出数据传送至用于对通信控制器进行传送的缓存区域。
Claims (1)
1.一种控制装置,针对经由网络连接的装置,输出计算出的结果,从而进行控制,所述控制装置的特征在于,具有:
微处理器,
存储器,其用于存储多个控制程序以及***程序,
通信控制器,其作为与所述网络进行通信的通信接口来进行动作;
所述***程序包括时序管理程序,其用于控制使所述微处理器执行所述控制程序的时机,
所述多个控制程序针对所述通信控制器而具有通信命令,所述通信命令使所述通信控制器针对经由所述网络连接的所述装置发送计算出的所述结果,
所述微处理器并行执行所述多个控制程序;
所述时序管理程序,每当并行执行的所述多个控制程序所含的通信命令被执行时,以分帧发送的方式,来使微处理器发出通信命令,
所述分帧发送的方式中,将所述多个控制程序的输出数据分成两个以上的帧,分别将每个所述帧发送给所述通信控制器,当所述通信控制器从所述装置接收到全部的与所述帧对应的输入数据时,将全部的所述输入数据发送给所述存储器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015074630A JP6488830B2 (ja) | 2015-03-31 | 2015-03-31 | 制御装置 |
JP2015-074630 | 2015-03-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106020008A CN106020008A (zh) | 2016-10-12 |
CN106020008B true CN106020008B (zh) | 2019-06-14 |
Family
ID=54843593
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510811827.5A Active CN106020008B (zh) | 2015-03-31 | 2015-11-20 | 控制装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10162673B2 (zh) |
EP (1) | EP3076297A3 (zh) |
JP (1) | JP6488830B2 (zh) |
CN (1) | CN106020008B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
LU93299B1 (de) * | 2016-11-10 | 2018-06-13 | Phoenix Contact Gmbh & Co Kg Intellectual Property Licenses & Standards | Ablaufsteuerung von Programmmodulen |
EP3439254B1 (en) * | 2017-08-01 | 2021-10-06 | Schneider Electric Industries SAS | A multiport device |
JP7059673B2 (ja) * | 2018-02-14 | 2022-04-26 | オムロン株式会社 | 制御装置、制御システム、制御方法、および、制御プログラム |
JP6911791B2 (ja) * | 2018-02-14 | 2021-07-28 | オムロン株式会社 | 制御装置、制御システム、制御方法、および、制御プログラム |
JP6981290B2 (ja) * | 2018-02-14 | 2021-12-15 | オムロン株式会社 | スレーブ装置、制御システム、レスポンスデータの通信方法、および、レスポンスデータの通信プログラム |
JP6927089B2 (ja) * | 2018-03-05 | 2021-08-25 | オムロン株式会社 | 制御装置、システムプログラム、制御方法 |
JP6787951B2 (ja) * | 2018-06-05 | 2020-11-18 | ファナック株式会社 | 数値制御装置 |
JP7141905B2 (ja) * | 2018-10-12 | 2022-09-26 | 株式会社日立産機システム | コントロール装置及びコントロール方法 |
EP3693816A1 (en) * | 2019-02-11 | 2020-08-12 | Siemens Aktiengesellschaft | System for validation of a control program |
JPWO2020166004A1 (ja) * | 2019-02-14 | 2021-02-18 | 三菱電機株式会社 | 制御システム、プログラマブルロジックコントローラ、方法、及びプログラム |
WO2021179222A1 (zh) * | 2020-03-11 | 2021-09-16 | 深圳市大疆创新科技有限公司 | 一种调度装置、调度方法、加速***及无人机 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103403631A (zh) * | 2011-03-15 | 2013-11-20 | 欧姆龙株式会社 | 可编程逻辑控制器的cpu单元、可编程逻辑控制器用***程序以及存储可编程逻辑控制器用***程序的记录介质 |
CN103403684A (zh) * | 2011-03-15 | 2013-11-20 | 欧姆龙株式会社 | 可编程逻辑控制器的cpu单元、可编程逻辑控制器用的***程序以及存储了可编程逻辑控制器用的***程序的记录介质 |
CN103430109A (zh) * | 2011-03-15 | 2013-12-04 | 欧姆龙株式会社 | 可编程控制器的cpu单元、可编程控制器用的***程序以及存储了可编程控制器用的***程序的记录介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7103646B1 (en) * | 1998-08-07 | 2006-09-05 | Hitachi, Ltd. | Distributed control system and information processing system |
JP4097891B2 (ja) * | 2000-11-27 | 2008-06-11 | 三菱電機株式会社 | Ieee1394を用いた同期システム |
US20030105799A1 (en) * | 2001-12-03 | 2003-06-05 | Avaz Networks, Inc. | Distributed processing architecture with scalable processing layers |
JP4876138B2 (ja) | 2009-03-24 | 2012-02-15 | 株式会社日立産機システム | 制御用計算機および制御システム |
JP4894961B1 (ja) * | 2011-03-15 | 2012-03-14 | オムロン株式会社 | Plcのcpuユニット、plc用システムプログラムおよびplc用システムプログラムを格納した記録媒体 |
US8706262B2 (en) | 2011-03-15 | 2014-04-22 | Omron Corporation | CPU unit of PLC, system program for PLC, and recording medium storing system program for PLC |
JP4752983B1 (ja) * | 2011-03-15 | 2011-08-17 | オムロン株式会社 | Plcのcpuユニット、plc用のシステムプログラムおよびplc用のシステムプログラムを格納した記録媒体 |
CN105122158B (zh) * | 2013-04-16 | 2017-12-22 | 西门子公司 | 具有短延迟时间的可编程控制装置 |
-
2015
- 2015-03-31 JP JP2015074630A patent/JP6488830B2/ja active Active
- 2015-11-20 CN CN201510811827.5A patent/CN106020008B/zh active Active
- 2015-11-25 EP EP15196274.3A patent/EP3076297A3/en not_active Withdrawn
- 2015-11-25 US US14/951,581 patent/US10162673B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103403631A (zh) * | 2011-03-15 | 2013-11-20 | 欧姆龙株式会社 | 可编程逻辑控制器的cpu单元、可编程逻辑控制器用***程序以及存储可编程逻辑控制器用***程序的记录介质 |
CN103403684A (zh) * | 2011-03-15 | 2013-11-20 | 欧姆龙株式会社 | 可编程逻辑控制器的cpu单元、可编程逻辑控制器用的***程序以及存储了可编程逻辑控制器用的***程序的记录介质 |
CN103430109A (zh) * | 2011-03-15 | 2013-12-04 | 欧姆龙株式会社 | 可编程控制器的cpu单元、可编程控制器用的***程序以及存储了可编程控制器用的***程序的记录介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3076297A3 (en) | 2016-10-26 |
US20160292004A1 (en) | 2016-10-06 |
JP6488830B2 (ja) | 2019-03-27 |
EP3076297A2 (en) | 2016-10-05 |
US10162673B2 (en) | 2018-12-25 |
CN106020008A (zh) | 2016-10-12 |
JP2016194830A (ja) | 2016-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106020008B (zh) | 控制装置 | |
CN106020009B (zh) | 控制装置 | |
CN110456707A (zh) | 控制装置 | |
CN103403633B (zh) | 可编程控制器的中央处理器单元 | |
US10082777B2 (en) | CPU unit for PLC, PLC-use system program, recording medium in which PLC-use system program is stored, PLC system, PLC support device, PLC support program, and recording medium in which PLC support program is stored | |
CN111034128B (zh) | 控制***以及控制装置 | |
JP5747584B2 (ja) | 制御装置およびシステムプログラム | |
US10908583B2 (en) | Safety control system and safety control unit | |
JP6299064B2 (ja) | 制御装置、制御方法、およびプログラム | |
JP5796311B2 (ja) | 制御装置およびシステムプログラム | |
JP2015122077A (ja) | 制御装置、コントローラ・システム、出力制御方法、およびプログラム | |
CN106165350A (zh) | 设计辅助装置、设计辅助方法及程序 | |
JP2016110458A (ja) | プログラマブル・ロジック・コントローラ、基本ユニット、制御方法およびプログラム | |
JP2018129923A (ja) | 制御システム、およびパルス出力装置 | |
US9568905B2 (en) | CPU of PLC, system program for PLC, and recording medium storing system program for PLC | |
JP5009625B2 (ja) | 連携して動作する異なる機器の作動方法及び装置 | |
WO2019082627A1 (ja) | 制御装置、制御装置の制御方法、情報処理プログラム、および記録媒体 | |
JP2007515003A5 (zh) | ||
JP2009181443A (ja) | 産業用コントローラ用機器 | |
JP5477647B2 (ja) | Modbus制御システム | |
US11269313B2 (en) | Controller and control system that stores data in current control cycle for output in next control cycle | |
JP4540637B2 (ja) | システムバスへのアクセス時間を制御するための方法および通信モジュール | |
US20190033834A1 (en) | Slave device, industrial network system, and method of controlling slave device | |
CN106200569B (zh) | 工厂监视控制***以及访问管理方法 | |
JP2005258828A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |