Dieses Diagramm bezieht sich auf eine typische Zweihandschaltung vom Typ III.
Beachten Sie bitte, dass temporäre Zwischenzustände nicht im Signalablauf-Diagramm dargestellt sind. Es werden nur typische Signalkombinationen der Eingangssignale dargestellt. Weitere Signalkombinationen sind möglich.
0 | Der Funktionsbaustein ist noch nicht aktiviert (Activate = FALSE). Folglich sind alle Ausgänge FALSE oder SAFEFALSE. |
1 | Aktivierung des Bausteins durch Activate = TRUE. Beide Taster sind zu diesem Zeitpunkt nicht betätigt (S_Button1 und S_Button2 = SAFEFALSE). Bei Bausteinaktivierung müssen beide Eingänge SAFEFALSE sein, somit bleibt der Fehlerausgang Error auf FALSE. |
2 | Taster 2 (an S_Button2) wird betätigt, damit wird die Überwachungszeit gestartet. Taster 1 wird innerhalb der geforderten 500 ms ebenfalls gedrückt. Mit dem Wechsel von S_Button1 nach SAFETRUE ist die Zweihand-Bedingung erfüllt und Ausgang S_TwoHandOut wird SAFETRUE. |
3 | Ausgang S_TwoHandOut wird SAFEFALSE, da S_Button1 und S_Button2 kurz nacheinander auf SAFEFALSE wechseln (Taster werden losgelassen). |
4 | Der Taster an S_Button1 wird nun wieder betätigt. Die Überwachungszeit startet. |
5 | Die Überwachungszeit läuft ab, ohne dass Taster 2 gedrückt wurde. Ausgang S_TwoHandOut bleibt deshalb im definierten sicheren Zustand SAFEFALSE und an Ausgang Error wird durch den Status TRUE ein Fehler angezeigt. |
6 | Taster 1 wird wieder losgelassen, wodurch nun an beiden Eingängen SAFEFALSE anliegt. Dadurch wird die Fehlermeldung an Error rückgesetzt: Error wird FALSE. |
7 | Der Funktionsbaustein wird deaktiviert: Activate steuert auf FALSE. Während der Funktionsbaustein inaktiv ist, wird Taster 2 gedrückt. Durch diesen Zustandswechsel wird jedoch die Überwachungszeit nicht gestartet, da der Funktionsbaustein nicht aktiviert ist. |
8 | Erneute Bausteinaktivierung (Activate wird wieder TRUE). Die Signalkombination an den Eingängen (S_Button1 = SAFEFALSE und S_Button2 = SAFETRUE) zum Zeitpunkt der erneuten Bausteinaktivierung führt zu einer Fehlermeldung (Error = TRUE, S_TwoHandOut = SAFEFALSE). Bei Bausteinaktivierung müssen beide Eingänge SAFEFALSE sein. |
9 | Die Fehlermeldung wird "rückgesetzt", da nun an S_Button1 und S_Button2 der Zustand SAFEFALSE anliegt (beide Taster nicht betätigt). |
10 | Es werden wieder beide Taster (innerhalb von 500 ms) betätigt, die Zweihand-Bedingung ist erfüllt, S_TwoHandOut steuert wieder auf SAFETRUE. |
Dieses Beispiel zeigt die Verschaltung einer Zweihandschaltung vom Typ III mit dem sicherheitsbezogenen Funktionsbaustein SF_TwoHandControlTypeIII.
Beide Taster besitzen jeweils einen Öffner- und einen Schließerkontakt und sind zweikanalig am sicherheitsbezogenen Eingangsgerät PSDI 1 angeschlossen.
Die beiden resultierenden und auf Antivalenz überwachten Signale sind jeweils mit globalen I/O-Variablen verknüpft und zur Auswertung an die Bausteineingänge S_Button1 und S_Button2 angeschlossen.
Hinweis
Der Freigabeausgang S_TwoHandOut des Funktionsbausteins SF_TwoHandControlTypeIII ist direkt oder über weitere sicherheitsbezogene Funktionen/Funktionsbausteine mit einer Ausgangsklemme der Applikation verschaltet. Verschalten Sie den Freigabeausgang S_TwoHandOut des Funktionsbausteins SF_TwoHandControlTypeIII beispielsweise mit Eingang S_OutControl des Funktionsbausteins SF_EDM und realisieren Sie auf diese Weise eine zweikanalige Ausgangsverschaltung. |
Weitere Infos
Weitergehende Informationen finden Sie in der Beschreibung des betreffenden sicherheitsbezogenen Funktionsbausteins. |
S1 | Taster 1 |
S2 | Taster 2 |
 | Siehe Hinweis vor der Abbildung. |
