Skip to main content

Allg. Regeln für sicherheitsgerichtete Funktionsbausteine (General Rules for Safety Related Function Blocks)

Diese Programmierregeln entsprechen den „General Rules for Safety-Related Function Blocks“ der PLCopen. Sie gelten für PLCopen-konforme Funktionsbausteine.

Funktionsbausteinspezifische Regeln

Wichtig

PLCopen Funktionsbausteine können nur in Programmen und in Funktionsbausteinen, bei denen „Einmaliger Aufruf“ gesetzt ist, verwendet werden.

Default-Signal

Alle sicherheitsgerichteten booleschen E/A-Signale haben den voreingestellten sicheren Wert FALSE

Signallevel

Der Wert SAFEBOOL ist nur wie folgt anwendbar:

  • 0: Entspricht der Sicherheit, wie bei Systemausgängen definiert

  • 1: Bedeutet, dass die Sicherheitsaspekte des Systems korrekt arbeiten, so dass beispielsweise normaler Betrieb möglich ist

Dies reflektiert die Funktionalität der IEC 61131-Umgebungen, wie beispielsweise die Regeln für den Defaultwert und dass alle Ausgänge bei einem Fehlerfall auf 0 gesetzt werden.

Ausgänge

Jeder Ausgang muss in jedem Zyklus zugewiesen werden

Fehlende E/A-Parameter

Fehlende Parameter sind zulässig. Defaultwerte gelten. Diese Defaultwerte sollen unter keinen Umständen in einen nicht sicheren Zustand führen. Die Defaultwerte einschließlich ihrer Attribute (Variable oder Constant) werden in den entsprechenden Funktionsbausteinen spezifiziert.

Anlaufverhalten

Anfangs werden die Ausgänge auf die Defaultwerte gesetzt. Nach dem ersten Aufruf des Funkionsbausteins, sind die Ausgänge gültig. Es gibt ein konsistentes Anlaufverhalten (Kaltstart).

Zeitdiagramme

Zeitdiagramme, wie sie bei den Funktionsbausteinen gezeigt werden, dienen nur zur Erklärung. Sie stellen nicht das exakte Zeitverhalten dar. Das exakte Zeitverhalten hängt von der Implementierung ab.

Fehlerbehandlung und Diagnose

Alle sicherheitsgerichteten Funktionsbausteine haben zwei fehlerbezogene Ausgänge: Error und DiagCode. Sie dienen Diagnosezwecken auf Benutzeranwendungsebene, nicht zur Diagnose auf System- oder Hardewareebene.

Die Vorschrift für sicherheitsgerichtete Umgebungen ist, dass die Schaltung der sicherheitsgerichteten Funktion die höchste Priorität hat und dass es in der Folgeschaltung genügend Zeit zur Diagnose gibt, entweder im funktionalen Programm oder in der Bedienschnittstelle.

Allgemeine Eingangsparameter

Name

Datentyp

Beschreibung

Activate

BOOL

Variable oder Konstante für Aktivierung des Bausteins.

Initialwert: FALSE

Dieser Parameter kann mit der Variablen verbunden werden, die den Zustand (aktiv oder nicht aktiv) des relevanten Sicherheitsgeräts darstellt. Dies gewährleistet, dass keine irrelevanten Diagnosedaten erzeugt werden, wenn das Gerät deaktiviert wird.

FALSE: Alle Ausgangsvariablen werden auf den Initialwert gesetzt.

Wenn kein Gerät verbunden ist, muss ein statisches TRUE-Signal zugewiesen werden.

S_<sicherheitsgerichteter Eingangs-Name>

SAFExxxx

Jeder Name eines Eingangs eines SAFExxxx-Typs beginnt mit S_.

Nur Variable dürfen zugewiesen werden.

S_StartReset

SAFEBOOL

Variable oder Konstante

Aktivierung des automatischen Anlaufs des Bausteins, wenn die S-SPS gestartet wird (warm oder kalt).

FALSE (= Initialwert): Automatischer Anlauf deaktiviert; manueller Anlauf über den Eingang Reset.

TRUE: Automatischer Anlauf

Die Sicherheitshinweise für S_StartReset sind zu beachten!

S_AutoReset

