Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR MONITORING THE LOGICAL EXECUTION SEQUENCE AND THE DATA TRANSMISSION OF A PROGRAM, WHICH IS DIVIDED INTO INDIVIDUAL MODULES
Document Type and Number:
WIPO Patent Application WO/2009/080550
Kind Code:
A3
Abstract:
The invention relates to a method for monitoring the execution sequence and the data transmission of a program (A), which is divided into individual modules (B), wherein said individual modules (B) of said program (A) are connected to one another using defined interfaces (P) according to a sequence (R) and data is transmitted via said interfaces (P) according to a predetermined standard between said individual modules (B), wherein a corresponding indicator (D) is associated with each interface (P) of a module (B), wherein the associated indicators (1D) are also transmitted upon the data transmission between said individual interfaces (P), wherein a test value (C) is calculated from said indicators (1D) of said individual interfaces (P) by a test algorithm as a function of the linkage (V) of said sequence of said modules (R).

Inventors:
FUCHS UDO (DE)
HAMMER MANFRED (DE)
LINK MARTIN (DE)
FALLER RAINER (DE)
Application Number:
PCT/EP2008/067373
Publication Date:
November 12, 2009
Filing Date:
December 12, 2008
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ENDRESS & HAUSER GMBH & CO KG (DE)
FUCHS UDO (DE)
HAMMER MANFRED (DE)
LINK MARTIN (DE)
FALLER RAINER (DE)
International Classes:
G06F11/28; G05B19/042
Foreign References:
DE102004018857A12005-11-10
EP0615188B11997-11-05
US20070255980A12007-11-01
DE102007015369A12008-07-03
EP1043641A22000-10-11
Other References:
NAMJOO M ED - INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS: "TECHNIQUES FOR CONCURRENT TESTING OF VLSI PROCESSOR OPERATION", 1 November 1982, QUALITY PRODUCTIVITY PROFIT. PHILADELPHIA, 15 - 18 NOVEMBER 1982; [INTERNATIONAL TEST CONFERENCE], SILVER SPRING, IEEE COMP. SOC. PRESS, US, PAGE(S) 461 - 468, XP000746184
Attorney, Agent or Firm:
ANDRES, Angelika (PatServeColmarer Strasse 6, Weil Am Rhein, DE)
Download PDF:
Claims:

Patentansprüche

1. Verfahren zur überwachung der Ausführungsreihenfolge und der Datenübertragung eines in einzelne Module (B) unterteilten Programms (A) 1

- wobei die einzelnen Module (B) des Programms (A) mittels definierter Schnittstellen (P) entsprechend einer Reihenfolge (R) miteinander verbunden werden und zwischen den einzelnen Modulen (B) Daten über diese Schnittstellen (P) nach einem vorgegeben Standard übertragen werden, - wobei jeder Schnittstelle (P) eines Moduls (B) einen entsprechende Indikator (ID) zugeordnet wird,

- wobei die zugeordneten Indikatoren (ID) bei der Datenübertragung zwischen den einzelnen Schnittsteilen (P) mit übertragen werden,

- wobei aus den Indikatoren (ID) der einzelnen Schnittstellen (P) in Abhängigkeit der Verknüpfung (V) der Reihefolge (R) der Module (B) durch einen

Prüfalgorithmus zumindest ein Prüfwert (C) gebildet wird.

2. Verfahren nach Anspruch 1 , wobei in der Konfigurationsphase des Programms (A), in der die Verknüpfung (V) der Reihefolge (R) der Module (B) festgelegt wird, zumindest ein Erwartungswerte (E) des Prüfwerts (C) ermittelt wird.

3. Verfahren nach zumindest einem der Ansprüche 1 oder 2, wobei der Erwartungswert (E) des Prüfwerts (C) in der Konfigurationsphase in einer Speichereinheit abgelegt wird.

4. Verfahren nach zumindest einem der Ansprüche 1 oder 2, wobei mehrer Erwartungswerte (E) der Prüfwerte (C) für verschiedene Varianten der korrekten Verknüpfungen (V) der Schnittstellen P der Module B in einer Reihenfolge (R) in der Konfigurationsphase in einer Speichereinheit abgelegt wird.

