Skip to main content

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 und K2 (über SF_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 dem Activate-Eingang des Zwei-Hand-Kontrolle Bausteins THC_S2_S3 verbunden. (Wenn die Anwendungs-Prozess wieder gestartet wird, während die Zwei-Hand-Kontrolle aktiviert ist, geht der Baustein in Status C0003, der den Fehler signalisiert, dass beide Taster bei Aktivierung gedrückt sind und einen Neustart verhindert.

In diesem Beispiel existiert nur ein Betriebszustand.

Abbildung 123. Variablendeklaration für Programmierbeispiel: Zwei-Hand-Kontrolle mit EDM
Variablendeklaration für Programmierbeispiel: Zwei-Hand-Kontrolle mit EDM


Abbildung 124. Implementierung für Programmierbeispiel: Zwei-Hand-Kontrolle mit EDM
Implementierung für Programmierbeispiel: Zwei-Hand-Kontrolle mit EDM


Tabelle 105. Eingänge:

Name

Datentyp

Beschreibung

S1_S_EStopIn

SAFEBOOL

Not-Halt-Taster S1

S2_S_Switch1

SAFEBOOL

Schalter S2 verbunden mit Druckknopf 1 der Zwei-Hand-Kontrolle

S3_S_Switch2

SAFEBOOL

Schalter S3 verbunden mit Druckknopf 2 der Zwei-Hand-Kontrolle

K1_S_EDM1

SAFEBOOL

Rückmeldung externes Gerät K1

K2_S_EDM2

SAFEBOOL

Rückmeldung externes Gerät K2

S0_Reset

BOOL

Reset durch Entwickler mit Schalter S0 (abgeleitet von der funktionalen Anwendung)

Process

BOOL

Freigabe der Bewegung durch den Prozess (abgeleitet von der funktionalen Anwendung)



Tabelle 106. Ausgänge:

Name

Datentyp

Beschreibung

S_EDM_Out_EDM_K1_K2

SAFEBOOL

steuert den Aktor über K1 und K2 an

Error_EStop_S1

BOOL

Fehlerflag von EStop_S1

Error_THC_S2_S3

BOOL

Fehlerflag von THC_S2_S3

Error_OC_K1_K2

BOOL

Fehlerflag von OC_K1_K2

Diag_EStop_S1

WORD

Diagnosecode für EStop_S1,

16#8xxx: Regulärer Betrieb,

16#Cxxx bei Fehler in EStop_S1

Diag_THC_S2_S3

WORD

Diagnosecode für THC_S2_S3,

16#8xxx: Regulärer Betrieb,

16#Cxxx bei Fehler in THC_S2_S3

Diag_OC_K1_K2

WORD

Diagnosecode für OC_K1_K2,

16#8xxx: Regulärer Betrieb,

16#Cxxx bei Fehler in OC_K1_K2



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.

Tabelle 107. Informationen zu verwendeten Bausteinparametern

Baustein

Eingang

Konstanter Wert

Beschreibung

EStop_S1

S_StartReset

FALSE

Kein automatischer Reset, wenn die S-SPS gestartet ist.

S_AutoReset

FALSE

Kein automatischer Reset, Reset/Bestätigung durch Entwickler notwendig

OC_K1_K2

S_StartReset

TRUE

Automatischer Reset ist erlaubt, wenn die S-SPS gestartet ist.

S_AutoReset

TRUE

Automatischer Reset, kein Reset/Bestätigung durch Entwickler notwendig

Static Control

FALSE

Eine dynamische Änderung des Signals Appl_Control (steigende Flanke) wird gefordert nach Bausteinaktivierung oder eine getriggerte Sicherheitsfunktion (S_SafeControl auf FALSE)

EDM_K1_K2

S_StartReset

FALSE

Kein automatischer Reset, wenn die S-SPS gestartet ist

MonitoringTime

T#200ms

Die maximale Antwortzeit der beiden Rückmeldesignale

S_EDM1 und S_EDM2