Skip to main content

SF_Antivalent

Anwendbare Sicherheits-Standards

SF_Antivalent ist ein zertifizierter PLCopen-Baustein. Detaillierte Informationen zu angewendeten Normen findet der Anwender bei "PLCopen - Technical Committee 5 - Safety Software"

Wichtig

Die in den Normen aufgeführten Anforderungen müssen vom Anwender erfüllt werden.

Interface-Beschreibung

Dieser Baustein verknüpft zwei antivalente SAFEBOOL-Eingänge (NO/NC Paar) zu einem SAFEBOOL-Ausgang unter Diskrepanzzeit-Überwachung. Da dieser Baustein keine Restart-Anlaufsperre besitzt, sollte er nicht stand-alone verwendet werden. Es ist erforderlich, den Ausgang mit anderen sicherheitsgerichteten Funktionalitäten zu verbinden.

Tabelle 13. VAR_INPUT

Name

Datentyp

Initialwert

Beschreibung, Parameterwerte

Activate

BOOL

FALSE

Siehe Allgemeine Eingangsparameter

S_ChannelNC

SAFEBOOL

FALSE

Variable

NC bedeutet Normally Closed.

Eingang für NC-Verbindung

FALSE: Kontakt NC offen

TRUE: Kontakt NC geschlossen

S_ChannelNO

SAFEBOOL

TRUE

Variable

NO bedeutet Normally Open

Eingang für NO-Verbindung

FALSE: Kontakt NO offen

TRUE: Kontakt NO geschlossen

DiscrepancyTime

TIME

T#0ms

Konstante

Maximale Überwachungszeit für Diskrepanzzustand beider Eingänge

Der Vorsichtshinweis "DiscrepancyTime" ist zu beachten.



DiscrepancyTime

Für Entwickler im Extended-Level gilt: Der Eingang DiscrepancyTime muss mit einem konstanten Wert beschaltet werden. Deshalb darf der Wert bei den Aufrufen nicht verändert werden!

Tabelle 14. VAR_OUTPUT

Name

Datentyp

Initialwert

Beschreibung, Parameterwerte

Ready

BOOL

FALSE

Siehe Allgemeine Ausgangsparameter

S_AntivalentOut

SAFEBOOL

FALSE

Sicherheitsgerichteter Ausgang

FALSE: Mindestens ein Eingangssignal ist „nicht aktiv“ oder die Statusänderung ist außerhalb der Überwachungszeit

TRUE: Beide Eingangssignale sind „aktiv“ und die Statusänderung ist innerhalb der Überwachungszeit.

SafetyDemand

BOOL

FALSE

Siehe Allgemeine Ausgangsparameter

Error

BOOL

FALSE

Siehe Allgemeine Ausgangsparameter

DiagCode

WORD

16#0000

Siehe Diagnose-Codes



Tipp

„Antivalent“ bedeutet, dass sich während des normalen Ablaufs die zwei Eingänge zur selben Zeit in entgegengesetzten Zuständen befinden. Dies wird manchmal auch als „komplementär“ oder „nicht equivalent“ bezeichnet.

Für bestimmte (niedrigere) Sicherheitsanforderungen kann es zulässig sein, BOOL als Eingänge und SAFEBOOL als Ausgang zu verwenden. Dies muss jedoch über die FMEA der Anwendung bewertet werden. In der Bibliothek sollte zwischen der SAFEBOOL- und BOOL-Version unterschieden werden.

Abbildung 14. Baustein SF_Antivalent
Baustein SF_Antivalent


Funktionale Beschreibung

Dieser Baustein verarbeitet zwei antivalente SAFEBOOL-Eingänge zu einem SAFEBOOL-Ausgang unter Diskrepanzzeit-Überwachung. Beide Eingänge sind voneinander abhängig. Der Ausgang des Bausteins zeigt das Auswertungsergebnis beider Kanäle an.

Wenn S_AntivalentOut = TRUE ist und sich einer der sicherheitsbezogenen Eingänge ändert, schaltet der Ausgang sofort auf FALSE.

Diskrepanzzeit-Überwachung: Die Diskrepanzzeit ist die maximale Zeitspanne, in der beide Eingänge den gleichen Zustand haben dürfen, ohne dass der Baustein einen Fehler entdeckt. Die Diskrepanzzeit-Überwachung startet, wenn sich der Zustand eines Eingangs ändert. Der Baustein entdeckt dann einen Fehler, wenn beide Eingänge nach Ablauf der Diskrepanzzeit den gleichen Wert haben.

Beide Eingänge müssen symmetrisch geschalten werden. Das bedeutet, dass das Monitoring für beide Eingänge sowohl für das Umschalten von TRUE auf FALSE als auch für das Umschalten von FALSE auf TRUE durchgeführt wird.

Tabelle 15. Logiktabelle Ein-/Ausgänge

Eingänge

Ausgänge

Activate

S_ChannelNC

S_ChannelNO

DiscrepancyTime

Ready

S_AntivalentOut

SafetyDemand

Error

DiagCode

FALSE

FALSE

TRUE

nicht gestartet

FALSE

FALSE

FALSE

FALSE

16#0000

TRUE

FALSE

TRUE

nicht gestartet

TRUE

FALSE

