[go: up one dir, main page]

DE602004013244T2 - High-speed synchronization in a dual-computer-based safety controller - Google Patents

High-speed synchronization in a dual-computer-based safety controller 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.)
Expired - Lifetime
Application number
DE602004013244T
Other languages
German (de)
Other versions
DE602004013244D1 (en
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/en
Application granted granted Critical
Publication of DE602004013244T2 publication Critical patent/DE602004013244T2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 TECHNIKGENERAL PRIOR ART

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.The The present invention relates to industrial controls suitable for Real-time control of industrial processes are used, and in particular industrial controls with "high Reliability "or" safety "for use are suitable in devices that human life and the Protect health should.

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.industrial Controllers are special computers used in industrial control Processes are used. Under the guidance of a saved controlled program examines an industrial control one Set of inputs reflecting the state of the controlled process and changing one Series of issues controlling the industrial process. The inputs and expenses can be binary this means on or off, or analogue, creating a value in a substantially continuous Area is provided. The inputs can be controlled from the Process connected sensors are received, and the outputs can Signals for Be actuators on the controlled process.

„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."Security systems" are systems that the safety of in the environment of an industrial process ensure working people. Such systems can Electronics include those with emergency shutters, light curtains and others Machine shutdown is associated. Traditionally, security systems have been implemented by a lot of redundant circuits, that of the industrial control system are separated, with which the industrial Process is controlled, associated with the security system is. Such security systems were "hardwired" from switches and Relays, including specialized "safety relay" that makes a comparison redundant signals and internal testing of fault conditions, such as ensuring welded or stuck contacts.

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.Hardwired Security systems that use duplicated wiring have in practice due to the difficulty of installing and Connecting hardwired components and duplicated sets of wiring especially in complex control applications and partly due to the difficulty in problem solving and Maintenance in a hardwired system whose logic is only through Rewiring changed can be as cumbersome proved.

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.Out This reason is considerable Interest in the development of industrial controls has emerged implement the security systems using programs can, the hard-wired the functioning of the physical components Simulate security systems. Industrial controllers are not only easier to program, but can reduce installation costs to disposal put by big ones Sections of redundant wiring in favor of a fast serial Communication network, and by improving Troubleshooting skills to disposal be put.

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.Height reliability let yourself in an industrial control system by using two achieve industrial controls that simultaneously control the same execute and compare their operations to detect errors. A procedure to compare the execution between two processors stops the execution of Statements of the program at the end of each statement, with the input variables used by the instruction in each processor and comparing the calculated output variables. Each processor transmits then compare these values to each other and then compare their own values with the transmitted to him. The processor is running then with the next Instruction continues, and this process is repeated.

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.One Disadvantage of this approach is that it reduces the execution speed the program significantly reduced and thus safety programs limited to relatively simple operations, or those that no fast response times or multitasking with other programs require.

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.Out US 2003/05 1203 A1 a safety controller having a first and a second communicating on a communication bus processing unit is known, each containing a processor and a memory, wherein the memory of the first and second processing units are each loadable with a common safety program and input / output variables, wherein the safety program repeats executable to read inputs from input variables representing the externally controlled devices and to write outputs to output variables representative of the externally controlled devices; a coordinator program providing the first and second processing units with identical input variables at a predetermined point in the repetitive execution of the common safety programs; a synchronization program executable by the first and second processing units for executing the common security programs and for comparing the execution of the common security programs and for entering a security state when this embodiment is under separates. This known security control simply uses a cross comparison of the transmission of data on a communication link. That is, if no messages are delivered, which could occur during the execution of a program, nothing is checked at all.

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. US-A-4,430,899 discloses a distributed data processing system, that is, a processing system in which various parts of the data processing task are undertaken by different components. Redundancy is discussed in this document only in the context of message transmission.

KURZFASSUNG DER ERFINDUNGSUMMARY OF THE INVENTION

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.The The present invention becomes significant with redundant processing faster execution of security programs available by comparing the program execution only on output variable and only on the completion of multiple instructions limited becomes.

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.Intermediate variable, the no issues available but can be determined by the safety program, can be less often be compared. The comparison of input variables can be avoided by simply changing the input variable from a common Control copied. In this way, the execution speed of the redundant Programs significantly enlarged.

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.More accurate said, the present invention thus provides a safety control with a first and a second processing unit available, the communicate on a communication bus, each processing unit a processor and a memory, wherein the memory of the first and second processing units with a common Safety program and input / output variables can be loaded, wherein the safety program is repeatedly executed to input variables that read inputs from externally controlled devices, and to write output variables that are outsourced to external output Represent devices. A coordinator program provides each the first and second processing units at a predetermined point in the repeated execution of the common safety program with identical input variables. A synchronization program executed by the first and second processing units does that common safety program and compares the execution of the common security programs and enters a security state one, if this execution different.

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.A The object of the invention is thus, the execution speed redundant Programs that are compared to each other can be significantly increased by: the comparison of input variables eliminates and simply all input variables to be copied to each processing unit.

Der Vergleich kann an nur einem einzigen Punkt in der wiederholten Ausführung des gemeinsamen Sicherheitsprogramms erfolgen, zum Beispiel am Ende des gemeinsamen Sicherheitsprogramms.Of the Comparison can be made at a single point in the repeated execution of the common safety program, for example at the end of the common safety program.

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.Consequently It is another object of the invention to provide speed enhancements to disposal by eliminating the inefficiency that comes with a line by line comparison of the execution of the Program.

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.The Synchronization program can be the execution of the safety program by comparing by the first and second processing units, who execute the safety program, compare output costs.

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.A Another object of the invention is thus the improvement of the execution speed redundant engineered Security programs by limiting the comparison of expenses to a single point.

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.The Safety program is also executed to set values of internal variables that are not directly output to an external device, and the synchronization program can be the execution of the safety program by comparing values of these internal variables.

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.A Another object of the invention is thus a method for determining potential differences in the execution of these programs, the possibly not reflected in the output variables available to put.

Der Vergleich der internen Variablen kann mit einer Periode ausgeführt werden, die größer als die Wiederholungsperiode ist.Of the Comparison of internal variables can be done with a period the bigger than that Repetition period is.

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.A Another object of the invention is thus the distinction between Variable types and changing the periodicity of the comparison, the importance of these variables and the probability that they reflect fundamental errors, to correspond.

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.The coordination program may stop the execution of the common safety program at the predetermined point in the repetitive execution of the common safety program until the common safety program identical input variables were supplied.

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.A Another object of the invention is therefore synchronization the execution ensure the programs at periodic points and further at points where the program must be stopped, such as Example for the synchronization of the input variables. The coordination of Input variables can be enabled be by the input variable from the first processing unit copied to the second processing unit.

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.Of the first processor may contain a buffer that is asynchronous Input variable receives, and the coordination program may store the buffer at the predetermined Point identical to the input values of the other processing units copy.

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.A Another object of the invention is therefore to allow that input variables continue to accumulate asynchronously while the Input variables among the processors are coordinated.

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.The Synchronization can combine the output variable when the execution of the common safety program is not different to one single set of output variables transferable to the controller to produce.

Eine weitere Aufgabe der Erfindung ist somit die Zurverfügungstellung eines kompakten Satzes von Ausgabevariablen für sichere Übertragung der Daten zu der Ausgabevorrichtung.A Another object of the invention is thus the provision a compact set of output variables for secure transfer of data to the Output device.

Die Kombination kann eine Nachricht erzeugen, die eine Ausgabevariable aufweist, die mit dem Wert der komplementierten Ausgabevariable verkettet ist.The Combination can generate a message that has an output variable that matches the value of the complemented output variable is chained.

Eine weitere Aufgabe der Erfindung ist somit die Ermöglichung einer kombinierten Ausgabenachricht, die auch einer Verfälschung während der Übertragung widersteht.A Another object of the invention is thus to enable a combined Output message that also resists falsification during transmission.

KURZE BESCHREIBUNG DER FIGURENBRIEF DESCRIPTION OF THE FIGURES

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; 1 Figure 4 is a simplified perspective view of a dual control system suitable for use with the present invention having primary and partner controllers communicating on a backplane and a programmer communicating on a dedicated interface with the primary controller;

2 ist eine elektrische Schaltbilddarstellung der primären und Partnersteuerung von 1; 2 is an electrical schematic diagram of the primary and partner control of 1 ;

3 ist eine logische Darstellung der primären und sekundären Steuerungen von 2, wobei die Zuteilung von Sicherheitsaufgaben und Standardaufgaben gezeigt ist; 3 is a logical representation of the primary and secondary controllers of 2 showing the allocation of security tasks and standard tasks;

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; 4 Figure 12 is an illustration of a processing unit suitable for the primary and partner controllers, showing a processor with a memory protection unit and associated memory;

5 ist ein Flussdiagramm eines in der primären Steuerung ausgeführten Transferprogramms zum Empfangen von Programmierinstruktionen und Daten; 5 Fig. 10 is a flowchart of a transfer program executed in the primary controller for receiving programming instructions and data;

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; 6 is a functional diagram of one of the primary and partner controllers of 3 operating system used, such as providing a task list for scheduling tasks, the task list indicating whether the task is a security or standard task;

7 ist ein Flussdiagramm der Ausführung der Sicherheitsaufgabe auf den primären und Partnersteuerungen; 7 Figure 11 is a flow chart of the execution of the security task on the primary and partner controllers;

8 ist ein Flussdiagramm ähnlich wie das in 7, das die Ausführung einer Standardaufgabe auf den primären und Partnersteuerungen zeigt; 8th is a flow chart similar to the one in 7 showing the execution of a standard task on the primary and partner controls;

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; 9 is a representation of two regularly scheduled tasks for checking memory latches and comparing variables between the primary and partner controllers;

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; 10 is a data flow diagram of the synchronization of input data according to a step of 7 using a two-stage buffer to ensure uniformity of asynchronous input values;

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 11 is a simplified view of 3 demonstrating the effect of asymmetric loading of standard and safety program information in preventing falsification of standard program information by the safety program; and

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. 12 is a figure similar to that of 11 , which shows the effect of asymmetrically loading standard and safety program information while preventing the standard program undetectively modifying safety program information.

AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMDETAILED DESCRIPTION OF THE PREFERRED Embodiment

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.systems with high Reliability "and" security "are the ones protect against the spread of erroneous data or signals by: Error or failure states be detected and their occurrence and / or entering a predetermined failure state is signaled. Systems with high reliability can high availability systems who are trying to find a specific degree of failure operational to stay. However, the present invention can be used in both systems useful Therefore, in the present use, it should be high in reliability and security not as high availability systems, the security operation to disposal make, excluding to be viewed as.

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.Regarding 1 provides a dual control security system 10 , which is suitable for use with the present invention, a chassis 12 available, in which a lot of control modules 14 according to the needs of the specific tax application. Each of the modules 14 holds an electrical connector on its back side (not shown) 24 ready with an appropriate connector 24 ' on the front of a rear wall of the chassis 12 forming backplane 26 can be connected. The connectors 24 ' are connected by conductive tracks, so that modules 14 free in the chassis 12 can be inserted to the backplane according to methods known in the art 26 to be connected to each other.

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.The control modules 14 can generally be a power supply 16 , a network module 20 and one or more modules 22 for input / output (I / O), a primary controller 18a and a partner control 18b include.

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.The power supply 16 can be via power conductors of the backplane 26 a source of regulated power for the other modules 14 make available while the network module 20 a connection between communication conductors of the backplane 26 and a fast serial network 34 , such as an Ethernet or the like. The network 34 with a remote chassis (not shown) 12 ' and other modules 14 can communicate, including I / O modules 22 and other controls 18 , The backplane 26 and the network 34 (and interfaces to) both can support a security protocol, such as that described in the above-referenced U.S. Patent Application 60 / 373,592 ( US-A-2003 020 8283 ).

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.The I / O modules 22 can with different sensors and actuators 44a and 44b at a controlled process 40 communicate. The controlled process 40 can be standard processes 42 include, such as those of the control of factories or the like, and security processes 46 which relate to a safety application, the sensors and actuators 44a the ones with the standard processes 42 associated and the sensors and actuators 44b the ones with the security processes 46 are associated. As will be described later, the dual control safety system allows 10 the execution of both safety control and standard control programs that share some of the same hardware.

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.The primary controller 18a and the partner control 18b each provide at least one independent processor and memory for executing a control program. Independent does not require that the processor and memory are physically separate, although this is preferred. In the preferred embodiment, the primary controls are 18a and the secondary controller 18b contained in separate enclosures, each independent of the backplane 26 can be connected. In this case contains the primary controller 18a according to conventions known in the art a key switch 28 that enables it, the primary controller 18a in a "run" or "program" mode or other states that are desirably manually controlled. The primary controller 18a also includes a serial communication port 30 such as an RS-232 port that allows it to connect directly to a programming terminal 32 to communicate. The programming terminal 32 may include standard programming tools modified for the present application, as will be described below.

Die sekundäre Steuerung enthält weder den Schlüsselschalter 28 noch den Kommunikationsport 30 und kann andere kostensparende Auslastungen aufweisen.The secondary controller does not contain the key switch 28 still the communication port 30 and may have other cost-saving workloads.

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.As an alternative, the primary controller 18a and the partner control 18b be housed in a housing, as long as the independence of the internal processing units to be described is maintained. As an alternative, the primary controller may be 18a and the partner control 18b in separate racks 12 which are connected by a fast serial connection.

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.Now referring to 2 can be the primary controller 18a an interface circuit 50 included over the connector 24 with the backplane 26 communicates, and an interface scarf tung 52 that with the port 30 communicates, both through an internal bus 54 with a processing unit 56 is connected. Both of the interface circuits 50 or 52 can be used to receive programming information from the in 1 shown programming terminal 32 can be used, and the interface circuit 50 can be used for communication between the primary controller 18a and the partner control 18b or any of the other modules used to convey safety data, safety program information, or other signals, as will be described.

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.The internal bus 54 is also on the key switch 28 connected, so the key switch 28 (as well as each of the key circuits 50 or 52 ) by the processing unit 56 can be monitored.

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.The processing unit 56 contains a processor 58 and a memory 60 , where the processor 58 directly by means of one of the internal bus 54 with the memory 60 separate memory bus 57 with the memory 60 communicated. Multiple processors can also be used. Memory can be a combination of volatile and non-volatile memory. In a multiprocessor system, each processor may have its own memory as well as shared memory. The memory 60 holds programs for an operating system and for a number of control tasks, called either security tasks or standard tasks. The operating system allows tasks to be scheduled such that each task is executed in its entirety before the next task is called. However, other conventional operating systems may be used. The memory 60 also holds I / O data from the I / O modules 22 be received and sent there. In addition, the memory contains 60 a fixed identification number 62 indicating that he is part of a primary controller 18a and is suitable for performing standard and security tasks and communicating directly with a user and stored in nonvolatile memory.

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.The partner control 18b is the primary controller 18a similar, but has a reduced part count, which makes the interface circuit 52 and the key switch 28 be omitted, but an interface circuit 50 , a processor 58 and a memory 60 all of which are the primary controller 18a are similar, to be provided. An important exception is that the partner control 18b in their memory an identification number 66 who states that she is a partner controller 18b is alone inoperable or performing standard tasks. The memory 60 the partner control 18b also holds programs for an operating system and only for a number of security control tasks. Collectively put those from the stores 60 the primary controller 18a and the partner control 18b A number of system programs are kept available to programs, including a transfer and synchronization program, as will be described below. As will be appreciated in the art, the division of the following program functions may be between the primary controller 18a and the partner control 18b or between tasks and the operating system as long as the functions described are maintained.

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.A typical I / O module 22 or network module 20 can be a first interface circuit 50 via the internal bus 54 with the processing unit 56 communicates, and second interface circuits 61 to provide I / O signals or communication signals as described.

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.Now referring to 1 and 3 a user can use the programming terminal 32 operate to a set of program instructions 70 entered here as rungs in a ladder logic program of a type well known in the art. The instructions can become a task together 72 can be grouped, which is a set of instructions that are logically executed together and that can be classified according to the operating system implementing multitask scheduling in a manner well known in the art generally. Each of the instructions 70 contains variable 76 , which represent input and output values, generally the states of sensors and actuators 44a and 44b or internal program values. This variable 76 can have initial values that match the task 72 to be recorded.

Die Instruktionen können „Sicherheitsinstruktionen" enthalten, die für Sicherheitsanwendungen spezifisch sind, die nur innerhalb einer Sicherheitsaufgabe ausgeführt werden können.The Instructions may contain "security instructions" for security applications are specific that are executed only within a security task can.

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.During the generation of the task 72 calls a programming tool on the programmer 32 the user on, each of the variables 76 as a security variable or a standard variable and the task 72 to identify either as a security task or as a standard task. This status becomes a task 72 holding file 73 as a security identifier associated with the task 78 and variable scoping identifiers 80 in the variable definition part of the file 73 embedded. Note that the present invention is a tagging of variables 76 entwe the one in a security task 72 or a standard task 72 either as a standard variable 76 or as a security variable 76 allows. A standard-draft compiler implements this variable isolation, allowing standard tasks 72 the security variable 76 read, but can not describe, and security tasks 72 the default variable 76 can neither read nor describe. Additional hardware and architecture support for this scoping will also be provided as will be described below.

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.Now referring to 3 performs the primary control 18a both with standard processes 42 associated standard tasks 72a as well as with security processes 46 associated security tasks 72b using a single, time-division processing unit 56 out.

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.In this regard, the primary control holds 18a both standard data 76a as well as safety data 76b in the same, the processor 58 accessible physical memory 60 but in different regions 84 of the memory 60 in a region 84a for standard data 76a is reserved, and in a region 84b for safety data 76b is reserved, as will be described. As will be described, in order to provide hardware variable scoping, certain of the standard variables 76a from the region 84a as by the arrow 77 also indicated in the for security variable 76 allocated region 84b be copied.

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.The partner control 18b contains only the security tasks 72b and the safety data 76b in the physical memory 60 including the copied values of the standard data 76a as described.

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.Now referring to 4 includes the processor 58 both the primary controller 18a as well as the partner control 18b a memory protection unit (MPU) 81 of a type known in the art. The MPU ( 81 ) controls access by the processor 58 on the memory 60 over the memory bus 57 by using in the circuits of the processor 58 integrated hardware. In general, the MPU uses 81 a list of internal registers 82 in region 84 of the entries 85 of the memory 60 , which can be flexibly defined, and each region is identified either as a read / write region (R / W), indicating that the region is from the processor 58 read or write, or as a read-only region (R), indicating that the data of that region is from the processor 58 can only be read, or as unused, as indicated by an (X), indicating that this memory must neither be written nor read. Originally, the entire store 60 as indicated by the (X) area marked neither read nor write. Access to the memory is controlled by hardware that physically prevents read or write according to the register settings.

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.Now referring to 5 and 1 when a control program that consists of a number of tasks 72 It can be completed by the programming terminal 32 or another source using the port 30 or the network 34 only in the primary controller 18a of the dual control safety system 10 be downloaded. The programming terminal 32 identifies the primary controller 18a by means of the identification number 62 that in the store 60 the primary controller 18a is included and opens a connection with this primary controller 18a , The primary controller 18a must be like the key switch 28 or from the programming terminal 32 specified in programming mode.

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.Also with respect to 6 will be any task at this time 72 into a task queue 86 loaded by the operating system 73a the primary controller 18a is used to any task 72 classify using execution techniques well known in the art of operating system multitasking. The task queue 86 indicates that the task 72 is a standard task or a safety task. A transfer program 90 in the primary control 18a identifies each task 72 as a security task or standard task in the decision block 92 based on the security identifier 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.The transfer program 90 in the primary control 18a then receives each task 72 to download. If the task 72 a standard task is then in the process block 94 a region 84a of the memory 60 in the primary control 18a deleted, and it gets in the process block 96 the task in this region 84a loaded. In the present invention, the regions 84a initially in the registry 82 for the MPU 81 marked as read or write.

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.Again with respect to 5 tries the primary controller 18a at the process block 98 if in the decision block 92 the task received is a security task, to confirm that it is a partner control 18b There is a connection between the primary controller 18a and the partner control 18b is made by making necessary connections in the backplane 26 or in the network 34 (for remote controls 18 ), which confirms that the partners control 18b works and has the necessary operating system 73b and not otherwise with a different primary controller 18a connected is. The confirmation process of block 98 works with a corresponding process block 100 in the partner control 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.When partnership is verified, every control draws 18a and 18b this relationship and the partner control 18b occurs in one of the task queues 86 similar task queue in the security task 72b one. Unlike the task queue 86 Contains the task queue of the partner control 18b however, only security tasks, and the operating system 73b shares security tasks only in response to those of the operating system 73a followed schedule. For real-time control, in general, every security task 72b and standard task 72a is divided so as to be repeatedly executed with not less than a predetermined period to provide an appropriate response time necessary for control applications.

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 the in the primary control 18a or partner control 18b executed subsequent process blocks 102 and 104 become the regions 84b in the store 60 each in the primary controller 18a and in partner control 18b for receiving the security task 72b deleted. The regions 84b are initially in the registry 82 for the MPU 81 the primary controller 18a and the partner control 18b marked as read only.

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.In that in the primary controller 18a or partner control 18b executed process block 106 and 108 becomes the safety task 72b from the programming terminal 32 in the primary control 18a accepted and as by the arrow 110 indicated to the partner control 18b forwarded to the partner control 18b over the process block 108 to be accepted, with an acknowledgment signal 112 answers that indicates the task 72b was received correctly and is complete and correct. In general, the safety task becomes 72b transferred in parts, and these process blocks 106 and 108 as through the next loop of the process block 114 for the primary controller 18a and 116 for partner control 18b indicated repeatedly until all parts have been transferred.

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.After the security task 72b completely in the primary controller 18a received and without error to the partner control 18b has been transferred, the transfer program is as through the process block 118 indicated ready and waiting for a possible loading of an additional task. Any errors in these blocks will cause the user to report an error condition and prevent the safety program from running.

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.As a result of the transfer process, those are in the primary control 18a and the secondary controller 18b Therefore, if the user has to upload the tasks, this can only be done by communicating with the primary controller 18a be achieved as it happens in a conventional control. A similar procedure is used for program parts that describe incremental online editing of tasks, that is, the user communicates with the primary controller 18a and the editing information is provided by the primary controller 18a to the secondary controller 18b forwarded.

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.Now referring to 7 can after the completion of loading the necessary standard tasks 72a and security tasks 72b the dual control security system 10 into a "Run" mode, for example by using the in 1 shown key switch 28 who received this condition through a message on the backplane 26 whose transmission by the in the primary control 18a executed process block 120 displayed and its receipt by the in the partner control 18b executed process block 122 is specified to the partner control 18b transmitted.

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.In one by the operating system 73a the primary controller 18a executed first process block 124 shares the primary control 18a either a security task 72b or a standard task 72a for execution. In general, the operating system follows 73b the partner control 18b the classification by the primary controller 18a and has less features than the operating system 73a provide.

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.Assuming that via the task selection block 124 a security task 72b is selected, the operating system starts 73a a synchronization program 121 starting with the forwarding of a message 172 to the operating system 73b the partner control 18b indicating that performing a security task 72b imminent, so the operating system 73b This task 72b like through the process block 126 specified in its task queue 86 Can be found.

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.The operating system 73a and 73b then moves to the following process blocks 128 respectively. 130 in which the registers 82 the MPUs 81 for the storage region 84b that the tasks 72b and her variable 76 keeps being checked, to make sure that these regions 84b correctly in read-only mode. If the regions 84b the memory 60 not in read-only mode, this indicates a problem with the previous lock of the memory upon completion of a security task, and an error is generated and further execution is suspended until the user corrects the problem.

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.If the lock check of the process blocks 128 and 130 indicates that the regions 84b locked (eg in read only status), the regions become 84b unlocked (eg transferred to read / write status), and the operating systems 73a and 73b drive with the process blocks 132 respectively. 134 continued. This unlocking step could alternatively be performed by the security task itself as a first step, as long as the task execution is not interrupted by the operating system.

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.In these process blocks, the inputs for the safety tasks 72b , the input values of the security variables 76 represent, respectively for the primary controls 18a and the partner control 18b synchronized.

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.With temporary reference to 10 generally become input variables 76b solely through the primary controller 18a asynchronous through the interface circuit 50 received to that as part of the memory 60 formed asynchronous buffer 140 to be held. This buffer 140 may be ordered in an orderly manner asynchronously with the tasking by the operating system 73a or replicate on a random basis according to changes in the input variables 76 That involves a transmission of messages to the primary controller 18a trigger, fill up. In the present invention, it is necessary that the input variable 76 as identical copies in the stores 60 the primary controller 18a and the partner control 18b exist. This synchronization is achieved by an orderly read out of the buffer 140 at the same time in the clean buffers 142 and 144 in the primary controls 18a or partner control 18b during the process blocks 132 and 134 reached. In this process, all input data flows from the primary controller 18a to the partner control 18b so as to eliminate any possibility of having different input variables 76 in the controls 18a and 18b would be as it might occur if the input variable 76 directly to the primary controller 18a and the partner control 18b were transmitted separately.

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.The same procedure allows to "force" inputs between the primary controller 18a and the secondary controller 18b are synchronized. The primary controller 18a puts the forced entries in the buffer 140 with a label to prevent them from being overwritten, and the forced entry naturally becomes the secondary controller 18b transmitted.

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.Again with respect to 7 run the operating systems 73a and 73b after the completion of the synchronization of inputs, as by the process blocks 146 and 148 specified the security tasks 72b without further synchronization independent in the primary control 18a or in the partner control 18b out. This ensures an extremely fast execution of the security tasks 72a without too much communication delays.

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.In the following process blocks 150 and 152 in the primary control 18a or partner control 18b sends the primary controller 18a their output variable to the partner controller 18b , and the partner control 18b sends its output variable to the primary controller 18a in a cross-comparison process. The primary controller 18a and the partner control 18b then compare their own output values with those calculated by the other controller. If there is an error, a safety state is entered, otherwise the primary control will step 18a and the partner control 18b in each case to the respective process blocks 154 and 156 in which they produce a combined output value suitable for transmission over the network 134 or the backplane 76 determined according to a high reliability protocol. As is known in the art, the security state invokes a set of predefined output values and terminates the operation of the control process by notifying the operator of an error.

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.In the present invention, a series of combined data words are generated which provide a convenient block of through the primary controller 18a calculated output values and a through the partner control 18b calculated complement of the same output values.

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.After the completion of the process blocks 154 and 156 described generation of the output word is the safety task 72b completed, and the operating system locks the region 84b of the memory 60 again in read-only mode, as through the process blocks 158 and 160 and advances as scheduled to the next task. Alternatively, the lock could be performed by the final step of the safety task itself, as long as the task execution is not interrupted by the operating system.

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.If related to 6 and 8th in the process block 124 from 7 the task selection block is a standard task 72a selects, the operating system starts 73a easy with the execution of this task on the primary controller 18a by like through the process block 162 display the input variable 76 to be read. The through the process block 164 specified execution of the standard task and the transfer of output values, as by process block 166 specified. Each of these steps is well known in the art. The partner control 18b does not perform the standard task, but waits for another security task. As described, the transfer of expenses does not have to comply with the security protocol.

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.Again with respect to 9 can now the operating system 73a and 73b the primary controller 18a and the partner control 18b periodically perform two additional standard tasks, once every few hours. This through the process block 170 The first task specified is a standard task that tries to get data out of everyone through the task queue 86 to write the identified security task. If the writing is unsuccessful, for example by creating an exception, the task is successfully completed. Otherwise, if the write is successful, a security state can be invoked and an error reported to the user because the memory lock was not established.

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.The second task 172 provides a comparison of the internal security variables at periodic intervals 76b that contain neither input nor output of standard processes 42 and 46 form, between the primary controller 18a and the partner control 18b to verify that they are actually identical, even though the output variable may not deviate at all between performing the security tasks 72a demonstrate. The variables to be compared are buffered while the execution of other tasks is stopped.

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.Now referring to 11 is software scoping of variables between the security task 72b and the standard tasks 72a complemented by the architecture of the present invention. If, for example, the security tasks 72b in the primary control 18a and in partner control 18b try to storage areas 82a that with the standard tasks 72a and standard variables 76a are associated, read or describe the safety task 72b in the partner control 18b will not be able to access the address in the partner control 18b will not exist. This failure either results in an exception when reading an erroneous value, or results in a discrepancy between the tasks 72b retrieved values, producing an error in their final outputs. When in both the primary controller 18a as well as in the partner control 18b Default task information, such a failure would operate symmetrically and might not be detected.

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.Regarding 12 is reversed if a standard task 72a tried out of the storage regions 82b , the security tasks 72b or security variable 76b holding, writing, blocking this by the MPU, or if she writes successfully, she only writes in the one with the primary controller 18a associated region 82b and not in the partner control 18b associated region 82b , Again, this asymmetric writing leads to a change in only one of the programs 72b that cause a difference in the in the block 150 and 152 from 7 results in compared output variables.

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.The The present invention may be part of a "safety system" with which the human lives and body parts protected in the industrial environment. The one used here Nonetheless, the term "security" is no representation, that the present invention safe an industrial process or that other systems produce unsafe operation become. The safety in an industrial process depends on diverse Factors outside the scope of the present invention, including: Draft of Security system, installation and maintenance of the components of the Security system and participation and training of individuals who use the security system. Although the present invention is intended for this purpose is, highly reliable To be, all physical systems are prone to failures, and precautions must be taken be taken in the event of such a failure.

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.Especially It is intended that the present invention not be limited to those herein contained embodiments and representations is restricted, but comprises modified forms of those embodiments, the parts the embodiments and combinations of elements of various embodiments included within the scope of the present claims.

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.In short, a safety controller executes a control program in two processing units to detect a processor failure by comparing the execution in each unit. This comparison is done quickly by synchronizing the input variables at the beginning of the task and comparing output variables at the completion of the task, thereby avoiding a line by line comparison of input and output variables. Intermediate variable that neither input nor output are variable, are compared in a less frequent interval.

Schlüssel zu den FigurenKey to the figures

11

  • 78 – SICHERHEITSAUFGABE 1 78 - SAFETY TASK 1
  • 101 – SICHER 101 - FOR SURE
  • 211 – STANDARD 211 - DEFAULT
  • 70 – INSTRUKTIONEN 70 - INSTRUCTIONS

33

  • INPUT – EINGABEINPUT INPUT
  • INTERNAL – INTERNINTERNAL - INTERN
  • OUTPUT – AUSGABEOUTPUT OUTPUT

55

  • 92 – SICHERHEITSAUFGABE? 92 - SAFETY TASK?
  • YES – JAYES YES
  • NO – NEINNO - NO
  • 94 – SPEICHER LÖSCHEN 94 - CLEAR MEMORY
  • 96 – AUFGABE ANNEHMEN 96 - ACCEPT THE TASK
  • 98 – PARTNERSCHAFT ALS PRIMÄR BESTÄTIGEN 98 - CONFIRM PARTNERSHIP AS PRIMARY
  • 100 – PARTNERSCHAFT ALS PARTNER BESTÄTIGEN 100 - CONFIRM PARTNERSHIP AS A PARTNER
  • 102 – SPEICHER LÖSCHEN 102 - CLEAR MEMORY
  • 104 – SPEICHER LÖSCHEN 104 - CLEAR MEMORY
  • 106 – AUFGABE ANNEHMEN 106 - ACCEPT THE TASK
  • 108 – AUFGABE ANNEHMEN 108 - ACCEPT THE TASK
  • 114 – NÄCHSTES 114 - NEXT
  • 116 – NÄCHSTES 116 - NEXT
  • 118 – FERTIG 118 - FINISHED

66

  • 72b – SICHERHEIT 72b - SAFETY
  • 72a – STANDARD 72a - DEFAULT

77

  • 124 – AUFGABENAUSWAHL 124 - TASK SELECTION
  • 126 – VERGLEICH AUFGABE 126 - COMPARISON TASK
  • 128 – VERRIEGELUNGSPRÜFUNG, SPEICHER ENTRIEGELN 128 - LOCK TEST, UNLOCK MEMORY
  • 130 – VERRIEGELUNGSPRÜFUNG, SPEICHER ENTRIEGELN 130 - LOCK TEST, UNLOCK MEMORY
  • 132 – EINGABEN SYNCHRONISIEREN 132 - SYNCHRONIZE INPUTS
  • 134 – EINGABEN EMPFANGEN 134 - RECEIVED INPUTS
  • 146 – SICHERHEITSAUFGABEN AUSFÜHREN 146 - EXECUTE SAFETY TASKS
  • 148 – SICHERHEITSAUFGABEN AUSFÜHREN 148 - EXECUTE SAFETY TASKS
  • 150 – QUERVERGLEICH DER AUSGABEN 150 - CROSS-BALANCE OF EXPENDITURE
  • 152 – QUERVERGLEICH DER AUSGABEN 152 - CROSS-BALANCE OF EXPENDITURE
  • 154 – KOMBINIERTE AUSGABE ERZEUGEN 154 - GENERATE COMBINED OUTPUT
  • 156 – KOMBINIERTE AUSGABE ERZEUGEN 156 - GENERATE COMBINED OUTPUT
  • 158 – SPEICHER VERRIEGELN 158 - LOCK MEMORY
  • 160 – SPEICHER VERRIEGELN 160 - LOCK MEMORY

88th

  • 162 – EINGABEN LESEN 162 - READ INPUT
  • 164 – STANDARDAUFGABEN AUSFÜHREN 164 - EXECUTE STANDARD DUTIES
  • 166 – AUSGABEN SENDEN 166 - SEND EXPENSES

99

  • 170 – SCHREIBEN IN VERRIEGELTEN SPEICHER 170 - WRITE IN LOCKED MEMORY
  • 172 – INTERNE VARIABLEN VERGLEICHEN 172 - COMPARE INTERNAL VARIABLES

Claims (14)

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.Method for operating a safety controller with a first and a second processing unit ( 18a . 18b ), each of which has a processor ( 58 ) and a memory ( 60 ), wherein in the memory of each of the first and second processing units ( 18a . 18b ) a shared safety program and input / output variables can be loaded, the safety program being repeatedly executable to read input variables representing inputs from externally controlled devices ( 40 ), and to write intermediate variables which are not addressed to external controlled devices ( 40 ) and to write output variables which output to externally controlled devices ( 40 ), characterized in that the method comprises the following steps: - execution of the common safety program on the first and second processing units ( 18a . 18b ) and comparing the execution of the common security programs and entering a security status if that execution differs; Synchronizing the input variables at the beginning of a task and comparing the output variables when completing a task; Comparing intermediate variables which are neither input variables nor output variables, in a less frequent interval; Limiting the comparison of the program execution only to the output variables and only at the conclusion of multiple instructions in order to achieve a faster execution of the safety program; - distinguishing between the types of variables and changing the periodicity of the comparison, taking into account the importance of these variables and the likelihood that they reflect fundamental errors; and adapting a coordinator program to provide each of the first and second processing units with identical input variables at a given point in the repeated execution of the common safety program. 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.The method of claim 1, comprising additional process step: providing each of the first and second processing units with identical input variables at a predetermined point in the repetitive execution of the common safety programs. 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.The method of claim 1, wherein the identical Input variables only at a single point in the repeated execution common safety programs. Verfahren nach Anspruch 1, wobei der vorgegebene Punkt in der wiederholten Ausführung des gemeinsamen Sicherheitsprogramms der Start der gemeinsamen Sicherheitsprogramme ist.The method of claim 1, wherein the predetermined Point in the repeated execution of the common safety program the launch of the common safety programs is. 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.The method of claim 2, wherein output variables are defined by the first and second processing units ( 18a . 18b ), which execute the safety program, are generated during execution of the safety program. 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).Method according to claim 5, comprising the additional method steps: - repeated execution of the safety program - execution of the common safety programs by the first and second processing units ( 18a . 18b ) and comparing the execution of the common security programs; and if this embodiment differs, inputting a security status at the completion of each repeated execution immediately before outputting the output variable to the externally controlled device ( 40 ). 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.The method of claim 2, comprising the additional steps of: - the safety program generating values of internal variables other than the input and output variables; Execution of the common safety programs by the first and second processing units ( 18a . 18b ) and comparing the execution of the common security programs; - entering a security status if this execution differs; and - comparing the execution of the security program by comparing values of the internal variables generated by the first and second processing units executing the security program. 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.The method of claim 7, comprising the additional Steps: - repeated To run of the safety program and Compare the execution of the Safety program corresponding to a period greater than the Repetition period is. 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.The method of claim 2, comprising the additional ones Steps: - To stop the execution of the common safety program at the given point in the repeated execution of the common safety program until the identical input variables the common safety programs have been made available. 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.Method according to claim 2, comprising the additional method steps: - copying the input variables from the first processing unit into the second processing unit ( 18a . 18b ) to provide identical input variables. 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.The method of claim 2, comprising the additional steps of: - asynchronously receiving input variables in a buffer memory of the first processing unit, and - providing each of the first and second processing units ( 18a . 18b ) with identical variables at a given point in the repetitive execution of the common safety program by copying the buffer into the memory of each of the processing units. 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.The method of claim 1, comprising the additional steps of: combining the output variables if the execution of the common safety program does not differ to produce a single set of output variables associated with the controlled device ( 40 ) are transferable. Verfahren nach Anspruch 12, wobei der Kombinationsvorgang eine Nachricht erzeugt, dass eine mit dem Wert der Ausgabevariablen verkettete Ausgabevariable komplementiert ist.The method of claim 12, wherein the combining operation a message that generates one with the value of the output variable chained output variable is complemented. 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.Method according to claim 1, comprising the additional method steps: - comparing the outputs generated by the first and second processing unit executing the safety program ( 18a . 18b ) at the completion of each repeated execution just prior to the output of the output values to the external controlled device.
DE602004013244T 2003-09-16 2004-09-03 High-speed synchronization in a dual-computer-based safety controller Expired - Lifetime DE602004013244T2 (en)

