DE602004013244T2 - Hochgeschwindigkeitssynchronisation in einer doppelrechnerbasierten Sicherheitssteuerung - Google Patents

Hochgeschwindigkeitssynchronisation in einer doppelrechnerbasierten Sicherheitssteuerung Download PDF

Info

Publication number
DE602004013244T2
DE602004013244T2 DE602004013244T DE602004013244T DE602004013244T2 DE 602004013244 T2 DE602004013244 T2 DE 602004013244T2 DE 602004013244 T DE602004013244 T DE 602004013244T DE 602004013244 T DE602004013244 T DE 602004013244T DE 602004013244 T2 DE602004013244 T2 DE 602004013244T2
Authority
DE
Germany
Prior art keywords
execution
variables
program
security
safety
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
DE602004013244T
Other languages
English (en)
Other versions
DE602004013244D1 (de
Inventor
Anthony Gerard New Berlin Gibart
Paul G. Waukesha Kucharski
Joseph Paul New Berlin Izzo
Michael Dean Highland Heights Kalan
Charles M. Chardon Rischar
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.)
Rockwell Automation Technologies Inc
Original Assignee
Rockwell Automation Technologies Inc
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 Rockwell Automation Technologies Inc filed Critical Rockwell Automation Technologies Inc
Publication of DE602004013244D1 publication Critical patent/DE602004013244D1/de
Application granted granted Critical
Publication of DE602004013244T2 publication Critical patent/DE602004013244T2/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1683Temporal synchronisation or re-synchronisation of redundant processing components at instruction level
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B9/00Safety arrangements
    • G05B9/02Safety arrangements electric
    • G05B9/03Safety arrangements electric with multiple-channel loop, i.e. redundant control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1633Error detection by comparing the output of redundant processing systems using mutual exchange of the output between the redundant processing components
    • 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/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24187Redundant processors run identical programs
    • 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/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24195Compare data in channels at timed intervals, for equality

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)
  • Safety Devices In Control Systems (AREA)
  • Hardware Redundancy (AREA)

