[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

DE10325069A1 - Programmierbare Steuerung mit CPU-Einheiten und Spezialfunktionsmodulen sowie Verfahren zur Aufdopplung - Google Patents

Programmierbare Steuerung mit CPU-Einheiten und Spezialfunktionsmodulen sowie Verfahren zur Aufdopplung Download PDF

Info

Publication number
DE10325069A1
DE10325069A1 DE10325069A DE10325069A DE10325069A1 DE 10325069 A1 DE10325069 A1 DE 10325069A1 DE 10325069 A DE10325069 A DE 10325069A DE 10325069 A DE10325069 A DE 10325069A DE 10325069 A1 DE10325069 A1 DE 10325069A1
Authority
DE
Germany
Prior art keywords
active
special function
cpu
data
cpu unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE10325069A
Other languages
English (en)
Other versions
DE10325069B4 (de
Inventor
Eisuke Nagano
Masanori Fukushima
Kenichiro Tomita
Kazuaki Tomita
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.)
Omron Corp
Original Assignee
Omron 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 Omron Corp filed Critical Omron Corp
Publication of DE10325069A1 publication Critical patent/DE10325069A1/de
Application granted granted Critical
Publication of DE10325069B4 publication Critical patent/DE10325069B4/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

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/058Safety, monitoring
    • 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/14Plc safety
    • G05B2219/14015Dual plc's, processors and dual I-O
    • 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/15Plc structure of the system
    • G05B2219/15118Shared memory

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)
  • Hardware Redundancy (AREA)

Abstract

Eine programmierbare Steuerung enthält zwei CPU-Einheiten, die jeweils einen lösbar angebrachten Spezialfunktionsmodul zur Durchführung eines Berechnungsvorgangs aufweisen, wobei jede der beiden CPU-Einheiten Zustände der anderen CPU-Einheiten erkennt, wobei eine von ihnen zu einer aktiven Einheit und die andere zu einer Warteeinheit wird, so dass, wenn die aktive Einheit ausfällt und abschaltet, die Warteeinheit auf aktiv umgeschaltet wird und Operationen weiterführt. Der an der aktiven CPU-Einheit angebrachte Spezialfunktionsmodul wird zu einem aktiven Modul und führt Steuervorgänge mit der aktiven CPU-Einheit aus, und der andere Spezialfunktionsmodul, der an der wartenden CPU-Einheit angebracht ist, wird zu einem Wartemodul.