5. Verfahren nach zumindest einem der Ansprüche 1 oder 2,

wobei in der Arbeitsphase des Programms (A), in der die Module (B) nach einer in der Konfigurationsphase vorgegebenen Reihenfolge (R) abgearbeitet werden, zumindest ein Vergleichswert (S) des Prüfwerts (C) ermittelt wird.

6. Verfahren nach zumindest einem der Ansprüche 1 , 2, 3, 4 oder 5, wobei der Erwartungswert (E) des Prüfwerts (C) aus der Konfigurationsphase mit dem Vergleichswert (S) des Prüfwerts (C) aus der Arbeitsphase durch den Prüfalgorithmus verglichen wird.

7. Verfahren nach zumindest einem der Ansprüche 1 , 2, 3, 4, 5 oder 6, wobei der aktuelle Vergleichswert (S) des Prüfwerts (C) erst am Ende eine Reihenfolge (R) der verknüpften Module (B) mit dem Erwartungswert (E) durch den Prüfalgorithmus verglichen wird.

8. Verfahren nach zumindest einem der Ansprüche 6 oder 7, wobei bei einer übereinstimmung des Erwartungswerts (E) des Prüfwerts (C) mit dem Vergleichswert (S) des Prüfwerts (C) der korrekte logische Abiauf des Programms (A) und die korrekte Verknüpfung (V) der Schnittstellen (P) der einzelnen Modulen (B) angenommen wird.

9. Verfahren nach zumindest einem der Ansprüche 7 oder 8, wobei bei einer Nichtübereinstimmung des Erwartungswerts (E) des Prüfwerts (C) mit dem Vergieichswert (S) des Prüfwerts (C) das Programm (A) neu gestartet wird oder eine Fehlermeldung ausgegeben wird.

10. Verfahren nach zumindest einem der vorhergehenden Ansprüche, wobei die Bildung des Prüfwerts (C) mittels einer zyklischen Redundanzprüfung der Indikatoren (ID) durch den Prüfalgorithmus durchgeführt wird.

11.Verfahren nach Anspruch 1 , wobei die Module (B) des Programms (A) mittels definierter Schnittstellen (P) statisch und/oder dynamisch zur Laufzeit des Programms (A) in der Arbeitsphase als Reihefoige (R) miteinander verknüpft werden.

Description:

Verfahren zur überwachung des logischen Ausführungsreihenfolge und der Datenübertragung eines in einzelne Module unterteilten Programms

Die Erfindung bezieht sich auf ein Verfahren zur überwachung des logischen Ausführungsreihenfolge und der Datenübertragung eines in einzelne Module unterteilten Programms gemäß dem Anspruch 1.

Entsprechende Verfahren zur überwachung des logischen Ausführungsreihenfolge und der Datenübertragung eines in einzelne Module unterteilten Programms werden in der Prozess- und Automatisierungstechnik in den Messumformern von Messgeräten bzw. von Feldgeräten eingesetzt. Von der Anmelderin werden beispielsweise Feldgeräte oder ganze Messsysteme für Füllstand-, Durchfiuss-, Druck- und Temperaturmessung sowie Flüssigkeitsanalyse und Messwertregistrierung verkauft und vertrieben. In der Automations- und Prozesssteuerungstechnik bezeichnet man Messgeräte sowie Stellgeräte als Feldgeräte. Diese Feldgeräte messen beispielsweise eine physikalische Größe, z.B. den Druck, die Temperatur, die Durchflussmenge oder den Füllstand an definierten Stellen in einer Prozessaniage und senden ein Messwertsignal zur Weiterverarbeitung an ein Prozessleitsystem.