Die IEC 61131-3 definiert die Instanziierung von Funktionsbausteinen. Instanziieren bedeutet, dass ein Funktionsbaustein einmal definiert wird und dann mehrfach verwendet (instanziiert) werden kann. Dies gilt für alle Standard-FBs und sicherheitsbezogene FBs (sowohl lokale als auch FBs aus Firmware- und Anwenderbibliotheken).
Warum Instanziierung?
Ein Funktionsbaustein besitzt einen internen Speicher, in dem dieser die Arbeitsdaten (lokale Variablen) ablegt. Das bedeutet, die Ausgangswerte, die ein FB berechnet, hängen von den aktuellen intern gespeicherten Werten ab. Die gleichen Eingangswerte liefern deshalb bei verschiedenen FB-Instanzen nicht zwingend die gleichen Ausgangswerte.
Die internen Daten des Funktionsbausteins müssen daher für jeden Aufruf, d.h. für jede FB-Instanz, in einem getrennten Speicherbereich gehalten werden. Um jede FB-Instanz eindeutig identifizieren und ihren Speicherbereich separat halten zu können, werden Instanznamen verwendet. Der Instanzname eines FB muss in der 'Variablen'-Tabelle der POE deklariert werden, in welcher der FB verwendet werden soll.
Dabei gilt Folgendes:
- Funktionsbausteine können in anderen Funktionsbausteinen und in Programm-POEs instanziiert werden. Der Aufruf eines FB in einer Funktion-POE ist nicht möglich.
- Funktionen werden ohne Instanznamen aufgerufen, da sie keinen internen Speicher besitzen.
In PLCnext Engineer wird strikt zwischen sicherheitsbezogenem Code und (nicht-sicherheitsbezogenem) Standard-Code unterschieden. Wenn Ihr Projekt eine sicherheitsbezogene SPS enthält, gilt Folgendes:
- Sicherheitsbezogene FBs können nur in sicherheitsbezogenen POEs instanziiert werden, aber nicht in (nicht-sicherheitsbezogenen) Standard-POEs.
- Anwenderdefinierte Standard-FBs können nur in Standard-POEs instanziiert werden. Sie können nicht in sicherheitsbezogenen POEs aufgerufen werden.
- Bestimmte Standard-Firmware-FBs können sowohl in sicherheitsbezogenen, als auch in Standard-POEs instanziiert werden.
Hinweis
Beim Einfügen eines Standard-FBs in ein sicherheitsbezogenes SNOLD-Netzwerk gelten die Regeln für die implizite Typumwandlung (von sicherheitsbezogen nach Standard). |
Beispiel für die Instanziierung eines sicherheitsbezogenen PLCopen-Funktionsbausteins
Der sicherheitsbezogene PLCopen-Funktionsbaustein 'SF_EmergencyStop_V2_00' wurde über eine Bibliothek in das Projekt eingefügt. Er ist dann in der Kategorie 'Programmierung' des KOMPONENTEN-Bereichs verfügbar. Dort befindet sich ein Ordner mit demselben Namen wie die Bibliothek, aus dem sich die FBs in den sicherheitsbezogenen Code einfügen lassen.
Der FB soll im Code des sicherheitsbezogenen Programms 'S_Main' zweimal aufgerufen werden, um den Status zweier sicherheitsbezogener Not-Halt-Befehlsgeräte auszuwerten. Für jede FB-Instanz wurde in der Variablentabelle des aufrufenden Programms ein Instanzname deklariert: EStop_M1 und EStop_M2. Die zwei FB-Instanzen wurden in das Code-Arbeitsblatt eingefügt, wobei unterschiedliche Variablen an die Eingangs- und Ausgangs-Formalparameter der Instanzen angeschlossen sind.