DE19841194B4 - Digitale Datenverarbeitungsanlage für sicherheitsgerichtete Automatisierungsaufgaben zur Ausführung als Funktions- und Ablaufpläne dargestellter Programme - Google Patents

Digitale Datenverarbeitungsanlage für sicherheitsgerichtete Automatisierungsaufgaben zur Ausführung als Funktions- und Ablaufpläne dargestellter Programme Download PDF

Info

Publication number
DE19841194B4
DE19841194B4 DE1998141194 DE19841194A DE19841194B4 DE 19841194 B4 DE19841194 B4 DE 19841194B4 DE 1998141194 DE1998141194 DE 1998141194 DE 19841194 A DE19841194 A DE 19841194A DE 19841194 B4 DE19841194 B4 DE 19841194B4
Authority
DE
Germany
Prior art keywords
function
computer
function block
processor
execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE1998141194
Other languages
English (en)
Other versions
DE19841194A1 (de
Inventor
Wolfgang A. Prof. Dr. Dr. Halang
Marek Dr.-Ing. Sniezek
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to DE1998141194 priority Critical patent/DE19841194B4/de
Priority to DE19861281A priority patent/DE19861281B4/de
Publication of DE19841194A1 publication Critical patent/DE19841194A1/de
Application granted granted Critical
Publication of DE19841194B4 publication Critical patent/DE19841194B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0796Safety measures, i.e. ensuring safe condition in the event of error, e.g. for controlling element
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • G06F11/1645Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components and the comparison itself uses redundant hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Hardware Redundancy (AREA)
  • Storage Device Security (AREA)
  • Safety Devices In Control Systems (AREA)

Abstract

Digitale Datenverarbeitungsanlage für sicherheitsgerichtete Automatisierungsaufgaben zur Ausführung als Funktions- und Ablaufpläne dargestellter Programme, wobei jedem Ablaufplanschritt ein konstanter Ausführungszeitrahmen zur Verfügung steht, mit zwei Kanälen mit jeweils zwei Rechnern, wobei in jedem Kanal jeweils der erste Rechner (Funktions- und Ablaufplanprozessor) zur Bearbeitung von Datenflüssen und Schrittfolgen und der zweite Rechner (Funktionsblockprozessor) zur Bearbeitung von Funktionsblockaufrufen dient, wobei der an den Hochsprachen Funktions- und Ablaufpläne orientierte und nur unmittelbare und direkte Adressierung verwendende Befehlssatz des ersten Rechners (Funktions- und Ablaufplanprozessor) aus sechs unbedingten und zwei bedingten Datentransferbefehlen besteht, die keine anderen Möglichkeiten der Programmverzweigung zulassen, als die Ausführung des dem aktuellen Schritt zugeordneten Codes zu wiederholen oder auf den Anfang des Codesegments eines anderen Schrittes zu springen, wobei im zweiten Rechner (Funktionsblockprozessor) der Code in einer einmaligen Typprüfung als korrekt nachgewiesener Funktionsblöcke seit der Herstellung in Nurlesespeichern (ROM) unabänderlich abgelegt ist, und wobei die jeweils zwei Rechner zum Austausch von Daten...

Description

  • 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
    Figure 00160001

Claims (1)

  1. Digitale Datenverarbeitungsanlage für sicherheitsgerichtete Automatisierungsaufgaben zur Ausführung als Funktions- und Ablaufpläne dargestellter Programme, wobei jedem Ablaufplanschritt ein konstanter Ausführungszeitrahmen zur Verfügung steht, mit zwei Kanälen mit jeweils zwei Rechnern, wobei in jedem Kanal jeweils der erste Rechner (Funktions- und Ablaufplanprozessor) zur Bearbeitung von Datenflüssen und Schrittfolgen und der zweite Rechner (Funktionsblockprozessor) zur Bearbeitung von Funktionsblockaufrufen dient, wobei der an den Hochsprachen Funktions- und Ablaufpläne orientierte und nur unmittelbare und direkte Adressierung verwendende Befehlssatz des ersten Rechners (Funktions- und Ablaufplanprozessor) aus sechs unbedingten und zwei bedingten Datentransferbefehlen besteht, die keine anderen Möglichkeiten der Programmverzweigung zulassen, als die Ausführung des dem aktuellen Schritt zugeordneten Codes zu wiederholen oder auf den Anfang des Codesegments eines anderen Schrittes zu springen, wobei im zweiten Rechner (Funktionsblockprozessor) der Code in einer einmaligen Typprüfung als korrekt nachgewiesener Funktionsblöcke seit der Herstellung in Nurlesespeichern (ROM) unabänderlich abgelegt ist, und wobei die jeweils zwei Rechner zum Austausch von Daten über Warteschlangenpuffer miteinander verbunden sind, mit ausfallsicherheitsgerichteten Vergleichern, die diese Daten und die Ausgabedaten der Datenverarbeitungsanlage miteinander vergleichen, um bei Ungleichheit die Überführung der gesamten Datenverarbeitungsanlage in einen sicheren Zustand einzuleiten, sowie mit an die die Funktionsblockaufrufe bearbeitende Rechner angeschlossenen Peripheriegeräten, die Eingaben immer zu Beginn und Ausgaben immer am Ende des konstanten Ausführungszeitrahmens vornehmen.
DE1998141194 1998-09-09 1998-09-09 Digitale Datenverarbeitungsanlage für sicherheitsgerichtete Automatisierungsaufgaben zur Ausführung als Funktions- und Ablaufpläne dargestellter Programme Expired - Fee Related DE19841194B4 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE1998141194 DE19841194B4 (de) 1998-09-09 1998-09-09 Digitale Datenverarbeitungsanlage für sicherheitsgerichtete Automatisierungsaufgaben zur Ausführung als Funktions- und Ablaufpläne dargestellter Programme
DE19861281A DE19861281B4 (de) 1998-09-09 1998-09-09 Elektronischer Vergleicher zweier Binärworte mit ausfallsicherheitsgerichtetem Ausgabeverhalten

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE1998141194 DE19841194B4 (de) 1998-09-09 1998-09-09 Digitale Datenverarbeitungsanlage für sicherheitsgerichtete Automatisierungsaufgaben zur Ausführung als Funktions- und Ablaufpläne dargestellter Programme
DE19861281A DE19861281B4 (de) 1998-09-09 1998-09-09 Elektronischer Vergleicher zweier Binärworte mit ausfallsicherheitsgerichtetem Ausgabeverhalten

Publications (2)

Publication Number Publication Date
DE19841194A1 DE19841194A1 (de) 2000-02-03
DE19841194B4 true DE19841194B4 (de) 2007-07-05

Family

ID=7880367

Family Applications (2)

Application Number Title Priority Date Filing Date
DE1998141194 Expired - Fee Related DE19841194B4 (de) 1998-09-09 1998-09-09 Digitale Datenverarbeitungsanlage für sicherheitsgerichtete Automatisierungsaufgaben zur Ausführung als Funktions- und Ablaufpläne dargestellter Programme
DE19861281A Expired - Fee Related DE19861281B4 (de) 1998-09-09 1998-09-09 Elektronischer Vergleicher zweier Binärworte mit ausfallsicherheitsgerichtetem Ausgabeverhalten

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE19861281A Expired - Fee Related DE19861281B4 (de) 1998-09-09 1998-09-09 Elektronischer Vergleicher zweier Binärworte mit ausfallsicherheitsgerichtetem Ausgabeverhalten

Country Status (1)

Country Link
DE (2) DE19841194B4 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10029664A1 (de) * 2000-06-23 2002-01-03 Uwe Zeiler Klimasystem für zentrale Aufstellungsräume von Nachrichten- und Rechentechnik
DE10108962A1 (de) 2001-02-20 2002-09-12 Pilz Gmbh & Co Verfahren und Vorrichtung zum Programmieren einer Sicherheitssteuerung
WO2004095716A2 (en) * 2003-04-17 2004-11-04 Fieldbus Foundation System and method for implementing safety instrumented systems in a fieldbus architecture
DE102008060003A1 (de) * 2008-11-25 2010-05-27 Pilz Gmbh & Co. Kg Verfahren und Vorrichtung zum Erstellen eines Anwenderprogramms für eine Sicherheitssteuerung
DE102008060005A1 (de) 2008-11-25 2010-06-10 Pilz Gmbh & Co. Kg Sicherheitssteuerung und Verfahren zum Steuern einer automatisierten Anlage mit einer Vielzahl von Anlagenhardwarekomponenten
CN102122533B (zh) * 2010-10-28 2012-09-12 中广核工程有限公司 一种核电站安全级设备监控方法及系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2402881C3 (de) * 1974-01-18 1982-01-14 Licentia Patent-Verwaltungs-Gmbh, 6000 Frankfurt Fehlersichere elektronische Signalvergleichsschaltung
CH653829A5 (de) * 1982-04-21 1986-01-15 Siemens Ag Albis Codeumsetzer fuer binaere signale.

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Hölscher H. und Rader J., Mikrocomputer in der Sicherheitstechnik, Köln, Verlag TÜV-Rheinland, 1984, S. 7-87 bis 7-92 *
Nikolaizik J. u.a.: Fehlertolerante Mikrocomputer- systeme, 1. Aufl., Berlin, Verlag Technik, 1990, S. 24-37
Nikolaizik J. u.a.: Fehlertolerante Mikrocomputer-systeme, 1. Aufl., Berlin, Verlag Technik, 1990, S. 24-37 *

Also Published As

Publication number Publication date
DE19861281B4 (de) 2008-10-02
DE19841194A1 (de) 2000-02-03

Similar Documents

Publication Publication Date Title
EP2399174B1 (de) Verfahren und vorrichtung zum erstellen eines anwenderprogrammes für eine sicherheitssteuerung
EP2685382B1 (de) Verfahren und Vorrichtung zum Erstellen und Testen eines Steuergeräteprogramms
EP0852759A1 (de) Entwurfsverfahren für die anlagentechnik und rechnergestütztes projektierungssystem zur verwendung bei diesem verfahren
EP3446185B1 (de) Verfahren und vorrichtung zur gestaltung eines produktionsprozesses zum produzieren eines aus mehreren teilprodukten zusammengesetzten produkts
DE102009019089A1 (de) Verfahren und Vorrichtung zum Erstellen eines Anwenderprogramms für eine Sicherheitssteuerung
DE102012012521A1 (de) Vorrichtung und Verfahren für eine sicherheitskritische Anwendung
DE102008044018A1 (de) Verfahren zum Bestimmen einer Sicherheitsstufe und Sicherheitsmanager
DE3228405A1 (de) Emulator zur erzeugung einer folge von steuersignalen
EP3650970B1 (de) Verfahren und vorrichtung zum computergestützten simulieren eines modularen technischen systems
EP2407842B1 (de) Verfahren zur Inbetriebnahme von Maschinen oder Maschinen einer Maschinenserie und Projektierungssystem
Anjos et al. A proposal and verification of a software architecture based on LabVIEW for a multifunctional robotic end-effector
EP3542232B1 (de) Steuerung für eine industrielle automatisierungsanlage und verfahren zum programmieren und betreiben einer derartigen steuerung
EP1947568A1 (de) Verfahren zur Beobachtung eines Steuergeräts
DE19841194B4 (de) Digitale Datenverarbeitungsanlage für sicherheitsgerichtete Automatisierungsaufgaben zur Ausführung als Funktions- und Ablaufpläne dargestellter Programme
DE102018120347A1 (de) Automatisierungssystem zur Überwachung eines sicherheitskritischen Prozesses
DE102014219711A1 (de) Verfahren zur Kraftwerkssimulation
DE102006012042A1 (de) Steuervorrichtung zur fehlersicheren Steuerung einer Maschine
WO2014154281A1 (de) Objektbasierte konfiguration einer prozess- und/oder fertigungsanlage
DE102007063291A1 (de) Sicherheitssteuerung
EP2864845B1 (de) Automatisierte rekonfiguration eines ereignisdiskreten regelkreises
EP3696621A1 (de) Computerimplementiertes verfahren und vorrichtung zum steuern eines modularen technischen systems
EP2998805A1 (de) Verfahren und Vorrichtung zur Erzeugung eins Überwachungs-Funktionsbausteins für die Überwachung einer Automatisierungsanordnung
EP3696629A1 (de) Verfahren zur überprüfung einer industriellen anlage, computerprogramm, computerlesbares medium und system
DE102016121788A1 (de) Konfiguration einer Automatisierungsanlage
EP0828215B1 (de) Verfahren zur Verifikation eines Programms, welches in einer Sprache für speicher-programmierbare Steuerungen vorliegt, durch einen Rechner

Legal Events

Date Code Title Description
OAV Applicant agreed to the publication of the unexamined application as to paragraph 31 lit. 2 z1
OP8 Request for examination as to paragraph 44 patent law
8125 Change of the main classification

Ipc: G06F 1128

8172 Supplementary division/partition in:

Ref document number: 19861281

Country of ref document: DE

Kind code of ref document: P

Q171 Divided out to:

Ref document number: 19861281

Kind code of ref document: P

Country of ref document: DE

8364 No opposition during term of opposition
8320 Willingness to grant licenses declared (paragraph 23)
8339 Ceased/non-payment of the annual fee