TRUE

FALSE

16#8801

TRUE

FALSE -> TRUE

TRUE

gestartet

TRUE

FALSE

TRUE

FALSE

16#8802

TRUE

TRUE

TRUE -> FALSE

gestartet

TRUE

TRUE

FALSE

FALSE

16#8000

TRUE

TRUE

FALSE

nicht gestartet

TRUE

TRUE

FALSE

FALSE

16#8000

TRUE

TRUE

FALSE -> TRUE

gestartet

TRUE

FALSE

TRUE

FALSE

16#8806

TRUE

TRUE -> FALSE

TRUE

gestartet

TRUE

FALSE

TRUE

FALSE

16#8801

TRUE

FALSE

TRUE

nicht gestartet

TRUE

FALSE

TRUE

FALSE

16#8801

TRUE

FALSE

TRUE -> FALSE

gestartet

TRUE

FALSE

TRUE

FALSE

16#8804

TRUE

FALSE -> TRUE

FALSE

gestartet

TRUE

TRUE

FALSE

FALSE

16#8000

TRUE

TRUE -> FALSE

FALSE

gestartet

TRUE

FALSE

TRUE

FALSE

16#8806

TRUE

FALSE

FALSE -> TRUE

gestartet

TRUE

FALSE

TRUE

FALSE

16#8801



Tipp

In der Logiktabelle steht der Pfeil -> für einen Übergang. TRUE -> FALSE bedeutet, dass sich der Wert der Variablen von TRUE auf FALSE ändert.

Zustandsübergangsdiagramm

Abbildung 15. Zustandsübergangsdiagramm SF_Antivalent
Zustandsübergangsdiagramm SF_Antivalent


Tipp

Der Übergang von jedem Zustand zum Zustand Idle , bedingt durch Activate = FALSE, wird nicht gezeigt. In jedem Fall haben diese Übergänge die höchste Priorität.

Typische Zeitdiagramme

Abbildung 16. Zeitdiagramm1 SF_Antivalent
Zeitdiagramm1 SF_Antivalent


Abbildung 17. Zeitdiagramm2 SF_Antivalent
Zeitdiagramm2 SF_Antivalent


Fehlererkennung

Der Baustein überwacht die Diskrepanzzeit zwischen Kanal NO und Kanal NC.

Fehlerverhalten

Der Ausgang S_AntivalentOut wird auf FALSE gesetzt. Error wird auf TRUE gesetzt. DiagCode zeigt die Fehlerzustände an. Es gibt keinen als Eingang definierten Reset, der mit dem Reset eines Fehlers gekoppelt ist. Sobald ein Set von Eingangswerten mit korrektem S_AntivalentOut anliegt, ist Error wieder FALSE.

Bausteinspezifische Fehler- und Zustandcodes

Tabelle 16. Bausteinspezifische Fehlercodes

DiagCode

Zustandsname

Zustandsbeschreibung und Setzen des Ausgangs

16#C010

Error 1

Diskrepanzzeit abgelaufen in Status 16#8802

Ready = TRUE

S_AntivalentOut = FALSE

SafetyDemand = FALSE

Error = TRUE

16#C020

Error 2

Diskrepanzzeit abgelaufen in Status 16#8804

Ready = TRUE

S_AntivalentOut = FALSE

SafetyDemand = FALSE

Error = TRUE

16#C030

Error 3

Diskrepanzzeit abgelaufen in Status 16#8806

Ready = TRUE

S_AntivalentOut = FALSE

SafetyDemand = FALSE

Error = TRUE



Tabelle 17. Bausteinspezifische Status-Codes

DiagCode

Zustandsname

Zustandsbeschreibung und Setzen des Ausgangs

16#0000

Idle

Der Baustein ist nicht aktiv (Grundzustand)

Ready = FALSE

S_AntivalentOut =FALSE

SafetyDemand = FALSE

Error = FALSE

16#8801

Init

Eine Aktivierung wurde durch den Baustein entdeckt und der Baustein ist jetzt aktiviert.

Ready = TRUE

S_AntivalentOut = FALSE

SafetyDemand = TRUE

Error = FALSE

16#8000

Safety Output Enabled

Die Einänge sind im Antivalent-Modus auf TRUE geschalten.

Ready =TRUE

S_AntivalentOut = TRUE

SafetyDemand = FALSE

Error = FALSE

16#8802

Wait for NO

ChannelNC ist auf TRUE umgeschalten worden - Warten bis ChannelNO auf FALSE umgeschalten wird; Diskrepanz-Timer gestartet.

Ready = TRUE

S_AntivalentOut = FALSE

SafetyDemand = TRUE

Error = FALSE

16#8804

Wait for NC

ChannelNO ist auf FALSE umgeschalten worden - Warten bis ChannelNC auf TRUE umgeschalten wird; Diskrepanz-Timer gestartet.

Ready = TRUE

S_AntivalentOut = FALSE

SafetyDemand = TRUE

Error = FALSE

16#8006

From Active Wait

Ein Kanal ist auf inaktiv umgeschalten worden; Warten, dass der zweite Kanal auch auf inaktiv geschalten wird.

Ready = TRUE

S_AntivalentOut = FALSE

SafetyDemand = TRUE

Error = FALSE