Applications Claiming Priority (2)

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

Publications (2)

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

Family

ID=34194732

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602004013244T Expired - Lifetime DE602004013244T2 (en) 2003-09-16 2004-09-03 High-speed synchronization in a dual-computer-based safety controller

Country Status (3)

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

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10325263B4 (en) * 2003-06-03 2013-09-19 Phoenix Contact Gmbh & Co. Kg Ensuring maximum response times in complex or distributed secure and / or non-secure systems
US7328370B2 (en) * 2003-09-12 2008-02-05 Rockwell Automation Technologies, Inc. Safety controller with simplified interface
JP3965699B2 (en) * 2005-01-31 2007-08-29 横河電機株式会社 Information processing apparatus and information processing method
JP3978617B2 (en) * 2005-04-19 2007-09-19 オムロン株式会社 Safety unit input device
US7617412B2 (en) 2006-10-25 2009-11-10 Rockwell Automation Technologies, Inc. Safety timer crosscheck diagnostic in a dual-CPU safety system
CN101377748B (en) * 2007-08-29 2010-08-25 英业达股份有限公司 Method for verifying read-write function of storage device
US8285402B2 (en) * 2008-07-14 2012-10-09 Ge Intelligent Platforms, Inc. Method and system for safety monitored terminal block
JP2011128821A (en) * 2009-12-17 2011-06-30 Yokogawa Electric Corp Redundant field apparatus
US9459619B2 (en) * 2011-06-29 2016-10-04 Mega Fluid Systems, Inc. Continuous equipment operation in an automated control environment
DE102012101516A1 (en) * 2012-02-24 2013-08-29 Pilz Gmbh & Co. Kg Safety switching device with power supply
EP2662773B1 (en) * 2012-05-10 2016-07-20 Airbus Defence and Space GmbH Redundant multi-processor system and corresponding method
US9459979B2 (en) * 2013-08-08 2016-10-04 International Business Machines Corporation Detection of hardware errors using redundant transactions for system test
JP5902778B1 (en) * 2014-09-03 2016-04-13 ファナック株式会社 Machine tools with functions to safely control peripheral equipment
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 (en) * 2017-10-24 2020-04-13 Акционерное общество "ТеконГруп" Method of providing functional safety of central processor module of industrial controller and microprocessor system for carrying out this method (variants)
EP3654121B1 (en) * 2018-11-14 2021-06-09 Siemens Aktiengesellschaft Redundant automation system with a plurality of processing units for each hardware unit
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 (en) * 1976-12-17 1977-10-10 Ellemtel Utvecklings Ab METHOD AND DEVICE FOR TRANSFERRING DATA INFORMATION TO TWO PARALLEL WORKING COMPUTER PARTS
FR2476349A1 (en) 1980-02-15 1981-08-21 Philips Ind Commerciale DISTRIBUTED DATA PROCESSING SYSTEM
FR2512980B1 (en) * 1981-09-14 1983-12-23 Aero Etudes Conseils
IT1213344B (en) * 1986-09-17 1989-12-20 Honoywell Information Systems FAULT TOLERANCE CALCULATOR ARCHITECTURE.
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
US6233702B1 (en) * 1992-12-17 2001-05-15 Compaq Computer Corporation Self-checked, lock step processor pairs
US5404304A (en) * 1993-11-19 1995-04-04 Delco Electronics Corporation Vehicle control system for determining verified wheel speed signals
FR2721122B1 (en) * 1994-06-14 1996-07-12 Commissariat Energie Atomique Calculation unit with plurality of redundant computers.
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
US6909923B2 (en) 1999-12-22 2005-06-21 Rockwell Automation Technologies, Inc. Safety communication on a single backplane
US6631476B1 (en) 1999-12-22 2003-10-07 Rockwell Automation Technologies, Inc. Safety network for industrial controller providing redundant connections on single media
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 (en) * 2000-04-19 2008-02-27 株式会社東芝 Field device control system and computer-readable storage medium
DE10035174A1 (en) * 2000-05-18 2001-12-06 Siemens Ag I / O module with high level of error protection for programmable logic controllers
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
US6915444B2 (en) 2001-09-12 2005-07-05 Rockwell Automation Technologies, Inc. Network independent safety protocol for industrial controller using data manipulation techniques
US7107358B2 (en) 2001-09-12 2006-09-12 Rockwell Automation Technologies, Inc. Bridge for an industrial control system 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 (en) * 2003-10-10 2011-02-02 株式会社日立製作所 Fail-safe control device