Description

  • Hintergrund der Erfindung
  • Die Erfindung bezieht sich auf eine programmierbare Steuerung, CPU-Einheiten und Spezialfunktionsmodule, aus welchen sie aufgebaut ist, sowie ein Verfahren zur Aufdopplung dieser Programmierbare Steuerungen (SPSen) werden als Steuervorrichtungen bei der Fabrikautomation (FA) eingesetzt. Solche SPSen sind als eine geeignete Kombination aus einer Anzahl von Einheiten, wie einer Spannungsquelle zur Zuführung elektrischer Spannung, einer CPU-Einheit zur Steuerung der SPS insgesamt, einer Eingabeeinheit zur Eingabe von Signalen aus Schaltern und Sensoren, die strategisch für die FA-Vorrichtungen angeordnet sind, einer Ausgabeeinheit zur Ausgabe von Steuersignalen auf Stellglieder oder dergleichen und einer Kommunikationseinheit für den Anschluss an ein Kommunikationsnetzwerk, aufgebaut.
  • Die Steuerung einer SPS durch ihre CPU-Einheit beinhaltet das Empfangen von Signalen, die über eine Eingabeeinheit in den E/A-Speicher der CPU-Einheit eingegeben werden („IN-Auffrischung"), das Durchführen einer logischen Berechnung gemäß einem Anwenderprogramm das vorab in einer Anwenderprogrammsprache, wie etwa einer Leitersprache, registriert worden ist („Berechnung"), das Schreiben der Ergebnisse solcher Berechnungen in den E/A-Speicher zur Übertragung derselben auf die Ausgabeeinheit („OUT-Auffrischung") und das nachfolgende Austauschen von Daten über die Kommunikationseinheit mit den anderen SPSen auf dem gleichen Kommunikationsnetzwerk oder über Kommunikationsanschlüsse, die an der CPU-Einheit vorgesehen sind, mit externen Vorrichtungen („periphere Verarbeitung") in einer zyklischen Betriebsart. Operationen der IN- Auffrischung und OUT-Auffrischung werden manchmal zusammen ausgeführt .
  • Die CPU-Einheit ist üblicherweise mit einem RAM zur Speicherung von Anwenderprogrammen, einem ROM zur Speicherung von Systemprogrammen, einer MPU zur Durchführung von Berechnungen der oben beschriebenen Art sowie RAMs (gemeinsame, E/A- und Arbeitsspeicher) zur Verwendung, wenn diese Berechnungen ausgeführt werden. Andererseits gibt es CPU-Einheiten mit einem Spezialfunktionsmodul, der lösbar an ihr angebracht ist. Ein solcher Spezialfunktionsmodul kann verschiedentlich als innere Platine oder Unter-Platine (nachfolgend als innere Platine) bezeichnet werden und ist eine intelligente Hochleistungsplatine mit der Funktion der Ausführung von Programmen, die zur Durchführung von Sondervorgängen für die Kommunikation, z. B. mit externen Vorrichtungen, erstellt sind. Die Steuerung durch die CPU-Einheit kann so schneller gemacht und das Niveau der Steuerung verbessert werden, indem man die innere Platine einen Teil des oben erwähnten Rechenvorgangs durchführen lässt.
  • Zur Verbesserung der Sicherheit und Zuverlässigkeit eines Systems ist es bekannt, jede der Einheiten, die die SPS bilden, aufzudoppeln. Wenn die CPU-Einheit aufzudoppeln ist, werden zwei CPU-Einheiten vorgesehen und miteinander durch einen CPU-Bus verbunden. Diese beiden CPU-Einheiten sind im Grundsatz so eingerichtet, dass sie die gleichen Funktionen haben und in den einzelnen CPU-Einheiten gespeicherte Anwenderprogramme des gleichen Inhalts ausführen.
  • Die beiden CPU-Einheiten werden so betrieben, dass eine von ihnen aktiv wird und zyklische Vorgänge zur Steuerung eines FA-Netzwerksystems durch Lesen und Schreiben aus und in Speichervorrichtungen und Austauschen von Steuerdaten (E/A-Daten) mit E/A-Vorrichtungen, etc. ausführt, während die andere in einem Wartezustand ist und dabei die gleichen Anwender programme wie die der aktiven CPU-Einheit ausführt, während sie im Wartezustand ist, obwohl die Ergebnisse ihrer Berechnungen sich nicht im E/A-Speicher widerspiegeln. Die Ergebnisse der Verarbeitung durch die aktive CPU-Einheit werden von der Warte-CPU-Einheit empfangen, und der Speicher der Warte-CPU-Einheit wird dadurch aktualisiert. Auf diese Weise werden die Speicher der aktiven und der Warte-CPUs auf dem gleichen Inhalt gehalten.
  • Wenn die aktive der beiden CPU-Einheiten ausfällt, nimmt die andere CPU im Wartezustand die Stelle der ausgefallenen CPU-Einheit ein und führt den tatsächlichen Steuervorgang fort. Der Ausfall einer CPU-Einheit bewirkt also nicht, dass das System unmittelbar anhält, und der Systembetrieb kann fortgesetzt werden, und die Zuverlässigkeit des Systems ist so verbessert.
  • Im Falle eines oben beschriebenen Systems mit Redundanz ist sein aufgedoppelter Zustand sichergestellt, indem die E/A-Speicher der CPU-Einheiten in identischen Zuständen gehalten werden. Im Falle von CPU-Einheiten der vorgenannten Art mit einer daran angebrachten inneren Platine werden Speicher in den Grundkörpern der CPU-Einheiten gleich gehalten, es ist jedoch nichts geschehen, um ihre inneren Platinen im gleichen Zustand zu halten.
  • Zusammenfassung der Erfindung Es ist eine Aufgabe dieser Erfindung, eine programmierbare Steuerung, die aus zwei CPU-Einheiten mit jeweils einem daran angebrachten Spezialfunktionsmodul aufgebaut ist, zu schaffen, die in der Lage ist, ein einschließlich der Spezialfunktionsmodule aufgedoppeltes System zu schaffen.
  • Es ist eine weitere Aufgabe dieser Erfindung, solche CPU-Einheiten, Spezialzweckmodule und ein Verfahren zur Aufdopplung solcher Komponenten zu schaffen.
  • Eine programmierbare Steuerung gemäß dieser Erfindung lässt sich dadurch charakterisieren, dass sie zwei CPU-Einheiten mit jeweils einem lösbar angebrachten Spezialfunktionsmodul zur Durchführung eines Berechnungsvorgangs, wobei jede der beiden CPU-Einheiten Zustände der anderen CPU-Einheit erkennt und eine von ihnen eine aktive Einheit und die andere eine Warte-Einheit bildet, derart, dass wenn die aktive Einheit ausfällt und abschaltet, die Warte-Einheit auf aktiv umgeschaltet wird und Vorgänge fortführt, aufweist. Der an der aktiven CPU-Einheit angebrachte Spezialfunktionsmodul wird ein aktiver Modul und führt Steuervorgänge mit der aktiven CPU-Einheit aus, und der an der Warte-CPU-Einheit angebrachte andere Spezialfunktionsmodul wird ein Wartemodul. Eine solche programmierbare Steuerung ist besonders sicher und zuverlässig, da sie einen einschließlich der Spezialfunktionsmodule aufgedoppelten Aufbau hat.
  • Gemäß dieser Erfindung wird bevorzugt, dass jede dieser CPU-Einheiten Daten mit ihrem entsprechenden Spezialfunktionsmodul über einen gemeinsamen Speicher, in den sie sich teilen, austauscht. Dies Spezialfunktionsmodule führen den Berechnungsvorgang nicht-synchron mit den CPU-Einheiten aus, und während dieser Berechnungsvorgang ausgeführt wird, werden die durch diese Berechnungsvorgänge erzeugten E/A-Daten nicht in den gemeinsamen Speicher geschrieben. Solche E/A-Daten werden auf die CPU-Einheiten nur während eines Vorgangs in Synchronität mit den CPU-Einheiten übertragen.
  • Jede solcher CPU-Einheiten gemäß der Erfindung kann dadurch charakterisiert werden, dass sie nicht nur einen lösbar angebrachten Spezialfunktionsmodul zur Durchführung eines Be rechnungsvorgangs, um damit E/A-Daten zu erzeugen, und einen gemeinsamen, mit diesem angebrachten Spezialfunktionsmodul geteilten Speicher aufweisen, sondern auch dadurch, dass sie ausgewählt in einer aktiven. Betriebsart zur Ausführung eines Steuervorgangs beruhend auf einem Anwenderprogramm und in einer Wartebetriebsart, in der ein solcher Steuervorgang nicht ausgeführt wird, sind. Die CPU-Einheit dieser Erfindung, während sie sich in der Wartebetriesbart befindet, schaltet mit dem Feststellen, dass die andere ähnlich aufgebaute CPU-Einheit ausfällt und abschaltet, in die aktive Betriebsart und führt den Steuervorgang fort. Der Datenaustausch zwischen der CPU-Einheit und dem angebrachten Spezialfunktionsmodul wird über ihren gemeinsamen Speicher ausgeführt. Die CPU-Einheit führt einen inneren Dienstvorgang (das Speichern der E/A-Daten in dem gemeinsamen Speicher eingeschlossen und wobei Daten mit dem angebrachten Spezialfunktionsmodul synchron ausgetauscht werden) nach Ausführen eines zyklischen Vorgangs, der das Ausführen des Anwenderprogrammes beinhaltet, aus.
  • Jeder der, wie oben beschrieben, lösbar an der CPU-Einheit angebrachten Spezialfunktionsmodule gemäß der Erfindung kann dadurch charakterisiert werden, dass er einen mit der CPU-Einheit geteilten gemeinsamen Speicher, Mittel zum Austauschen von Daten mit der CPU-Einheit über den gemeinsamen Speicher, Mittel zur Durchführung eines Berechnungsvorgangs nicht-synchron mit der CPU-Einheit und Erzeugung von E/A-Daten hiermit, Mittel zur Übertragung dieser E/A-Daten auf die CPU-Einheit, während ein Vorgang synchron mit der CPU-Einheit ausgeführt wird, wobei aber verhindert ist, dass die E/A-Daten in den gemeinsamen Speicher geschrieben werden, während der Berechnungsvorgang gerade durchgeführt wird, aufweist.
  • Ein Verfahren gemäß dieser Erfindung zur Schaffung einer programmierbaren Steuerung mit einem auf gedoppelten Aufbau kann dadurch charakterisiert werden, dass es die Schritte des Vorsehens von zwei CPU-Einheiten, von denen jede einen Spezialfunktionsmodul aufweist, der einen Rechenvorgang ausführen kann, wobei eine dieser beiden CPU-Einheiten eine aktive CPU in einer aktiven Betriebsart ist und einen Steuervorgang ausführt, die andere eine Warte-CPU-Einheit in einer Wartebetriebsart ist, Bewirkens, dass einer der Spezialfunktionsmodule, der an der aktiven CPU-Einheit angebracht ist, ein aktiver Modul ist und den Steuervorgang zusammen mit der aktiven CPU-Einheit ausführt, Bewirkens, dass der andere der Spezialfunktionsmodule, der an der Warte-CPU-Einheit angebracht ist, ein Wartemodul ist, und Aktivierens der Warte-CPU-Einheit und des Wartemoduls in die aktive Betriebsart, wenn ein anomaler Zustand in der aktiven CPU-Einheit oder dem aktiven Modul auftritt, aufweist.
  • Bei einem solchen Verfahren werden Daten zwischen jedem Spezialfunktionsmodul und der daran angebrachten CPU-Einheit unter Verwendung eines gemeinsamen Speichers, in den sich diese teilen, ausgetauscht. Die beiden Spezialfunktionsmodule führen ihren Berechnungsvorgang nicht-synchron mit den CPU-Einheiten aus, werden aber daran gehindert, die mit dem Berechnungsvorgang gewonnenen E/A-Daten in den gemeinsamen Speicher zu schreiben, während der Berechnungsvorgang gerade ausgeführt wird. Diese E/A-Daten werden auf die CPU-Einheiten übertragen, während die Spezialfunktionsmodule synchron mit den CPU-Einheiten betrieben werden. In Obigem kann es die CPU-Einheit sein, die das Schreiben der E/A-Daten in den Speicher ausführt, oder dies kann durch den Spezialfunktionsmodul ansprechend auf einen Befehl von der CPU-Einheit erfolgen.
  • Zusammenfassend gesagt, führen die beiden Spezialfunktionsmodule Programme des gleichen Inhalts in einer nicht-synchronen Weise aus, die abschließenden Ergebnisse der Be rechnungen passen aber zusammen, da das System von aufgedoppeltem Aufbau ist und die gleichen Daten verarbeitet werden. Gemäß einer bevorzugten Ausführungsform werden ferner die Ergebnisse der durch die beiden Spezialfunktionsmodule ausgeführten Berechnungen verglichen, und wenn sie nicht zusammenpassen, wird bewirkt, dass der Modul, der beim Ausführung der Berechnungen hinten ist, einen Korrekturvorgang ausführt, durch welchen der Berechnungsvorgang vorgerückt wird, so dass die beiden Module im Berechnungsvorgang gleich weit vorne sind.
  • Wenn die CPU-Einheiten einer solchen programmierbaren Steuerung die mit dem Berechnungsvorgang gewonnenen E/A-Daten speichern, geschieht dies unter der Bedingung, dass die Ergebnisse, der Berechnungen mit den beiden Moduln zusammenpassen. Der Fortschreitgrad bei der Durchführung des Berechnungsvorgangs mit den beiden Moduln passt jedesmal zusammen, wenn ein solcher Korrekturvorgang ausgeführt ist. Es kann also sichergestellt werden, dass die gleichen Daten als Ergebnis des Berechnungsvorgangs eingeschrieben werden.
  • Wenn ferner die in dem Speicher des aktiven Spezialfunktionsmoduls gespeicherten variablen Daten oder Parameter durch einen Befehl von außen geändert werden, kann bei der aktiven CPU-Einheit eine Anforderung eines spezifizierten Vorgangs erfolgen. Als Antwort gewinnt die aktive CPU-Einheit wenigstens den geänderten Inhalt des Speichers und gibt ihn auf den Wartemdoul aus, so dass der Inhalt des Speichers des aktiven und des Wartemoduls in Übereinstimmung gebracht werden. In Obigem bedeuten die in dem Speicher des Spezialfunktionsmoduls gespeicherten variablen Daten beispielsweise Daten, die durch Ausführen eines Berechnungsvorgangs zyklisch umgeschrieben werden. Die in dem Speicher eines Spezialfunktionsmoduls gespeicherten Parameterdaten sind nicht diejenigen, die durch Ausführen des Berechnungsvorgangs zyklisch umgeschrieben werden, sondern sind diejenigen, die von außen mittels eines Tool bzw. Hilfsmittels oder dergleichen umgeschrieben werden, wie etwa Daten, die sich auf die Systemeinstellung durch den Spezialfunktionsmodul oder Anwenderprogramme für die Spezialfunktionsmodule beziehen.
  • Der Speicherinhalt des Spezialfunktionsmoduls auf der aktiven Seite kann von außen mittels eines Tool modifiziert werden, während der Berechnungsvorgang gerade ausgeführt wird. Auch in einer solchen Situation wird der Vorgang, wie er oben beschrieben wurde, ausgeführt, so dass die Änderungen auf den Spezialfunktionsmodul auf der Warteseite übertragen werden können und die Gleichheit der Daten aufrechterhalten werden kann. Die oben erwähnte Übertragung auf den Spezialfunktionsmodul in der Wartebetriebsart kann über die Warte-CPU-Einheit ausgeführt werden, oder es kann ein Mechanismus zur Durchführung der Übertragung direkt auf den Spezialfunktionsmodul eingeführt werden.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist ein Blockdiagramm einer die Erfindung verkörpernden programmierbaren Steuerung.
  • 2 ist ein ausführlicheres Blockdiagramm eines Teils der programmierbaren Steuerung der 1.
  • 3 ist ein Flussdiagramm zur Wiedergabe der Vorgänge der CPU-Einheiten und ihrer inneren Platinen.
  • 4 zeigt ein Beispiel einer Datenstruktur in dem Schnittstellenbereich zwischen einer CPU-Einheit und einer inneren Platine.
  • 5 zeigt ein Beispiel einer Datenstruktur im CPU-Statusbereich.
  • 6 zeigt ein Beispiel der Datenstruktur in einem Innenplatinen-Statusbereich.
  • 7 zeigt ein Beispiel einer Datenstruktur in einem CPU-INNERE-Befehl-Antwortbereich.
  • 8 zeigt ein Beispiel von Befehl-Antwort verwendet in einem CPU-INNERE-Befehl-Antwortbereich.
  • 9 zeigt ein Beispiel eines Vorgangs für den Start der Synchronisation.
  • 10 zeigt ein Beispiel für eine Vorgangsroutine zur Korrektur des Berechnungsergebnisses.
  • 11 zeigt ein Beispiel eines Vorgangs für den Start der Transferierung des Berechnungsergebnisses.
  • 12 zeigt ein Beispiel des Vorgangs für den Start einer Korrektur des Berechnungsergebnisses.
  • 13-19 zeigen Beispiele eines Vorgangs zur Transferierung eines Berechnungsergebnisses.
  • 20 zeigt ein Beispiel eines zyklischen Vorgangs.
  • 21 und 22 zeigen Beispiele eines Ereignisausführungsvorgangs.
  • 23 zeigt ein Beispiel eines Synchronisationsendvorgangs.
  • 24 und 25 sind Flussdiagramme zur Wiedergabe der Operationen von „Verdoppelungsanfangs"-Prozessen durch die CPU-Einheiten und ihre inneren Platinen.
  • 26-32 zeigen ein Beispiel eines Großmengendatenübertragungsvorgangs.
  • Ausführliche Beschreibung der Erfindung
  • Die Erfindung wird als nächstes anhand eines Beispiels beschrieben. 1 zeigt den Aufbau einer die Erfindung verkörpernden programmierbaren Steuerung (SPS) 10, die sich aus einer Anzahl von Einheiten zusammensetzt, die jeweils aufgedop pelt sind, einschließend zwei elektrische Spannungsquelleneinheiten 11 zur Lieferung von Spannung an jede Einheit der SPS 10, zwei (erste und zweite) CPU-Einheiten 12 und 13 jeweils mit der Funktion der Ausführung von Anwenderprogrammen und zyklischen Ausführung von E/A-Auffrisch- und Peripherievorgängen, eine Duplexeinheit (DPL) 16 zur Steuerung der Operationen dieser CPU-Einheiten 12 und 13 sowie E/A-Einheiten 17 zur Verbindung mit Eingabe- und Ausgabevorrichtungen. Wie genauer gezeigt, sind die Einheiten wechselseitig über ein Bussystem 19 verbunden. Einheiten anderer Arten können ebenfalls enthalten sein, und die Anzahl von Einheiten, aus denen sich die SPS 10 zusammensetzt, kann, falls erforderlich, erhöht oder erniedrigt sein.
  • Bei dieser SPS 10 sind die Spannungsquelleneinheiten 11 und die CPU-Einheiten 12 und 13 verdoppelt. Die beiden Spannungsquelleneinheiten 11 beispielsweise sind zur Lieferung von Spannung an die Einheiten der SPS 10 parallel geschaltet. Auch wenn eine von ihnen ausfällt und nicht mehr in der Lage ist, Spannung zu liefern, kann die andere die Spannungsversorgung fortführen.
  • Die beiden CPU-Einheiten 12 und 13 sind so eingerichtet, dass sie Anwenderprogramme des gleichen Inhalts ausführen. Zum Zeitpunkt einer tatsächlichen Operation wird jedoch eine von ihnen aktiv und die andere zu einer Warteeinheit. Die Ergebnisse der Ausführung von Anwenderprogrammen durch die aktive der CPU-Einheiten werden über die E/A-Einheiten auf externe Vorrichtungen ausgegeben und werden dadurch in der Steuerung wiedergegeben. Obwohl Anwenderprogramme des gleichen Inhalts von der Warte-CPU-Einheit ausgeführt werden, werden die Ergebnisse dieser Ausführung nicht ausgegeben. Stattdessen aktualisiert die Warte-CPU-Einheit den Inhalt ihres Speichers, wenn die Ergebnisse der Ausführung durch die aktive CPU-Einheit empfangen werden, wodurch sie sich im gleichen Zustand wie die aktive CPU-Einheit hält. Sobald die aktive CPU-Einheit infolge eines anomalen Zustands ausfällt und abschaltet, kann also die Warte-CPU-Einheit unmittelbar den Platz der ausgefallenen CPU-Einheit einnehmen und die Steuervorgänge übernehmen. Dies ist es, wie ein aufgedoppeltes System vom „heißen Wartetyp" realisiert wird.
  • Dieses Umschalten der Rollen zwischen der ersten und zweiten CPU 12 und 13 wird mittels der vorgenannten Duplexeinheit 16 ausgeführt, die als Doppelungssteuereinheit dient, welche, wie in 2 gezeigt, eine Doppelungssteuerschaltung (DPL-STEUERUNG) 16a enthält, die so eingerichtet ist, dass sie einen Busschalter 18 so betätigt, dass der Bus geschaltet wird, oder dass sie eine Synchronisationssteuerung zwischen der ersten und zweiten CPU-Einheit 12 und 13 durchführt. Daten werden ebenfalls zwischen der ersten und zweiten CPU-Einheit über diese Duplexeinheit 16 ausgetauscht.
  • Gemäß dieser Ausführungsform der Erfindung sind die erste und zweite CPU-Einheit 12 und 13 jeweils mit einer inneren Platine (der ersten inneren Platine 14 bzw. der zweiten inneren Platine 15) versehen. Genauer erläutert, ist jede der inneren Platinen 14 und 15 in einen Schlitz eingesetzt, der in der entsprechenden der CPU-Einheiten 12 und 13 ausgebildet ist, so dass sie mechanisch montiert und in der Lage ist, Daten mit der entsprechenden CPU-Einheit über einen Bus auszutauschen. Jede dieser inneren Platinen 14 und 15 kann ausgewählt entweder aktiv oder in einem Wartezustand sein, wobei sie aktiv wird, wenn die entsprechende CPU-Einheit 12 oder 13 aktiv ist, und im Wartezustand, wenn die entsprechende CPU 12 oder 13 im Wartezustand ist.
  • In der folgenden Beschreibung wird angenommen, dass die erste CPU-Einheit und die erste innere Platine aktiv sind (be zeichnet als die „aktive Seite") und die zweite CPU-Einheit 13 und die zweite innere Platine 15 im Wartezustand sind (bezeichnet als die „Warteseite"). Die erste und zweite innere Platine 14 und 15 haben die gleichen Funktionen wie die erste und zweite CPU-Einheit 12 und 13 zur Ausführung gleicher Vorgänge. Die erste und zweite CPU-Einheit 12 und 13. haben den gleichen Hardware-Aufbau, und die erste und zweite innere Platine 14 und 15 haben ebenfalls den gleichen Hardware-Aufbau.
  • Genauer erläutert unter Bezug auf 2 enthalten die erste und zweite CPU-Einheit 12 und 13 jeweils einen Anwenderspeicher 12a bzw. 13a zur Speicherung von Anwenderprogrammen, eine MPU 12b bzw. 13b zum Ausführen dieser in dem Programmspeicher 12a oder 13a gespeicherten Anwenderprogramme und zyklischen Ausführen der E/A-Auffrisch- und Peripherievorgänge, einen RAM 12c bzw. 13c zur Benutzung als Arbeitsbereich während der Ausführungen durch die MPU 12b oder 13b, und einen E/A-Speicher 12d bzw. 13d und einen I/F-ASIC 12e bzw. 13e.
  • Die erste und zweite innere Platine 14 und 15 ist jeweils mit einem ROM 14a bzw. 15a, der Systemprogramme für die inneren Platinen speichert, einer MPU 14b bzw. 15b zur Kommunikation mit der entsprechenden CPU-Einheit und Ausführung des im ROM 14a bzw. 15a gespeicherten Systemprogramms, sowie einem RAM 14c bzw. 15c, der Anwenderprogramme speichert, die auf der inneren Platine auszuführen sind, und der auch als Arbeitsbereich während der Ausführung der Systemprogramme zu verwenden ist, versehen.
  • Der RAM 14a bzw. 15a, die MPU 14b bzw. 15b und der RAM 14c bzw. 15c sind über einen Bus 14d bzw. 15d miteinander verbunden. Die erste und zweite innere Platine 14 und 15 sind mit dem I/F-ASIS 12e und 13e der ersten und zweiten CPU-Einheit 12' und 13 über diese Busse 14d und 15d verbunden. Unterbrechungssignalleitungen 14e und 15e sind zwischen der MPU 14b bzw. 15b der ersten bzw. zweiten inneren Platine 14 bzw. 15 und dem I/F-ASIS 12e bzw. 13e vorgesehen.
  • Die E/A-Speicher 12d und 13d wirken nicht nur zur Speicherung von E/A-Daten, die gewöhnliche Steuerdaten sind, sondern auch als gemeinsamer Speicher, in den sich die erste und zweite CPU-Einheit 12 und 13 sowie die erste und zweite innere Platine 14 und 15, die jeweils darin montiert sind, teilen. Die I/F-ASICs 12e und 13e der ersten und zweiten CPU-Einheit 12 und 13 dienen als Vermittler, wenn die MPUs 14b und 15b innerhalb der ersten bzw. zweiten CPU-Einheit 12 und 13 und die MPUs 14b und 15b innerhalb der ersten bzw, zweiten inneren Platine 14 und 15 auf die entsprechenden E/A-Speicher 12d und 13d der ersten und zweiten CPU-Einheit 12 und 13 zugreifen. Daten können so zwischen inneren Platinen und entsprechenden CPU-Einheiten über die E/A-Speicher 12d und 13d ausgetauscht werden.
  • Wie oben erläutert, wird eine der CPU-Einheiten (beispielsweise die erste CPU-Einheit 12) und eine der beiden inneren Platinen (beispielsweise die erste innere Platine 14) aktiv, wobei die andere CPU-Einheit 13 und die andere innere Platine 15 im Wartezustand sind. Die erste CPU-Einheit 12, die aktiv ist, führt zyklisch verschiedene Prozesse, wie die Ausführung eines Anwenderprogramms, die E/A-Auffrischung, einen Peripherie-Dienstprozess und Innenplatinen-Dienstprozess, durch, während sie mit der zweiten CPU-Einheit 13 synchron ist. Die Verarbeitung durch die zweite CPU-Einheit 13 im Wartezustand ist im Wesentlichen die gleiche wie die durch die erste CPU-Einheit 12, wobei Anwenderprogramme ausgeführt und die Ergebnisse der Ausführung in dem E/A-Speicher 13d gespeichert werden. Genauer ausgeführt, wird Synchronisation mit der ersten CPU-Einheit 12 aufgenommen und werden verschiedene Prozesse zyklisch durchgeführt, wie etwa die Ausführung von Anwender programmen, eines Peripherie-Dienstprozesses und eines Innenplatinen-Dienstprozesses. Anders als die aktive erste CPU-Einheit 12 führt die zweite CPU-Einheit 13 im Wartezustand den E/A-Auffrischvorgang nicht durch. Die Inhalte des EA-Speichers 13d der aktiven ersten CPU-Einheit 12 werden als Daten in dem EA-Speicher 13d wiedergegeben, so dass die gespeicherten Inhalte beider zusammenpassen.
  • Die erste innere Platine 14, die aktiv ist, führt einen spezifizierten Vorgang aus, wenn ein Synchronisationsvorgang mit der ersten CPU-Einheit 12 und der vorgenannte Innenplatinen-Dienst durch die erste CPU-Einheit 12 ausgeführt werden, und gibt das Ergebnis der Ausführung zurück. Anders ausgedrückt, wird der gemeinsame Speicherbereich des EA-Speichers für den Austausch von Daten verwendet.
  • Die zweite innere Platine 15 im Wartezustand führt einen Synchronisationsvorgang mit der zweiten CPU-Einheit 13 durch, führt einen spezifizierten Vorgang durch Auslesen von Daten aus dem gemeinsamen Speicherbereich des EA-Speichers 13d (wo die Ergebnisse der Berechnung durch die erste CPU-Einheit 12 etc. wiedergegeben. werden) aus und speichert die Ergebnisse ihrer eigenen Berechnungen im gemeinsamen Speicherbereich des EA-Speichers 13d.
  • Wie aus 2 ersichtlich, fließen Daten nur in einer Richtung von der ersten CPU-Einheit 12 zur zweiten CPU-Einheit 13, d. h., die Inhalte des EA-Speichers 12d der ersten CPU-Einheit 12 (Daten für CPU-Einheiten und innere Platinen) werden auf einen spezifizierten Bereich der EA-Speichers 13d der zweiten CPU-Einheit 13 übertragen und dort gespeichert. Daten für die innere Platine werden durch den I/F-ASIC 13e an die zweite innere Platine 15 geliefert. Auf der Grundlage der so gelieferten Daten führt die zweite innere Platine 15 eine Berechnung und andere Prozesse aus.
  • Auf diese Weise kommen die EA-Speicher 12d und 13d dahin, die gleichen Daten zu speichern, und die zweite CPU-Einheit 13 und die zweite innere Platine 15 können die gleichen Vorgänge wie die erste CPU-Einheit 12 und die erste innere Platine 14 ausführen. Es werden also die gleichen Berechnungsergebnisse etc. gewonnen, und sobald eine anomale Situation in der ersten CPU-Einheit 12 oder der ersten inneren Platine 14 auftritt, werden die zweite CPU-Einheit 13 und die zweite innere Platine 15 aktiviert und führen sie die aktiven Vorgänge aus. Anders ausgedrückt, können die Operationen und Steuerungen glatt und kontinuierlich weitergeführt werden.
  • Operationen der CPU-Einheiten 12 und 13 und ihrer inneren Platinen 14 und 15 werden als nächstes unter Bezug auf das Flussdiagramm der 3 erläutert. Zum Start führt die aktive erste CPU-Einheit 12 (AKT. CPU) einen Spannungseinschaltvorgang aus (ST1), wobei ihr RAM 12c initialisiert wird etc., die Verbindung der E/A-Einheit geprüft und der EA-Speicher 12d gelöscht wird. Im Falle eines normalen Hochfahrens wird ein Leiter-Vorgang (LEITER) ausgeführt (ST2), d. h., die im Anwenderspeicher 12a gespeicherten Anwenderprogramme werden sequenziell ausgeführt. Als nächstes wird der E/A-Auffrischvorgang (E/A-AUFFRISCH) ausgeführt (ST3), d. h., Daten in dem vorab zugewiesenen Eingabeeinheitdatenbereich werden mit den von der Eingabeeinheit erhaltenen Daten aktualisiert, und die Daten in dem Ausgabeeinheitdatenbereich werden auf die Ausgabeeinheit übertragen. Es wird dann möglich, Eingabedaten von Eingabevorrichtungen, wie etwa Sensoren, zu erhalten und die Ergebnisse von Berechnungen mit dem Leitervorgang (oder Ausgabedaten etc.) auf die Vorrichtung, die gerade gesteuert wird, auszugeben. Das Ergebnis dieser E/A-Auffrischung und der Inhalt des aktualisierten EA-Speichers 12d werden auch auf den EA- Speicher 13d der zweiten CPU-Einheit 13 im Wartezustand übertragen und dort eingeschrieben.
  • Als Nächstes wird unter Aufrechterhaltung der Synchronisation mit der zweiten CPU-Einheit 13 ein Synchronisierungsvorgang (START SYNC) mit der aktiven ersten inneren Platine begonnen (ST4) und der innere Dienstvorgang (INNERER DIENST) ausgeführt (ST5). Der innere Dienst enthält das Gewinnen der Ergebnisse von von der ersten inneren Platine 14 ausgeführten Berechnungen, wie weiter unten erläutert wird, und das Ausgeben einer Anforderung für eine Ereignisverarbeitung. Wenn diese Folge von Vorgängen abgeschlossen ist, wird der Peripherie-Dienstvorgang ausgeführt (ST7), nachdem der Synchronisationsvorgang beendet ist (ST6). Der Peripheriedienst enthält das Austauschen von Daten mit Einheiten, wie etwa Kommunikationseinheiten, die eine spezifizierte Funktion haben. Vorgenannte Schritte ST2–ST7 werden zyklisch wiederholt.
  • In der Zwischenzeit führt die aktive erste innere Platine 14 (AKT. INNERE) einen Spannungseinschaltvorgang (ST11) durch, wobei ihr RAM 14c aktiviert wird, etc., und führt Berechnungen durch (ST12) oder führt die im RAM 14c gespeicherten Anwenderprogramme für die innere Platine durch. Diese Berechnungen werden nicht-synchron mit dem Leitervorgang durch die erste CPU-Einheit 12 ausgeführt. Die Synchronisation wird begonnen (ST13), wenn ein Synchronisationsbefehlssignal von der ersten CPU-Einheit 12 empfangen wird, und es werden ein Datentransfer, zyklische und Ereignisvorgänge ausgeführt (ST14, ST15 und ST16), während die erste CPU-Einheit 12 mit ihren inneren Diensten befasst ist (ST5). Wenn der Synchronisationsvorgang abgeschlossen ist (ST17), kehrt die aktive innere Platine zu Schritt ST12 zurück, um die Berechnung erneut zu starten. Während der Zeitdauer von Schritt ST12 ist die erste innere Platine 14 daran gehindert, die E/A-Daten, die Steuerdaten auf dem EA-Speicher 12d sind, einzuschreiben. Wenn kein Synchronisationsbefehlssignal während dieser Schritt ST12 entsprechenden Berechnungszeit empfangen wird, schließt die aktive innere Platine die Berechnungen ab und wartet auf das Signal. Die Operationen synchron zwischen der ersten inneren Platine 14 und der ersten CPU-Einheit 12 werden unter Verwendung ihres gemeinsamen Speichers zur Datenübertragung ausgeführt. Einzelheiten der Operationen der ersten inneren Platine 14 während der Zeitdauer synchroner Operationen werden nachstehend gegeben.
  • Die Operationen der zweiten CPU-Einheit 13 im Wartezustand sind im Wesentlichen die gleichen wie diejenigen der ersten CPU-Einheit 12. Nach einem Spannungseinschaltvorgang (ST21), wird ein Leiter-Vorgang (LEITER) ausgeführt (ST22). Der E/A-Auffrischvorgang wird nicht ausgeführt, er gelangt aber in Synchronisation mit der ersten CPU-Einheit 12 und auch mit der zweiten inneren Platine 15 im Wartezustand (ST23) und es wird ein innerer Dienstvorgang ausgeführt (ST24). Dieser innere Dienstvorgang beinhaltet das Gewinnen der Ergebnisse von Berechnungen, die von der ersten inneren Platine 14 ausgeführt werden, und das Ausgeben von Anforderungen von Ereignisvorgängen. Nachdem diese Folge von Verarbeitungen beendet ist, endet der Synchronisationsvorgang (ST25) und es werden periphere Dienstvorgänge ausgeführt (ST26).
  • Die zweite innere Platine 15 im Wartezustand (WARTEINNERE) führt einen Spannungseinschaltvorgang durch (ST31), wobei ihr RAM 15c initialisiert wird, etc., und führt Berechnungen durch (ST32), oder führt die im RAM 15c gespeicherten Anwenderprogramme für die innere Platine aus. Diese Berechnungen werden nicht-synchron mit dem Leiter-Vorgang durch die zweite CPU-Einheit 13 ausgeführt. Die Einzelheiten der Berechnungen sind die gleichen wie diejenigen für die erste innere Platine 14. Wenn kein Synchronisationsbefehlssignal von der zweiten CPU-Einheit 13 während der Schritt ST32 entsprechenden Berechnungszeitdauer empfangen wird, schließt die innere Platine 15 die Berechnungen ab und wartet auf das Signal.
  • Die Synchronisation wird begonnen (ST33), wenn ein Synchronisationsbefehlssignal von der zweiten CPU-Einheit 13 empfangen wird, und es werden ein Datentransfer, zyklische und Ereignisvorgänge ausgeführt (ST34, ST35 und ST36), während die zweite CPU-Einheit 13 mit ihren inneren Diensten befasst ist (ST24). Wenn der Synchronisationsvorgang abgeschlossen ist (ST37), kehrt die innere Platine nach Schritt ST22 zurück, um den Berechnungsvorgang neu zu beginnen.
  • Wenn zugelassen wird, dass Daten in die E/A-Daten, die Steuerdaten sind, auf den EA-Speichern 12d und 13d geschrieben werden, wenn die inneren Platinen 14 und 15 mit den Berechnungsvorgängen befasst sind, kann die Qualität von Daten zwischen ihnen leiden. Es wird also verhindert, dass Daten in die E/A-Daten, die als Steuerdaten dienen, auf den EA-Speichern 12d und 13d während der Berechnungsvorgänge geschrieben werden. Berechnungen werden also mit einer konstanten Zeit (als zyklischer Vorgang (ST15) oder als Ereignisvorgang (ST16)) geschrieben, und die E/A-Daten, die die Steuerdaten auf den EA-Speichern 12d und 13d sind, werden auf die CPU-Einheiten unter Verwendung der gemeinsamen Speicher geschrieben. Die CPU-Einheiten schreiben diese E/A-Daten auf der Grundlage dieser transferierten Daten ein.
  • Als Nächstes werden Einzelheiten einer Prozessroutine für jeden Verarbeitungsschritt beschrieben. In diesem Beispiel wird der Synchronisationsvorgang durch Austauschen von Daten im Wege einer Befehl-Antwortroutine unter Verwendung gemeinsamer Speicher (EA-Speicher 12d und 13d) ausgeführt. Zunächst werden CPU-Einheit-Innenplatinen-Schnittstellenbereiche, die spezifischen Bereichen der EA-Speicher 12d und 13d zur Verwendung für die Synchronisation zugeordnet sind, erläutert. Jeder dieser Bereiche ist für den Status einer CPU-Einheit und ihrer inneren Platine und auch für Befehl-Antwort zwischen der CPU-Einheit und der inneren Platine zu verwenden, aufgebaut wie in 4 gezeigt. Jede CPU-Einheit und innere Platine können aus dem ihr selbst zugeordneten Bereich auslesen (R) und in diesem schreiben (W), kann aber nur aus dem der anderen CPU und der anderen inneren Platine zugeordneten Bereich auslesen.
  • In 4 sind die CPU-Statusbereiche die Bereiche, in die die CPU-Einheit schreiben soll. Die innere Platine arbeitet dahingehend, Berechnungen und andere Aufgaben gemäß einem spezifizierten Kennzeichen in diesen Bereichen zu beginnen und zu beenden. Die Datenstruktur eines jeden CPU-Statusbereichs kann so, wie in 5 gezeigt, sein, wobei das „Innenplatinen-Operationskennzeichen" ein Kennzeichen ist, welches angibt, ob die innere Platine arbeiten darf (0) oder nicht arbeiten darf (1). Anderes ausgedrückt, prüft die innere Platine dieses Kennzeichen am Beginn eines jeden Zyklus (Berechnungs-Transfer der Berechnungsergebnisse-Ereignis-zyklisch), wobei sie den Zyklus von Operationen nicht ausführt, wenn dieses Kennzeichen „1" ist. Dieses Kennzeichen wird „1", wenn sich die CPU in einem Wartezustand befindet, wenn sie auf das Arbeiten einer weiteren Vorrichtung wartet, und wenn die Gleichheit von Daten zwischen der aktiven und der Warteeinheit nicht garantiert werden kann, wie während der Initialisierung eines Verdopplungsvorgangs (oder „Verdopplungsinitiierungs"-Vorgang, wie unten beschrieben) oder auf der Warteseite.
  • Die Startadresse der Speicherbereiche für die nach außen zu übertragenden Daten und ihre Datengröße werden auch in diesem CPU-Statusbereich geschrieben. Die Datenbereiche können also anhand der spezifizierten Startadresse und Datengrößen identifiziert werden, wenn die Datentransfers bewirkt werden.
  • Der innere Statusbereich der 4 ist ein Bereich, in den die innere Platine schreiben soll. Die CPU führt den „Verdopplungsinitialisierungs"-Hochfahr- und Verdoppelungsanpassvorgang (nachfolgend zu erläutern) gemäß einem spezifizierten Kennzeichen in diesem Bereich durch. Die Datenstruktur des inneren Statusbereichs kann, wie in 6 gezeigt, sein, wobei das „Verdoppelungsinitialisierungs-Anforderungskennzeichen" ein Kennzeichen ist, welches verwendet wird, wenn die innere Platine wünscht, den „Verdoppelungsinitialisierungs"-Vorgang zustimmend zu starten. Es wird auf „1" gesetzt, wenn gewünscht wird, dass die variablen Daten und Parameterdaten auf der Seite der aktiven inneren Platine (bzw. der ersten inneren Platine 14) auf die innere Platine im Wartezustand (bzw. die zweite innere Platine 15) übertragen werden. Anforderungen für einen „Verdoppelungsinitialisierungs"-Vorgang von der inneren Platine im Wartezustand werden ignoriert. Der „Verdoppelungsinitialisierungs"-Vorgang wird automatisch ausgeführt, wenn die Verdoppelungsoperation gestartet wird. Das Kennzeichen kann auf „1" gesetzt werden, wenn gewünscht wird, eine Verdoppelungsinitalisierung auszuführen, während der Verdoppelungsvorgang gerade betrieben wird.
  • Der Datenübereinstimmungsbereich ist ein Bereich; der für eine Prüfung zu verwenden ist, ob die inneren Zustände der ersten und zweiten inneren Platine 14 und 15 zusammenpassen, so dass sie synchron betrieben werden können. In diesem Bereich zu speichernde Dateninhalte werden vorab definiert und jede der Innenplatinen-MPUs 14b und 15b schreibt die definierten Inhalte ein. Die erste und zweite CPU-Einheit 12 und 13 vergleichen die in diesem Datenübereinstimmungsbereich gespeicherten Daten. Der Zeitpunkt für die Anpassung von Daten für diesen Vergleich ist, wenn die inneren, Platinen als mit eingeschalteter Spannung erkannt werden, oder der Zeitpunkt der „Verdoppelungsinitialisierungs"-Verarbeitung.
  • Die „CPU-Innenplatinen(CPU-INNERE)-Befehl-Antwort-Bereiche" sind Bereiche, die für Befehle und Antworten zwischen einer CPU-Einheit und einer inneren Platine zu verwenden sind. 7 zeigt ein Beispiel einer Speicherzuordnung. Beispiele für Befehl und Antwort, die in diesem Bereich verwendet werden, sind in 8 gezeigt. Ein Beispiel einer Routine für eine Synchronisation unter Verwendung solcher Bereiche und solcher Befehle und Antworten wird als Nächstes erläutert.
  • Die Schritte zum Starten der Synchronisation (ST4 und ST23 im Flussdiagramm der 3) werden initiiert, wenn die erste und zweite CPU-Einheit 12 und 13 ein Unterbrechungssignal unter Verwendung der Unterbrechungssignalleitungen 14e und 15e (gezeigt in 2) auf die innere Platine 14 bzw. 15 übertragen. Als Nächstes wird ein Synchronisationsstartbefehl (START SYNC) ausgegeben. Dies bedeutet, dass ein spezifizierter Befehl (0001) an einem spezifizierten Bereich in den CPU-INNERE-Befehl-Antwort-Bereich des gemeinsamen Speichers, der auf den EA-Speichern 12d und 13d zugeordnet ist, geschrieben wird, wie dies in 9 gezeigt ist. Ein freilaufender Zähler für die innere Platine ist dem Synchronisationsstartbefehl zugeteilt. Dieser Zähler wird für die Taktanpassung der inneren Platine verwendet.
  • Wenn ein solches Unterbrechungssignal für den Start des Synchronisationsprozesses empfangen wird, führen die erste und zweite innere Platine 14 und 15 den Synchronisationsstartprozess (ST13 und ST33 in 3) durch Zugreifen auf den entsprechenden EA-Speicher 12d oder 13d, Gewinnen des Befehls und nachfolgendes Zurückgeben einer Antwort auf den Synchronisationsstartbefehl aus. Es gibt die folgenden zwei Arten von Ant wort: (1) Antwort „8001", wenn Berechnungsergebnisse transferiert werden, Ereignisvorgänge und zyklische Vorgänge ausgeführt werden, und (2) Antwort „4001", wenn sie nicht ausgeführt werden. Antwort „4001" wird zurückgegeben, wenn keine Änderung im Fortschritt von Berechnungen mit der inneren Platine seit dem vorherigen Zyklus vorliegt und daher keine Notwendigkeit besteht, die Ergebnisse von Berechnungen zu transferieren. Wenn die CPU-Einheit diese Antwort erhält, überspringt sie alle nachfolgenden Bearbeitungsschritte, die sich auf den Ergebnistransfer, Ereignis- und zyklische Prozesse beziehen. Die gleichen Antworten werden sowohl von der aktiven als auch der Warteseite unter normalen Umständen zurückgegeben, wenn sie die gleichen Vorgänge ausführen. Wenn sie nicht übereinstimmen, wird die Antwort von der aktiven inneren Platine als die korrekte Antwort betrachtet.
  • Nachdem der Synchronisationsstartvorgang ausgeführt ist (und die Antwort „8001" zurückgegeben ist), wird der Vorgang der Transferierung von Berechnungsergebnissen ausgeführt. Da die Verdoppelung von Komponenten in diesem Beispiel durch die „heiße Warte"-Methode erfolgt, könnten, wenn man zulässt, dass Daten in die EA-Speicher 12d und 13d geschrieben werden, während die inneren Platinen 14 und 15 gerade Berechnungsvorgänge ausführen, ihre Daten verschieden werden. Daher ist es verboten, Daten in die EA-Speicher 12d und 13d zu schreiben, während Berechnungsvorgänge ausgeführt werden, und die Ergebnisse der Berechnungen werden mit einer konstanten Zeit übertragen und in die EA-Speicher 12d und 13d unter spezifizierten Bedingungen geschrieben.
  • In diesem Zeitpunkt sind die erste und zweite CPU-Einheit 12 und 13 synchron, und die erste CPU-Einheit 12 ist in der Lage, die Zustände der zweiten CPU-Einheit 13 und der zweiten inneren Platine 15 im Wartezustand (wie etwa die Speicherin halte und Berechnungsergebnisse in Schritt ST14 durch die erste innere Platine 14) zu gewinnen, und die zweite CPU-Einheit 13 kann als Ergebnis des Datentransfers aus der ersten CPU-Einheit 12 die Zustände der aktiven ersten CPU-Einheit 12 und der ersten inneren Platine 14 (wie etwa die Speicherinhalte und die Berechnungsergebnisse in Schritt ST14 mit der ersten inneren Platine 14) gewinnen.
  • Es kann also bestimmt werden, ob die Grade des Fortschreitens bei den Berechnungen mit der ersten und zweiten inneren Platine 14 und 15 übereinstimmen oder nicht, indem die Ergebnisse der Berechnungen mit den beiden inneren Platinen 14 und 15 verglichen werden. Die erste und zweite innere Platine 14 und 15 führen die gleichen Berechnungen aus. Wenn ihre Programmverarbeitungsgeschwindigkeiten die gleichen sind und die gleichen Befehle damit verarbeitet werden, sind die Ergebnisse ihrer Berechnungen die gleichen. Wenn die Ergebnisse ihrer Berechnungen nicht übereinstimmen, kann ein Korrekturvorgang ausgeführt werden, um ihre Verarbeitungsgeschwindigkeiten anzupassen, so dass die Ergebnisse ihrer Berechnungen wieder übereinstimmen. Nach einem solchen Korrekturvorgang ist ein Zustand erreicht, in welchem die erste und zweite innere Platine 14 und 15 bis zum gleichen Befehl hin (im gleichen Schritt) verarbeitet haben, d. h. die Grade des Fortschreitens bei den Berechnungen mit den beiden inneren Platinen 14 und 15 die gleichen sind. Wenn solche Korrekturvorgänge geeignet wiederholt werden, können die Grade des Fortschreitens beim Ausführen von Prozessen mit der ersten und zweiten inneren Platine 14 und 15 in Einheiten von Zyklen in Übereinstimmung gebracht werden, so dass, wenn die zweite innere Platine 15 aktiviert und aus dem Wartezustand in den aktiven Zustand geschaltet wird, Steuergrößen, die mit den Ergebnissen von Berechnungen ausgegeben werden, sich nicht abrupt von dem Zeit punkt, zu dem die erste innere Platine 14 aktiv war, ändern, so dass das Umschalten sanft bewirkt werden kann.
  • 10 zeigt diesen Vorgang der Korrektur des Ergebnisses von Berechnungen, um den Grad des Fortschreitens bei der Berechnung in Übereinstimmung zu bringen. Die in 10 gezeigten Vorgänge (1) bis (8) werden als Nächstes erläutert.
  • Im Vorgang (1) gibt die aktive erste CPU-Einheit 12 einen Transferstartbefehl an die erste aktive innere Platine 14 und die wartende zweite innere Platine 15, um den Transfer von Berechnungsergebnissen zu starten. Dies geschieht, wie in 11 beispielsweise gezeigt, durch Schreiben des Befehls „0002" an einem spezifizierten Bereich in den gemeinsamen Speicher. Der gleiche Befehl „0002" wird auch an einem spezifizierten Bereich in den gemeinsamen Speicher der wartenden zweiten CPU-Einheit 13 durch den I/F-ASIC 12e geschrieben.
  • Im Vorgang (2) geben die erste und zweite innere Platine 14 und 15 eine Transferantwort aus und setzen gleichzeitig Berechnungsergebnisdaten in den Datenbereich. In Obigem sind die Berechnungsergebnisdaten Daten zur Angabe des Fortschritts bei der Berechnung, bzw. wie weit die Ausführung des Anwenderprogramms fortgeschritten ist, und können die Schrittnummer des Anwenderprogramms umfassen, die definiert wurde, als die innere Platine entworfen wurde. 11 zeigt, dass nicht nur der Befehl „8002", sondern auch Berechnungsergebnisdaten registriert werden.
  • Im Vorgang (3) kopiert, wenn die Transferantwort von der ersten und zweiten inneren Platine 14 und 15 erhalten wird, die aktive erste CPU-Einheit 12 die Berechnungsergebnisdaten von der Warteseite in sich selbst und sendet die Berechnungsergebnisdaten der aktiven Seiten an die Warteseite.
  • Im Vorgang (4) gibt die aktive erste CPU-Einheit 12 einen Korrekturbefehl für das Starten eines Korrekturvorgangs an die erste und zweite innere Platine 14 und 15 aus. Dies geschieht, wie in 12 als Beispiel gezeigt, indem die aktive erste CPU-Einheit 12 den Befehl „0003" an einen spezifizierten Bereich des gemeinsamen Bereichs schreibt. Dieser Befehl wird auch an einem spezifizierten Bereich des Befehlsbereichs der wartenden zweiten CPU-Einheit 13 durch den I/F-ASIC 12e geschrieben. Dies versetzt die aktive erste CPU-Einheit 12 in die Lage, den Korrekturbefehl an die erste und zweite innere Platine 14 und 15 auszugeben.
  • Im Vorgang (5) korrigieren die aktive ersten innere Platine 14 und die wartende innere Platine 15 den Zustand des Fortschritts bei der Berechnung auf der Grundlage der Berechnungsergebnisse beider Platinen. Dies geschieht dadurch, dass die langsamer rechnende Platine einen spezifizierten Vorgang ausführt, um sich so an die Fortschrittsgeschwindigkeit der rascher rechnenden Platine anzupassen. Betrachten wir ein Beispiel, wo die Berechnungsergebnisdaten als Schrittnummern eines Anwenderprogramms ausgedrückt werden. Wenn das Anwenderprogramm für die ersten innere Platine 14 bis zur Schrittnummer N1 und das Anwenderprogramm der zweiten inneren Platine 15 bis zu einer Schrittnummer N2, die kleiner als N1 ist, ausgeführt worden ist, wenn der Befehl, die Korrektur zu starten, empfangen wird, führt die langsamer rechnende zweite innere Platine 15 das Anwenderprogramm bis zum Schritt N1 aus, um der ersten inneren Platine 14 gleichzukommen.
  • Im Vorgang (6) geben die aktive und die wartende innere Platine 14 und 15 eine Berechnungsergebniskorrekturstartantwort aus und jeweils zurück. In dem in 12 gezeigten Beispiel schreibt die schneller rechnende innere Platine die Antwort „8003" in ihren eigenen Befehlsbereich, und die langsamer rechnende innere Platine schreibt die Antwort „8003" in ihren eigenen Befehlsbereich nach Abschluss der Korrektur.
  • Im Vorgang (7) werden die Berechnungsergebniskorrekturantworten von der aktiven und der Warteseite empfangen, gibt die aktive erste CPU-Einheit 12 einen Befehl („Berechnungsergebniswiedergabeerlaubnisbefehl") an die erste und zweite innere Platine im aktiven und Wartezustand aus. Genauer erläutert, schreibt die aktive erste CPU-Einheit 12 diesen Befehl an einen spezifizierten Bereich des gemeinsamen Bereichs. Der so eingeschriebene Befehl wird auch durch den I/F-ASIC 12e an einem spezifizierten Bereich des gemeinsamen Bereichs auf der Warteseite geschrieben. Dadurch wird die aktive erste CPU-Einheit 12 in die Lage versetzt, einen Berechnungsergebniswiedergabeerlaubnisbefehl sowohl an die erste als auch an die zweite innere Platine 14 und 15 zu geben.
  • Im Vorgang (8) bewirken die erste und zweite innere Platine, dass das Berechnungsergebnis mit Empfang dieses Befehls wiedergegeben wird. Nach Abschluss dieses Vorgangs wird eine Antwort („Berechnungsergebniswiedergabeerlaubnisantwort") zurückgegeben.
  • Zusammenfassend kommen, wenn ein Korrekturbefehl von der ersten und zweiten inneren Platine ausgegeben wird, und der Korrekturvorgang abgeschlossen ist, ihre Fortschreitzustände zu einer Übereinstimmung, und das Ergebnis der Berechnung durch die inneren Platinen wird im EA-Speicher in diesem Zustand gespeichert. 1319 zeigen, wie sich Daten in dem CPU-INNERE-Befehl-Antwortbereich vom Beginn des Berechnungsergebnistransfers im Vorgang (1) bis zur Berechnungsergebniswiedergabeerlaubnis im Vorgang (8), die oben beschrieben wurden, ändern. In den 1319 ist die linke Seite die aktive (AKT)Seite und die rechte Seite die Warte-(WARTE)Seite. Die Bereiche, wo sich Daten ändern, sind schraffiert gezeigt, und die Daten, die durch Transfer von der aktiven Seite eingeschrieben sind, sind unterstrichen gezeigt.
  • Jeder der Vorgänge wird kurz erläutert. 13 zeigt den „Berechnungsergebnistransferstartvorgang", in dem die aktive erste CPU-Einheit 12 den Befehl „0002", der den Berechnungsergebnistransferstart angibt, in den CPU-INNERE-Befehl-Antwortbereich „+80" für die Warteseite und den auf dem EA-Speicher 12e erstellten CPU-INNERE-Befehl-Antwortbereich „+336" eingibt. Der gleiche Befehl („0002") eingeschrieben in dem Bereich „+80" wird durch den Transfervorgang auf den CPU-INNERE-Befehl-Antwortbereich „+80" der wartenden zweiten CPU-Einheit 13 transferiert.
  • Die inneren Platinen geben mit Empfang dieses Befehls „0002" die Antwort „8002" an den CPU-INNERE-Befehl-Antwortbereich zurück und speichern jeweils ihre eigenen Berechnungsergebnisdaten, wie dies in 14 gezeigt ist. Genauer erläutert, schreibt die aktive erste innere Platine 14 die Antwort „8002" in den CPU-INNERE-Befehl-Antwortbereich „+336" und speichert ihre eigenen Berechnungsergebnisse im nachfolgenden Bereich. Die wartende zweite innere Platine 15 schreibt auch die Antwort „8002" in den CPU-INNERE-Befehl-Antwortbereich „+80" und speichert ihre eigenen Berechnungsergebnisse im nachfolgenden Bereich.
  • Als Nächstes kopiert jede CPU-Einheit die Berechnungsergebnisdaten der anderen, wie in 15 gezeigt. Genauer erläutert, erhält die erste CPU-Einheit 12 das Berechnungsergebnis der wartenden zweiten inneren Platine 15, speichert es an einem spezifizierten Bereich ihres eigenen CPU-INNERE-Befehl-Antwortbereichs und transferiert das Berechnungsergebnis der aktiven ersten inneren Platine 14 in einen spezifizierten Bereich des CPU-INNERE-Befehl-Antwortbereichs des EA-Speichers 13e der zweiten CPU-Einheit 13.
  • In dem nachfolgenden „Berechnungsergebniskorrekturstartvorgang" gibt die aktive erste CPU-Einheit 12 den Befehl „0003" zum Starten der Korrektur des Berechnungsergebnisses in den CPU-INNERE-Befehl-Antwortbereich „+80", der für die Warteseite auf dem EA-Speicher 12d erstellt ist, und den CPU-INNERE-Befehl-Antwortbereich „+336", der für die aktive Seite auf dem EA-Speicher 12d erstellt ist, ein. Der gleiche Befehl „0003", der bei „+80" geschrieben ist, wird auch in den CPU-INNERE-Befehl-Antwortbereich „+80" der wartenden CPU-Einheit 13 durch einen Transfervorgang geschrieben, wie dies in 16 gezeigt ist.
  • Mit Empfang des Berechnungsergebniskorrekturstartbefehls von der CPU-Einheit beginnt jede innere Platine mit der Korrektur des Berechnungsergebnisses auf der Grundlage der Berechnungsergebnisdaten von beiden Seiten und gibt die Antwort „8003" zurück, wenn der Vorgang abgeschlossen ist, wie dies in 17 gezeigt ist.
  • Wenn diese Antwort „8003" empfangen wird, gibt die aktive erste CPU-Einheit 12 den Befehl „8004" (vorstehend „Berechnungsergebniswiedergabeerlaubnisbefehl") in den im CPU-INNERE-Befehl-Antwortbereich (+80) für die Warteseite und den CPU-INNER-Befehl-Antwortbereich (+336) für die aktive Seite, die auf dem EA-Speicher 12d erstellt sind, ein. Der bei „+80" geschriebene Befehl „0004" wird auch bei dem CPU-INNERE-Befehl-Antwortbereich (+80) der wartenden zweiten CPU-Einheit 13 durch einen Transfervorgang eingegeben, wie dies in 18 gezeigt ist.
  • Wenn diese Erlaubnis erhalten wird, geben sowohl die erste als auch die zweite innere Platine 14 und 15 eine Erlaubnisantwort „8004" zurück und geben das Ergebnis der Berechnung an einem spezifizierten Bereich auf dem EA-Speicher ein, wie dies in 19 gezeigt ist.
  • Als Nächstes werden die zyklischen Vorgänge erläutert. Der Beginn der zyklischen Vorgänge durch die inneren Platinen in den Schritten ST15 und SDT35 der 3 wird durch Synchronisation in Übereinstimmung gebracht. Die tatsächliche Verarbeitung wird individuell auf der aktiven und Warteseite ausgeführt, und es erfolgt kein Austausch von zyklischen Daten. Unter Bezug auf 20 genauer erläutert, wird der Befehl „0005" für den Start der zyklischen Vorgänge in den CPU-INNERE-Befehl-Antwortbereich eingegeben. Der Befehl wird nicht direkt auf die Warteseite ausgegeben, da er auf die Warteseite durch einen Transfervorgang übertragen wird. Diese zyklischen Vorgänge machen es möglich, periodisch Daten zwischen den CPU-Einheiten und den inneren Platinen auszutauschen.
  • Als Nächstes werden die Ereignisvorgänge erläutert. Die in den Schritten ST16 und ST36 der in 3 ausgeführten Ereignisvorgänge werden folgendermaßen ausgeführt. Ereignisse von einer CPU-Einheit adressiert an eine innere Platine werden durch die erste und zweite innere Platine 14 und 15 ausgeführt, wenn die aktive CPU-Einheit einen Ereignisausführungsstartbefehl in den CPU-INNERE-Befehl-Antwortbereich schreibt, um ihn so auf den CPU-INNERE-Befehl-Antwortbereich auf der Warteseite übertragen zu lassen. Eine Antwort von der Warteseite wird von den CPU-Einheiten gelöscht. Wenn die Ereignisvorgänge ausgeführt werden, wird es möglich, Daten in einer nicht-periodischen Weise zwischen den CPU-Einheiten und den inneren Platinen auszutauschen.
  • Von einer inneren Platine an eine CPU-Einheit adressierte Ereignisse können eine Zeitscheibe über mehrere Zyklen für die Durchführung in Anspruch nehmen. Aus diesem Grund wird der Abschluss eines Ereignisses über einen Befehl mitgeteilt. Genauer erläutert anhand eines Beispiels, wird der Befehl „0006" zur Information über den Start der Ausführung eines Ereignisses, wie in 21 gezeigt, durch die CPU-Einheit eingeschrieben, und die innere Platine, die ihn erhält, gibt die Antwort „8007" zurück. Die Ausführung endet, wenn der Befehl „0007" zur Information über das Ende der Ausführung durch die CPU-Einheit, wie in 22 gezeigt, eingeschrieben wird, und die innere Platine, die ihn erhält, gibt die Antwort „8007" zurück. Da diese Befehle auf die Warteseite durch einen Transfervorgang übertragen werden, werden sie nicht direkt ausgegeben. Ferner schreiben die CPU-Einheiten den Befehl „0008" zur Information über das Ende der Synchronisation in den Schritten ST6 und ST25 der 3 ein, und die inneren Platinen, die sie erhalten, geben die Antwort „8008" in den Schritten ST17 und ST37 der 3 zurück.
  • Als Nächstes wird der vorgenannte „Verdopplungsinitialisierungs"-Vorgang erläutert. Wie oben beschrieben, sind die Daten normalerweise die gleichen für die erste und zweite innere Platine 14 und 15 in ihren synchronisierten Operationen. Wenn ein Hilfsmittel (Tool) verwendet wird, beispielsweise um von außen die variablen Daten oder die Parameterdaten, die im RAM 14c der aktiven ersten inneren Platine 14 gespeichert sind, zu modifizieren, oder wenn ein Anwenderprogramm der aktiven ersten CPU-Einheit 12 oder Daten auf dem EA-Speicher 12d (wie etwa Daten, die einer E/A-Auffrischung zu unterwerfen sind und Systemeinstelldaten für die CPU-Einheit) von außen modifiziert werden, werden Daten zwischen der ersten und zweiten inneren Platine 14 und 15 und auch zwischen der ersten und zweiten CPU-Einheit 12 und 13 unterschiedlich, da durch ein solches Hilfsmittel keine Änderung auf der zweiten CPU-Einheit 13 oder der zweiten inneren Platine 15 im Wartezustand vorgenommen wird.
  • Dies ist der Grund, warum ein Verdoppelungsinitialisierungsvorgang (DPL INITIAL) ausgeführt wird, um die Gleichheit von Daten zwischen den beiden inneren Platinen durch Transferierung der variablen Daten, der Parameterdaten etc. der er sten inneren Platine 14 auf die Seite der zweiten inneren Platine und des Anwenderprogramms der ersten CPU-Einheit 12 auf die zweite CPU-Einheit 13 aufrechtzuerhalten. Dieser Initialisierungsvorgang wird, wie in 24 gezeigt, ausgeführt (Schritt ST8, ST18, ST27 und ST38), nachdem die inneren Dienstvorgänge (Schritte ST5 und ST24) und die Ereignisvorgänge (Schritte ST16 und ST36) ausgeführt werden.
  • Die Verdoppelungsinitialisierungsvorgänge (Schritte ST8, ST18, ST27 und ST38 der 24), nach Ausführung der Ereignisvorgänge, werden ausführlicher anhand von in 25 gezeigten Vorgängen (10)–(18) beschrieben.
  • Im Vorgang (10) prüft die aktive erste CPU-Einheit 12, ob die Anwenderprogramme und die Daten auf dem EA-Speicher 12d von außen modifiziert worden sind, und die erste innere Platine 14 prüft, ob die variablen Daten und die Parameterdaten von außen modifiziert worden sind.
  • Im Vorgang (11) fordert die erste innere Platine 14 die erste CPU-Einheit 12 auf, den Verdoppelungsinitialisierungsvorgang auszuführen, wenn beurteilt wird, dass keine Änderung von außen stattgefunden hat. Diese Kommunikation erfolgt durch Setzen des Verdoppelungsinitialisierungsanforderungskennzeichens, wie oben unter Bezug auf 6 erläutert. Die erste CPU-Einheit 12 überwacht diese Kennzeichen (Vorgang (12)) oder das Vorhandensein einer solchen Mitteilung von der ersten inneren Platine 14.
  • Wenn diese Anforderung mitgeteilt wird, wird der Verdoppelungsinitialisierungsvorgang begonnen (Vorgang (13)). Dieser Vorgang wird auch gestartet, wenn die erste CPU-Einheit 12 ihr Anwenderprogramm oder Daten auf den EA-Speicher 12d modifiziert von außen aufweist. Wenn keine Änderung vorgenommen worden ist, weder auf der ersten CPU-Einheit noch der ersten in neren Platine 14, endet dieser Vorgang mit Ausführung des Verdoppelungsinitialisierungsvorgangs.
  • Sobald der Verdoppelungsinitialisierungsvorgang begonnen wird, versorgt die erste CPU-Einheit 12 die aktive erste innere Platine 14 mit Information über den für die Transferierung von Daten zu verwendenden Bereich (Vorgang (14)). Dies ist ein Bereich für Daten, die zu transferieren sind, wenn der Verdoppelungsinitialisierungsvorgang ausgeführt wird, und wird so ausgewählt, dass sowohl die erste CPU-Einheit 12 als auch die erste innere Platine 14 Daten aus diesem Bereich auslesen und in ihn einschreiben kann. Nachdem diese Mitteilung gemacht ist, wartet die erste CPU-Einheit 12 auf eine Antwort von der ersten inneren Platine 14.
  • Die erste innere Platine 14 teilt der ersten CPU-Einheit 12 nicht nur die Startadresse für das Einschreiben von Daten, sondern auf die Datengröße mit, und beginnt dann, die Daten an der dieser Adressen entsprechenden Position zu schreiben (Vorgang (15)). Wenn dies abgeschlossen ist, wird der ersten CPU-Einheit 12 mitgeteilt, dass das Schreiben abgeschlossen ist.
  • Wenn diese Mitteilung empfangen wird, informiert die erste CPU-Einheit 12 die zweite innere Platine 15 im Wartezustand über die erhaltene Startadresse und Datengröße und wartet auf einen Endbefehl von der zweiten inneren Platine 15 (Vorgang (16)).
  • Auf der Grundlage dieser Mitteilung von der ersten CPU-Einheit 12, liest die zweite innere Platine im Wartezustand die auf der Seite der ersten inneren Platine 14 modifizierten Daten aus (Vorgang (17)). Nachdem alle diese Daten ausgelesen worden sind, wird das Ende des Lesens von Daten der ersten aktiven CPU-Einheit 12 mitgeteilt. Wenn diese Information von der zweiten inneren Platine 15 erkannt wird, schließt die er ste CPU-Einheit 12 den Verdoppelungsinitialisierungsvorgang ab (Vorgang (18)).
  • Die Erläuterung des inneren Dienstvorgangs, die oben unter Bezug auf 25 gegeben wurde, bezieht sich nur auf den Transfer von variablen und Parameterdaten von einer aktiven inneren Platine auf eine wartende innere Platine im Verdoppelungsinitialisierungsvorgang. Ein Datentransfer von einer aktiven CPU-Einheit auf eine wartende CPU-Einheit für einen Verdoppelungsinitialisierungsvorgang kann dadurch ausgeführt werden, dass die aktive CPU-Einheit das Anwenderprogramm auf ihrem Anwenderspeicher in den Anwenderspeicher der wartenden CPU-Einheit schreibt.
  • Der oben erläuterte Vorgang (17) wird tatsächlich durch Transferierung von Daten ausgeführt. Zwei Methoden des Datentransfers können vorgesehen sein, gespaltener und Großmengendatentransfer. Die Wahl der Methode wird definiert, wenn die innere Platine entworfen wird.
  • Die Großmengendatentransfermethode wird verwendet, wenn der Transfer innerhalb eines Zyklusses abgeschlossen sein muss, weil die Ausführung von Berechnungen gleichermaßen auf der aktiven wie der Warteseite ausgeführt wird, falls die Methode in einem Aufdoppelungssystem betrieben wird. Die variablen Daten auf einer inneren Platine sind Beispiele für nach der Großmengentransfermethode zu übertragende Daten.
  • Die Gespaltendatentransfermethode ist für Situationen, wo der Transfer keine Auswirkung auf die Ausführung von Berechnungen mit der ersten und zweiten inneren Platine 14 und 15 hat, so dass es kein Problem ist, wenn die Daten über mehrere Zyklen hinweg transferiert werden. Parameterdaten auf einer inneren Platine sind Beispiele für Daten, die nach der Gespaltendatentransfermethode übertragen werden können.
  • Diese Datentransfermethoden werden über einen CPU-INNERE-Befehl-Antwortbereich bewirkt und üblicherweise nach Abschluss der Zyklusoperationen, wie oben erläutert. Ein Beispiel für einen Datentransfervorgang nach einer Befehl-Antwortmethode unter Verwendung eines gemeinsamen Speichers wird als nächstes unter Bezug auf die 2632 beschrieben.
  • Der Großmengendatentransfer wird durch eine Routine, wie sie beispielsweise in den 2632 gezeigt ist, ausgeführt. Als Erstes wird ein Befehl „0100" für die Angabe von Großmengendatentransfer durch eine CPU-Einheit in einen spezifizierten Bereich eines Befehl-Antwortbereichs geschrieben und ein für den Transfer zu verwendender Transferdatenspeicherbereich spezifiziert. In dem in 5 gezeigten Beispiel gibt es zwei solche für diesen Zweck erstellte Plätze. Jeder von ihnen kann in dem oben unter Bezug auf 25 beschriebenen Vorgang (14) spezifiziert werden.
  • Als Antwort speichert die innere Platine die Startadresse (die entweder eine absolute Adresse oder eine relative Adresse sein kann) sowie die Datengröße (z. B. in Einheiten von Bites oder Wörtern) auf dem gemeinsamen Speicher und gibt den gegenwärtigen Status, ob der Transfer unabgeschlossen („4100") oder abgeschlossen („8100") ist, als Antwort (Vorgang (15) der 25 zurück .
  • Wenn der Befehl „8100" empfangen wird, führt die aktive erste CPU-Einheit 12 den Vorgang der Lieferung der von der ersten inneren Platine empfangenen Daten (wie etwa Parameter- und variable Daten) an die zweite innere Platine 15 im Wartezustand über die zweite CPU-Einheit 13 im Wartezustand aus. In diesem Zeitpunkt transferiert die erste CPU-Einheit 12 die Daten direkt, ohne sie zu prüfen. Anders ausgedrückt, spezifiziert die aktive erste CPU-Einheit 12 den Speicherbereich (1 oder 2), von wo der Transfer erfolgen soll, und schreibt die Größe ein, wie dies in 27 gezeigt ist. Vom Adressaten wird daraufhin eine Antwort („8101") erhalten.
  • Die 28-32 zeigen ein Beispiel der Datenbewegungen im Falle eines Großmengendatentransfers. In jeder dieser Figuren sind Teile, wo Daten geändert worden sind, schraffiert gezeigt.
  • Als Erstes gibt die aktive erste CPU-Einheit einen Befehl „0100" zur Durchführung eines Großmengendatentransfers unter Verwendung des Transferbereichs 1 (0001) ein (28). Ansprechend darauf schreibt die erste aktive innere Platine 14 Antwort „8100" ein und speichert die Startadresse und Größe, wie in 29 gezeigt. Gleichzeitig werden die zu transferierenden. Daten in dem spezifizierten Bereich gespeichert. Als nächstes kopiert die aktive erste CPU-Einheit 12 die erhaltene Startadresse und Größe in einen spezifizierten Bereich, wie in 30 gezeigt (Vorgang (16) der 25). Als Ergebnis werden der Befehl „0101" und der ausgewählte Bereich (0001) sowie die Startadresse und die Größe in einen spezifizierten Bereich des gemeinsamen Speichers auf der Warteseite durch den I/F-ASIC 12e geschrieben. Aktuelle Daten werden gleichzeitig ebenfalls transferiert (Vorgang (17) der 25).
  • Wenn das in 30 gezeigte Kopieren abgeschlossen ist, gibt die erste CPU-Einheit 12 den Befehl „0100" für die nächste Transferoperation aus und spezifiziert einen anderen Bereich (0002) für die zu transferierenden Daten, wie in 31 gezeigt. Durch Spezifizieren eines anderen Bereichs auf diese Weise kann die Möglichkeit des Überschreibens und Löschens von Daten verringert werden. Wenn dieser Befehl eingegeben wird, gibt die zweite innere Platine 15 im Wartezustand die Großmengendatentransfer-(von CPU an innere Platine)Antwort „8101" zurück, und die aktive erste innere Platine 14 gibt die Groß mengendatentransfer-(von innerer Platine an CPU)Antwort „8100" zurück, wie dies in 32 gezeigt ist.
  • Ein gespaltener Datentransfer andererseits wird ausgeführt, indem die Inhalte der Parameterdaten der aktiven inneren Platine über die CPU-Einheit an die innere Platine im Wartezustand geliefert werden. Dieser Vorgang kann durch einen Befehl-Antwortvorgang bewirkt werden.
  • Der vorgenannte Verdoppelungsinitialisierungsvorgang kann nicht nur ausgeführt werden, wenn eine Änderung von außen, beispielsweise mittels eines Hilfsmittels bewirkt worden ist, sondern auch, wenn die Spannung eingeschaltet wird.
  • Aus der oben gegebenen Offenbarung der Erfindung sollte klar sein, dass ein zuverlässiges aufgedoppeltes System mit einer programmierbaren Steuerung dieser Erfindung, die zwei CPU-Einheiten enthält, an denen jeweils ein Spezialfunktionsmodul angebracht ist, ausgebildet werden kann.

Claims (13)

  1. Programmierbare Steuerung, welche zwei CPU-Einheiten mit jeweils einem abnehmbar daran angebrachten Spezialfunktionsmodul, der einen Berechnungsvorgang ausführt, aufweist, wobei jede der beiden CPU-Einheiten Zustände der anderen beiden CPU-Einheiten erkennt; eine der beiden CPU-Einheiten eine aktive Einheit und die andere der beiden CPU-Einheiten eine Warteeinheit wird; wenn die aktive Einheit ausfällt und abschaltet, die Warteeinheit zur aktiven Einheit umgeschaltet wird und Operationen fortführt; der an der aktiven CPU-Einheit angebrachte Spezialfunktionsmodul ein aktiver Modul wird und Vorgänge mit der aktiven CPU-Einheit ausführt; und der andere, an der wartenden CPU-Einheit angebrachte Spezialfunktionsmodul ein Wartemodul wird.
  2. Programmierbare Steuerung nach Anspruch 1, wobei jede der beiden CPU-Einheiten Daten mit dem daran angebrachten Spezialfunktionsmodul über einen gemeinsamen Speicher austauscht; wobei die beiden Spezialfunktionsmodule den Berechnungsvorgang nicht-synchron mit den beiden CPU-Einheiten zur Gewinnung von E/A-Daten ausführen und die E/A-Daten nicht in dem gemeinsamen Speicher speichern, während sie den Berechnungsvorgang ausführen; und wobei die mit dem Berechnungsvorgang gewonnenen E/A-Daten auf die CPU-Einheiten während eines Synchronisationsvorangs mit den CPU-Einheiten transferiert werden.
  3. Programmierbare Steuerung nach Anspruch 1, wobei der an der CPU-Einheit angebrachte Spezialfunktionsmodul Ergebnisse der Berechnungsverarbeitung von beiden Spezialfunktionsmodulen erhält und vergleicht und, wenn die Ergebnisse nicht übereinstimmen, der langsamere der Spezialfunktionsmodule, der im Berechnungsvorgang hinten ist, einen Korrekturvorgang ausführt, um in dem Berechnungsvorgang weiter vorzurücken, so dass beide Spezialfunktionsmodule in dem Berechnungsvorgang gleich vorgerückt sind.
  4. Programmierbare Steuerung nach Anspruch 2, wobei der an der CPU-Einheit angebrachte Spezialfunktionsmodul Ergebnisse des Berechnungsvorgangs von beiden Spezialfunktionsmodulen erhält und vergleicht und, wenn die Ergebnisse nicht übereinstimmen, der langsamere der Spezialfunktionsmodule, der im Berechnungsvorgang hinten ist, einen Korrekturvorgang ausführt, um in dem Berechnungsvorgang weiter vorzurücken, so dass beide Spezialfunktionsmodule in dem Berechnungsvorgang gleich vorgerückt sind.
  5. Programmierbare Steuerung nach Anspruch 1, wobei, wenn irgendwelche Daten, ausgewählt aus der Datengruppe, bestehend aus variablen Daten und Parameterdaten, die in einem Speicher des aktiven Spezialfunktionsmoduls gespeichert sind, als eine von außen bewirkte Änderung aufweisend befunden werden, der aktive Spezialfunktionsmodul eine Anforderung an die aktive CPU-Einheit, einen Verdoppelungsvorgang auszuführen, sendet; und wobei die aktive CPU-Einheit, wenn diese Anforderung erhalten wird, wenigstens Information über die Änderung in dem Speicher gewinnt, diese Information an den wartenden Spezialfunktionsmodul ausgibt und bewirkt, dass die Speicherinhalte des aktiven und wartenden Spezialfunktionsmoduls übereinstimmen.
  6. Programmierbare Steuerung nach Anspruch 2, wobei, wenn irgendwelche Daten, ausgewählt aus der Datengruppe, bestehend aus variablen Daten und Parameterdaten, die in einem Speicher des aktiven Spezialfunktionsmoduls gespeichert sind, als eine von außen bewirkte Änderung aufweisend befunden werden, der aktive Spezialfunktionsmodul eine Anforderung an die aktive CPU-Einheit, einen Verdoppelungsvorgang auszuführen, sendet; und wobei die aktive CPU-Einheit, wenn diese Anforderung erhalten wird, wenigstens Information über die Änderung in dem Speicher gewinnt, diese Information an den wartenden Spezialfunktionsmodul ausgibt und bewirkt, dass die Speicherinhalte des aktiven und wartenden Spezialfunktionsmoduls übereinstimmen.
  7. Programmierbare Steuerung nach Anspruch 3, wobei, wenn irgendwelche Daten, ausgewählt aus der Datengruppe, bestehend aus variablen Daten und Parameterdaten, die in einem Speicher des aktiven Spezialfunktionsmoduls gespeichert sind, als eine von außen bewirkte Änderung aufweisend befunden werden, der aktive Spezialfunktionsmodul eine Anforderung an die aktive CPU-Einheit, einen Verdoppelungsvorgang auszuführen, sendet; und wobei die aktive CPU-Einheit, wenn diese Anforderung erhalten wird, wenigstens Information über die Änderung in dem Speicher gewinnt, diese Information an den wartenden Spezialfunktionsmodul ausgibt und bewirkt, dass die Speicherinhalte des aktiven und wartenden Spezialfunktionsmoduls übereinstimmen.
  8. Programmierbare Steuerung nach Anspruch 4, wobei, wenn irgendwelche Daten, ausgewählt aus der Datengruppe, bestehend aus variablen Daten und Parameterdaten, die in einem Speicher des aktiven Spezialfunktionsmoduls gespeichert sind, als eine von außen bewirkte Änderung aufweisend befunden werden, der aktive Spezialfunktionsmodul eine Anforderung an die aktive CPU-Einheit, einen Verdoppelungsvorgang auszuführen, sendet; und wobei die aktive CPU-Einheit, wenn diese Anforderung erhalten wird, wenigstens Information über die Änderung in dem Speicher gewinnt, diese Information an den wartenden Spezialfunktionsmodul ausgibt und bewirkt, dass die Speicherinhalte des aktiven und wartenden Spezialfunktionsmoduls übereinstimmen.
  9. Ein Paar von CPU-Einheiten, die jeweils aufweisen: einen lösbar angebrachten Spezialfunktionsmodul zur Durchführung eines Berechnungsvorgangs, um so E/A-Daten zu erzeugen; und einen gemeinsamen Speicher, der mit dem angebrachten Spezialfunktionsmodul geteilt wird; wobei jede der CPU-Einheiten ausgewählt in einem aktiven Zustand ist und einen Steuervorgang beruhend auf einem Anwenderprogramm ausführt, oder in einer Wartebetriebsart ist und den Steuervorgang nicht ausführt; wobei die CPU-Einheit in der Wartebetriebsart mit Feststellung, dass die andere CPU-Einheit in der aktiven Betriebsart ausfällt und abschaltet, in die aktive Betriebsart umschaltet und den Steuervorgang fortführt; wobei jede der CPU-Einheiten Daten mit dem daran angebrachten Spezialfunktionsmodul über den gemeinsamen Speicher austauscht; wobei jede der CPU-Einheiten einen inneren Dienstvorgang ausführt, in dem Daten mit dem angebrachten Spezialfunktionsmodul nach Ausführen eines zyklischen Vorgangs, der die Ausführung des Anwenderprogramms enthält, synchron ausgetauscht werden; und wobei der innere Dienstvorgang das Speichern der E/A-Daten in dem gemeinsamen Speicher beinhaltet.
  10. Das Paar von CPU-Einheiten nach Anspruch 9, wobei die E/A-Daten in dem gemeinsamen Speicher nur gespeichert werden, wenn Ergebnisse des Berechnungsvorgangs mit dem an der CPU-Einheit angebrachten Spezialfunktionsmodul und diejenigen mit dem an der anderen CPU-Einheit angebrachten Spezialfunktionsmodul in Übereinstimmung gebracht sind.
  11. Spezialfunktionsmodul zur lösbaren Anbringung an einer CPU-Einheit, wobei der Spezialfunktionsmodul aufweist: einen mit der CPU-Einheit geteilten gemeinsamen Speicher; Mittel zum Austauschen von Daten mit der CPU-Einheit über den gemeinsamen Speicher; Mittel, zur Durchführung eines Berechnungsvorganges nicht-synchron mit der CPU-Einheit und zur Erzeugung von E/A-Daten damit; und Mittel zur Transferierung der E/A-Daten auf die CPU-Einheit, während ein Vorgang synchron mit der CPU-Einheit ausgeführt wird, zur Verhinderung aber, dass die E/A-Daten in den gemeinsamen Speicher geschrieben werden, während der Berechnungsvorgang gerade ausgeführt wird; wobei der Spezialfunktionsmodul so funktioniert, dass er in einer aktiven Betriebsart ist, wenn die CPU-Einheit in einer aktiven Betriebsart ist, und in einer Wartebetriebsart, wenn die CPU-Einheit in der Wartebetriebsart ist.
  12. Verfahren zur Schaffung einer programmierbaren Steuerung mit einem auf gedoppelten Aufbau, wobei das Verfahren folgende Schritte aufweist: Vorsehen von zwei CPU-Einheiten mit jeweils einem Spezialfunktionsmodul, der in der Lage ist, einen Berechnungsvorgang auszuführen, wobei eine der beiden CPU-Einheiten eine aktive CPU in einer aktiven Betriebsart ist und einen Steuervorgang ausführt, wobei die andere der beiden CPU-Einheiten eine Warte-CPU-Einheit in einer Wartebetriebsart ist; Bewirken, dass der eine der Spezialfunktionsmodule, der an der aktiven CPU-Einheit angebracht ist, ein aktiver Modul ist und den Steuervorgang zusammen mit der aktiven CPU-Einheit ausführt; Bewirken, dass der andere der Spezialfunktionsmodule, der an der Warte-CPU-Einheit angebracht ist, ein Wartemodul ist; und Aktivieren der Warte-CPU-Einheit und des Wartemoduls in die aktive Betriebsart, wenn ein anomaler Zustand in einer aktiven Komponente, ausgewählt aus der Gruppe bestehend aus der aktiven CPU-Einheit und dem aktiven Modul, auftritt.
  13. Verfahren zur Schaffung einer programmierbaren Steuerung mit einem abgedoppelten Aufbau, wobei das Verfahren folgende Schritte aufweist: Vorsehen von zwei CPU-Einheiten mit jeweils einem Spezialfunktionsmodul, der in der Lage ist, einen Berechnungsvorgang auszuführen, wobei eine der beiden CPU-Einheiten eine aktive CPU in einer aktiven Betriebsart ist und einen Steuervorgang ausführt, wobei die andere der beiden CPU-Einheiten eine Warte-CPU-Einheit in einer Wartebetriebsart ist; Bewirken, dass der eine der Spezialfunktionsmodule, der an der aktiven CPU-Einheit angebracht ist, ein aktiver Modul ist und den Steuervorgang zusammen mit der aktiven CPU-Einheit ausführt; Bewirken, dass der andere der Spezialfunktionsmodule, der an der Warte-CPU-Einheit angebracht ist, ein Wartemodul ist; Bewirken, dass jede der CPU-Einheiten Daten mit dem entsprechenden der Spezialfunktionsmodule über einen gemeinsamen Speicher austauscht; Bewirken, dass die beiden Spezialfunktionsmodule den Berechnungsvorgang nicht-synchron mit den beiden CPU-Einheiten ausführen, um E/A-Daten zu erzeugen; Verhindern, dass die E/A-Daten in den gemeinsamen Speicher geschrieben werden, während der Berechnungsvorgang gerade ausgeführt wird; und Schreiben der E/A-Daten in den gemeinsamen Bereich, während die Spezialfunktionsmodule synchron mit der CPU arbeiten.
DE10325069A 2002-06-07 2003-06-03 Programmierbare Steuerung mit CPU-Einheiten und Spezialfunktionsmodulen sowie Verfahren zur Aufdopplung Expired - Lifetime DE10325069B4 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2002203285 2002-06-07
JP2002-203285 2002-06-07
JP2003-156654 2003-06-02
JP2003156654A JP3606281B2 (ja) 2002-06-07 2003-06-02 プログラマブルコントローラ及びcpuユニット並びに特殊機能モジュール及び二重化処理方法

Publications (2)

Publication Number Publication Date
DE10325069A1 true DE10325069A1 (de) 2004-01-29
DE10325069B4 DE10325069B4 (de) 2012-05-24

Family

ID=30002365

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10325069A Expired - Lifetime DE10325069B4 (de) 2002-06-07 2003-06-03 Programmierbare Steuerung mit CPU-Einheiten und Spezialfunktionsmodulen sowie Verfahren zur Aufdopplung

Country Status (4)

Country Link
US (1) US7428659B2 (de)
JP (1) JP3606281B2 (de)
CN (1) CN1271481C (de)
DE (1) DE10325069B4 (de)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE20315676U1 (de) * 2003-10-11 2003-12-11 Kronotec Ag Paneel, insbesondere Bodenpaneel
JP2005267111A (ja) * 2004-03-17 2005-09-29 Hitachi Ltd 記憶制御システム及び記憶制御システムの制御方法
JP4666258B2 (ja) * 2006-01-11 2011-04-06 横河電機株式会社 データアクセスシステム
JP4650441B2 (ja) * 2007-03-15 2011-03-16 三菱電機株式会社 数値制御装置及び数値制御システム
JP4826557B2 (ja) * 2007-07-27 2011-11-30 オムロン株式会社 二重化plc
JP4953997B2 (ja) * 2007-09-14 2012-06-13 山洋電気株式会社 多軸駆動用ドライバ
JP2009093392A (ja) * 2007-10-09 2009-04-30 Meidensha Corp データ等価の制御方法とそのシステム及びプログラマブルコントローラ
US7979739B2 (en) * 2007-11-13 2011-07-12 Hewlett-Packard Development Company, L.P. Systems and methods for managing a redundant management module
JP5243113B2 (ja) * 2008-06-19 2013-07-24 株式会社日立製作所 演算処理装置多重化制御システム
JP4709268B2 (ja) * 2008-11-28 2011-06-22 日立オートモティブシステムズ株式会社 車両制御用マルチコアシステムまたは内燃機関の制御装置
RU2453910C2 (ru) * 2009-04-08 2012-06-20 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Юго-Западный государственный университет" (ЮЗГУ) Вычислительная открытая развиваемая асинхронная модульная система
US8051323B2 (en) * 2010-01-21 2011-11-01 Arm Limited Auxiliary circuit structure in a split-lock dual processor system
US20110179255A1 (en) * 2010-01-21 2011-07-21 Arm Limited Data processing reset operations
US8108730B2 (en) * 2010-01-21 2012-01-31 Arm Limited Debugging a multiprocessor system that switches between a locked mode and a split mode
JP5540928B2 (ja) * 2010-06-21 2014-07-02 富士電機株式会社 プログラマブルコントローラシステムおよびそのアプリケーション起動方法
JP5583046B2 (ja) * 2011-02-10 2014-09-03 株式会社東芝 二重化制御装置
JP4877423B1 (ja) * 2011-03-15 2012-02-15 オムロン株式会社 Plcのcpuユニット、plc用システムプログラムおよびplc用システムプログラムを格納した記録媒体
JP4752983B1 (ja) * 2011-03-15 2011-08-17 オムロン株式会社 Plcのcpuユニット、plc用のシステムプログラムおよびplc用のシステムプログラムを格納した記録媒体
JP5845629B2 (ja) * 2011-05-24 2016-01-20 オムロン株式会社 Plcのcpuユニット、plc用のシステムプログラムおよびplc用のシステムプログラムを格納した記録媒体
JP5079168B1 (ja) 2011-12-27 2012-11-21 三菱電機株式会社 電源装置
US9594612B2 (en) * 2013-06-28 2017-03-14 Arista Networks, Inc. System and method of a hardware shadow for a network element
US10248601B2 (en) * 2014-03-27 2019-04-02 Honeywell International Inc. Remote terminal unit (RTU) with universal input/output (UIO) and related method
JP6375666B2 (ja) * 2014-03-31 2018-08-22 株式会社ジェイテクト Plcおよびplc用のプログラミングツール
JP6340886B2 (ja) * 2014-04-10 2018-06-13 株式会社ジェイテクト プログラマブルロジックコントローラ用プログラムの作成支援装置及びプログラマブルロジックコントローラ用プログラムの作成支援方法
WO2015162760A1 (ja) 2014-04-24 2015-10-29 三菱電機株式会社 Plcユニット及びプログラマブルロジックコントローラ
KR101916678B1 (ko) * 2014-04-28 2018-11-08 엘에스산전 주식회사 피엘씨
KR101702945B1 (ko) * 2014-12-17 2017-02-06 삼성중공업 주식회사 분산 제어 시스템 및 그 제어 방법
KR101870492B1 (ko) 2015-06-22 2018-06-22 엘에스산전 주식회사 Plc 시스템
CN107942894B (zh) * 2016-10-13 2019-12-10 中国石油天然气集团公司 主输入输出子模块及其诊断方法、可编辑逻辑控制器
GB2555628B (en) * 2016-11-04 2019-02-20 Advanced Risc Mach Ltd Main processor error detection using checker processors
JP6903275B2 (ja) * 2017-09-14 2021-07-14 オムロン株式会社 制御装置および制御方法
US11475723B2 (en) * 2017-12-29 2022-10-18 Robert Bosch Gmbh Determining a fault in an electronic controller
US20240171177A1 (en) * 2021-04-23 2024-05-23 Fanuc Corporation Plc device and recording medium

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4428044A (en) * 1979-09-20 1984-01-24 Bell Telephone Laboratories, Incorporated Peripheral unit controller
DE3328405A1 (de) * 1983-08-05 1985-02-21 Siemens AG, 1000 Berlin und 8000 München Steuerorgane eines fehlertoleranten mehrrechnersystems
EP0306211A3 (de) * 1987-09-04 1990-09-26 Digital Equipment Corporation Synchronisiertes Doppelrechnersystem
CA2003338A1 (en) * 1987-11-09 1990-06-09 Richard W. Cutts, Jr. Synchronization of fault-tolerant computer system having multiple processors
US5204952A (en) * 1988-07-18 1993-04-20 Northern Telecom Limited Duplex processor arrangement for a switching system
US4965717A (en) * 1988-12-09 1990-10-23 Tandem Computers Incorporated Multiple processor system having shared memory with private-write capability
US5086429A (en) * 1990-04-10 1992-02-04 Honeywell Inc. Fault-tolerant digital computing system with reduced memory redundancy
US5226152A (en) * 1990-12-07 1993-07-06 Motorola, Inc. Functional lockstep arrangement for redundant processors
JPH05173986A (ja) 1991-12-24 1993-07-13 Matsushita Electric Works Ltd プログラマブルコントローラ
JP3348176B2 (ja) * 1993-05-14 2002-11-20 オムロン株式会社 プログラマブルコントローラ
ES2115822T3 (es) * 1993-10-11 1998-07-01 Siemens Ag Modulo de procesamiento para un sistema de automatizacion modular.
JPH0973304A (ja) 1995-09-04 1997-03-18 Toshiba Fa Syst Eng Kk プログラマブルコントローラの制御システム
FR2744260B1 (fr) * 1996-01-30 1998-03-27 Aeg Schneider Automation Systeme d'automatisme securise
US5777874A (en) * 1996-02-12 1998-07-07 Allen-Bradley Company, Inc. Programmable controller backup system
CA2309926A1 (en) * 1997-11-14 1999-05-27 Erik Muench Method for maintaining the synchronized execution in fault resilient/fault tolerant computer systems
US6223304B1 (en) * 1998-06-18 2001-04-24 Telefonaktiebolaget Lm Ericsson (Publ) Synchronization of processors in a fault tolerant multi-processor system
US6393582B1 (en) * 1998-12-10 2002-05-21 Compaq Computer Corporation Error self-checking and recovery using lock-step processor pair architecture
JP3662444B2 (ja) 1999-06-09 2005-06-22 三菱電機株式会社 プログラマブルコントローラおよび切替信号生成装置
JP2001022414A (ja) * 1999-07-09 2001-01-26 Toshiba Corp プロセスコントローラ、そのデータ転送方法およびプラント
JP4465824B2 (ja) * 2000-07-06 2010-05-26 富士電機システムズ株式会社 コントローラシステム
US6604177B1 (en) * 2000-09-29 2003-08-05 Hewlett-Packard Development Company, L.P. Communication of dissimilar data between lock-stepped processors
US6928583B2 (en) * 2001-04-11 2005-08-09 Stratus Technologies Bermuda Ltd. Apparatus and method for two computing elements in a fault-tolerant server to execute instructions in lockstep
US7085959B2 (en) * 2002-07-03 2006-08-01 Hewlett-Packard Development Company, L.P. Method and apparatus for recovery from loss of lock step
JP4625620B2 (ja) * 2003-10-10 2011-02-02 株式会社日立製作所 フェイルセイフ制御装置

Also Published As

Publication number Publication date
CN1271481C (zh) 2006-08-23
DE10325069B4 (de) 2012-05-24
US7428659B2 (en) 2008-09-23
JP3606281B2 (ja) 2005-01-05
JP2004062872A (ja) 2004-02-26
US20040025078A1 (en) 2004-02-05
CN1477468A (zh) 2004-02-25

Similar Documents

Publication Publication Date Title
DE10325069B4 (de) Programmierbare Steuerung mit CPU-Einheiten und Spezialfunktionsmodulen sowie Verfahren zur Aufdopplung
DE60225443T2 (de) Sicherheitseinheit, steuerungsverkettungsverfahren, steuerungssystemsteuerverfahren und steuerungssystemüberwachungsverfahren
DE69031086T2 (de) Cache-Speicherinhaltssteuerung in Mehrprozessornetzwerken
DE69226606T2 (de) Speicherschaltung mit zwei Betriebsarten
DE3852433T2 (de) Funktionsverteiltes Steuergerät.
DE60200210T2 (de) Über das World-Wide-Web zugängliche, eingebettete Programmier-Software
DE69815392T2 (de) Systeme und verfahren zur synchronisierung von redundanten steuerungen mit minimaler steuerungsstörung
DE3587034T3 (de) Verfahren und Einrichtung zur Steuerung automatischer Geräte.
DE60012815T2 (de) Numerisches Steuersystem
EP1205052B1 (de) Verfahren zur einstellung einer datenübertragungsrate in einem feldbussystem
DE10324380B4 (de) Programmierbare Steuerung mit CPU und Kommunikationseinheiten sowie Verfahren zur Steuerung derselben
EP3622357B1 (de) Steuerungssystem zum steuern von sicherheitskritischen und nichtsicherheitskritischen prozessen mit master-slave-funktionalität
EP1249744A1 (de) Verfahren zum Herstellen konsistenter Speicherinhalte in redundanten Systemen
DE19744071B4 (de) Eine programmierbare Logiksteuervorrichtung verwendendes Steuerungssystem
DE69523223T2 (de) Steuergerät
EP2997427B1 (de) Steuerungseinrichtung und verfahren zum umschalten von ein-/ausgabeeinheiten einer steuerungseinrichtung
DE602004006208T2 (de) Programmierbare Steuerung, programmierbares Steuersystem, CPU und Verfahren zum Starten des Duplexbetriebs
DE69526476T2 (de) Vorrichtung mit Flash-Speichersteuerung zur Änderung
WO1997038370A1 (de) Kommunikationssystem mit einer meisterstation und mindestens einer sklavenstation
DE69031361T2 (de) Taktsignalgeneratorsystem
EP2202596A2 (de) Anordnung bestehend aus einer programmgesteuerten Einheit und einem mit diesem verbundener Power-Baustein
DE69320732T2 (de) Verfahren zur Gerätadressierung und zur Datensignalübertragung auf einem Bus
EP2090948B1 (de) Verfahren zum Betrieb eines Automatisierungssystems
DE69614671T2 (de) Verfahren und system zum synchronisieren von gleichzeitigen sequentiellen prozessen mit hilfe von intra-prozess-korrigier- und inter-prozess-adaptier- operationen
DE10218816A1 (de) Programmierbares Steuerungssystem

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final

Effective date: 20120825

R082 Change of representative

Representative=s name: KILIAN KILIAN & PARTNER MBB PATENTANWAELTE, DE

Representative=s name: KILIAN KILIAN & PARTNER, DE

R071 Expiry of right