Um Menschen, die Umwelt und industrielle Anlagen bestmöglich zu schützen, werden die Hersteller und Anwender von Feldgeräten mit immer höheren Sicherheitsanforderungen konfrontiert. So sind die Sicherheitsanforderungen in der neuen Beurteilung zur "Funktionalen Sicherheit" nach IEC/DIN EN 61508 und IEC/DIN EN 61511 festgelegt. Diese europäischen und internationalen Vorgaben sind die Grundlage zur systematischen Beurteilung des Gefahrenpotenzials von mess-, Steuer- und regeltechnischen Einrichtungen und können für die sicherheitsbezogene Auslegung von verfahrenstechnischen Anlagen herangezogen werden. Dabei werden die jeweiligen Anforderungsstufen (SIL), in Abhängigkeit der Risikoparameter, über einen Risikographen bestimmt. Diese

Funktionale Sicherheit beinhaltet alle Aspekte zur Verhinderung, Vermeidung und Behandlung von fehlerhaftem Verhalten von Steuerungssystemen und Maschinen und Personal, mit dem Ziel die Risiken für Mitarbeiter, die Umwelt und die

Prozessanlagen zu verringern. Funktionale Sicherheit findet man in der Energie- und Verfahrenstechnik (KKW), bei Verkehrstechnik (Bahn), Prozessindustrie (Chemie, ö!-Gas) und bei Werkzeugmaschinen.

Die Betreiber von Anlagen mit sicherheitsrelevanten Funktionen legen im Rahmen einer Gefährdungsbeurteilung den Sicherheits-Integritätslevel für die jeweilige Sicherheitsfunktion fest. Entsprechend dieser Festlegung werden die dafür geeigneten Geräte ausgewählt und zu einem System zusammengeführt.

Im Rahmen dieser Anforderungen an die erhöhte Sicherheit in Feldgeräten und durch den Einsatz von Rechensystemen in diesen Feldgeräten ist es notwendig, eine Programmablaufüberwachung als eine Maßnahme zur Fehlererkennung während der Betriebsphase des Feldgeräts zu integrieren. Das grundlegende Ziel einer Methode zur Programmablaufkontrolle ist es, unerlaubte ProgrammabJäufe bzw. Abweichungen vom geplanten Programmabiauf zu erkennen und entsprechende Maßnahmen bei Abweichungen einzuleiten. Die Abweichungen in einem Programmablauf liegen beispielsweise dann vor, falls Funktionen bzw. Befehlsfolgen eines Programms in einer falschen Reihenfolge, in der falschen Zeitdauer oder gar nicht mehr abgearbeitet werden. Die Programmablaufüberwachung bzw. -kontroüe können in zwei grundlegenden überwachungsprinzipien eingeteilt werden, die zeitliche oder die logische Programmablaufkontrolle.

Methoden zur Programmablaufüberwachung sind in dem Buch der Bundesanstalt für Arbeitsschutz und Arbeitsmedizin - „Wirksamkeit von zeitlichen und logischen Programmabiaufüberwachungen beim Betrieb von Rechnersystemen" von H. GaII, K. Kemp aufgeführt.

Ein fehlersicheres Automatisierungssystem mit einer Standard-CPU ist in der EP 1 043 641 A2 beschrieben.

Ein weiteres Verfahren ist in der noch nicht veröffentlichten Anmeldung DE 10 2007 015369 A1 beschrieben. In diesem Verfahren werden zur überwachung von kritischen Funktionen eines Programms entsprechende überwachungspunkten in

das Programm integriert. An diesen überwachungspunkten wird eine überwachungsroutine gestartet wird, die die Kennzah! des überwachungspunktes mit einer in einer Zuordnungsliste vorgegebenen Reihenfolge des Programmablaufs vergleicht und bei einer Abweichung das Programm unterbricht oder erneut startet.