Description

  • ALLGEMEINER STAND DER TECHNIK
  • Die vorliegende Erfindung betrifft industrielle Steuerungen, die zur Echtzeitsteuerung industrieller Prozesse verwendet werden, und insbesondere industrielle Steuerungen mit „hoher Zuverlässigkeit" oder „Sicherheit", die für die Verwendung in Vorrichtungen geeignet sind, die das menschliche Leben und die Gesundheit schützen sollen.
  • Industrielle Steuerungen sind spezielle Computer, die bei der Steuerung industrieller Prozesse verwendet werden. Unter der Anleitung eines gespeicherten gesteuerten Programms untersucht eine industrielle Steuerung eine Reihe von Eingaben, die den Status des gesteuerten Prozesses reflektieren, und ändert eine Reihe von Ausgaben, die den industriellen Prozess steuern. Die Eingaben und Ausgaben können binär sein, das heißt ein oder aus, oder analog, wodurch ein Wert in einem im Wesentlichen kontinuierlichen Bereich bereitgestellt wird. Die Eingaben können aus an den gesteuerten Prozess angeschlossenen Sensoren erhalten werden, und die Ausgaben können Signale für Stellglieder an dem gesteuerten Prozess sein.
  • „Sicherheitssysteme" sind Systeme, die die Sicherheit von in der Umgebung eines industriellen Prozesses arbeitenden Personen sicherstellen sollen. Solche Systeme können die Elektronik umfassen, die mit Notausschaltern, Lichtvorhängen und anderen Maschinenabschaltungen assoziiert ist. Traditionell wurden Sicherheitssysteme durch eine Menge redundanter Schaltungen implementiert, die von dem industriellen Steuersystem getrennt sind, mit denen der industrielle Prozess gesteuert wird, mit dem das Sicherheitssystem assoziiert ist. Solche Sicherheitssysteme wurden „festverdrahtet" aus Schaltern und Relais, einschließlich spezialisierter „Sicherheitsrelais", die einen Vergleich redundanter Signale und interne Prüfung von Fehlerbedingungen, wie zum Beispiel aneinander geschweißte oder hängen gebliebene Kontakte gewährleisten.
  • Festverdrahtete Sicherheitssysteme, die duplizierte Verdrahtung verwenden, haben sich in der Praxis aufgrund der Schwierigkeit des Installierens und Verbindens festverdrahteter Komponenten und duplizierter Mengen von Verdrahtung insbesondere in komplexen Steueranwendungen und teilweise aufgrund der Schwierigkeit bei der Problembeseitigung und Wartung in einem festverdrahteten System, dessen Logik nur durch Neuverdrahtung geändert werden kann, als umständlich erwiesen.
  • Aus diesem Grund ist beträchtliches Interesse an der Entwicklung industrieller Steuerungen entstanden, die Sicherheitssysteme unter Verwendung von Programmen implementieren können, die die Funktionsweise der physischen Komponenten in festverdrahteten Sicherheitssystemen simulieren. Industrielle Steuerungen sind nicht nur leichter zu programmieren, sondern können verringerte Installationskosten zur Verfügung stellen, indem große Abschnitte redundanter Verdrahtung zugunsten eines schnellen seriellen Kommunikationsnetzwerks beseitigt werden, und indem verbesserte Problembehebungsfähigkeiten zur Verfügung gestellt werden.
  • Hohe Zuverlässigkeit lässt sich in einem industriellen Steuerungssystem durch Verwendung von zwei industriellen Steuerungen erzielen, die gleichzeitig dasselbe Steuerprogramm ausführen und ihre Operationen vergleichen, um Fehler zu erkennen. Ein Verfahren zum Vergleichen der Ausführung zwischen zwei Prozessoren hält die Ausführung der Anweisungen des Programms am Ende jeder Anweisung an, wobei die von der Instruktion in jedem Prozessor verwendeten Eingabevariablen und die berechneten Ausgabevariablen miteinander verglichen werden. Jeder Prozessor übermittelt diese Werte zu dem anderen und vergleicht dann seine eigenen Werte mit den zu ihm übermittelten. Der Prozessor fährt dann mit der nächsten Instruktion fort, und dieser Prozess wird wiederholt.
  • Ein Nachteil bei diesem Ansatz besteht darin, dass er die Ausführungsgeschwindigkeit des Programms signifikant reduziert und somit Sicherheitsprogramme auf relativ einfache Operationen begrenzt, oder diejenigen, die keine schnellen Ansprechzeiten oder Multitasking mit anderen Programmen erfordern.
  • Aus US 2003/05 1203 A1 ist eine Sicherheitssteuerung mit einer ersten und einer zweiten auf einem Kommunikationsbus kommunizierenden Verarbeitungseinheit bekannt, die jeweils einen Prozessor und einen Speicher enthalten, wobei der Speicher der ersten und zweiten Verarbeitungseinheiten jeweils mit einem gemeinsamen Sicherheitsprogramm und Eingabe-/Ausgabevariablen ladbar sind, wobei das Sicherheitsprogramm wiederholt ausführbar ist, um Eingaben aus die externen gesteuerten Vorrichtungen repräsentierenden Eingabevariablen zu lesen und Ausgaben an die externen gesteuerten Vorrichtungen repräsentierende Ausgangsvariable zu schreiben; ein Koordinatorprogramm, das an einem vorbestimmten Punkt in der wiederholten Ausführung der gemeinsamen Sicherheitsprogramme die ersten und zweiten Verarbeitungseinheiten mit identischen Eingabevariablen versorgt; ein durch die ersten und zweiten Verarbeitungseinheiten ausführbares Synchronisationsprogramm zum Ausführen der gemeinsamen Sicherheitsprogramme und zum Vergleichen der Ausführung der gemeinsamen Sicherheitsprogramme und zum Eintritt in einen Sicherheitszustand, wenn sich diese Ausführung unterscheidet. Bei dieser bekannten Sicherheitssteuerung wird einfach ein Quervergleich der Übertragung von Daten auf einer Kommunikationsverbindung verwendet. Das heißt, falls keine Nachrichten übermittelt werden, was bei der Ausführung eines Programms auftreten könnte, wird überhaupt nichts geprüft.
  • US-A-4 430 899 offenbart ein verteiltes Datenverarbeitungssystem, das heißt, ein Verarbeitungssystem, bei dem verschiedene Teile der Datenverarbeitungsaufgabe von verschiedenen Komponenten unternommen werden. Redundanz wird in dieser Schrift ausschließlich im Kontext der Nachrichtenübertragung besprochen.
  • KURZFASSUNG DER ERFINDUNG
  • Die vorliegende Erfindung stellt bei redundanter Verarbeitung signifikant schnellere Ausführung von Sicherheitsprogrammen zur Verfügung, indem der Vergleich der Programmausführung nur auf Ausgabevariable und nur auf den Abschluss von Mehrfachinstruktionen beschränkt wird.
  • Zwischenvariable, die keine Ausgaben zur Verfügung stellen, aber durch das Sicherheitsprogramm bestimmt werden, können weniger häufig verglichen werden. Der Vergleich von Eingabevariablen kann vermieden werden, indem man einfach die Eingabevariable aus einer gemeinsamen Steuerung kopiert. Auf diese Weise wird die Ausführungsgeschwindigkeit der redundanten Programme wesentlich vergrößert.
  • Genauer gesagt stellt die vorliegende Erfindung somit eine Sicherheitssteuerung mit einer ersten und einer zweiten Verarbeitungseinheit zur Verfügung, die auf einem Kommunikationsbus kommunizieren, wobei jede Verarbeitungseinheit einen Prozessor und einen Speicher enthält, wobei der Speicher der ersten und zweiten Verarbeitungseinheiten mit einem gemeinsamen Sicherheitsprogramm sowie Eingabe-/Ausgabevariablen ladbar ist, wobei das Sicherheitsprogramm wiederholt ausgeführt wird, um Eingabevariable zu lesen, die Eingaben von externen gesteuerten Vorrichtungen darstellen, und um Ausgabevariable zu schreiben, die Ausgaben zu externen gesteuerten Vorrichtungen darstellen. Ein Koordinatorprogramm versorgt jede der ersten und zweiten Verarbeitungseinheiten an einem vorbestimmten Punkt in der wiederholten Ausführung des gemeinsamen Sicherheitsprogramms mit identischen Eingabevariablen. Ein durch die ersten und zweiten Verarbeitungseinheiten ausgeführtes Synchronisationsprogramm führt das gemeinsame Sicherheitsprogramm aus und vergleicht die Ausführung der gemeinsamen Sicherheitsprogramme und tritt in einen Sicherheitszustand ein, wenn sich diese Ausführung unterscheidet.
  • Eine Aufgabe der Erfindung ist somit, die Ausführungsgeschwindigkeit redundanter Programme, die miteinander verglichen werden, signifikant zu vergrößern, indem der Vergleich der Eingabevariablen beseitigt und einfach alle Eingabevariable zu jeder Verarbeitungseinheit kopiert werden.
  • Der Vergleich kann an nur einem einzigen Punkt in der wiederholten Ausführung des gemeinsamen Sicherheitsprogramms erfolgen, zum Beispiel am Ende des gemeinsamen Sicherheitsprogramms.
  • Somit ist es eine weitere Aufgabe der Erfindung, Geschwindigkeitsverbesserungen zur Verfügung zu stellen, indem die Ineffizienz beseitigt wird, die mit einem zeilenweisen Vergleich der Ausführung des Programms einhergeht.
  • Das Synchronisationsprogramm kann die Ausführung des Sicherheitsprogramms durch Vergleichen von durch die ersten und zweiten Verarbeitungseinheiten, die das Sicherheitsprogramm ausführen, erzeugten Ausgaben vergleichen.
  • Eine weitere Aufgabe der Erfindung ist somit die Verbesserung der Ausführungsgeschwindigkeit redundant ausgeführter Sicherheitsprogramme durch Beschränkung des Vergleichs von Ausgaben auf einen einzigen Punkt.
  • Das Sicherheitsprogramm wird auch ausgeführt, um Werte interner Variablen zu generieren, die nicht direkt an eine externe Vorrichtung ausgegeben werden, und das Synchronisationsprogramm kann die Ausführung des Sicherheitsprogramms durch Vergleichen von Werten dieser internen Variablen vergleichen.
  • Eine weitere Aufgabe der Erfindung ist somit, ein Verfahren zum Bestimmen potentieller Differenzen bei der Ausführung dieser Programme, die möglicherweise nicht in den Ausgabevariablen reflektiert werden, zur Verfügung zu stellen.
  • Der Vergleich der internen Variablen kann mit einer Periode ausgeführt werden, die größer als die Wiederholungsperiode ist.
  • Eine weitere Aufgabe der Erfindung ist somit die Unterscheidung zwischen Variabletypen und das Ändern der Periodizität des Vergleichs, um der Wichtigkeit dieser Variablen und der Wahrscheinlichkeit, dass sie fundamentale Fehler reflektieren, zu entsprechen.
  • Das Koordinationsprogramm kann die Ausführung des gemeinsamen Sicherheitsprogramms an dem vorbestimmten Punkt in der wiederholten Ausführung des gemeinsamen Sicherheitsprogramms stoppen, bis den gemeinsamen Sicherheitsprogrammen identische Eingabevariable zugeführt wurden.
  • Eine weitere Aufgabe der Erfindung besteht somit darin, Synchronisation der Ausführung der Programme an periodischen Punkten sicherzustellen und ferner an Punkten, an denen das Programm angehalten werden muss, wie zum Beispiel zur Synchronisation der Eingabevariablen. Die Koordination der Eingabevariablen kann ermöglicht werden, indem die Eingabevariable von der ersten Verarbeitungseinheit in die zweite Verarbeitungseinheit kopiert werden.
  • Der erste Prozessor kann einen Pufferspeicher enthalten, der asynchron Eingabevariable empfängt, und das Koordinationsprogramm kann den Pufferspeicher an dem vorbestimmten Punkt identisch mit den Eingabewerten der anderen Verarbeitungseinheiten kopieren.
  • Eine weitere Aufgabe der Erfindung besteht somit darin, zu erlauben, dass sich Eingabevariable weiter asynchron ansammeln, während die Eingabevariable unter den Prozessoren koordiniert werden.
  • Die Synchronisation kann die Ausgabevariable kombinieren, wenn die Ausführung des gemeinsamen Sicherheitsprogramms nicht unterschiedlich ist, um einen einzigen Satz von zu der Steuereinrichtung übertragbaren Ausgabevariablen zu produzieren.
  • Eine weitere Aufgabe der Erfindung ist somit die Zurverfügungstellung eines kompakten Satzes von Ausgabevariablen für sichere Übertragung der Daten zu der Ausgabevorrichtung.
  • Die Kombination kann eine Nachricht erzeugen, die eine Ausgabevariable aufweist, die mit dem Wert der komplementierten Ausgabevariable verkettet ist.
  • Eine weitere Aufgabe der Erfindung ist somit die Ermöglichung einer kombinierten Ausgabenachricht, die auch einer Verfälschung während der Übertragung widersteht.
  • KURZE BESCHREIBUNG DER FIGUREN
  • 1 ist eine vereinfachte perspektivische Ansicht eines für die Verwendung mit der vorliegenden Erfindung geeigneten dualen Steuerungssystems mit einer primären und Partnersteuerung, die auf einer Backplane kommunizieren, und einem Programmierendgerät, das auf einer eigenen Schnittstelle mit der primären Steuerung kommuniziert;
  • 2 ist eine elektrische Schaltbilddarstellung der primären und Partnersteuerung von 1;
  • 3 ist eine logische Darstellung der primären und sekundären Steuerungen von 2, wobei die Zuteilung von Sicherheitsaufgaben und Standardaufgaben gezeigt ist;
  • 4 ist eine Darstellung einer für die primären und Partnersteuerungen geeigneten Verarbeitungseinheit, wobei ein Prozessor mit einer Speicherschutzeinheit und einem verbundenen Speicher gezeigt ist;
  • 5 ist ein Flussdiagramm eines in der primären Steuerung ausgeführten Transferprogramms zum Empfangen von Programmierinstruktionen und Daten;
  • 6 ist ein Funktionsdiagramm eines von den primären und Partnersteuerungen von 3 verwendeten Betriebssystems wie etwa zur Bereitstellung einer Aufgabenliste zum Einteilen von Aufgaben für die Ausführung, wobei die Aufgabenliste angibt, ob die Aufgabe eine Sicherheits- oder Standardaufgabe ist;
  • 7 ist ein Flussdiagramm der Ausführung der Sicherheitsaufgabe auf den primären und Partnersteuerungen;
  • 8 ist ein Flussdiagramm ähnlich wie das in 7, das die Ausführung einer Standardaufgabe auf den primären und Partnersteuerungen zeigt;
  • 9 ist eine Darstellung zweier regelmäßig eingeteilter Aufgaben zum Überprüfen der Speicherverriegelung und zum Vergleichen von Variablen zwischen den primären und Partnersteuerungen;
  • 10 ist ein Datenflussdiagramm der Synchronisation von Eingabedaten gemäß einem Schritt von 7 unter Verwendung eines zweistufigen Puffers zur Sicherstellung von Gleichförmigkeit asynchroner Eingabewerte;
  • 11 ist eine vereinfachte Ansicht von 3, die die Auswirkung eines asymmetrischen Ladens von Standard- und Sicherheitsprogramminformationen bei der Verhinderung einer Verfälschung von Standardprogramminformationen durch das Sicherheitsprogramm zeigt; und
  • 12 ist eine Figur ähnlich wie die von 11, die die Auswirkung eines asymmetrischen Ladens von Standard- und Sicherheitsprogramminformationen beim Verhindern, dass das Standardprogramm undetektiert Sicherheitsprogramminformationen modifiziert, zeigt.
  • AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
  • Systeme mit „hoher Zuverlässigkeit" und „Sicherheit" sind diejenigen, die vor der Verbreitung fehlerhafter Daten oder Signale schützen, indem Fehler- oder Ausfallzustände detektiert werden und ihr Auftreten und/oder Eintreten in einen vorbestimmten Ausfallzustand signalisiert wird. Systeme mit hoher Zuverlässigkeit können von Systemen hoher Verfügbarkeit unterschieden werden, die versuchen, nach einem bestimmten Ausfallgrad betriebsfähig zu bleiben. Die vorliegende Erfindung kann jedoch in beiden Systemen nützlich sein, und im vorliegenden Gebrauch sollte deshalb hohe Zuverlässigkeit und Sicherheit nicht als Systeme mit hoher Verfügbarkeit, die Sicherheitsbetrieb zur Verfügung stellen, ausschließend betrachtet werden.
  • Mit Bezug auf 1 stellt ein duales Steuerungssicherheitssystem 10, das für die Verwendung mit der vorliegenden Erfindung geeignet ist, ein Chassis 12 zur Verfügung, in das eine Menge von Steuermodulen 14 gemäß den Bedürfnissen der konkreten Steueranwendung eingefügt werden kann. Jedes der Module 14 hält auf seiner (nicht gezeigten) Rückseite einen elektrischen Verbinder 24 bereit, der mit einem entsprechenden Verbinder 24' auf der Vorderseite einer eine Rückwand des Chassis 12 bildenden Backplane 26 verbunden werden kann. Die Verbinder 24' werden durch leitfähige Bahnen verbunden, so dass Module 14 frei in das Chassis 12 eingefügt werden können, um gemäß in der Technik bekannten Methoden auf der Backplane 26 miteinander verbunden zu werden.
  • Die Steuermodule 14 können in Allgemeinen eine Stromversorgung 16, ein Netzwerkmodul 20 und eines oder mehrere Module 22 für Eingabe/Ausgabe (E/A), eine primäre Steuerung 18a und eine Partnersteuerung 18b umfassen.
  • Die Stromversorgung 16 kann über Stromleiter der Backplane 26 eine Quelle von geregeltem Strom für die anderen Module 14 zur Verfügung stellen, während das Netzwerkmodul 20 eine Verbindung zwischen Kommunikationsleitern der Backplane 26 und einem schnellen seriellen Netzwerk 34, wie etwa einem Ethernet oder dergleichen, zur Verfügung stellt. Das Netzwerk 34, das mit einem (nicht gezeigten) abgesetzten Chassis 12' und anderen Modulen 14 kommunizieren kann, einschließlich E/A-Module 22 und andere Steuerungen 18. Die Backplane 26 und das Netzwerk 34 (und Schnittstellen daran) können beide ein Sicherheitsprotokoll unterstützen, wie zum Beispiel das in der oben erwähnten US-Patentanmeldung 60/373,592 ( US-A-2003 020 8283 ) beschriebene.
  • Die E/A-Module 22 können mit verschiedenen Sensoren und Stellgliedern 44a und 44b an einem gesteuerten Prozess 40 kommunizieren. Der gesteuerte Prozess 40 kann Standardprozesse 42 umfassen, wie zum Beispiel diejenigen der Steuerung von Fabrikanlagen oder dergleichen, und Sicherheitsprozesse 46, die eine Sicherheitsanwendung betreffen, wobei die Sensoren und Stellglieder 44a die mit den Standardprozessen 42 assoziierten und die Sensoren und Stellglieder 44b die mit den Sicherheitsprozessen 46 assoziierten sind. Wie später beschrieben werden wird, ermöglicht das duale Steuerungssicherheitssystem 10 die Ausführung sowohl von Sicherheitssteuer- als auch von Standardsteuerprogrammen, die sich einen Teil derselben Hardware teilen.
  • Die primäre Steuerung 18a und die Partnersteuerung 18b stellen jeweils mindestens einen unabhängigen Prozessor und Speicher zur Ausführung eines Steuerprogramms zur Verfügung. Unabhängig erfordert nicht, dass Prozessor und Speicher physisch getrennt sind, obwohl dies jedoch bevorzugt wird. Bei der bevorzugten Ausführungsform sind die primäre Steuerung 18a und die sekundäre Steuerung 18b in separaten Gehäusen enthalten, die jeweils unabhängig an die Backplane 26 anschließbar sind. In diesem Fall enthält die primäre Steuerung 18a gemäß in der Technik bekannten Konventionen einen Schlüsselschalter 28, der es ermöglicht, die primäre Steuerung 18a in einen „Lauf"- oder Programmier"-Modus oder andere Zustände zu versetzen, die wünschenswerterweise manuell gesteuert werden. Die primäre Steuerung 18a enthält außerdem einen seriellen Kommunikationsport 30, wie zum Beispiel einen RS-232-Port, der es ihr ermöglicht, direkt mit einem Programmierendgerät 32 zu kommunizieren. Das Programmierendgerät 32 kann Standard-Programmierwerkzeuge enthalten, die für die vorliegende Anwendung modifiziert werden, wie nachfolgend beschrieben werden wird.
  • Die sekundäre Steuerung enthält weder den Schlüsselschalter 28 noch den Kommunikationsport 30 und kann andere kostensparende Auslastungen aufweisen.
  • Als Alternative können die primäre Steuerung 18a und die Partnersteuerung 18b in einem Gehäuse untergebracht werden, solange die Unabhängigkeit der zu beschreibenden internen Verarbeitungseinheiten aufrechterhalten wird. Als Alternative können sich die primäre Steuerung 18a und die Partnersteuerung 18b in separaten Racks 12 befinden, die durch eine schnelle serielle Verbindung verbunden werden.
  • Nunmehr mit Bezug auf 2 kann die primäre Steuerung 18a eine Schnittstellenschaltung 50 enthalten, die über den Verbinder 24 mit der Backplane 26 kommuniziert, und eine Schnittstellenschaltung 52, die mit dem Port 30 kommuniziert, wobei beides durch einen internen Bus 54 mit einer Verarbeitungseinheit 56 verbunden wird. Beide der Schnittstellenschaltungen 50 oder 52 können zum Empfangen von Programmierinformationen aus dem in 1 gezeigten Programmierendgerät 32 verwendet werden, und die Schnittstellenschaltung 50 kann zur Kommunikation zwischen der primären Steuerung 18a und der Partnersteuerung 18b oder beliebigen der anderen Module verwendet werden, um Sicherheitsdaten, Sicherheitsprogramminformationen oder andere Signale zu übermitteln, wie beschrieben werden wird.
  • Der interne Bus 54 ist außerdem an den Schlüsselschalter 28 angeschlossen, so dass der Schlüsselschalter 28 (sowie jede der Schlüsselschaltungen 50 oder 52) durch die Verarbeitungseinheit 56 überwacht werden können.
  • Die Verarbeitungseinheit 56 enthält einen Prozessor 58 und einen Speicher 60, wobei der Prozessor 58 direkt mittels eines von dem internen Bus 54 mit dem Speicher 60 getrennten Speicherbusses 57 mit dem Speicher 60 kommuniziert. Es können auch Mehrfachprozessoren verwendet werden. Speicher kann eine Kombination von flüchtigem und nichtflüchtigem Speicher sein. In einem Mehrprozessorsystem kann jeder Prozessor eigenen Speicher sowie gemeinsam benutzte Speicher aufweisen. Der Speicher 60 hält Programme für ein Betriebssystem und für eine Anzahl von Steueraufgaben, die entweder als Sicherheitsaufgaben oder Standardaufgaben bezeichnet werden. Das Betriebssystem ermöglicht das Einteilen von Aufgaben dergestalt, dass jede Aufgabe in ihrer Gesamtheit ausgeführt wird, bevor die nächste Aufgabe aufgerufen wird. Es können jedoch auch andere herkömmliche Betriebssysteme verwendet werden. Der Speicher 60 hält außerdem E/A-Daten, die aus den E/A-Modulen 22 empfangen und dorthin gesendet werden. Zusätzlich enthält der Speicher 60 eine feste Identifikationsnummer 62, die angibt, dass er Teil einer primären Steuerung 18a und für die Ausführung von Standard- und Sicherheitsaufgaben und für die direkte Kommunikation mit einem Benutzer geeignet ist und im nichtflüchtigen Speicher gespeichert wird.
  • Die Partnersteuerung 18b ist der primären Steuerung 18a ähnlich, besitzt aber einen reduzierten Teilezählwert, wodurch die Schnittstellenschaltung 52 und der Schlüsselschalter 28 weggelassen werden, aber eine Schnittstellenschaltung 50, ein Prozessor 58 und ein Speicher 60, die alle denen der primären Steuerung 18a ähnlich sind, zur Verfügung gestellt werden. Eine wichtige Ausnahme besteht darin, dass die Partnersteuerung 18b in ihrem Speicher eine Identifikationsnummer 66 hält, die angibt, dass sie eine Partnersteuerung 18b ist, die alleine nicht betriebsfähig ist oder Standardaufgaben ausführt. Der Speicher 60 der Partnersteuerung 18b hält auch Programme für ein Betriebssystem und nur für eine Anzahl von Sicherheitssteueraufgaben. Zusammen stellen die von den Speichern 60 der primären Steuerung 18a und der Partnersteuerung 18b gehaltenen Programme eine Anzahl von Systemprogrammen zur Verfügung, darunter ein Transfer- und Synchronisationsprogramm, wie nachfolgend beschrieben werden wird. Wie in der Technik erkennbar sein wird, kann die Aufteilung der folgenden Programmfunktionen zwischen der primären Steuerung 18a und der Partnersteuerung 18b oder zwischen Aufgaben und dem Betriebssystem variiert werden, solange die beschriebenen Funktionen aufrechterhalten werden.
  • Ein typisches E/A-Modul 22 oder Netzwerkmodul 20 kann eine erste Schnittstellenschaltung 50, die über den internen Bus 54 mit der Verarbeitungseinheit 56 kommuniziert, und zweite Schnittstellenschaltkreise 61 zur Bereitstellung von E/A-Signalen oder Kommunikationssignalen enthalten, so wie sie beschrieben wurden.
  • Nunmehr mit Bezug auf 1 und 3 kann ein Benutzer das Programmierendgerät 32 betreiben, um eine Reihe von Programminstruktionen 70 einzugeben, die hier als Sprossen in einem Leiter-Logikprogramm eines in der Technik wohlbekannten Typs dargestellt sind. Die Instruktionen können miteinander zu einer Aufgabe 72 gruppiert werden, die einen Satz von Instruktionen darstellt, die logisch zusammen ausgeführt werden und die gemäß dem Betriebssystem, das Multitask-Einteilungsverfahren auf in der Technik im Allgemeinen wohlbekannte Weise implementiert, eingeteilt werden können. Jede der Instruktionen 70 enthält Variable 76, die Eingabe- und Ausgabewerte darstellen, die im Allgemeinen den Zuständen von Sensoren und Stellgliedern 44a und 44b oder internen Programmwerten entsprechen. Diese Variable 76 können Anfangswerte aufweisen, die mit der Aufgabe 72 aufgezeichnet werden.
  • Die Instruktionen können „Sicherheitsinstruktionen" enthalten, die für Sicherheitsanwendungen spezifisch sind, die nur innerhalb einer Sicherheitsaufgabe ausgeführt werden können.
  • Während der Erzeugung der Aufgabe 72 fordert ein Programmierwerkzeug auf dem Programmierendgerät 32 den Benutzer auf, jede der Variablen 76 als eine Sicherheitsvariable oder eine Standardvariable und die Aufgabe 72 entweder als Sicherheitsaufgabe oder als Standardaufgabe zu identifizieren. Dieser Status wird in eine die Aufgabe 72 haltende Datei 73 als mit der Aufgabe assoziierte Sicherheitskennung 78 und variable Scoping-Kennungen 80 in dem variablen Definitionsteil der Datei 73 eingebettet. Man beachte, dass die vorliegende Erfindung eine Kennzeichnung von Variablen 76 entweder in einer Sicherheitsaufgabe 72 oder einer Standardaufgabe 72 entweder als Standardvariable 76 oder als Sicherheitsvariable 76 ermöglicht. Ein Compilierungsprogramm mit Standardentwurf setzt diese Variablenisolation durch, so dass Standardaufgaben 72 die Sicherheitsvariable 76 lesen, aber nicht beschreiben können, und Sicherheitsaufgaben 72 die Standardvariable 76 weder lesen noch beschreiben können. Zusätzliche Hardware und Architekturunterstützung für dieses Scoping wird auch wie nachfolgend beschrieben werden wird, zur Verfügung gestellt.
  • Nunmehr mit Bezug auf 3 führt die primäre Steuerung 18a sowohl mit Standardprozessen 42 assoziierte Standardaufgaben 72a als auch mit Sicherheitsprozessen 46 assoziierte Sicherheitsaufgaben 72b unter Verwendung einer einzigen, im Zeitmultiplex arbeitenden Verarbeitungseinheit 56 aus.
  • In dieser Hinsicht hält die primäre Steuerung 18a sowohl Standarddaten 76a als auch Sicherheitsdaten 76b in demselben, dem Prozessor 58 zugänglichen physischen Speicher 60, aber in verschiedenen Regionen 84 des Speichers 60, in einer Region 84a, die für Standarddaten 76a reserviert ist, und in einer Region 84b, die für Sicherheitsdaten 76b reserviert ist, wie beschrieben werden wird. Um Hardware-Variablen-Scoping zur Verfügung zu stellen, können wie beschrieben werden wird, bestimmte der Standardvariablen 76a aus der Region 84a wie durch den Pfeil 77 angegeben auch in die für Sicherheitsvariable 76 zugeteilte Region 84b kopiert werden.
  • Die Partnersteuerung 18b enthält nur die Sicherheitsaufgaben 72b und die Sicherheitsdaten 76b in dem physischen Speicher 60, darunter die kopierten Werte der Standarddaten 76a, wie beschrieben wurde.
  • Nunmehr mit Bezug auf 4 umfasst der Prozessor 58 sowohl der primären Steuerung 18a als auch der Partnersteuerung 18b eine Speicherschutzeinheit (MPU) 81 eines in der Technik bekannten Typs. Die MPU (81) steuert den Zugriff durch den Prozessor 58 auf den Speicher 60 über den Speicherbus 57 durch Verwendung von in die Schaltkreise des Prozessors 58 integrierter Hardware. Im allgemeinen verwendet die MPU 81 eine Auflistung interner Register 82 in Region 84 der Einträge 85 des Speichers 60, die flexibel definiert werden können, und jede Region wird entweder als Lese/Schreib-Region (R/W) gekennzeichnet, wodurch angegeben wird, dass die Region von dem Prozessor 58 gelesen oder beschrieben werden kann, oder als Nurleseregion (R), wodurch gekennzeichnet wird, dass die Daten dieser Region von dem Prozessor 58 nur gelesen werden können, oder als unbenutzt, wie durch ein (X) angegeben, wodurch angegeben wird, dass dieser Speicher weder beschrieben noch gelesen werden darf. Ursprünglich wird der gesamte Speicher 60 wie durch das (X) angegeben als Bereich weder für Lesen noch Schreiben markiert. Der Zugriff auf den Speicher wird durch Hardware gesteuert, die physisch gemäß den Registereinstellungen ein Lesen oder Schreiben verhindert.
  • Nunmehr mit Bezug auf 5 und 1, wenn ein Steuerprogramm, das aus einer Anzahl von Aufgaben 72 besteht, abgeschlossen wird, kann es von dem Programmierendgerät 32 oder einer anderen Quelle aus mittels des Ports 30 oder des Netzwerks 34 nur in die primäre Steuerung 18a des dualen Steuerungssicherheitssystems 10 heruntergeladen werden. Das Programmierendgerät 32 identifiziert die primäre Steuerung 18a mittels der Identifikationsnummer 62, die in dem Speicher 60 der primären Steuerung 18a enthalten ist, und öffnet eine Verbindung mit dieser primären Steuerung 18a. Die primäre Steuerung 18a muss sich wie durch den Schlüsselschalter 28 oder aus dem Programmierendgerät 32 angegeben im Programmiermodus befinden.
  • Auch mit Bezug auf 6 wird zu diesem Zeitpunkt jede Aufgabe 72 in eine Aufgabenwarteschlange 86 geladen, die von dem Betriebssystem 73a der primären Steuerung 18a verwendet wird, um jede Aufgabe 72 unter Verwendung von in der Technik des Multitasking von Betriebssystemen wohlbekannten Einteilungstechniken für die Ausführung einzuteilen. Die Aufgabenwarteschlange 86 gibt an, dass die Aufgabe 72 eine Standardaufgabe oder eine Sicherheitsaufgabe ist. Ein Transferprogramm 90 in der primären Steuerung 18a identifiziert jede Aufgabe 72 als Sicherheitsaufgabe oder Standardaufgabe in dem Entscheidungsblock 92 auf der Basis der Sicherheitskennung 78.
  • Das Transferprogramm 90 in der primären Steuerung 18a empfängt dann jede Aufgabe 72 zum Herunterladen. Wenn die Aufgabe 72 eine Standardaufgabe ist, wird dann im Prozessblock 94 eine Region 84a des Speichers 60 in der primären Steuerung 18a gelöscht, und es wird im Prozessblock 96 die Aufgabe in dieser Region 84a geladen. Bei der vorliegenden Erfindung werden die Regionen 84a anfänglich in dem Register 82 für die MPU 81 als Lesen oder Schreiben gekennzeichnet.
  • Wieder mit Bezug auf 5 versucht die primäre Steuerung 18a am Prozessblock 98, wenn im Entscheidungsblock 92 die empfangene Aufgabe eine Sicherheitsaufgabe ist, zu bestätigen, dass es eine Partnersteuerung 18b gibt, indem eine Verbindung zwischen der primären Steuerung 18a und der Partnersteuerung 18b hergestellt wird, indem notwendige Verbindungen in der Backplane 26 oder in dem Netzwerk 34 (für Fernsteuerungen 18) geöffnet werden, wodurch bestätigt wird, dass die Partnersteuerung 18b arbeitet und über das notwendige Betriebssystem 73b verfügt und nicht anderweitig mit einer anderen primären Steuerung 18a verbunden ist. Der Bestätigungsprozess von Block 98 arbeitet mit einem entsprechenden Prozessblock 100 in der Partnersteuerung 18b.
  • Wenn Partnerschaft verifiziert wird, zeichnet jede Steuerung 18a und 18b diese Beziehung auf und die Partnersteuerung 18b tritt in einer der Aufgabe-Warteschlange 86 ähnlichen Aufgabenwarteschlange in die Sicherheitsaufgabe 72b ein. Im Gegensatz zu der Aufgabenwarteschlange 86 enthält die Aufgabenwarteschlange der Partnersteuerung 18b jedoch nur Sicherheitsaufgaben, und das Betriebssystem 73b teilt Sicherheitsaufgaben nur als Reaktion auf die von dem Betriebssystem 73a befolgte Einteilung ein. Für Echtzeitsteuerung wird in Allgemeinen jede Sicherheitsaufgabe 72b und Standardaufgabe 72a so eingeteilt, dass sie mit nicht weniger als einer vorbestimmten Periode wiederholt ausgeführt wird, um eine geeignete Ansprechzeit, die für Steueranwendungen notwendig ist, zur Verfügung zu stellen.
  • In den in der primären Steuerung 18a bzw. der Partnersteuerung 18b ausgeführten nachfolgenden Prozessblöcken 102 und 104 werden die Regionen 84b in den Speicher 60 jeweils in der primären Steuerung 18a und in der Partnersteuerung 18b für den Empfang der Sicherheitsaufgabe 72b gelöscht. Die Regionen 84b werden anfänglich in dem Register 82 für die MPU 81 der primären Steuerung 18a und der Partnersteuerung 18b als Nurlesen gekennzeichnet.
  • In dem in der primären Steuerung 18a bzw. der Partnersteuerung 18b ausgeführten Prozessblock 106 und 108 wird die Sicherheitsaufgabe 72b aus dem Programmierendgerät 32 in der primären Steuerung 18a angenommen und wie durch den Pfeil 110 angegeben zu der Partnersteuerung 18b weitergeleitet, um durch die Partnersteuerung 18b über den Prozessblock 108 angenommen zu werden, der mit einem Bestätigungssignal 112 antwortet, das angibt, dass die Aufgabe 72b ordnungsgemäß empfangen wurde und vollständig und korrekt ist. Im Allgemeinen wird die Sicherheitsaufgabe 72b in Teilen übertragen, und diese Prozessblöcke 106 und 108 werden wie durch die Nächstes-Schleife des Prozessblocks 114 für die primäre Steuerung 18a und 116 für die Partnersteuerung 18b angegeben wiederholt, bis alle Teile übertragen sind.
  • Nachdem die Sicherheitsaufgabe 72b vollständig in der primären Steuerung 18a empfangen und ohne Fehler zu der Partnersteuerung 18b übertragen wurde, ist das Transferprogramm wie durch den Prozessblock 118 angegeben fertig und wartet auf ein mögliches Laden einer zusätzlichen Aufgabe. Etwaige Fehler in diesen Blöcken führen dazu, dass dem Benutzer ein Fehlerzustand gemeldet wird, und es wird verhindert, dass das Sicherheitsprogramm ausgeführt wird.
  • Als Ergebnis des Transferprozesses sind die in die primäre Steuerung 18a und die sekundäre Steuerung 18b geladenen Aufgaben identisch, und wenn der Benutzer die Aufgaben heraufladen muss, kann dies deshalb ausschließlich mit Kommunikation mit der primären Steuerung 18a erreicht werden, so wie es bei einer herkömmlichen Steuerung geschieht. Eine ähnliche Prozedur wird für Programmteile verwendet, die inkrementelles Online-Editieren der Aufgaben beschreiben, das heißt der Benutzer kommuniziert mit der primären Steuerung 18a und die Editierinformationen werden durch die primäre Steuerung 18a zu der sekundären Steuerung 18b weitergeleitet.
  • Nunmehr mit Bezug auf 7 kann nach dem Abschluss des Ladens der notwendigen Standardaufgaben 72a und Sicherheitsaufgaben 72b das duale Steuerungssicherheitssystem 10 in einen „Run"-Modus versetzt werden, zum Beispiel durch Verwendung des in 1 gezeigten Schlüsselschalters 28, der diesen Zustand durch eine Nachricht über die Backplane 26, deren Übertragung durch den in der Primärsteuerung 18a ausgeführten Prozessblock 120 angezeigt und dessen Empfang durch den in der Partnersteuerung 18b ausgeführten Prozessblock 122 angegeben wird, zu der Partnersteuerung 18b übermittelt.
  • In einem durch das Betriebssystem 73a der primären Steuerung 18a ausgeführten ersten Prozessblock 124 teilt die primäre Steuerung 18a entweder eine Sicherheitsaufgabe 72b oder eine Standardaufgabe 72a für Ausführung ein. Im Allgemeinen befolgt das Betriebssystem 73b der Partnersteuerung 18b die Einteilung durch die primäre Steuerung 18a und muss weniger Funktionen als das Betriebssystem 73a zur Verfügung stellen.
  • Unter der Annahme, dass über den Aufgabenauswahlblock 124 eine Sicherheitsaufgabe 72b ausgewählt wird, beginnt das Betriebssystem 73a ein Synchronisationsprogramm 121 beginnend mit dem Weiterleiten einer Nachricht 172 zu dem Betriebssystem 73b der Partnersteuerung 18b, die angibt, dass das Ausführen einer Sicherheitsaufgabe 72b bevorsteht, so dass das Betriebssystem 73b diese Aufgabe 72b wie durch den Prozessblock 126 angegeben in seiner Aufgabenwarteschlange 86 finden kann.
  • Das Betriebssystem 73a und 73b fährt dann mit den nachfolgenden Prozessblöcken 128 bzw. 130 fort, in denen die Register 82 der MPUs 81 für die Speicherregion 84b, die die Aufgaben 72b und ihre Variable 76 hält, geprüft werden, um sicherzustellen, dass sich diese Regionen 84b korrekt im Nurlesemodus befinden. Wenn sich die Regionen 84b der Speicher 60 nicht im Nurlesemodus befinden, zeigt dies ein Problem mit der vorherigen Verriegelung des Speichers beim Abschluss einer Sicherheitsaufgabe an, und es wird ein Fehler erzeugt und die weitere Ausführung suspendiert, bis der Benutzer das Problem korrigiert.
  • Wenn die Verriegelungsprüfung der Prozessblöcke 128 und 130 anzeigt, dass die Regionen 84b verriegelt waren (z. B. im Nurlesestatus), werden die Regionen 84b entriegelt (z. B. in den Lese-/Schreibstatus überführt), und die Betriebssysteme 73a und 73b fahren mit den Prozessblöcken 132 bzw. 134 fort. Dieser Entriegelungsschritt könnte als Alternative von der Sicherheitsaufgabe selbst als ein erster Schritt ausgeführt werden, solange die Aufgabenausführung nicht durch das Betriebssystem unterbrochen wird.
  • In diesen Prozessblöcken werden die Eingaben für die Sicherheitsaufgaben 72b, die Eingabewerte der Sicherheitsvariablen 76 repräsentieren, jeweils für die primären Steuerungen 18a und die Partnersteuerung 18b synchronisiert.
  • Unter vorübergehender Bezugnahme auf 10 werden im Allgemeinen Eingabevariable 76b alleine durch die primäre Steuerung 18a asynchron durch die Schnittstellenschaltung 50 empfangen, um in dem als Teil des Speichers 60 gebildeten asynchronen Puffer 140 gehalten zu werden. Dieser Puffer 140 kann sich auf geordnete Weise gemäß einem asynchron mit der Aufgabeneinteilung durch das Betriebssystem 73a durchgeführten Scan auffüllen oder kann sich auf zufälliger Basis gemäß Änderungen der Eingabevariablen 76, die eine Übermittlung von Nachrichten zu der primären Steuerung 18a auslösen, auffüllen. Bei der vorliegenden Erfindung ist es notwendig, dass die Eingabevariable 76 als identische Kopien in den Speichern 60 der primären Steuerung 18a und der Partnersteuerung 18b existieren. Diese Synchronisation wird durch ein geordnetes Auslesen des Puffers 140 gleichzeitig in die sauberen Puffer 142 und 144 in den primären Steuerungen 18a bzw. der Partnersteuerung 18b während der Prozessblöcke 132 und 134 erreicht. In diesem Prozess fließen alle Eingabedaten von der primären Steuerung 18a zu der Partnersteuerung 18b, um so jede Möglichkeit zu eliminieren, dass sich verschiedene Eingabenvariable 76 in den Steuerungen 18a und 18b befinden würden, so wie es auftreten könnte, wenn die Eingabevariable 76 direkt jeweils zu der primären Steuerung 18a und der Partnersteuerung 18b getrennt übermittelt wurden.
  • Dieselbe Prozedur ermöglicht, zu „erzwingen", dass Eingaben zwischen der primären Steuerung 18a und der sekundären Steuerung 18b synchronisiert sind. Die primäre Steuerung 18a legt die erzwungenen Eingaben in den Puffer 140 mit einem Etikett, um zu verhindern, dass sie überschrieben werden, und die erzwungene Eingabe wird natürlich zu der sekundären Steuerung 18b übermittelt.
  • Wieder mit Bezug auf 7 führen die Betriebssysteme 73a und 73b nach dem Abschluss der Synchronisation von Eingaben, wie durch die Prozessblöcke 146 und 148 angegeben, die Sicherheitsaufgaben 72b ohne weitere Synchronisation unabhängig in der primären Steuerung 18a bzw. in der Partnersteuerung 18b aus. Dies gewährleistet eine extrem schnelle Ausführung der Sicherheitsaufgaben 72a ohne zu große Kommunikationsverzögerungen.
  • In den nachfolgenden Prozessblöcken 150 und 152 in der primären Steuerung 18a bzw. der Partnersteuerung 18b sendet die primäre Steuerung 18a ihre Ausgabevariable zu der Partnersteuerung 18b, und die Partnersteuerung 18b sendet ihre Ausgabevariable zu der primären Steuerung 18a in einem Quervergleichsprozess. Die primäre Steuerung 18a und die Partnersteuerung 18b vergleichen dann jeweils ihre eigenen Ausgabewerte mit den von der anderen Steuerung berechneten. Wenn ein Fehler vorliegt, wird in einen Sicherheitszustand eingetreten, andernfalls schreiten die primäre Steuerung 18a und die Partnersteuerung 18b jeweils zu den jeweiligen Prozessblöcken 154 und 156 voran, in denen sie einen kombinierten Ausgabewert erzeugen, der für die Übertragung über das Netzwerk 134 oder die Backplane 76 gemäß einem Hochzuverlässigkeitsprotokoll bestimmt ist. Wie in der Technik bekannt ist, ruft der Sicherheitszustand eine Menge von vordefinierten Ausgabewerten hervor und beendet den Betrieb des Steuerprozesses unter Benachrichtigung des Bedieners über einen Fehler.
  • Bei der vorliegenden Erfindung wird eine Reihe von kombinierten Datenwörtern erzeugt, die einen zweckmäßigen Block von durch die primäre Steuerung 18a berechneten Ausgabewerten und ein durch die Partnersteuerung 18b berechnetes Komplement derselben Ausgabewerte enthält.
  • Nach dem Abschluss der durch die Prozessblöcke 154 und 156 beschriebenen Erzeugung des Ausgabeworts ist die Sicherheitsaufgabe 72b abgeschlossen, und das Betriebssystem verriegelt die Region 84b des Speichers 60 wieder im Nurlesemodus, wie durch die Prozessblöcke 158 und 160 angegeben, und schreitet wie eingeteilt zu der nächsten Aufgabe voran. Als Alternative könnte die Verriegelung durch den Endschritt der Sicherheitsaufgabe selbst durchgeführt werden, solange die Aufgabenausführung nicht durch das Betriebssystem unterbrochen wird.
  • Wenn mit Bezug auf 6 und 8 im Prozessblock 124 von 7 der Aufgabenauswahlblock eine Standardaufgabe 72a auswählt, beginnt das Betriebssystem 73a einfach mit der Ausführung dieser Aufgabe auf der primären Steuerung 18a, indem wie durch den Prozessblock 162 angezeigt die Eingabevariable 76 gelesen werden. Die durch den Prozessblock 164 angegebene Ausführung der Standardaufgabe und die Übertragung von Ausgabewerten, wie durch Prozessblock 166 angegeben. Jeder dieser Schritte ist in der Technik wohlbekannt. Die Partnersteuerung 18b führt die Standardaufgabe nicht aus, sondern wartet auf eine weitere Sicherheitsaufgabe. Die Übertragung von Ausgaben muss wie beschrieben nicht dem Sicherheitsprotokoll genügen.
  • Wieder mit Bezug auf 9 kann nun das Betriebssystem 73a und 73b der primären Steuerung 18a und der Partnersteuerung 18b periodisch zwei zusätzliche Standardaufgaben ausführen, einmal alle paar Stunden. Diese durch den Prozessblock 170 angegebene erste Aufgabe ist eine Standardaufgabe, die versucht, Daten aus jeder durch die Aufgabenwarteschlange 86 identifizierten Sicherheitsaufgabe zu schreiben. Wenn das Schreiben erfolglos bleibt, indem zum Beispiel eine Ausnahme erzeugt wird, wird die Aufgabe erfolgreich abgeschlossen. Andernfalls kann, wenn das Schreiben erfolgreich ist, ein Sicherheitszustand aufgerufen und dem Benutzer ein Fehler gemeldet werden, weil die Speicherverriegelung nicht eingerichtet war.
  • Die zweite Aufgabe 172 liefert in periodischen Intervallen einen Vergleich der internen Sicherheitsvariablen 76b, die weder Eingaben noch Ausgaben der Standardprozesse 42 und 46 bilden, zwischen der primären Steuerung 18a und der Partnersteuerung 18b, um zu prüfen, dass sie tatsächlich identisch sind, auch wenn die Ausgabevariable möglicherweise keinerlei Abweichung zwischen der Ausführung der Sicherheitsaufgaben 72a zeigen. Die zu vergleichenden Variable werden gepuffert, während die Ausführung anderer Aufgaben gestoppt wird.
  • Nunmehr mit Bezug auf 11 wird das Software-Scoping von Variablen zwischen der Sicherheitsaufgabe 72b und den Standardaufgaben 72a durch die Architektur der vorliegenden Erfindung ergänzt. Wenn zum Beispiel die Sicherheitsaufgaben 72b in der primären Steuerung 18a und in der Partnersteuerung 18b versuchen, Speicherregionen 82a, die mit den Standardaufgaben 72a und Standardvariablen 76a assoziiert sind, zu lesen oder zu beschreiben, wird die Sicherheitsaufgabe 72b in der Partnersteuerung 18b nicht in der Lage sein, auf die Adresse zuzugreifen, die in der Partnersteuerung 18b nicht existieren wird. Dieser Misserfolg führt entweder zu einer Ausnahme, wenn ein fehlerhafter Wert gelesen wird, oder führt zu einer Diskrepanz zwischen den durch die Aufgaben 72b abgerufenen Werten, wodurch ein Fehler in ihren letztendlichen Ausgaben produziert wird. Wenn sich sowohl in der primären Steuerung 18a als auch in der Partnersteuerung 18b Standardaufgabeninformationen befänden, würde ein solcher Misserfolg symmetrisch operieren und könnte möglicherweise nicht detektiert werden.
  • Mit Bezug auf 12 wird umgekehrt, wenn eine Standardaufgabe 72a versucht, aus den Speicherregionen 82b, die Sicherheitsaufgaben 72b oder Sicherheitsvariable 76b halten, zu schreiben, dies durch die MPU blockiert, oder wenn sie erfolgreich schreibt, schreibt sie nur in die mit der primären Steuerung 18a assoziierte Region 82b und nicht in die mit der Partnersteuerung 18b assoziierte Region 82b. Wieder führt dieses asymmetrische Schreiben zu einer Änderung in nur einem der Programme 72b, die zu einem Unterschied in den im Block 150 und 152 von 7 verglichenen Ausgabevariablen führt.
  • Die vorliegende Erfindung kann Teil eines „Sicherheitssystems" sein, mit dem das menschliche Leben und Körperteile in der industriellen Umgebung geschützt werden. Der hier verwendete Begriff „Sicherheit" ist dessen ungeachtet keine Repräsentation, dass die vorliegende Erfindung einen industriellen Prozess sicher machen wird oder dass andere Systeme unsicheren Betrieb produzieren werden. Die Sicherheit in einem industriellen Prozess hängt von vielfältigen Faktoren außerhalb des Bereichs der vorliegenden Erfindung ab, darunter: Entwurf des Sicherheitssystems, Installation und Wartung der Komponenten des Sicherheitssystems und Mitwirkung und Training von Individuen, die das Sicherheitssystem verwenden. Obwohl die vorliegende Erfindung dafür bestimmt ist, hochzuverlässig zu sein, sind alle physischen Systeme gegenüber Ausfällen anfällig, und es müssen Vorkehrungen im Fall eines solchen Ausfalls getroffen werden.
  • Insbesondere ist beabsichtigt, dass die vorliegende Erfindung nicht auf die hier enthaltenen Ausführungsformen und Darstellungen beschränkt wird, sondern modifizierte Formen jener Ausführungsformen umfasst, die Teile der Ausführungsformen und Kombinationen von Elementen verschiedener Ausführungsformen enthalten, die in den Schutzumfang der vorliegenden Ansprüche fallen.
  • Kurz gefasst, führt eine Sicherheitssteuerung ein Steuerprogramm in zwei Verarbeitungseinheiten aus, um durch Vergleich der Ausführung in jeder Einheit einen Prozessorausfall zu erkennen. Dieser Vergleich erfolgt schnell durch Synchronisieren der Eingabevariablen am Anfang der Aufgabe und Vergleichen von Ausgabevariablen beim Abschluss der Aufgabe, wodurch ein zeilenweiser Vergleich von Eingabe- und Ausgabevariablen vermieden wird. Zwischenvariable, die weder Eingabe- noch Ausgabevariable sind, werden in einem weniger häufigen Intervall verglichen.
  • Schlüssel zu den Figuren
  • 1
    • 78 – SICHERHEITSAUFGABE 1
    • 101 – SICHER
    • 211 – STANDARD
    • 70 – INSTRUKTIONEN
  • 3
    • INPUT – EINGABE
    • INTERNAL – INTERN
    • OUTPUT – AUSGABE
  • 5
    • 92 – SICHERHEITSAUFGABE?
    • YES – JA
    • NO – NEIN
    • 94 – SPEICHER LÖSCHEN
    • 96 – AUFGABE ANNEHMEN
    • 98 – PARTNERSCHAFT ALS PRIMÄR BESTÄTIGEN
    • 100 – PARTNERSCHAFT ALS PARTNER BESTÄTIGEN
    • 102 – SPEICHER LÖSCHEN
    • 104 – SPEICHER LÖSCHEN
    • 106 – AUFGABE ANNEHMEN
    • 108 – AUFGABE ANNEHMEN
    • 114 – NÄCHSTES
    • 116 – NÄCHSTES
    • 118 – FERTIG
  • 6
    • 72b – SICHERHEIT
    • 72a – STANDARD
  • 7
    • 124 – AUFGABENAUSWAHL
    • 126 – VERGLEICH AUFGABE
    • 128 – VERRIEGELUNGSPRÜFUNG, SPEICHER ENTRIEGELN
    • 130 – VERRIEGELUNGSPRÜFUNG, SPEICHER ENTRIEGELN
    • 132 – EINGABEN SYNCHRONISIEREN
    • 134 – EINGABEN EMPFANGEN
    • 146 – SICHERHEITSAUFGABEN AUSFÜHREN
    • 148 – SICHERHEITSAUFGABEN AUSFÜHREN
    • 150 – QUERVERGLEICH DER AUSGABEN
    • 152 – QUERVERGLEICH DER AUSGABEN
    • 154 – KOMBINIERTE AUSGABE ERZEUGEN
    • 156 – KOMBINIERTE AUSGABE ERZEUGEN
    • 158 – SPEICHER VERRIEGELN
    • 160 – SPEICHER VERRIEGELN
  • 8
    • 162 – EINGABEN LESEN
    • 164 – STANDARDAUFGABEN AUSFÜHREN
    • 166 – AUSGABEN SENDEN
  • 9
    • 170 – SCHREIBEN IN VERRIEGELTEN SPEICHER
    • 172 – INTERNE VARIABLEN VERGLEICHEN