Also Published As

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

Similar Documents

Publication Publication Date Title
DE602004013244T2 (en) High-speed synchronization in a dual-computer-based safety controller
DE602004005642T2 (en) Safety control for the execution of standard and safety control programs
DE2735397C2 (en) Monitoring device for a program-controlled machine
DE60302184T2 (en) Fault-tolerant computer system, method of resynchronizing it and associated resynchronization program
DE19927635B4 (en) Security related automation bus system
DE69124899T2 (en) Procedure for end-to-end verification of a primary and secondary database in a process control system
DE602004007209T2 (en) Safety controller to provide fast recovery of safety program data
EP0972389A2 (en) Security control system, method for the operation thereof
DE10316649A1 (en) Backplane system for industrial process control, has safety protocol circuit which indicates error message after enforcing communication protocol on message, and switches industrial controller to set safety state
DE10255111A1 (en) System and method for loading firmware with high availability
DE3024370C2 (en) Redundant tax system
DE102017109886A1 (en) Control system for controlling safety-critical and non-safety-critical processes with master-slave functionality
EP4012517B1 (en) Execution environment for executing an event-oriented control program
DE69125778T2 (en) Method for saving data stored in a primary and secondary database in a process control system
EP1238318A1 (en) Automation device and updating method
EP0782722B1 (en) Process and device for controlling and activating sensors and/or actuators that are linked by a bus system
DE4132100C2 (en) Programmable control unit
EP1183827B1 (en) Circuit for carrying out secured data transmission, especially in ring bus systems
EP3798772A1 (en) Industrial process control
EP2090948B1 (en) Method for operating an automation system
EP1359485A1 (en) Control and monitoring system
EP0978039A1 (en) Data loading process
DE10017708B4 (en) Method for controlling mechanisms and technical systems, equipment and control software
DE10138066A1 (en) Participant for a network
EP3841439B1 (en) Automation system for monitoring a safety-critical process

Legal Events

Date Code Title Description
8364 No opposition during term of opposition