SAFEBOOL

Variable oder Konstante

Aktivierung des automatischen Wiederanlaufs des Bausteins

FALSE (= Initialwert): Automatischer Wiederanlauf deaktiviert; manueller Anlauf über den Eingang Reset

TRUE: Automatischer Wiederanlauf

Die Sicherheitshinweise für S_AutoReset sind zu beachten!

Reset

BOOL

Variable

Initialwert: FALSE

Abhängig von der Funktion, kann dieser Eingang für unterschiedliche Zwecke verwendet werden.

  • Reset der Zustandsmaschine und gekoppelter Fehler- und Zustandsmeldungen wie über DiagCode angezeigt, wenn die Fehlerursache behoben wurde. Dieses Reset-Verhalten ist als Fehler-Reset konzipiert.

  • Manueller Reset einer Wiederanlaufsperre durch den Operator. Dieser Reset ist als funktionaler Reset konzipiert.

  • Zusätzliche bausteinspezifische Reset-Funktionen.

Diese Funktion ist nur bei einem Signalwechsel von FALSE nach TRUE aktiv. Ein statisches TRUE-Signal erzeugt keine weiteren Aktionen, kann aber in einigen Bausteinen als Fehler entdeckt werden.

Der Sicherheitshinweis für Reset ist zu beachten!

Die angemessene Bedeutung ist bei jedem Baustein beschrieben.

Sicherheitshinweise für S_StartReset

S_StartReset

Dieser automatische Anlauf soll nur aktiviert werden, wenn gewährleistet ist, dass keine Gefährdung beim Start der S-SPS entstehen kann. Die Verwendung des Features Automatischer-Anlauf in Funktionsbausteinen erfordert deshalb die Implementierung anderer System- oder Applikationsmaßnahmen, um sicherzustellen, dass kein unerwartetes (oder unbeabsichtigtes) Starten auftritt.

Achtung

Wird der Eingang mit einer Variablen (und nicht mit FALSE) verknüpft, so müssen zusätzliche Validierungsmaßnahmen definiert werden.

Sicherheitshinweise für S_AutoReset

Achtung

Der automatische Wiederanlauf soll nur aktiviert werden, wenn sichergestellt ist, dass es zu keinem Wiederingangsetzen der Maschine nach der Freigabe des NOT-HALT kommen kann. Die Verwendung des Features "Automatischer Wiederanlauf" in Funktionsbausteinen erfordert deshalb die Implementierung anderer System- oder Applikationsmaßnahmen, um sicher zu stellen, dass sich die Maschine nicht unerwartet (oder unbeabsichtigt) wieder in Gang setzt.

Achtung

Wenn der Eingang mit einer Variablen (und nicht mit FALSE) verknüpft wird, müssen zusätzliche Validierungsmaßnahmen definiert werden.

Sicherheitshinweis für Reset

Achtung

Abhängig von den Sicherheitsanforderungen, muss anstelle von BOOL mit SAFEBOOL verbunden werden.

Allgemeine Ausgangsparameter

Name

Datentyp

Beschreibung

Ready

BOOL

TRUE: Zeigt an, dass der Baustein aktiviert und die Ausgangs-Ergebnisse gültig sind (gleich wie die „POWER“-LED eines Sicherheits-Relais).

FALSE: Der Baustein ist nicht aktiv und das Programm wird nicht ausgeführt. Nützlich im Debug-Modus oder um zusätzliche Bausteine zu aktivieren/deaktivieren. Ebenso für die Weiterverarbeitung im funktionalen Programm.

S_<sicherheitsgerichteter Ausgangs-Name>

SAFExxxx

Jeder Name eines SAFExxxx-Typ Ausgangs beginnt mit S_.

Error

BOOL

Fehler-Flag (gleich wie die „K1/K2“-LED eines Sicherheits-Relais.)

TRUE: Zeigt an, dass ein Fehler aufgetreten ist und sich der Baustein im Fehlerzustand befindet. Der relevante Fehlerzustand wird am DiagCode-Ausgang angezeigt.

FALSE: Es gibt keinen Fehler und der Baustein befindet sich in einem anderen Zustand. Dies wird wiederum durch den Ausgang DiagCode angezeigt.

