DE102009047724A1 - Verfahren zur Programmlaufkontrolle - Google Patents

Verfahren zur Programmlaufkontrolle Download PDF

Info

Publication number
DE102009047724A1
DE102009047724A1 DE102009047724A DE102009047724A DE102009047724A1 DE 102009047724 A1 DE102009047724 A1 DE 102009047724A1 DE 102009047724 A DE102009047724 A DE 102009047724A DE 102009047724 A DE102009047724 A DE 102009047724A DE 102009047724 A1 DE102009047724 A1 DE 102009047724A1
Authority
DE
Germany
Prior art keywords
program
program sequence
test value
new
monitoring
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.)
Withdrawn
Application number
DE102009047724A
Other languages
English (en)
Inventor
Christian Heim
Michael Schnalke
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.)
Endress and Hauser Wetzer GmbH and Co KG
Original Assignee
Endress and Hauser Wetzer GmbH and Co KG
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 Endress and Hauser Wetzer GmbH and Co KG filed Critical Endress and Hauser Wetzer GmbH and Co KG
Priority to DE102009047724A priority Critical patent/DE102009047724A1/de
Publication of DE102009047724A1 publication Critical patent/DE102009047724A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0428Safety, monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Programmable Controllers (AREA)

Abstract

Verfahren zur Überwachung eines Programmablaufs eines aus mehreren Funktionsmodulen (M1, M2, M3, M4, M5) zusammensetzbaren Programms (ENV), welches Programm (ENV) zum Betreiben eines Feldgerätes der Prozessautomatisierungstechnik verwendet wird, wobei der Programmablauf von den verwendeten Funktionsmodulen (M1, M2, M3, M4, M5) abhängig ist und zyklisch wiederholt wird, und jedes Funktionsmodul (M1, M2, M3, M4, M5) mindestens einen spezifischen Identifikationswert (ID0, ID1, ID2, ID3, ID4) aufweist, wobei in dem Fall, dass ein neuer Programmablauf festgelegt wird, mittels der Identifikationswerte (ID0, ID1, ID2, ID3, ID4) der verwendeten Funktionsmodule (M1, M2, M3, M4, M5) ein eindeutiger, dem neuen Programmablauf zugehöriger erster Prüfwert berechnet wird, wobei der dem neuen Programmablauf zugehörige erste Prüfwert gespeichert wird, und wobei während das Programm (ENV) ausgeführt wird, zyklisch ein dem ausgeführten Programmablauf zugehöriger zweiter Prüfwert ermittelt wird und wobei der zweite Prüfwert nur mit dem gespeicherten ersten Prüfwert verglichen wird, um den Programmablauf zu überwachen.

Description

  • Die Erfindung bezieht sich auf ein Verfahren zur Überwachung eines Programmablaufs eines aus mehreren Funktionsmodulen zusammensetzbaren Programms, welches Programm zum Betreiben eines Feldgerätes der Prozessautomatisierungstechnik verwendet wird, wobei der Programmablauf zyklisch wiederholt wird und von den verwendeten Funktionsmodulen abhängig ist, und jedes Funktionsmodul mindestens einen spezifischen Identifikationswert aufweist.
  • Zudem bezieht sich die Erfindung auf ein entsprechendes Computerprogrammprodukt.
  • Verfahren zur Überwachung der logischen Ausführungsreihenfolge und der Datenübertragung eines in einzelne Funktionsmodule 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-, Durchfluss-, 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 Prozessanlage 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, Öl-Gas) und bei Werkzeugmaschinen.
  • Die Betreiber von Anlagen mit sicherheitsrelevanten Funktionen legen im Rahmen einer Gefährdungsbeurteilung den Sicherheits-Integritätsievel 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 Programmabläufe bzw. Abweichungen vom geplanten Programmablauf 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. -kontrolle können in zwei grundlegende Ü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 Programmablaufüberwachungen beim Betrieb von Rechnersystemen" von H. Gall, 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, die die Kennzahl des Überwachungspunktes mit einer in einer Zuordnungsliste vorgegebenen Reihenfolge des Programmablaufs vergleicht und bei einer Abweichung das Programm unterbricht oder erneut startet.
  • Zudem sind auch aus der DE 102007062920 A1 und der DE 102007015369 A1 Verfahren zur Überwachung eines Programmablaufs bekannt geworden. Diese weisen jedoch den Nachteil auf, dass jeweils bereits bei der Erstellung des Programms die Zuordnungsvorschriften der Kennungszeichen kritischer Funktionen in einer nicht flüchtigen Speichereinheit z. B. einem ROM hinterlegt werden müssen.
  • Der Erfindung liegt daher die Aufgabe zugrunde, die Überwachung eines Programmablaufs zu vereinfachen.
  • Hinsichtlich des Verfahrens wird die Aufgabe dadurch gelöst, dass in dem Fall, dass ein neuer Programmablauf festgelegt wird, mittels der Identifikationswerte der verwendeten Funktionsmodule ein eindeutiger, dem neuen Programmablauf zugehöriger erster Prüfwert berechnet wird, wobei der dem neuen Programmablauf zugehörige erste Prüfwert gespeichert wird, und wobei während das Programm ausgeführt wird, zyklisch ein dem ausgeführten Programmablauf zugehöriger zweiter Prüfwert ermittelt wird und wobei der zweite Prüfwert nur mit dem gespeicherten ersten Prüfwert verglichen wird, um den Programmablauf zu überwachen.
  • Feldgeräte der Prozessautomatisierungstechnik weisen oftmals nur eine geringe Anzahl von Betriebsmitteln wie bspw. Speicher und Rechnereinheiten auf. Es wird daher angestrebt, diese vorhandenen Betriebsmittel besonders effizient zu nutzen. Während des Betriebs des Feldgerätes wird das Feldgerät von einem oder mehreren Programmen gesteuert, die u. a. zur Messwertberechnung oder ganz allgemein zur Aufrechterhaltung der verschiedenen Funktionalitäten des Feldgerätes dienen. Ein Benutzer kann jedoch bspw. von einer Warte aus oder vor Ort Einfluss auf das Programm insbesondere den Programmablauf nehmen. Ein Programm kann dabei aus verschiedenen Funktionsmoduln bestehen, die nacheinander ausgeführt werden. Durch die Auswahl der Funktionsmodule kann somit das Verhalten des Feldgerätes festgelegt, d. h. gesteuert werden. Diese Funktionsmodule können von einem Benutzer ausgewählt und in den Programmablauf eingefügt werden. Zudem kann der Benutzer bspw. den Programmablauf ändern, indem er die Reihenfolge der Funktionsmodule ändert oder neue Funktionsmodule einschließt oder andere entfernt. Der Programmablauf ist also von den Funktionsmodulen abhängig. Bei der Ausführung des Programms bspw. zur Berechnung von Messwerten wird der Programmablauf zyklisch wiederholt – solange keine Änderungen am Programmablauf vorgenommen werden. Üblicherweise sind mehrere Funktionsmodule in einem Feldgerät hinterlegt oder können von dem Feldgerät geladen werden. Ein Benutzer kann also Funktionsmodule auswählen, so dass diese bei der Ausführung des Programms verwendet werden.
  • Die Funktionsmodule weisen zu ihrer Identifizierung einen Identifikationswert wie bspw. eine Identifikationsnummer bzw. -zahlen und/oder Buchstaben auf. Anhand dieser Identifikationswerte können bspw. die zu verwendenden Funktionsmodule in den Programmablauf integriert und/oder der erste Prüfwert berechnet werden. Dieser erste Prüfwert gibt an, ob das Programm bzw. der Programmablauf wie bspw. die Reihenfolge der auszuführenden Funktionsmodule korrekt ausgeführt wurde.
  • Durch die vorliegende Erfindung wird vorgeschlagen, nur den Prüfwert, des aktuell vorliegenden Programmablaufs, d. h. der verwendeten Funktionsmodule und deren Reihenfolge als Prüfwert zu hinterlegen, und die Überwachung der nachfolgenden Programmabläufe anhand diese ersten Prüfwerts vorzunehmen. Dadurch kann der Speicherbedarf reduziert werden. Zudem ergibt sich dadurch auch eine Optimierung der Überwachung des Programmablaufs. Durch diese Optimierung ergibt sich eine Zeitersparnis, da nicht mehr -wie aus dem Stand der Technik bekannt- eine ganze Tabelle durchsucht werden muss, sondern direkt nur mit dem hinterlegten ersten Prüfwert verglichen werden kann. Als Ergebnis des Vergleichs kann ein Wahrheitswert ermittelt werden, der bspw. „true” lautet, falls die beiden Prüfwerte gleich und „false” lautet, wenn die beiden Prüfwerte verschieden sind.
  • Wird also ein neuer Programmablauf festgelegt, so wird anhand der Identifikationswerte der in dem Programmablauf vorgesehenen Funktionsmodule ein erster Prüfwert berechnet. Dieser erste Prüfwert wird dann für die nachfolgenden Programmabläufe als Vergleichswert zur Überwachung des Programmablaufs genutzt. Die Überwachung gewährleistet eine korrekte Ausführung des festgelegten neuen Programmablaufs. Der Prüfwert eines auf die Festlegung und die erstmalige, insbesondere vollständige, Ausführung des neuen Programmablaufs nachfolgende Durchführung des neuen Programmablaufs, d. h. der zweite Prüfwert, kann dazu als Vergleichswert verwendet werden.
  • In einer Ausgestaltung des Verfahrens werden zur Berechnung des ersten Prüfwerts, die Funktionsmodule entsprechend dem vorgegebenen neuen Programmablauf ausgeführt und mittels der Identifikationswerte der verwendeten Funktionsmodule der erste Prüfwert berechnet. Insbesondere bietet sich die Berechnung einer Prüfsumme aus den Identifikationswerten an, falls es sich bei den Identifikationswerten um Identifikationsnummern handelt. Als Prüfalgorithmus kann bspw. eine redundante zyklische Prüfsumme verwendet werden.
  • In einer weiteren Ausgestaltung des Verfahrens werden der erste Prüfwert und der zweite Prüfwert anhand desselben Prüfalgorithmus berechnet.
  • In einer weiteren Ausgestaltung des Verfahrens wird der dem neuen Programmablauf zugehörige erste Prüfwert in einer Lernphase ermittelt, wobei die Lernphase im Wesentlichen dem erstmaligen, insbesondere vollständigen, Ausführen des neuen Programmablaufs entspricht In dieser Lernphase kann der erste Prüfwert des neuen Programmablaufs berechnet werden. Dies kann insbesondere während des erstmaligen Ausführens des neuen, d. h. insbesondere geänderten, Programmablaufs, geschehen. Dabei kann es vorgesehen sein, dass die Funktionsmodule entsprechend dem neuen Programmablauf aufgerufen und abgearbeitet werden. Die Funktionsmodule können sich dabei mit ihrem Identifikationswert bei einer Programmablaufkontrolle melden, d. h. die Identifikationswerte werden der Programmablaufkontrolle mitgeteilt. In der Folge kann aus den Identifikationswerten der verwendeten Funktionsmodule und/oder deren Reihenfolge der erste Prüfwert berechnet werden. Die Funktionsmodule des Programms können also selbst bei einer Änderung des Programmablaufs ausgeführt werden, ohne dass bspw. die Messwertberechnung unterbrochen werden muss, um einen neuen Prüfwert zu berechnen. Der so berechnete erste Prüfwert kann dann bspw. in einer Speichereinheit hinterlegt werden.
  • Nachdem der erste Prüfwert berechnet wurde, kann die Lernphase verlassen werden und in einer nachfolgenden Ausführung des Programmablaufs ein zweiter Prüfwert berechnet werden, welcher zweite Prüfwert mit dem ersten Prüfwert zur Überwachung des Programmablaufs verglichen wird.
  • In einer weiteren Ausgestaltung des Verfahrens wird eine Konfiguration des Programms, insbesondere die Bestimmung eines neuen Programmablaufs, vor, während und/oder nach der Inbetriebnahme des Feldgerätes durchgeführt.
  • In einer weiteren Ausgestaltung des Verfahrens wird der neue Programmablauf festgelegt, indem eine neue Reihenfolge von mehreren möglichen. Reihenfolgen der Funktionsmodule festgelegt wird und/oder indem ein neues Funktionsmodul in den Programmablauf aufgenommen wird bzw. ein Funktionsmodul aus dem Programmablauf ausgeschlossen wird.
  • In einer weiteren Ausgestaltung des Verfahrens ist eine Programmablaufkontrolle vorgesehen, die parallel zum Programm ausgeführt wird, und sowohl den ersten als auch den zweiten Prüfwert berechnet. Die Programmablaufkontrolle kann bspw. aus den Identifikationswerten der Funktionsmodule die Prüfwerte berechnen. Dafür werden der Programmablaufkontrolle die erwähnten Identifikationswerte der Funktionsmodule mitgeteilt. Die Ausführung der Programmablaufkontrolle kann dabei synchron oder asynchron zu dem Programm von einer Rechnereinheit erfolgen.
  • In einer weiteren Ausgestaltung des Verfahrens werden der erste und/oder der zweite Prüfwert aus den Identifikationswerten der in einem Zyklus verwendeten Funktionsmodule gebildet, wobei ein Zyklus anhand der Identifikationsnummer eines vorgegebenen Funktionsmoduls bestimmt wird. Ein vollständiger Programmablauf besteht aus der insbesondere sequentiellen Ausführung der einzelnen Funktionsmodule.
  • Hinsichtlich des Computerprogrammprodukts wird die Aufgabe dadurch gelöst, dass Programmcodemittel vorgesehen sind, die auf einem Datenträger gespeichert sind, um alle Schritte des Verfahrens nach einem der vorherigen Ansprüche auszuführen, wenn das Computerprogrammprodukt auf einer Rechnereinheit ausgeführt wird.
  • Die Erfindung wird anhand der nachfolgenden Zeichnungen näher erläutert. Es zeigt:
  • 1: eine schematische Darstellung eines Programmablaufs und die Änderung des Programmablaufs bei der Festlegung eines neuen Programmablaufs,
  • 2: eine schematische Darstellung des Programmablaufs eines Programms zum Betreiben eines Feldgeräts und den Ablauf einer Prozessablaufkotrolle.
  • 1 zeigt eine schematische Darstellung eines Programmablaufs eines Programms zum Betreiben eines Feldgerätes.
  • Ein Programmablauf ist definiert durch die sequentielle Abfolge von Funktionsmodulen M1 bis M4. Diese Funktionsmodule melden sich am Ende Ihrer Abarbeitung bei der logischen Programmlaufkontrolle LPK mit ihren IDs. Im normalen Modus wird immer zum Zeitpunkt des Auftauchens des ersten Identifikationswerts von M1 (hier: ID0) der Prüfsummenwert mit dem gespeicherten Erwartungswert verglichen, der zuvor ermittelt wurde. ID0 fungiert hier als StartID, mit der ein Zyklus eines Programmablaufs beginnt.
  • Zum Zeitpunkt t0 wird das Programm um das Funktionsmodul M5 ergänzt, d. h. der Programmablauf ändert sich entsprechend. Zum gleichen Zeitpunkt wird der interne Modus der logischen Programmablaufkontrolle von „Normalmodus” in den „Lernmodus” umgeschaltet. Der in 1 dargestellte Schalter wird dann auf die Position „neuen Erwartungswert berechnen” gebracht. Gleichzeitig wird die Berechnung des Prüfwertes an dieser Stelle ausgesetzt. Zum Zeitpunkt t1 wird die StartID erkannt. Von diesem Zeitpunkt an wird der Erwartungswert anhand der im Folgenden eingehenden IDs berechnet. Die Berechnung endet sobald wieder die StartID eingeht. Dieser Zustand ist im Diagramm zum Zeitpunkt t2 erreicht. Zu diesem Zeitpunkt wird
    • – der neue Erwartungswert intern in der LPK gespeichert
    • – die Berechung des Prüfwertes wieder aktiviert.
    • – der Vergleich von Prüfwert und Erwartungswert bei Eingang der StartID aktiviert.
  • Die Umkonfigurierung des Ablaufs erfolgt komplett zum Zeitpunkt t0 und ist auch von diesem Zeitpunkt an aktiv. D. h. hier können die Module M1 bis M4 auch anders angeordnet werden. Die einzige Vorraussetzung für das Funktionieren der Methode ist das Vorhandensein der definierten StartID.
  • Von Vorteil ist dabei die automatische Kalibrierung der LPK ohne Konfigurationsphase, d. h. der neue Programmablauf wird sofort in der Arbeitsphase übernommen. Die LPK lernt selbstständig den neuen Programmablauf. Der Erwartungswert wird innerhalb der Arbeitsphase im nächsten Makrozyklus ermittelt nachdem eine Änderung am Makrozyklus vorgenommen wurde. Eine StartID wird als interner Trigger für die Neukalibrierung der LPK verwendet. Die Neukalibrierung wird automatisch wieder beendet und der Normalbetrieb wieder aufgenommen
  • Es ist nur eine korrekte Programmausführung zu einer gegebenen Parametrierung möglich, d. h. es existiert lediglich ein korrekter Erwartungswert für das Ergebnis der Prüfsummenberechnung. Dieser Erwartungswert wird aber nicht für alle korrekten Programmabläufe im Code hinterlegt, sondern wird durch die Firmware nach einer Umparametrierung automatisch berechnet und als neuer Vergleichswert gespeichert. Diese neue Berechnung erfolgt, indem in der Programmablaufkontrolle auf einen definierten Startwert innerhalb der IDs getriggert wird. In der Folge wird dann der Programmablauf sozusagen eingelesen. D. h. auch hier wird ein neuer Prüfwert errechnet, der in der Folge als neuer Erwartungswert abgespeichert wird. Endkriterium für die Neuberechnung des neuen Erwartungswertes ist dann das erneute auftauchen des definierten Startwertes in der Programmablaufkontrolle. Die Firmware kann durch die vorliegende Erfindung flexibel auf die verschiedenen Variationen reagieren.
  • Anhand des Verfahrens kann also der logische und/oder zeitliche Programmablauf von kritischen Funktionen im Programm eines Feldgerätes der Prozess- und Automatisierungstechnik anhand bspw. einer CRC-Prüfsummenberechnung überwacht werden. Dafür müssen keine Tabellen hinterlegt werden. Die Programmablaufkontrolle kann einen bestimmten Ablauf lernen.
  • 2 zeigt das Zusammenspiel von Programmablaufkontrolle und Programmablauf. In Feldgeräten, die nach IEC 61508 entwickelt werden, ist für die Erlangung von SIL 2 bzw. SIL 3 eine zeitliche und logische Programmablaufkontrolle zu implementieren. Die üblichen Implementierungen verwenden dabei Tabellen, in welchen der Programmablauf gespeichert wurde. Die Programmablaufkontrolle muss dann jedes Mal, wenn sich eine Funktion meldet überprüfen, ob sowohl der zeitliche als auch der logische Programmablauf noch gegeben ist.
  • In der in 2 gezeigten Ausgestaltung der Erfindung melden sich die Funktionen, sobald diese ausgeführt werden, auch mit einer ID bei der Ablaufkontrolle an. Dabei wird mit den IDs eine CRC-Prüfsummenberechnung angestoßen. D. h. es muss lediglich eine CRC-Prüfsumme in der Programmablaufkontrolle zwischengespeichert werden. Am Ende des Programmablaufs kann die während des Programmablaufs berechnete Prüfsumme mit einer zuvor gespeicherten Prüfsumme verglichen werden und eine Aussage darüber getroffen werden, ob der Programmablauf in Ordnung war. Für den Fall einer Embedded Software kann dann z. B. in diesem Fall ein Watchdog der den Programmablauf überwacht getriggert werden. Sollte der Vergleich der Prüfsummen fehlschlagen, dann wird der Watchdog nicht getriggert und es wird anschließend ein Watchdogreset durchgeführt.
  • Die zwischengespeicherte „Soll”-Prüfsumme muss nach einer Konfigurationsänderung, d. h. Änderung des Programmablaufs, neu berechnet werden. Dazu ist es notwendig, dass eine definierte StartID im Ablauf vorkommt. Diese kann bspw. von einem Benutzer festgelegt oder anderweitig vorgegeben sein bzw. eingestellt werden. Nach einer Konfigurationsänderung, die einen Einfluss auf den logischen Programmablauf hat, wird in der Programmablaufkontrolle ein Flag gesetzt, welches anzeigt, dass die Programmablaufkontrolle im Lernmodus ist. In diesem Zustand wartet die Programmablaufkontrolle solange, bis sich das Funktionsmodul mit der StartID meldet. Anschließend werden über alle FunktionsIDs, die sich bei der Ablaufkontrolle melden die CRC-Prüfsumme berechnet. Die Prüfsumme, die sich nach dem letzten Funktionsmodul errechnet (erkennbar am erneuten Auftreten der StartID in der LPK) wird dann in der Programmablaufkontrolle gespeichert und dient im Folgenden für den Vergleich der im Betrieb ermittelten Prüfsummen. Sobald das Modul mit der StartID sich wieder bei der LPK meldet, ist der Lernzyklus abgeschlossen und die LPK geht wieder in den normalen Überwachungsmodus.
  • Bezugszeichenliste
    • M1
      Erster Funktionsblock
      M2
      Zweiter Funktionsblock
      M3
      Dritter Funktionsblock
      M4
      Vierter Funktionsblock
      M5
      Fünfter Funktionsblock
      ID1
      Erster Identifikationswert
      ID2
      Zweiter Identifikationswert
      ID3
      Dritter Identifikationswert
      ID4
      Vierter Identifikationswert
      ID5
      Fünfter Identifikationswert
      t
      Zeit
      t0
      Programmablauf wird geändert
      t1
      ID0 wird erkannt
      t2
      Ende der Prüfwertberechnung
      ENV
      Programm („Environment”)
      LPK
      Logische Prozessablaufkontrolle
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • EP 1043641 A2 [0008]
    • DE 102007015369 A1 [0008, 0009]
    • DE 102007062920 A1 [0009]
  • Zitierte Nicht-Patentliteratur
    • IEC/DIN EN 61508 [0004]
    • IEC/DIN EN 61511 [0004]
    • „Wirksamkeit von zeitlichen und Logischen Programmablaufüberwachungen beim Betrieb von Rechnersystemen” von H. Gall, K. Kemp [0007]
    • IEC 61508 [0035]

Claims (9)

  1. Verfahren zur Überwachung eines Programmablaufs eines aus mehreren Funktionsmodulen (M1, M2, M3, M4, M5) zusammensetzbaren Programms (ENV), welches Programm (ENV) zum Betreiben eines Feldgerätes der Prozessautomatisierungstechnik verwendet wird, wobei der Programmablauf von den verwendeten Funktionsmodulen (M1, M2, M3, M4) abhängig ist und zyklisch wiederholt wird, und jedes Funktionsmodul (M1, M2, M3, M4) mindestens einen spezifischen Identifikationswert (ID0, ID1, ID2, ID3, ID4) aufweist, wobei in dem Fall, dass ein neuer Programmablauf festgelegt wird, mittels der Identifikationswerte (ID0, ID1, ID2, ID3, ID4) der verwendeten Funktionsmodule (M1, M2, M3, M4, M5) ein eindeutiger, dem neuen Programmablauf zugehöriger erster Prüfwert berechnet wird, wobei der dem neuen Programmablauf zugehörige erste Prüfwert gespeichert wird, und wobei während das Programm (ENV) ausgeführt wird, zyklisch ein dem ausgeführten Programmablauf zugehöriger zweiter Prüfwert ermittelt wird und wobei der zweite Prüfwert nur mit dem gespeicherten ersten Prüfwert verglichen wird, um den Programmablauf zu überwachen.
  2. Verfahren zur Überwachung eines Programmablaufs nach Anspruch 1, wobei zur Berechnung des ersten Prüfwerts, die Funktionsmodule (M1, M2, M3, M4, M5) entsprechend dem vorgegebenen neuen Programmablauf ausgeführt werden und mittels der Identifikationswerte der verwendeten Funktionsmodule (M1, M2, M3, M4, M5) der erste Prüfwert berechnet wird.
  3. Verfahren zur Überwachung eines Programmablaufs nach Anspruch 1 oder 2, wobei der erste Prüfwert und der zweite Prüfwert anhand desselben Prüfalgorithmus berechnet werden.
  4. Verfahren zur Überwachung eines Programmablaufs nach wenigstens einem der vorherigen Ansprüche, wobei der dem neuen Programmablauf zugehörige erste Prüfwert in einer Lernphase ermittelt wird, wobei die Lernphase im Wesentlichen dem erstmaligen Ausführen des neuen Programmablaufs entspricht.
  5. Verfahren zur Überwachung eines Programmablaufs nach wenigstens einem der vorherigen Ansprüche, wobei eine Konfiguration des Programms (ENV), insbesondere die Bestimmung eines neuen Programmablaufs, vor, während und/oder nach der Inbetriebnahme des Feldgerätes durchgeführt wird,
  6. Verfahren zur Überwachung eines Programmablaufs nach wenigstens einem der vorherigen Ansprüche, wobei der neue Programmablauf festgelegt wird, indem eine neue Reihenfolge von mehreren möglichen Reihenfolgen der Funktionsmodule (M1, M2, M3, M4, M5) festgelegt wird und/oder indem ein neues Funktionsmodul (M1, M2, M3, M4, M5) in den Programmablauf aufgenommen wird bzw. ein Funktionsmodul (M1, M2, M3, M4, M5) aus dem Programmablauf ausgeschlossen wird.
  7. Verfahren zur Überwachung eines Programmablaufs nach wenigstens einem der vorherigen Ansprüche, wobei eine Programmablaufkontrolle (LPK) vorgesehen ist, die parallel zum Programm (ENV) ausgeführt wird, und sowohl den ersten als auch den zweiten Prüfwert berechnet.
  8. Verfahren zur Überwachung eines Programmablaufs nach wenigstens einem der vorherigen Ansprüche, wobei der erste und/oder der zweite Prüfwert aus den Identifikationswerten (ID0, ID1, ID2, ID3, ID4) der in einem Zyklus verwendeten Funktionsmodule (M1, M2, M3, M4, M5) gebildet werden, wobei ein Zyklus anhand der Identifikationswerte (ID0, ID1, ID2, ID3, ID4) eines vorgegebenen Funktionsmoduls (M1, M2, M3, M4, M5) bestimmt wird.
  9. Computerprogrammprodukt mit Programmcodemitteln, die auf einem Datenträger gespeichert sind, um alle Schritte des Verfahrens nach einem der vorherigen Ansprüche auszuführen, wenn das Computerprogrammprodukt auf einer Rechnereinheit ausgeführt wird.
DE102009047724A 2009-12-09 2009-12-09 Verfahren zur Programmlaufkontrolle Withdrawn DE102009047724A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102009047724A DE102009047724A1 (de) 2009-12-09 2009-12-09 Verfahren zur Programmlaufkontrolle

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102009047724A DE102009047724A1 (de) 2009-12-09 2009-12-09 Verfahren zur Programmlaufkontrolle

Publications (1)

Publication Number Publication Date
DE102009047724A1 true DE102009047724A1 (de) 2011-06-16

Family

ID=43992543

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102009047724A Withdrawn DE102009047724A1 (de) 2009-12-09 2009-12-09 Verfahren zur Programmlaufkontrolle

Country Status (1)

Country Link
DE (1) DE102009047724A1 (de)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103135518A (zh) * 2011-12-02 2013-06-05 费希尔控制国际公司 程序流控制监控例程、与之相关的方法以及系统
CN104572472A (zh) * 2015-01-28 2015-04-29 中国农业银行股份有限公司 一种程序执行顺序诊断方法与系统
CN108153285A (zh) * 2017-12-28 2018-06-12 上汽通用五菱汽车股份有限公司 汽车安全监控方法、装置、存储介质及系统
FR3101972A1 (fr) * 2019-10-10 2021-04-16 Continental Automotive Dispositif de surveillance

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3008036C2 (de) * 1980-03-03 1990-07-19 Robert Bosch Gmbh, 7000 Stuttgart, De
EP1043641A2 (de) 1999-04-09 2000-10-11 Siemens Aktiengesellschaft Fehlersicheres Automatisierungssystem mit Standard-CPU und Verfahren für ein fehlersicheres Automatisierungssystem
DE102007015369A1 (de) 2006-12-29 2008-07-03 Endress + Hauser Gmbh + Co. Kg Verfahren zur Überwachung des logischen Programmablaufs von kritischen Funktionen in Programmen eines Feldgeräts der Prozess- und Automatisierungstechnik
DE102007062920A1 (de) 2007-12-21 2009-06-25 Endress + Hauser Gmbh + Co. Kg Verfahren zur Überwachung der logischen Ausführungsreihenfolge und der Datenübertragung eines in einzelne Module unterteilten Programms

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3008036C2 (de) * 1980-03-03 1990-07-19 Robert Bosch Gmbh, 7000 Stuttgart, De
EP1043641A2 (de) 1999-04-09 2000-10-11 Siemens Aktiengesellschaft Fehlersicheres Automatisierungssystem mit Standard-CPU und Verfahren für ein fehlersicheres Automatisierungssystem
DE102007015369A1 (de) 2006-12-29 2008-07-03 Endress + Hauser Gmbh + Co. Kg Verfahren zur Überwachung des logischen Programmablaufs von kritischen Funktionen in Programmen eines Feldgeräts der Prozess- und Automatisierungstechnik
DE102007062920A1 (de) 2007-12-21 2009-06-25 Endress + Hauser Gmbh + Co. Kg Verfahren zur Überwachung der logischen Ausführungsreihenfolge und der Datenübertragung eines in einzelne Module unterteilten Programms

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"Wirksamkeit von zeitlichen und Logischen Programmablaufüberwachungen beim Betrieb von Rechnersystemen" von H. Gall, K. Kemp
IEC 61508
IEC/DIN EN 61508
IEC/DIN EN 61511

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103135518A (zh) * 2011-12-02 2013-06-05 费希尔控制国际公司 程序流控制监控例程、与之相关的方法以及系统
WO2013082256A1 (en) * 2011-12-02 2013-06-06 Fisher Controls International Llc Program flow control monitoring routines, related methods and systems
US9087074B2 (en) 2011-12-02 2015-07-21 Fisher Controls International Llc Program flow control monitoring routines, related methods and systems
CN104572472A (zh) * 2015-01-28 2015-04-29 中国农业银行股份有限公司 一种程序执行顺序诊断方法与系统
CN108153285A (zh) * 2017-12-28 2018-06-12 上汽通用五菱汽车股份有限公司 汽车安全监控方法、装置、存储介质及系统
CN108153285B (zh) * 2017-12-28 2020-12-15 上汽通用五菱汽车股份有限公司 汽车安全监控方法、装置、存储介质及系统
FR3101972A1 (fr) * 2019-10-10 2021-04-16 Continental Automotive Dispositif de surveillance

Similar Documents

Publication Publication Date Title
DE102017211737B4 (de) Überwachungsvorrichtung und Verfahren zur Überwachung eines Systems
EP2564277B1 (de) Verfahren und vorrichtung zum identifizieren einer zuordnung von regelkreisen zu mindestens einer regelvorrichtung
DE102007054672A1 (de) Feldgerät zur Bestimmung oder Überwachung einer Prozessgröße in der Prozessautomatisierung
EP3282399B1 (de) Verfahren zur verbesserten erkennung von prozessanomalien einer technischen anlage sowie entsprechendes diagnosesystem
EP2927819A1 (de) Verfahren zur automatischen Verarbeitung einer Anzahl von Protokolldateien eines Automatisierungssystems
DE102016102282B4 (de) Verfahren und Vorrichtung zum Überwachen einer Datenverarbeitung und -übertragung in einer Sicherheitskette eines Sicherheitssystems
EP3546314A1 (de) Verfahren und vorrichtung zur fehleridentifizierung für ein technisches system
DE102011088236A1 (de) Verfahren zum sicheren Betreiben eines Feldgerätes der Prozessautomatisierungstechnik
DE102009047724A1 (de) Verfahren zur Programmlaufkontrolle
WO2017080793A2 (de) Verfahren zum betrieb eines mehrkernprozessors
DE102019120864B3 (de) Verfahren und Vorrichtung zur Planung von Wartungsarbeiten an wenigstens einer Maschine
EP2082299B1 (de) Verfahren zur durchführung von online-programmänderungen an einem automatisierungssystem
EP3151072B1 (de) Verfahren und system zur fehlererkennung und überwachung bei einem elektronisch geregelten oder gesteuerten maschinenteil
DE102007015369A1 (de) Verfahren zur Überwachung des logischen Programmablaufs von kritischen Funktionen in Programmen eines Feldgeräts der Prozess- und Automatisierungstechnik
EP2928157B1 (de) Verfahren zur Analyse und/oder Evaluierung von mindestens einem Ereignis einer technischen Anlage
EP3779619B1 (de) Verfahren und vorrichtung zur bestimmung emergenter risiken eines technischen systems
EP3454154A1 (de) Automatisierte erkennung von statistischen abhängigkeiten zwischen prozessmeldungen
EP1507181B1 (de) Verfahren und Vorrichtung zur mehrstufigen Datenverarbeitung, insbesondere zur Diagnose, in einer technischen Anlage
DE102007062920A1 (de) Verfahren zur Überwachung der logischen Ausführungsreihenfolge und der Datenübertragung eines in einzelne Module unterteilten Programms
DE102019109353B3 (de) Dynamische Anomalieerkennung und -behandlung
EP2189863A1 (de) Verfahren zur Erfassung eines Maschinenzustandes
EP2420908A1 (de) Automatisierungseinrichtung und Verfahren zum Betreiben und zur Vorhersage deren Betriebsdauer
EP3916503A1 (de) Verfahren zur überwachung von betriebsparametern
EP1461701B1 (de) Programmgesteuerte einheit mit überwachungseinrichtung
EP3489774B1 (de) Automatisierte ermittlung einer parametrierung eines auswerteverfahrens

Legal Events

Date Code Title Description
OM8 Search report available as to paragraph 43 lit. 1 sentence 1 patent law
R005 Application deemed withdrawn due to failure to request examination