Die Aufgabe der Erfindung ist es, ein Verfahren zur überwachung von (nodularen Programmen anzugeben, das zuverlässig arbeitet und einfach in Programmen umzusetzen ist.

Diese Aufgabe der Erfindung wird durch die im Anspruch 1 angeführten Merkmale gelöst.

Vorteilhafte Weiterentwicklungen der Erfindung sind in den ünteransprüchen angegeben.

Es existiert eine Vielzahl von Methoden die funktionale Sicherheit innerhalb von komplexen und kritischen Modulen in Programmen zu gewährleisten. Ein Vorteil der Erfindung ist, dass die überwachung der Ausführungsreihenfolge der einzelnen Module des Programms und die überprüfung der Verknüpfungen der Schnittsteilen der Module gleichzeitig erfolgen können.

Weitere Einzelheiten, Merkmale und Vorteile des Gegenstandes der Erfindung ergeben sich aus der nachfolgenden Beschreibung mit den zugehörigen

Zeichnungen, in denen bevorzugte Ausführungsbeispiele der Erfindung dargestellt sind. In den Figuren dargestellte Ausführungsbeispiele der Erfindung sind zur besseren übersicht und zur Vereinfachung der Elemente, die sich in ihrem Aufbau und/oder in ihrer Funktion entsprechen, mit gleichem Bezugszeichen versehen. Es zeigen:

Fig. 1 a eine erste Darstellung einer korrekten Verknüpfung von Modulen eines Programms,

Fig. 1 b eine zweite Darstellung einer inkorrekten Verknüpfung von Modulen eines Programms,

Fig. 2a ein erstes Programmablaufdiagramm der in Fig. 1 dargestellter Module eines Programms,

Fig. 2b ein zweites Programmablaufdiagramm der in Fig. 1 dargestellter Module eines Programms,

Fig. 2c ein drittes Programmablaufdiagramm der in Fig. 1 dargestellter Module eines Programms,

Fig. 3a eine zweite Darstellung einer fehlerhaften Verknüpfung von Modulen eines Programms, und

Fig. 3b ein viertes Programmablaufdiagramm von in Fig. 3a dargestellten, fehlerhaft verknüpfter Module eines Programms.

In Fig. 1a ist eine erste Darstellung einer korrekten Verknüpfung (V) von Modulen B eines Programms A dargestellt. Das Programm A ist beispielsweise zu Ausführung von Mess- und Bedienaufgaben und/oder zur Kommunikation in einem Messumformer eines Feidgeräts der Prozess- und/oder Automatisäerungstechnik integriert, welches hier nicht explizit gezeigt ist. Ein fortschrittliches Programm A äst in Module B bzw, Blöcke untergliedert, die über definierte Schnittstellen P bzw. Ports statisch und/oder dynamisch zur Laufzeit des Programms A miteinander verknüpft werden und über diese Verknüpfungen V zumindest die in den Modulen B berechneten Daten austauschen. Jeder Schnittstelle P der Module B wird erfändungsgemäß zunächst ein Indikator ID zugeordnet, der beispielsweise einem binären Datenwort von zumindest 8 Bit (binary digit), einer Kennzahl oder einer MAC-Adresse (Media Access Control) entspricht. Dieser Indikator ID ist beispielsweise die binäre Adresse mit der die

entsprechende Schnittstelle P als Eingangselement oder als Ausgangselement des Moduls B angesprochen werden kann. Bei der Datenübertragung über eine Verknüpfung V wird dieser Indikator ID der Schnittstelle P mit übertragen, indem diese beispielsweise vor dem im Modul B berechneten Datenwort angehängt wird.

In der modularen Programmiertechnik werden Prozeduren und deren Daten in logischen Einheiten, so genannten Modulen B, zusammengefasst. Das Programm A wird grundlegend in funktionale Module B zerlegt, die einzeln geplant, programmiert und getestet werden können. Zur Vervollständigung der Programmierung können die einzelnen Module B dann logisch miteinander über Schnittstellen P verknüpft werden, und sind somit einsatzbereit. Die modulare Programmierung mit normierten bzw. standardisieren Schnittstellen P zwischen den Modulen B beschreibt dabei den Versuch, die Programmierung zu vereinfachen und noch effizienter zu machen. Der modulare Aufbau eines Programms A hat vorzugsweise auch den Vorteil, dass die einzelnen Module B auf verschiedene Datenverarbeitungseinrichtungen und/oder von unterschiedlichen Programmierern erzeugt werden können und nur einzelne Module B des Programms A in den Arbeitsspeicher der Datenverarbeitungseinrichtung von beispielsweise einem Messumformer eines Feldgeräts der Prozessautomatisierung geladen werden muss. Desweiteren ist das Programm A durch den modularen Aufbau beliebig erweiterbar und kann leicht und schneller durch den Austausch von einzelnen Modulen B verändert und/oder korrigiert werden. Hierzu muss jedoch die übergabe der Datenwörter an den universellen Schnittstellen P der Module B definiert worden sein, damit die Module B etwas mit den Datenwörtern der anderen Module B anfangen können. Die geringen Entwicklungskosten und die kurze Entwicklungszeiten, sowie den individuelle Entwicklung der Module B bei einem modularen Aufbau eines Programms A machen diese Art des Programmaufbaus auch für die industriellen Anwendungen hoch interessant.

In der Fig. 1a ist ein Ausschnitt eines Programms A mit sechs Modulen B1 , B2, B3, B4, B5, 86 gezeigt. Der modulare Aufbau des Programms A ist jedoch beliebig erweiterbar. Das erste Modul B1 ist über eine Verknüpfung V der ersten

Schnittsteile P1 mit der dritten Schnittstelle P3 des zweiten Moduls B2 verbunden und zusätzlich über die zweite Schnittstelle P2 mit der sechsten Schnittstelle PQ des fünften Moduls B5 verbunden. Das zweite Modul B2 ist über eine vierte Schnittstelle P4 mit der achten Schnittstelle P8 des dritten Moduls B3 des Programms A über ein Verknüpfung V verbunden. Desweiteren ist das zweite Modul B2 über die fünfte Schnittstelle P5 mit der zehnten Schnittstelle P10 des vierten Moduls B4 verbunden. Eine weitere Verknüpfung V besteht zwischen der siebten Schnittstelle P7 des fünften Moduls P5 und der zwölften Schnittstelle P12 des sechsten Moduls B6. Die Schnittstellen P9, P11 , P13 sind in der Fig. 1 a nicht mit weiteren Modulen B verbunden, jedoch sind weitere Ausgestaltungen von

Programmen A mit ergänzenden Programmmodulen an diesen Schnittstellen P9, P11 , P13 denkbar.

Die einzelnen Modul B des Programms A werden nacheinander und/oder parallel gemäß den Vorgaben aus der Konfigurationsphase des Programms A ausgeführt. Die Ausführungsreihenfolge der einzelnen Module B ist in der Fig. 1 a durch die einzelnen nummerierten Module B1 , B2, B3, B4, B5, B6 kenntlich gemacht. Ein korrekte Ausgestaltung der Verknüpfungen V der einzelnen Module B über die Schnittstellen P stellt die erste Reihe R1 mit der ersten, dritten, vierten, achten und neunten Schnittsteile P1 , P3, P4, P8, P9 dar. Eine weitere korrekte Ausgestaltung der Verknüpfungen V der einzelnen Module B über die Schnittsteilen P ist durch das erste, fünfte und sechste Modul BI 1 B5, 86 mit der zweiten, sechsten, siebten, zwölften und dreizehnten Schnittstellen P2, P6, P7, P12, P13 als dritte Reihe R3 ausgebildet. Die zweite Reihe R2 aus dem ersten Modul B1 mit der zweiten Schnittstelle P2, dem zweiten Modul B2 mit der dritten und fünften Schnittstelle P3, P5 und dem vierten Modul B4 mit der zehnten und elften Schnittstelle P10, P11 ist die Ausführungsreihenfolge der Module B, die in diesem Ausführungsbeispiel erfindungsgemäß überwacht werden soll. Zur besseren Darstellung des überwachten zweiten Reihe R2 sind die überwachten Verknüpfungen V der Schnittstellen P als gestrichelte Linien und die überwachten Schnittstellen P1 , P3, P4, P10, P11 selbst als staffierte Quadrate dargestellt. Die erste und dritte Reihe R1 , R3 werden in diesen Ausführungsbeispielen aus Fig. 1 a und Fig. 1 b nicht überwacht.

In Fig. 1 b ist eine zweite Darstellung einer inkorrekten Verknüpfung von Modulen B eines Programms A aufgezeigt. Die Verknüpfung V zwischen der ersten Schnittstelle P1 und der dritten Schnittstelle P3 ist in dieser Darstellung aufgetrennt worden, wodurch die erste Schnittstelle P1 ist mit der zehnten Schnittsteile P10 verbunden ist und die elfte Schnittstelle P11 mit der dritten Schnittsteile P3 verbunden ist. Dadurch wird eine inkorrekte Ausführungsreihenfoige der Module B erzeugt, was in dem Programmablaufdiagramm der Berechnungsalgorithmen der Module B und des Prüfalgorithmus der Indikatoren ID der Schnittstellen P in Fig. 2c zu sehen ist.

In Fig. 2a ist ein erstes ProgrammabSaufdiagramm der in Fig. 1 a dargestellten zu überwachenden Module B des Programms A und der korrekten Verknüpfungen der Schnittstellen P der Module B gezeigt. Das Programm A führt in diesem ersten Ausführungsbeispiel die einzelnen Module B nach der durch beispielsweise eine Nummerierung festgelegten Reihenfolge aus. Die korrekte Verknüpfung der einzelnen Module B über die Schnittstellen P und die Ausführungsreihenfolge der einzelnen Module B wird durch die Bildung von zumindest einem Prüfwert C an den Schnittstellen P der Module B durchgeführt. Beim Start des Programms A wird zuerst die Berechnung des ersten Moduls B1 ausgeführt und ein Startindikator für die Berechnung des Prüfwerts C vorgegeben. Anschließend wird aus dem zur übergabe an weitere Module B an der ersten Schnittstelle P1 bereitstehen Datenwort ein Vergleichswert S der ersten Prüfwerts C hinzugefügt, der aus dem Startindikator IDO und dem ersten Indikator ID1 ermittelt wird. Das über die Verknüpfung V an die dritte Schnittstelle P3 des zweiten Moduls B2 zu übertragende Datenwort der ersten Schnittstelle P1 setzt sich aus dem mittels dem des ersten Indikators ID1 errechneten Prüfwert C der ersten Schnittsteile P1 und den Daten, die das erste Modul B1 berechnet hat zusammen. Das an die dritte Schnittstelle P3 des zweiten Moduls B2 übertragene Datenwort wird mittels einem dritten Indikator ID3 der dritten Schnittstelle P3 durch die Berechnung des aktuellen Vergleichswert S des zweiten Prüfwerts C überprüft. Nach dieser überprüfung wird der zweite Modul B2 ausgeführt. Das von dem zweiten Modul B2 über die fünfte Schnittsteile P5 abgängige Datenwort wird durch die Bildung

eines Prüfwerts C mit dem fünften Indikator ID5 überprüft. In der Zwischenzeit kann das dritte Modul B3 ausgeführt werden. Darauf folgend wird das Datenwort welches von der fünften Schnittstelle P5 des zweiten Moduls B2 über die Verknüpfung V an die zehnte Schnittstelle P10 des vierten Moduls B4 mittels einer Berechnung der aktuellen Vergieichswerts S des Prüfwerts C durch den zehnten Indikator ID10 gebildet. In einem nächsten Schritt wird das Programm A mit der Abarbeitung des vierten Moduls B4 ausgeführt. Nach der Abarbeitung des vierten Moduls B4 des Programms A wird an der elften Schnittstelle P11 mittels einer erneuten Bildung des Prüfwerts C ein Vergleichwert S ermittelt. Die elfte Schnittstelle P11 des vierten Moduls B4 ist in diesem Ausführungsbeispiel mit keiner weiteren Schnittstelle P eines Moduls B verknüpft. Als Abschluss der Ausführungsreihenfolge wird das nicht überwachte, fünfte und sechste Modul B5, B6 ausgeführt. Der aktuelle Vergleichswert S des ermittelten Prüfwerts C am Ende der Kette der miteinander verknüpften Module B werden mit den abgespeicherten Erwartungswerten E verglichen, um zu überprüfen, ob die Daten an die zu überwachenden Schnittstellen P1 , P3, P5, P10, P11 der zweiten Reihe 2 richtig übermittelt wurden und die Ausführungsreihenfolge der Abarbeitung der einzelnen Module B eingehalten wurden. Das überwachungsprinzip beinhaltet, dass jede Vertauschung der Ausführungsreihenfolge der einzelnen Module B oder einer Verknüpfung V über die Schnittstellen P der Module B zu einem anderen

Endergebnis des Vergleichswerts S des Prüfwerts C am Ende einer Reihenfolge R führt. Deshalb reicht es aus, dass die überprüfung der Verknüpfungen V und der Ausführungsreihenfolge der Module B nur einmal am Ende des Programms A überprüft werden muss. Ein Alternative ist auch, dass mehrere Varianten von Verknüpfungen V der einzelnen Schnittstellen P erlaubt sind und dadurch mehrere erlaubte Vergleichswerte S des Prüfwerts C für eine Reihenfolge R ermittelt werden können. Für jede Variante der Verknüpfungen V der Schnittstellen P werden dann in dem Speicher entsprechende Erwartungswerte E 1 mit dem die verschieden Vergleichswerte aus den Verknüpfungsvarianten verglichen werden, abgelegt. Je nach Verknüpfungsvariante wird der aktuelle Vergleichswert S gegen den einen oder anderen Erwartungswert E geprüft.

Wird an einer Stelle der Vergleichsprüfung der Vergleichswerte S mit den Erwartungswerten E der Prüfwerte C ein Differenz festgestellt, wird das Programm A beispielsweise angehalten und gegebenenfalls neu gestartet oder an einer definierten Stelle mit einem vorgegebene Datenwort fortgesetzt. Der Prüfalgorithmus berechnete beispielsweise den Prüfwert C aus den Indikatoren ID mittels einer zyklischen Redundanzprüfung durch eine Polynomdivision einer Bitfolge.

in Fig. 2b ist ein zweites Programmablaufdäagramm der in Fig. 1 a dargestellten, überwachten, zweiten Reihenfolge R2 der Module B des Programms A gezeigt. Der Unterschied in diesem zweiten Ausführungsbeispiel zu dem in Fig. 2a dargestellten ersten Ausführungsbeispiels der überwachung der Ausführungsreihenfolge der Module B und der korrekten Verknüpfung V der Schnittstellen P der Module B ist, dass die Ausführung des fünften Moduls B5 und des sechsten Moduls B6 zwischen der übertragung des Datenworts von der ersten Schnittstelle P1 des ersten Moduls B1 an die dritten Schnittstelle P3 des zweiten Moduls B2 erfolgt. Da nur die zweite Reihenfolge R2 der Verknüpfungen V der Schnittstellen P1 , P3, P5, P10, P11 in dieser beiden Ausführungsbeispiele aus Fig. 2a und Fig. 2b überwacht wird, werden hier auch ein korrekter Vergleich der Vergleichswerte S der Prüfwerte C mit den Erwartungswerten E des Prüfwerte C ermittelt.

In Fig. 2c ist der Fall eines unerlaubten, dritten Programmablaufdiagramms der in Fig. 1 b überwachten, zweiten Reihenfolge R2 der Module B des Programms A gezeigt, welches keine gültige Prüfsumme C ermittelt. Die erste Schnittstelle P1 des ersten Moduls B1 ist durch eine fehlerhafte Verknüpfung FV mit der zehnten Schnittstelle P10 des vierten Moduls B4 direkt verbunden, da dadurch die Abarbeitung des zweiten Moduls B2 übergangen wird und somit die in der Konfigurationsphase vorgegeben Ausführungsreihenfolge der Module B des Programms A verändert wurde, liefert die überprüfung des Vergleichswerts S der Prüfwerte C mit dem abgespeicherten Erwartungswert E beispielsweise an der elften Schnittstelle P11 kein korrektes Ergebnis.

In Fig. 3a ist der Fall einer Kreuzverknüpfung K gezeigt, bei dem die erste Schnittstelle PI des ersten Moduls B1 nicht mit der dritten Schnittstelle P3 des zweiten Moduls B2 sondern mit der sechsten Schnittstelle P6 des fünften Moduls B5 verknüpft ist. Demzufolge ist die zweite Schnittstelle P2 des ersten Moduls B1 nicht mit der dritten Schnittstelle P3 des zweiten Moduls B2 und nicht mit der sechsten Schnittstelle PQ des fünften Moduls B5 verknüpft. Durch diese Kreuzverknüpfung K der Module B1 , B2, B3 wird zwar die Ausführungsreihenfolge des Ablaufs des Programms A nicht gestört, jedoch erzeugt die Kreuzverknüpfung K keine korrekten Vergleichs werte S der Prüfwerte C bei der Berechnung des der zweiten Schnittstelle P2 anstatt der ersten Schnittstelle P1 bei einer alleinigen

überwachung der zweiten Reihenfolge R2 der Schnittstellen P1 , P3, P5 P10, P11.

In Fig. 3b ist der Fall eines erlaubten, vierten Programmablaufdiagramms der in Fig. 3a überwachten, zweiten Reihenfolge R2 der Module B des Programms A gezeigt, welches aufgrund einer fehlerhaften Verknüpfung FV oder einer Kreuzverknüpfung K keine gültige Prüfwerte C bei der überprüfung der Verknüpfung der Schnittstellen P1 , P3, PS 1 P10, P11 der zweiten Reihenfolge R2 ermitteln kann. In dem vierten Programmablaufdiagramm wird die im ersten Modul B1 durch den zweiten Indikator ID2 gebildeten Vergleichswert S der Prüfsumme C über die Kreuzverknüpfung K an die dritte Schnittsteile P3 mit dem im zweiten Modul B2 ermittelten Daten übermittelt. Dadurch wird die Bedingungen der zweiten Reihenfolge R2 der Schnittstelle P1 , P3, PS, P10, P11 nicht eingehalten und somit wird eine fehlerhafte Verknüpfung V der Schnittstellen P der einzelnen Module B festgestellt. In diesem Fall müssen beispielsweise in einer Konfiguratäonsphase die einzelnen Verknüpfungen V der einzelnen Schnittstellen P der Module B erneut definiert werden.

Bezυgszeichenliste

A Programme, Prozesse

R Reihen, Reihenfolgen

R1 erste Reihe, erste Reihenfolge

R2 zweite Reihe, zweite Reihenfolge

R3 dritte Reihe, dritte Reihenfolge

B Module

B1 erstes Modul

B2 zweites Modui

B3 drittes Modul

B4 viertes Modul

B5 fünftes Modul

B6 sechstes Modul

P1 erste Schnittsteile

P2 zweite Schnittstelle

P3 dritte Schnittstelle

P4 vierte Schnittstelle

P5 fünfte Schnittsteile

P6 sechste Schnittstelle

P 7 siebte Schnittstelle

P8 achte Schnittstelle

P9 neunte Schnittstelle

P10 zehnte Schnittstelle

P11 elfte Schnittstelle

P12 zwölfte Schnittstelle

P13 dreizehnte Schnittstelle

ID Indikatoren

ID1 erster Indikator

!D2 zweiter Indikator

ID3 dritter Indikator

ID4 vierter Indikator

ID5 fünfter Indikator

ID6 sechster Indikator

ID7 siebter Indikator

ID8 achter Indikator

ID9 neunter Indikator

ID10 zehnter Indikator

ID11 elfter Indikator

ID12 zwölfter Indikator

ID13 dreizehnter Indikator

E Erwartungswert

S Vergleichswert

C Prüfwert

K Kreuzverknüpfung

V Verknüpfung

FV Fehlerhafte Verknüpfung