Claims (14)

  1. Verfahren zum Betreiben einer Sicherheitssteuerung mit einer ersten und einer zweiten Verarbeitungseinheit (18a, 18b), deren jede einen Prozessor (58) und einen Speicher (60) aufweist, wobei in den Speicher einer jeden der ersten und zweiten Verarbeitungseinheiten (18a, 18b) ein gemeinsames Sicherheitsprogramm sowie Eingabe-/Ausgabevariable geladen werden können, wobei das Sicherheitsprogramm wiederholt ausführbar ist, um Eingabevariable zu lesen, welche Eingaben von externen gesteuerten Vorrichtungen (40) darstellen, ferner um Zwischenvariable zu schreiben, die nicht an externe gesteuerte Vorrichtungen (40) ausgeben werden, und um Ausgabevariable zu schreiben, welche Ausgaben zu externen gesteuerten Vorrichtungen (40) darstellen, dadurch gekennzeichnet, dass das Verfahren die folgenden Schritte umfasst: – Ausführen des gemeinsamen Sicherheitsprogramms auf den ersten und zweiten Verarbeitungseinheiten (18a, 18b) und Vergleichen der Ausführung der gemeinsamen Sicherheitsprogramme und Eingeben eines Sicherheitsstatus, wenn diese Ausführung sich unterscheidet; – Synchronisieren der Eingabevariablen zu Beginn einer Aufgabe und Vergleichen der Ausgabevariablen beim Abschluss einer Aufgabe; – Vergleichen von Zwischenvariablen, welche weder Eingabevariable noch Ausgabevariable sind, in einem weniger häufigen Intervall; – Begrenzen des Vergleiches der Programmausführung nur auf die Ausgabevariablen und nur bei dem Abschluss von Mehrfachinstruktionen, um eine schnellere Ausführung des Sicherheitsprogramms zu erreichen; – Unterscheiden zwischen den Variablentypen und Ändern der Periodizität des Vergleichs unter Berücksichtigung der Wichtigkeit dieser Variablen und der Wahrscheinlichkeit, dass diese fundamentale Fehler reflektieren; und – Adaptieren eines Koordinatorprogramms, um jede der ersten und zweiten Verarbeitungseinheiten bei einem vorgegebenen Punkt in der wiederholten Ausführung des gemeinsamen Sicherheitsprogramms mit identischen Eingabevariablen zu versorgen.
  2. Verfahren nach Anspruch 1, umfassend den zusätzlichen Verfahrensschritt: Versorgen einer jeden der ersten und zweiten Verarbeitungseinheiten mit identischen Eingabevariablen bei einem vorgegeben Punkt in der wiederholten Ausführung der gemeinsamen Sicherheitsprogramme.
  3. Verfahren nach Anspruch 1, wobei die identischen Eingabevariablen nur bei einem einzigen Punkt in der wiederholten Ausführung der gemeinsamen Sicherheitsprogramme zur Verfügung gestellt werden.
  4. Verfahren nach Anspruch 1, wobei der vorgegebene Punkt in der wiederholten Ausführung des gemeinsamen Sicherheitsprogramms der Start der gemeinsamen Sicherheitsprogramme ist.
  5. Verfahren nach Anspruch 2, wobei Ausgabevariable durch die erste und zweite Verarbeitungseinheit (18a, 18b), welche das Sicherheitsprogramm ausführen, während der Ausführung des Sicherheitsprogramms generiert werden.
  6. Verfahren nach Anspruch 5, umfassend die zusätzlichen Verfahrensschritte: – wiederholtes Ausführen des Sicherheitsprogramms – Ausführen der gemeinsamen Sicherheitsprogramme durch die ersten und zweiten Verarbeitungseinheiten (18a, 18b) und Vergleichen der Ausführung der gemeinsamen Sicherheitsprogramme; und – wenn diese Ausführung sich unterscheidet, Eingeben eines Sicherheitsstatus bei dem Abschluss einer jeden wiederholten Ausführung unmittelbar vor dem Ausgeben der Ausgabevariablen an die externe gesteuerte Vorrichtung (40).
  7. Verfahren nach Anspruch 2, umfassend die zusätzlichen Verfahrensschritte: – das Sicherheitsprogramm erzeugt Werte von internen Variablen verschieden von den Eingabe- und Ausgabevariablen; – Ausführen der gemeinsamen Sicherheitsprogramme durch die ersten und zweiten Verarbeitungseinheiten (18a, 18b) und Vergleichen der Ausführung der gemeinsamen Sicherheitsprogramme; – Eingeben eines Sicherheitsstatus, wenn diese Ausführung sich unterscheidet; und – Vergleichen der Ausführung des Sicherheitsprogramms durch Vergleichen von Werten der internen Variablen, die durch die erste und zweite Verarbeitungseinheit, welche das Sicherheitsprogramm ausführen, generiert werden.
  8. Verfahren nach Anspruch 7, umfassend die zusätzlichen Verfahrensschritte: – wiederholtes Ausführen des Sicherheitsprogramms und – Vergleichen der Ausführung des Sicherheitsprogramms entsprechend einer Periode, die größer als die Wiederholungsperiode ist.
  9. Verfahren nach Anspruch 2, umfassend die zusätzlichen Verfahrensschritte: – Stoppen der Ausführung des gemeinsamen Sicherheitsprogramms bei dem vorgegebenen Punkt bei der wiederholten Ausführung des gemeinsamen Sicherheitsprogramms, bis die identischen Eingabevariablen den gemeinsamen Sicherheitsprogrammen zur Verfügung gestellt worden sind.
  10. Verfahren nach Anspruch 2, umfassend die zusätzlichen Verfahrensschritte: – Kopieren der Eingabevariablen von der ersten Verarbeitungseinheit in die zweite Verarbeitungseinheit (18a, 18b), um identische Eingabevariablen zur Verfügung zu stellen.
  11. Verfahren nach Anspruch 2, umfassend die zusätzlichen Verfahrensschritte: – asynchrones Aufnehmen von Eingabevariablen in einem Pufferspeicher der ersten Verarbeitungseinheit, und – Versorgen einer jeden der ersten und zweiten Verarbeitungseinheiten (18a, 18b) mit identischen Variablen bei einem vorgegebenen Punkt in der wiederholten Ausführung des gemeinsamen Sicherheitsprogramms durch Kopieren des Pufferspeichers in den Speicher einer jeden der Verarbeitungseinheiten.
  12. Verfahren nach Anspruch 1, umfassend die zusätzlichen Verfahrensschritte: – Kombinieren der Ausgabevariablen, wenn die Ausführung des gemeinsamen Sicherheitsprogramms sich nicht unterscheidet, um einen einzigen Satz von Ausgabevariablen zu erzeugen, welche zu der gesteuerten Vorrichtung (40) übertragbar sind.
  13. Verfahren nach Anspruch 12, wobei der Kombinationsvorgang eine Nachricht erzeugt, dass eine mit dem Wert der Ausgabevariablen verkettete Ausgabevariable komplementiert ist.
  14. Verfahren nach Anspruch 1, umfassend die zusätzlichen Verfahrensschritte: – Vergleichen der Ausgaben, die durch die erste und zweite, das Sicherheitsprogramm ausführende Verarbeitungseinheit (18a, 18b), erzeugt werden, beim Abschluss einer jeden wiederholten Ausführung unmittelbar vor der Ausgabe der Ausgabewerte an die externe gesteuerte Vorrichtung.
