SF_TestableSafetySensor-Baustein
Funktionsbaustein
Dieser Funktionsbaustein wird genutzt, um in einer Applikation eine optische/elektronische Schutzeinrichtung - im Folgenden Sicherheitssensor genannt - mit einer Testfunktion zu unterstützen (z.B. Lichtvorhang, BWS Typ 2).
Schnittstelle
I/O |
Bezeichnung |
Datentyp |
Startwert |
Beschreibung |
IN |
Activate |
BOOL |
FALSE |
siehe Allgemeine Parameter |
IN |
S_OSSD_In |
SAFEBOOL |
SAFEFALSE |
Variable. Status des Sensorausgangs, z. B. Lichtgitter. SAFEFALSE: Sicherheitssensor im Testzustand oder Aufforderung zur sicherheitsgerichteten Reaktion. SAFETRUE:Sensor im Zustand für normale Betriebsbedingungen. |
IN |
StartTest |
BOOL |
FALSE |
Variable. Eingang zum Starten des Sensortests. Setzt S_TestOut und startet die interne Zeitüberwachungsfunktion im Funktionsbaustein. FALSE: Kein Test angefordert. TRUE:Test angefordert. |
IN |
TestTime |
TIME |
T#10ms |
Konstante. Bereich: 0 bis 150 ms. Testzeit des Sicherheitssensors. |
IN |
NoExternalTest |
BOOL |
FALSE |
Konstante. Zeigt an, ob ein externer manueller Sensortest unterstützt wird. FALSE: Der externe manuelle Sensortest wird unterstützt. Erst nach einer kompletten manuellen Sensorschaltfolge ist nach einem fehlerhaften automatischen Sensortest wieder ein automatischer Test möglich. TRUE: Der externe manuelle Sensortest wird nicht unterstützt. Nach einem fehlerhaften automatischen Sensortest ist ein automatischer Test ohne manuelle Sensorschaltfolge wieder möglich. |
IN |
S_StartReset |
SAFEBOOL |
SAFEFALSE |
siehe Allgemeine Parameter |
IN |
S_AutoReset |
SAFEBOOL |
SAFEFALSE |
siehe Allgemeine Parameter |
IN |
Reset |
BOOL |
FALSE |
siehe Allgemeine Parameter |
OUT |
Ready |
BOOL |
FALSE |
siehe Allgemeine Parameter |
OUT |
S_OSSD_Out |
SAFEBOOL |
SAFEFALSE |
Sicherheitsbezogener Ausgang, der den ESPE-Status anzeigt. SAFEFALSE: Der Sensor hat eine sicherheitsrelevante Aktionsanforderung oder einen Testfehler. SAFETRUE: Der Sensor hat keine sicherheitsrelevante Aktionsanforderung UND keinen Testfehler. |
OUT |
S_TestOut |
SAFEBOOL |
SAFETRUE |
Gekoppelt mit dem Testeingang des Sensors. Obwohl als SAFEBOOL angegeben, wird dieses Signal in der Praxis oft mit einem BOOL-Ausgang verbunden. SAFEFALSE: Testanfrage gestellt. SAFETRUE: Keine Testanfrage. |
OUT |
TestPossible |
BOOL |
FALSE |
Rückmeldesignal an den Prozess. FALSE: Ein automatischer Sensortest ist nicht möglich. TRUE: Ein automatischer Sensortest ist möglich. |
OUT |
TestExecuted |
BOOL |
FALSE |
Eine positive Signalflanke zeigt die erfolgreiche Durchführung des automatischen Sensortests an. FALSE:
TRUE: Ein Sensortest wurde erfolgreich durchgeführt. |
OUT |
SafetyDemand |
BOOL |
FALSE |
Optional. siehe Allgemeine Parameter |
OUT |
ResetRequest |
BOOL |
FALSE |
Optional. siehe Allgemeine Parameter |
OUT |
Error |
BOOL |
FALSE |
siehe Allgemeine Parameter |
OUT |
DiagCode |
WORD |
16#0000 |
siehe Allgemeine Parameter |
Funktionsbeschreibung
Der Funktionsbaustein überwacht den Status des Sicherheitssensors und stellt diesen an seinem Freigabeausgang S_OSSD_Out dar. Wenn das SAFETRUE-Signal des Sicherheitssensors nach Auslösen der Sicherheitsfunktion zurückkehrt, unterstützt der Funktionsbaustein optional eine Anlaufsperre am Freigabeausgang. Eine weitere optionale Anlaufsperre wird bei einer Aktivierung des Funktionsbausteins und bei einem Kaltstart der Sicherheitssteuerung ausgeführt.
Wenn sich in der Applikation eine mit dem Funktionsbaustein verschaltete optische/elektronische Schutzeinrichtung während des Testvorgangs nicht gemäß des definierten Testalgorithmus verhält, steuert der Funktionsbaustein seinen Freigabeausgang S_OSSD_Out in den sicheren Zustand (SAFEFALSE). Verhält sich die verschaltete optische/elektronische Schutzeinrichtung während des Testvorgangs gemäß des definierten Testalgorithmus, bleibt das Signal am Freigabeausgang S_OSSD_Out auf SAFETRUE.
Dieser Funktionsbaustein detektiert während der Testfunktion beispielsweise:
den Verlust der sensitiven Eigenschaften der optischen/elektronischen Schutzeinrichtung
die Überschreitung der voreingestellten Reaktionszeit der Schutzeinrichtung
ein irreguläres statisches SAFETRUE-Signal der Schutzeinrichtung an S_OSSD_In
Berührungslos wirkende Schutzeinrichtungen (BWS) Typ 2 verfügen über die Möglichkeit einer periodischen Testung auf gefährliche Fehler (z. B. Verlust der sensorischen Fähigkeiten, Überschreitung der spezifizierten Reaktionszeit). Das Testsignal simuliert die Aktivierung des Sicherheitssensors. Bei der Ausführung des Testalgorithmus ist der Sensor maximal 150 ms abgeschaltet. Der Test soll nachweisen, dass jeder Lichtstrahl des Sensors entsprechend der Spezifikation arbeitet. Es muss durch separate/externe Funktionen sichergestellt werden, dass der Test in angemessenen Intervallen durchgeführt wird. Die Eingänge S_StartReset und S_AutoReset dürfen nur dann aktiviert werden, wenn sichergestellt ist, dass beim Anlauf der Sicherheitssteuerung keine gefährlichen Situationen auftreten können.
Hinweis
Es ist zu beachten, dass die am Sensor wirksame Testzeit, die zu einer Deaktivierung der Sensorfunktion führt, sich aus der Summe der Worst Case Responsezeiten am Bus und der parametrierten Testtime ergeben.
Hinweis
Die Steuerung von StartTest und somit die periodische Testdurchführung liegt in Ihrer Verantwortung.
Vor dem Start der Testdurchführung sollte der Ausgangsparameter TestPossible ausgewertet werden. Der periodische Test sollte eigenverantwortlich nach dem Ergebnis der durchgeführten Risikoanalyse ausgeführt werden, indem StartTest von FALSE auf TRUE gesteuert und das Ergebnis am Funktionsbaustein ausgewertet wird.
SAFETRUE-Signal nach Auslösen der Sicherheitsfunktion
Wenn in der Applikation die ausgelöste Sicherheitsfunktion wieder auf SAFETRUE steuert, sorgt der Funktionsbaustein optional (siehe Anlaufsperre) innerhalb des sicheren Steuerungssystems dafür, dass das Freigabesignal nicht allein durch dieses Entriegeln auf SAFETRUE gesteuert wird. Hierzu ist eine weitere manuelle Handlung am Eingangsparameter Reset erforderlich (siehe Anlaufsperre).
Ablauf des Testbetriebs
Es muss beachtet werden, dass während des Testbetriebs 2 Timer zeitversetzt die durch TestTime vorgegebene Zeit durchlaufen.
Der Testbetrieb umfasst die folgenden Sequenzen:
Teststart
StartTest wechselt von FALSE auf TRUE.
Überwachungszeit 1 wird gestartet.
S_TestOut wechselt von SAFETRUE auf SAFEFALSE.
Testdurchführung
S_OSSD_In wechselt von SAFETRUE auf SAFEFALSE.
S_TestOut wechselt von SAFEFALSE auf SAFETRUE.
Überwachungszeit 1 wird gestoppt.
Überwachungszeit 2 wird gestartet.
Testende
S_OSSD_In wechselt von SAFEFALSE auf SAFETRUE.
Überwachungszeit 2 wird gestoppt.
Zusätzliche Information
1) Start
2) Normalbetrieb
3) Unterbrechung
4) Warten
Fehlererkennung
Die folgenden Bedingungen erzwingen einen Übergang in den Fehlerzustand:
Testzeitüberschreitung ohne verzögerte Sensorrückmeldung.
Test ohne Rückmeldung des Sensorsignals.
Ungültiges statisches Reset-Signal im Prozess.
Plausibilitätsprüfung der eingestellten Überwachungszeit.
Fehlerverhalten
Im Fehlerfall wird der Ausgang S_OSSD_Out auf SAFEFALSE gesetzt und verbleibt in diesem sicheren Zustand.
Sobald der Fehler behoben ist und der Sensor eingeschaltet ist (S_OSSD_In = SAFETRUE) – beseitigt ein Reset den Fehlerzustand und setzt den Ausgang S_OSSD_Out auf SAFETRUE.
Wenn S_AutoReset = SAFEFALSE ist, ist beim Reset ein steigender Trigger erforderlich.
Nach Übergang von S_OSSD_In auf SAFETRUE kann die optionale Anlaufsperre durch eine steigende Flanke am Eingang Reset zurückgesetzt werden.
Nach Bausteinaktivierung kann die optionale Anlaufsperre durch eine steigende Flanke am Eingang Reset zurückgesetzt werden.
Fehler- und Statusmeldungen
Funktionsbaustein-spezifische Fehlercodes
DiagCode |
Name |
Beschreibung und Ausgangseinstellungen |
C000 |
Parameter Error |
Ungültiger Wert beim TestTime Parameter. Es sind Werte zwischen 0 und 150 ms möglich. Ready = TRUE S_OSSD_Out = SAFEFALSE S_TestOut = SAFETRUE TestPossible = FALSE TestExecuted = FALSE SafetyDemand = FALSE ResetRequest = FALSE Error = TRUE |
C001 |
Reset Error 1 |
Statischer Reset-Zustand nach Funktionsbaustein-Aktivierung erkannt. Ready = TRUE S_OSSD_Out = SAFEFALSE S_TestOut = SAFETRUE TestPossible = FALSE TestExecuted = FALSE SafetyDemand = FALSE ResetRequest = FALSE Error = TRUE |
C011 |
Reset Error 2 |
Statischer Reset-Zustand im Zustand 8403 erkannt. Ready = TRUE S_OSSD_Out = SAFEFALSE S_TestOut = SAFETRUE TestPossible = FALSE TestExecuted = FALSE SafetyDemand = FALSE ResetRequest = FALSE Error = TRUE |
C021 |
Reset Error 3 |
Statischer Reset-Zustand im Zustand Cx10 erkannt. Ready = TRUE S_OSSD_Out = SAFEFALSE S_TestOut = SAFETRUE TestPossible = FALSE TestExecuted = FALSE SafetyDemand = FALSE ResetRequest = FALSE Error = TRUE |
C031 |
Reset Error 4 |
Statischer Reset-Zustand im Zustand 8406 erkannt. Ready = TRUE S_OSSD_Out = SAFEFALSE S_TestOut = SAFETRUE TestPossible = FALSE TestExecuted = FALSE SafetyDemand = FALSE ResetRequest = FALSE Error = TRUE |
C041 |
Reset Error 5 |
Statischer Reset-Zustand im Zustand C000 erkannt. Ready = TRUE S_OSSD_Out = SAFEFALSE S_TestOut = SAFETRUE TestPossible = FALSE TestExecuted = FALSE SafetyDemand = FALSE ResetRequest = FALSE Error = TRUE |
C051 |
Reset Error 6 |
Statischer Reset-Zustand im Zustand 8413 erkannt. Ready = TRUE S_OSSD_Out = SAFEFALSE S_TestOut = SAFETRUE TestPossible = FALSE TestExecuted = TRUE SafetyDemand = FALSE ResetRequest = FALSE Error = TRUE |
Cx10 |
Test Error 1 |
Testzeit im Zustand 8020 oder 8030 abgelaufen. Wenn S_OSSD_IN = SAFETRUE und NoExternalTest = TRUE, dann x=4 sonst x=0. Status C410: Ready = TRUE S_OSSD_Out = SAFEFALSE S_TestOut = SAFETRUE TestPossible = FALSE TestExecuted = FALSE SafetyDemand = FALSE ResetRequest = TRUE Error = TRUE Status C010: Ready = TRUE S_OSSD_Out = SAFEFALSE S_TestOut = SAFETRUE TestPossible = FALSE TestExecuted = FALSE SafetyDemand = FALSE ResetRequest = FALSE Error = TRUE |
Funktionsbaustein-spezifische Statuscodes (kein Fehler)
DiagCode |
Name |
Beschreibung und Ausgangseinstellungen |
0000 |
Idle |
Funktionsbaustein ist nicht aktiv (Ausgangszustand). Ready = FALSE S_OSSD_Out = SAFEFALSE S_TestOut = SAFETRUE TestPossible = FALSE TestExecuted = FALSE SafetyDemand = FALSE ResetRequest = FALSE Error = FALSE |
8401 |
Init |
Aktivierung wurde vom Funktionsbaustein erkannt. Ready = TRUE S_OSSD_Out = SAFEFALSE S_TestOut = SAFETRUE TestPossible = FALSE TestExecuted = FALSE SafetyDemand = FALSE ResetRequest = TRUE Error = FALSE |
8802 |
ESPE Interrupted 1 |
Der Funktionsbaustein hat eine Sicherheitsanforderung erkannt. Der Schalter wurde noch nicht automatisch getestet. Ready = TRUE S_OSSD_Out = SAFEFALSE S_TestOut = SAFETRUE TestPossible = FALSE TestExecuted = FALSE SafetyDemand = TRUE ResetRequest = FALSE Error = FALSE |
8402 |
Wait for Reset 1 |
Nach dem Status 8802 auf steigenden Trigger von Reset warten. Ready = TRUE S_OSSD_Out = SAFEFALSE S_TestOut = SAFETRUE TestPossible = FALSE TestExecuted = FALSE SafetyDemand = FALSE ResetRequest = TRUE Error = FALSE |
8002 |
External Function Test |
Der automatische Sensortest war fehlerhaft. Ein externer manueller Sensortest ist erforderlich. Am Funktionsbaustein wurde die Unterstützung für den notwendigen externen manuellen Sensortest aktiviert (NoExternalTest = FALSE). Eine negative Signalflanke am Sensor ist erforderlich. Ready = TRUE S_OSSD_Out = SAFEFALSE S_TestOut = SAFETRUE TestPossible = FALSE TestExecuted = FALSE SafetyDemand = FALSE ResetRequest = FALSE Error = FALSE |
8804 |
ESPE Interrupted External Test |
Der automatische Sensortest war fehlerhaft. Ein externer manueller Sensortest ist erforderlich. Am Funktionsbaustein wurde die Unterstützung für den notwendigen externen manuellen Sensortest aktiviert (NoExternalTest = FALSE). Ein TRUE Signal am Sensor ist erforderlich. Ready = TRUE S_OSSD_Out = SAFEFALSE S_TestOut = SAFETRUE TestPossible = FALSE TestExecuted = FALSE SafetyDemand = TRUE ResetRequest = FALSE Error = FALSE |
8404 |
End External Test |
Der automatische Sensortest war fehlerhaft. Ein externer manueller Sensortest ist erforderlich. Am Funktionsbaustein wurde die Unterstützung für den notwendigen externen manuellen Sensortest aktiviert (NoExternalTest = FALSE). Der externe manuelle Test ist abgeschlossen. Der Funktionsbaustein hat einen kompletten Sensorschaltzyklus (extern gesteuert) erkannt. Ready = TRUE S_OSSD_Out = SAFEFALSE S_TestOut = SAFETRUE TestPossible = FALSE TestExecuted = FALSE SafetyDemand = FALSE ResetRequest = TRUE Error = FALSE |
8010 |
ESPE Free No Test |
Der Funktionsbaustein hat keine Sicherheitsanforderung erkannt. Der Sensor wurde nicht automatisch getestet. Ready = TRUE S_OSSD_Out = SAFETRUE S_TestOut = SAFETRUE TestPossible = TRUE TestExecuted = FALSE SafetyDemand = FALSE ResetRequest = FALSE Error = FALSE |
8806 |
ESPE Interrupted 2 |
Der Funktionsbaustein hat eine Sicherheitsanforderung erkannt. Der Schalter wurde automatisch getestet. Ready = TRUE S_OSSD_Out = SAFEFALSE S_TestOut = SAFETRUE TestPossible = FALSE TestExecuted = TRUE SafetyDemand = TRUE ResetRequest = FALSE Error = FALSE |
8406 |
Wait for Reset 2 |
Nach dem Status 8812 auf steigenden Trigger von Reset warten. Ready = TRUE S_OSSD_Out = SAFEFALSE S_TestOut = SAFETRUE TestPossible = FALSE TestExecuted = TRUE SafetyDemand = FALSE ResetRequest = TRUE Error = FALSE |
8020 |
Test Request |
Der automatische Sensortest ist aktiv. Der Test-Timer wird zum ersten Mal gestartet. Das Sendesignal des Sensors wird vom Funktionsbaustein abgeschaltet. Das Signal des Empfängers muss dem Signal des Senders folgen. Ready = TRUE S_OSSD_Out = SAFETRUE S_TestOut = SAFEFALSE TestPossible = FALSE TestExecuted = FALSE SafetyDemand = FALSE ResetRequest = FALSE Error = FALSE |
8030 |
Test Active |
Der automatische Sensortest ist aktiv. Der Test-Timer wird zum zweiten Mal gestartet. Das Sendesignal des Sensors wird vom Funktionsbaustein eingeschaltet. Das Signal des Empfängers muss dem Signal des Senders folgen. Ready = TRUE S_OSSD_Out = SAFETRUE S_TestOut = SAFETRUE TestPossible = FALSE TestExecuted = FALSE SafetyDemand = FALSE ResetRequest = FALSE Error = FALSE |
8000 |
ESPE Free Test ok |
Der Funktionsbaustein hat keine Sicherheitsanforderung erkannt. Der Sensor wurde automatisch getestet. Ready = TRUE S_OSSD_Out = SAFETRUE S_TestOut = SAFETRUE TestPossible = TRUE TestExecuted = TRUE SafetyDemand = FALSE ResetRequest = FALSE Error = FALSE |