Programmierbeispiel für Basic Level
Als CODESYS Safety Extension Programmierbeispiel für ein Programm im Basic Level wird das Beispiel „2-Hand-Kontrolle mit EDM“ des Dokuments „PLCopen - Technical Committee 5 Safety Software Technical Specification Part 2: User Examples Version 1.01 – Official Release“ verwendet und als CODESYS Safety Extension FUP-Implementierung dargestellt.
Tipp
Für weitere Beispiele zur Programmierung im Basic-Level wird auf das Dokument „PLCopen - Technical Committee 5 Safety Software
Funktionale Beschreibung der Sicherheitsfunktionen
Folgende Sicherheitsfunktionen werden in diesem Beispiel verwendet:
Bei Betätigen des Not-HaltTasters müssen alle gefahrbringenden Bewegungen gestoppt werden (über
SF_EmergencyStop
)Not-Halt hat die höchste Priorität. Nach Lösen des
EStop
-Druckknopfs wird ein Reset über S0-Reset benötigt.Der Sicherheitsausgang wird durch Drücken beider Drucktaster der Zwei-Hand-Kontrolle aktiviert. Das Lösen irgendeines der Zwei-Hand-Drucktaster deaktiviert den Sicherheitsausgang und stoppt die gefahrbringende Bewegung über die Schaltvorrichtungen
K1
undK2
(überSF_TwoHandControlTypeII
)Der Grundzustand und der Betriebszustand der verbundenen Schaltvorrichtungen werden überwacht. Falls ein Fehler entdeckt wird, kann der Sicherheitsausgang nicht funktionsbereit werden. (über
SF_EDM
)Nach Anschalten der Sicherheits- oder der funktionalen Anwendung, oder nach einer Not-Halt Bedingung muss die Zwei-Hand-Kontrolle gelöst und wieder betätigt werden, um den Sicherheitsausgang wieder zu aktivieren (über
SF_OutControl
). Um dies für den funktionalen Neustart zu gewährleisten, ist das Prozess-Signal der funktionalen Applikation mit demActivate
-Eingang des Zwei-Hand-Kontrolle BausteinsTHC_S2_S3
verbunden. (Wenn die Anwendungs-Prozess wieder gestartet wird, während die Zwei-Hand-Kontrolle aktiviert ist, geht der Baustein in StatusC0003
, der den Fehler signalisiert, dass beide Taster bei Aktivierung gedrückt sind und einen Neustart verhindert.
In diesem Beispiel existiert nur ein Betriebszustand.


Name | Datentyp | Beschreibung |
---|---|---|
|
| Not-Halt-Taster S1 |
|
| Schalter S2 verbunden mit Druckknopf 1 der Zwei-Hand-Kontrolle |
|
| Schalter S3 verbunden mit Druckknopf 2 der Zwei-Hand-Kontrolle |
|
| Rückmeldung externes Gerät K1 |
|
| Rückmeldung externes Gerät K2 |
|
| Reset durch Entwickler mit Schalter S0 (abgeleitet von der funktionalen Anwendung) |
|
| Freigabe der Bewegung durch den Prozess (abgeleitet von der funktionalen Anwendung) |
Name | Datentyp | Beschreibung |
---|---|---|
|
| steuert den Aktor über |
|
| Fehlerflag von |
|
| Fehlerflag von |
|
| Fehlerflag von |
|
| Diagnosecode für
|
|
| Diagnosecode für
|
|
| Diagnosecode für
|
Zusätzliche Anmerkungen
Dieses Beispiel kann auch mit SF_TwoHandControlTypeIII
verwendet werden.
Der Eingang von Activate wurde der Einfachheit halber auf TRUE
gesetzt. Dies kann in der Anwendung durch eine Variable ersetzt werden.
Baustein | Eingang | Konstanter Wert | Beschreibung |
---|---|---|---|
|
|
| Kein automatischer Reset, wenn die S-SPS gestartet ist. |
|
| Kein automatischer Reset, Reset/Bestätigung durch Entwickler notwendig | |
|
|
| Automatischer Reset ist erlaubt, wenn die S-SPS gestartet ist. |
|
| Automatischer Reset, kein Reset/Bestätigung durch Entwickler notwendig | |
|
| Eine dynamische Änderung des Signals Appl_Control (steigende Flanke) wird gefordert nach Bausteinaktivierung oder eine getriggerte Sicherheitsfunktion ( | |
|
|
| Kein automatischer Reset, wenn die S-SPS gestartet ist |
|
| Die maximale Antwortzeit der beiden Rückmeldesignale
|