Nützlich im Debug-Modus ebenso wie für die Weiterverarbeitung im funktionalen Programm.

DiagCode

WORD

Diagnoseregister.

Alle Zustände eines Bausteins (Active, Not Active und Error) werden durch dieses Register abgebildet. Es wird immer nur ein konsistenter Code zur gleichen Zeit angezeigt. Im Falle von mehreren Fehlern zeigt der DiagCode-Ausgang den zuerst entdeckten Fehler an.

Nützlich im Debug-Modus, ebenso wie für die Weiterverarbeitung im funktionalen Programm.

Diagnose-Codes

Ein transparentes und einheitliches Diagnosekonzept bildet die Basis für alle Bausteine. Dadurch wird gewährleistet, dass ohne Rücksicht auf die Implementierung des Anwenders, dem Endanwender in Form des DiagCode einheitliche Diagnose-Information zur Verfügung steht. Besteht kein Fehler, so wird der interne Zustand des Bausteins (Zustandsmaschine) dargestellt. Ein Fehler wird über einen binären Ausgang (Error) angezeigt. Detaillierte Informationen über interne oder externe Baustein-Fehler kann man über DiagCode erhalten. Der Baustein muss über verschiedene Reset-Eingänge zurückgesetzt werden.

Tabelle 9. Allgemeine Diagnose-Code-Bereiche

DiagCode

Beschreibung

0000_0000_0000_0000bin

Der Baustein ist nicht aktiviert oder Sicherheits-CPU ist angehalten

10xx_xxxx_xxxx_xxxxbin

Zeigt an, dass sich der aktivierte Baustein im Betriebszustand ohne Fehler befindet.

X = bausteinspezifischer Code

11xx_xxxx_xxxx_xxxxbin

Zeigt an, dass sich der aktivierte Baustein im Fehlerzustand befindet.

X = bausteinspezifischer Code



Tabelle 10. System- oder gerätespezifische Codes

DiagCode

Beschreibung

0xxx_xxxx_xxxx_xxxxbin

X = System- oder gerätespezifische Meldung. Diese Information enthält Diagnose-Information des Systems oder des Geräts.

Anmerkung: 0000hex ist reserviert.



Tabelle 11. Generische Diagnose-Codes

DiagCode

Beschreibung

0000_0000_0000_0000bin

0000hex

Der Baustein ist nicht aktiviert. Dieser Code stellt den Leerlaufzustand dar. Als allgemeines Beispiel könnte die E/A-Einstellung wie folgt sein:

Activate = FALSE

S_In = FALSE oder TRUE

Ready = FALSE

Error = FALSE

S_Out = FALSE

1000_0000_0000_0000bin

8000hex

Der Baustein ist aktiviert, ohne Fehler oder eine andere Bedingung, die den Sicherheits-Ausgang auf FALSE setzt. Dies ist der Standard-Betriebszustand, in dem der Sicherheitsausgang S_Out bei Normalbetrieb TRUE ist. Als allgemeines Beispiel könnten die Ein- und Ausgänge wie folgt gesetzt sein:

Activate = TRUE

S_In = TRUE

Ready = TRUE

Error = FALSE

S_Out = TRUE

1000_0000_0000_0001bin

8001hex

Eine Aktivierung wurde durch den Baustein entdeckt und der Baustein ist jetzt aktiviert, aber der S_Out-Sicherheitsausgang ist auf FALSE gesetzt. Dieser Code stellt den Init-Zustand des Betriebs-Modus an. Als allgemeines Beispiel könnten die Ein- und Ausgänge wie folgt gesetzt sein:

Activate = TRUE

S_In = FALSE oder TRUE

Ready = TRUE

Error = FALSE

S_Out = FALSE

1000_0000_0000-0010bin

8002hex

Der aktivierte Baustein entdeckt eine Sicherheitsanforderung, zum Beispiel S_In = FALSE. Der Sicherheitsausgang ist deaktiviert (S_Out = FALSE). Als allgemeines Beispiel könnten die Ein- und Ausgänge wie folgt gesetzt sein:

Activate = TRUE

S_IN = FALSE

Ready = TRUE

Error = FALSE

S_Out = FALSE

