-
Die
Erfindung betrifft eine Digitale Datenverarbeitungsanlage für sicherheitsgerichtete
Automatisierungsaufgaben zur Ausführung als Funktions- und Ablaufpläne dargestellter
Programme.
-
Stand der Technik
-
Wegen
ihrer Flexibilität
nimmt in der Automatisierungstechnik der Einsatz rechnergestützter Automatisierungsgeräte, insbesondere
speicherprogrammierbarer Steuerungen, schnell zu. Daher liegt es
nahe – und wird
aus Kostengründen
zunehmend gefordert, programmierbaren elektronischen Systemen auch
Steuerungs- und Regelungsaufgaben mit Sicherheitsverantwortung zu übertragen
und sie letztendlich auch in hochkritischen Schutz- und Notabschaltsystemen
einzusetzen.
-
In
vielen sicherheitskritischen Anwendungen, wie z.B. in Kernkraftwerken
oder explosionsgefährdeten chemischen
Fabriken, in denen von der technischen Funktionalität her programmierbare
elektronische Systeme eingesetzt werden könnten, werden jedoch weiterhin
klassische festverdrahtete, auf der Basis von Relais-Schaltungen oder
diskreter Logik aufgebaute Sicherheitssysteme bevorzugt [14]. Typischerweise
werden in festverdrahteten Steuerungen logische Gatter, bistabile
Kippstufen, Vergleicher und ähnliche
einfache Funktionen als Baugruppen eingesetzt, die wiederum aus
diskreten Komponenten wie Transistoren, Spulen, Kondensatoren, Widerständen und
Transformatoren aufgebaut sind.
-
Ein
besonderes Merkmal der in festverdrahteten Sicherheitssteuerungen
zum Einsatz kommenden Baugruppen ist es, dass sie hinsichtlich ausfallsicherheitsgerichteten
Verhaltens sicherheitstechnisch abgenommen sind, d.h. ihnen ist
im Falle aller möglichen
auftretenden Fehlfunktionen ein auf Grund eines Naturgesetzes inhärent sicheres,
a priori bekanntes, eindeutiges und nur in einer bestimmten Richtung
wirkendes Ausfallverhalten eigen. Bei Ausfällen nehmen somit auch die
Ausgangssignale festverdrahteter Steuerungen definierte Zustände an [5,
4]. Mit Hilfe dieses Effektes können
technische Prozesse bei Ausfall ihrer Steuerungen in sichere Zustände überführt werden.
Ausfallsicherheitsgerichtete Steuerungen sind um wenigstens eine Größenordnung
teurer als Standardsteuerungen.
-
Bisher
gibt es noch keine integrierten Schaltkreise mit ausfallsicherheitsgerichtetem
Verhalten. Darum werden, wenn überhaupt,
in festverdrahteten Sicherheitssteuerungen nur integrierte Schaltungen
mit niedrigem Integrationsniveau verwendet [13, 4].
-
Die
Gründe
für die
oben erwähnte
Bevorzugung festverdrahteter gegenüber programmierten Sicherheitssystemen
liegen einerseits darin, dass für
erstere lang bewährte
Entwurfs- und Prüfmethoden
existieren, während
andererseits das Vertrauen in die Korrektheit von Programmen fehlt
und die sicherheitstechnische Abnahme von Software zur Zeit weder
befriedigend beherrscht wird noch wirtschaftlich durchzuführen ist. Mehr
und mehr dringen die ureigenen, mit Software verbundenen Sicherheitsprobleme
auch in das Bewusstsein der Öffentlichkeit.
Es erscheint aber unrealistisch, auf den Einsatz von Rechnern für sicherheitsgerichtete Automatisierungsanwendungen
zu verzichten – im
Gegenteil besteht kein Zweifel, dass ihre Verbreitung in solchen
Anwendungsbereichen aus Kosten- und Flexibilitätsgründen schnell und deutlich zunehmen
wird.
-
Automatisierungsanwendungen
werden in textuellen Programmiersprachen jeglicher Art, aber auch
in graphischen Sprachen formuliert. Zu letzteren gehören die
Sprachen Kontaktplan auf niedrigem und Funktionsplan [8, 9] auf
hohem Abstraktionsniveau. Die Funktionsplanprogrammierung ist an
den Entwurf analoger und digitaler Schaltungen auf der Grundlage
des Zusammenfügens
normierter Funktionsbausteine angelehnt. Direkte Verallgemeinerung
letzterer führt
zu Funktionsblöcken,
die Ein- und Ausgänge
beliebiger Datentypen haben und beliebige Verarbeitungsfunktionen
durchführen
können.
Abgesehen von der Bereitstellung von Konstanten als externe Eingabeparameter
sind Funktionsblockinstanzen und durch Verbindungslinien dargestellte
Parameterflüsse
zwischen ihnen die einzigen in Funktionsplänen verwendeten Sprachelemente.
Die vom VDI/VDE-GMA-Fachausschuss
5.3 erarbeitete Richtlinie VDI/VDE 3696 [12] zeigt, dass weniger
als 70 Funktionsblöcke
für die
Formulierung der überwiegenden
Mehrheit aller in der Automatisierungstechnik eines größeren, abgeschlossenen
Anwendungsbereiches – in
diesem Fall der chemischen Verfahrenstechnik – vorkommenden Aufgaben ausreichen.
Dank ihrer Einfachheit und Universalität sind sie in vielen verschiedenen Zusammenhängen wiederverwendbar.
Zur übersichtlichen
Formulierung sequenzieller Ablaufsteuerungen wurde die graphische
Programmiersprache Ablaufplan [8] mit den drei Grundelementen Schritt,
Aktion und Transition definiert.
-
Ähnlich wie
in der chemischen Verfahrenstechnik [12] reichen auch in anderen
industriellen Anwendungsgebieten relativ kleine Funktionsblockbibliotheken
zur Formulierung aller bereichsspezifischen Automatisierungsaufgaben
aus. So werden für
Notabschaltsysteme sogar nur vier Funktionsblöcke (Negation, Konjunktion,
Disjunktion und Zeitverzögerung)
benötigt.
Um auf der Basis solcher Funktionsblockbibliotheken sicherheitsbezogene
Automatisierungsprogramme graphisch in der Sprache Funktionsplan
entwickeln zu können,
müssen
die Elemente einer Funktionsblockbibliothek vor ihrer Freigabe im
Rahmen einer Typprüfung
einmalig abgenommen werden. Deshalb ist später zur Verifikation auf der
Basis von Funktionsblöcken
konstruierter Anwendungsprogramme allein die korrekte Verknüpfung der
vorkommenden Funktionsblockinstanzen nachzuweisen. Der Korrektheitsnachweis
der Elemente einer Funktionsblockbibliothek ist aufwändig und
kann nur von Spezialisten durchgeführt werden. Dieser Aufwand
ist jedoch durch die Sicherheitsanforderungen gerechtfertigt und
hält sich
für jede
einzelne Anwendung wegen der Wiederverwendbarkeit der Bibliotheken
in Grenzen. Zum Zwecke der strengen Verifikation einer Funktionsblockbibliothek
lässt sich
eine Reihe bereits eingeführter
Methoden anwenden. Dazu gehören
formale Verifikationstechniken, die insbesondere in sicherheitskritischen
Anwendungsbereichen eine inzwischen akzeptierte und teilweise sogar
als notwendig erachtete Vorgehensweise zur Erzielung verlässlicher
Programme sind [16]. Als die wohl am weitesten entwickelte Methode
sei hier nur auf den auf Hoare und Dijkstra zurückgehenden Prädikatenkalkül [2, 3]
hingewiesen. Entsprechende Beweise sind wegen der für automatisierungstechnische
Anwendungen typischen relativ geringen Komplexität der Funktionsblöcke, die
weder unbeschränkte
Iterationen noch Rekursionen enthalten und deren Quellcodes bei
Formulierung in einer höheren,
textuellen Programmiersprache in keinem Fall länger als zwei Seiten sind,
ihrer einfachen Datenstrukturen (Bitfolgen, logische Daten, ganze
und reelle Zahlen) und der in den Algorithmen verwendeten einfachen
Sprachkonstrukte auch unter Praxisbedingungen beherrschbar.
-
Problem
-
Der
im Patentanspruch angegebenen Erfindung liegt das Problem zugrunde,
dass informationsverarbeitende Systeme zur Gewährleistung der wachsenden Sicherheitsanforderungen
mit einem hinreichenden Grad an Vertrauen in ihre Verlässlichkeit – insbesondere
ihrer Software – müssen erstellt
und durch Zertifizierungsinstitutionen – zu vertretbaren Kosten – formell
sicherheitstechnisch abgenommen werden können. Die Lösung dieses Problems ist Voraussetzung
dafür,
festverdrahtete durch speicherprogrammierbare Automatisierungsgeräte im Sicherheitsbereich
ablösen
zu können.
-
Durch
geeigneten Geräteentwurf
kann zwar erreicht werden, dass die Ausgänge einer Steuerung bei Ausfällen einen
sicheren Zustand annehmen [1]. Bei einer programmierbaren Steuerung
kommt aber erschwerend hinzu, dass die Überleitung in einen sicheren
Zustand nach Erkennung einer Fehlfunktion sofort automatisch erfolgen
muss, und zwar völlig
unabhängig
von der Tätigkeit
des gerade laufenden Programmes. Der Entwurf ausfallsicherheitsgerichteter
Gerätetechnik
für programmierbare
elektronische Systeme steht vor dem Problem, dass sich integrierte
Schaltkreise einschließlich
Mikroprozessoren grundsätzlich
nicht ausfallsicherheitsgerichtet verhalten. Bei Ausfällen nehmen
sie zufallsbedingte Zustände
an. Die erforderliche kontinuierliche Überwachung der korrekten Gerätefunktion
programmierbarer elektronischer Systeme kann nicht wie bei herkömmlichen
Geräten üblich allein
mit Hilfe periodisch aktivierter Selbsttestprogramme oder einfachen Überwachungsschaltungen
erfolgen, da durch diese Maßnahmen
nicht alle Fehlfunktionen zu jeder Zeit erkannt werden können.
-
Auf
dem Wege hin zur Entwicklung programmierbarer elektronischer Systeme
für sicherheitskritische Automatisierungsaufgaben
wird bisher fast ausschließlich
der Geräteseite
Beachtung geschenkt [11]. Demzufolge können die auf dem Markt angebotenen
sogenannten „sicheren
speicherprogrammierbaren Steuerungen" zwar eine TUV-Abnahme ihres Geräteaufbaus
vorweisen [15], enthalten jedoch keinerlei Vorkehrungen, die geeignet
wären,
die Korrektheit der darauf laufenden Programme zu gewährleisten.
Im Gegensatz zu den für
(materielle) Geräte
charakteristischen Zufallsfehlern sind Programmfehler grundsätzlich systematischer Natur
und dauernd präsent.
Sie werden durch mangelhafte Problemspezifikationen, fehlerhafte
Programmimplementierungen oder unzureichende Übersetzer hervorgerufen. Um
das Risiko falschen Steuer- und Regelverhaltens auszuschließen, muss
streng nachgewiesen werden, dass entsprechende Programme ihre Spezifikationen
erfüllen.
-
Als
einziges allgemein und auch für
größere Programme
anwendbares Verfahren zur Verifizierung von Software steht beim
derzeitigen Stand der Technik nur die von Krebs und Haspel [10]
beim TUV Rheinland entwickelte diversitäre Rückübersetzung zur Verfügung. Weil
der bei ihrem Einsatz zum Korrektheisnachweis auf konventionellen
Rechnern oder speicherprogrammierbaren Steuerungen laufender Programme
anfallende Arbeitsumfang prohibitiv hoch ist (vgl. [6], Seiten 7–91 und
7–92),
wurde gefordert ([6], Seite 7–92),
die Methode rechnerunterstützt
durchzuführen.
Dies scheitert jedoch daran, dass Rechnerunterstützung selbst ein Programm mit
einer der einem Übersetzer
vergleichbaren Komplexität
erfordern würde,
dessen Korrektheit zur Zeit noch nicht nachgewiesen werden kann.
-
Deshalb
verhalten sich die Zulassungsinstanzen derzeit noch sehr zurückhaltend
bei der Abnahme ausschließlich
programmgesteuerter sicherheitsgerichteter Automatisierungssysteme.
Im allgemeinen werden noch keine sicherheitskritischen Systeme lizenziert,
die auf Software nichttrivialer Komplexität beruhen, da die Verläßlichkeit
von Programmen bei weitem noch nicht den entsprechenden Stand der
Hardware erreicht hat. Zwar gibt es schon eine Reihe bewährter Methoden
und Richtlinien wie z.B. [7], die ihre Nützlichkeit für die Entwicklung
und Validierung von Programmen zur Steuerung sicherheitskritischer
technischer Prozesse erwiesen haben, jedoch können diese Maßnahmen
beim derzeitigen Stand der Technik die Korrektheit größerer Programme
noch nicht garantieren.
-
Lösung
-
Die
oben genannten Probleme werden durch die gegenständliche digitale und als spezialisiertes Mehrrechnersystem
strukturierte Datenverarbeitungsanlage mit den im Patentanspruch
aufgeführten
Merkmalen gelöst.
Die Anlage kann als Komponente verteilter Prozessleitsysteme oder
als speicherprogrammierbare Steuerung sicherheitsbezogene Funktionen
im Rahmen der Automatisierung technischer Prozesse mit direktem
Zugriff auf Sensoren und Aktoren unter Echtzeitbedingungen wahrnehmen.
In diesem durchgehend zweikanalig ausgelegten Mehrrechnersystem
lassen sich Gerätefehler
erkennen. Die Verantwortung dafür
und zur Einleitung von Notabschaltungen obliegt darin Vergleichern
mit ausfallsicherheitsgerichtetem Ausgabeverhalten.
-
Ihr
Schwergewicht legt die Erfindung darauf, die Verlässlichkeit
von Anwenderprogrammen durch Merkmale der Rechnerarchitektur sicherzustellen.
Ihre Originalität
besteht darin, auf einem Niveau formulierte Programme, das dem von
Spezifikationen entspricht und damit deutlich über dem herkömmlicher
höherer
Programmiersprachen liegt, gemäß dem Patentanspruch
unmittelbar auf die ausführende
Hardware abbilden zu können,
wodurch die sonst für
Rechner charakteristische semantische Lücke zwischen Programmanforderungen
und Fähigkeiten
der Ausführungsumgebung
vermieden und, wie in der Norm IEC 880 [7] gefordert, ein Betriebssystem
als mögliche
Fehlerquelle eliminiert wird. Bei dem so unterstützten Programmierverfahren handelt
es sich um die in vielen Automatisierungsanwendungen eingesetzten
Funktions- und Ablaufpläne
nach IEC 61131-3 [8] ergänzt
um die Verwendung von Bibliotheken typgeprüfter Funktionsblöcke im Sinne
dieser Norm. Die Programmausführung
wird auf zwei verschieden geartete Rechner verteilt, von denen der
eine Funktionsblockaufrufe bearbeitet, während der andere durch Funktionspläne dargestellte
Datenflüsse
zwischen Funktionsblöcken
und durch Ablaufpläne
beschriebene Schrittfolgen umsetzt. Indem jedem solcher Schritte
die gleiche Bearbeitungsperiode zur Verfügung gestellt wird und alle
Datenein- und -ausgaben jeweils zu Beginn bzw. am Ende der Periode
vorgenommen werden, stellt sich das Ausführungszeitverhalten des Mehrrechnersystems
nach außen
hin als vollständig
vorhersehbar dar.
-
Patentanspruchsgemäß sieht
die Erfindung erstmalig in der Rechnertechnik die technische Unterstützung der
Verifikation sequenzieller Rechnerprogramme als Merkmal von Architekturentwurf
und Gerätekonstruktion
vor, und zwar für
die Methode der Rückübersetzung
von Maschinenprogrammen in eine graphische Form durch Inspektion
und direkten Vergleich mit den Programmspezifikationen. Derartige
Programmverifikationen werden bewertend durch Menschen ausgeführt, da
nur Menschen die rechtliche Verantwortung für und Haftung bei Erteilung
von Sicherheitszertifikaten übernehmen
können.
Menschliche Prüfer
können
die zum Korrektheitsnachweis von Software notwendigerweise erforderliche
Strenge überhaupt
nur dann walten lassen, wenn sie die zu untersuchende Software vollständig geistig
beherrschen und überblicken.
Die Rechnerarchitektur nach dem Patentanspruch trägt dazu
bei und macht Menschen ihre Tätigkeit
durch folgende technische Maßnahmen
leicht und fehlerunanfällig:
physische Trennung typprüfbarer
und anwendungsfallspezifischer Programmkomponenten, gerätetechnische
Unterstützung
der typischen periodischen Betriebsart speicherprogrammierbarer
Steuerungen durch genaue Taktung aller Ein- und Ausgaben und Verarbeitungsperioden
für Ablaufplanschritte,
im Funktions- und Ablaufplanprozessor Beschränkung auf einen anwendungsbezogenen
Satz von nur acht Befehlen, auf die beiden einfachsten Adressierungsarten
sowie auf Sprünge
zu den Anfängen
Ablaufplanschritten zugeordneter Programmsegmente als einziger Form
der Programmverzweigung und schließlich im Funktionsblockprozessor
Unabänderlichkeit
der Identität
von Programmkomponenten (Funktionsblöcken) im Maschinencode und
Erzwingen der Wiederverwendung von Programmkomponenten durch Verwendung
von Nurlesespeichern.
-
Da
die vom Funktions- und Ablaufplanprozessor aufgerufenen Primitive,
nämlich
vom Funktionsblockprozessor auszuführende Funktionsblöcke, anwendungsorientiert
sind und deutlich höhere
Komplexität
als die Maschinenbefehle herkömmlicher
Digitalrechner haben und darüber
hinaus sein Befehlssatz an den graphi schen Hochsprachen Funktions-
und Ablaufplan orientiert ist, bleiben darin ausgedrückte Maschinenprogramme
in der Regel recht kurz. Auf Grund dieser Merkmale wird nach dem
Patentanspruch erreicht, dass sich bei Durchführung der Rückübersetzung nach Krebs und Haspel
[10] die durch ein Programm gelöste
Aufgabenstellung in graphischer Form bereits aus der nullten Reduktionsstufe
(vgl. [6], Seite 7–91)
seines Maschinenprogrammes erkennen und sich letzteres dann mit
seiner ursprünglichen
Spezifikation unmittelbar vergleichen und somit verifizieren lässt. So
wird auch das Problem gelöst,
dass es noch nicht möglich
ist, die korrekte Arbeitsweise eines Übersetzers streng nachzuweisen.
-
Erreichte
Vorteile Der wesentliche mit der Erfindung erzielte Vorteil besteht
darin, erstmals die sicherheitstechnische Abnahme eines vollständigen programmierbaren
elektronischen Systems einschließlich der Anwenderprogramme
zu ermöglichen.
Bei der Konstruktion wurde besonderes Augenmerk auf den Programmaspekt
gelegt, da die Verlässlichkeit
von Software noch lange nicht das hohe Niveau erreicht hat, das
für Hardware
bereits selbstverständlich
ist. Damit verfolgt das Architekturkonzept ein für die Rechnertechnik völlig neues
Optimierungskriterium, und zwar sicherheitstechnische Abnehmbarkeit,
im Gegensatz zum herkömmlichen
Streben nach höherer
Verarbeitungsgeschwindigkeit.
-
Durch
die Architektur des programmierbaren elektronischen Systems nach
dem Patentanspruch werden Einsatz und Wiederverwendung vorgefertigter
und normierter Programmkomponenten und somit Programmierdisziplin
erzwungen. Dieses Verlassen der Tradition der klassischen und maximale
Flexibilität
erlaubenden von Neumann-Architektur zeitigt den Vorteil, Fehlermöglichkeiten
drastisch einzuschränken
und inhärent
sicherer zu sein.
-
Die
schematische Beschreibung logischer und funktionaler Beziehungen
durch Symbole und konzeptionelle Signalflüsse darstellende Verbindungslinien
in Funktions- und Ablaufplänen
garantiert leichte Verständlichkeit.
Weitere Vorteile dieses von der Erfindung unterstützten Programmierverfahrens
sind Orientierung an der Denkweise von Ingenieuren, Klarheit und
inhärenter
Dokumentationswert. Die Anzahl der Lösungsmöglichkeiten für ein gegebenes
Problem wird durch graphische, funktionsblockorientierte Programmierung
gegenüber
textueller Formulierung deutlich reduziert. Deshalb eignet sich
die Methode insbesondere für Anwendungen
mit Sicherheitsverantwortung.
-
Die
Originalität
der in der gegenständlichen
Erfindung nach dem Patentanspruch realisierten Rechnerunterstützung für das Programmverifikationsverfahren
diversitäre
Rückübersetzung
nach [10] besteht darin, dass sie nicht Arbeit vom Menschen auf
Maschinen verlagert, sondern menschlichen Arbeitsaufwand durch eine
geeignete Rechnerarchitektur auf ein geringes, leicht zu bewältigendes
Maß reduziert
oder sogar ganz vermeidet. Auf Grund der im Patentanspruch angegebenen
Merkmale können
Anwendungsprogramme sehr wirtschaftlich, d.h. effizient und kostengünstig, verifiziert
werden. Somit bleibt der Prüfaufwand
immer ge ring. Weitere Vorteile des Verifikationsverfahrens bestehen
darin, dass es keine Spezialkenntnisse erfordert und allgemeinverständlich ist,
weshalb es von Automatisierungsingenieuren und TUV-Prüfern leicht
eingesetzt werden kann. Die Allgemeinverständlichkeit ist auch besonders
im Hinblick auf Rechtsstreitigkeiten von großer Bedeutung.
-
Weitere Ausgestaltung
der Erfindung
-
Die
formale Verifikation von Übersetzern,
die in Hochsprachen und somit auch in Funktions- und Ablaufplan
formulierte Programme in Objektcode transformieren, ist beim derzeitigen
Stand der Technik noch nicht möglich.
Deshalb liegt sicherheitstechnischen Abnahmen von Programmen zwingend
deren Objektcode zugrunde, denn diese und nur diese Programmdarstellung
wird maschinell ausgeführt.
Dieses Problem wird mittels der Rechnerorganisation nach dem Patentanspruch
gelöst.
Weil aus bereits verifizierten Funktionsblöcken zusammengesetzte Anwenderprogramme
nur aus Parameterübergaben
und Unterprogrammaufrufen bestehen, sind sie um Größenordnungen
kürzer
und einfacher als herkömmliche
Programme. Weiterhin weist die Rechnerarchitektur nach dem Patentanspruch
auf Grund ihrer Konstruktion keine semantische Lücke zwischen den Ebenen auf,
die die Schnittstellen zum Menschen einerseits und zur Maschine
andererseits darstellen, d.h. hochsprachlich formulierte Programme
können
nach Übersetzung
in Maschinencode direkt von der Maschine ausgeführt werden, ohne dass es zusätzlicher
Software in Form von Betriebssystemdiensten, Laufzeitsystemen, virtueller
Maschinen etc. als weiterer Hilfsmittel bedürfte, um Anwenderprogramme
letztendlich auf der Hardware-Ebene zu interpretieren. Darum ist
es möglich,
durch Inspektion von Maschinencode in einem einzigen und einfachen
Arbeitsschritt eine äquivalente
Darstellung in Form von Funktions- und Ablaufplänen zu erstellen, die die Qualität und das
Niveau einer anwendungsgerichteten Problemspezifikation hat und die
wiederum durch Inspektion mit dem zu implementierenden, hochsprachlich
formulierten Programm verglichen werden kann.
-
Weil
es in sicherheitsgerichteten Anwendungen nicht das Ziel sein kann,
ohnehin immer geringer werdende Gerätekosten zu sparen, sondern
die Verständlichkeit – für den Menschen – von Automatisierungsprogrammen
und ihres Ausführungsprozesses
zu fördern,
sind gemäß 1 in
der Architektur des programmierbaren elektronischen Systems nach
dem Patentanspruch konzeptionell zwei Prozessoren vorgesehen, und zwar
ein Funktions- und Ablaufplanprozessor und ein Funktionsblockprozessor,
beide realisiert als separate physikalische Einheiten. Es ist sinnvoll,
zwei verschieden geartete Rechner zu verwenden, weil ihnen zwei
Programmteile mit völlig
unterschiedlicher Qualität
disjunkt zugeordnet werden können.
Dergestalt wird eine klare, physische Trennung der Funktionsblockbearbeitung
im Funktionsblockprozessor von den anderen Aufgaben Ausführungssteuerung,
Ablaufplanverarbeitung und Funktionsblockaufrufe, die dem Funktions-
und Ablaufplanprozessor zugewiesen sind, erzielt. Weiterhin wird
die einerseits durch ein malige Bereitstellung von Funktionsblöcken und
andererseits durch deren Verwendung in anwendungsspezifischen Diagrammen
gekennzeichnete zweistufige Funktionsplanprogrammierung so direkt
auf die Gerätearchitektur
abgebildet.
-
Der
Funktionsblockprozessor arbeitet Funktionsblockaufrufe ab. Zur Implementierung
des Codes von Funktionsblöcken
wird die Funktionalität
eines Allzweckrechners gebraucht. Mithin gestaltet sich die Verifikation
solchen Codes entsprechend schwierig. Wegen der Wiederverwendbarkeit
von Funktionsblöcken
besteht allerdings nur einmal die Notwendigkeit, den Funktionsblockprozessor
zusammen mit seiner gesamten Software sicherheitstechnisch abzunehmen,
und zwar im Rahmen einer einzigen Typprüfung. Nach dieser wird der Code
als Firmware in Nurlesespeichern abgelegt, um jedwede Änderungen
zu verhindern. Das Konzept nach dem Patentanspruch stellt sicher,
dass der Funktionsblockprozessor keinerlei anwendungsspezifische
Software enthält,
weshalb er und seine Firmware im einzelnen Anwendungsfall nicht
mehr sicherheitstechnisch abgenommen zu werden brauchen.
-
Die
anderen, anwendungsspezifischen Programmteile werden allein dem
Funktions- und Ablaufplanprozessor zugewiesen. Da diese Programmteile
nur aus Datenflüssen
zwischen Funktionsblockinstanzen und aus Schrittfolgen bestehen
und somit eine besonders einfache Struktur haben, reicht zu ihrer
Abarbeitung die äußerst einfache
Rechnerorganisation nach dem Patentanspruch aus. Durch diesen Ansatz
kann sich die projektspezifische Verifikation von Anwenderprogrammen
auf die hier geladenen Programmteile beschränken und gestaltet sich wegen
der Einfachheit des Rechners sehr leicht und kostengünstig. Auf
Grund der Natur des Programmierverfahrens bleibt der Prüfaufwand
dabei immer gering. In der Tat wird durch die Aufspaltung und physische
Verteilung der Software deren Verifikation überhaupt erst praktikabel und
wirtschaftlich möglich.
-
Um
gerätetechnische
Fehlfunktionen feststellen zu können,
ist die Architektur durchgängig
zweikanalig. Sie erlaubt es auch, Diversität in Form verschiedener Funktions-
und Ablaufplan- und unterschiedlicher Funktionsblockprozessoren
vorzusehen. Alle Verarbeitungen werden grundsätzlich parallel redundant auf
jeweils zwei Rechnern vorgenommen und alle zwischen den Rechnern
sowie nach außen
hin übertragenen
Daten werden einem Vergleich unterzogen. Wenigstens einer der Funktions-
und Ablaufplanprozessoren sollte die im folgenden näher beschriebene
extrem einfache Organisation mit nur acht Maschinenbefehlen nach
dem Patentanspruch haben, die die Programmprüfung durch Rückübersetzung
erheblich erleichtert. So ergibt sich die in 2 dargestellte
asymmetrische und fehlererkennende Vierprozessorkonfiguration aus
zwei Rechnerpaaren.
-
Um
aus Sicherheitsgründen
jedwede Modifikationen durch Fehlfunktionen oder äußere Eingriffe
zu verhindern, sieht die Architektur des programmierbaren elektronischen
Systems grundsätzlich
Nurlesespeicher für
Objektcode vor, d.h. es gibt keinen RAM-Bereich für Programme.
Der Code der Funktionsblöcke
wird als Firmware der Funktionsblockprozessoren in maskenprogrammierten
ROMs bereitgestellt, die unter Aufsicht der Lizenzierungsinstanzen
herzustellen und von diesen freizugeben sind. Dagegen werden die
Anwenderprogramme auf der Funktions- und Ablaufplanebene vom Benutzer
in PROMs abgelegt. Dieser Teil der Software muss dann noch projektspezifischer
Verifikation unterzogen werden, die wiederum von den Zertifizierungsinstitutionen
durchgeführt
wird, welche schließlich
die PROMs in den Zielsystemen versiegeln. Dies zeigt sehr deutlich,
dass die asymmetrische Mehrrechnerkonfiguration gewählt wurde,
um zwei Systemteile physisch voneinander zu trennen: einen, dessen
Software nur genau einmal verifiziert werden muss, und ein anderer
mit den anwendungsspezifischen Programmen.
-
Die
Funktionsblockprozessoren führen
alle Datenmanipulationen und Ein-/Ausgabeoperationen
aus. Funktions- und Ablaufplanprozessoren einerseits und Funktionsblockprozessoren
andererseits kommunizieren untereinander über Warteschlangenpuffer (FIFOs).
In diese Puffer integrierte ausfallsicherheitsgerichtete Vergleicher überprüfen die
Datenströme
zur Fehlererkennung in der zweikanaligen Konfiguration. Zur Programmausführung koordinieren
sie sich wie folgt. Die Funktions- und Ablaufplanprozessoren beauftragen
die Funktionsblockprozessoren mit der Ausführung eines Funktionsblocks,
indem sie den Bezeichner, die entsprechenden Eingabeparameter und
gegebenenfalls auch die internen Zustände des Blockes über zwei
Warteschlangenpuffer den Funktionsblockprozessoren zuschicken. Dort
werden das den Funktionsblock implementierende Objektprogramm ausgeführt und
die berechneten Ergebnisse und neuen internen Zustände den Funktions-
und Ablaufplanprozessoren über
die anderen Warteschlangenpuffer zurückgesandt. Die Bearbeitung
des Funktionsblockes endet mit dem Auslesen der Ausgabepuffer und
dem Ablegen der Daten in den Speichern der Funktions- und Ablaufplanprozessoren.
-
Mit
dem Vorsehen der Warteschlangenpuffer wurde das Entwurfsziel verfolgt,
einfach zu synchronisierende und leicht verständliche Verbindungen bereitzustellen,
welche die Funktions- und Ablaufplanprozessoren hinsichtlich der
bearbeiteten Programme und Ausführungsgeschwindigkeiten
problemlos völlig
von den Funktionsblockprozessoren entkoppeln. Jeder Puffer besteht
aus einem warteschlangenähnlichen
Speicher und den zwei Ein-Bit-Statusregistern VOLL und LEER, die
den Füllungszustand
des Puffers anzeigen und nicht benutzerzugänglich sind. Sie werden durch
die Steuerlogik des Puffers gesetzt und zurückgesetzt und bewirken im gesetzten
Zustand, dass die Ausführung
eines einen Pufferein- bzw. -ausgang ansprechenden Befehls verzögert wird.
-
In
handelsüblichen
speicherprogrammierbaren Steuerungen variiert die Ausführungszeit
eines Schrittes i.a. von einem Zyklus zum nächsten in Abhängigkeit
von der Programmlogik und den jeweils angetroffenen externen Bedingungen.
Deshalb werden externe Signale gewöhnlich nicht zu äquidistant
angeordneten Zeitpunkten erfasst und Aktordaten nicht ausgegeben,
obwohl dies von der Problemstellung her so vorgesehen sein mag.
Um das Zeitverhalten des gegenständlichen
programmierbaren elektronischen Systems völlig deterministisch zu gestalten,
wird ein vom Systemzeitgeber abgeleiteter Grundtakt als Zeitreferenz
der für
speicherprogrammierbare Steuerungen typischen Betriebsart benutzt.
Dieser Takt markiert den für
die Ausführung aller
Schritte im Sinne von Ablaufplänen
vorgesehenen Zeitrahmen. Die Länge
der Taktperiode wird so gewählt,
dass sie der maximalen Ausführungszeit
der in einer Anwendung oder Anwendungsklasse vorkommenden Schritte
Rechnung trägt.
Es wird überwacht,
dass die Ausführungszeit
jedes Schrittes die Taktperiodenlänge nicht überschreitet, indem am Ende
der Bearbeitung der mit einem Schritt assoziierten Aktionen) und nach
der Auswertung der entsprechenden Transitionsbedingung die Ankunft
des Taktsignals abgewartet wird, das den Beginn des nächsten Zyklus
markiert. Eine Überlastsituation
oder ein Laufzeitfehler liegen vor, wenn das Taktsignal ein aktives
Anwendungsprogramm unterbricht, woraufhin eine Notabschaltung eingeleitet
wird.
-
Obwohl
der Grundtakt die periodische Ausführung der einzelnen Schritte
a priori exakt festlegt, können die
Verarbeitungszeitpunkte einzelner Operationen innerhalb einer Periode
immer noch variieren und bleiben so unbestimmt. Da genau festgelegtes
Zeitverhalten jedoch nur nach außen hin, d.h. für Ein-/Ausgabeoperationen,
wichtig ist, wird Vorhersehbarkeit dadurch erreicht, dass diese
unabhängig
arbeitenden, mit dem Takt synchronisierten Peripheriegeräten zugewiesen
werden. Die Eingabegeräte
stellen ständig
aktuelle Eingabedaten bereit, die alle jeweils zu Beginn der Verarbeitungsperioden
en bloc übernommen
werden, unabhängig davon,
ob sie in einer bestimmten Periode gebraucht werden oder nicht.
Die so erfassten Daten werden zwischengespeichert und stehen somit
jederzeit unmittelbar zur Verarbeitung bereit. Ebenso werden alle
berechneten Ausgabedaten zunächst
gepuffert und schließlich
am durch den nächsten
Taktimpuls markierten Periodenende gemeinsam zur Ausgabe freigegeben.
-
Der
Funktions- und Ablaufplanprozessor führt die in seinem PROM-Speicher
abgelegten Programme aus. Neben diesem Programmspeicher umfasst
sein linearer Adressraum auch einen RAM-Bereich. Er besitzt weiterhin
die – Programmierern
unzugänglichen – Register
Programmadresszähler
(PZ) zur Angabe der PROM-Adresse
der jeweils auszuführenden
Instruktion, Eingang des Warteschlangenpuffers zum und Ausgang des
Warteschlangenpuffers vom Funktionsblockprozessor, Transitionsbedingung
(TB), Anfangsadresse des nächsten
Schrittes (ANS) sowie einen vom Grundtakt im Rahmen der Zeitüberwachung
gesetzten Merker (ST), der anzeigt, ob der nächste Periodentakt bereits
eingetroffen ist. Seine Aufgaben nimmt der Rechner mit dem in Tabelle
1 aufgeführten
Befehlssatz wahr. Ausführung
der lesend auf das Warteschlangenpufferausgangsregister zugreifenden
Befehle impliziert, dass der Rechner wartet, sofern der Puffer leer
ist. Analog wartet er beim Schreiben in das Eingangsregister, wenn
dieses voll ist. Im Rahmen der Ausführung aller Instruktionen mit
Ausnahme des SRT-Befehls wird der Programmzähler inkrementiert.
-
Der
Befehlssatz trägt
dem Gesichtspunkt minimaler Umfang bei gleichzeitiger optimaler
Unterstützung von
Menschen durchzuführender
Programminspektionen Rechnung. Die acht Befehle des Satzes sind
alle vom Typ Datentransfer, die in zwei Fällen bedingt auszuführen sind.
Deshalb kann die Steuereinheit des Funktions- und Ablaufplanprozessors
in Form eines endlichen Moore-Automaten mit bedingter Auswahl implementiert
werden. Da dieses sequenzielle Schaltwerk nur recht wenige Eingänge und
innere Zustände
besitzt und seine Komponenten zur Erzeugung von Adressen und Ausgaben
rein kombinatorisch sind, ist die Steuereinheit durch vollständigen Test
verifizierbar.
-
Die
vom Funktions- und Ablaufplanprozessor auszuführenden Programme bestehen
aus Abfolgen von Schritten im Sinne der Ablaufplansprache. Dabei
sind nur lineare Schrittfolgen und Alternativverzweigungen solcher
Sequenzen wie in 3 dargestellt zugelassen. Aus
Sicherheitsgründen
müssen
die in der Norm IEC 61131-3 [8] ebenfalls eingeführten Parallelverzweigungen
entweder mittels gerätetechnischer
Parallelität
implementiert oder bereits beim Entwurf durch explizite Serialisierung
aufgelöst
werden. Das Programmsegment eines jeden solchen Schrittes endet
mit einem SRT-Befehl, der überprüft, ob das
Segment innerhalb der Taktperiode ausgeführt wurde. War dies nicht der
Fall, so wird ein Notabschaltungssignal erzeugt. Terminiert die Segmentausführung jedoch
vor Ankunft des nächsten
Taktperiodenimpulses, so wartet der Rechner bis zum Ende der andauernden
Periode. Wenn das Taktsignal schließlich eintrifft, werden der
Programmzähler
aus dem Register ANS mit der Anfangsadresse des dem nächsten auszuführenden
Schritt zugeordneten Segmentes geladen und das Transitionsbedingungsregister
TB gelöscht.
Geladen wird das Register TB mit vom Funktionsblockprozessor erarbeiteten
logischen Werten im Rahmen der Ausführung von ETB-Befehlen. Wird
dabei eine logische Eins empfangen, so wird das Register ANS aus
dem Programm-PROM neu geladen. Da Programmverzweigungen nur in dieser äußerst restriktiven
Form möglich
sind, wird ein sehr effektiver Speicherschutzmechanismus realisiert.
-
Weil
die Inhalte von RAMs nach dem Einschalten der Stromversorgung zufällig sind,
muss der RAM-Bereich des Funktions- und Ablaufplanprozessors bei
Betriebsbeginn initialisiert werden. Dazu dient ein Gerätemechanismus,
der einen (P)ROM ausliest und damit alle Speicherstellen des RAM
mit anwendungsspezifischen Anfangswerten vorbesetzt. Weiterhin werden
die Register PZ, TB, ANS und ST gelöscht, weshalb das erste in
einem Programm auszuführende
Segment an der Programmspeicheradresse Null beginnen muss.
-
Der
Vergleich auf Gleichheit aller zwischen den beiden Funktions- und
Ablaufplanprozessoren einerseits und den beiden Funktionsblockprozessoren
andererseits ausgetauschten Daten wird von zwei in die Warteschlangenpuffer
integrierten Komparatoren durchgeführt. Sie erkennen alle intermittierenden
und dauerhaften Fehlfunktionen, die sich in Unterschieden zwischen
diesen Daten äußern. Sendet
einer der Funktions- und Ablaufplanprozessoren auf Grund eines Fehlers
einen unvollständigen
Parametersatz, so beginnen die Funktionsblockprozessoren nicht zu
arbeiten, was zu einem Laufzeitfehler und zur Notabschaltung am
Ende der laufenden Verarbeitungstaktperiode führt. Da den – notwendigerweise
einkanalig ausgelegten – Vergleichern in
der zweikanaligen Konfiguration die Verantwortung zur Fehlererkennung
obliegt, müssen
sie höchsten
Verlässlichkeitsanforderungen
genügen.
Eine programmtechnische Lösung
scheidet für
diese Aufgabe aus, da sie, auch wenn sie selbst korrekt wäre, auf
jederzeit korrekt arbeitende und ausfallfreie Hardware angewiesen wäre. Aus
diesen Gründen
sind die Vergleicher gerätetechnisch
in ausfallsicherheitsgerichteter Logik zu realisieren.
-
Nach 4 ist
ein Vergleicher jeweils mit vier Warteschlangenpuffern verbunden,
zwei eingangs- und zwei ausgangsseitigen. Die jeweils ersten Datenelemente
der eingangsseitigen Puffer werden in Halteregistern zwischengespeichert
und dann miteinander verglichen. Bei Ungleichheit wird ein Fehlersignal
erzeugt, das das gesamte System abschaltet. Andernfalls wird das
Datenelement zu den beiden ausgangsseitigen Puffern weitergeleitet.
-
Auch
die von Funktionsblockprozesoren erzeugten Ausgabedatenworte müssen vor
dem Aussenden an externe technische Prozesse mit Hilfe ausfallsicherheitsgerichteter
Vergleicher auf Gleichheit überprüft werden.
Bei Ungleichheit wird wieder ein Notabschaltsignal erzeugt. Die
Ausgabedaten werden erst mit Beendigung der aktuellen Verarbeitungstaktperiode
freigegeben. Die von einem technischen Prozess kommenden Eingabedaten
gelangen zunächst
in Halteregister. Erst mit dem nächsten
Taktimpuls werden sie beiden Funktionsblockprozessoren bereitgestellt.
-
Beschreibung eines Ausführungsbeispieles
-
Die
Durchführung
strenger Verifikation auf dem oben beschriebenen programmierbaren
elektronischen System für
Sicherheitsaufgaben ablaufender Anwenderprogramme durch Rückübersetzung
wird nun anhand eines ausgearbeiteten relativ einfachen, aber sehr
typischen Beispiels dargestellt. Die beiden äquivalenten Darstellungsformen
eines Programmes, nämlich
Funktionsplan und Maschinencode für den Funktions- und Ablaufplanprozessor
der Architektur, werden im Detail gezeigt. Es wird deutlich werden,
dass es sehr leicht und unmittelbar möglich ist, nach einem gegebenen
Maschinenprogramm einen entsprechenden Funktionsplan zu zeichnen.
-
6 zeigt
ein typisches industrielles Automatisierungsprogramm in graphischer
Form, welches einen Behälterdruck
regelt und überwacht
und das die einem Schritt in einem, ähnlich dem in 5 wiedergegebenen
und [12] entnommenen, Ablaufplan zugeordnete Aktion zusammen mit
der Berechnung der nachfolgenden Transitionsbedingung darstelle.
Das Programm ist durch Zusammenschaltung in der Richtlinie [12]
definierter Standardfunktionsblöcke
formuliert. Eine analog gemessene Variable, die zu regelnde Größe, wird vom
Eingabekanal mit der Adresse INADR durch einen Funktionsblock des
Typs IN_A erfasst und zu einer physikalischen Größe mit der Einheit XUNIT im
Bereich zwischen XMIN und XMAX skaliert. Die zu regelnde Variable
wird an einen Funktionsblock des Typs C weitergegeben, der eine
Proportional-Integral-Differenzial-Regelung unter Verwendung der
Regelparameter KP, TN und TV durchführt. Die resultierende Stellvariable wird
durch einen Ausgabefunktionsblock vom Typ OUT_A in einen Analogwert konvertiert
und auf den durch OUTADR adressierten Kanal geschaltet. Zusätzlich wird
die geregelte Variable mit Hilfe zweier Instanzen des Standardfunktionsblocktyps
SAM zur Grenzwertüberwachung
beobachtet, um festzustellen, ob sie zwischen den von den beiden
Parametern ls und hs vorgegebenen Bereichsgrenzen liegt. Wenn der
Wert der geregelten Variablen diesen Bereich verlässt, wird
eine der QS-Ausgaben der beiden SAM-Instanzen und somit auch die Ausgabe
des Funktionsblocks vom Typ OR, der die Disjunktion implementiert,
logisch wahr. Dies wiederum bewirkt, dass zum nächsten Schritt übergegangen
wird, da hier der Ausgang des OR-Funktionsblocks zum Setzen der
Transitionsbedingung verwendet wird. Den Eingängen der Funktionsblöcke, die
weder von extern sichtbaren Eingängen
des Programmen selbst noch intern von Ausgängen anderer Funktionsblöcke gespeist werden,
werden vorgegebene konstante Werte zugewiesen. Das graphische Beispielprogramm
sei nun auf irgendeinem Wege in den in 7 in Form
einer leicht lesbaren mnemonischen Darstellung aufgelisteten Maschinencode
des Funktions- und Ablaufplanprozessors übersetzt worden. Von den verschiedenen
im Beispiel instanziierten Funktionsblocktypen hat C drei und SAM
eine interne Zustandsvariable.
-
Der
in 7 aufgelistete Maschinencode stellt ein Segment
dar. Ein Segment ist die Einheit der Programmausführung während der
Taktperiode eines Schrittes und besteht aus einer sequenziellen
Abfolge von Aufruffolgen, die sich wiederum aus den Maschinenbefehlen
SID, SKN, SVR, SIZ, EVR, EIZ und ETB des Funktions- und Ablaufplanprozessors
nach Tabelle 1 zusammensetzen, gefolgt und abgeschlossen durch eine SRT-Instruktion.
Ein Programm hat mindestens ein Segment. Die Anzahl der Segmente
entspricht der der Schritte. Jeder in einem Funktionsplan erscheinenden
Funktionsblockinstanz entspricht genau eine Aufruffolge. Mit ihr
werden Parameter und gegebenenfalls interne Zustände vom Funktions- und Ablaufplanprozessor zum
Funktionsblockprozessor übertragen
und nach Ausführung
des Funktionsblocks die berechneten Ergebnisse und eventuell neue
interne Zustände
in Empfang genommen.
-
Eine
Aufruffolge beginnt mit einer SID-Instruktion, die den Bezeichner
(z.B. ID-C) des jeweiligen Funktionsblocks zum Funktionsblockprozessor überträgt. Danach
werden die Eingabeparameter des bezeichneten Funktionsblocks bereitgestellt.
Für Konstanten
werden dazu SKN-Befehle verwendet. Variablen und Zwischenwerte werden
mit SVR- und, sofern vorhanden, Werte interner Funktionsblockzustände mit
SIZ-Befehlen von ihnen zugeordneten RAM-Speicherstellen gelesen
und zum Funktionsblockprozessor gesandt. Für jede Instanz eines Funktionsblocks
mit internen Zuständen
wird eine Menge entsprechend gekennzeichneter (z.B. B2-izv1) Speicherzellen
angelegt. Wenn der Funktionsblockprozessor alle diese Parameter
erhalten hat, führt er
den bezeichneten Funktionsblock aus und liefert die zugehörigen Mengen
von Werten an Ausgabeparametern und neuen internen Zuständen zurück. Diese
werden vom Funktions- und Ablaufplanprozessor mittels EVR- bzw.
EIZ-Befehlen empfangen und dann in entsprechenden RAM-Zellen abgelegt.
Die Anzahl der abgearbeiteten SKN-, SVR-, SIZ-, EVR- und EIZ-Instruktionen
ist funktionsblockspezifisch. Sie müssen in einer vorgegebenen
Reihenfolge ausgeführt
werden, die die korrekte Zuordnung von Werten zu Parametern und
Zuständen
auf Seiten beider Prozessoren bestimmt. Eine Verbindung zwischen
einem Ausgang eines Funktionsblocks und einem Eingang eines anderen
wird mit einem EVR- und einem SVR-Befehl implementiert: der erste speichert
den Ausgabewert in einer RAM-Zelle für einen temporären Wert
(z.B. TMP-X) ab und der zweite lädt ihn
von dort. Die Implementierungsdetails der Funktionsblöcke sind
Teil der Architektur des Funktionsblockprozessors und bleiben daher
auf der Ebene der Anwendungsprogrammierung unsichtbar.
-
Auf
Grund der oben beschriebenen Struktur der Maschinenprogramme des
Funktions- und Ablaufplanprozessors stellen sich Rückübersetzung
und Prüfung
von Objektcode als sehr leicht dar. Dazu wird zunächst der
Inhalt des (P)ROMs geprüft,
aus dem der einem Programm zugeordnete RAM-Bereich initialisiert wird.
Dann werden die SRT-Befehle gesucht, die die verschiedenen, den
Ablaufplanschritten des Programms zugeordneten Segmente klar voneinander
trennen. Der Code zwischen zwei SRT-Befehlen entspricht genau einem
Funktionsplan. Die Rückübersetzung
eines solchen Segmentes beginnt mit der Interpretation der ersten Instruktion,
die immer ein SID-Befehl sein muss. Sie identifiziert eine in den
Funktionsplan einzuzeichnende Funktionsblockinstanz. Vergleicht
man die nachfolgenden Befehle mit der entsprechenden, in einer Bibliothek enthaltenen
Funktionsblockbeschreibung, so kann die korrekte Parameterübergabe
leicht nachgeprüft
werden. Darüber
hinaus wird für
jede SKN-, SVR- und EVR-Instruktion eine Verbindung in den Funktionsplan
eingezeichnet. Es gibt zwei Arten von Verbindungen. Die erste sind
Verbindungen von Programmeingängen
oder Konstanten zu Eingängen
von Funktionsblöcken
oder von Funktionsblockausgängen
zu Programmausgängen.
Die zweite Art sind Verbindungen von Funktionsblockausgängen zu
benannten Verbindungspunkten im Funktionsplan oder von solchen Punkten
zu Funktionsblockeingängen.
Wenn ein Funktionsplan vollständig gezeichnet
ist, können
die Namen dieser Punkte entfernt werden. Für die internen Zustandsvariablen
muss nur geprüft
werden, dass die neuen, aus einer Ausführung einer Funktionsblockinstanz
resultierenden und mit EIZ-Befehlen empfangenen Werte in genau denselben
RAM-Zellen abgelegt werden, von denen die internen Zustände im Zuge
des entsprechenden Aufrufs mit SIZ-Befehlen gelesen wurden. Der
Vorgang der Funktionsblockidentifizierung, der Prüfung der
Parameter- und Zustandsvariablenübergaben
sowie des Zeichnens des Blocksymbols und der entsprechenden Verbindungen
wird solange wiederholt, bis die nächste SRT-Anweisung erreicht wird, die den Schritt
und somit den entsprechenden Funktionsplan abschließt.
-
Enthält ein Segment
keinen ETB-Befehl, so wird der entsprechende Schritt als Endlosschleife
ausgeführt.
Mit einem ETB-Befehl wird das Ergebnis der Berechnung einer Transitionsbedingung
als Ausgabewert eines Funktionsblockinstanzenaufrufes empfangen
und im Transitionsbedingungsregister TB abgelegt. Im Rahmen der
Prüfung
ist im Funktionsplan eine Verbindungslinie vom entspre chenden Ausgang
am Symbol der Instanz zu einem zu markierenden Punkt am rechten
Rand des Planes einzuzeichnen. Weiterhin muss die im ETB-Befehl
enthaltene Anfangsadresse des Folgesegmentes als Beginn des Ablaufplanschrittes
verifiziert werden, der als nächster
vorgesehen ist. Enthält
ein Segment mehrere ETB-Befehle, so führt dies bei der Rückübersetzung
zu ebensovielen Verbindungspunkten am rechten Funktionsplanrand.
Sofern das Register TB während
einer Segmentausführung
auf 1 gesetzt wurde, wird mit dem Segment fortgefahren, dessen Anfangsadresse
von dem ETB-Befehl in das Register ANS geladen wurde, der als letzter
TB auf 1 gesetzt hat. Auf diese Art werden Alternativverzweigungen
in Ablaufplänen
implementiert.
-
Literatur
-
- [1] ABB Industrial Systems: ABB Master Safeguard
3000 Product Guide. Oslo 1994.
- [2] Baber, R.L.: Fehlerfreie Programmierung für den Software-Zauberlehrling.
München-Wien:
Oldenbourg-Verlag, 1990.
- [3] Backhouse, R.C.: Programmkonstruktion und Verifikation.
München-Wien:
Hanser-Verlag, 1989.
- [4] GTI Industrial Automation: An Introduction to MagLog 24
Inherently Fail-Safe
Logic Technology – Eliminating
the Unexpected. Apeldoorn 1993.
- [5] Paul Hildebrandt GmbH & Co.
KG: Main Catalogue – The
HIMA-Planar-System.
Brochure HK 90.11. Brühl 1991.
- [6] Hölscher,
H., und Rader, J.: Mikrocomputer in der Sicherheitstechnik. Köln: Verlag
TÜV Rheinland,
1984.
- [7] Internationale Norm IEC 880: Software for Computers in the
Safety System of Nuclear Power Stations. Genf: Internationale Elektrotechnische
Kommission, 1986.
- [8] Internationale Norm IEC 61131-3: Programmable Controllers,
Part 3: Programming Languages. Genf: Internationale Elektrotechnische
Kommission, 1992.
- [9] Internationaler Normentwurf TC65/WG6(PT1WD)7: Function Blocks
for Industrial Process Measurement and Control Systems, Part 1:
Architecture. Genf: Internationale Elektrotechnische Kommission,
1996.
- [10] Krebs, H., und Haspel, U.: Ein Verfahren zur Software-Verifikation.
Regelungstechnische Praxis rtp 26, 73–78, 1984.
- [11] Nikolaizik, J., Nikolov, B., und Warlitz, J.: Fehlertolerante
Mikrocomputersysteme. Berlin: Verlag Technik, 1990.
- [12] Richtlinie VDI/VDE 3696: Herstellerneutrale Konfigurierung
von Prozeßleitsystemen.
Berlin: Beuth Verlag, 1995.
- [13] Schuck, H.: Analoger Fensterkomparator in Fail-safe-Technik.
Technische Universität
Braunschweig, Braunschweig 1987.
- [14] Storey, N.: Safety-Critical Computer Systems. New York:
Addison-Wesley, 1996.
- [15] TUV Rheinland, Institut für Software, Elektronik, Bahntechnik:
Liste baumustergeprüfter
speicherprogrammierbarer Steuerungen. Version 3.1, Köln, Oktober
1997.
- [16] Zentralstelle für
Sicherheit in der Informationstechnik: Kriterien für die Bewertung
der Sicherheit von Systemen der Informationstechnik. Köln: Bundesanzeiger,
1989.
-
Tabelle
1: Befehlssatz des Funktions- und Ablaufplanprozessors