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