CN107544240A - 控制系统以及控制方法 - Google Patents
控制系统以及控制方法 Download PDFInfo
- Publication number
- CN107544240A CN107544240A CN201710516973.4A CN201710516973A CN107544240A CN 107544240 A CN107544240 A CN 107544240A CN 201710516973 A CN201710516973 A CN 201710516973A CN 107544240 A CN107544240 A CN 107544240A
- Authority
- CN
- China
- Prior art keywords
- controller
- itself
- output
- plc14
- control
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/052—Linking several PLC's
-
- 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/11—Plc I-O input output
- G05B2219/1105—I-O
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
- Safety Devices In Control Systems (AREA)
Abstract
本发明提供一种控制系统以及控制方法。PLC系统(10)具备将多个PLC(14n)中的各个PLC的控制对象(18n)与多个PLC(14n)相连接的多个I/O设备(16n)以及PC(12)。多个PLC(14n)中的各个PLC存储为了控制与自身连接的控制对象(18n)执行自身程序(Pn)而得到的第一输出数据,并且存储PC(12)或其他的PLC(14n)执行为了控制与自身连接的控制对象(18n)而分配给PC(12)或其他的PLC(14n)的其他程序(Pn)而得到的第二输出数据。多个PLC中的各个PLC基于从PC发送的选择信息,向与自身连接的I/O设备输出第一输出数据以及第二输出数据中的一方。
Description
技术领域
本发明涉及一种具备多个控制器以及控制并管理多个控制器的上位控制装置的控制系统以及控制方法。
背景技术
在日本特开2013-168090号公报中,公开了具备作为工业设备使用的多个PLC、管理多个PLC的共享服务器的多控制系统。该多个PLC分别经由I/O装置与PLC的控制对象连接。并且,多控制系统的共享服务器在检测出异常的PLC时,选定负载小的PLC,即还能追加执行程序的PLC。然后,选定的PLC加载被判断为异常的PLC执行的程序来代替异常的PLC执行程序。
发明内容
一般在PLC内的主存储器中存储I/O装置(I/O设备)的输入输出信号等数据。因此,当在某个PLC中发生了异常的情况下,在由其他的PLC继承发生了异常的PLC的控制对象的控制时,需要向与该控制对象相连接的I/O装置输出与到此为止的执行结果不产生矛盾的数据。因此,必须将存储在主存储器的数据直接复制到继承控制的其他PLC。
该输入输出信号等为数十万字节~数兆字节的大尺寸。因此,在从发生异常的PLC的主存储器经由Ethernet(注册商标)在其他的PLC中复制数据时,复制时间大幅超过PLC执行程序的一个执行周期。因此,无法继续进行控制对象的控制。另外,在PLC的控制部等中发生异常时,由于存储在主存储器的数据的可靠性也低,因此并不希望将该数据复制到其他的PLC来继续发生了异常的PLC的控制对象的控制。
因此,在上述日本特开2013-168090号公报所记载的技术中,在切换对控制对象进行控制的PLC时,无法避免控制对象的控制中断,或者将与到此为止的执行结果发生了矛盾的数据输出到控制对象的可能性。
因此,本发明的目的在于提供一种能够一边以稳定的状态继续控制对象的控制,一边切换控制对象的控制主体的控制系统以及控制方法。
本发明的第一方式的控制系统具备:多个控制器;将所述多个控制器中的各个控制器的控制对象与所述多个控制器中的各个控制器相连接,在所述控制对象和所述控制器之间传送需要的信息的多个I/O设备;以及控制并管理所述多个控制器的上位控制装置,所述上位控制装置具有:存储部,其存储所述多个控制器中的各个控制器执行的多个程序;处理器,其将在所述存储部中存储的所述多个程序作为自身程序分配给所述多个控制器,使得所述多个控制器中的各个控制器控制经由所述I/O设备与自身连接的所述控制对象,并且将所述多个程序的全部或一部分作为其他程序进一步分配给所述上位控制装置以及所述多个控制器,使得在一个执行周期内双重地并行执行在所述存储部中存储的所述多个程序的全部或一部分,所述多个控制器中的各个控制器具有通信部,该通信部具有:第一输入用缓冲存储器,其存储从经由所述I/O设备与自身连接的所述控制对象发送的输入数据;第一输出用缓冲存储器,其存储执行所述自身程序得到的第一输出数据,所述自身程序是为了控制经由所述I/O设备与自身连接的所述控制对象而分配给自身的程序;第二输出用缓冲存储器,其存储通过所述上位控制装置或其他的所述控制器执行所述其他程序而得到的第二输出数据,所述其他程序是为了控制经由所述I/O设备与自身连接的所述控制对象而分配给所述上位控制装置或其他的所述控制器的程序,所述多个控制器基于从所述上位控制装置发送的选择信息,向经由所述I/O设备与自身连接的所述控制对象输出在所述第一输出用缓冲存储器中存储的所述第一输出数据以及在所述第二输出用缓冲存储器中存储的所述第二输出数据中的一方。
通过该结构,即使在切换了对控制对象进行控制的控制主体时,也能够将与到此为止的执行结果不产生矛盾的输出数据输出到与该控制对象相连接的I/O设备。因此,能够一边以稳定的状态继续控制对象的控制,一边切换控制对象的控制主体。
本发明第一方式是所述控制系统,所述多个控制器中的各个控制器可以具有处理器,所述处理器基于从经由所述I/O设备与自身连接的所述控制对象发送的所述输入数据执行分配给自身的所述自身程序,由此生成所述第一输出数据,并且基于从经由所述I/O设备与其他的所述控制器相连接且通过分配给自身的所述其他程序进行控制的所述控制对象发送的所述输入数据执行分配给自身的所述其他程序,由此生成所述第二输出数据。由此,控制器能够基于控制对象发送的输入数据来执行程序(自身程序或其他程序),生成向发送了输入数据的控制对象输出的输出数据,能够以稳定的状态对控制对象进行控制。
本发明的第一方式是所述控制系统,所述上位控制装置的所述处理器可以基于从通过分配给自身的所述其他程序来控制的所述控制对象发送的所述输入数据执行分配给自身的所述其他程序,由此生成所述第二输出数据。由此,上位控制装置能够基于控制对象发送的输入数据执行其他程序来生成向发送了输入数据的控制对象输出的输出数据,并能够以稳定的状态对控制对象进行控制。
本发明的第一方式是所述控制系统,所述上位控制装置的所述处理器可以向所述多个控制器输出所述选择信息,使得判断为正常的所述控制器向经由所述I/O设备与自身连接的所述控制对象输出在所述第一输出用缓冲存储器中存储的所述第一输出数据,并使得判断为异常的所述控制器向经由所述I/O设备与自身连接的所述控制对象输出在所述第二输出用缓冲存储器中存储的所述第二输出数据。由此,即使在控制器中发生了异常时,也能够由代替判断为异常的控制器的其他正常的控制器控制与判断为异常的控制器连接的控制对象。因此,能够一边以稳定的状态继续与判断为异常的控制器连接的控制对象的控制,一边切换与判断为异常的控制器连接的控制对象的控制主体。
本发明的第一方式是所述控制系统,所述上位控制装置的所述处理器可以基于从所述多个控制器取得的所述多个控制器中的各个控制器的错误信息以及生存信号中的至少一方,判断所述多个控制器中的各个控制器是正常还是异常。由此,上位控制装置能够精度良好地判断控制器是正常还是异常。
本发明的第一方式是所述控制系统,所述控制器的所述通信部可以具有选择器,所述选择器基于所述选择信息,选择在所述第一输出用缓冲存储器中存储的所述第一输出数据以及在所述第二输出用缓冲存储器中存储的所述第二输出数据中的一方来作为向经由所述I/O设备与自身连接的所述控制对象输出的输出数据。由此,能够容易地切换向I/O设备输出的输出数据。
本发明的第一方式是所述控制系统,所述上位控制装置的所述处理器可以经由所述多个控制器的所述通信部取得负载信息,所述负载信息表示所述多个控制器中的各个控制器执行所述自身程序时的负载,基于取得的所述负载信息来分配所述其他程序。由此,能够分配其他程序使得多个控制器中的各个控制器的程序处理收纳在一个执行周期内。
本发明的第一方式是所述控制系统,所述上位控制装置可以接收经由所述I/O设备与通过分配给自身的所述其他程序进行控制的所述控制对象相连接的所述控制器的所述第一输入用缓冲存储器中存储的所述输入数据,并向经由所述I/O设备与通过分配给自身的所述其他程序进行控制的所述控制对象相连接的所述控制器发送所述第二输出数据。由此,上位控制装置能够向控制器发送与到此为止的执行结果不产生矛盾的第二输出数据,并能够控制经由I/O设备与PLC相连接的控制对象。
本发明的第一方式是所述控制系统,所述多个控制器中的各个控制器可以还具备:第二输入用缓冲存储器,其存储从经由所述I/O设备与其他的所述控制器相连接且通过分配给自身的所述其他程序进行控制的所述控制对象发送的所述输入数据;第三输出用缓冲存储器,其存储执行所述其他程序而得到的所述第二输出数据,所述其他程序是为了控制经由所述I/O设备与其他的所述控制器相连接的所述控制对象而分配给自身的程序,所述多个控制器中的各个控制器经由所述上位控制装置接收经由所述I/O设备与通过分配给自身的所述其他程序进行控制的所述控制对象相连接的其他的所述控制器的所述第一输入用缓冲存储器中存储的所述输入数据,并在所述第二输入用缓冲存储器中存储接收到的所述输入数据,并且经由所述上位控制装置向经由所述I/O设备与通过分配给自身的所述其他程序进行控制的所述控制对象相连接的其他的所述控制器发送在所述第三输出用缓冲存储器中存储的所述第二输出数据。由此,控制器能够向其他的控制器发送与到此为止的执行结果不产生矛盾的第二输出数据,并能够控制经由I/O设备与其他的控制器相连接的控制对象。
本发明的第二方式是一种控制系统的控制方法,所述控制系统具备多个控制器;将所述多个控制器中的各个控制器的控制对象与所述多个控制器中的各个控制器相连接,在所述控制对象和所述控制器之间传送需要的信息的多个I/O设备;以及控制并管理所述多个控制器的上位控制装置,所述上位控制装置具有存储部,该存储部存储所述多个控制器中的各个控制器执行的多个程序,所述多个控制器中的各个控制器具备通信部,该通信部具有第一输入用缓冲存储器、第一输出用缓冲存储器以及第二输出用缓冲存储器,所述控制方法包含:分配步骤,上位控制装置将在所述存储部中存储的所述多个程序作为自身程序分配给所述多个控制器,使得所述多个控制器中的各个控制器控制经由所述I/O设备与自身连接的所述控制对象,并且将所述多个程序的全部或一部分作为其他程序进一步分配给所述上位控制装置以及所述多个控制器,使得在一个执行周期内双重地并行执行在所述存储部中存储的所述多个程序的全部或一部分;第一输入存储步骤,所述多个控制器中的各个控制器在所述第一输入用缓冲存储器中存储从经由所述I/O设备与自身连接的所述控制对象发送的输入数据;第一输出存储步骤,所述多个控制器中的各个控制器在所述第一输出用缓冲存储器中存储执行所述自身程序而得到的第一输出数据,所述自身程序是为了控制经由所述I/O设备与自身连接的所述控制对象而分配给自身的程序;第二输出存储步骤,所述多个控制器中的各个控制器在所述第二输出用缓冲存储器中存储通过所述上位控制装置或其他的所述控制器执行所述其他程序而得到的第二输出数据,所述其他程序是为了控制经由所述I/O设备与自身连接的所述控制对象而分配给所述上位控制装置或其他的所述控制器的程序;以及输出步骤,所述多个控制器中的各个控制器基于从所述上位控制装置发送的选择信息,向经由所述I/O设备与自身连接的所述控制对象输出在所述第一输出用缓冲存储器中存储的所述第一输出数据以及在所述第二输出用缓冲存储器中存储的所述第二输出数据中的一方。
通过该结构,即使在切换了对控制对象进行控制的控制主体时,也能够将与到此为止的执行结果不产生矛盾的输出数据输出到与该控制对象相连接的I/O设备。因此,能够一边以稳定的状态继续控制对象的控制,一边切换控制对象的控制主体。
本发明的第二方式是控制方法,可以包含如下步骤:第一生成步骤,所述控制器基于从经由所述I/O设备与自身连接的所述控制对象发送的所述输入数据执行分配给自身的所述自身程序,由此生成所述第一输出数据;第二生成步骤,所述控制器基于从经由所述I/O设备与其他的所述控制器相连接且通过分配给自身的所述其他程序进行控制的所述控制对象发送的所述输入数据执行分配给自身的所述其他程序,由此生成所述第二输出数据;第三生成步骤,所述上位控制装置基于从通过分配给自身的所述其他程序来控制的所述控制对象发送的所述输入数据执行分配给自身的所述其他程序,由此生成所述第二输出数据。由此,控制器能够基于控制对象发送的输入数据来执行程序(自身程序或其他程序),生成向发送了输入数据的控制对象输出的输出数据,能够以稳定的状态对控制对象进行控制。另外,上位控制装置能够基于控制对象发送的输入数据来执行其他程序,生成向发送了输入数据的控制对象输出的输出数据,并能够以稳定的状态对控制对象进行控制。
本发明的第二方式是控制方法,所述通信部可以还具有选择器,所述控制方法还包含如下步骤:异常判断步骤,所述上位控制装置基于从所述多个控制器取得的所述多个控制器中的各个控制器的错误信息以及生存信号中的至少一方,判断所述多个控制器中的各个控制器是正常还是异常;选择输出步骤,所述上位控制装置向所述多个控制器输出所述选择信息,使得判断为正常的所述控制器向经由所述I/O设备与自身连接的所述控制对象输出所述第一输出用缓冲存储器中存储的所述第一输出数据,使得判断为异常的所述控制器向经由所述I/O设备与自身连接的所述控制对象输出所述第二输出用缓冲存储器中存储的所述第二输出数据;选择步骤,所述多个控制器中的各个控制器的所述通信部的所述选择器基于所述选择信息,选择所述第一输出用缓冲存储器中存储的所述第一输出数据以及所述第二输出用缓冲存储器中存储的所述第二输出数据中的一方来作为向经由所述I/O设备与自身连接的所述控制对象输出的输出数据。由此,上位控制装置能够精度良好地判断控制器是正常还是异常。另外,即使在控制器中发生异常时,也能够代替判断为异常的控制器由其他正常的控制器控制与判断为异常的控制器连接的控制对象。因此,能够一边以稳定的状态继续与判断为异常的控制器连接的控制对象的控制,一边切换与判断为异常的控制器连接的控制对象的控制主体。另外,通信部能够容易地切换向I/O设备输出的输出数据。
本发明的第二方式是控制方法,还可以包含取得步骤,所述上位控制装置经由所述多个控制器的所述通信部取得负载信息,所述负载信息表示所述多个控制器中的各个控制器执行所述自身程序时的负载,所述分配步骤基于取得的所述负载信息来分配所述其他程序。由此,能够分配其他程序,使得多个控制器中的各个控制器的程序处理收纳在一个执行周期内。
本发明的第二方式是控制方法,还可以包含如下步骤:接收步骤,所述上位控制装置接收在经由所述I/O设备与通过分配给自身的所述其他程序进行控制的所述控制对象相连接的所述控制器的所述第一输入用缓冲存储器中存储的所述输入数据;第一发送步骤,所述上位控制装置向经由所述I/O设备与通过分配给自身的所述其他程序进行控制的所述控制对象连接的所述控制器发送所述第二输出数据。由此,上位控制装置能够向控制器发送与到此为止的执行结果不产生矛盾的第二输出数据,并能够控制经由I/O设备与PLC连接的控制对象。
本发明的第二方式是控制方法,所述通信部还可以具有第二输入用缓冲存储器和第三输出用缓冲存储器,所述控制方法还包含如下步骤:第二输入存储步骤,所述多个控制器中的各个控制器在所述第二输入用缓冲存储器中存储从经由所述I/O设备与其他的所述控制器相连接且通过分配给自身的所述其他程序进行控制的所述控制对象发送的所述输入数据;第三输出存储步骤,所述多个控制器中的各个控制器在所述第三输出用缓冲存储器中存储执行所述其他程序而得到的所述第二输出数据,所述其他程序是为了控制经由所述I/O设备与其他的所述控制器连接的所述控制对象而分配给自身的程序;第二发送步骤,所述多个控制器中的各个控制器经由所述上位控制装置向经由所述I/O设备与通过分配给自身的所述其他程序进行控制的所述控制对象连接的其他的所述控制器发送在所述第三输出用缓冲存储器中存储的所述第二输出数据,在所述第二输入存储步骤中,所述多个控制器中的各个控制器经由所述上位控制装置接收经由所述I/O设备与通过分配给自身的所述其他程序进行控制的所述控制对象相连接的其他的所述控制器的所述第一输入用缓冲存储器中存储的所述输入数据,并在所述第二输入用缓冲存储器中存储接收到的所述输入数据。由此,控制器能够向其他的控制器发送与到此为止的执行结果不产生矛盾的第二输出数据,并能够控制经由I/O设备与其他控制器相连接的控制对象。
通过本发明,即使在切换了对控制对象进行控制的控制主体时,也能够将与到此为止的执行结果不产生矛盾的输出数据输出到与该控制对象相连接的I/O设备。因此,能够一边以稳定的状态继续控制对象的控制,一边切换控制对象的控制主体。
通过参照附图说明的以下的实施方式的说明,能够容易理解上述的目的、特征以及优点。
附图说明
图1是实施方式的PLC系统的整体概要结构图。
图2是图1所示的PC的概要结构图。
图3是图1所示的PLC的概要结构图。
图4是表示PLC系统的程序的分配动作的流程图。
图5表示对多个PLC中的各个PLC分配在图2所示的主存储器中存储的全部程序,使得多个PLC中的各个PLC控制与自身连接的I/O设备的例子。
图6是表示多个PLC中的各个PLC的自身程序(通过图5所示的分配而分配的自身程序)的执行(处理)的时序图。
图7表示对PC以及多个PLC分配了全部的程序,使得在一个执行周期内双重地并行执行在图2所示的主存储器中存储的全部程序的例子。
图8是表示多个PLC中的各个PLC的程序(通过图7所示的分配而分配的自身程序以及其他程序)的执行(处理)的时序图。
图9是表示图4的步骤S6的处理动作的子流程图。
图10是表示在多个PLC的一个PLC发生了异常时,作为替代由PC控制与发生了异常的PLC相连接的I/O设备的例子。
图11是图3所示的PLC的详细结构图。
图12是图2所示的PC的详细结构图。
图13是表示PC的选择信息的逻辑值的决定处理的流程图。
图14是表示用于正常的PLC与PC以及与正常的PLC相连接的I/O设备之间的数据的收发处理的时序图。
图15是表示用于异常的PLC与PC以及与异常的PLC相连接的I/O设备之间的数据的收发处理的时序图。
具体实施方式
对于本发明的控制系统以及控制方法,一边参照附图一边在以下详细地说明优选的实施方式。
图1是实施方式的PLC(控制器)系统10的整体概要结构图。PLC系统10具备上位控制装置即PC12、通过菊花链与PC12连接的多个(在本实施方式中为5个)PLC(可编程序逻辑控制器)14n(其中,n=1、2、…、5)、通过菊花链与多个PLC14n(PLC141~PLC145)中的各个PLC连接的多个I/O设备(外部信号输入输出设备)16n。另外,在多个I/O设备16n上连接了多个PLC14n的控制对象18n。即,多个I/O设备16n将多个PLC14n中的各个PLC的控制对象18n与多个PLC14n中的各个PLC相连接,在控制对象18n与PLC14n之间传送需要的信息(数据)。
在本说明中,通过161来表示与PLC141通过菊花链连接的多个I/O设备16n,同样地,通过162~165来表示与PLC142~145中的各个PLC通过菊花链连接的多个I/O设备16n。另外,通过181来表示与I/O设备161连接的控制对象18n,同样地,通过182~185来表示与I/O设备162~165连接的控制对象18n。因此,控制对象181经由I/O设备161与PLC141相连接,同样地,控制对象182~185经由I/O设备162~165与PLC142~145相连接。作为控制对象18n,例如举出电动机或泵等。
PC12、多个PLC14n以及多个I/O设备16n通过EtherCAT(注册商标)系统来连接。因此,PC12以及PLC14n在发送数据(信号)时,通过在帧中写入作为发送目的地的PC或PLC14n的地址信息和要发送的数据来进行发送。PC12在向PLC14n发送数据时,向在PC12的后级连接的PLC141发送写入了作为发送目的地的PLC14n的地址信息和要发送的数据的帧。PLC14n在从在前级连接的PC12或PLC14n发送来了帧时,基于帧中包含的地址信息来判断是否是发送给自身的帧。PLC14n在判断为发送来的帧是发送给自身的帧时,取入在帧中写入的数据,在判断为不是发送给自身的帧时,直接将发送来的帧发送到在后级连接的PLC14n。另外,从各PLC14n向PC12发送数据的情况也一样,PLC14n向在前级连接的PC12或PLC14n发送从后级发送来的发给PC12的帧。此外,经由PC12来进行与PLC14n之间的发送接收。例如,在PLC142向PLC144发送数据时,在暂时从PLC142向PC12发送了包含数据的帧后,从PC12发送到PLC144。
图2是PC12的概要结构图,图3是PLC14n的概要结构图。PC12具备CPU等处理器20、主存储器(存储部)22、通信部24。PLC14n具备CPU等处理器30、主存储器(存储部)32、通信部34。该多个PLC14n的通信部34与PC12的通信部24通过菊花链连接(参照图1)。PC12的主存储器22存储通过多个PLC14n中的各个PLC执行(处理)的多个程序Pn。该程序Pn是用于对控制对象18n进行控制的程序。在本说明中,通过P1表示用于控制经由I/O设备161与PLC141连接的控制对象181的程序Pn,同样地,通过P2~P5表示用于控制经由I/O设备162~165与PLC142~145连接的控制对象182~185的程序Pn。
PC12的处理器20将主存储器22中存储的多个程序Pn(P1~P5)分配给PC12以及多个PLC14n(PLC141~PLC145)。将分配的程序Pn加载到作为分配对象的PLC14n。即,处理器20经由通信部24发送程序Pn,作为分配对象的PLC14n的处理器30经由通信部34取得分配的程序Pn,并存储到主存储器32中。
以下,使用图4的流程图来详细说明PLC系统10的程序Pn的分配动作。
在PLC系统10启动时,或者在预定的定时,PC12的处理器20进行步骤S1的动作。处理器20在步骤S1中,将主存储器22中存储的多个程序Pn分配给多个PLC14n,使得多个PLC14n中的各个PLC控制经由I/O设备16n与自身连接的控制对象18n。以下,为了简化说明,有时将为了控制经由I/O设备16n与自身连接的控制对象18n而分配给PLC14n的程序Pn称为自身程序Pn。由此,如图5所示,对PLC141分配自身程序Pn即程序P1,同样地,对PLC142~PLC145分配自身程序P2~P5。多个PLC14n(PLC141~PLC145)在PLC14n的一个执行周期(以下称为一个执行周期)内完成自身程序Pn(P1~P5)的执行。
当这些程序Pn(P1~P5)的数据大小(步骤数)相互不同时,执行程序Pn花费的时间(执行时间、处理时间)以及负载(或者负载率)也相互不同。在图6所示的例子中,五个程序Pn(P1~P5)的执行时间以及负载(或负载率)具有P4<P1<P3=P5<P2的关系。将表示负载或负载率等的信息称为负载信息。此外,图6是表示多个PLC14n中的各个PLC的自身程序Pn(通过图5所示的分配而分配的自身程序Pn)的执行(处理)的时序图。
接着,PC12的处理器20如图5所示,将分配的多个自身程序Pn(P1~P5)加载到多个PLC14n(141~145)(步骤S2)。接着,多个PLC14n中的各个PLC的处理器30开始执行自身程序Pn(步骤S3),计算执行自身程序Pn的负载信息并将其发送到PC12的处理器20(步骤S4)。PC12的处理器20在从多个PLC14n(141~145)取得了全部的处理器30的负载信息时,使多个PLC14n(141~145)全部停止执行自身程序Pn(步骤S5)。处理器20经由通信部24、通信部34向全部PLC14n(141~145)的处理器30输出停止信号,由此使全部的PLC14n(141~145)的处理器30停止执行自身程序Pn。
处理器20基于在步骤S4中收集的全部PLC14n(141~145)的负载信息,将多个程序Pn的全部或一部分进一步分配给PC12以及多个PLC14n,使得在一个执行周期内双重地并行执行在主存储器22中存储的多个程序Pn的全部或一部分(步骤S6)。因此,对PLC14n分配用于控制经由I/O设备16n与自身连接的控制对象18n以外的控制对象18n,即经由I/O设备16n与其他的PLC14n连接的控制对象18n的程序Pn。另外,也有对PC12分配程序Pn的情况。此时,处理器20以同一PLC14n不双重地执行相同的程序Pn的方式来分配。以下为了简化说明,有时将为了控制经由I/O设备16n与其他PLC14n连接的控制对象18n而分配给PC12以及PLC14n的程序Pn称为其他程序Pn。
图7表示将全部的程序Pn(P1~P5)分配给PC12以及PLC14n,使得在一个执行周期内双重地并行执行在主存储器22中存储的全部程序Pn(P1~P5)的例子。另外,图8是表示多个PLC14n中的各个PLC的程序Pn(通过图7所示的分配而分配的自身程序Pn以及其他程序Pn)的执行(处理)的时序图。如图7所示,对PLC141还分配了其他程序P4,对PLC144还分配了其他程序P1。另外,对PC12分配了无法分配给PLC14n的其他程序P2、P3、P5。由于分配给PLC142、143、145的自身程序P2、P3、P5的负载(或负载率)高,因此不进一步分配别的其他程序Pn。之后会详细说明该其他程序Pn的分配。
接着,PC12的处理器20如图7所示,将分配给多个PLC14n(141、144)的其他程序Pn(P4、P1)加载到多个PLC14n(PLC141、PLC144)(步骤S7)。此外,可以将已分配的自身程序Pn再次记载到多个PLC14n,并且将分配的其他程序Pn加载到多个PLC14n。
然后,PC12以及多个PLC14n(141~145)执行分配的程序Pn(包含自身程序Pn以及其他程序Pn)(步骤S8)。此时,在图8中,PLC14n(141、144)在执行了自身程序Pn(P1、P4)后,执行其他程序Pn(P4、P1),但是执行的程序Pn的顺序也可以相反。
接着,详细说明步骤S6中的其他程序Pn的分配处理。在这里,将在一个执行周期内能够对PC12的处理器20施加的最大负载设为Lpmax,将在一个执行周期内能够对PLC14n的处理器30施加的最大负载设为Lmax。各PLC14n的处理器30的处理能力设为相同,使PC12的处理器20的处理能力高于PLC14n的处理器30的处理能力。因此,成为Lpmax>Lmax。另外,将执行程序Pn(P1~P5)施加的负载分别设为Ln(L1~L5),将PC12的处理器20的在一个执行周期施加的固有负载设为Lpc。该负载Ln(L1~L5)基于在图4的步骤S4收集到的各PLC14n的负载信息。此外,PLC14n的负载率是施加到PLC14n的负载除以最大负载Lmax而得到的值。例如,通过执行程序P1而施加的负载的负载率为L1/Lmax,同样地,通过执行程序P2~P5而施加的负载的负载率为L2/Lmax、L3/Lmax、L4/Lmax、L5/Lmax。
首先,考虑并行执行的程序Pn的优先顺序,从优先顺序高的程序Pn开始按顺序进行分配。在本实施方式中,优先顺序为P1→P2→P3→P4→P5,所以按照该顺序将程序Pn作为其他程序Pn分配给其他的PLC14n(141~145)。
图9是表示图4的步骤S6的处理动作的子流程图。首先,PC12的处理器20选择优先顺序最高的程序(步骤S11)。在本实施方式中,优先顺序为P1→P2→P3→P4→P5的顺序,所以在步骤S11中选择程序P1。
接着,处理器20使用在图4的步骤S4中收集到的各PLC14n的负载信息,计算PC12以及多个PLC14n(141~145)分别能够接受的负载(步骤S12)。该能够接受的负载是在一个执行周期内可进一步处理的负载。处理器20基于当前向PC12以及多个PLC14n(141~145)中的各个PLC分配的程序Pn,计算PC12以及多个PLC14n(141~145)分别能够接受的负载。在该定时,不存在分配给PC12的程序Pn,对多个PLC14n只分配了自身程序Pn。
因此,PC12能够接受的负载(以下,称为接受负载LLp)为LLp=Lpmax-Lpc。另外,PLC141能够接受的负载(以下,称为接受负载LL1)为LL1=Lmax-L1。同样地,PLC142~PLC145能够接受的负载(以下,称为接受负载LL2~LL5)为LL2=Lmax-L2、LL3=Lmax-L3、LL4=Lmax-L4、LL5=Lmax-L5。
然后,处理器20判断是否存在具有将当前所选择的程序P1作为其他程序P1来接受的裕度的PLC14n(步骤S13)。在本实施方式中,因为LL2<L1、LL3<L1、LL4>L1、LL5<L1(参照图8),所以处理器20判断为在PLC144中具有将程序P1作为其他程序P1来接受的裕度。
此外,程序P1对于PLC141成为自身程序P1,所以不进行在PLC141中能否接受程序P1的判断。另外,即使在存在具有将当前所选择的程序Pn作为其他程序Pn来接受的裕度的PLC14n的情况下,在作为接受了其他程序Pn的结果,该PLC14n的负载率成为阈值(例如,90%)以上时,可以判断为该PLC14n没有作为其他程序Pn来接受的裕度。
在步骤S13中,当判断为在PLC144中具有接受程序P1的裕度时,处理器20将当前选择的程序P1作为其他程序P1分配给PLC144(步骤S14),并前进到步骤S15。
当前进到步骤S15时,处理器20判断是否具有还没有选择的程序Pn。当在步骤S15中判断为具有还没有选择的程序Pn时,新选择下一个优先顺序高的程序Pn(步骤S16),并返回到步骤S12。由此,将选择的程序Pn从程序P1切换到程序P2。即,因为程序P1下一个的优先顺序高的程序Pn是程序P2,所以在该定时在步骤S16中新选择程序P2。
在步骤S12中,如上所述,计算PC12以及多个PLC14n(141~145)中的各个PLC能够接受的接受负载LLp、LL1~LL5。因为在之前的步骤S14对PLC144新分配了其他程序P1,所以PLC144能够接受的接受负载LL4变更为LL4=Lmax-L4-L1。此外,除此之外的PLC141~143、145能够接受的接受负载LL1~LL3、LL5与上次相同,PC12能够接受的接受负载LLp也与上次相同。
接着,在步骤S13中,处理器20判断是否存在具有将当前所选择的程序P2作为其他程序P2来接受的裕度的PLC14n。在本实施方式中,因为LL1<L2、LL3<L2、LL4<L2、LL5<L2(参照图8),处理器20判断为不存在具有将程序P2作为其他程序P2来接受的裕度的PLC14n。
当在步骤S13中判断为不存在具有将程序P2作为其他程序P2来接受的裕度的PLC14n时,处理器20判断在PC12中是否具有将当前所选择的程序P2作为其他程序P2来接受的裕度(步骤S17)。在本实施方式中,因为LLp>L2(参照图8),所以处理器20判断为在PC12中具有将程序P2作为其他程序P2来接受的裕度。
当在步骤S17中判断为在PC12中具有将程序P2作为其他程序P2来接受的裕度时,处理器20将当前选择的程序P2作为其他程序P2分配给PC12(步骤S18),并前进到步骤S15。通过重复以上的动作,如图7所示,将多个程序Pn(P1~P5)作为其他程序Pn(P1~P5)分配给PC12以及多个PLC14n。
当在步骤S15中判断为没有其他还没有选择的程序Pn时,结束处理,并前进到图4的步骤S7。另外,当在步骤S17中判断为在PC12中没有将当前选择的程序Pn作为其他程序Pn来接受的裕度时,直接前进到步骤S15。由此,在多个PLC14n以及PC12中无法接受的其他程序Pn也不会被分配给多个PLC14n以及PC12中的任意一个。
此外,当在步骤S17中判断为在PC12中没有将当前选择的程序Pn作为其他程序Pn来接受的裕度时,可以结束处理并前进到图4的步骤S7。另外,在没有程序Pn的优先顺序时,可以按照预先决定的顺序或随机地选择程序Pn,并将选择的程序Pn作为其他程序Pn分配给多个PLC14n以及PC12中的某一个。
如此,在一个执行周期内并行执行同一程序Pn,所以即使在PLC14n中发生了异常或故障时,也能够由将发生了异常或故障的PLC(以下,有时称为异常PLC)14n的自身程序Pn作为其他程序Pn来执行的其他PLC14n控制经由I/O设备16n与异常PLC14n连接的控制对象18n。例如,如图10所示,即使在PLC143中发生了异常(或故障)时,因为PC12将PLC143的自身程序P3作为其他程序P3来执行,所以能够控制经由I/O设备163与异常PLC143连接的控制对象183。因此,能够一边以稳定的状态继续进行控制对象183的控制,一边切换对控制对象183进行控制的主体。将在后面说明是否具有发生了异常的PLC14n的判断。
接着,使用图11以及图12来具体说明PLC14n以及PC12的结构(特别是通信部34、24的重要部位的结构)。
图11是PLC141的详细结构图。此外,因为各PLC14n相互具有相同的结构,所以在这里以PLC141为例来进行说明。PLC141的通信部34具有用于与处理器30进行通信的系统总线I/F40、第一输入用缓冲存储器42、第二输入用缓冲存储器44、第一输出用缓冲存储器46、第二输出用缓冲存储器48、第三输出用缓冲存储器50、用于和与自身连接的I/O设备161进行通信的MAC52、用于与PC12以及自身以外的其他PLC142进行通信的MAC54、选择器56以及寄存器58。
系统总线I/F40和处理器30通过系统总线60连接。MAC52经由MII(MediaIndependent Interface介质独立接口)62与PHY芯片64连接。经由该PHY芯片64,通信部34与自身的I/O设备161连接。MAC54经由MII66与PHY芯片68、70连接。通信部34经由PHY芯片68与在前级设置的PC12的通信部24连接,经由PHY芯片70与在后级设置的其他PLC142的通信部34连接。此外,在为PLC142~145时,PHY芯片68不与PC12连接,而与PLC141~144连接。另外,在为最后级的PLC145时,PHY芯片70与任何PLC14n均不连接。
MAC52经由PHY芯片64等接收从与自身连接的I/O设备161发送来的包含输入数据的帧。该输入数据是从与I/O设备161连接的控制对象181发送的数据。MAC52从接收到的帧取出输入数据,并将取出的输入数据存储到第一输入用缓冲存储器42。PLC141的处理器30经由系统总线I/F40以及系统总线60,读出在第一输入用缓冲存储器42中存储的输入数据,并将读出的输入数据存储在主存储器32。
处理器30在主存储器32中存储基于在主存储器32(第一输入用缓冲存储器42)中存储的输入数据来执行自身程序P1而得到的输出数据(以下,有时称为第一输出数据)。然后,处理器30将主存储器32中存储的第一输出数据经由系统总线60等存储在第一输出用缓冲存储器46。
MAC54经由PHY芯片68,并经由PC12接收从与PLC144连接的I/O设备164发送来的包含输入数据的帧。从该I/O设备164发送的输入数据是从通过分配给自身的其他程序P4(参照图7)控制的控制对象184发送的数据。MAC54从接收到的帧取出输入数据,并将取出的输入数据存储到第二输入用缓冲存储器44。PLC141的处理器30经由系统总线I/F40以及系统总线60读出在第二输入用缓冲存储器44中存储的输入数据,并将读出的输入数据存储到主存储器32。此外,主存储器32以及第二输入用缓冲存储器44在具有多个分配给自身(PLC141)的其他程序Pn时,针对每个其他程序Pn(输出了输入数据的每个I/O设备16n或每个PLC14n)存储输入数据。
处理器30在主存储器32中存储基于在主存储器32(第二输入用缓冲存储器44)中存储的输入数据(来自控制对象184的输入数据)执行其他程序P4而得到的输出数据(以下,有时称为第二输出数据)。然后,处理器30将主存储器32中存储的第二输出数据经由系统总线60等存储到第三输出用缓冲存储器50。此外,主存储器32以及第三输出用缓冲存储器50在具有多个分配给自身的其他程序Pn时,针对该每个其他程序Pn(作为第二输出数据的输出对象的每个I/O设备16n或每个PLC14n)存储第二输出数据。
MAC54为了向PLC144发送在第三输出用缓冲存储器50中存储的第二输出数据,在帧中写入第二输出数据,并将进行了写入的帧经由PHY芯片68发送到PC12。在该帧中附加了作为发送目的地的PLC144的地址信息。PC12在接收到的该帧中写入选择信息来发送给PLC144。把该帧中包含的第二输出数据存储到PLC144的第二输出用缓冲存储器48,将选择信息存储到PLC144的寄存器58。由此,PLC141能够控制经由I/O设备164与PLC144连接的控制对象184。
此外,选择信息是表示作为PLC14n向I/O设备16n输出(发送)的输出数据,选择在第一输出用缓冲存储器46中存储的第一输出数据和第二输出用缓冲存储器48中存储的第二输出数据中的哪个数据的信息。在本实施方式中,该选择信息为1比特的数据。然后,在选择信息为逻辑值“0”时,意味着PLC14n将第一输出用缓冲存储器46中存储的第一输出数据输出到I/O设备16n,在选择信息为逻辑值“1”时,意味着PLC14n将第二输出用缓冲存储器48中存储的第二输出数据输出到I/O设备16n。
MAC54为了针对作为其他程序P1被分配了分配给PLC141自身的自身程序P1的PLC144(参照图7)发送在第一输入用缓冲存储器42中存储的输入数据,在帧中写入该输入数据,并将进行了写入的帧经由PHY芯片68发送到PC12。在该帧中附加了作为发送目的地的PLC144的地址信息。PC12将接收到的该帧发送到PLC144。把该帧中包含的输入数据存储到PLC144的第二输入用缓冲存储器44中。
MAC54经由PHY芯片68,并经由PC12接收从作为其他程序P1被分配了分配给PLC141自身的自身程序P1的PLC144发送来的包含第二输出数据的帧。该PLC144向PLC141发送的第二输出数据是存储在PLC144的第三输出用缓冲存储器50中的数据。MAC54从接收到的帧取出第二输出数据以及选择信息,将取出的第二输出数据存储到第二输出用缓冲存储器48,将取出的选择信息存储到寄存器58。由此,PLC144能够控制经由I/O设备161与PLC141连接的控制对象181。
选择器56基于在寄存器58中存储的选择信息,选择在第一输出用缓冲存储器46中存储的第一输出数据以及在第二输出用缓冲存储器48中存储的第二输出数据中的一方并发送到MAC52。选择器56在选择信息为逻辑值“0”时向MAC52发送第一输出数据,在选择信息为逻辑值“1”时向MAC52发送第二输出数据。
MAC52在帧中写入从选择器56发送来的输出数据后将进行了写入的帧输出(发送)到I/O设备161。I/O设备161从发送来的帧取出输出数据,并将取出的输出数据输出到控制对象181。如此,能够通过选择器56以及寄存器58来切换通过PLC141还是通过PLC144来控制经由I/O设备161与PLC141连接的控制对象181。
此外,MAC54经由PHY芯片68接收帧,但是在该帧不是发送给自身的帧时,直接经由PHY芯片70向在后级连接的PLC142发送接收到的帧。同样地,MAC54经由PHY芯片70接收帧,在该帧不是发送给自身的帧时,直接经由PHY芯片68向在前级连接的PC12发送接收到的帧。即,MAC54只在是发送给自身的帧的情况下,从帧取出输入数据或第二输出数据。
图12是PC12的详细结构图。PC12的通信部24具有用于与处理器20进行通信的系统总线I/F80、输入用缓冲存储器82、输出用缓冲存储器84以及用于与PLC141进行通信的MAC86。
将系统总线I/F80与处理器20通过系统总线88连接。MAC86经由MII90与PHY芯片92连接。经由该PHY芯片92通信部24与连接在后级的PLC141的通信部34连接。
MAC86经由PHY芯片9 2接收从多个PLC14n(141~145),即多个I/O设备16n(161~165)发送来的包含输入数据的帧。该输入数据是从经由多个I/O设备16n与多个PLC14n连接的多个控制对象18n(181~185)发送的数据。MAC86至少从发送给自身的帧取出输入数据,并将取出的输入数据存储到输入用缓冲存储器82。与通过分配给PC12的其他程序P2、P3、P5(参照图7)进行控制的控制对象182、183、185相连接的PLC142、143、145指定PC12来作为发送目的地的地址信息来发送帧(包含输入数据的帧)。PC12的处理器20经由系统总线I/F80以及系统总线88读出在输入用缓冲存储器82中存储的输入数据,并将读出的输入数据存储到主存储器22。主存储器22以及输入用缓冲存储器82针对发送了输入数据的每个PLC142、143、145或每个I/O设备16n(每个其他程序Pn)存储输入数据。
处理器20在主存储器22中存储基于在主存储器22中存储的每个PLC142、143、145(每个I/O设备162、163、165)的输入数据执行其他程序P2、P3、P5而得到的第二输出数据。然后,处理器20经由系统总线88等在输出用缓冲存储器84中存储在主存储器22中存储的第二输出数据。主存储器22以及输出用缓冲存储器84针对每个其他程序Pn(作为第二输出数据的输出对象的每个PLC14n或每个I/O设备162、163、165)存储第二输出数据。
MAC86在帧中写入在输出用缓冲存储器84中存储的第二输出数据,并将进行了写入的帧经由PHY芯片92发送到PLC142、143、145。此时,MAC86在处理器20的控制下,在要发送的帧中还写入选择信息。由此,PC12能够控制与PLC142、143、145连接的I/O设备162、163、165。此外,MAC86对于经由PC12从PLC14n向其他的PLC14n发送的包含第二输出数据的帧,在帧中写入选择信息后发送到作为发送目的地的其他PLC14n。
接着,使用图13的流程图来说明PC12的选择信息的逻辑值的决定处理。在每个执行周期执行图13所示的处理。此外,作为原则,PC12的处理器20在向各PLC14n(141~145)发送的帧中写入逻辑值“0”的选择信息。在本实施方式中,写入了该选择信息的帧为向多个PLC14n(141~145)中的各个PLC发送的包含第二输出数据的帧,但是写入选择信息的帧也可以是与包含第二输出数据的帧不同的帧。
首先,PC12的处理器20收集经由通信部24以及多个PLC14n(141~145)的通信部34从多个PLC14n(141~145)发送来的状态信息(步骤S21)。此外,多个PLC14n(141~145)中的各个PLC的处理器30经由未图示的专用线路向PC12发送生存信号以及错误信息等状态信息。多个PLC14n(141~145)中的各个PLC的处理器30在自身正常动作时,向PC12发送生存信号。在每个执行周期发送该生存信号。作为错误信息,例如有主存储器32发生了故障的主旨的错误信息以及与经由I/O设备16n与自身(PLC14n)连接的控制对象18n之间的连接已断线的主旨的错误信息等。PLC14n在产生这些错误时,向PC12输出错误信息。
处理器20基于收集到的多个PLC14n(141~145)中的各个PLC的状态信息(生存信号或错误信息等),判断是否有异常PLC14n(发生异常或故障的PLC14n)(步骤S22)。例如,处理器20在具有没有输出生存信号的PLC14n时,判断为没有输出生存信号的该PLC14n为异常PLC14n。另外,处理器20在具有输出了错误信息的PLC14n时,判断为输出了错误信息的该PLC14n为异常PLC14n。
当在步骤S22中判断为没有异常PLC14n时直接结束处理。此时,PC12按照上述的原则,在帧(包含第二输出数据的帧)中写入逻辑值“0”的选择信息后发送给多个PLC14n(141~145)中的各个PLC。
另一方面,当在步骤S22中判断为具有异常PLC14n时,处理器20判断分配给异常PLC14n的自身程序Pn是否作为其他程序Pn正在由PC12或其他正常的PLC14n并行执行(步骤S23)。当在步骤S23中判断为由PC12或其他PLC14n正在并行执行时前进到步骤S24。
当前进到步骤S24时,处理器20判断通过作为其他程序正在执行异常PLC14n的自身程序的PC12或其他PLC14n是否能够继续控制经由I/O设备16n与异常PLC14n连接的控制对象18n。例如,处理器30在作为异常PLC14n的状态信息包含断线的错误信息时,判断为无法继续控制与异常PLC14n连接的控制对象18n。相反,在只是异常PLC14n的主存储32发生了故障时或者只是没有发送来生存信号时,处理器30判断为能够继续控制与异常PLC14n连接的控制对象18n。
当在步骤S24中判断为能够继续控制与异常PLC14n连接的控制对象18n时,处理器20在要向异常PLC14n输出的帧(包含第二输出数据的帧)中写入逻辑值“1”的选择信息后发送到异常PLC14n(步骤S25)。向该异常PLC14n输出的第二输出数据是通过由PC12或其他的PLC14n执行用于控制经由I/O设备16n与异常PLC14n连接的控制对象18n的其他程序Pn而得到的输出数据。因此,通过在该帧中附加逻辑值“1”的选择信息,能够向经由I/O设备16n与异常PLC14n连接的控制对象18n输出第二输出数据。由此,能够由异常PLC14n以外的其他正常的PLC14n控制与异常PLC14n连接的控制对象18n。由此,即使在切换了对控制对象18n进行控制的控制主体的情况下,也能够向与异常PLC14n相连接的I/O设备16n输出与到此为止的执行结果不产生矛盾的输出数据。因此,能够一边以稳定的状态来继续控制对象18n的控制,一边切换控制对象18n的控制主体。
例如,在图10所示的状态时,在步骤S22中PLC143被判断为异常,在步骤S23中判断为PC12正在并行执行其他程序P3。然后,当在步骤S24中判断为能够对控制对象183继续控制时,在步骤S25中,PC12在帧中写入逻辑值“1”的选择信息后发送到异常PLC143。如此,即使在产生了异常PLC14n时,PC12或其他正常的PLC14n也能够继续控制与异常PLC14n连接的控制对象18n。此外,对于异常PLC14n以外的其他正常的PLC14n,按照上述的原则,从PC12发送写入了逻辑值“0”的选择信息的帧。
另一方面,当在步骤S23中判断为PC12或其他正常的PLC14n没有正在并行地执行对异常PLC14n分配的自身程序Pn,即其他程序Pn时,或者,当在步骤S24中判断为无法继续控制与异常PLC14n连接的控制对象18n时,在步骤S26中,处理器20在未图示的显示部(例如,液晶显示器)中显示该主旨。即,进行错误显示。另外,处理器20也可以从未图示的扬声器输出警告音。
接着,使用图14所示的时序图来说明用于正常的PLC14n与PC12以及与正常的PLC14n连接的I/O设备16n之间的数据收发的处理。然后,在此之后使用图15所示的时序图来说明用于异常的PLC14n与PC12以及与异常的PLC14n连接的I/O设备16n之间的数据收发的处理。在图14以及图15中,为了使说明易于理解,将正常的PLC14n以及异常的PLC14n都设为PLC142。因此,与PLC142连接的I/O设备16n为I/O设备162。另外,PC12在向PLC142发送的包含第二输出数据的帧中写入选择信息。
此外,在图14以及图15中只说明程序P2的执行。即,程序P2对于PLC142来说为自身程序P2,对于PC12来说为其他程序P2(参照图7)。另外,使PC12以及PLC142在程序P2的执行完成且全部的输出数据已确定的阶段开始通信。使PC12以及PLC142在从I/O设备162全部接收了输入数据之后开始下一个执行周期的程序P2的执行。在PLC142和I/O设备162之间的通信结束后,进行PC12与PLC142之间的通信。在这种情况下,通过在PC12和PLC142中设置表示相同时刻的未图示的时钟,能够在PC12与PLC142之间取得同步。
<正常的PLC142与I/O设备162之间的通信(参照图14)>
PLC142的处理器30在一个执行周期的自身程序P2的执行完成后,在主存储器32中存储通过执行自身程序P2而生成的第一输出数据。然后,PLC142的处理器30在通信部34的第一输出用缓冲存储器46中存储在主存储器32中存储的第一输出数据。由此,更新在主存储器32以及第一输出用缓冲存储器46中存储的第一输出数据。此外,基于在第一输入用缓冲存储器42中当前存储的输入数据来执行该自身程序P2。
此后,PLC142的通信部34在帧中写入在第一输出用缓冲存储器46中存储的第一输出数据后发送到I/O设备162(在寄存器58中存储的逻辑值为“0”)。由此,将第一输出数据经由I/O设备162输出给控制对象182。另外,PLC142的通信部34接收从I/O设备162(控制对象182)发送的包含输入数据的帧,并从接收到的帧取出输入数据来存储到第一输入用缓冲存储器42。此后,PLC142的处理器30在主存储器32中存储在第一输入用缓冲存储器42中存储的输入数据。由此,更新在第一输入用缓冲存储器42以及主存储器32中存储的输入数据(I/O设备162所发送的输入数据)。PLC142的处理器30在下一个执行周期到来的定时开始执行自身程序P2。
<PC12与正常的PLC142之间的通信(参照图14)>
PC12的处理器20在一个执行周期的其他程序P2的执行完成后,在主存储器22中存储通过执行其他程序P2而生成的第二输出数据。然后,PC12的处理器20在通信部24的输出用缓冲存储器84中存储在主存储器22中存储的第二输出数据。由此,更新在主存储器22以及输出用缓冲存储器84中存储的第二输出数据(向I/O设备162输出的第二输出数据)。此外,基于在输入用缓冲存储器82中当前存储的输入数据(I/O设备162所发送的输入数据)来执行其他程序P2。
此后,PC12的通信部24在帧中写入在输出用缓冲存储器84中存储的第二输出数据后将帧发送到PLC142。此时,PC12在发送给PLC142的包含第二输出数据的帧中还写入逻辑值“0”的选择信息来进行发送。PLC142的通信部34从PC12发送来的帧中取出第二输出数据(向I/O设备162输出的第二输出数据),并在第二输出用缓冲存储器48中存储取出的第二输出数据。由此,更新在第二输出用缓冲存储48中存储的第二输出数据(向I/O设备162输出的第二输出数据)。另外,PLC142的通信部34从PC12发送来的帧中取出选择信息,并在寄存器58中存储取出的选择信息的逻辑值“0”。由此,作为发送给I/O设备162的输出数据,PLC142的选择器56选择在第一输出用缓冲存储器46中存储的第一输出数据。
另外,PLC142的通信部34在帧中写入在第一输入用缓冲存储器42中存储的输入数据后将帧发送到PC12。PC12的通信部24接收从PLC142发送来的包含输入数据(I/O设备162所发送的输入数据)的帧,并从接收到的帧取出输入数据来存储到输入用缓冲存储器82。PC12的处理器20将在输入用缓冲存储器82中存储的输入数据存储到主存储器22。由此,更新在输入用缓冲存储器82以及主存储器22中存储的输入数据(I/O设备162所发送的输入数据)。PC12的处理器20在下一个执行周期到来的定时开始执行其他程序P2。
<异常PLC142和I/O设备162之间的通信(参照图15)>
异常PLC142的处理器30在检测出错误时,生成错误信息,并经由上述的专用线路向PC12发送生成的错误信息。此时,异常PLC142的处理器30因为不执行自身程序P2,所以不进行在第一输出用缓冲存储器46中存储的第一输出数据的更新。
异常PLC142的通信部34在帧中写入第一输出用缓冲存储器46中存储的第一输出数据后将帧发送到I/O设备162(此时在寄存器58中存储的逻辑值为“0”)。此时,因为不进行第一输出用缓冲存储器46中存储的第一输出数据的更新,所以再次向I/O设备162发送上次发送的第一输出数据。异常PLC142的通信部34接收从I/O设备162发送的包含输入数据的帧,并从接收到的帧取出输入数据来存储到第一输入用缓冲存储器42。此后,异常PLC142的处理器30将第一输入用缓冲存储器42中存储的输入数据存储到主存储器32。由此,更新在第一输入用缓冲存储器42以及主存储器32中存储的输入数据(I/O设备162所发送的输入数据)。
<PC12和异常PLC142之间的通信(参照图15)>
PC12的处理器20在一个执行周期的其他程序P2的执行完成后,将通过执行其他程序P2而生成的第二输出数据存储到主存储器22。然后,PC12的处理器20将主存储器22中存储的第二输出数据存储到通信部24的输出用缓冲存储器84。由此,更新在主存储器22以及输出用缓冲存储器84中存储的第二输出数据(向I/O设备162输出的第二输出数据)。此外,基于在输入用缓冲存储器82中当前存储的输入数据(I/O设备162所发送的输入数据)来执行其他程序P2。
此后,PC12的通信部24在帧中写入在输出用缓冲存储器84中存储的第二输出数据后将帧发送到异常PLC142。此时,PC12在向异常PLC142发送的包含第二输出数据的帧中还写入逻辑值“1”的选择信息来进行发送。异常PLC142的通信部34从PC12发送来的帧取出第二输出数据(向I/O设备162输出的第二输出数据),并将取出的第二输出数据存储到第二输出用缓冲存储器48。由此,更新在第二输出用缓冲存储器48中存储的第二输出数据(向I/O设备162输出的第二输出数据)。另外,异常PLC142的通信部34从PC12发送来的帧取出选择信息,并将取出的选择信息的逻辑值“1”存储到寄存器58。由此,异常PLC142的选择器56选择在第二输出用缓冲存储器48中存储的第二输出数据来作为向I/O设备162发送的输出数据。因此,在下一次PLC142与I/O设备162进行通信时,向I/O设备162输出在第二输出用缓冲存储器48中存储的第二输出数据。由此,能够将控制I/O设备162的控制主体从异常PLC142切换到PC12。
另外,异常PLC142的通信部34在帧中写入在第一输入用缓冲存储器42中存储的输入数据后将帧发送到PC12。PC12的通信部24接收从异常PLC142发送来的包含输入数据(I/O设备162所发送的输入数据)的帧,并从接收到的帧取出输入数据来存储到输入用缓冲存储器82。PC12的处理器20将在输入用缓冲存储器82中存储的输入数据存储到主存储器22。由此,更新在输入用缓冲存储器82以及主存储器22中存储的输入数据(I/O设备162所发送的输入数据)。PC12的处理器20开始执行下一个执行周期到来的其他程序P2。
如此,当PLC142中发生异常时控制I/O设备162的控制主体从异常PLC142切换到PC12,但是对于来自I/O设备162的输入数据的输出数据的响应(更新)相比正常时延迟一个执行周期。为了避免这种情况,在进行异常PLC142的第二输出用缓冲存储器48的更新后在当前的一个执行周期内再执行一次异常PLC142与I/O设备162之间的通信即可。
此外,在图14以及图15中,以PLC14n与作为其他程序Pn被分配了PLC14n的自身程序Pn的PC12之间的数据的收发为例进行了说明,但是在PLC14n与作为其他程序Pn被分配了PLC14n的自身程序Pn的其他PLC14n之间的数据的收发的情况下也能够同样地进行。以下,参照图14以及图15来简单地说明用于PLC141和PLC144之间的数据收发的处理。此外,将图14以及图15的PLC142、PC12替换为PLC141、PLC144,仅说明程序P1的执行。
<正常的PLC141与I/O设备162之间的通信(参照图14)>
PLC141的处理器30在一个执行周期的自身程序P1(参照图7)的执行完成后,将通过执行自身程序P1而生成的第一输出数据存储在主存储器32中。然后,PLC141的处理器30将主存储器32中存储的第一输出数据存储到通信部34的第一输出用缓冲存储器46。由此,更新在主存储器32以及第一输出用缓冲存储器46中存储的第一输出数据。此外,基于在第一输入用缓冲存储器42中当前存储的输入数据来执行该自身程序P1。
此后,PLC141的通信部34在帧中写入在第一输出用缓冲存储器46中存储的第一输出数据后将帧发送到I/O设备161(寄存器58中存储的逻辑值为“0”)。由此,将第一输出数据经由I/O设备161输出给控制对象181。另外,PLC141的通信部34接收从I/O设备161(控制对象181)发送的包含输入数据的帧,并从接收到的帧取出输入数据来存储到第一输入用缓冲存储器42。此后,PLC141的处理器30将第一输入用缓冲存储器42中存储的输入数据存储到主存储器32。由此,更新第一输入用缓冲存储器42以及主存储器32中存储的输入数据(I/O设备161所发送的输入数据)。PLC141的处理器30在下一个执行周期到来的定时开始执行自身程序P1。
<正常的PLC141与正常的PLC144之间的通信(参照图14)>
PLC144的处理器30在一个执行周期的其他程序P1(参照图7)的执行完成后,将通过执行其他程序P1而生成的第二输出数据存储到主存储器32。然后,PLC144的处理器30将主存储器32中存储的第二输出数据存储到通信部34的第三输出用缓冲存储器50。由此,更新主存储器32以及第三输出用缓冲存储器50中存储的第二输出数据(向I/O设备161输出的第二输出数据)。此外,基于在第二输入用缓冲存储器44中当前存储的输入数据(I/O设备161所发送的输入数据)来执行其他程序P1。
此后,PLC144的通信部34在帧中写入第三输出用缓冲存储器50中存储的第二输出数据后将帧经由PC12发送到PLC141。此时,PC12在向PLC141发送的包含第二输出数据的帧中还写入逻辑值“0”的选择信息。PLC141的通信部34从PLC144发送来的帧取出第二输出数据(向I/O设备161输出的第二输出数据),并将取出的第二输出数据存储到第二输出用缓冲存储器48。由此,更新在第二输出用缓冲存储器48中存储的第二输出数据(向I/O设备161输出的第二输出数据)。另外,PLC141的通信部34从经由PC12从PLC144发送来的帧取出选择信息,并将取出的选择信息的逻辑值“0”存储到寄存器58。由此,PLC141的选择器56选择第一输出用缓冲存储器46中存储的第一输出数据来作为向I/O设备161发送的输出数据。
另外,PLC141的通信部34在帧中写入第一输入用缓冲存储器42中存储的输入数据后将帧经由PC12发送到PLC144。PLC144的通信部34接收经由PC12从PLC141发送来的包含输入数据(I/O设备161所发送的输入数据)的帧,并从接收到的帧取出输入数据来存储到第二输入用缓冲存储器44。PLC144的处理器30将第二输入用缓冲存储器44中存储的输入数据存储到主存储器32。由此,更新在第二输入用缓冲存储器44以及主存储器32中存储的输入数据(I/O设备161所发送的输入数据)。主存储器32的处理器30在下一个执行周期到来的定时开始执行其他程序P1。
<异常PLC141与I/O设备161之间的通信(参照图15)>
异常PLC141的处理器30在检测出错误时生成错误信息,并经由所述专用线路向PC12发送生成的错误信息。此时,异常PLC141的处理器30因为不执行自身程序P1,所以不进行第一输出用缓冲存储器46中存储的第一输出数据的更新。
异常PLC141的通信部34在帧中写入第一输出用缓冲存储器46中存储的第一输出数据后将帧发送到I/O设备161(此时的寄存器58中存储的逻辑值为“0”)。此时,因为不进行第一输出用缓冲存储器46中存储的第一输出数据的更新,所以再次向I/O设备161发送上次发送的第一输出数据。异常PLC141的通信部34接收从I/O设备161发送的包含输入数据的帧,并从接收到的帧取出输入数据来存储到第一输入用缓冲存储器42。此后,异常PLC141的处理器30将第一输入用缓冲存储器42中存储的输入数据存储到主存储器32中。由此,更新第一输入用缓冲存储器42以及主存储器32中存储的输入数据(I/O设备161所发送的输入数据)。
<异常PLC141与正常的PLC144之间的通信(参照图15)>
PLC144的处理器30在一个执行周期的其他程序P1的执行完成后,将通过执行其他程序P1而生成的第二输出数据存储到主存储器32。然后,PLC144的处理器30将主存储器32中存储的第二输出数据存储到通信部34的第三输出用缓冲存储器50。由此,更新主存储器32以及第三输出用缓冲存储器50中存储的第二输出数据(向I/O设备161输出的第二输出数据)。此外,基于在第二输入用缓冲存储器44中当前存储的输入数据(I/O设备161所发送的输入数据)来执行其他程序P1。
此后,PLC144的通信部34在帧中写入第三输出用缓冲存储器50中存储的第二输出数据后将帧经由PC12发送到异常PLC141。此时,PC12在向异常PLC141发送的包含第二输出数据的帧中还写入逻辑值“1”的选择信息来进行发送。异常PLC141的通信部34从经由PC12从PLC144发送来的帧取出第二输出数据(向I/O设备161输出的第二输出数据),并将取出的第二输出数据存储到第二输出用缓冲存储器48。由此,更新第二输出用缓冲存储器48中存储的第二输出数据(向I/O设备161输出的第二输出数据)。另外,异常PLC141的通信部34从经由PC12从PLC144发送来的帧取出选择信息,并将取出的选择信息的逻辑值“1”存储到寄存器58。由此,异常PLC141的选择器56选择第二输出用缓冲存储器48中存储的第二输出数据来作为向I/O设备161发送的输出数据。因此,在下一次PLC141与I/O设备161进行通信时,向I/O设备161输出在第二输出用缓冲存储器48中存储的第二输出数据。由此,能够将控制I/O设备161的控制主体从异常PLC141切换到PLC144。
另外,异常PLC141的通信部34在帧中写入第一输入用缓冲存储器42中存储的输入数据后将帧经由PC12发送到PLC144。PLC144的通信部34接收经由PC12从异常PLC141发送来的包含输入数据(I/O设备161所发送的输入数据)的帧,并从接收到的帧取出输入数据来存储到第二输入用缓冲存储器44。PLC144的处理器30将第二输入用缓冲存储器44中存储的输入数据存储到主存储器32。由此,更新第二输入用缓冲存储器44以及主存储器32中存储的输入数据(I/O设备161所发送的输入数据)。PLC144的处理器30开始执行下一个执行周期到来的其他程序P1。
如此,当在PLC141中发生异常时,控制I/O设备161的控制主体从异常PLC141切换到PLC144,但是对于来自I/O设备161的输入数据的输出数据的响应(更新)相比正常时延迟一个执行周期。为了避免这种情况,在进行第二输出用缓冲存储器48的更新后在当前的一个执行周期内再一次执行异常PLC141与I/O设备161之间的通信即可。
此外,也可以通过一个存储介质来构成第一输入用缓冲存储器42以及第二输入用缓冲存储器44。在这种情况下,可以将一个存储介质的存储区域至少分为两个,使一方的存储区域作为第一输入用缓冲存储器42发挥功能,使另一方作为第二输入用缓冲存储器44发挥功能。另外,第一输出用缓冲存储器46、第二输出用缓冲存储器48以及第三输出用缓冲存储器50也一样,可以通过一个存储介质来构成。在这种情况下,可以将一个存储介质的存储区域至少分为三个,使划分后的三个存储区域分别作为第一输出用缓冲存储器46、第二输出用缓冲存储器48、第三输出用缓冲存储器50发挥功能。并且,也可以通过一个存储介质来构成第一输入用缓冲存储器42、第二输入用缓冲存储器44、第一输出用缓冲存储器46、第二输出用缓冲存储器48以及第三输出用缓冲存储器50。
在异常PLC14n发生时,切换用于对经由I/O设备16n与异常PLC14n连接的控制对象18n进行控制的控制主体,但是还可以在没有产生异常PLC14n时,切换控制主体。即,可以切换控制主体使得PC12或其他正常的PLC14n控制经由I/O设备16n与正常的PLC14n连接的控制对象18n。
在上述实施方式中说明的PCL系统(控制系统)10具备:多个I/O设备16n,其将多个PLC14n中的各个PLC的控制对象18n与多个PLC14n中的各个PLC相连接,并在控制对象18n与PLC14n之间传送需要的信息;以及PC(上位控制装置)12,其控制并管理多个PLC14n。PC12具有主存储器(存储部)22和处理器20。主存储器22存储多个PLC14n中的各个PLC执行的多个程序Pn。处理器20将主存储器22中存储的多个程序Pn作为自身程序Pn分配给多个PLC14n,使得多个PLC14n中的各个PLC控制经由I/O设备16n与自身连接的控制对象18n。另外,处理器20将在主存储器22中存储的多个程序Pn的全部或一部分作为其他程序Pn进一步分配给PC12以及多个PLC14n,使得在一个执行周期内双重地并行执行多个程序Pn的全部或一部分。多个PLC14n中的各个PLC具有第一输入用缓冲存储器42、第一输出用缓冲存储器46以及第二输出用缓冲存储器48。第一输入用缓冲存储器42存储从经由I/O设备16n与自身连接的控制对象18n发送的输入数据。第一输出用缓冲存储器46存储通过执行自身程序Pn而得到的第一输出数据,该自身程序Pn是为了控制经由I/O设备16n与自身连接的控制对象18n而分配给自身的程序。第二输出用缓冲存储器48存储通过由PC12或其他的PLC14n执行其他程序Pn而得到的第二输出数据,其他程序Pn是为了控制经由I/O设备16n与自身连接的控制对象18n而分配给PC12或其他的PLC14n的程序。多个PLC14n中的各个PLC基于从PC12发送的选择信息,向经由I/O设备16n与自身连接的控制对象18n输出在第一输出用缓冲存储器46中存储的第一输出数据以及在第二输出用缓冲存储器48中存储的第二输出数据中的一方。
由此,即使在切换了对控制对象18n进行控制的控制主体时,也能够向与该控制对象18n连接的I/O设备16n输出与到此为止的执行结果不产生矛盾的输出数据。因此,能够一边以稳定的状态来继续控制对象18n的控制,一边切换控制对象18n的控制主体。
多个PLC14n中的各个PLC还具有处理器30,处理器30通过基于从经由I/O设备16n与自身连接的控制对象18n发送的输入数据执行分配给自身的自身程序Pn来生成第一输出数据。另外,多个PLC14n中的各个PLC基于从经由I/O设备16n与其他PLC14n连接且通过分配给自身的其他程序Pn进行控制的控制对象18n发送的输入数据执行分配给自身的其他程序Pn而生成第二输出数据。如此,PLC14n基于控制对象18n发送的输入数据来执行程序Pn(自身程序Pn或其他程序Pn),生成向发送了输入数据的控制对象18n输出的输出数据,因此能够以稳定的状态对控制对象18n进行控制。
PC12的处理器20基于从通过分配给自身的其他程序Pn进行控制的控制对象18n发送的输入数据执行分配给自身的其他程序Pn,由此生成第二输出数据。如此,PC12基于控制对象18n发送的输入数据来执行其他程序Pn,生成向发送了输入数据的控制对象18n输出的输出数据,因此能够以稳定的状态对控制对象18n进行控制。
PC12的处理器20向多个PLC14n输出选择信息,使得判断为正常的PLC14n向经由I/O设备16n与自身连接的控制对象18n输出在第一输出用缓冲存储器46中存储的第一输出数据,使得判断为异常的PLC14n向经由I/O设备16n与自身连接的控制对象18n输出在第二输出用缓冲存储器48中存储的第二输出数据。由此,即使在PLC14n中发生了异常时,也能够代替异常PLC14n由其他正常的PLC14n控制经由I/O设备16n与异常PLC14n连接的控制对象18n。因此,能够一边以稳定的状态继续经由I/O设备16n与异常PLC14n连接的控制对象18n的控制,一边切换与异常PLC14n连接的控制对象18n的控制主体。
PC12的处理器20基于从多个PLC14n取得的多个PLC14n中的各个PLC的错误信息以及生存信号中的至少一方,判断多个PLC14n中的各个PLC是正常还是异常。由此,PC12能够精度良好地判断PLC14n是正常还是异常。
PLC14n的通信部34还具有选择器56,选择器56基于选择信息,选择第一输出用缓冲存储器46中存储的第一输出数据以及第二输出用缓冲存储器48中存储的第二输出数据中的一方来作为向经由I/O设备16n与自身连接的控制对象18n输出的输出数据。由此,能够容易地切换向I/O设备16n输出的输出数据。
PC12的处理器20经由多个PLC14n的通信部34取得表示多个PLC14n中的各个PLC执行自身程序Pn时的负载的负载信息,基于取得的负载信息来分配其他程序Pn。由此,能够分配其他程序Pn,使得多个PLC14n中的各个PLC针对程序Pn的处理收纳在一个执行周期内。
PC12接收经由I/O设备16n与通过分配给自身的其他程序Pn进行控制的控制对象18n相连接的PLC14n的第一输入用缓冲存储器42中存储的输入数据,并向经由I/O设备16n与通过分配给自身的其他程序Pn进行控制的控制对象18n相连接的PLC14n发送第二输出数据。由此,PC12能够向PLC14n发送与到此为止的执行结果不产生矛盾的第二输出数据,并能够控制经由I/O设备16n与PLC14n连接的控制对象18n。
多个PLC14n中的各个PLC还具备第二输入用缓冲存储器44和第三输出用缓冲存储器50。第二输入用缓冲存储器44存储从经由I/O设备16n与其他的PLC14n相连接且通过分配给自身的其他程序Pn进行控制的控制对象18n发送的输入数据。第三输出用缓冲存储器50存储通过执行其他程序Pn而得到的第二输出数据,该其他程序Pn是为了控制经由I/O设备16n与其他的PLC14n连接的控制对象18n而分配给自身的程序。多个PLC14n中的各个PLC经由PC12接收经由I/O设备16n与通过分配给自身的其他程序Pn进行控制的控制对象18n相连接的其他PLC14n的第一输入用缓冲存储器42中存储的输入数据,并在第二输入用缓冲存储器44中存储接收到的输入数据。另外,多个PLC14n中的各个PLC经由PC12向经由I/O设备16n与通过分配给自身的其他程序Pn进行控制的控制对象18n相连接的其他PLC14n发送在第三输出用缓冲存储器50中存储的第二输出数据。由此,PLC14n能够向其他PLC14n发送与到此为止的执行结果不产生矛盾的第二输出数据,并能够控制经由I/O设备16n与其他PLC14n连接的控制对象18n。
Claims (15)
1.一种控制系统,其具备多个控制器;将所述多个控制器中的各个控制器的控制对象与所述多个控制器中的各个控制器相连接,在所述控制对象与所述控制器之间传送需要的信息的多个I/O设备;以及控制并管理所述多个控制器的上位控制装置,所述控制系统的特征在于,
所述上位控制装置具有:
存储部,其存储了所述多个控制器中的各个控制器执行的多个程序;以及
处理器,其将在所述存储部中存储的所述多个程序作为自身程序分配给所述多个控制器,使得所述多个控制器中的各个控制器控制经由所述I/O设备与自身连接的所述控制对象,并且将所述多个程序的全部或一部分作为其他程序进一步分配给所述上位控制装置以及所述多个控制器,使得在一个执行周期内双重地并行执行在所述存储部中存储的所述多个程序的全部或一部分,
所述多个控制器中的各个控制器具有通信部,
该通信部具有:第一输入用缓冲存储器,其存储从经由所述I/O设备与自身连接的所述控制对象发送的输入数据;
第一输出用缓冲存储器,其存储执行所述自身程序而得到的第一输出数据,所述自身程序是为了控制经由所述I/O设备与自身连接的所述控制对象而分配给自身的程序;以及
第二输出用缓冲存储器,其存储通过所述上位控制装置或其他的所述控制器执行所述其他程序而得到的第二输出数据,所述其他程序是为了控制经由所述I/O设备与自身连接的所述控制对象而分配给所述上位控制装置或其他的所述控制器的程序,
所述多个控制器中的各个控制器基于从所述上位控制装置发送的选择信息,向经由所述I/O设备与自身连接的所述控制对象输出在所述第一输出用缓冲存储器中存储的所述第一输出数据以及在所述第二输出用缓冲存储器中存储的所述第二输出数据中的一方。
2.根据权利要求1所述的控制系统,其特征在于,
所述多个控制器中的各个控制器还具有处理器,所述处理器基于从经由所述I/O设备与自身连接的所述控制对象发送的所述输入数据执行分配给自身的所述自身程序,由此生成所述第一输出数据,并且基于从经由所述I/O设备与其他的所述控制器相连接且通过分配给自身的所述其他程序进行控制的所述控制对象发送的所述输入数据执行分配给自身的所述其他程序,由此生成所述第二输出数据。
3.根据权利要求1或2所述的控制系统,其特征在于,
所述上位控制装置的所述处理器基于从通过分配给自身的所述其他程序来控制的所述控制对象发送的所述输入数据执行分配给自身的所述其他程序,由此生成所述第二输出数据。
4.根据权利要求1至3中的任意一项所述的控制系统,其特征在于,
所述上位控制装置的所述处理器向所述多个控制器输出所述选择信息,使得判断为正常的所述控制器向经由所述I/O设备与自身连接的所述控制对象输出在所述第一输出用缓冲存储器中存储的所述第一输出数据,并使得判断为异常的所述控制器向经由所述I/O设备与自身连接的所述控制对象输出在所述第二输出用缓冲存储器中存储的所述第二输出数据。
5.根据权利要求4所述的控制系统,其特征在于,
所述上位控制装置的所述处理器基于从所述多个控制器取得的所述多个控制器中的各个控制器的错误信息以及生存信号中的至少一方,判断所述多个控制器中的各个控制器是正常还是异常。
6.根据权利要求1至5中的任意一项所述的控制系统,其特征在于,
所述控制器的所述通信部还具有选择器,所述选择器基于所述选择信息,选择在所述第一输出用缓冲存储器中存储的所述第一输出数据以及在所述第二输出用缓冲存储器中存储的所述第二输出数据中的一方来作为向经由所述I/O设备与自身连接的所述控制对象输出的输出数据。
7.根据权利要求1至6中的任意一项所述的控制系统,其特征在于,
所述上位控制装置的所述处理器经由所述多个控制器的所述通信部取得表示所述多个控制器中的各个控制器执行所述自身程序时的负载的负载信息,并基于取得的所述负载信息来分配所述其他程序。
8.根据权利要求1至7中的任意一项所述的控制系统,其特征在于,
所述上位控制装置接收经由所述I/O设备与通过分配给自身的所述其他程序进行控制的所述控制对象相连接的所述控制器的所述第一输入用缓冲存储器中存储的所述输入数据,并向经由所述I/O设备与通过分配给自身的所述其他程序进行控制的所述控制对象相连接的所述控制器发送所述第二输出数据。
9.根据权利要求1至8中的任意一项所述的控制系统,其特征在于,
所述多个控制器中的各个控制器还具备:
第二输入用缓冲存储器,其存储从经由所述I/O设备与其他的所述控制器相连接且通过分配给自身的所述其他程序进行控制的所述控制对象发送的所述输入数据;以及
第三输出用缓冲存储器,其存储执行所述其他程序而得到的所述第二输出数据,所述其他程序是为了控制经由所述I/O设备与其他的所述控制器相连接的所述控制对象而分配给自身的程序,
所述多个控制器中的各个控制器经由所述上位控制装置接收经由所述I/O设备与通过分配给自身的所述其他程序进行控制的所述控制对象相连接的其他的所述控制器的所述第一输入用缓冲存储器中存储的所述输入数据,并在所述第二输入用缓冲存储器中存储接收到的所述输入数据,并且经由所述上位控制装置向经由所述I/O设备与通过分配给自身的所述其他程序进行控制的所述控制对象相连接的其他的所述控制器发送在所述第三输出用缓冲存储器中存储的所述第二输出数据。
10.一种控制系统的控制方法,所述控制系统具备多个控制器;将所述多个控制器中的各个控制器的控制对象与所述多个控制器中的各个控制器相连接,在所述控制对象和所述控制器之间传送需要的信息的多个I/O设备;以及控制并管理所述多个控制器的上位控制装置,
所述控制方法的特征在于,
所述上位控制装置具有存储部,该存储部存储了所述多个控制器中的各个控制器执行的多个程序,
所述多个控制器中的各个控制器具备通信部,该通信部具有第一输入用缓冲存储器、第一输出用缓冲存储器以及第二输出用缓冲存储器,
所述控制方法包含:
分配步骤,上位控制装置将在所述存储部中存储的所述多个程序作为自身程序分配给所述多个控制器,使得所述多个控制器中的各个控制器控制经由所述I/O设备与自身连接的所述控制对象,并且将所述多个程序的全部或一部分作为其他程序进一步分配给所述上位控制装置以及所述多个控制器,使得在一个执行周期内双重地并行执行在所述存储部中存储的所述多个程序的全部或一部分;
第一输入存储步骤,所述多个控制器中的各个控制器在所述第一输入用缓冲存储器中存储从经由所述I/O设备与自身连接的所述控制对象发送的输入数据;
第一输出存储步骤,所述多个控制器中的各个控制器在所述第一输出用缓冲存储器中存储执行所述自身程序而得到的第一输出数据,所述自身程序是为了控制经由所述I/O设备与自身连接的所述控制对象而分配给自身的程序;
第二输出存储步骤,所述多个控制器中的各个控制器在所述第二输出用缓冲存储器中存储通过所述上位控制装置或其他的所述控制器执行所述其他程序而得到的第二输出数据,所述其他程序是为了控制经由所述I/O设备与自身连接的所述控制对象而分配给所述上位控制装置或其他的所述控制器的程序;以及
输出步骤,所述多个控制器中的各个控制器基于从所述上位控制装置发送的选择信息,向经由所述I/O设备与自身连接的所述控制对象输出在所述第一输出用缓冲存储器中存储的所述第一输出数据以及在所述第二输出用缓冲存储器中存储的所述第二输出数据中的一方。
11.根据权利要求10所述的控制方法,其特征在于,还包含如下步骤:
第一生成步骤,所述控制器基于从经由所述I/O设备与自身连接的所述控制对象发送的所述输入数据执行分配给自身的所述自身程序,由此生成所述第一输出数据;
第二生成步骤,所述控制器基于从经由所述I/O设备与其他的所述控制器相连接且通过分配给自身的所述其他程序进行控制的所述控制对象发送的所述输入数据执行分配给自身的所述其他程序,由此生成所述第二输出数据;以及
第三生成步骤,所述上位控制装置基于从通过分配给自身的所述其他程序来控制的所述控制对象发送的所述输入数据执行分配给自身的所述其他程序,由此生成所述第二输出数据。
12.根据权利要求10或11所述的控制方法,其特征在于,
所述通信部还具有选择器,
所述控制方法还包含如下步骤:
异常判断步骤,所述上位控制装置基于从所述多个控制器取得的所述多个控制器中的各个控制器的错误信息以及生存信号中的至少一方,判断所述多个控制器中的各个控制器是正常还是异常;
选择输出步骤,所述上位控制装置向所述多个控制器输出所述选择信息,使得判断为正常的所述控制器向经由所述I/O设备与自身连接的所述控制对象输出所述第一输出用缓冲存储器中存储的所述第一输出数据,并使得判断为异常的所述控制器向经由所述I/O设备与自身连接的所述控制对象输出所述第二输出用缓冲存储器中存储的所述第二输出数据;以及
选择步骤,所述多个控制器中的各个控制器的所述通信部的所述选择器基于所述选择信息,选择所述第一输出用缓冲存储器中存储的所述第一输出数据以及所述第二输出用缓冲存储器中存储的所述第二输出数据中的一方来作为向经由所述I/O设备与自身连接的所述控制对象输出的输出数据。
13.根据权利要求10至12中的任意一项所述的控制方法,其特征在于,
还包含取得步骤,在所述取得步骤中,所述上位控制装置经由所述多个控制器的所述通信部取得表示所述多个控制器中的各个控制器执行所述自身程序时的负载的负载信息,
在所述分配步骤基于取得的所述负载信息来分配所述其他程序。
14.根据权利要求10至13中的任意一项所述的控制方法,其特征在于,还包含如下步骤:
接收步骤,所述上位控制装置接收在经由所述I/O设备与通过分配给自身的所述其他程序进行控制的所述控制对象相连接的所述控制器的所述第一输入用缓冲存储器中存储的所述输入数据;
第一发送步骤,所述上位控制装置向经由所述I/O设备与通过分配给自身的所述其他程序进行控制的所述控制对象连接的所述控制器发送所述第二输出数据。
15.根据权利要求10至14中的任意一项所述的控制方法,其特征在于,
所述通信部还具有第二输入用缓冲存储器和第三输出用缓冲存储器,
所述控制方法还包含如下步骤:
第二输入存储步骤,所述多个控制器中的各个控制器在所述第二输入用缓冲存储器中存储从经由所述I/O设备与其他的所述控制器相连接且通过分配给自身的所述其他程序进行控制的所述控制对象发送的所述输入数据;
第三输出存储步骤,所述多个控制器中的各个控制器在所述第三输出用缓冲存储器中存储执行所述其他程序而得到的所述第二输出数据,所述其他程序是为了控制经由所述I/O设备与其他的所述控制器连接的所述控制对象而分配给自身的程序;
第二发送步骤,所述多个控制器中的各个控制器经由所述上位控制装置向经由所述I/O设备与通过分配给自身的所述其他程序进行控制的所述控制对象连接的其他的所述控制器发送在所述第三输出用缓冲存储器中存储的所述第二输出数据,
在所述第二输入存储步骤中,所述多个控制器中的各个控制器经由所述上位控制装置接收经由所述I/O设备与通过分配给自身的所述其他程序进行控制的所述控制对象相连接的其他的所述控制器的所述第一输入用缓冲存储器中存储的所述输入数据,并在所述第二输入用缓冲存储器中存储接收到的所述输入数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016128493A JP6356736B2 (ja) | 2016-06-29 | 2016-06-29 | コントローラシステムおよび制御方法 |
JP2016-128493 | 2016-06-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107544240A true CN107544240A (zh) | 2018-01-05 |
CN107544240B CN107544240B (zh) | 2019-07-30 |
Family
ID=60662572
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710516973.4A Active CN107544240B (zh) | 2016-06-29 | 2017-06-29 | 控制系统以及控制方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10606232B2 (zh) |
JP (1) | JP6356736B2 (zh) |
CN (1) | CN107544240B (zh) |
DE (1) | DE102017005879B4 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7226103B2 (ja) * | 2019-05-29 | 2023-02-21 | オムロン株式会社 | 制御システム、サポート装置およびサポートプログラム |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004362133A (ja) * | 2003-06-03 | 2004-12-24 | Omron Corp | Plcシステムおよびそのバックアップ方法 |
CN101131575A (zh) * | 2006-08-21 | 2008-02-27 | 株式会社东芝 | 具有快速输入/输出功能的控制设备及其控制数据的控制方法 |
JP2010250435A (ja) * | 2009-04-13 | 2010-11-04 | Mitsubishi Electric Corp | プラント監視制御システム |
CN102169332A (zh) * | 2010-02-25 | 2011-08-31 | 发那科株式会社 | 一种并行执行多个独立的时序程序的可编程序控制器 |
CN103941648A (zh) * | 2014-03-07 | 2014-07-23 | 东莞市升力智能科技有限公司 | 多轴运动控制系统及其控制方法 |
CN105393241A (zh) * | 2014-04-24 | 2016-03-09 | 三菱电机株式会社 | 控制系统、主控站点以及远程站点 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06266685A (ja) * | 1993-03-15 | 1994-09-22 | Toshiba Corp | 分散形制御システム |
JP3611894B2 (ja) * | 1995-03-30 | 2005-01-19 | 富士通株式会社 | 二重化構成をもつシステム制御装置 |
US20020023117A1 (en) * | 2000-05-31 | 2002-02-21 | James Bernardin | Redundancy-based methods, apparatus and articles-of-manufacture for providing improved quality-of-service in an always-live distributed computing environment |
JP3478386B2 (ja) * | 2000-05-26 | 2003-12-15 | 村田機械株式会社 | 搬送車システム |
JP4232987B2 (ja) * | 2003-06-24 | 2009-03-04 | ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング | プロセッサユニットの少なくとも2つの動作モードを切替る方法および対応するプロセッサユニット |
US7328370B2 (en) * | 2003-09-12 | 2008-02-05 | Rockwell Automation Technologies, Inc. | Safety controller with simplified interface |
US7676281B2 (en) * | 2005-05-13 | 2010-03-09 | Rockwell Automation Technologies, Inc. | Distributed database in an industrial automation environment |
US7821220B2 (en) * | 2006-09-29 | 2010-10-26 | Rockwell Automation Technologies, Inc. | Motor having integral programmable logic controller |
US8856522B2 (en) | 2007-02-27 | 2014-10-07 | Rockwell Automation Technologies | Security, safety, and redundancy employing controller engine instances |
US7684876B2 (en) * | 2007-02-27 | 2010-03-23 | Rockwell Automation Technologies, Inc. | Dynamic load balancing using virtual controller instances |
JP5141905B2 (ja) * | 2007-12-28 | 2013-02-13 | オムロン株式会社 | 安全マスタ |
WO2012090291A1 (ja) * | 2010-12-28 | 2012-07-05 | 株式会社日立製作所 | モーションコントローラ |
JP4957853B1 (ja) * | 2011-03-15 | 2012-06-20 | オムロン株式会社 | Plcのcpuユニット、plc用のシステムプログラムおよびplc用のシステムプログラムを格納した記録媒体 |
US8566816B2 (en) * | 2011-11-01 | 2013-10-22 | Lsi Corporation | Code synchronization |
JP2013168090A (ja) | 2012-02-17 | 2013-08-29 | Hitachi Ltd | マルチコントローラシステム、制御方法及びプログラム |
US20160381127A1 (en) * | 2012-09-10 | 2016-12-29 | William James Gibson | Systems and methods for dynamic networked peer-to-peer content distribution |
WO2015136970A1 (ja) * | 2014-03-14 | 2015-09-17 | オムロン株式会社 | 制御装置及び制御システム |
US10095202B2 (en) * | 2014-03-26 | 2018-10-09 | Rockwell Automation Technologies, Inc. | Multiple controllers configuration management interface for system connectivity |
US11513477B2 (en) * | 2015-03-16 | 2022-11-29 | Rockwell Automation Technologies, Inc. | Cloud-based industrial controller |
US10437212B2 (en) | 2015-04-28 | 2019-10-08 | Schneider Electric Systems Usa, Inc. | Distributed computing in a process control environment |
US20180095441A1 (en) * | 2016-02-15 | 2018-04-05 | Mitsubishi Electric Corporation | Load distribution device |
-
2016
- 2016-06-29 JP JP2016128493A patent/JP6356736B2/ja active Active
-
2017
- 2017-06-22 DE DE102017005879.2A patent/DE102017005879B4/de active Active
- 2017-06-28 US US15/636,011 patent/US10606232B2/en active Active
- 2017-06-29 CN CN201710516973.4A patent/CN107544240B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004362133A (ja) * | 2003-06-03 | 2004-12-24 | Omron Corp | Plcシステムおよびそのバックアップ方法 |
CN101131575A (zh) * | 2006-08-21 | 2008-02-27 | 株式会社东芝 | 具有快速输入/输出功能的控制设备及其控制数据的控制方法 |
JP2010250435A (ja) * | 2009-04-13 | 2010-11-04 | Mitsubishi Electric Corp | プラント監視制御システム |
CN102169332A (zh) * | 2010-02-25 | 2011-08-31 | 发那科株式会社 | 一种并行执行多个独立的时序程序的可编程序控制器 |
CN103941648A (zh) * | 2014-03-07 | 2014-07-23 | 东莞市升力智能科技有限公司 | 多轴运动控制系统及其控制方法 |
CN105393241A (zh) * | 2014-04-24 | 2016-03-09 | 三菱电机株式会社 | 控制系统、主控站点以及远程站点 |
Also Published As
Publication number | Publication date |
---|---|
US10606232B2 (en) | 2020-03-31 |
CN107544240B (zh) | 2019-07-30 |
US20180004182A1 (en) | 2018-01-04 |
JP6356736B2 (ja) | 2018-07-11 |
DE102017005879B4 (de) | 2022-11-10 |
JP2018005372A (ja) | 2018-01-11 |
DE102017005879A1 (de) | 2018-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3532037B2 (ja) | 並列計算機 | |
CN105144637B (zh) | 用于交换用户数据的接口装置和方法 | |
US9785732B2 (en) | Verification low power collateral generation | |
CN101841471B (zh) | 具有连接成多维矩阵的节点的系统及其控制方法以及设备 | |
JP4763405B2 (ja) | データ・フロー・アプリケーションのためのネットワーク・オン・チップ半自動通信アーキテクチャ | |
CN105629926B (zh) | 用于工业控制器的输入/输出模块和方法 | |
GB2507604A (en) | Rack and method thereof for simultaneously updating basic input output systems | |
US20090083466A1 (en) | Message handler and method for controlling access to data of a message memory of a communications module | |
CN105607590A (zh) | 用于在过程控制系统中提供冗余性的方法和装置 | |
CN104506462B (zh) | 一种分布式交换机中mac地址管理方法及设备 | |
CN108572793A (zh) | 数据写入和数据恢复方法、装置、电子设备及存储介质 | |
CN103870323A (zh) | 触发路由单元 | |
CN104717152A (zh) | 一种实现接口缓存动态分配的方法和装置 | |
CN106648851A (zh) | 一种多控存储中io管理的方法和装置 | |
CN102594640B (zh) | 使用发送和接收缓冲器实现的消息防丢失 | |
CN107544240B (zh) | 控制系统以及控制方法 | |
CN106873545A (zh) | 一种基于fpga的实时多任务调度系统 | |
US20100205612A1 (en) | Method and apparatus for processing protocol messages for multiple protocol instances | |
CN109508261A (zh) | 一种基于大数据的电网数据节点备份方法及备份系统 | |
CN114817091B (zh) | 基于链表的fwft fifo系统、实现方法及设备 | |
JP2010199836A (ja) | 無線ネットワーク構造 | |
JPH03506085A (ja) | マルチプロセツサ・コンピユータシステム用のマルチレベル並行通信構成 | |
CN108108120A (zh) | 数据储存系统及其数据储存方法 | |
CN102355370A (zh) | 以太网板级保护的方法、装置和系统 | |
CN108304280A (zh) | 控制异构混合内存系统异常恢复的方法、bmc及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |