-

Fehlervermeidung

Dieses Thema enthält die folgenden Abschnitte:

Validierung

Einzig und allein Sie als Anwender, Maschinenbauer oder Systemintegrator sind sich sämtlicher Bedingungen und Faktoren bewusst, die im Design der Anwendung für die Maschine realisiert sind. Daher können nur Sie bestimmen, welche Automatisierungsgeräte und dazugehörige Sicherheiten und Verriegelungen verwendet werden können und deren Verwendung validieren.

WARNUNG
Unbeabsichtigter Betriebszustand des Geräts

Validieren Sie die gesamte Sicherheitsfunktion und prüfen Sie die Applikation sorgfältig.

Erkennen von inkorrekten/ungültigen Schreibvorgängen auf Rezeptur-Dateien (Datensätze)

Der Funktionsbaustein und die Sicherheitssteuerung implementieren mehrere Verifizierungs- und Validierungsmaßnahmen, die dazu beitragen, eine Fehlfunktion des FB (und damit ggf. der gesamten Sicherheitsfunktion) durch die Verwendung ungültiger Rezepturdaten zu verhindern.

Mögliche Fehler/ungültige OperationZu vermeidende KonsequenzenGegenmaßnahme des FB
Ungültige Dateikennung und/oder Datensatzkennung an den FB-Eingängen IDRecipeFile und/oder IDRecipeDataSet. Die IDs liegen nicht innerhalb des gültigen Wertebereichs.Daten können nicht in die Datei geschrieben werden.Der FB verifiziert jede ID an den FB-Eingängen.

In der Folge:
  • werden keine Daten geschrieben und
  • der Ausgang Done bleibt SAFEFALSE und
  • der FB zeigt einen Fehlercode an seinem DiagCode-Ausgang.
Die geschriebenen Rezepturdaten wurden im RAM der Sicherheitssteuerung durch einen Soft-Error verfälscht/beschädigt.Die Rezeptur-Datei enthält ungültige Werte, die zu einer Fehlfunktion der sicherheitsbezogenen Applikation und damit zu gefährlichen Situationen führen könnten.Die Sicherheitssteuerung vergleicht die CRC über die zu schreibenden Daten zwischen ihren beiden (diversitären) Kanälen.

Sollte eine Inkonsistenz erkannt werden,
  • wird die Rezeptur-Datei nicht geschrieben und
  • der Ausgang Done bleibt SAFEFALSE und
  • der FB zeigt einen Fehlercode an seinem DiagCode-Ausgang.
Die Sicherheitssteuerung wird während des Schreibvorgangs auf die Rezeptur-Datei ausgeschaltet.Die Rezeptur-Datei ist nicht vollständig und enthält unvollständige Werte, die zu einer Fehlfunktion der sicherheitsbezogenen Applikation und damit zu gefährlichen Situationen führen könnten.

Hinweis
Sollte die Sicherheitssteuerung während des Schreibvorgangs in den Zustand HALT gehen, verursacht dies keinen Fehler. Nachdem die Ausführung des FB gestartet wurde, wird er im Hintergrund fertig ausgeführt. Außerdem wird die sicherheitsbezogene Applikation im Zustand HALT nicht ausgeführt.

Die Sicherheitssteuerung verifiziert die Datei-CRC (FileCRC) und erkennt somit ein unvollständige Rezeptur-Datei.

In der Folge:
  • wird die Rezeptur-Datei als ungültig erachtet und
  • der Ausgang Done bleibt SAFEFALSE und
  • der FB zeigt einen Fehlercode an seinem DiagCode-Ausgang.
Löschen Sie die betroffene Rezeptur-Datei mit dem Baustein SF_RecipeDeleteFile.
Mehrere gleichzeitige Schreibvorgänge auf einen Datensatz durch mehrere Instanzen des SF_RecipeWrite-FB.Wenn die Sicherheitssteuerung innerhalb eines Zyklus mehrere Schreibanforderungen auf denselben Datensatz erhält, werden diese Daten im RAM überschrieben. Diese Daten sind dann unerwartet, was zu einer Fehlfunktion der sicherheitsbezogenen Applikation und damit zu gefährlichen Situationen führen könnten.Die Daten der zuerst ausgeführten FB-Instanz gehen verloren. Die Sicherheitssteuerung erkennt diesen Datenverlust indem sie die Prüfsumme über den betroffenen Datensatz (DataSetCRC) verifiziert.

Für die nicht zuletzt ausgeführte Instanz gilt folgendes:
  • der Ausgang Done bleibt SAFEFALSE und
  • der FB zeigt einen Fehlercode an seinem DiagCode-Ausgang.
Nur die zuletzt ausgeführte FB-Instanz steuert ihren Done-Ausgang auf SAFETRUE.
Gleichzeitiges Lesen und Schreiben innerhalb eines Zyklus der sicherheitsbezogenen SPS.Wenn eine bereits aktivierte SF_RecipeRead-Instanz zyklisch Daten aus einem Datensatz im RAM der Sicherheitssteuerung liest und der Datensatz dann zu Beginn des Zyklus (vor der Leseoperation) von einem SF_RecipeWrite-FB überschrieben wird, dann entsprechen die gelesenen Daten in diesem Zyklus unter Umständen nicht den erwarteten Werten. Dies könnte zu einer Fehlfunktion der sicherheitsbezogenen Applikation und damit zu gefährlichen Situationen führen.

Im Beispiel eines Signalablauf-Diagramms finden Sie weitere Informationen hierzu.
Die Sicherheitssteuerung verriegelt eine Rezeptur-Datei im RAM gegen Lesezugriffe, sobald deren Inhalt verändert wurde. Diese Verriegelung wird aufgehoben, nachdem die Daten erfolgreich in das Dateisystem (im Flash-Speicher) geschrieben und validiert wurden.

Für die beteiligte SF_RecipeRead-Instanz gilt dabei:
  • der Ausgang Done bleibt SAFEFALSE und
  • der FB zeigt einen Fehlercode an seinem DiagCode-Ausgang.
Die beteiligte SF_RecipeWrite-Instanz ist hiervon jedoch nicht betroffen und kann seine Operation erfolgreich abschließen (Done = SAFETRUE).

Gleichzeitiges Schreiben und Löschen einer Datei innerhalb eines Zyklus

Wenn eine SF_RecipeWrite-Instanz aktuell einen Datensatz im RAM schreibt und dann eine SF_RecipeDeleteFile- oder SF_RecipeDeleteDataSet-Instanz im selben Zyklus und auf dieselbe Datei bzw. den Datensatz einen Löschvorgang initiiert, werden die betroffenen Daten im RAM gelöscht. Dadurch wird der SF_RecipeWrite unterbrochen und geht in einen Fehlerzustand, was er an seinem DiagCode-Ausgang anzeigt. Die Instanz des SF_RecipeDeleteFile- oder SF_RecipeDeleteDataSet-FB kann dagegen ihre Operation erfolgreich abschließen.

Falls der betroffene (d.h. gelöschte) Datensatz jedoch in Ihrer sicherheitsbezogenen Applikation zyklisch gelesen und verarbeitet wird, könnte dies zu einer Fehlfunktion der sicherheitsbezogenen Applikation und zu Gefährdungen führen.

Dieses Szenario wird nicht als fehlerhaft betrachtet und wird deshalb von der sicherheitsbezogenen SPS nicht verhindert. Es liegt in Ihrer Verantwortung als Applikationsentwickler, solche Schreib- und Löschoperationen auf Datensätze bzw. Dateien in der sicherheitsbezogenen Applikation entsprechend zu koordinieren.

Gleichzeitiges Schreiben und Löschen eines Datensatzes innerhalb eines Zyklus

Wenn eine Instanz des SF_RecipeWrite-FB und des SF_RecipeDeleteDataSet-FB innerhalb desselben Zyklus für denselben Datensatz aufgerufen werden, schließt die zuletzt aufgerufene Instanz ihre Operation erfolgreich ab. Die Operation der zuerst aufgerufenen Instanz wird "aufgehoben" und meldet einen Fehler, da sie ihre Werte nicht validieren kann.
Beispiel: Zunächst wird eine Instanz des SF_RecipeWrite aufgerufen und schreibt ihre Payload-Werte in den Datensatz. Anschließend startet die Ausführung eines SF_RecipeDeleteDataSet und überschreibt die neu geschriebenen Werte im Datensatz mit Nullen (und beendet seine Operation erfolgreich).

Dieses Szenario wird nicht als fehlerhaft betrachtet und wird deshalb von der sicherheitsbezogenen SPS nicht verhindert. Es liegt in Ihrer Verantwortung als Applikationsentwickler, solche Schreib- und Löschoperationen auf Datensätze bzw. Dateien in der sicherheitsbezogenen Applikation entsprechend zu koordinieren.

Plausibilitätsfehler und Verschaltungsfehler

Plausibilitätsfehler sind Fehler, die beispielsweise durch Überschreiten von Wertebereichen oder unzulässiges Verschalten auftreten. Solche Fehler werden entweder vom Baustein selbst oder beim Kompilieren des Projekts erkannt und gemeldet. Bei Verschaltungsfehlern ist das jedoch nicht immer möglich.

So ist es beispielsweise nicht möglich, automatisch zu prüfen, ob:

WARNUNG
Unbeabsichtigter Betriebszustand des Geräts

Führen Sie eine Validierung der Signale, Formeln, Variablen oder Konstanten durch, die mit den Formalparametern des sicherheitsbezogenen Funktionsbausteins verbunden sind, und prüfen Sie die Anwendung sorgfältig.

Sporadisch wechselnde oder toggelnde Signalpegel oder unzulässige Signale

Werden keine weiteren Maßnahmen zur Fehlervermeidung vorgenommen, führen sporadisch wechselnde oder toggelnde Signalpegel an den zustandsgesteuerten Eingängen möglicherweise dazu, dass dieses Signal eine entsprechende Aktion ungewollt auslöst.

Unzulässige Signale an Eingängen können zu einem unbeabsichtigten Anlauf oder zur Nichtausführung einer angeforderten Aktion oder zu einem Fehler führen.

Mögliche Ursachen dieser Signale können sein:

Um dies zu vermeiden, sind je nach Sicherheitsfunktion folgende Maßnahmen möglich:

Die genannten Maßnahmen können auch kombiniert werden, um Sie besser bei der Fehlererkennung und Fehlervemeidung zu unterstützen.

Anlauf der Maschine/Anlage ohne Funktionsprüfung der Schutzeinrichtung

Eine defekte Schutzeinrichtung wird nur durch eine Funktionsprüfung erkannt. Eine Funktionsprüfung wird vom Funktionsbaustein nicht unterstützt.

Mögliche Ursachen für eine defekte Schutzeinrichtung:

WARNUNG
Unbeabsichtigter Betriebszustand des Geräts
  • Führen Sie eine Validierung der Schutzeinrichtung durch Funktionsprüfungen durch.
  • Stellen Sie vor der Durchführung der Funktionsprüfungen sicher, dass geeignete Maßnahmen (gemäß zutreffender Sektornormen) getroffen wurden, um Gefährdungen im Falle eines unbeabsichtigten Verhaltens der Sicherheitslogik zu verhindern.
  • Betreten Sie den Betriebsbereich nicht, während die Maschine in Betrieb ist.
  • Stellen Sie sicher, dass keine anderen Personen den Betriebsbereich betreten können, während die Maschine in Betrieb ist.
  • Beachten Sie die vorgegebenen Richtlinien in relevanten Sektornormen, wenn die Maschine in einer anderen Betriebsart als "In Betrieb" läuft.
  • Verwenden Sie geeignete Sicherheitsverriegelungen, wenn eine Gefahr für Personen und/oder Ausrüstung besteht.