DE102017005879B4 - Steuerungssystem und Steuerverfahren - Google Patents

Steuerungssystem und Steuerverfahren Download PDF

Info

Publication number
DE102017005879B4
DE102017005879B4 DE102017005879.2A DE102017005879A DE102017005879B4 DE 102017005879 B4 DE102017005879 B4 DE 102017005879B4 DE 102017005879 A DE102017005879 A DE 102017005879A DE 102017005879 B4 DE102017005879 B4 DE 102017005879B4
Authority
DE
Germany
Prior art keywords
controller
controllers
program
output
output 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
Application number
DE102017005879.2A
Other languages
English (en)
Other versions
DE102017005879A1 (de
Inventor
Motoyoshi Miyachi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fanuc Corp
Original Assignee
Fanuc Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fanuc Corp filed Critical Fanuc Corp
Publication of DE102017005879A1 publication Critical patent/DE102017005879A1/de
Application granted granted Critical
Publication of DE102017005879B4 publication Critical patent/DE102017005879B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/052Linking several PLC's
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/11Plc I-O input output
    • G05B2219/1105I-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

Steuerungssystem (10), das umfasst:eine Mehrzahl von Steuerungen (14n);eine Mehrzahl von E/A-Vorrichtungen (16n), die so konfiguriert sind, dass sie ein Steuerziel (18n) jeder der Mehrzahl von Steuerungen (14n) und jede der Mehrzahl von Steuerungen (14n) verbinden und eine erforderliche Information zwischen dem Steuerziel (18n) und jeder der Steuerungen (14n) senden;und eine Steuervorrichtung (12) höherer Ebene, die so konfiguriert ist, dass sie die Mehrzahl von Steuerungen (14n) steuert und verwaltet, wobei:die Steuervorrichtung (12) höherer Ebene eine Speichereinheit (22) umfasst, die so konfiguriert ist, dass sie jedes einer Mehrzahl von Programmen (Pn) speichert, die von jeder der Mehrzahl von Steuerungen (14n) ausgeführt werden, undeinen Prozessor (20), der so konfiguriert ist, dass er jedes der Mehrzahl von Programmen (Pn), die in der Speichereinheit (22) als selbstzugewiesenes Programm (Pn) gespeichert sind, jeder der Mehrzahl von Steuerungen (14n) zuordnet, um zu bewirken, dass jede der Mehrzahl von Steuerungen (14n) das Steuerziel (18n) steuert, das über die E/A-Vorrichtung (16n) mit jeder Steuerung (14n) verbunden ist, und ferner alle oder einen Teil der Mehrzahl von Programmen (Pn) als anderes Programm (Pn) der Steuervorrichtung (12) höherer Ebene und der Mehrzahl von Steuerungen (14n) zuordnet, um zu bewirken, dass die Steuervorrichtung (12) höherer Ebene und die Mehrzahl von Steuerungen (14n) alle oder einen Teil von Programmen (Pn), die in der Speichereinheit (22) gespeichert sind, in einem Ausführungszyklus der Mehrzahl von Steuerungen (14n) parallel doppelt ausführen; undjede der Mehrzahl von Steuerungen (14n) eine Kommunikationseinheit (34) umfasst, umfassend:einen ersten Eingabepufferspeicher (42), der so konfiguriert ist, dass er Eingabedaten speichert, die vom Steuerziel (18n) gesendet werden, das über die E/A-Vorrichtung (16n) mit der einen Steuerung (14n) verbunden ist,einen ersten Ausgabepufferspeicher (46), der so konfiguriert ist, dass er erste Ausgabedaten speichert, die durch Ausführen des selbstzugewiesenen Programms (Pn) erhalten werden, das der einen Steuerung (14n) zugeordnet ist, um das Steuerziel (18n) zu steuern, das über die E/A-Vorrichtung (16n) mit sich selbst verbunden ist, undeinen zweiten Ausgabepufferspeicher (48), der so konfiguriert ist, dass er zweite Ausgabedaten speichert, die erhalten werden, wenn die Steuervorrichtung (12) höherer Ebene oder eine andere der Steuerungen (14n) das andere Programm (Pn) ausführt, das der Steuervorrichtung (12) höherer Ebene oder der anderen der Steuerungen (14n) zugeordnet ist, um das Steuerziel (18n) zu steuern, das über die E/A-Vorrichtung (16n) mit der einen Steuerung (14n) verbunden ist, undwobei die eine Steuerung (14n) so konfiguriert ist, dass sie eines der ersten Ausgabedaten und der zweiten Ausgabedaten an das Steuerziel (18n) ausgibt, das über die E/A-Vorrichtung (16n) mit der einen Steuerung (14n) verbunden ist, auf Basis einer Auswahlinformation, die von der Steuervorrichtung (12) höherer Ebene gesendet wird, wobei die ersten Ausgabedaten im ersten Ausgabepufferspeicher (46) gespeichert werden, wobei die zweiten Ausgabedaten im zweiten Ausgabepufferspeicher (48) gespeichert werden.

Description

  • HINTERGRUND DER ERFINDUNG
  • Gebiet der Erfindung:
  • Die vorliegende Erfindung bezieht sich auf ein Steuerungssystem, das eine Mehrzahl von Steuerungen und eine Steuervorrichtung höherer Ebene umfasst, die die Mehrzahl von Steuerungen steuert und verwaltet, und auf ein Steuerverfahren.
  • Beschreibung des verwandten Standes der Technik:
  • Die JP 2013 - 168 090 A offenbart ein Mehrfachsteuerungssystem, das eine Mehrzahl von PLCs (programmierbare Logiksteuerungen), die als industrielle Vorrichtungen verwendet werden, und einen gemeinsam genutzten Server umfasst, der die Mehrzahl von PLCs verwaltet.
  • Jede der Mehrzahl von PLCs ist über eine E/A-Vorrichtung (Eingabe-/Ausgabevorrichtung) mit einem Steuerziel jeder PLC verbunden.
  • Ferner wählt der gemeinsam genutzte Server des Mehrfachsteuerungssystems bei Erkennen einer anomalen PLC eine PLC mit geringer Last aus, d. h. eine PLC, die ein zusätzliches Programm ausführen kann. Danach wird bewirkt, dass die ausgewählte PLC ein Programm lädt, das von der als anomale PLC ermittelten PLC ausgeführt wird, und das Programm anstatt der anomalen PLC ausführt.
  • Die EP 3 088 971 A1 stellt Stand der Technik nach §3(2) Patentgesetz dar und beschreibt verteilte Rechenvorgänge in einem Computersystem zur Prozesssteuerung, mit der Vorrichtungen wie eine Pumpe und ein Ventil gesteuert werden. Rechenknoten des Systems führen dabei Steueranwendungen parallel aus.
  • Die US 2015 / 0 018 983 A1 beschreibt ein Steuerungssystem für eine Industrieumgebung mit einer Mehrzahl von Steuerungen und/oder Steuerungsinstanzen, die mit Eingabe-/Ausgabevorrichtungen kommunizieren, einem Speicher und einer Optimierungskomponente. In einer Ausführungsform sorgt die Optimierungskomponente dafür, dass für die Steuerungen und/oder die Steuerungsinstanzen Back-up-Steuerungen und/oder Back-up-Steuerungsinstanzen zur Verfügung stehen, die den Steuerungen und/oder den Steuerungsinstanzen im Wesentlichen gleich sind und dann zum Einsatz kommen, wenn in den Steuerungen und/oder in den Steuerungsinstanzen ein Fehler auftritt. Dabei werden die Back-up-Steuerungen und/oder die Back-up-Steuerungsinstanzen in nahtloser und dynamischer Weise eingesetzt.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Im Allgemeinen werden Daten wie z. B. ein Eingabe-/Ausgabesignal einer E/A-Vorrichtung (E/A-Gerät) in einem Hauptspeicher einer PLC gespeichert. Wenn eine Anomalie in einer bestimmten PLC auftritt und wenn eine andere PLC die Steuerung eines Steuerziels übernimmt, das von der PLC gesteuert wurde, bei der eine Anomalie aufgetreten ist, muss die andere PLC somit Daten, die den bislang erhaltenen Ausführungsergebnissen nicht widersprechen, an die mit dem Steuerziel der anomalen PLC verbundenen E/A-Vorrichtung ausgeben. Somit muss die bestimmte PLC Daten, die im Hauptspeicher gespeichert sind, wie sie sind in die andere PLC kopieren, die die Steuerung übernommen hat.
  • Dieses E/A-Signal (Eingabe-/Ausgabesignal) und dergleichen haben eine große Größe von mehreren Hunderten Kilobytes bis mehrere Megabytes. Wenn Daten aus dem Hauptspeicher der PLC, bei der die Anomalie aufgetreten ist, über das Ethernet (eingetragene Handelsmarke) auf die andere PLC kopiert werden, überschreitet somit eine Kopierzeit einen Ausführungszyklus der PLC zum Ausführen des Programms im Wesentlichen. Aus diesem Grund ist es nicht möglich, die Steuerung des Steuerziels fortzusetzen. Wenn bei einer Steuereinheit einer PLC eine Anomalie auftritt, ist die Zuverlässigkeit von in einem Hauptspeicher gespeicherten Daten ferner ebenfalls gering. Aus diesem Grund wird nicht bevorzugt, diese Daten auf die andere PLC zu kopieren und die Steuerung des Steuerziels der PLC, bei der die Anomalie aufgetreten ist, fortzusetzen.
  • Aus diesem Grund kann eine in der obigen JP 2013 - 168 090 A offenbarte Technik Wahrscheinlichkeiten, dass die Steuerung des Steuerziels unterbrochen wird oder Daten an das Steuerziel ausgegeben werden, die den bislang erhaltenen Ausführungsergebnissen widersprechen, wenn die Steuerung des Steuerziels auf die andere PLC gewechselt wird, nicht umgehen.
  • Ein Ziel der vorliegenden Erfindung liegt daher darin, ein Steuerungssystem und ein Steuerverfahren bereitzustellen, das Steuersubjekte für ein Steuerziel wechseln kann, während gleichzeitig die Steuerung des Steuerziels in einem stabilen Zustand fortgesetzt wird.
  • Ein erster Aspekt der vorliegenden Erfindung ist ein Steuerungssystem gemäß Anspruch 1. Das Steuerungssystem umfasst eine Mehrzahl von Steuerungen; eine Mehrzahl von E/A-Vorrichtungen, die jeweils so konfiguriert sind, dass sie ein Steuerziel jeder der Mehrzahl von Steuerungen und jede der Mehrzahl von Steuerungen verbinden und eine erforderliche Information zwischen diesen senden; und eine Steuervorrichtung höherer Ebene, die so konfiguriert ist, dass sie die Mehrzahl von Steuerungen steuert und verwaltet, wobei die Steuervorrichtung höherer Ebene eine Speichereinheit umfasst, die so konfiguriert ist, dass sie eine Mehrzahl von Programmen speichert, die von jeder der Mehrzahl von Steuerungen ausgeführt werden, und einen Prozessor, der so konfiguriert ist, dass er die Mehrzahl von Programmen, die in der Speichereinheit gespeichert sind, als selbstzugewiesene Programme für jeweilige Steuerungen zuordnet, um zu bewirken, dass jede der Mehrzahl von Steuerungen das Steuerziel steuert, das über die E/A-Vorrichtung mit diesen verbunden ist, und ferner alle oder einen Teil der Mehrzahl von Programmen, die in der Speichereinheit gespeichert sind, der Steuervorrichtung höherer Ebene als andere Programme zuordnet, und die Mehrzahl von Steuerungen so steuert, dass alle oder ein Teil der Mehrzahl von Programmen in einem Ausführungszyklus der Mehrzahl von Steuerungen parallel doppelt ausgeführt werden bzw. wird, und wobei jede der Mehrzahl von Steuereinheiten eine Kommunikationseinheit umfasst, umfassend einen ersten Eingabepufferspeicher, der so konfiguriert ist, dass er Eingabedaten speichert, die von dem Steuerziel gesendet werden, das über die E/A-Vorrichtung mit der einen Steuerung verbunden ist, einen ersten Ausgabepufferspeicher, der so konfiguriert ist, dass er erste Ausgabedaten speichert, die durch Ausführen des selbstzugewiesenen Programms erhalten werden, das der einen Steuerung zugeordnet ist, um das Steuerziel zu steuern, das über die E/A-Vorrichtung mit der einen Steuerung verbunden ist, und einen zweiten Ausgabepufferspeicher, der so konfiguriert ist, dass er zweite Ausgabedaten speichert, die erhalten werden, wenn die Steuervorrichtung höherer Ebene oder eine andere Steuerung das andere Programm ausführt, das der Steuervorrichtung höherer Ebene oder der anderen Steuerung zugeordnet ist, um das Steuerziel zu steuern, das über die E/A-Vorrichtung mit der einen Steuerung verbunden ist, und wobei die eine Steuerung so konfiguriert ist, dass sie eines der ersten Ausgabedaten und der zweiten Ausgabedaten an das Steuerziel ausgibt, das über die E/A-Vorrichtung mit der einen Steuerung verbunden ist, auf Basis einer Auswahlinformation, die von der Steuervorrichtung höherer Ebene gesendet wird, wobei die ersten Ausgabedaten im ersten Ausgabepufferspeicher gespeichert werden, wobei die zweiten Ausgabedaten im zweiten Ausgabepufferspeicher gespeichert werden.
  • Gemäß dieser Konfiguration ist es möglich, die Ausgabedaten, die bislang erhaltenen Ausführungsergebnissen nicht widersprechen, an die mit dem Steuerziel verbundene E/A-Vorrichtung auszugeben, und zwar sogar dann, wenn Steuersubjekte zum Steuern des Steuerziels gewechselt werden. Folglich ist es möglich, die Steuersubjekte für das Steuerziel zu wechseln, während die Steuerung des Steuerziels im stabilen Zustand fortgesetzt wird.
  • Der erste Aspekt der vorliegenden Erfindung ist das Steuerungssystem und jede der Mehrzahl von Steuerungen kann ferner einen Prozessor umfassen, der so konfiguriert ist, dass er die ersten Ausgabedaten durch Ausführen des selbstzugewiesenen Programms generiert, die der einen Steuerung zugeordnet sind, auf Basis der Eingabedaten, die vom Steuerziel gesendet werden, das über die E/A-Vorrichtung mit der einen Steuerung verbunden ist, und dass er die zweiten Ausgabedaten durch Ausführen des anderen Programms, das der einen Steuerung zugeordnet ist, auf Basis der Eingabedaten generiert, die vom Steuerziel gesendet werden, das über eine andere E/A-Vorrichtung mit der anderen der Steuerungen verbunden ist und gemäß dem anderen Programm gesteuert wird, das der einen Steuerung zugeordnet ist. Auf diese Weise kann die eine Steuerung das Programm (das selbstzugewiesene Programm oder das andere Programm) auf Basis der Eingabedaten ausführen, die von einem beliebigen Steuerziel gesendet werden, die Ausgabedaten generieren, die an das Steuerziel ausgegeben werden, das die Eingabedaten gesendet hat, und das Steuerziel im stabilen Zustand steuern.
  • Der erste Aspekt der vorliegenden Erfindung ist das Steuerungssystem und der Prozessor der Steuervorrichtung höherer Ebene kann so konfiguriert werden, dass er die zweiten Ausgabedaten durch Ausführen des anderen Programms generiert, das der Steuervorrichtung höherer Ebene zugeordnet ist, auf Basis der Eingabedaten, die vom Steuerziel gesendet werden, das gemäß dem anderen Programm gesteuert wird, das der Steuervorrichtung höherer Ebene zugeordnet ist. Folglich kann die Steuervorrichtung höherer Ebene das andere Programm auf Basis der Eingabedaten ausführen, die vom Steuerziel gesendet werden, die Ausgabedaten generieren, die an das Steuerziel ausgegeben werden, das die Eingabedaten gesendet hat, und das Steuerziel im stabilen Zustand steuern.
  • Der erste Aspekt der vorliegenden Erfindung ist das Steuerungssystem und der Prozessor der Steuervorrichtung höherer Ebene kann so konfiguriert sein, dass er die Auswahlinformation an die Mehrzahl von Steuerungen ausgibt, um zu bewirken, dass eine der Steuerungen, die als normale Steuerung ermittelt wurde, die ersten Ausgabedaten, die im ersten Ausgabepufferspeicher gespeichert sind, an das Steuerziel ausgibt, das über die E/A-Vorrichtung mit der normalen Steuerung verbunden ist, und um zu bewirken, dass eine andere der Steuerungen, die als anomale Steuerung ermittelt wurde, die zweiten Ausgabedaten, die im zweiten Ausgabepufferspeicher gespeichert sind, an das Steuerziel ausgibt, das über die E/A-Vorrichtung mit der anomalen Steuerung verbunden ist. Demgemäß kann, sogar wenn eine Anomalie in der Steuerung auftritt, die andere normale Steuerung anstatt der als anomale Steuerung ermittelten Steuerung das Steuerziel steuern, das mit der als anomale Steuerung ermittelten Steuerung verbunden ist. Folglich ist es möglich, die Steuersubjekte des Steuerziels, das mit der als anomale Steuerung ermittelten Steuerung verbunden ist, zu wechseln, während die Steuerung des Steuerziels, das mit der als anomale Steuerung ermittelten Steuerung verbunden ist, im stabilen Zustand fortgesetzt wird.
  • Der erste Aspekt der vorliegenden Erfindung ist das Steuerungssystem und der Prozessor der Steuervorrichtung höherer Ebene kann so konfiguriert sein, dass er ermittelt, ob jede der Mehrzahl von Steuerungen normal oder anomal ist, auf Basis zumindest eines von einer Fehlerinformation und einem Überlebenssignal jeder der Mehrzahl von Steuerungen, wie von der Mehrzahl von Steuerungen erhalten. Folglich kann die Steuervorrichtung höherer Ebene genau ermitteln, ob die Steuerung normal oder anomal ist.
  • Der erste Aspekt der vorliegenden Erfindung ist das Steuerungssystem und die Kommunikationseinheit der Steuerung kann ferner eine Auswahleinheit umfassen, die so konfiguriert ist, dass sie eine der ersten Ausgabedaten und der zweiten Ausgabedaten auf Basis der Auswahlinformation als Ausgabedaten auswählt, wobei die ersten Ausgabedaten im ersten Ausgabepufferspeicher gespeichert werden, die zweiten Ausgabedaten im zweiten Ausgabepufferspeicher gespeichert werden und die Ausgabedaten an das Steuerziel ausgegeben werden, das über die E/A-Vorrichtung mit jeder Steuerung verbunden ist. Folglich ist es möglich, die an die E/A-Vorrichtung ausgegebenen Ausgabedaten auf einfache Weise zu wechseln.
  • Der erste Aspekt der vorliegenden Erfindung ist das Steuerungssystem und der Prozessor der Steuervorrichtung höherer Ebene kann so konfiguriert sein, dass er eine Lastinformation über die Kommunikationseinheit der Mehrzahl von Steuerungen erhält und das andere Programm auf Basis der erhaltenen Lastinformation zuordnet, wobei die Lastinformation eine Last indiziert, die angelegt ist, wenn jede der Mehrzahl von Steuerungen das selbstzugewiesene Programm ausführt. Folglich ist es möglich, das andere Programm zuzuordnen, so dass jede der Mehrzahl von Steuerungen die Verarbeitung des Programms in einem Ausführungszyklus beendet.
  • Der erste Aspekt der vorliegenden Erfindung ist das Steuerungssystem und die Steuervorrichtung höherer Ebene kann so konfiguriert sein, dass sie die Eingabedaten empfängt, die im ersten Eingabepufferspeicher der einen Steuerung gespeichert sind, die über die E/A-Vorrichtung mit dem Steuerziel verbunden ist, das gemäß dem anderen Programm gesteuert wird, das der Steuervorrichtung höherer Ebene zugeordnet ist, und dass sie die zweiten Ausgabedaten an die eine Steuerung sendet, die über die E/A-Vorrichtung mit dem Steuerziel verbunden ist, das gemäß dem anderen Programm gesteuert wird, das der Steuervorrichtung höherer Ebene zugeordnet ist. Folglich kann die Steuervorrichtung höherer Ebene die zweiten Ausgabedaten, die den bislang erhaltenen Ausführungsergebnissen nicht widersprechen, an die Steuerung senden und das Steuerziel steuern, das über die E/A-Vorrichtung mit der PLC verbunden ist.
  • Der erste Aspekt der vorliegenden Erfindung ist das Steuerungssystem und jede einer der Mehrzahl von Steuerungen kann ferner einen zweiten Eingabepuffer umfassen, der so konfiguriert ist, dass er die Eingabedaten speichert, die vom Steuerziel gesendet werden, das über die E/A-Vorrichtung mit einer anderen der Steuerungen verbunden ist und gemäß dem anderen Programm gesteuert wird, das der einen Steuerung zugeordnet ist, und einen dritten Ausgabepufferspeicher, der so konfiguriert ist, dass er die zweiten Ausgabedaten speichert, die durch Ausführen des anderen Programms erhalten werden, das der einen Steuerung zugeordnet ist, um das Steuerziel zu steuern, das über die E/A-Vorrichtung mit der anderen der Steuerungen verbunden ist, und der so konfiguriert ist, dass er die Eingabedaten über die Steuervorrichtung höherer Ebene empfängt, wobei die Eingabedaten im ersten Eingabepufferspeicher der anderen der Steuerungen gespeichert werden, die über die E/A-Vorrichtung mit dem Steuerziel verbunden sind, das gemäß dem anderen Programm gesteuert wird, das der einen Steuerung zugeordnet ist, dass er die empfangenen Eingabedaten im zweiten Eingabepufferspeicher speichert und die zweiten Ausgabedaten über die Steuervorrichtung höherer Ebene an die andere der Steuerungen sendet, wobei die zweiten Ausgabedaten im dritten Ausgabepufferspeicher gespeichert werden und die andere der Steuerungen über die E/A-Vorrichtung mit dem Steuerziel verbunden ist, das gemäß dem anderen Programm gesteuert wird, das der einen Steuerung zugeordnet ist. Folglich kann die eine Steuerung höherer Ebene die zweiten Ausgabedaten, die den bislang erhaltenen Ausführungsergebnissen nicht widersprechen, an die andere Steuerung senden und das Steuerziel steuern, das über die E/A-Vorrichtung mit der anderen Steuerung verbunden ist.
  • Ein zweiter Aspekt der vorliegenden Erfindung ist ein Steuerverfahren eines Steuerungssystems gemäß Anspruch 10. Das Steuerungssystem umfasst eine Mehrzahl von Steuerungen; eine Mehrzahl von E/A-Vorrichtungen, die so konfiguriert sind, dass sie ein Steuerziel jeder der Mehrzahl von Steuerungen mit jeder der Mehrzahl von Steuerungen verbinden und eine erforderliche Information zwischen dem Steuerziel und jeder der Steuerungen senden; und eine Steuervorrichtung höherer Ebene, die so konfiguriert ist, dass sie die Mehrzahl von Steuerungen steuert und verwaltet, wobei die Steuervorrichtung höherer Ebene eine Speichereinheit umfasst, die so konfiguriert ist, dass sie jedes einer Mehrzahl von Programmen speichert, die von jeder der Mehrzahl von Steuerungen ausgeführt werden, und wobei jede der Mehrzahl von Steuerungen eine Kommunikationseinheit umfasst, die einen ersten Eingabepufferspeicher, einen ersten Ausgabepufferspeicher und einen zweiten Ausgabepufferspeicher umfasst. Das Steuerverfahren umfasst: in der Steuervorrichtung höherer Ebene einen Zuordnungsschritt zum Zuordnen jedes der Mehrzahl von Programmen, die in der Speichereinheit gespeichert sind, als selbstzugewiesenes Programm, an jede der Mehrzahl von Steuerungen, um zu bewirken, dass jede der Mehrzahl von Steuerungen das Steuerziel steuert, das über die E/A-Vorrichtung mit jeder Steuerung verbunden ist, und ferner zum Zuordnen aller oder eines Teils der Mehrzahl von Programmen als anderes Programm zur Steuervorrichtung höherer Ebene und der Mehrzahl von Steuerungen, um zu bewirken, dass die Steuervorrichtung höherer Ebene und die Mehrzahl von Steuerungen alle oder den Teil der Mehrzahl von Programmen, die in der Speichereinheit gespeichert sind, in einem Ausführungszyklus der Mehrzahl von Steuerungen parallel doppelt ausführen; und in jeder einer der Mehrzahl von Steuerungen einen ersten Eingabe-/Speicherschritt zum Speichern von Eingabedaten im ersten Eingabepufferspeicher, wobei die Eingabedaten vom Steuerziel gesendet werden, das über die E/A-Vorrichtung mit der einen Steuerung verbunden ist; in der einen Steuerung einen ersten Ausgabe-/Speicherschritt des Speicherns von ersten Ausgabedaten im ersten Ausgabepufferspeicher, wobei die ersten Ausgabedaten durch Ausführen des selbstzugewiesenen Programms erhalten werden, das der einen Steuerung zugeordnet ist, um das Steuerziel zu steuern, das über die E/A-Vorrichtung mit der einen Steuerung verbunden ist; in der einen Steuerung einen zweiten Ausgabe-/Speicherschritt zum Speichern von zweiten Ausgabedaten im zweiten Ausgabepufferspeicher, wobei die zweiten Ausgabedaten erhalten werden, wenn die Steuervorrichtung höherer Ebene oder eine andere der Steuerungen des andere Programm ausführt, das der Steuervorrichtung höherer Ebene oder der anderen Steuerung zugeordnet ist, um das Steuerziel zu steuern, das über die E/A-Vorrichtung mit der einen Steuerung verbunden ist; und in der einen Steuerung einen Ausgabeschritt zum Ausgeben einer der ersten Ausgabedaten und der zweiten Ausgabedaten an das Steuerziel, das über die E/A-Vorrichtung mit der einen Steuerung verbunden ist, auf Basis einer Auswahlinformation, die von der Steuervorrichtung höherer Ebene gesendet wurde, wobei die ersten Ausgabedaten im ersten Ausgabepufferspeicher gespeichert werden, wobei die zweiten Ausgabedaten im zweiten Ausgabepufferspeicher gespeichert werden.
  • Gemäß dieser Konfiguration ist es möglich, die Ausgabedaten, die den bislang erhaltenen Ausführungsergebnissen nicht widersprechen, an die mit dem Steuerziel verbundene E/A-Vorrichtung auszugeben, und zwar sogar dann, wenn das Steuersubjekt gewechselt wird, das das Steuerziel steuert. Folglich ist es möglich, das Steuersubjekt für das Steuerziel zu wechseln, während die Steuerung des Steuerziels im stabilen Zustand fortgesetzt wird.
  • Der zweite Aspekt der vorliegenden Erfindung ist ein Steuerverfahren und kann ferner umfassen: in der einen Steuerung einen ersten Generierungsschritt zum Generieren der ersten Ausgabedaten durch Ausführen des selbstzugewiesenen Programms, das der einen Steuerung zugeordnet ist, auf Basis der Eingabedaten, die vom Steuerziel gesendet werden, das über die E/A-Vorrichtung mit der einen Steuerung verbunden ist; in der Steuerung einen zweiten Generierungsschritt des Generierens der zweiten Ausgabedaten durch Ausführen des anderen Programms, das der einen Steuerung zugeordnet ist, auf Basis der Eingabedaten, die vom Steuerziel gesendet werden, das über die E/A-Vorrichtung mit einer anderen der Steuerungen verbunden ist und gemäß dem anderen Programm gesteuert wird, das der einen Steuerung zugeordnet ist; und in der Steuervorrichtung höherer Ebene einen dritten Generierungsschritt des Generierens der zweiten Ausgabedaten durch Ausführen des anderen Programms, das der Steuervorrichtung höherer Ebene zugeordnet ist, auf Basis der Eingabedaten, die vom Steuerziel gesendet werden, das gemäß dem anderen Programm gesteuert wird, das der Steuervorrichtung höherer Ebene zugeordnet ist. Folglich kann die Steuerung das Programm (das selbstzugewiesene Programm oder das andere Programm) auf Basis der Eingabedaten ausführen, die vom Steuerziel gesendet werden, die Ausgabedaten generieren, die an das Steuerziel ausgegeben werden, das die Eingabedaten gesendet hat, und das Steuerziel im stabilen Zustand steuern. Ferner kann die Steuervorrichtung höherer Ebene das andere Programm auf Basis der Eingabedaten ausführen, die vom Steuerziel gesendet werden, die Ausgabedaten generieren, die an das Steuerziel ausgegeben werden, das die Eingabedaten gesendet hat, und das Steuerziel im stabilen Zustand steuern.
  • Der zweite Aspekt der vorliegenden Erfindung ist das Steuerverfahren, die Kommunikationseinheit kann ferner eine Auswahleinheit umfassen und das Steuerverfahren kann in der Steuervorrichtung höherer Ebene ferner einen Anomalieermittlungsschritt zum Ermitteln , ob jede der Mehrzahl von Steuerungen normal oder anomal ist, auf Basis zumindest eines von einer Fehlerinformation und eines Überlebenssignals der jeden der Mehrzahl von Steuerungen, wie von der Mehrzahl von Steuerungen erhalten; und in der Steuervorrichtung höherer Ebene einen Auswahl-/Ausgabeschritt zum Ausgeben der Auswahlinformation an die Mehrzahl von Steuerungen, um zu bewirken, dass eine der Steuerungen, die als normal ermittelt wurde, die ersten Ausgabedaten, die im ersten Ausgabepufferspeicher gespeichert sind, an das Steuerziel ausgibt, das über die E/A-Vorrichtung mit der normalen Steuerung verbunden ist, und um zu bewirken, dass eine andere der Steuerung, die als anomal ermittelt wurde, die zweiten Ausgabedaten, die im zweiten Ausgabepufferspeicher gespeichert sind, an das Steuerziel ausgibt, das über die E/A-Vorrichtung mit der anomalen Steuerung verbunden ist; und in der Auswahleinheit der Kommunikationseinheit jeder der Mehrzahl von Steuerungen einen Auswahlschritt zum Auswählen eines der ersten Ausgabedaten und der zweiten Ausgabedaten als Ausgabedaten auf Basis der Auswahlinformation, wobei die ersten Ausgabedaten im ersten Ausgabepufferspeicher gespeichert werden, die zweiten Ausgabedaten im zweiten Ausgabepufferspeicher gespeichert werden und die Ausgabedaten an das Steuerziel ausgegeben werden, das über die E/A-Vorrichtung mit jeder Steuerung verbunden ist. Folglich kann die Steuervorrichtung höherer Ebene genau ermitteln, ob die Steuerung normal oder anomal ist. Ferner kann, sogar wenn eine Anomalie in der Steuerung auftritt, die eine andere normale Steuerung anstatt der als anomale Steuerung ermittelten Steuerung das Steuerziel steuern, das mit der als anomale Steuerung ermittelten Steuerung verbunden ist. Folglich ist es möglich, die Steuersubjekte des Steuerziels, das mit der als anomale Steuerung ermittelten Steuerung verbunden ist, zu wechseln, während die Steuerung des Steuerziels, das mit der als anomale Steuerung ermittelten Steuerung verbunden ist, im stabilen Zustand fortgesetzt wird. Ferner kann die Kommunikationseinheit die an die E/A-Vorrichtung ausgegebenen Ausgabedaten auf einfache Weise wechseln.
  • Der zweite Aspekt der vorliegenden Erfindung ist das Steuerverfahren und kann in der Steuervorrichtung höherer Ebene einen Erhaltungsschritt zum Erhalten einer Lastinformation über die Kommunikationseinheit der Mehrzahl von Steuerungen umfassen, wobei die Lastinformation eine Last indiziert, die angelegt ist, wenn jede der Mehrzahl von Steuerungen das selbstzugewiesene Programm ausführt, und im Zuordnungsschritt kann das andere Programm auf Basis der erhaltenen Lastinformation zugeordnet werden. Folglich ist es möglich, das andere Programm zuzuordnen, um zu bewirken, dass jede der Mehrzahl von Steuerungen die Verarbeitung des Programms in einem Ausführungszyklus beendet.
  • Der zweite Aspekt der vorliegenden Erfindung ist das Steuerverfahren und kann ferner umfassen: in der Steuervorrichtung höherer Ebene einen Empfangsschritt zum Empfangen der Eingabedaten, die im ersten Eingabepufferspeicher der Steuerung gespeichert sind, die über die E/A-Vorrichtung mit dem Steuerziel verbunden ist, das gemäß dem anderen Programm gesteuert wird, das der Steuervorrichtung höherer Ebene zugeordnet ist, und in der Steuervorrichtung höherer Ebene einen ersten Sendeschritt zum Senden der zweiten Ausgabedaten an die Steuerung, die über die E/A-Vorrichtung mit dem Steuerziel verbunden ist, das gemäß dem anderen Programm gesteuert wird, das der Steuervorrichtung höherer Ebene zugeordnet ist. Folglich kann die Steuervorrichtung höherer Ebene die zweiten Ausgabedaten, die den bislang erhaltenen Ausführungsergebnissen nicht widersprechen, an die Steuerung senden und das Steuerziel steuern, das über die E/A-Vorrichtung mit der PLC verbunden ist.
  • Der zweite Aspekt der vorliegenden Erfindung ist das Steuerverfahren, die Kommunikationseinheit kann ferner einen zweiten Eingabepufferspeicher und einen dritten Ausgabepufferspeicher umfassen, das Steuerverfahren kann ferner umfassen: in der einen Steuerung einen zweiten Eingabe-/Speicherschritt zum Speichern der Eingabedaten im zweiten Eingabepufferspeicher, wobei die Eingabedaten vom Steuerziel gesendet werden, das über die E/A-Vorrichtung mit der anderen Steuerung verbunden ist und gemäß dem anderen Programm gesteuert wird, das der einen Steuerung zugeordnet ist; und in der einen Steuerung einen dritten Ausgabe-/Speicherschritt zum Speichern der zweiten Ausgabedaten im dritten Ausgabepufferspeicher, wobei die zweiten Ausgabedaten durch Ausführen des anderen Programms erhalten werden, das der einen Steuerung zugeordnet ist, um das Steuerziel zu steuern, das über die E/A-Vorrichtung mit der anderen Steuerung verbunden ist; und in der einen Steuerung einen zweiten Sendeschritt zum Senden der zweiten Ausgabedaten, die im dritten Ausgabepufferspeicher gespeichert sind, über die Steuervorrichtung höherer Ebene an die andere Steuerung, und wobei die andere Steuerung über die E/A-Vorrichtung mit dem Steuerziel verbunden ist, das gemäß dem anderen Programm gesteuert wird, das der einen Steuerung zugeordnet ist, und wobei im zweiten Eingabe-/Speicherschritt die eine Steuerung so konfiguriert sein kann, dass sie die Eingabedaten über die Steuervorrichtung höherer Ebene empfängt, wobei die Eingabedaten im ersten Eingabepufferspeicher der anderen Steuerung gespeichert werden, die über die E/A-Vorrichtung mit dem Steuerziel verbunden ist, das gemäß dem anderen Programm gesteuert wird, das der einen Steuerung zugeordnet ist, und dass sie die empfangenen Eingabedaten im zweiten Eingabepufferspeicher speichert. Folglich kann die eine Steuerung höherer Ebene die zweiten Ausgabedaten, die den bislang erhaltenen Ausführungsergebnissen nicht widersprechen, an die andere Steuerung senden und das Steuerziel steuern, das über die E/A-Vorrichtung mit der anderen Steuerung verbunden ist.
  • Gemäß der vorliegenden Erfindung ist es möglich, die Ausgabedaten, die bislang erhaltenen Ausführungsergebnissen nicht widersprechen, an die mit dem Steuerziel verbundene E/A-Vorrichtung auszugeben, und zwar sogar dann, wenn Steuersubjekte gewechselt werden, die das Steuerziel steuern. Folglich ist es möglich, das Steuersubjekt für das Steuerziel zu wechseln, während die Steuerung des Steuerziels im stabilen Zustand fortgesetzt wird.
  • Die obigen und andere Ziele, Merkmale und Vorteile der vorliegenden Erfindung gehen aus der folgenden Beschreibung in Zusammenschau mit den beiliegenden Zeichnungen besser hervor, in denen eine bevorzugte Ausführungsform der vorliegenden Erfindung beispielhaft veranschaulicht ist.
  • Figurenliste
    • 1 ist ein ganzes schematisches Konfigurationsschaubild eines PLC-Systems gemäß einer Ausführungsform;
    • 2 ist ein schematisches Konfigurationsschaubild eines PCs, der in 1 gezeigt ist;
    • 3 ist ein schematisches Konfigurationsschaubild einer PLC, die in 1 gezeigt ist;
    • 4 ist ein Ablaufplan, der einen Programmzuordnungsvorgang des PLC-Systems zeigt;
    • 5 ist eine Ansicht, die ein Beispiel zeigt, wobei alle Programme, die in einem Hauptspeicher gespeichert sind, wie in 2 gezeigt, jeweils einer Mehrzahl von PLCs zugeordnet sind, um zu bewirken, dass jede der Mehrzahl von PLCs eine E/A-Vorrichtung steuert, die mit jeder der Mehrzahl von PLCs verbunden ist;
    • 6 ist eine Zeitgraphik, die zeigt, dass jede der Mehrzahl von PLCs ein selbstzugewiesenes Programm (das zugeordnete selbstzugewiesene Programm aus der Zuordnung, wie in 5 gezeigt) ausführt (verarbeitet);
    • 7 ist eine Ansicht, die ein Beispiel zeigt, wobei alle Programme, die in dem Hauptspeicher gespeichert sind, wie in 2 gezeigt, dem PC und der Mehrzahl von PLCs zugeordnet sind, um zu bewirken, dass alle Programme in einem Ausführungszyklus parallel doppelt ausgeführt werden;
    • 8 ist eine Zeitgraphik, die zeigt, dass jede der Mehrzahl von PLCs das eine oder die mehreren Programme (das selbstzugewiesene Programm und die anderen Programme, die durch die Zuordnung zugeordnet wurden, wie in 7 gezeigt) ausführt (verarbeitet);
    • 9 ist ein Teilablaufplan, der einen Verarbeitungsvorgang in Schritt S6 von 4 zeigt;
    • 10 ist eine Ansicht, die ein Beispiel zeigt, wobei, wenn eine Anomalie in einer der Mehrzahl von PLCs auftritt, der PC anstatt der anomalen PLC eine E/A-Vorrichtung steuert, die mit der anomalen PLC verbunden ist;
    • 11 ist ein ausführliches Konfigurationsschaubild der PLC, wie in 3 gezeigt;
    • 12 ist ein ausführliches Konfigurationsschaubild des PCs, wie in 2 gezeigt;
    • 13 ist ein Ablaufplan, der eine Verarbeitung zum Ermitteln eines logischen Werts einer Auswahlinformation durch den PC zeigt;
    • 14 ist eine Zeitgraphik, die eine Verarbeitung einer Datenlieferung zwischen einer normalen PLC und dem PC und zwischen der normalen PLC und einer E/A-Vorrichtung zeigt, die mit der normalen PLC verbunden ist; und
    • 15 ist eine Zeitgraphik, die eine Verarbeitung einer Datenlieferung zwischen einer anormalen PLC und dem PC und zwischen der anomalen PLC und einer E/A-Vorrichtung zeigt, die mit der anomalen PLC verbunden ist.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Im Folgenden wird eine bevorzugte Ausführungsform eines Steuerungssystems und eines Steuerverfahrens gemäß der vorliegenden Erfindung unter Bezugnahme auf die beiliegenden Zeichnungen ausführlich beschrieben.
  • 1 ist ein ganzes schematisches Konfigurationsschaubild eines PLC-Systems (Steuerungssystems) 10 gemäß der Ausführungsform.
  • Das PLC-System 10 umfasst einen PC 12, der eine Steuervorrichtung höherer Ebene ist, eine Mehrzahl (bei der vorliegenden Ausführungsform fünf) von PLCs (programmierbaren Steuerungen) 14n (n = 1, 2 ... und 5), die durch eine Verkettung mit dem PC 12 verbunden sind, und eine Mehrzahl von E/A-Vorrichtungen (externe Signaleingabe-/Signalausgabevorrichtungen) 16n, die jeweils mit einer Mehrzahl von PLCs 14n (PLC 141 bis PLC 145) verbunden sind, die durch die Verkettung verbunden sind.
  • Die Mehrzahl von E/A-Vorrichtungen 16n ist mit Steuerzielen 18n der Mehrzahl von PLCs 14n verbunden. Das heißt, dass die Mehrzahl von E/A-Vorrichtungen 16n die Steuerziele 18n der Mehrzahl von PLCs 14n mit der Mehrzahl von PLCs 14n verbinden und erforderliche Informationen (Daten) zwischen den Steuerzielen 18n und den PLCs 14n senden.
  • Bei dieser Beschreibung stellt 161 die Mehrzahl von E/A-Vorrichtungen 16n dar, die durch die Verkettung mit der PLC 141 verbunden sind. Gleichermaßen stellen 162 bis 165 die Mehrzahl von E/A-Vorrichtungen 16n dar, die durch die Verkettung jeweils mit den PLCs 142 bis 145 verbunden sind. 181 stellt das Steuerziel 18n dar, das mit den E/A-Vorrichtungen 161 verbunden ist. Gleichermaßen stellen 182 bis 185 die Steuerziele 18n dar, die mit den E/A-Vorrichtungen 162 bis 165 verbunden sind. Somit sind die Steuerziele 182 bis 185 über die E/A-Vorrichtungen 161 mit den PLCs 141 verbunden. Gleichermaßen sind die Steuerziele 182 bis 185 über die E/A-Vorrichtungen 162 bis 165 mit der PLC 142 bis PLC 145 verbunden. Die Steuerziele 18n sind z. B. Motoren oder Pumpen.
  • Der PC 12, die Mehrzahl von PLCs 14n und die Mehrzahl von E/A-Vorrichtungen 16n sind über ein EtherCAT-System (eingetragene Handelsmarke) verbunden. Beim Senden von Daten (Signal) senden der PC 12 und die PLC 14n somit eine Adressinformation des Sendeziels PC oder PLC 14n und Sendedaten in ein Frame und senden dieses. Beim Senden der Daten an die PLC 14n sendet der PC 12 das Frame, in das eine Adressinformation der Sendeziel-PLC 14n und die Sendedaten geschrieben sind, an die PLC 141, die mit einer darauffolgenden Stufe des PC 12 verbunden ist. Wenn das Frame vom PC 12 oder der PLC 14n gesendet wird, der bzw. die mit einer vorherigen Stufe verbunden ist, ermittelt die PLC 14n, ob das Frame gesendet wurde, auf Basis der im Frame umfassten Adressinformation. Die PLC 14n importiert Daten, die in das Frame geschrieben sind, wenn ermittelt wird, dass das gesendete Frame an sich selbst gesendet wird, und sendet das gesendete Frame wie es ist an die PLC 14n, die mit einer darauffolgenden Stufe verbunden ist, wenn ermittelt wird, dass das Frame nicht an sich selbst gesendet wird.
  • Das Gleiche gilt für den Fall einer Datensendung von jeder PLC 14n an den PC 12, wobei die PLC 14n das Frame sendet, das an den PC 12 adressiert wird, wie von der darauffolgenden Stufe an den PC 12 oder die PLC 14n gesendet, der bzw. die mit der vorherigen Stufe verbunden ist. In dieser Hinsicht werden das Senden und Empfangen zwischen den PLCs 14n über den PC 12 durchgeführt. Beispielsweise wenn die PLC 142 Daten an die PLC 144 sendet, sendet die PLC 142 das Frame, das die Daten umfasst, einmal an den PC 12 und danach sendet der PC 12 die Daten an den PLC 144.
  • 2 ist ein schematisches Konfigurationsschaubild des PC 12. 3 ist ein schematisches Konfigurationsschaubild der PLC 14n. Der PC 12 umfasst einen Prozessor 20 wie z. B. eine CPU, einen Hauptspeicher (Speichereinheit) 22 und eine Kommunikationseinheit 24. Die PLC 14n umfasst einen Prozessor 30 wie z. B. eine CPU, einen Hauptspeicher (Speichereinheit) 32 und eine Kommunikationseinheit 34. Die Kommunikationseinheiten 34 der Mehrzahl dieser PLCs 14n sind durch die Verkettung mit der Kommunikationseinheit 24 des PC 12 verbunden (siehe 1). Der Hauptspeicher 22 des PC 12 speichert eine Mehrzahl von Programmen Pn, die von jeder der Mehrzahl von PLCs 14n ausgeführt (verarbeitet) werden. Diese Programme Pn sind Programme zum Steuern der Steuerziele 18n. In dieser Beschreibung stellt P1 das Programm Pn zum Steuern des Steuerziels 181 dar, das über die E/A-Vorrichtung 161 mit der PLC 141 verbunden ist. Gleichermaßen stellen P2 bis P5 die Programme Pn zum Steuern der Steuerziele 182 bis 185 dar, die über die E/A-Vorrichtungen 162 bis 165 mit den PLCs 142 bis 145 verbunden sind.
  • Der Prozessor 20 des PC 12 ordnet die Mehrzahl von Programmen Pn (P1 bis P5), die im Hauptspeicher 22 gespeichert sind, dem PC 12 und der Mehrzahl von PLCs 14n (PLC 141 bis 145) zu.
  • Die zugeordneten Programme Pn werden in die Zuordnungsziel-PLCs 14n geladen. Das heißt, dass der Prozessor 20 das Programm Pn über die Kommunikationseinheit 24 sendet. Der Prozessor 30 der Zuordnungsziel-PLC 14n erhält das zugeordnete Programm Pn über die Kommunikationseinheit 34 und speichert die Programme Pn im Hauptspeicher 32.
  • Ein Vorgang zum Zuordnen des Programms Pn im PLC-System 10 wird nachstehend unter Bezugnahme auf einen Ablaufplan von 4 ausführlich beschrieben.
  • Während einer Aktivierung des PLC-Systems 10 oder zu einem vordefinierten Zeitpunkt führt der Prozessor 20 des PC 12 einen Vorgang von Schritt S1 durch. In Schritt S1 ordnet der Prozessor 20 die Mehrzahl von Programmen Pn, die im Hauptspeicher 22 gespeichert sind, der Mehrzahl von PLCs 14n zu, um zu bewirken, dass jede der Mehrzahl von PLCs 14n die Steuerziele 18n steuert, die über die E/A-Vorrichtungen 16n mit sich selbst verbunden sind. Der einfacheren Beschreibung halber wird das Programm Pn, das der PLC 14n zugeordnet ist, um das Steuerziel 18n zu steuern, das über die E/A-Vorrichtungen 16n mit der PLC 14n verbunden ist, nachstehend als selbstzugewiesenes Programm Pn bezeichnet. Wie in 5 gezeigt, wird dadurch das Programm P1 als selbstzugewiesenes Programm Pn der PLC 141 zugeordnet. Gleichermaßen werden die selbstzugewiesenen Programme P2 bis P5 der PLC 142 bis PLC 145 zugeordnet. Die Mehrzahl von PLCs 14n (PLC 141 bis PLC 145) beenden die Ausführung der selbstzugewiesenen Programme Pn (P1 bis P5) in einem Ausführungszyklus der PLC 14n (nachstehend als ein Ausführungszyklus bezeichnet).
  • Wenn Datengrößen (die Anzahl von Schritten) dieser Programme Pn (P1 bis P5) sich voneinander unterscheiden, unterscheiden sich auch Zeiten (Ausführungszeiten und Verarbeitungszeiten), die zum Ausführen der Programme Pn benötigt werden, und Lasten (oder Lastfaktoren) voneinander. Bei einem Beispiel, das in 6 gezeigt ist, haben Ausführungszeiten und Lasten (oder Lastfaktoren) der fünf Programme Pn (P1 bis P5) eine Beziehung P4 < P1 < P3 = P5 < P2. Eine Information, die die Last oder den Lastfaktor indiziert, wird als Lastinformation bezeichnet. 6 ist eine Zeitgraphik, die zeigt, dass jede der Mehrzahl von PLCs 14n das selbstzugewiesene Programm Pn (das selbstzugewiesene Programm Pn, das durch die Zuordnung zugeordnet wird, wie in 5 gezeigt) ausführt (verarbeitet).
  • Danach, wie in 5 gezeigt, lädt der Prozessor 20 des PC 12 sodann die Mehrzahl von zugeordneten selbstzugewiesenen Programmen Pn (P1 bis P5) in die Mehrzahl von PLCs 14n (141 bis 145) (Schritt S2). Danach startet der Prozessor 30 jeder der Mehrzahl von PLCs 14n die Ausführung des selbstzugewiesenen Programms Pn (Schritt S3), berechnet die Lastinformation, die aus der Ausführung des selbstzugewiesenen Programms Pn resultiert, und sendet die Lastinformation an den Prozessor 20 des PC 12 (Schritt S4). Wenn alle Lastinformationen der Prozessoren 30 von der Mehrzahl von PLCs 14n (141 bis 145) erhalten werden, bewirkt der Prozessor 20 des PC 12, dass die Mehrzahl von PLCs 14n (141 bis 145) die Ausführung aller selbstzugewiesenen Programme Pn stoppt (Schritt S5). Der Prozessor 20 bewirkt, dass die Prozessoren 30 aller PLCs 14n (141 bis 145) die Ausführung der selbstzugewiesenen Programme Pn stoppen, indem Stoppsignale über die Kommunikationseinheit 24 und die Kommunikationseinheiten 34 an die Prozessoren 30 aller PLCs 14n (141 bis 145) ausgegeben werden.
  • Der Prozessor 20 ordnet ferner alle oder einen Teil der Mehrzahl von Programmen Pn dem PC 12 und der Mehrzahl von PLCs 14n zu, auf Basis der Lastinformation aller PLCs 14n (141 bis 145), die in Schritt S4 gesammelt wurde, um zu bewirken, dass der PC 12 und die Mehrzahl von PLCs 14n alle oder einen Teil der Mehrzahl von Programmen Pn, die im Hauptspeicher 22 gespeichert sind, in einem Ausführungszyklus parallel doppelt ausführt (Schritt S6). Somit werden die Programme Pn zum Steuern der Steuerziele 18n außer den Steuerzielen 18n, die über die E/A-Vorrichtung 16n mit einer PLC 14n verbunden sind, d. h. die Steuerziele 18n, die über die E/A-Vorrichtungen 16n mit den anderen PLCs 14n verbunden sind, der einen PLC 14n zugeordnet. Das Programm Pn wird in manchen Fällen auch dem PC 12 zugeordnet. In diesem Fall ordnet der Prozessor 20 die Programme Pn zu, ohne zu bewirken, dass eine PLC 14n das gleiche Programm Pn zweimal ausführt. Der einfacheren Beschreibung halber werden die Programme Pn, die dem PC 12 und den PLCs 14n zugeordnet sind, um die Steuerziele 18n zu steuern, die über die E/A-Vorrichtungen 16n mit den anderen PLCs 14n verbunden sind, nachstehend in manchen Fällen als die anderen Programme Pn bezeichnet.
  • 7 ist eine Ansicht, die ein Beispiel zeigt, wobei alle Programme Pn (P1 bis P5) dem PC 12 und der Mehrzahl von PLCs 14n zugeordnet werden, um zu bewirken, dass der PC 12 und die Mehrzahl von PLCs 14n alle Programme Pn (P1 bis P5), die im Hauptspeicher 22 gespeichert sind, in einem Ausführungszyklus parallel doppelt ausführen. 8 ist eine Zeitgraphik, die zeigt, dass jede der Mehrzahl von PLCs 14n das Programm Pn (das selbstzugewiesene Programm Pn und das andere Programm Pn, wie durch die Zuordnung zugeordnet, die in 7 gezeigt ist) ausführt (verarbeitet). Wie in 7 gezeigt, wird das andere Programm P4 ferner der PLC 141 zugeordnet und wird das andere Programm P1 ferner der PLC 144 zugeordnet. Die anderen Programme P2, P3, P5, die der PLC 14n nicht zugeordnet werden können, werden dem PC 12 zugeordnet. Lasten (oder Lastfaktoren) der Programme P2, P3, P5, die den PLCs 142, 143, 145 zugeordnet sind, sind hoch. Aus diesem Grund werden die anderen Programme Pn den PLCs 142, 143, 145 nicht zusätzlich zugeordnet. Die Zuordnung dieser anderen Programme Pn wird nachstehend ausführlich beschrieben.
  • Danach, wie in 7 gezeigt, bewirkt der Prozessor 20 des PC 12, dass die Mehrzahl von PLCs 14n (PLC 141, PLC 144) die anderen Programme Pn (P4, P1) lädt, die der Mehrzahl von PLCs 14n (141, 144) zugeordnet sind (Schritt S7). Der Prozessor 20 kann bewirken, dass die Mehrzahl von PLCs 14n die zugeordneten selbstzugewiesenen Programme Pn erneut lädt, während die Mehrzahl von PLCs 14n die anderen zugeordneten Programme Pn lädt.
  • Der PC 12 und die Mehrzahl von PLCs 14n (141 bis 145) führen die zugeordneten Programme Pn (einschließlich der selbstzugewiesenen Programme Pn und der anderen Programme Pn) aus (Schritt S8).
  • In diesem Fall zeigt 8, dass die PLCs 14n (141, 144) die selbstzugewiesenen Programme Pn (P1, P4) ausführen und danach die anderen Programme Pn (P4, P1) ausführen. Eine Reihenfolge der Ausführung der Programme Pn kann jedoch umgekehrt sein.
  • Im Folgenden wird die Verarbeitung der Zuordnung der anderen Programme Pn in Schritt S6 ausführlich beschrieben. Lpmax stellt eine maximale Last dar, die in einem Ausführungszyklus an den Prozessor 20 des PC 12 anlegbar ist. Lmax stellt eine maximale Last dar, die in einem Ausführungszyklus an den Prozessor 30 jeder PLC 14n anlegbar ist. Die Verarbeitungsleistung des Prozessors 30 jeder PLC 14n ist gleich. Die Verarbeitungsleistung des Prozessors 20 des PC 12 ist höher als die Verarbeitungsleistung der Prozessoren 30 der PLCs 14n. Somit gilt: Lpmax > Lmax. Ln (L1 bis L5) stellen eine Last dar, die während der Ausführung der Programme Pn (P1 bis P5) angelegt ist. Lpc stellt eine einzigartige Last dar, die in einem Ausführungszyklus des Prozessors 20 des PC 12 angelegt wird. Diese Last Ln (L1 bis L5) basiert auf einer Lastinformation jeder PLC 14n, die in Schritt S4 von 4 gesammelt wird. Der Lastfaktor der PLC 14n nimmt einen Wert an, der durch Teilen der an die PLC 14n angelegte Last durch die maximale Last Lmax erhalten wird. Beispielsweise beträgt der Lastfaktor der während der Ausführung des Programms P1 angelegten Last L1 / Lmax. Gleichermaßen betragen die Lastfaktoren von Lasten, die während der Ausführung der Programme P2 bis P5 angelegt werden, L2 / Lmax, L3 / Lmax, L4 / Lmax und L5 / Lmax.
  • Unter Berücksichtigung der Prioritäten der Programme Pn, die parallel ausgeführt werden, werden zunächst die Programme Pn höherer Prioritäten in einer Reihenfolge zugeordnet. Bei der vorliegenden Ausführungsform liegen die Prioritäten in der Reihenfolge P1 -> P2 -> P3 -> P4 -> P5 vor und werden die Programme Pn den anderen PLCs 14n (141 bis 145) als die anderen Programme Pn in dieser Reihenfolge zugeordnet.
  • 9 ist ein Teilablaufplan, der einen Verarbeitungsvorgang in Schritt S6 von 4 zeigt. Zunächst wählt der Prozessor 20 des PC 12 ein Programm der höchsten Priorität aus (Schritt S11). Bei der vorliegenden Ausführungsform liegen die Prioritäten in der Reihenfolge P1 -> P2 -> P3 -> P4 -> P5 vor. Aus diesem Grund wählt der Prozessor 20 in Schritt S11 das Programm P1 aus.
  • Danach berechnet der Prozessor 20 eine annehmbare Last des PC 12 und jeder der Mehrzahl von PLCs 14n (141 bis 145) unter Verwendung der Lastinformation jeder PLC 14n, die in Schritt S4 von 4 gesammelt wurde (Schritt S12). Diese annehmbare Last ist eine Last, die in einem Ausführungszyklus weiter verarbeitet werden kann. Der Prozessor 20 berechnet eine annehmbare Last des PC 12 und jeder der Mehrzahl von PLCs 14n (141 bis 145) auf Basis des Programms Pn, das dem PC 12 und jeder der Mehrzahl von PLCs 14 (141 bis 145) derzeit zugeordnet ist. Zu diesem Zeitpunkt wird dem PC 12 kein Programm Pn zugeordnet und nur die selbstzugewiesenen Programme Pn werden der Mehrzahl von PLCs 14n zugeordnet.
  • Somit beträgt die Last, die an den PC 12 anlegbar ist (nachstehend als Annehmlast LLp bezeichnet) LLp = Lpmax - Lpc. Eine Last, die an den PLC 141 anlegbar ist (als Annehmlast LL1 bezeichnet), beträgt LL1 = Lmax - L1. Gleichermaßen betragen Lasten, die an die PLCs 142 bis PLCs 145 anlegbar sind (als Annehmlasten LL2 bis LL5 bezeichnet) LL2 = Lmax - L2, LL3 = Lmax - L3, LL4 = Lmax - L4 und LL5 = Lmax - L5.
  • Der Prozessor 20 ermittelt, ob die PLC 14n vorhanden ist, die die Annahme des derzeit ausgewählten Programms P1 als anderes Programm P1 ermöglicht (Schritt S13). Bei der vorliegenden Ausführungsform gilt LL2 < L1, LL3 < L1, LL4 > L1 und LL5 < L1 (siehe 8). Aus diesem Grund ermittelt der Prozessor 20, dass die PLC 144 die Annahme des Programms P1 als anderes Programm P1 ermöglicht.
  • Das Programm P1 ist das selbstzugewiesene Programm P1 für die PLC 141. Aus diesem Grund ermittelt der Prozessor 20 nicht, ob die PLC 141 das Programm P1 annehmen kann.
  • Sogar wenn die PLC 14n vorhanden ist, die die Annahme des derzeit ausgewählten Programms Pn als das andere Programm Pn ermöglicht, kann der Prozessor 20, wenn der Lastfaktor dieser PLC 14n einen Schwellenwert (z. B. 90 %) infolge der Annahme des anderen Programms Pn überschreitet, ermitteln, dass diese PLC 14n die Annahme des anderen Programms Pn nicht ermöglicht.
  • Wenn in Schritt S13 ermittelt wird, dass die PLC 144 die Annahme des Programms P1 ermöglicht, ordnet der Prozessor 20 das derzeit ausgewählte Programm P1 den anderen PLCs 144 als das andere Programm P1 zu (Schritt S14) und der Ablauf geht zu Schritt S15 über.
  • Wenn der Ablauf zu Schritt S15 übergegangen ist, ermittelt der Prozessor 20, ob ein Programm Pn vorhanden ist, das noch nicht ausgewählt wurde. Wenn in Schritt S15 ermittelt wird, dass ein Programm Pn vorhanden ist, das noch nicht ausgewählt wurde, wählt der Prozessor 20 das Programm Pn der zweithöchsten Priorität neu aus (Schritt S16) und der Ablauf kehrt zu Schritt S12 zurück. Dadurch wird das auszuwählende Programm Pn vom Programm P1 auf das Programm P2 gewechselt. Das heißt, dass das Programm P2 die zweithöchste Priorität nach dem Programm P1 ist. Aus diesem Grund wählt der Prozessor 20 zu diesem Zeitpunkt das Programm P2 in Schritt S16 neu aus.
  • Wie oben beschrieben, berechnet der Prozessor 20 in Schritt S12 die annehmbaren Annehmlasten LLp, LL1 bis LL5 des PC 12 und der Mehrzahl von PLCs 14n (141 bis 145). Das andere Programm P1 wurde der PLC 144 im vorherigen Schritt S14 zugeordnet und daher wird die Annehmlast LL4 der PLC 144 auf LL4 = Lmax - L4 - L1 geändert. In dieser Hinsicht bleiben die Annehmlasten LL1 bis LL3, LL5 der anderen PLCs 141 bis 143, 145 gleich und bleibt auch die Annehmlast LLp des PC 12 gleich.
  • Der Prozessor 20 ermittelt in Schritt S13 sodann, ob die PLC 14n vorhanden ist, die die Annahme des derzeit ausgewählten Programms P2 als anderes Programm P2 ermöglicht. Bei der vorliegenden Ausführungsform gilt LL1 < L2, LL3 < L2, LL4 < L2 und LL5 < L2 (siehe 8). Aus diesem Grund ermittelt der Prozessor 20, dass es keine PLC 14n gibt, die die Annahme des Programms P2 als das andere Programm P2 ermöglicht.
  • Wenn ermittelt wird, dass keine PLC 14n vorhanden ist, die die Annahme des Programms P als das andere Programm P2 ermöglicht, ermittelt der Prozessor 20 in Schritt S13, ob der PC 12 die Annahme des derzeit ausgewählten Programms P2 als das andere Programm Pn ermöglicht (Schritt S17). Bei der vorliegenden Ausführungsform gilt LLp > L2 (siehe 8). Aus diesem Grund ermittelt der Prozessor 20, dass der PC 12 die Annahme des Programms P2 als anderes Programm P2 ermöglicht.
  • Wenn in Schritt S17 ermittelt wird, dass der PC 12 die Annahme des Programms P2 als das andere Programm P2 ermöglicht, ordnet der Prozessor 20 das derzeit ausgewählte Programm P2 dem PC 12 als das andere Programm P2 zu (Schritt S18) und der Ablauf geht zu Schritt S15 über. Durch Wiederholen des obigen Vorgangs wird die Mehrzahl von Programmen Pn (P1 bis P5) dem PC 12 und der Mehrzahl von PLCs 14n als andere Programme Pn (P1 bis P5) zugeordnet, wie in 7 gezeigt.
  • Wenn in Schritt S15 ermittelt wird, dass kein Programm Pn vorhanden ist, das noch nicht ausgewählt wurde, beendet der Prozessor 20 die Verarbeitung und der Ablauf geht zu Schritt S7 von 4 über.
  • Wenn in Schritt S17 ermittelt wird, dass der PC 12 die Annahme des derzeit ausgewählten Programms Pn als das andere Programm Pn nicht ermöglicht, geht der Ablauf sodann zu Schritt S15 über. Dadurch wird kein Programm Pn, das von der Mehrzahl von PLCs 14n und dem PC 12 nicht als das andere Programm Pn angenommen wird, einer der Mehrzahl von PLCs 14n und dem PC 12 zugeordnet.
  • Wenn in Schritt S17 ermittelt wird, dass der PC 12 die Annahme des derzeit ausgewählten Programms Pn als das andere Programm Pn nicht ermöglicht, kann der Prozessor 20 die Verarbeitung beenden und der Ablauf kann zu Schritt S7 in 4 übergehen. Wenn unter den Programmen Pn keine Priorität vorliegt, kann der Prozessor 20 das Programm Pn in willkürlicher oder vordefinierter Reihenfolge auswählen und das ausgewählte Programm einer der Mehrzahl von PLCs 14n und dem PC 12 als das andere Programm Pn zuordnen.
  • Somit wird das gleiche Programm Pn in einem Ausführungszyklus parallel ausgeführt. Sogar wenn in einer PLC 14n eine Anomalie oder ein Fehler auftritt, kann die andere PLC 14n, die das selbstzugewiesene Programm Pn der einen PLC 14n, in der die Anomalie oder der Fehler aufgetreten ist (auch als anomale PLC bezeichnet), als das andere Programm Pn ausführt, das Steuerziel 18n steuern, das über die E/A-Vorrichtung 16n mit der anomalen PLC 14n verbunden ist. Beispielsweise wenn in der PLC 143 eine Anomalie (oder ein Fehler) auftritt, wie in 10 gezeigt, führt der PC 12 das selbstzugewiesene Programm P3 der PLC 143 als das andere Programm P3 aus. Folglich ist es möglich, dass der PC 12 das Steuerziel 183 steuert, das über die E/A-Vorrichtung 163 mit der anomalen PLC 143 verbunden ist.
  • Folglich ist es möglich, ein Subjekt zu wechseln, das das Steuerziel 183 steuert, während die Steuerung des Steuerziels 183 in einem stabilen Zustand fortgesetzt wird. Das Ermitteln, ob die PLC 14n vorhanden ist, in der eine Anomalie auftritt, wird später beschrieben.
  • Im Folgenden wird eine Konfiguration (insbesondere eine Hauptkonfiguration der Kommunikationseinheiten 34, 24) der PLCs 14n und des PC 12 unter Bezugnahme auf die 11 und 12 spezifisch beschrieben.
  • 11 ist ein ausführliches Konfigurationsschaubild der PLC 141. Jede PLC 14n verwendet die gleiche Konfiguration.
  • Aus diesem Grund wird die PLC 141 hier nachstehend als Beispiel beschrieben. Die Kommunikationseinheit 34 der PLC 141 umfasst eine Systembusschnittstelle 40, die mit dem Prozessor 30 kommuniziert, einen ersten Eingabepufferspeicher 42, einen zweiten Eingabepufferspeicher 44, einen ersten Ausgabepufferspeicher 46, einen zweiten Ausgabepufferspeicher 48, einen dritten Ausgabepufferspeicher 50, eine MAC 52, die mit der E/A-Vorrichtung 161 kommuniziert, die mit den PLC 141 verbunden ist, eine MAC 54, die mit dem PC 12 und den anderen PLCs 142 außer der PLC 141 kommuniziert, eine Auswahleinheit 56 und ein Register 58.
  • Die Systembusschnittstelle 40 und der Prozessor 30 sind über einen Systembus 60 verbunden. Die MAC 52 ist über eine MII (Media Independent Interface) 62 mit einem PHY-(Physical Layer)-Chip 64 verbunden. Die Kommunikationseinheit 34 ist über diesen PHY-Chip 64 mit der E/A-Vorrichtung 161 der PLC 141 verbunden. Die MAC 54 ist über die MII 66 mit PHY-Chips 68, 70 verbunden. Die Kommunikationseinheit 34 ist über den PHY-Chip 68 mit der Kommunikationseinheit 24 des PC 12 verbunden, der in einer vorherigen Stufe bereitgestellt ist, und ist über den PHY-Chip 70 mit der Kommunikationseinheit 34 der anderen PLC verbunden, die in einer darauffolgenden Stufe (nächste Stufe) bereitgestellt ist. Was die PLCs 142 bis 145 betrifft, so sind die PHY-Chips 68 mit den PLCs 141 bis 144 verbunden, nicht mit dem PC 12. Was die PLC 145 in der letzten Stufe betrifft, so ist ferner der PHY-Chip 70 mit keiner der PLC 14n verbunden.
  • Die MAC 52 empfängt ein Frame, das Eingabedaten umfasst, wie von der E/A-Vorrichtung 161 gesendet, die über den PHY-Chip 64 und dergleichen mit der PLC 142 verbunden ist. Diese Eingabedaten werden vom Steuerziel 181, das mit der E/A-Vorrichtung 161 verbunden ist, gesendet. Die MAC 52 extrahiert die Eingabedaten aus dem empfangenen Frame und speichert die extrahierten Eingabedaten im ersten Eingabepufferspeicher 42. Der Prozessor 30 der PLC 141 liest die im ersten Eingabepufferspeicher 42 gespeicherten Eingabedaten über die Systembusschnittstelle 40 und den Systembus 60 und speichert die gelesenen Eingabedaten im Hauptspeicher 32.
  • Der Prozessor 30 speichert Ausgabedaten (nachstehend auch als erste Ausgabedaten bezeichnet) im Hauptspeicher 32, die durch Ausführen des selbstzugewiesenen Programms P1 erhalten wurden, auf Basis der Eingabedaten, die im Hauptspeicher 32 (erster Eingabepufferspeicher 42) gespeichert sind. Der Prozessor 30 speichert die ersten Ausgabedaten, die im Hauptspeicher 32 gespeichert sind, über den Systembus 60 im ersten Ausgabepufferspeicher 46.
  • Die MAC 54 empfängt über den PC 12 ein Frame, das Eingabedaten umfasst, wie von der E/A-Vorrichtung 164 gesendet, die über den PHY-Chip 68 mit der PLC 144 verbunden ist. Die Eingabedaten, die von dieser E/A-Vorrichtung 164 gesendet werden, werden vom Steuerziel 184 gesendet, das gemäß dem anderen Programm P4 gesteuert wird (siehe 7), das der PLC 144 zugeordnet ist. Die MAC 54 extrahiert die Eingabedaten aus dem empfangenen Frame und speichert die extrahierten Eingabedaten im zweiten Eingabepufferspeicher 44. Der Prozessor 30 der PLC 141 liest die im zweiten Eingabepufferspeicher 44 gespeicherten Eingabedaten über die Systembusschnittstelle 40 und den Systembus 60 und speichert die gelesenen Eingabedaten im Hauptspeicher 32. In dieser Hinsicht speichern der Hauptspeicher 32 und der zweite Eingabepufferspeicher 44, wenn die Mehrzahl von anderen Programmen Pn vorhanden ist, die der PLC 141 zugeordnet sind, Eingabedaten pro anderes Programm Pn (pro E/A-Vorrichtung 16n oder PLC 14n, die die Eingabedaten ausgegeben hat).
  • Der Prozessor 30 speichert Ausgabedaten (nachstehend auch als zweite Ausgabedaten bezeichnet) im Hauptspeicher 32, die durch Ausführen des anderen Programms P4 erhalten wurden, auf Basis der Eingabedaten (der Eingabedaten aus dem Steuerziel 184), die im Hauptspeicher 32 (zweiter Eingabepufferspeicher 44) gespeichert sind. Der Prozessor 30 speichert die zweiten Ausgabedaten, die im Hauptspeicher 32 gespeichert sind, über den Systembus 60 im dritten Ausgabepufferspeicher 50. In dieser Hinsicht speichern der Hauptspeicher 32 und der dritte Ausgabepufferspeicher 50, wenn die Mehrzahl eines anderen Programms Pn vorhanden ist, die der PLC 141 zugeordnet sind, die zweiten Ausgabedaten pro anderes Programm Pn (pro E/A-Vorrichtung 16n oder PLC 14n, die ein zweites Ausgabedatenausgabeziel ist).
  • Die MAC 54 schreibt die zweiten Ausgabedaten im Frame, um die zweiten Ausgabedaten, die im dritten Ausgabepufferspeicher 50 gespeichert sind, an die PLC 144 zu senden, und sendet das geschriebene Frame über den PHY-Chip 68 an den PC 12. Eine Adressinformation der Sendeziel-PLC 144 ist zu diesem Frame hinzugefügt. Der PC 12 schreibt eine Auswahlinformation in das empfangene Frame, um an die PLC 144 zu senden. Die zweiten Ausgabedaten, die in diesem Frame umfasst sind, werden im zweiten Ausgabepufferspeicher 48 der PLC 144 gespeichert und die Auswahlinformation wird im Register 58 der PLC 144 gespeichert. Dadurch kann die PLC 141 das Steuerziel, das über die E/A-Vorrichtung 164 mit der PLC 144 verbunden ist, steuern.
  • Die Auswahlinformation ist eine Information, die indiziert, welche der ersten Ausgabedaten, die im ersten Ausgabepufferspeicher 46 gespeichert sind, und der zweiten Ausgabedaten, die im zweiten Ausgabepufferspeicher 48 gespeichert sind, als Ausgabedaten ausgewählt werden, die von der PLC 14n an die E/A-Vorrichtung 16n ausgegeben (gesendet) werden. Bei der vorliegenden Ausführungsform ist diese Auswahlinformation 1-Bit-Daten. Ein logischer Wert „0“ der Auswahlinformation bedeutet, dass die PLC 14n die ersten Ausgabedaten, die im ersten Ausgabepufferspeicher 46 gespeichert sind, an die E/A-Vorrichtung 16n ausgibt. Ein logischer Wert „1“ der Auswahlinformation bedeutet, dass die PLC 14n die zweiten Ausgabedaten, die im zweiten Ausgabepufferspeicher 48 gespeichert sind, an die E/A-Vorrichtung 16n ausgibt.
  • Um die Eingabedaten, die im ersten Eingabepufferspeicher 42 gespeichert sind, an die PLC 144 zu senden, der das der PLC 141 zugeordnete selbstzugewiesene Programm P1 als anderes Programm P1 zugeordnet wurde (siehe 7), schreibt die MAC 54 diese Eingabedaten in das Frame und sendet das geschriebene Frame über den PHY-Chip 68 an den PC 12. Eine Adressinformation der Sendeziel-PLC 144 ist zu diesem Frame hinzugefügt.
  • Der PC 12 sendet dieses empfangene Frame an die PLC 144. Die Eingabedaten, die in diesem Frame umfasst sind, werden im zweiten Eingabepufferspeicher 44 der PLC 144 gespeichert.
  • Die MAC 54 empfängt das Frame, das die zweiten Ausgabedaten umfasst, die über den PC 12 gesendet wurden, durch den PHY-Chip 68 von der PLC 144, der das der PLC 141 zugeordnete selbstzugewiesene Programm P1 als das andere Programm P1 zugeordnet wurde.
  • Diese zweiten Ausgabedaten, die von der PLC 144 an die PLC 141 gesendet werden, werden im dritten Ausgabepufferspeicher 50 der PLC 144 gespeichert. Die MAC 54 extrahiert die zweiten Ausgabedaten und die Auswahlinformation aus dem empfangenen Frame und speichert die extrahierten zweiten Ausgabedaten im zweiten Ausgabepufferspeicher 48 und die extrahierte Auswahlinformation im Register 58. Folglich kann die PLC 144 das Steuerziel 181, das über die E/A-Vorrichtung 161 mit der PLC 141 verbunden ist, steuern.
  • Die Auswahleinheit 56 wählt eines der ersten Ausgabedaten, die im ersten Ausgabepufferspeicher 46 gespeichert sind, und der zweiten Ausgabedaten, die im zweiten Ausgabepufferspeicher 48 gespeichert sind, auf Basis der Auswahlinformation aus, die im Register 58 gespeichert ist, und sendet die ausgewählten an die MAC 52. Die Auswahleinheit 56 sendet die ersten Ausgabedaten an die MAC 52, wenn der logische Wert der Auswahlinformation „0“ beträgt, und sendet die zweiten Ausgabedaten an die MAC 52, wenn der logische Wert der Auswahlinformation „1“ beträgt.
  • Die MAC 52 schreibt die Ausgabedaten, die von der Auswahleinheit 56 gesendet werden, in das Frame und gibt das geschriebene Frame an die E/A-Vorrichtung 161 aus (sendet). Die E/A-Vorrichtung 161 extrahiert die Ausgabedaten aus dem gesendeten Frame und gibt die extrahierten Ausgabedaten an das Steuerziel 181 aus. Somit können die Auswahleinheit 56 und das Register 58 wechseln, ob die PLC 141 oder die PLC 144 das Steuerziel 181 steuert, das über die E/A-Vorrichtung 161 mit der PLC 141 verbunden ist.
  • Die MAC 54 empfängt das Frame über den PHY-Chip 68. Wenn dieses Frame jedoch nicht an die PLC 141 adressiert ist, sendet die MAC 54 das empfangene Frame wie es ist an die PLC 142, die über den PHY-Chip 70 mit einer darauffolgenden Stufe verbunden ist. Die MAC 54 empfängt gleichermaßen das Frame über den PHY-Chip 70. Wenn dieses Frame jedoch nicht an die PLC 141 adressiert ist, sendet die MAC 54 das empfangene Frame wie es ist an den PC 12, der über den PHY-Chip 68 mit einer vorherigen Stufe verbunden ist. Das heißt, dass die MAC 54 die Eingabedaten oder die zweiten Ausgabedaten nur dann aus dem Frame extrahiert, wenn der Frame an die PLC 141 adressiert ist.
  • 12 ist ein ausführliches Konfigurationsschaubild des PC 12. Die Kommunikationseinheit 24 des PC 12 umfasst eine Systembusschnittstelle 80, der mit dem Prozessor 20 kommuniziert, einen Eingabepufferspeicher 82, einen Ausgabepufferspeicher 84 und eine MAC 86, die mit der PLC 141 kommuniziert.
  • Die Systembusschnittstelle 80 und der Prozessor 20 sind über einen Systembus 88 verbunden. Die MAC 86 ist über eine MII 90 mit einem PHY-Chip 92 verbunden. Die Kommunikationseinheit 24 ist mit der Kommunikationseinheit 34 der PLC 141 verbunden, die über den PHY-Chip 92 mit einer darauffolgenden Stufe verbunden ist.
  • Die MAC 86 empfängt Frames, die Elemente von Eingabedaten umfassen, die von der Mehrzahl von PLC 14n (141 bis 145), d. h. der Mehrzahl von E/A-Vorrichtungen 16n (161 bis 165), über den PHY-Chip 92 gesendet werden. Diese Elemente von Eingabedaten werden von der Mehrzahl von Steuerzielen 18n (181 bis 185) gesendet, die über die Mehrzahl von E/A-Vorrichtungen 16n mit der Mehrzahl von PLCs 14n verbunden sind. Die MAC 86 extrahiert zumindest die Eingabedaten aus dem an den PC 12 gesendeten Frame und speichert die extrahierten Eingabedaten im Eingabepufferspeicher 82. Die PLCs 142, 143, 145, die mit den Steuerzielen 182, 183, 185 verbunden sind, die gemäß dem anderen Programm P2, P3, P5 gesteuert werden, das dem PC 12 zugeordnet ist, weisen den PC 12 als Adressinformation des Sendeziels aus und senden das Frame (das Frame, das die Eingabedaten umfasst). Der Prozessor 20 des PC 12 liest die im Eingabepufferspeicher 82 gespeicherten Eingabedaten über die Systembusschnittstelle 80 und den Systembus 88 und speichert die gelesenen Eingabedaten im Hauptspeicher 22. Der Hauptspeicher 22 und der Eingabepufferspeicher 82 speichern die Eingabedaten pro PLC 142, 143, 145, die die Eingabedaten gesendet hat, oder pro E/A-Vorrichtung 16n (pro anderes Programm Pn).
  • Der Prozessor 20 speichert die zweiten Ausgabedaten im Hauptspeicher 22, die durch Ausführen des anderen Programms P2, P3, P5 erhalten werden, auf Basis der Eingabedaten jeder der PLCs 142, 143, 145 (jede der E/A-Vorrichtungen 162, 163, 165), die im Hauptspeicher 22 gespeichert sind. Der Prozessor 20 speichert die zweiten Ausgabedaten, die im Hauptspeicher 22 gespeichert sind, über den Systembus 88 im Ausgabepufferspeicher 84 oder dergleichen. Der Hauptspeicher 22 und der Ausgabepufferspeicher 84 speichern die zweiten Ausgabedaten pro anderes Programm Pn (pro PLC 14n oder pro E/A-Vorrichtung 162, 163, 165, die ein zweites Ausgabedatenausgabeziel ist).
  • Die MAC 86 schreibt die zweiten Ausgabedaten im Frame, die im Ausgabepufferspeicher 84 gespeichert sind, und sendet das geschriebene Frame über den PHY-Chip 92 an die PLCs 142, 143, 145. In diesem Fall schreibt die MAC 86 die Auswahlinformation auch in das zu sendende Frame, unter der Steuerung durch den Prozessor 20. Folglich kann der PC 12 die E/A-Vorrichtungen 162, 163, 165 steuern, die mit den PLCs 142, 143, 145 verbunden sind. In dieser Hinsicht schreibt die MAC 86 auch eine Auswahlinformation in das Frame, das die zweiten Ausgabedaten umfasst, die von der PLC 14n über den PC 12 an eine andere PLC 14n gesendet werden, und sendet das Frame an die Sendeziel-PLC 14n.
  • Im Folgenden wird die Verarbeitung zum Ermitteln eines logischen Werts einer Auswahlinformation im PC 12 unter Bezugnahme auf einen Ablaufplan von 13 beschrieben. Die in 13 gezeigte Verarbeitung wird pro Ausführungszyklus durchgeführt. Grundsätzlich schreibt der Prozessor 20 des PC 12 die Auswahlinformation des logischen Werts „0“ in das Frame, das an jede PLC 14n (141 bis 145) gesendet wird. Bei der vorliegenden Ausführungsform ist das Frame, in das die Auswahlinformation geschrieben wird, das Frame, das zweite Ausgabedaten umfasst, die an jede der Mehrzahl von PLCs 14n (PLCs 141 bis 145) gesendet werden. Das Frame, in das die Auswahlinformation geschrieben wird, kann jedoch ein anderes Frame als das Frame sein, das die zweiten Ausgabedaten umfasst.
  • Zunächst sammelt der Prozessor 20 des PC 12 eine Statusinformation, die von der Mehrzahl von PLCs 14n (141 bis 145) über die Kommunikationseinheit 24 und die Kommunikationseinheiten 34 der Mehrzahl von PLCs 14n (141 bis 145) gesendet werden (Schritt S21). Der Prozessor 30 jeder der Mehrzahl von PLCs 14n (141 bis 145) sendet eine Statusinformation wie z. B. ein Überlebenssignal und eine Fehlerinformation über eine dedizierte Leitung, die nicht gezeigt ist, an den PC 12. Bei normalem Betrieb sendet der Prozessor 30 jeder der Mehrzahl von PLCs 14n (141 bis 145) das Überlebenssignal an den PC 12. Das Überlebenssignal wird pro Ausführungszyklus gesendet. Die Fehlerinformation ist z. B. eine Fehlerinformation, die indiziert, dass der Hauptspeicher 32 ausfällt, und eine Fehlerinformation, die eine Trennung der Verbindung mit dem Steuerziel 18n indiziert, das über die E/A-Vorrichtung 16n mit sich selbst (PLC 14n) verbunden ist. Wenn diese Fehler auftreten, gibt die PLC 14n die Fehlerinformation an den PC 12 aus.
  • Der Prozessor 20 ermittelt, ob die anomale PLC 14n (die PLC 14n, in der eine Anomalie oder ein Fehler auftritt) vorhanden ist, auf Basis jeder gesammelten Statusinformation (ein Überlebenssignal oder eine Fehlerinformation) jeder der Mehrzahl von PLCs 14n (141 bis 145) (Schritt S22). Beispielsweise wenn die PLC 14n vorhanden ist, die kein Überlebenssignal ausgibt, ermittelt der Prozessor 20 diese PLC 14n, die kein Überlebenssignal ausgibt, als anomale PLC 14n. Auch wenn die PLC 14n vorhanden ist, die die Fehlerinformation ausgibt, ermittelt der Prozessor 20 diese PLC 14n, die die Fehlerinformation ausgibt, als anomale PLC 14n.
  • In Schritt S22 beendet der Prozessor 20 die Verarbeitung, wenn ermittelt wird, dass keine anomale PLC 14n vorhanden ist. In diesem Fall schreibt der PC 12, grundsätzlich wie oben beschrieben, die Auswahlinformation des logischen Werts „0“ in das Frame (das Frame, das die zweiten Ausgabedaten umfasst) und sendet das Frame an jede der Mehrzahl von PLCs 14n (PLC 141 bis 145).
  • Wenn unterdessen in Schritt S22 ermittelt wird, dass eine anomale PLC 14n vorhanden ist, ermittelt der Prozessor 20, ob das selbstzugewiesene Programm Pn, das der anomalen PLC 14n zugeordnet ist, vom PC 12 oder einer anderen PLC 14n parallel als das andere Programm Pn ausgeführt wird (Schritt S23). Wenn der Prozessor 20 in Schritt S23 eine parallele Ausführung durch den PC 12 oder die andere PLC 14n ermittelt, geht der Ablauf zu Schritt S24 über.
  • Wenn der Ablauf zu Schritt S24 übergeht, ermittelt der Prozessor 20, ob der PC 12 oder die andere PLC 14n, die das selbstzugewiesene Programm der anomalen PLC 14n als das andere Programm ausführt, das Steuerziel 18n, das über die E/A-Vorrichtung 16n mit der anomalen PLC 14n verbunden ist, kontinuierlich steuern kann. Beispielsweise wenn die Statusinformation der anomalen PLC 14n eine Fehlerinformation einer Trennung der Verbindung umfasst, ermittelt der Prozessor 30, dass es nicht möglich ist, das Steuerziel 18n, das mit der anomalen PLC 14n verbunden ist, kontinuierlich zu steuern. Wenn hingegen der Hauptspeicher 32 der anomalen PLC 14n einfach ausfällt oder wenn ein Überlebenssignal lediglich nicht gesendet wird, ermittelt der Prozessor 30, dass es möglich ist, das Steuerziel 18n, das mit der anomalen PLC 14n verbunden ist, kontinuierlich zu steuern.
  • Wenn in Schritt S24 ermittelt wird, dass es möglich ist, das Steuerziel 18n, das mit der anomalen PLC 14n verbunden ist, kontinuierlich zu steuern, schreibt der Prozessor 20 eine Auswahlinformation des logischen Werts „1“ in das Frame (das Frame, das die zweiten Ausgabedaten umfasst), das an die anomale PLC 14n ausgegeben wird, und sendet das Frame an die anomale PLC 14n (Schritt S25). Die zweiten Ausgabedaten, die an diese anomale PLC 14n ausgegeben werden, sind Ausgabedaten, die erhalten werden, wenn der PC 12 oder die andere PLC 14n das andere Programm Pn ausführt, um das Steuerziel 18n zu steuern, das über die E/A-Vorrichtung 16n mit der anomalen PLC 14n verbunden ist. Durch Hinzufügen der Auswahlinformationen des logischen Werts „1“ zu diesem Frame ist es möglich, die zweiten Ausgabedaten an das Steuerziel 18n, das über die E/A-Vorrichtung 16n mit der anomalen PLC 14n verbunden ist, auszugeben. Danach können die normalen PLCs 14n außer der anomalen PLC 14n das Steuerziel 18n, das mit der anomalen PLC 14n verbunden ist, steuern. Folglich ist es möglich, Ausgabedaten, die bislang erhaltenen Ausführungsergebnissen nicht widersprechen, an die mit der anomalen PLC 14n verbundene E/A-Vorrichtung 16n auszugeben, und zwar sogar dann, wenn das Steuersubjekt gewechselt wird, das das Steuerziel 18n steuert.
  • Das heißt, ist es möglich, das Steuersubjekt für das Steuerziel 18n zu wechseln, während die Steuerung des Steuerziels 18n in einem stabilen Zustand fortgesetzt wird.
  • Beispielsweise bei einem Zustand, der in 10 gezeigt ist, wird in Schritt S22 ermittelt, dass die PLC 143 anomal ist, und wird in Schritt S23 ermittelt, dass der PC 12 das andere Programm P3 parallel ausführt. Wenn in Schritt S24 ermittelt wird, dass es möglich ist, das Steuerziel 183 kontinuierlich zu steuern, schreibt der PC 12 die Auswahlinformation 'des logischen Werts „1“ in das Frame und sendet das Frame in Schritt S25 an die anomale PLC 143. Dadurch kann, sogar wenn eine Anomalie in der PLC 14n auftritt, der PC 12 oder die andere normale PLC 14n das Steuerziel 18n, das mit der anomalen PLC 14n verbunden ist, kontinuierlich steuern. Der PC 12 sendet, grundsätzlich wie oben beschrieben, das Frame, in das die Auswahlinformation des logischen Werts „0“ geschrieben ist, an die normale PLC 14n und nicht an die anomale PLC 14n.
  • Wenn unterdessen in Schritt S23 ermittelt wird, dass das selbstzugewiesene Programm Pn, das der anomalen PLC 14n zugeordnet ist, nicht vom PC 12 oder der anderen normalen PLC 14n als das andere Programm Pn parallel ausgeführt wird, oder wenn in Schritt S24 ermittelt wird, dass es nicht möglich ist, das Steuerziel 18n, das mit der anomalen PLC 14n verbunden ist, kontinuierlich zu steuern, bewirkt der Prozessor 20, dass eine Anzeigeeinheit (z. B. eine Flüssigkristallanzeige), die nicht gezeigt ist, diese Ermittlung in Schritt S26 anzeigt. Das heißt, die Anzeigeeinheit zeigt einen Fehler an. Ferner kann der Prozessor 20 einen Warnton aus einem Lautsprecher ausgeben, der nicht gezeigt ist.
  • Im Folgenden wird die Verarbeitung einer Datenlieferung zwischen der normalen PLC 14n und der E/A-Vorrichtung 16n, die mit dem PC 12 verbunden ist, und der normalen PLC 14n unter Bezugnahme auf eine in 14 gezeigte Zeitgraphik beschrieben. Danach wird die Verarbeitung einer Datenlieferung zwischen der anomalen PLC 14n und der E/A-Vorrichtung 16n, die mit dem PC 12 verbunden ist, und der anomalen PLC 14n unter Bezugnahme auf eine in 15 gezeigte Zeitgraphik beschrieben. In den 14 und 15 sind die normale PLC 14n und die anomale PLC 14n der einfachen Beschreibung halber beide PLCs 142. Somit ist die E/A-Vorrichtung 16n, die mit der PLC 142 verbunden ist, die E/A-Vorrichtung 162. Der PC 12 schreibt eine Auswahlinformation in das Frame, das die zweiten Ausgabedaten umfasst, das an die PLC 142 gesendet wird.
  • Unter Bezugnahme auf die 14 und 15 wird lediglich die Ausführung des Programms P2 beschrieben. Das heißt, das Programm P2 ist das selbstzugewiesene Programm P2 für die PLC 142 und das andere Programm P2 für den PC 12 (Siehe 7). Der PC 12 und die PLC 142 beginnen mit einer Kommunikation in einer Stufe, in der die Ausführung des Programms P2 beendet ist und alle Elemente von Ausgabedaten ermittelt wurden. Nachdem alle Elemente von Eingabedaten von der E/A-Vorrichtung 162 empfangen wurden, beginnt der PC 12 und die PLC 142 in einem nächsten Ausführungszyklus mit der Ausführung des Programms P2. Nachdem die PLC 142 und die E/A-Vorrichtung 162 die Kommunikation beendet haben, führen der PC 12 und die PLC 142 eine Kommunikation durch. In diesem Fall ist es möglich, den PC 12 und die PLC 142 zu synchronisieren, indem der PC 12 und die PLC 142 mit Uhren versehen werden, die die gleiche Zeit anzeigen und nicht gezeigt sind.
  • <Kommunikation zwischen normaler PLC 142 und E/A-Vorrichtung 162 (siehe FIG. 14)>
  • Der Prozessor 30 der PLC 142 beendet die Ausführung des selbstzugewiesenen Programms P2 eines Ausführungszyklus und speichert sodann die ersten Ausgabedaten, die durch Ausführen des selbstzugewiesenen Programms P2 generiert werden, im Hauptspeicher 32. Der Prozessor 30 der PLC 142 speichert die ersten Ausgabedaten, die im Hauptspeicher 32 gespeichert sind, im ersten Ausgabepufferspeicher 46 der Kommunikationseinheit 34. Dadurch werden die ersten Ausgabedaten, die im Hauptspeicher 32 und im ersten Ausgabepufferspeicher 46 gespeichert sind, aktualisiert. Dieses selbstzugewiesene Programm P2 wird auf Basis der Eingabedaten ausgeführt, die derzeit im ersten Eingabepufferspeicher 42 gespeichert sind.
  • Folglich schreibt die Kommunikationseinheit 34 der PLC 142 die ersten Ausgabedaten, die im ersten Ausgabepufferspeicher 46 gespeichert sind, in das Frame und sendet das Frame an die E/A-Vorrichtung 162 (ein logischer Wert, der im Register 58 gespeichert ist, ist „0“). Dadurch werden die ersten Ausgabedaten über die E/A-Vorrichtung 162 an das Steuerziel 182 ausgegeben. Die Kommunikationseinheit 34 der PLC 142 empfängt das Frame, das die Eingabedaten umfasst, die von der E/A-Vorrichtung 162 gesendet werden (Steuerziel 182), extrahiert die Eingabedaten aus dem empfangenen Frame und speichert die Eingabedaten im ersten Eingabepufferspeicher 42. Danach speichert der Prozessor 30 der PLC 142 die Eingabedaten, die im ersten Eingabepufferspeicher 42 gespeichert sind, im Hauptspeicher 32. Dadurch werden die Eingabedaten (die Eingabedaten, die von der E/A-Vorrichtung 162 gesendet werden), die im ersten Eingabepufferspeicher 42 und im Hauptspeicher 32 gespeichert sind, aktualisiert. Der Prozessor 30 der PLC 142 beginnt die Ausführung des selbstzugewiesenen Programms P2 zu einem Eintrittszeitpunkt des nächsten Ausführungszyklus.
  • <Kommunikation zwischen PC 12 und normaler PLC 142 (siehe FIG. 14)>
  • Der Prozessor 20 des PC 12 beendet die Ausführung des anderen Programms P2 eines Ausführungszyklus und speichert sodann die zweiten Ausgabedaten, die durch Ausführen des anderen Programms P2 generiert werden, im Hauptspeicher 22. Der Prozessor 20 des PC 12 speichert die zweiten Ausgabedaten, die im Hauptspeicher 22 gespeichert sind, im Ausgabepufferspeicher 84 der Kommunikationseinheit 24. Dadurch werden die zweiten Ausgabedaten (die zweiten Ausgabedaten, die an die E/A-Vorrichtung 162 ausgegeben werden), die im Hauptspeicher 22 und im Ausgabepufferspeicher 84 gespeichert sind, aktualisiert. Das andere Programm P2 wird auf Basis der Eingabedaten (der Eingabedaten, die von der E/A-Vorrichtung 162 gesendet werden), die derzeit im Eingabepufferspeicher 82 gespeichert sind, ausgeführt.
  • Folglich schreibt die Kommunikationseinheit 24 des PC 12 die zweiten Ausgabedaten, die im Ausgabepufferspeicher 84 gespeichert sind, in das Frame und sendet das Frame an die PLC 142. Auch in diesem Fall schreibt der PC 12 eine Auswahlinformation eines logischen Werts „0“ in das Frame, das die zweiten Ausgabedaten umfasst, die an die PLC 142 gesendet werden, und sendet das Frame. Die Kommunikationseinheit 34 der PLC 142 extrahiert die zweiten Ausgabedaten (zweite Ausgabedaten, die an die E/A-Vorrichtung 162 ausgegeben werden) aus dem Frame, das vom PC 12 gesendet wird, und speichert die extrahierten zweiten Ausgabedaten im zweiten Ausgabepufferspeicher 48. Dadurch werden die zweiten Ausgabedaten (die zweiten Ausgabedaten, die an die E/A-Vorrichtung 162 ausgegeben werden), die im zweiten Ausgabepufferspeicher 48 gespeichert sind, aktualisiert. Die Kommunikationseinheit 34 der PLC 142 extrahiert die Auswahlinformation aus dem Frame, das vom PC 12 gesendet wird, und speichert den logischen Wert „0“ der extrahierten Auswahlinformation im Register 58. Dadurch wählt die Auswahleinheit 56 der PLC 142 die ersten Ausgabedaten, die im ersten Ausgabepufferspeicher 46 gespeichert sind, als die Ausgabedaten aus, die an die E/A-Vorrichtung 162 gesendet werden.
  • Die Kommunikationseinheit 34 der PLC 142 schreibt die Eingabedaten, die im ersten Eingabepufferspeicher 42 gespeichert sind, in das Frame und sendet das Frame an den PC 12. Die Kommunikationseinheit 24 des PC 12 empfängt das Frame, das die Eingabedaten (die Eingabedaten, die von der E/A-Vorrichtung 162 gesendet werden), wie von der PLC 142 gesendet, extrahiert die Eingabedaten aus dem empfangenen Frame und speichert die Eingabedaten im Eingabepufferspeicher 82. Der Prozessor 20 des PC 12 speichert die Eingabedaten, die im Eingabepufferspeicher 82 gespeichert sind, im Hauptspeicher 22. Dadurch werden die Eingabedaten (die Eingabedaten, die von der E/A-Vorrichtung 162 gesendet werden), die im Eingabepufferspeicher 82 und im Hauptspeicher 22 gespeichert sind, aktualisiert. Der Prozessor 20 des PC 12 beginnt die Ausführung des anderen Programms P2 zu einem Eintrittszeitpunkt eines nächsten Ausführungszyklus.
  • <Kommunikation zwischen anomaler PLC 142 und E/A-Vorrichtung 162 (siehe FIG. 15)>
  • Wenn ein Fehler erkannt wird, generiert der Prozessor 30 der anomalen PLC 142 eine Fehlerinformation und sendet die generierte Fehlerinformation über die obige dedizierte Leitung an den PC 12. In diesem Fall führt der Prozessor 30 der anomalen PLC 142 das selbstzugewiesene Programm P2 nicht aus und daher werden die ersten Ausgabedaten, die im ersten Ausgabepufferspeicher 46 gespeichert sind, nicht aktualisiert.
  • Die Kommunikationseinheit 34 der anomalen PLC 142 schreibt die ersten Ausgabedaten, die im ersten Ausgabepufferspeicher 46 gespeichert sind, in das Frame und sendet das Frame an die E/A-Vorrichtung 162 (der logische Wert, der im Register 58 gespeichert ist, ist in diesem Fall „0“). Zu diesem Zeitpunkt werden die ersten Ausgabedaten, die im ersten Ausgabepufferspeicher 46 gespeichert sind, nicht aktualisiert und daher werden die zuvor gesendeten ersten Ausgabedaten erneut an die E/A-Vorrichtung 162 gesendet.
  • Die Kommunikationseinheit 34 der anomalen PLC 142 empfängt das Frame, das die Eingabedaten umfasst, die von der E/A-Vorrichtung 162 gesendet werden, extrahiert die Eingabedaten aus dem empfangenen Frame und speichert die Eingabedaten im ersten Eingabepufferspeicher 42. Danach speichert der Prozessor 30 der anomalen PLC 142 die Eingabedaten, die im ersten Eingabepufferspeicher 42 gespeichert sind, im Hauptspeicher 32. Dadurch werden die Eingabedaten (die Eingabedaten, die von der E/A-Vorrichtung 162 gesendet werden), die im ersten Eingabepufferspeicher 42 und im Hauptspeicher 32 gespeichert sind, aktualisiert.
  • <Kommunikation zwischen PC 12 und anomaler PLC 142 (siehe FIG. 15)>
  • Der Prozessor 20 des PC 12 beendet die Ausführung des anderen Programms P2 eines Ausführungszyklus und speichert sodann die zweiten Ausgabedaten, die durch Ausführen des anderen Programms P2 generiert werden, im Hauptspeicher 22. Der Prozessor 20 des PC 12 speichert die zweiten Ausgabedaten, die im Hauptspeicher 22 gespeichert sind, im Ausgabepufferspeicher 84 der Kommunikationseinheit 24. Dadurch werden die zweiten Ausgabedaten (die zweiten Ausgabedaten, die an die E/A-Vorrichtung 162 ausgegeben werden), die im Hauptspeicher 22 und im Ausgabepufferspeicher 84 gespeichert sind, aktualisiert.
  • Das andere Programm P2 wird in dieser Hinsicht auf Basis der Eingabedaten (der Eingabedaten, die von der E/A-Vorrichtung 162 gesendet werden), die derzeit im Eingabepufferspeicher 82 gespeichert sind, ausgeführt.
  • Folglich schreibt die Kommunikationseinheit 24 des PCs 12 die zweiten Ausgabedaten, die im Ausgabepufferspeicher 84 gespeichert sind, in das Frame und sendet das Frame an die anomale PLC 142. Auch in diesem Fall schreibt der PC 12 die Auswahlinformation des logischen Werts „1“ in das Frame, das die zweiten Ausgabedaten umfasst, die an die anomale PLC 142 gesendet werden, und sendet das Frame. Die Kommunikationseinheit 34 der anomalen PLC 142 extrahiert die zweiten Ausgabedaten (die zweiten Ausgabedaten, die an die E/A-Vorrichtung 162 ausgegeben werden) aus dem Frame, das vom PC 12 gesendet wird, und speichert die extrahierten zweiten Ausgabedaten im zweiten Ausgabepufferspeicher 48. Dadurch werden die zweiten Ausgabedaten (die zweiten Ausgabedaten, die an die E/A-Vorrichtung 162 ausgegeben werden), die im zweiten Ausgabepufferspeicher 48 gespeichert sind, aktualisiert.
  • Die Kommunikationseinheit 34 der anomalen PLC 142 extrahiert die Auswahlinformation aus dem Frame, das vom PC 12 gesendet wird, und speichert den logischen Wert „1“ der extrahierten Auswahlinformation im Register 58. Dadurch wählt die Auswahleinheit 56 der anomalen PLC 142 die zweiten Ausgabedaten, die im zweiten Ausgabepufferspeicher 48 gespeichert sind, als die Ausgabedaten aus, die an die E/A-Vorrichtung 162 gesendet werden. Wenn die PLC 142 und die E/A-Vorrichtung 162 das nächste Mal kommunizieren, werden somit die Ausgabedaten, die im zweiten Ausgabepufferspeicher 48 gespeichert sind, an die E/A-Vorrichtung 162 ausgegeben. Folglich ist es möglich, das Steuersubjekt, das die E/A-Vorrichtung 162 steuert, von der anomalen PLC 142 auf den PC 12 zu wechseln.
  • Die Kommunikationseinheit 34 der anomalen PLC 142 schreibt die Eingabedaten, die im ersten Eingabepufferspeicher 42 gespeichert sind, in das Frame und sendet das Frame an den PC 12. Die Kommunikationseinheit 24 des PC 12 empfängt das Frame, das die Eingabedaten (die Eingabedaten, die von der E/A-Vorrichtung 162 gesendet werden), wie von der anomalen PLC 142 gesendet, extrahiert die Eingabedaten aus dem empfangenen Frame und speichert die Eingabedaten im Eingabepufferspeicher 82.
  • Der Prozessor 20 des PC 12 speichert die Eingabedaten, die im Eingabepufferspeicher 82 gespeichert sind, im Hauptspeicher 22. Die Eingabedaten (die Eingabedaten, die von der E/A-Vorrichtung 162 gesendet werden), die im Eingabepufferspeicher 82 und im Hauptspeicher 22 gespeichert sind, werden aktualisiert. Der Prozessor 20 des PC 12 beginnt die Ausführung des anderen Programms P2 eines nächsten eintretenden Ausführungszyklus.
  • Wenn eine Anomalie in der PLC 142 auftritt, werden die Steuersubjekte, die die E/A-Vorrichtung 162 steuern, somit von der anomalen PLC 142 auf den PC 12 gewechselt. Eine Antwort (Aktualisierung) der Ausgabedaten an die Eingabedaten von der E/A-Vorrichtung 162 verzögert sich im Vergleich zur einer normalen Zeit jedoch um einen Ausführungszyklus. Um diese Verzögerung zu vermeiden, können die anomale PLC 142 und die E/A-Vorrichtung 162 nach Aktualisierung des zweiten Ausgabepufferspeichers 48 der anomalen PLC 142 im aktuellen Ausführungszyklus erneut kommunizieren.
  • Ein Beispiel für eine Datenlieferung zwischen der PLC 14n und dem PC 12, dem das selbstzugewiesene Programm Pn der PLC 14n als das andere Programm Pn zugeordnet wurde, wird unter Bezugnahme auf die 14 und 15 beschrieben. Eine Datenlieferung zwischen einer PLC 14n und der anderen PLC 14n, der das selbstzugewiesene Programm der PLC 14n als das andere Programm Pn zugeordnet wurde, kann jedoch gleichermaßen durchgeführt werden. Eine Verarbeitung einer Datenlieferung zwischen der PLC 141 und der PLC 144 wird unter Bezugnahme auf die 14 und 15 kurz beschrieben. Die PLC 142 und der PC 12 in den 14 und 15 sind durch die PLC 141 und die PLC 144 ersetzt und es wird nur die Ausführung des Programms P1 beschrieben.
  • <Kommunikation zwischen normaler PLC 141 und E/A-Vorrichtung 161 (siehe FIG. 14)>
  • Der Prozessor 30 der PLC 141 beendet die Ausführung des selbstzugewiesenen Programms P1 (siehe 7) eines Ausführungszyklus und speichert sodann die ersten Ausgabedaten, die durch Ausführen des selbstzugewiesenen Programms P1 generiert werden, im Hauptspeicher 32. Der Prozessor 30 der PLC 141 speichert die ersten Ausgabedaten, die im Hauptspeicher 32 gespeichert sind, im ersten Ausgabepufferspeicher 46 der Kommunikationseinheit 34. Dadurch werden die ersten Ausgabedaten, die im Hauptspeicher 32 und im ersten Ausgabepufferspeicher 46 gespeichert sind, aktualisiert. Dieses selbstzugewiesene Programm P1 wird in dieser Hinsicht auf Basis der Eingabedaten ausgeführt, die derzeit im ersten Eingabepufferspeicher 42 gespeichert sind.
  • Folglich schreibt die Kommunikationseinheit 34 der PLC 141 die ersten Ausgabedaten, die im ersten Ausgabepufferspeicher 46 gespeichert sind, in das Frame und sendet das Frame an die E/A-Vorrichtung 161 (der logische Wert, der im Register 58 gespeichert ist, ist „0“). Dadurch werden die ersten Ausgabedaten über die E/A-Vorrichtung 161 an das Steuerziel 181 ausgegeben. Die Kommunikationseinheit 34 der PLC 141 empfängt das Frame, das die Eingabedaten umfasst, die von der E/A-Vorrichtung 161 gesendet werden (Steuerziel 181), extrahiert die Eingabedaten aus dem empfangenen Frame und speichert die Eingabedaten im ersten Eingabepufferspeicher 42. Danach speichert der Prozessor 30 der PLC 141 die Eingabedaten, die im ersten Eingabepufferspeicher 42 gespeichert sind, im Hauptspeicher 32. Dadurch werden die Eingabedaten (die Eingabedaten, die von der E/A-Vorrichtung 161 gesendet werden), die im ersten Eingabepufferspeicher 42 und im Hauptspeicher 32 gespeichert sind, aktualisiert. Der Prozessor 30 der PLC 141 beginnt die Ausführung des selbstzugewiesenen Programms P1 zu einem Eintrittszeitpunkt eines nächsten Ausführungszyklus.
  • <Kommunikation zwischen normaler PLC 141 und normaler PLC 144 (siehe FIG. 14)>
  • Der Prozessor 30 der PLC 144 beendet die Ausführung des anderen Programms P1 (siehe 7) eines Ausführungszyklus und speichert sodann die zweiten Ausgabedaten, die durch Ausführen des anderen Programms P1 generiert werden, im Hauptspeicher 32. Der Prozessor 30 der PLC 144 speichert die zweiten Ausgabedaten, die im Hauptspeicher 32 gespeichert sind, im dritten Ausgabepufferspeicher 50 der Kommunikationseinheit 34. Dadurch werden die zweiten Ausgabedaten (die zweiten Ausgabedaten, die an die E/A-Vorrichtung 161 ausgegeben werden), die im Hauptspeicher 32 und im dritten Ausgabepufferspeicher 50 gespeichert sind, aktualisiert. Das andere Programm P1 wird in dieser Hinsicht auf Basis der Eingabedaten (der Eingabedaten, die von der E/A-Vorrichtung 161 gesendet werden), die derzeit im zweiten Eingabepufferspeicher 44 gespeichert sind, ausgeführt.
  • Folglich schreibt die Kommunikationseinheit 34 der PLC 144 die zweiten Ausgabedaten, die im dritten Ausgabepufferspeicher 50 gespeichert sind, in das Frame und sendet das Frame über den PC 12 an die PLC 141. Auch in diesem Fall schreibt der PC 12 die Auswahlinformation des logischen Werts „0“ in das Frame, das die zweiten Ausgabedaten umfasst, das an die PLC 141 gesendet wird. Die Kommunikationseinheit 34 der PLC 141 extrahiert die zweiten Ausgabedaten (die zweiten Ausgabedaten, die an die E/A-Vorrichtung 161 ausgegeben werden) aus dem Frame, das von der PLC 144 gesendet wird, und speichert die extrahierten zweiten Ausgabedaten im zweiten Ausgabepufferspeicher 48. Dadurch werden die zweiten Ausgabedaten (die zweiten Ausgabedaten, die an die E/A-Vorrichtung 161 ausgegeben werden), die im zweiten Ausgabepufferspeicher 48 gespeichert sind, aktualisiert. Die Kommunikationseinheit 34 der PLC 141 extrahiert die Auswahlinformation aus dem Frame, das von der PLC 144 über den PC 12 gesendet wird, und speichert den logischen Wert „0“ der extrahierten Auswahlinformation im Register 58.
  • Dadurch wählt die Auswahleinheit 56 der PLC 141 die ersten Ausgabedaten, die im ersten Ausgabepufferspeicher 46 gespeichert sind, als die Ausgabedaten aus, die an die E/A-Vorrichtung 161 gesendet werden.
  • Die Kommunikationseinheit 34 der PLC 141 schreibt die Eingabedaten, die im ersten Eingabepufferspeicher 42 gespeichert sind, in das Frame und sendet das Frame über den PC 12 an die PLC 144.
  • Die Kommunikationseinheit 34 der PLC 144 empfängt das Frame, das die Eingabedaten (die Eingabedaten, die von der E/A-Vorrichtung 161 gesendet werden), wie über den PC 12 von der PLC 141 gesendet, extrahiert die Eingabedaten aus dem empfangenen Frame und speichert die Eingabedaten im zweiten Eingabepufferspeicher 44. Der Prozessor 30 der PLC 144 speichert die Eingabedaten, die im zweiten Eingabepufferspeicher 44 gespeichert sind, im Hauptspeicher 32. Dadurch werden die Eingabedaten (die Eingabedaten, die von der E/A-Vorrichtung 161 gesendet werden), die im zweiten Eingabepufferspeicher 44 und im Hauptspeicher 32 gespeichert sind, aktualisiert. Der Prozessor 30 des Hauptspeichers 32 beginnt die Ausführung des anderen Programms P1 bei einem Eintritt des nächsten Ausführungszyklus.
  • <Kommunikation zwischen anomaler PLC 141 und E/A-Vorrichtung 161 (siehe FIG. 15)>
  • Wenn ein Fehler erkannt wird, generiert der Prozessor 30 der anomalen PLC 141 eine Fehlerinformation und sendet die generierte Fehlerinformation über die obige dedizierte Leitung an den PC 12. In diesem Fall führt der Prozessor 30 der anomalen PLC 141 das selbstzugewiesene Programm P1 nicht aus und daher werden die ersten Ausgabedaten, die im ersten Ausgabepufferspeicher 46 gespeichert sind, nicht aktualisiert.
  • Die Kommunikationseinheit 34 der anomalen PLC 141 schreibt die ersten Ausgabedaten, die im ersten Ausgabepufferspeicher 46 gespeichert sind, in das Frame und sendet das Frame an die E/A-Vorrichtung 161 (der logische Wert, der im Register 58 gespeichert ist, ist in diesem Fall „0“). In diesem Fall werden die ersten Ausgabedaten, die im ersten Ausgabepufferspeicher 46 gespeichert sind, nicht aktualisiert und daher werden die zuvor gesendeten ersten Ausgabedaten erneut an die E/A-Vorrichtung 161 gesendet. Die Kommunikationseinheit 34 der anomalen PLC 141 empfängt das Frame, das die Eingabedaten umfasst, die von der E/A-Vorrichtung 161 gesendet werden, extrahiert die Eingabedaten aus dem empfangenen Frame und speichert die Eingabedaten im ersten Eingabepufferspeicher 42. Danach speichert der Prozessor 30 der anomalen PLC 141 die Eingabedaten, die im ersten Eingabepufferspeicher 42 gespeichert sind, im Hauptspeicher 32. Dadurch werden die Eingabedaten (die Eingabedaten, die von der E/A-Vorrichtung 161 gesendet werden), die im ersten Eingabepufferspeicher 42 und im Hauptspeicher 32 gespeichert sind, aktualisiert.
  • <Kommunikation zwischen anomaler PLC 141 und normaler PLC 144 (siehe FIG. 15)>
  • Der Prozessor 30 der PLC 144 beendet die Ausführung des anderen Programms P1 eines Ausführungszyklus und speichert die zweiten Ausgabedaten, die durch Ausführen des anderen Programms P1 generiert werden, im Hauptspeicher 32. Der Prozessor 30 der PLC 144 speichert die zweiten Ausgabedaten, die im Hauptspeicher 32 gespeichert sind, im dritten Ausgabepufferspeicher 50 der Kommunikationseinheit 34. Somit werden die zweiten Ausgabedaten (die zweiten Ausgabedaten, die an die E/A-Vorrichtung 161 ausgegeben werden), die im Hauptspeicher 32 und im dritten Ausgabepufferspeicher 50 gespeichert sind, aktualisiert. Das andere Programm P1 wird in dieser Hinsicht auf Basis der Eingabedaten (der Eingabedaten, die von der E/A-Vorrichtung 161 gesendet werden), die derzeit im zweiten Eingabepufferspeicher 44 gespeichert sind, ausgeführt.
  • Folglich schreibt die Kommunikationseinheit 34 der PLC 144 die zweiten Ausgabedaten, die im dritten Ausgabepufferspeicher 50 gespeichert sind, in das Frame und sendet das Frame über den PC 12 an die anomale PLC 141. Zu diesem Zeitpunkt schreibt der PC 12 die Auswahlinformation des logischen Werts „1“ in das Frame, das die zweiten Ausgabedaten umfasst, die an die anomale PLC 141 gesendet werden, und sendet das Frame. Die Kommunikationseinheit 34 der anomalen PLC 141 extrahiert die zweiten Ausgabedaten (die zweiten Ausgabedaten, die an die E/A-Vorrichtung 161 ausgegeben werden) aus dem Frame, das über den PC 12 von der PLC 144 gesendet wird, und speichert die extrahierten zweiten Ausgabedaten im zweiten Ausgabepufferspeicher 48. Dadurch werden die zweiten Ausgabedaten (die zweiten Ausgabedaten, die an die E/A-Vorrichtung 161 ausgegeben werden), die im zweiten Ausgabepufferspeicher 48 gespeichert sind, aktualisiert. Die Kommunikationseinheit 34 der anomalen PLC 141 extrahiert die Auswahlinformation aus dem Frame, das von der PLC 144 über den PC 12 gesendet wird, und speichert den logischen Wert „1“ der extrahierten Auswahlinformation im Register 58. Somit wählt die Auswahleinheit 56 der anomalen PLC 141 die zweiten Ausgabedaten, die im zweiten Ausgabepufferspeicher 48 gespeichert sind, als die Ausgabedaten aus, die an die E/A-Vorrichtung 161 gesendet werden. Wenn die PLC 141 und die E/A-Vorrichtung 161 das nächste Mal kommunizieren, werden somit die Ausgabedaten, die im zweiten Ausgabepufferspeicher 48 gespeichert sind, an die E/A-Vorrichtung 161 ausgegeben. Folglich ist es möglich, das Steuersubjekt, das die E/A-Vorrichtung 161 steuert, von der anomalen PLC 141 auf den PLC 144 zu wechseln.
  • Die Kommunikationseinheit 34 der anomalen PLC 141 schreibt die Eingabedaten, die im ersten Eingabepufferspeicher 42 gespeichert sind, in das Frame und sendet das Frame über den PC 12 an die PLC 144. Die Kommunikationseinheit 34 der PLC 144 empfängt das Frame, das die Eingabedaten (die Eingabedaten, die von der E/A-Vorrichtung 161 gesendet werden), wie über den PC 12 von der anomalen PLC 141 gesendet, extrahiert die Eingabedaten aus dem empfangenen Frame und speichert die Eingabedaten im zweiten Eingabepufferspeicher 44. Der Prozessor 30 der PLC 144 speichert die Eingabedaten, die im zweiten Eingabepufferspeicher 44 gespeichert sind, im Hauptspeicher 32. Die Eingabedaten (die Eingabedaten, die von der E/A-Vorrichtung 161 gesendet werden), die im zweiten Eingabepufferspeicher 44 und im Hauptspeicher 32 gespeichert sind, werden aktualisiert. Der Prozessor 30 der PLC 144 beginnt die Ausführung des anderen Programms P1 eines nächsten eintretenden Ausführungszyklus.
  • Wenn eine Anomalie in der PLC 141 auftritt, werden die Steuersubjekte, die die E/A-Vorrichtung 161 steuern, gewechselt. Eine Antwort (Aktualisierung) der Ausgabedaten an die Eingabedaten von der E/A-Vorrichtung 161 verzögert sich im Vergleich zur einer normalen Zeit jedoch um einen Ausführungszyklus. Um diese Verzögerung zu vermeiden, können die anomale PLC 141 und die E/A-Vorrichtung 161 nach Aktualisierung des zweiten Ausgabepufferspeichers 48 im aktuellen Ausführungszyklus erneut kommunizieren.
  • Der erste Eingabepufferspeicher 42 und der zweite Eingabepufferspeicher 44 können als ein Speichermedium konfiguriert sein.
  • In diesem Fall kann ein Speicherbereich eines Speichermediums in zumindest zwei partitioniert werden, um zu bewirken, dass ein Speicherbereich als erster Eingabepufferspeicher 42 agiert und der andere Speicherbereich als zweiter Eingabepufferspeicher 44 agiert. Gleichermaßen können der erste Ausgabepufferspeicher 46, der zweite Ausgabepufferspeicher 48 und der dritte Ausgabepufferspeicher 50 auch als ein Speichermedium konfiguriert sein. Auch in diesem Fall kann ein Speicherbereich eines Speichermediums in zumindest drei partitioniert werden, um zu bewirken, dass jeder der drei partitionierten Speicherbereiche jeweils als der erste Ausgabepufferspeicher 46, der zweite Ausgabepufferspeicher 48 und der dritte Ausgabepufferspeicher 50 agiert. Ferner können der erste Eingabepufferspeicher 42, der zweite Eingabepufferspeicher 44, der erste Ausgabepufferspeicher 46, der zweite Ausgabepufferspeicher 48 und der dritte Ausgabepufferspeicher 50 als ein Speichermedium konfiguriert sein.
  • Wenn in der PLC 14n eine Anomalie auftritt, wird das Steuersubjekt, das das Steuerziel 18n steuert, das über die E/A-Vorrichtung 16n mit der anomalen PLC 14n verbunden ist, gewechselt. Sogar wenn in der PLC 14n keine Anomalie auftritt, kann das Steuersubjekt jedoch gewechselt werden. Das heißt, das Steuersubjekt kann gewechselt werden, um zu bewirken, dass der PC 12 oder eine andere normale PLC 14n das Steuerziel 18n steuert, das über die E/A-Vorrichtung 16n mit der normalen PLC 14n verbunden ist.
  • Das PLC-System (Steuerungssystem) 10, das bei der obigen Ausführungsform beschrieben ist, umfasst die Mehrzahl von PLCs (Steuerungen) 14n, die Mehrzahl von E/A-Vorrichtungen 16n, die das Steuerziel 18n jeder der Mehrzahl von PLCs 14n und jede der Mehrzahl von PLCs 14n verbinden und eine erforderliche Information zwischen dem Steuerziel 18n und der PLC 14n senden, und den PC (Steuervorrichtung höherer Ebene) 12, der die Mehrzahl von PLCs 14n steuert und verwaltet. Der PC 12 umfasst den Hauptspeicher (Speichereinheit) 22 und den Prozessor 20. Der Hauptspeicher 22 speichert eine Mehrzahl von Programmen Pn, die von jeder der Mehrzahl von PLCs 14n ausgeführt werden. Der Prozessor 20 ordnet jedes der Mehrzahl von Programmen Pn, die im Hauptspeicher 22 gespeichert sind, als selbstzugewiesenes Programm Pn jeder der Mehrzahl von PLCs 14n zu, um zu bewirken, dass jede der Mehrzahl von PLCs 14n das Steuerziel 18n steuert, das über die E/A-Vorrichtung 16n mit jeder PLC 14n verbunden ist. Der Prozessor 20 ordnet ferner alle oder einen Teil der Mehrzahl von Programmen Pn als die anderen Programme Pn dem PC 12 und der Mehrzahl von PLCs 14n zu, um zu bewirken, dass der PC 12 und die Mehrzahl von PLCs 14n alle oder einen Teil der Mehrzahl von Programmen Pn, die im Hauptspeicher 22 gespeichert sind, in einem Ausführungszyklus parallel doppelt ausführt. Jede der Mehrzahl von PLCs 14n umfasst den ersten Eingabepufferspeicher 42, den ersten Ausgabepufferspeicher 46 und den zweiten Ausgabepufferspeicher 48.
  • Der erste Eingabepufferspeicher 42 speichert Eingabedaten, die vom Steuerziel 18n gesendet werden, das über die E/A-Vorrichtung 16n mit jeder PLC 14n verbunden ist. Der erste Ausgabepufferspeicher 46 speichert die ersten Ausgabedaten, die durch Ausführung des selbstzugewiesenen Programms Pn erhalten werden, das jeder PLC 14n zugeordnet ist, um das Steuerziel 18n zu steuern, das über die E/A-Vorrichtung 16n mit jeder PLC 14n verbunden ist. Der zweite Ausgabepufferspeicher 48 speichert die zweiten Ausgabedaten, die erhalten werden, wenn der PC 12 oder die andere PLC 14n das andere Programm Pn ausführt, das dem PC 12 oder der anderen PLC 14n zugeordnet ist, um das Steuerziel 18n zu steuern, das über die E/A-Vorrichtung 16n mit der PLC 14n außer dem PC 12 oder der anderen PLC 14n verbunden ist. Jede der Mehrzahl von PLCs 14n gibt eines der ersten Ausgabedaten, die im ersten Ausgabepufferspeicher 46 gespeichert sind, und der zweiten Ausgabedaten, die im zweiten Ausgabepufferspeicher 48 gespeichert sind, an das Steuerziel 18n aus, das über die E/A-Vorrichtung 16n mit jeder PLC 14n verbunden ist, auf Basis der Auswahlinformation, die vom PC 12 gesendet wird.
  • Folglich ist es möglich, Ausgabedaten, die bislang erhaltenen Ausführungsergebnissen nicht widersprechen, an die mit diesem Steuerziel 18n verbundene E/A-Vorrichtung 16n auszugeben, und zwar sogar dann, wenn das Steuersubjekt gewechselt wird, das das Steuerziel 18n steuert. Folglich ist es möglich, das Steuersubjekt für das Steuerziel 18n zu wechseln, während die Steuerung der Steuerziele 18n in einem stabilen Zustand fortgesetzt wird.
  • Jede der Mehrzahl von PLCs 14n umfasst ferner einen Prozessor 30. Der Prozessor 30 generiert die ersten Ausgabedaten, die durch Ausführung des selbstzugewiesenen Programms Pn erhalten werden, das jeder PLC 14n zugeordnet ist, auf Basis der Eingabedaten, die vom Steuerziel 18n gesendet werden, das über die E/A-Vorrichtung 16n mit jeder PLC 14n verbunden ist. Jede der Mehrzahl von PLCs 14n generiert die zweiten Ausgabedaten durch Ausführen des anderen Programms Pn, das jeder PLC 14n zugeordnet ist, auf Basis der Eingabedaten, die vom Steuerziel 18n gesendet werden, das über die E/A-Vorrichtung 16n mit der anderen PLC 14n verbunden ist und gemäß dem anderen Programm Pn gesteuert wird, das jeder PLC 14n zugeordnet ist. Somit führt die PLC 14n das Programm Pn (das selbstzugewiesene Programm Pn oder das andere Programm Pn) auf Basis der Eingabedaten aus, die vom Steuerziel 18n gesendet werden, und generiert die Ausgabedaten, die an das Steuerziel 18n ausgegeben werden, das die Eingabedaten gesendet hat. Folglich ist es möglich, das Steuerziel 18n in einem stabilen Zustand zu steuern.
  • Der Prozessor 20 des PC 12 generiert die zweiten Ausgabedaten durch Ausführen des anderen Programms Pn, das dem PC 12 zugeordnet ist, auf Basis der Eingabedaten, die vom Steuerziel 18n gesendet werden,das gemäß dem anderen Programm Pn gesteuert wird, das dem PC 12 zugeordnet ist. Somit führt der PC 12 das andere Programm Pn auf Basis der Eingabedaten aus, die vom Steuerziel 18n gesendet werden, und generiert die Ausgabedaten, die an das Steuerziel 18n ausgegeben werden, das die Eingabedaten gesendet hat. Folglich ist es möglich, das Steuerziel 18n im stabilen Zustand zu steuern.
  • Der Prozessor 20 des PC 12 gibt eine Auswahlinformation an die Mehrzahl von PLCs 14n aus, um zu bewirken, dass die PLC 14n, die als normale PLC ermittelt wurde, die ersten Ausgabedaten, die im ersten Ausgabepufferspeicher 46 gespeichert sind, an das Steuerziel 18n ausgibt, das über die E/A-Vorrichtung 16n mit jeder PLC 14n verbunden ist, und um zu bewirken, dass die PLC 14n, die als anomale PLC 14n ermittelt wurde, die zweiten Ausgabedaten, die im zweiten Ausgabepufferspeicher 48 gespeichert sind, an das Steuerziel 18n ausgibt, das über die E/A-Vorrichtung 16n mit der anomalen PLC 14n verbunden ist. Folglich kann, sogar wenn eine Anomalie in der PLC 14n auftritt, die andere normale PLC 14n anstatt der anomalen PLC 14n das Steuerziel 18n steuern, das über die E/A-Vorrichtung 16n mit der anomalen PLC 14n verbunden ist. Während die Steuerung des Steuerziels 18n, das über die E/A-Vorrichtung 16n mit der anomalen PLC 14n verbunden ist, im stabilen Zustand fortgesetzt wird, ist es möglich, die Steuersubjekte des Steuerziels zu wechseln, das mit der anomalen PLC 14n verbunden ist.
  • Der Prozessor 20 des PC 12 ermittelt, ob jede der Mehrzahl von PLCs 14n normal oder anomal ist, auf Basis zumindest eines von einer Fehlerinformation und einem Überlebenssignal jeder der Mehrzahl von PLCs 14n, wie von der Mehrzahl von PLCs 14n erhalten. Somit kann der PC 12 genau ermitteln, ob die PLC 14n normal oder anomal ist.
  • Die Kommunikationseinheitseinheit 34 der PLC 14n umfasst ferner eine Auswahleinheit 56, die eines der ersten Ausgabedaten, die im ersten Ausgabepufferspeicher 46 gespeichert sind, und der zweiten Ausgabedaten, die im zweiten Ausgabepufferspeicher 48 gespeichert sind, als Ausgabedaten auswählt, die an das Steuerziel 18n ausgegeben werden, das über die E/A-Vorrichtung 16n mit jeder PLC 14n verbunden ist. Folglich ist es möglich, die an die E/A-Vorrichtung 16n ausgegebenen Ausgabedaten auf einfache Weise zu wechseln.
  • Der Prozessor 20 des PC 12 erhält eine Lastinformation, die eine Last indiziert, die angelegt ist, wenn jede der Mehrzahl von PLCs 14 das selbstzugewiesene Programm Pn ausführt, über die Kommunikationseinheiten 34 der Mehrzahl von PLCs 14n und ordnet das andere Programm Pn auf Basis der erhaltenen Lastinformation zu. Folglich ist es möglich, das andere Programm Pn zuzuordnen, um zu bewirken, dass jede der Mehrzahl von PLCs 14n die Verarbeitung des Programms Pn in einem Ausführungszyklus beendet.
  • Der PC 12 empfängt die Eingabedaten, die im ersten Eingabepufferspeicher 42 der PLC 14n gespeichert sind, die über die E/A-Vorrichtung 16n mit dem Steuerziel 18n verbunden ist, das gemäß dem anderen Programm Pn gesteuert wird, das jeder PLC 14n zugeordnet ist, und sendet die zweiten Ausgabedaten an die PLC 14n, die über die E/A-Vorrichtung 16n mit dem Steuerziel 18n verbunden ist, das gemäß dem anderen Programm Pn gesteuert wird, das jeder PLC 14n zugeordnet ist. Folglich kann der PC 12 die zweiten Ausgabedaten, die bislang erhaltenen Ausführungsergebnissen nicht widersprechen, an die PLC 14n senden und das Steuerziel 18n steuern, das über die E/A-Vorrichtung 16n mit der PLC 14n verbunden ist.
  • Jede der Mehrzahl von PLCs 14n umfasst ferner den zweiten Eingabepufferspeicher 44 und den dritten Ausgabepufferspeicher 50. Der zweite Eingabepufferspeicher 44 speichert die Eingabedaten, die vom Steuerziel 18n gesendet werden, das über die E/A-Vorrichtung 16n mit der anderen PLC 14n verbunden ist und gemäß dem anderen Programm Pn gesteuert wird, das jeder PLC 14n zugeordnet ist. Der dritte Ausgabepufferspeicher 50 speichert die zweiten Ausgabedaten, die durch Ausführung des anderen Programms Pn erhalten werden, das jeder PLC 14n zugeordnet ist, um das Steuerziel 18n zu steuern, das über die E/A-Vorrichtung 16n mit der anderen PLC 14n verbunden ist. Jede der Mehrzahl von PLCs 14n empfängt die Eingabedaten, die im ersten Eingabepufferspeicher 42 der anderen PLC 14n gespeichert sind, die über die E/A-Vorrichtung 16n mit dem Steuerziel 18n verbunden ist, das gemäß dem anderen Programm Pn gesteuert wird, das jeder PLC 14n zugeordnet ist, über den PC 12 und speichert die empfangenen Eingabedaten im zweiten Eingabepufferspeicher 44. Jede der Mehrzahl von PLC 14n sendet die zweiten Ausgabedaten, die im dritten Ausgabepufferspeicher 50 gespeichert sind, über den PC 12 an die andere PLC 14n, die über die E/A-Vorrichtung 16n mit dem Steuerziel 18n verbunden ist, das gemäß dem anderen Programm Pn gesteuert wird, das jeder PLC 14n zugeordnet ist. Folglich kann die PLC 14n die zweiten Ausgabedaten, die bislang erhaltenen Ausführungsergebnissen nicht widersprechen, an die andere PLC 14n senden und das Steuerziel 18n steuern, das über die E/A-Vorrichtung 16n mit der anderen PLC 14n verbunden ist.

Claims (15)

  1. Steuerungssystem (10), das umfasst: eine Mehrzahl von Steuerungen (14n); eine Mehrzahl von E/A-Vorrichtungen (16n), die so konfiguriert sind, dass sie ein Steuerziel (18n) jeder der Mehrzahl von Steuerungen (14n) und jede der Mehrzahl von Steuerungen (14n) verbinden und eine erforderliche Information zwischen dem Steuerziel (18n) und jeder der Steuerungen (14n) senden; und eine Steuervorrichtung (12) höherer Ebene, die so konfiguriert ist, dass sie die Mehrzahl von Steuerungen (14n) steuert und verwaltet, wobei: die Steuervorrichtung (12) höherer Ebene eine Speichereinheit (22) umfasst, die so konfiguriert ist, dass sie jedes einer Mehrzahl von Programmen (Pn) speichert, die von jeder der Mehrzahl von Steuerungen (14n) ausgeführt werden, und einen Prozessor (20), der so konfiguriert ist, dass er jedes der Mehrzahl von Programmen (Pn), die in der Speichereinheit (22) als selbstzugewiesenes Programm (Pn) gespeichert sind, jeder der Mehrzahl von Steuerungen (14n) zuordnet, um zu bewirken, dass jede der Mehrzahl von Steuerungen (14n) das Steuerziel (18n) steuert, das über die E/A-Vorrichtung (16n) mit jeder Steuerung (14n) verbunden ist, und ferner alle oder einen Teil der Mehrzahl von Programmen (Pn) als anderes Programm (Pn) der Steuervorrichtung (12) höherer Ebene und der Mehrzahl von Steuerungen (14n) zuordnet, um zu bewirken, dass die Steuervorrichtung (12) höherer Ebene und die Mehrzahl von Steuerungen (14n) alle oder einen Teil von Programmen (Pn), die in der Speichereinheit (22) gespeichert sind, in einem Ausführungszyklus der Mehrzahl von Steuerungen (14n) parallel doppelt ausführen; und jede der Mehrzahl von Steuerungen (14n) eine Kommunikationseinheit (34) umfasst, umfassend: einen ersten Eingabepufferspeicher (42), der so konfiguriert ist, dass er Eingabedaten speichert, die vom Steuerziel (18n) gesendet werden, das über die E/A-Vorrichtung (16n) mit der einen Steuerung (14n) verbunden ist, einen ersten Ausgabepufferspeicher (46), der so konfiguriert ist, dass er erste Ausgabedaten speichert, die durch Ausführen des selbstzugewiesenen Programms (Pn) erhalten werden, das der einen Steuerung (14n) zugeordnet ist, um das Steuerziel (18n) zu steuern, das über die E/A-Vorrichtung (16n) mit sich selbst verbunden ist, und einen zweiten Ausgabepufferspeicher (48), der so konfiguriert ist, dass er zweite Ausgabedaten speichert, die erhalten werden, wenn die Steuervorrichtung (12) höherer Ebene oder eine andere der Steuerungen (14n) das andere Programm (Pn) ausführt, das der Steuervorrichtung (12) höherer Ebene oder der anderen der Steuerungen (14n) zugeordnet ist, um das Steuerziel (18n) zu steuern, das über die E/A-Vorrichtung (16n) mit der einen Steuerung (14n) verbunden ist, und wobei die eine Steuerung (14n) so konfiguriert ist, dass sie eines der ersten Ausgabedaten und der zweiten Ausgabedaten an das Steuerziel (18n) ausgibt, das über die E/A-Vorrichtung (16n) mit der einen Steuerung (14n) verbunden ist, auf Basis einer Auswahlinformation, die von der Steuervorrichtung (12) höherer Ebene gesendet wird, wobei die ersten Ausgabedaten im ersten Ausgabepufferspeicher (46) gespeichert werden, wobei die zweiten Ausgabedaten im zweiten Ausgabepufferspeicher (48) gespeichert werden.
  2. Steuerungssystem (10) nach Anspruch 1, wobei jede der Mehrzahl von Steuerungen (14n) ferner einen Prozessor (30) umfasst, der so konfiguriert ist, dass er die ersten Ausgabedaten durch Ausführen des selbstzugewiesenen Programms (Pn) generiert, das der einen Steuerung (14n) zugeordnet ist, auf Basis der Eingabedaten, die vom Steuerziel (18n) gesendet werden, das über die E/A-Vorrichtung (16n) mit der einen Steuerung (14n) verbunden ist, und dass er die zweiten Ausgabedaten durch Ausführen des anderen Programms (Pn), das der einen Steuerung (14n) zugeordnet ist, auf Basis der Eingabedaten generiert, die vom Steuerziel (18n) gesendet werden, das über die E/A-Vorrichtung (16n) mit der anderen der Steuerungen (14n) verbunden ist und gemäß dem anderen Programm (Pn) gesteuert wird, das der einen Steuerung (14n) zugeordnet ist.
  3. Steuerungssystem (10) nach Anspruch 1 oder 2, wobei der Prozessor (20) der Steuervorrichtung (12) höherer Ebene so konfiguriert ist, dass er die zweiten Ausgabedaten durch Ausführen des anderen Programms (Pn) generiert, das der Steuervorrichtung (12) höherer Ebene zugeordnet ist, auf Basis der Eingabedaten, die vom Steuerziel (18n) gesendet werden, das gemäß dem anderen Programm (Pn) gesteuert wird, das der Steuervorrichtung (12) höherer Ebene zugeordnet ist.
  4. Steuerungssystem (10) nach einem der Ansprüche 1 bis 3, wobei der Prozessor (20) der Steuervorrichtung (12) höherer Ebene so konfiguriert ist, dass er die Auswahlinformation an die Mehrzahl von Steuerungen (14n) ausgibt, um zu bewirken, dass eine der Steuerungen (14n), die als normale Steuerung (14n) ermittelt wurde, die ersten Ausgabedaten, die im ersten Ausgabepufferspeicher (46) gespeichert sind, an das Steuerziel (18n) ausgibt, das über die E/A-Vorrichtung (16n) mit der normalen Steuerung (14n) verbunden ist, und um zu bewirken, dass eine andere der Steuerungen (14n), die als anomale Steuerung (14n) ermittelt wurde, die zweiten Ausgabedaten, die im zweiten Ausgabepufferspeicher (48) gespeichert sind, an das Steuerziel (18n) ausgibt, das über die E/A-Vorrichtung (16n) mit der anomalen Steuerung (14n) verbunden ist.
  5. Steuerungssystem (10) nach Anspruch 4, wobei der Prozessor (20) der Steuervorrichtung (12) höherer Ebene so konfiguriert ist, dass er ermittelt, ob jede der Mehrzahl von Steuerungen (14n) normal oder anomal ist, auf Basis zumindest eines von einer Fehlerinformation und einem Überlebenssignal jeder der Mehrzahl von Steuerungen (14n), wie von der Mehrzahl von Steuerungen (14n) erhalten.
  6. Steuerungssystem (10) nach einem der Ansprüche 1 bis 5, wobei die Kommunikationseinheit (34) der Steuerung (14n) ferner eine Auswahleinheit (56) umfasst, die so konfiguriert ist, dass sie eine der ersten Ausgabedaten und der zweiten Ausgabedaten auf Basis der Auswahlinformation als Ausgabedaten auswählt, wobei die ersten Ausgabedaten im ersten Ausgabepufferspeicher (46) gespeichert werden, die zweiten Ausgabedaten im zweiten Ausgabepufferspeicher (48) gespeichert werden und die Ausgabedaten an das Steuerziel (18n) ausgegeben werden, das über die E/A-Vorrichtung (16n) mit jeder Steuerung (14n) verbunden ist.
  7. Steuerungssystem (10) nach einem der Ansprüche 1 bis 6, wobei der Prozessor (20) der Steuervorrichtung (12) höherer Ebene so konfiguriert ist, dass er eine Lastinformation über die Kommunikationseinheit (34) der Mehrzahl von Steuerungen (14n) erhält und das andere Programm (Pn) auf Basis der erhaltenen Lastinformation zuordnet, wobei die Lastinformation eine Last indiziert, die angelegt ist, wenn jede der Mehrzahl von Steuerungen (14n) das selbstzugewiesene Programm (Pn) ausführt.
  8. Steuerungssystem (10) nach einem der Ansprüche 1 bis 7, wobei die Steuervorrichtung (12) höherer Ebene konfiguriert ist zum: Empfangen der Eingabedaten, die im ersten Eingabepufferspeicher (42) der einen Steuerung (14n) gespeichert sind, die über die E/A-Vorrichtung (16n) mit dem Steuerziel (18n) verbunden ist, das gemäß dem anderen Programm (Pn) gesteuert wird, das der Steuervorrichtung (12) höherer Ebene zugeordnet ist, und Senden der zweiten Ausgabedaten an die eine Steuerung (14n), die über die E/A-Vorrichtung (16n) mit dem Steuerziel (18n) verbunden ist, das gemäß dem anderen Programm (Pn) gesteuert wird, das der Steuervorrichtung (12) höherer Ebene zugeordnet ist.
  9. Steuerungssystem (10) nach einem der Ansprüche 1 bis 8, wobei jede eine der Mehrzahl von Steuerungen (14n) ferner umfasst: einen zweiten Eingabepufferspeicher (44), der so konfiguriert ist, dass er die Eingabedaten speichert, die vom Steuerziel (18n) gesendet werden, das über die E/A-Vorrichtung (16n) mit einer anderen der Steuerungen (14n) verbunden ist und gemäß dem anderen Programm (Pn) gesteuert wird, das der einen Steuerung (14n) zugeordnet ist, und einen dritten Ausgabepufferspeicher (50), der so konfiguriert ist, dass er die zweiten Ausgabedaten speichert, die durch Ausführen des anderen Programms (Pn) erhalten werden, das der einen Steuerung (14n) zugeordnet ist, um das Steuerziel (18n) zu steuern, das über die E/A-Vorrichtung (16n) mit der anderen der Steuerungen (14n) verbunden ist, und so konfiguriert ist, dass sie die Eingabedaten über die Steuervorrichtung (12) höherer Ebene empfängt, wobei die Eingabedaten im ersten Eingabepufferspeicher (42) der anderen der Steuerungen (14n) gespeichert werden, die über die E/A-Vorrichtung (16n) mit dem Steuerziel (18n) verbunden ist, das gemäß dem anderen Programm (Pn) gesteuert wird, das der einen Steuerung (14n) zugeordnet ist, dass sie die empfangenen Eingabedaten im zweiten Eingabepufferspeicher (44) speichert und die zweiten Ausgabedaten über die Steuervorrichtung (12) höherer Ebene an die andere der Steuerungen (14n) sendet, wobei die zweiten Ausgabedaten im dritten Ausgabepufferspeicher (50) gespeichert werden und die andere der Steuerungen (14n) über die E/A-Vorrichtung (16n) mit dem Steuerziel (18n) verbunden sind, das gemäß dem anderen Programm (Pn) gesteuert wird, das der einen Steuerung (14n) zugeordnet ist.
  10. Steuerverfahren eines Steuerungssystems (10), das umfasst: eine Mehrzahl von Steuerungen (14n); eine Mehrzahl von E/A-Vorrichtungen (16n), die jeweils so konfiguriert sind, dass sie ein Steuerziel (18n) jeder der Mehrzahl von Steuerungen (14n) mit jeder der Mehrzahl von Steuerungen (14n) verbinden und eine erforderliche Information zwischen dem Steuerziel (18n) und jeder der Steuerungen (14n) senden; und eine Steuervorrichtung (12) höherer Ebene, die so konfiguriert ist, dass sie die Mehrzahl von Steuerungen (14n) steuert und verwaltet, wobei: die Steuervorrichtung (12) höherer Ebene eine Speichereinheit (22) umfasst, die so konfiguriert ist, dass sie jedes einer Mehrzahl von Programmen (Pn) speichert, die von jeder der Mehrzahl von Steuerungen (14n) ausgeführt werden; und jede der Mehrzahl von Steuerungen (14n) eine Kommunikationseinheit (34) umfasst, die einen ersten Eingabepufferspeicher (42), einen ersten Ausgabepufferspeicher (46) und einen zweiten Ausgabepufferspeicher (48) umfasst; wobei das Steuerverfahren umfasst: in der Steuervorrichtung (12) höherer Ebene einen Zuordnungsschritt zum Zuordnen jedes der Mehrzahl von Programmen (Pn), die in der Speichereinheit (22) als selbstzugewiesenes Programm (Pn) gespeichert sind, jeder der Mehrzahl von Steuerungen (14n), um zu bewirken, dass jede der Mehrzahl von Steuerungen (14n) das Steuerziel (18n) steuert, das über die E/A-Vorrichtung (16n) mit jeder Steuerung (14n) verbunden ist, und zum Zuordnen ferner aller oder eines Teils der Mehrzahl von Programmen (Pn) als anderes Programm (Pn) der Steuervorrichtung (12) höherer Ebene und der Mehrzahl von Steuerungen (14n), um zu bewirken, dass die Steuervorrichtung (12) höherer Ebene und die Mehrzahl von Steuerungen (14n) alle oder einen Teil von Programmen (Pn), die in der Speichereinheit (22) gespeichert sind, in einem Ausführungszyklus der Mehrzahl von Steuerungen (14n) parallel doppelt ausführen; und in jeder der Mehrzahl von Steuerungen (14n) einen ersten Eingabe-/Speicherschritt zum Speichern von Eingabedaten im ersten Eingabepufferspeicher (42), wobei die Eingabedaten vom Steuerziel (18n) gesendet werden, das über die E/A-Vorrichtung (16n) mit der einen Steuerung (14n) verbunden ist; in der einen Steuerung (14n) einen ersten Ausgabe-Speicherschritt zum Speichern von ersten Ausgabedaten im ersten Ausgabepufferspeicher (46), wobei die ersten Ausgabedaten durch Ausführen des selbstzugewiesenen Programms (Pn) erhalten werden, das der einen Steuerung (14n) zugeordnet ist, um das Steuerziel (18n) zu steuern, das über die E/A-Vorrichtung (16n) mit der einen Steuerung (14n) verbunden ist; in der einen Steuerung (14n) einen zweiten Ausgabe-/Speicherschritt zum Speichern von zweiten Ausgabedaten im zweiten Ausgabepufferspeicher (48), wobei die zweiten Ausgabedaten erhalten werden, wenn die Steuervorrichtung (12) höherer Ebene oder eine andere der Steuerungen (14n) das andere Programm (Pn) ausführt, das der Steuervorrichtung (12) höherer Ebene oder der anderen Steuerung (14n) zugeordnet ist, um das Steuerziel (18n) zu steuern, das über die E/A-Vorrichtung (16n) mit der einen Steuerung (14n) verbunden ist; und in der einen Steuerung (14n) einen Ausgabeschritt zum Ausgeben eines der ersten Ausgabedaten und der zweiten Ausgabedaten an das Steuerziel (18n), das über die E/A-Vorrichtung (16n) mit der einen Steuerung (14n) verbunden ist, auf Basis einer Auswahlinformation, die von der Steuervorrichtung (12) höherer Ebene gesendet wird, wobei die ersten Ausgabedaten im ersten Ausgabepufferspeicher (46) gespeichert werden, wobei die zweiten Ausgabedaten im zweiten Ausgabepufferspeicher (48) gespeichert werden.
  11. Steuerverfahren nach Anspruch 10, ferner umfassend: in der einen Steuerung (14n) einen ersten Generierungsschritt zum Generieren der ersten Ausgabedaten durch Ausführen des selbstzugewiesenen Programms (Pn), das der einen Steuerung (14n) zugeordnet ist, auf Basis der Eingabedaten, die vom Steuerziel (18n) gesendet werden, das über die E/A-Vorrichtung (16n) mit der einen Steuerung (14n) verbunden ist; in der einen Steuerung (14n) einen zweiten Generierungsschritt zum Generieren der zweiten Ausgabedaten durch Ausführen des anderen Programms (Pn), das der einen Steuerung (14n) zugeordnet ist, auf Basis der Eingabedaten, die vom Steuerziel (18n) gesendet werden, das über die E/A-Vorrichtung (16n) mit einer anderen der Steuerungen (14n) verbunden ist und gemäß dem anderen Programm (Pn) gesteuert wird, das der einen Steuerung (14n) zugeordnet ist; und in der Steuervorrichtung (12) höherer Ebene einen dritten Generierungsschritt zum Generieren der zweiten Ausgabedaten durch Ausführen des anderen Programms (Pn), das der Steuervorrichtung (12) höherer Ebene zugeordnet ist, auf Basis der Eingabedaten, die vom Steuerziel (18n) gesendet werden, das gemäß dem anderen Programm (Pn) gesteuert wird, das der Steuervorrichtung (12) höherer Ebene zugeordnet ist.
  12. Steuerverfahren nach Anspruch 10 oder 11, wobei: die Kommunikationseinheit (34) ferner eine Auswahleinheit (56) umfasst; und wobei das Steuerverfahren ferner umfasst: in der Steuervorrichtung (12) höherer Ebene einen Anomalieermittlungsschritt zum Ermitteln, ob jede der Mehrzahl von Steuerungen (14n) normal oder anomal ist, auf Basis zumindest eines von einer Fehlerinformation und einem Überlebenssignal der jeden der Mehrzahl von Steuerungen (14n), wie von der Mehrzahl von Steuerungen (14n) erhalten; und in der Steuervorrichtung (12) höherer Ebene einen Auswahl-/Ausgabeschritt zum Ausgeben der Auswahlinformation an die Mehrzahl von Steuerungen (14n), um zu bewirken, dass eine der Steuerungen (14n), die als normale Steuerung (14n) ermittelt wurde, die ersten Ausgabedaten, die im ersten Ausgabepufferspeicher (46) gespeichert sind, an das Steuerziel (18n) ausgibt, das über die E/A-Vorrichtung (16n) mit der normalen Steuerung (14n) verbunden ist, und um zu bewirken, dass eine andere der Steuerungen (14n), die als anomale Steuerung ermittelt wurde, die zweiten Ausgabedaten, die im zweiten Ausgabepufferspeicher (48) gespeichert sind, an das Steuerziel (18n) ausgibt, das über die E/A-Vorrichtung (16n) mit der anomalen Steuerung (14n) verbunden ist; und in der Auswahleinheit (56) der Kommunikationseinheit (34) jeder der Mehrzahl von Steuerungen (14n) einen Auswahlschritt zum Auswählen eines der ersten Ausgabedaten und der zweiten Ausgabedaten auf Basis der Auswahlinformation als Ausgabedaten, wobei die ersten Ausgabedaten im ersten Ausgabepufferspeicher (46) gespeichert werden, die zweiten Ausgabedaten im zweiten Ausgabepufferspeicher (48) gespeichert werden und die Ausgabedaten an das Steuerziel (18n) ausgegeben werden, das über die E/A-Vorrichtung (16n) mit jeder Steuerung (14n) verbunden ist.
  13. Steuerverfahren nach einem der Ansprüche 10 bis 12, das ferner in der Steuervorrichtung (12) höherer Ebene einen Erhaltungsschritt zum Erhalten einer Lastinformation über die Kommunikationseinheit (34) der Mehrzahl von Steuerungen (14n) umfasst, wobei die Lastinformation eine Last indiziert, die angelegt ist, wenn jede der Mehrzahl von Steuerungen (14n) das selbstzugewiesene Programm (Pn) ausführt, wobei das andere Programm im Zuordnungsschritt auf Basis der erhaltenen Lastinformation zugeordnet wird.
  14. Steuerverfahren nach einem der Ansprüche 10 bis 13, das ferner umfasst: in der Steuervorrichtung (12) höherer Ebene einen Empfangsschritt zum Empfangen der Eingabedaten, die im ersten Eingabepufferspeicher (42) der Steuerung (14n) gespeichert sind, die über die E/A-Vorrichtung (16n) mit dem Steuerziel (18n) verbunden ist, das gemäß dem anderen Programm (Pn) gesteuert wird, das der Steuervorrichtung (12) höherer Ebene zugeordnet ist; und in der Steuervorrichtung (12) höherer Ebenen einen ersten Sendeschritt zum Senden der zweiten Ausgabedaten an die eine Steuerung (14n), die über die E/A-Vorrichtung (16n) mit dem Steuerziel (18n) verbunden ist, das gemäß dem anderen Programm (Pn) gesteuert wird, das der Steuervorrichtung (12) höherer Ebene zugeordnet ist.
  15. Steuerverfahren nach einem der Ansprüche 10 bis 14, wobei: die Kommunikationseinheit (34) ferner einen zweiten Eingabepufferspeicher (44) und einen dritten Ausgabepufferspeicher (50) umfasst; wobei das Steuerverfahren ferner umfasst: in der einen Steuerung (14n) einen zweiten Eingabe-/Speicherschritt zum Speichern der Eingabedaten im zweiten Eingabepufferspeicher (44), wobei die Eingabedaten vom Steuerziel (18n) gesendet werden, das über die E/A-Vorrichtung (16n) mit einer anderen der Steuerungen (14n) verbunden ist und gemäß dem anderen Programm (Pn) gesteuert wird, das der einen Steuerung (14n) zugeordnet ist; und in der einen Steuerung (14n) einen dritten Ausgabe-Speicherschritt zum Speichern von zweiten Ausgabedaten im dritten Ausgabepufferspeicher (50), wobei die zweiten Ausgabedaten durch Ausführen des anderen Programms (Pn) erhalten werden, das der einen Steuerung (14n) zugeordnet ist, um das Steuerziel (18n) zu steuern, das über die E/A-Vorrichtung (16n) mit der anderen Steuerung (14n) verbunden ist; und in der einen Steuerung (14n) einen zweiten Sendeschritt zum Senden der zweiten Ausgabedaten, die im dritten Ausgabepufferspeicher (50) gespeichert sind, an die andere Steuerung (14n) über die Steuervorrichtung (12) höherer Ebene, wobei die andere Steuerung (14n) über die E/A-Vorrichtung (16n) mit dem Steuerziel (18n) verbunden ist, das gemäß dem anderen Programm (Pn) gesteuert wird, das der einen Steuerung (14n) zugeordnet ist; und wobei die eine Steuerung (14n) im zweiten Eingabe-/Speicherschritt so konfiguriert ist, dass sie die Eingabedaten über die Steuervorrichtung (12) höherer Ebene empfängt, wobei die Eingabedaten im ersten Eingabepufferspeicher (42) der anderen Steuerung (14n) gespeichert werden, die über die E/A-Vorrichtung (16n) mit dem Steuerziel (18n) verbunden ist, das gemäß dem anderen Programm (Pn) gesteuert wird, das der einen Steuerung (14n) zugeordnet ist, und dass sie die empfangenen Eingabedaten im zweiten Eingabepufferspeicher (44) speichert.
DE102017005879.2A 2016-06-29 2017-06-22 Steuerungssystem und Steuerverfahren Active DE102017005879B4 (de)

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
DE102017005879A1 DE102017005879A1 (de) 2018-01-04
DE102017005879B4 true DE102017005879B4 (de) 2022-11-10

Family

ID=60662572

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017005879.2A Active DE102017005879B4 (de) 2016-06-29 2017-06-22 Steuerungssystem und Steuerverfahren

Country Status (4)

Country Link
US (1) US10606232B2 (de)
JP (1) JP6356736B2 (de)
CN (1) CN107544240B (de)
DE (1) DE102017005879B4 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7226103B2 (ja) * 2019-05-29 2023-02-21 オムロン株式会社 制御システム、サポート装置およびサポートプログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013168090A (ja) 2012-02-17 2013-08-29 Hitachi Ltd マルチコントローラシステム、制御方法及びプログラム
US20150018983A1 (en) 2007-02-27 2015-01-15 Rockwell Automation Technologies, Inc. Security, safety, and redundancy employing controller engine instances
EP3088971A1 (de) 2015-04-28 2016-11-02 Invensys Systems, Inc. Verteilte rechnerumgebung in einer prozesssteuerungsumgebung

Family Cites Families (24)

* Cited by examiner, † Cited by third party
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 村田機械株式会社 搬送車システム
JP2004362133A (ja) * 2003-06-03 2004-12-24 Omron Corp Plcシステムおよびそのバックアップ方法
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
JP4791909B2 (ja) 2006-08-21 2011-10-12 株式会社東芝 高速入出力機能を備える制御装置、及びその制御データの制御方法
US7821220B2 (en) * 2006-09-29 2010-10-26 Rockwell Automation Technologies, Inc. Motor having integral programmable logic controller
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 オムロン株式会社 安全マスタ
JP4950243B2 (ja) * 2009-04-13 2012-06-13 三菱電機株式会社 プラント監視制御システム
JP4809497B2 (ja) 2010-02-25 2011-11-09 ファナック株式会社 複数の独立したシーケンスプログラムを並列実行するプログラマブルコントローラ
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
US20160381127A1 (en) * 2012-09-10 2016-12-29 William James Gibson Systems and methods for dynamic networked peer-to-peer content distribution
CN103941648A (zh) 2014-03-07 2014-07-23 东莞市升力智能科技有限公司 多轴运动控制系统及其控制方法
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
JP5908175B2 (ja) 2014-04-24 2016-04-26 三菱電機株式会社 制御システム、マスタ局、およびリモート局
US11513477B2 (en) * 2015-03-16 2022-11-29 Rockwell Automation Technologies, Inc. Cloud-based industrial controller
US20180095441A1 (en) * 2016-02-15 2018-04-05 Mitsubishi Electric Corporation Load distribution device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150018983A1 (en) 2007-02-27 2015-01-15 Rockwell Automation Technologies, Inc. Security, safety, and redundancy employing controller engine instances
JP2013168090A (ja) 2012-02-17 2013-08-29 Hitachi Ltd マルチコントローラシステム、制御方法及びプログラム
EP3088971A1 (de) 2015-04-28 2016-11-02 Invensys Systems, Inc. Verteilte rechnerumgebung in einer prozesssteuerungsumgebung

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
CN107544240A (zh) 2018-01-05
JP2018005372A (ja) 2018-01-11
DE102017005879A1 (de) 2018-01-04

Similar Documents

Publication Publication Date Title
CN106575247B (zh) 计算集群的容错联盟
DE102018120345A1 (de) Hochleistungssteuerungsserversystem
DE102007039462B4 (de) Verfahren und Vorrichtung zur Aufzählung
DE3301628A1 (de) Schaltungsanordnung fuer den datenaustausch zwischen zwei rechnern
DE102012002280A1 (de) Verfahren zur dynamischen zuteilung in einer statisch zugeteilten und eingebetteten softwarearchitektur
DE102015102678A1 (de) Startabbild- discovery und -bereitstellung
DE112010003309B4 (de) Kommunikationssystem und Kommunikationsvorrichtungs-Zustandsbestimmungsverfahren
DE112010004187T5 (de) Verfahren und System zum Verarbeiten von Netzwerkereignissen
EP1711892B1 (de) Verfahren zum bestimmen eines übernahmeszenarios der softwareeinheiten bei einem rechnerausfall in einer serverfarm
DE112020005819T5 (de) Virtuelle einschübe in einem server
DE112018005135T5 (de) Thin provisioning unter verwendung von speicherbänken auf cloud-grundlage
DE102015226817A1 (de) Verfahren und Vorrichtung zum Zuweisen von Informationen und Speicher
DE112013007469B4 (de) Kommunikationssystem, Standby-Vorrichtung, Kommunikationsverfahren, und Standby-Programm
DE102017005879B4 (de) Steuerungssystem und Steuerverfahren
DE112018008016B4 (de) Kommunikationssystem, Kommunikationsvorrichtung, Kommunikationsverfahren und Programm
DE2364082A1 (de) Speicherprogrammierte datenverarbeitungsanlage fuer die steuerung externer anlagen
EP3444682A1 (de) Verfahren zum rechnergestützten koppeln eines verarbeitungsmoduls in ein modulares technisches system und modulares technisches system
CN114531373A (zh) 节点状态检测方法、节点状态检测装置、设备及介质
CN107645421A (zh) 一种分布式存储的iscsi协议实现方法
EP3475819B1 (de) Verfahren zur automatischen und dynamischen zuteilung der zuständigkeit für aufgaben an die verfügbaren rechenkomponenten in einem hochverteilten datenverarbeitungssystem
DE112019002894T5 (de) Kommunikationseinrichtung und Steuerverfahren
DE112016005840T9 (de) Drahtloses kommunikationsgerät, drahtloses kommunikationsverfahren und programm für drahtlose kommunikation
DE102010052192B4 (de) Adressierung für AS-Interface Mehrfachslaves
LU101163B1 (de) Verfahren und Vorrichtungen für eine Lastzuweisung und Überwachung für eine zuzuweisende versorgungssicherheitskritische Ressource in einem Netzwerk
DE112018006907T5 (de) Elektronisches steuergerät und fehlererkennungsverfahren eineskonfigurationsspeichers

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final