DE602004013244T 2003-09-16 2004-09-03 Hochgeschwindigkeitssynchronisation in einer doppelrechnerbasierten Sicherheitssteuerung Active DE602004013244T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/663,863 US7287184B2 (en) 2003-09-16 2003-09-16 High speed synchronization in dual-processor safety controller
US663863 2003-09-16

Publications (2)

Publication Number Publication Date
DE602004013244D1 DE602004013244D1 (de) 2008-06-05
DE602004013244T2 true DE602004013244T2 (de) 2009-05-14

Family

ID=34194732

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602004013244T Active DE602004013244T2 (de) 2003-09-16 2004-09-03 Hochgeschwindigkeitssynchronisation in einer doppelrechnerbasierten Sicherheitssteuerung

Country Status (3)

Country Link
US (1) US7287184B2 (de)
EP (1) EP1517199B1 (de)
DE (1) DE602004013244T2 (de)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10325263B4 (de) * 2003-06-03 2013-09-19 Phoenix Contact Gmbh & Co. Kg Sicherstellung von maximalen Reaktionszeiten in komplexen oder verteilten sicheren und/oder nicht sicheren Systemen
US7328370B2 (en) * 2003-09-12 2008-02-05 Rockwell Automation Technologies, Inc. Safety controller with simplified interface
JP3965699B2 (ja) * 2005-01-31 2007-08-29 横河電機株式会社 情報処理装置および情報処理方法
JP3978617B2 (ja) * 2005-04-19 2007-09-19 オムロン株式会社 安全ユニットの入力装置
US7617412B2 (en) 2006-10-25 2009-11-10 Rockwell Automation Technologies, Inc. Safety timer crosscheck diagnostic in a dual-CPU safety system
CN101377748B (zh) * 2007-08-29 2010-08-25 英业达股份有限公司 校验储存装置的读写功能的方法
US8285402B2 (en) * 2008-07-14 2012-10-09 Ge Intelligent Platforms, Inc. Method and system for safety monitored terminal block
JP2011128821A (ja) * 2009-12-17 2011-06-30 Yokogawa Electric Corp 二重化フィールド機器
US9459619B2 (en) * 2011-06-29 2016-10-04 Mega Fluid Systems, Inc. Continuous equipment operation in an automated control environment
DE102012101516A1 (de) * 2012-02-24 2013-08-29 Pilz Gmbh & Co. Kg Sicherheitsschaltvorrichtung mit Netzteil
EP2662773B1 (de) * 2012-05-10 2016-07-20 Airbus Defence and Space GmbH Redundantes Mehrprozessorsystem und zugehöriges Verfahren
US9459979B2 (en) * 2013-08-08 2016-10-04 International Business Machines Corporation Detection of hardware errors using redundant transactions for system test
JP5902778B1 (ja) * 2014-09-03 2016-04-13 ファナック株式会社 周辺機器を安全に制御する機能を有する工作機械
US9632492B2 (en) 2015-01-23 2017-04-25 Rockwell Automation Asia Pacific Business Ctr. Pte., Ltd. Redundant watchdog method and system utilizing safety partner controller
US10031502B2 (en) 2015-03-27 2018-07-24 Rockwell Automation Germany Gmbh & Co. Kg I/O expansion for safety controller
US10197985B2 (en) * 2015-10-29 2019-02-05 Rockwell Automation Germany Gmbh & Co. Kg Safety controller module
US10520928B2 (en) * 2017-05-15 2019-12-31 Rockwell Automation Technologies, Inc. Safety industrial controller providing diversity in single multicore processor
US10345801B2 (en) * 2017-08-21 2019-07-09 Honeywell International Inc. Ensuring a correct program sequence in a dual-processor architecture
EA034974B1 (ru) * 2017-10-24 2020-04-13 Акционерное общество "ТеконГруп" Способ обеспечения функциональной безопасности модуля центрального процессора промышленного контроллера и микропроцессорная система для осуществления данного способа (варианты)
EP3654121B1 (de) * 2018-11-14 2021-06-09 Siemens Aktiengesellschaft Redundantes automatisierungssystem mit mehreren prozessoreinheiten je hardwareeinheit
US11774127B2 (en) 2021-06-15 2023-10-03 Honeywell International Inc. Building system controller with multiple equipment failsafe modes

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE397013B (sv) * 1976-12-17 1977-10-10 Ellemtel Utvecklings Ab Sett och anordning for att overfora datainformationer till tva parallellt arbetande datamaskindelar
FR2476349A1 (fr) 1980-02-15 1981-08-21 Philips Ind Commerciale Systeme de traitement de donnees reparti
FR2512980B1 (de) * 1981-09-14 1983-12-23 Aero Etudes Conseils
IT1213344B (it) * 1986-09-17 1989-12-20 Honoywell Information Systems Architettura di calcolatore a tolleranza di guasto.
US5136704A (en) * 1989-06-28 1992-08-04 Motorola, Inc. Redundant microprocessor control system using locks and keys
US5008805A (en) 1989-08-03 1991-04-16 International Business Machines Corporation Real time, fail safe process control system and method
US5157780A (en) * 1990-06-12 1992-10-20 Advanced Micro Devices, Inc. Master-slave checking system
US5434997A (en) * 1992-10-02 1995-07-18 Compaq Computer Corp. Method and apparatus for testing and debugging a tightly coupled mirrored processing system
US5914953A (en) * 1992-12-17 1999-06-22 Tandem Computers, Inc. Network message routing using routing table information and supplemental enable information for deadlock prevention
US5404304A (en) * 1993-11-19 1995-04-04 Delco Electronics Corporation Vehicle control system for determining verified wheel speed signals
FR2721122B1 (fr) * 1994-06-14 1996-07-12 Commissariat Energie Atomique Unité de calcul à pluralité de calculateurs redondants.
US6357024B1 (en) * 1998-08-12 2002-03-12 Advanced Micro Devices, Inc. Electronic system and method for implementing functional redundancy checking by comparing signatures having relatively small numbers of signals
GB2340627B (en) * 1998-08-13 2000-10-04 Plessey Telecomm Data processing system
US6397350B1 (en) * 1999-02-19 2002-05-28 International Business Machines Corporation Method of providing direct data processing access using a queued direct input-output device
US6981176B2 (en) * 1999-05-10 2005-12-27 Delphi Technologies, Inc. Secured microcontroller architecture
US6473660B1 (en) * 1999-12-03 2002-10-29 The Foxboro Company Process control system and method with automatic fault avoidance
US6625749B1 (en) * 1999-12-21 2003-09-23 Intel Corporation Firmware mechanism for correcting soft errors
US6631476B1 (en) 1999-12-22 2003-10-07 Rockwell Automation Technologies, Inc. Safety network for industrial controller providing redundant connections on single media
US6909923B2 (en) 1999-12-22 2005-06-21 Rockwell Automation Technologies, Inc. Safety communication on a single backplane
US6550018B1 (en) * 2000-02-18 2003-04-15 The University Of Akron Hybrid multiple redundant computer system
US6820213B1 (en) * 2000-04-13 2004-11-16 Stratus Technologies Bermuda, Ltd. Fault-tolerant computer system with voter delay buffer
US6687851B1 (en) * 2000-04-13 2004-02-03 Stratus Technologies Bermuda Ltd. Method and system for upgrading fault-tolerant systems
JP4054509B2 (ja) * 2000-04-19 2008-02-27 株式会社東芝 フィールド機器制御システムおよびコンピュータが読取り可能な記憶媒体
DE10035174A1 (de) * 2000-05-18 2001-12-06 Siemens Ag Peripheriebaustein mit hoher Fehlersicherheit für speicherprogrammierbare Steuerungen
US7707319B2 (en) 2000-09-18 2010-04-27 Rockwell Automation Technologies, Inc. Noninvasive testing of network interface error codes for safety network
US6751749B2 (en) * 2001-02-22 2004-06-15 International Business Machines Corporation Method and apparatus for computer system reliability
US7065672B2 (en) * 2001-03-28 2006-06-20 Stratus Technologies Bermuda Ltd. Apparatus and methods for fault-tolerant computing using a switching fabric
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
US7107358B2 (en) 2001-09-12 2006-09-12 Rockwell Automation Technologies, Inc. Bridge for an industrial control system using data manipulation techniques
US6915444B2 (en) 2001-09-12 2005-07-05 Rockwell Automation Technologies, Inc. Network independent safety protocol for industrial controller using data manipulation techniques
US6938183B2 (en) * 2001-09-21 2005-08-30 The Boeing Company Fault tolerant processing architecture
US6549034B1 (en) * 2001-12-27 2003-04-15 Rockwell Automation Technologies, Inc. Programmable logic controller for safety systems with reduced cross-wiring
US7003691B2 (en) * 2002-06-28 2006-02-21 Hewlett-Packard Development Company, L.P. Method and apparatus for seeding differences in lock-stepped processors
US7027880B2 (en) * 2003-09-30 2006-04-11 Rockwell Automation Technologies, Inc. Safety controller providing rapid recovery of safety program data
JP4625620B2 (ja) * 2003-10-10 2011-02-02 株式会社日立製作所 フェイルセイフ制御装置