1000_0000_0000_0011bin

8003hex

Der Sicherheitsausgang des aktivierten Baustein ist durch eine Sicherheitsanforderung deaktiviert worden. Die Sicherheitsanforderung ist jetzt zurückgenommen, aber der Sicherheitsausgang bleib solange FALSE, bis eine Reset-Bedingung entdeckt wird. Dies ist ein Betriebszustand, wo der Sicherheitsausgang S_Out = FALSE. Als allgemeines Beispiel könnten die Ein- und Ausgänge wie folgt gesetzt sein:

Activate = TRUE

S_In = FALSE => TRUE (mit statischem TRUE fortfahren)

Ready = TRUE

Error = FALSE

S_Out = FALSE



Generisches Zustandsdiagramm

Abbildung 50. Generisches Zustandsdiagramm von Sicherheits-Funktionsbausteinen
Generisches Zustandsdiagramm von Sicherheits-Funktionsbausteinen


. Erklärung des generischen Zustandsdiagramms:
  • Es wird ein genereller Überblick über die Zustände und Übergänge gezeigt. Einige Übergänge sind nicht benamt, dies bedeutet, dass sie Funktionsbaustein-spezifisch sind und mit dem jeweiligen Funktionsbaustein beschrieben werden müssen.

  • Das Diagramm zeigt drei Bereiche:

    • Im oberen Bereich ist der Funktionsbaustein nicht aktiv und ist im sicheren Zustand (sichere Ausgänge sind FALSE)

    • Im mittleren Bereich ist der Funktionsbaustein aktiv und im sicheren Zustand (sichere Ausgänge sind FALSE)

    • Im unteren Bereich ist der Funktionsbaustein in normalem Zustand (die sicheren Ausgänge sind TRUE)

  • Die erste horizontale Linie im Statusdiagramm zeigt den Übergang von einem nicht-aktiven Funktionsbaustein zu einem aktiven Funktionsbaustein.

  • Die zweite horizontale Linie zeigt den Übergang von einem nicht-sicheren zu einem sicheren Zustand

  • Die Prioritäten von möglichen parallelen Übergängen werden durch Nummern angegeben (höchste Priorität ist 0)

  • Die Zustände enthalten den Zustandsname und den hexadezimalen Diagnosecode.

  • Bedingungen OR, AND, XOR werden als logischen Operatoren und NOT als Negation verwendet.

  • Innerhalb der Funktionsbaustein-Beschreibung ist der Anfangszustand Idle, mit den Übergängen zu den einzelnen Betriebszuständen über den Zustand Init.

  • Activate = FALSE schaltet von jedem Zustand direkt in de Idle-Zustand (0 = höchste Priorität ist für Activate = FALSE reserviert). Zur besseren Übersicht werden diese Übergänge nicht in jedem Statusdiagramm eingezeichnet. Dies wird als Fußnote bei jedem Statusdiagramm erwähnt.

  • Aus Gründen der Übersicht, wird das Setzen der Ausgänge nicht im Zustandsdiagramm beschrieben Eine explizite Wahrheitstabelle, die die Information „FB-Zustände zu Ausgang (Ausgängen) “ enthält, ist Teil jeder Funktionsbaustein-Spezifikation mit der Funktionsbaustein-spezifischen Fehler- und Zustandscodes.

Tabelle 12. Bausteinspezifische Fehlercodes

DiagCode

Statusname

Statusbeschreibung und Setzen des Ausgangs

Cxxx

Error

Ready = TRUE

S_Out = FALSE

Error = TRUE



Tabelle 13. Bausteinspezifische Zustands-Codes (kein Fehler)

DiagCode

Statusname

Statusbeschreibung und Setzen des Ausgangs

0000

Idle

Ready = FALSE

S_Out = FALSE

Error = FALSE

8001

Init-Zustand des Betriebsmodus

Ready = TRUE

S_Out = FALSE

Error = FALSE

8xxx

Alle Zustände des Betriebsmodus, wo S_Out = FALSE

Ready = TRUE

S_Out = FALSE

Error = FALSE

8000

Alle Zustände des Betriebsmodus, wo S_Out = TRUE

Ready = TRUE

S_Out = TRUE

Error = FALSE