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