Also Published As

Publication number Publication date
EP1517199A1 (de) 2005-03-23
EP1517199B1 (de) 2008-04-23
US20050060605A1 (en) 2005-03-17
US7287184B2 (en) 2007-10-23
DE602004013244D1 (de) 2008-06-05

Similar Documents

Publication Publication Date Title
DE602004013244T2 (de) Hochgeschwindigkeitssynchronisation in einer doppelrechnerbasierten Sicherheitssteuerung
DE602004005642T2 (de) Sicherheitssteuerung zur Durchführung von Standard- und Sicherheitssteuerungsprogrammen
DE2735397C2 (de) Überwachungseinrichtung für eine programmgesteuerte Maschine
DE60302184T2 (de) Fehlertolerantes Computersystem, Verfahren zur Resynchronisierung desselben und zugehöriges Resynchronisierungs-Programm
DE19927635B4 (de) Sicherheitsbezogenes Automatisierungsbussystem
DE2265128C2 (de) Verfahren zum Steuern des Betriebs eines Fließbandes mit Hilfe eines Computers
DE69124899T2 (de) Verfahren zur Ende-zu-Endenachprüfung einer primären und sekondären Datenbank in einem Prozessregelsystem
DE602004007209T2 (de) Sicherheitssteuerung zur Bereitstellung einer schnellen Wiederherstellung von Sicherheitsprogrammdaten
WO1998044469A2 (de) Sicherheitsgerichtetes steuerungssystem sowie verfahren zum betreiben eines solchen
DE10316649A1 (de) Sicherheitskommunikation auf einer einzigen Rückebene
DE10255111A1 (de) System und Verfahren zum Laden von Firmware mit hoher Verfügbarkeit
DE69125778T2 (de) Verfahren zur Sicherung von in einer Primär- und Sekundärdatenbank gespeicherten Daten in einem Prozessregelsystem
DE3024370C2 (de) Redundantes Steuersystem
DE102017109886A1 (de) Steuerungssystem zum Steuern von sicherheitskritischen und nichtsicherheitskritischen Prozessen mit Master-Slave-Funktionalität
EP1238318A1 (de) Automatisierungsgerät und aufdat-verfahren
EP0782722B1 (de) Verfahren und vorrichtung zur steuerung und aktivierung von miteinander mittels eines bussystems vernetzten sensoren und/oder aktuatoren
DE4132100A1 (de) Programmierbares steuerwerk und verfahren zum steuern desselben
DE3225712C2 (de) Verfahren und Vorrichtung zur Funktionsprüfung von digitalen Rechnern
EP3798772A1 (de) Industrie-prozesssteuerung
EP2090948B1 (de) Verfahren zum Betrieb eines Automatisierungssystems
EP1359485A1 (de) Steuer- und Überwachungssystem
EP4012517B1 (de) Ausführungsumgebung zur ausführung eines ereignisorientierten steuerprogramms
DE10138066A1 (de) Teilnehmer für ein Netzwerk
EP0978039A1 (de) Aufdatverfahren
DE10017708B4 (de) Verfahren zum Steuern von Mechanismen und technischen Systemen, Einrichtung und Steuerungssoftware

Legal Events

Date Code Title Description
8364 No opposition during term of opposition