Dieses Diagramm bezieht sich auf eine typische Zweihandschaltung vom Typ II.
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 | Es werden beide Taster betätigt, die Eingänge S_Button2 und S_Button1 wechseln nacheinander von SAFEFALSE nach SAFETRUE. 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 auf SAFEFALSE wechselt (Taster wird losgelassen). |
4 | Der Taster an S_Button1 wird nun zwar wieder betätigt, Ausgang S_TwoHandOut bleibt aber trotzdem SAFEFALSE, da ein Zustandswechsel nur an Eingang S_Button1 stattgefunden hat, wogegen Eingang S_Button2 durchgängig SAFETRUE war. |
5 | Der Funktionsbaustein wird deaktiviert: Activate steuert auf FALSE. Während der Funktionsbaustein inaktiv ist, fällt S_Button2 auf SAFEFALSE ab (Taster 2 wird losgelassen). Dieser Zustandswechsel hat keine Auswirkung auf die Bausteinausgänge, da der Funktionsbaustein nicht aktiviert ist. |
6 | Erneute Bausteinaktivierung (Activate wird wieder TRUE). Die Signalkombination an den Eingängen (S_Button1 = SAFETRUE und S_Button2 = SAFEFALSE) zum Zeitpunkt der erneuten Bausteinaktivierung führt zu einer Fehlermeldung (Error = TRUE, S_TwoHandOut = SAFEFALSE). Bei Bausteinaktivierung müssen beide Eingänge SAFEFALSE sein. |
7 | Die Fehlermeldung wird "rückgesetzt", da nun an S_Button1 und S_Button2 der Zustand SAFEFALSE anliegt (beide Taster nicht betätigt). |
8 | Es werden wieder beide Taster betätigt, die Zweihand-Bedingung ist erfüllt, S_TwoHandOut steuert wieder auf SAFETRUE. |
Dieses Beispiel zeigt die Verschaltung einer Zweihandschaltung vom Typ II mit dem sicherheitsbezogenen Funktionsbaustein SF_TwoHandControlTypeII.
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_TwoHandControlTypeII ist über eine globale I/O-Variable oder über weitere sicherheitsbezogene Funktionen/Funktionsbausteine mit einer Ausgangsklemme der Applikation verschaltet. Verschalten Sie den Freigabeausgang S_TwoHandOut des Funktionsbausteins SF_TwoHandControlTypeII 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. |
Hinweis
Die Aktivierung des Funktionsbausteins SF_TwoHandControlTypeII über dessen Eingang Activate darf nicht mit der Konstanten TRUE realisiert werden, sondern muss aus der Applikation der überlagerten Standardsteuerung erfolgen. Mögliche Maßnahme zur Aktivierung des Funktionsbausteins SF_TwoHandControlTypeII an dessen Eingang Activate: An jedem der an der Sicherheitsfunktion beteiligten Geräte wird ein Eingang fest auf "1" gelegt. Diese Eingänge werden durch eine UND-Verknüpfung für die Aktivierung der Sicherheitsfunktion verwendet. Die Aktivierung der Sicherheitsfunktion erfolgt erst dann, wenn alle beteiligten sicherheitsbezogenen Geräte gültige Prozessdaten liefern. Dazu muss pro Eingangsmodul ein sicherheitsbezogener Eingang verwendet werden. Mit dieser Maßnahme ist ein Betrieb mit Teilkonfigurationen möglich. |
S1 | Taster 1 |
S2 | Taster 2 |
 | Siehe zweiten 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.