-

Funktionsbaustein-POEs in PLCnext Engineer

Dieses Thema enthält die folgenden Abschnitte:

Allgemeine Informationen zu Funktionsbaustein-POEs

Ein Funktionsbaustein ist eine POE mit mehreren Eingangs- und Ausgangsparametern und einem internen Speicher. Der Wert, den ein Funktionsbaustein als Ergebnis zurückgibt, hängt vom aktuellen Wert seines internen Speichers ab. Innerhalb eines Funktionsbausteins dürfen andere Funktionsbausteine und Funktionen aufgerufen werden, jedoch keine Programme. Rekursive Aufrufe sind nicht erlaubt.
Um einen Funktionsbaustein in einem anderen Funktionsbaustein oder Programm aufzurufen, muss in der aufrufenden POE eine Instanz des aufgerufenen FBs mit einem eindeutigen Instanznamen erstellt und deklariert werden. Die Instanzdeklaration muss in die Variablentabelle eingefügt werden (direkt oder während der Bearbeitung des Codes). Jede FB-Instanz ist in der Variablentabelle deklariert. Diese Deklaration enthält den eindeutigen FB-Instanznamen, den Funktionsbausteinnamen und das Deklarationsschlüsselwort 'Lokal' (angezeigt in der Spalte 'Verwendung').

Objektorientierte Funktionsbausteine: Gemäß IEC-61131-3, Ausgabe 3, werden objektorientierte Funktionsbausteine unterstützt. Durch Hinzufügen einer Methode zu einem anwenderdefinierten Funktionsbaustein wird dieser Baustein zum objektorientierten FB. Weitere Informationen zu Methoden finden Sie hier.

Wenn Ihr Projekt eine sicherheitsbezogene SPS enthält, können Sie sicherheitsbezogene Anwender-FBs in der Kategorie 'Programmierung' des KOMPONENTEN-Bereichs anlegen.

Sicherheitsbezogene C-Funktionsbausteine (CFBs): Mit CFBs können sicherheitsbezogene (nachladbare) C-Funktionen implementiert werden. (In PLCnext Engineer werden C-Funktionen immer durch CFBs repräsentiert.) Für CFBs gibt es kein sichtbares Code-Arbeitsblatt. Stattdessen haben diese Funktionsbausteine einen Konfigurationseditor, in dem Sie die aufzurufende C-Funktion über deren Kennung, die benötigte Stackgröße, usw. spezifizieren müssen.
Nach dem Anlegen und Spezifizieren von CFBs können diese als sicherheitsbezogene IEC-Bibliothek veröffentlicht und damit in andere Projekte eingebunden werden. CFBs müssen einem Projekt als sicherheitsbezogene Bibliotheken hinzugefügt werden. Sie können nicht im Projekt erstellt und dann direkt in einem sicherheitsbezogenen Programm oder in FBs instanziiert werden.

Zum Hinzufügen einer Funktionsbaustein-POE rechtsklicken Sie auf den Ordner 'KOMPONENTEN | Programmierung > Lokal > Funktionen & Funktionsbausteine' (oder einen darin enthaltenen Unterordner) und wählen den Befehl 'Funktionsbaustein hinzufügen' oder 'AS-Funktionsbaustein hinzufügen' aus dem Kontextmenü. Wenn Sie eine AS-Funktionsbaustein-POE einfügen, wird unter der neuen POE automatisch ein Unterordner 'Transitionen' mit einer 'Transition' angelegt.

Um sicherheitsbezogene Funktionsbaustein-POEs oder C-Funktionsbausteine hinzuzufügen und zu editieren, müssen Sie im sicherheitsbezogenen Bereich angemeldet sein. Zur Erstellung und Verwendung von CFBs benötigen Sie eine spezielle Softwarelizenz. Sicherheitsbezogene POEs erkennen Sie am überlagerten Symbol .

Hinweis
Beim Deklarieren von Formalparameter-Variablen für eine Funktion oder Funktionsbaustein-POE bestimmt die Reihenfolge der Deklarationen in der Variablentabelle die Reihenfolge der Ein- und Ausgänge der Funktion bzw. des FB im Code (am Bausteinsymbol oder in der ST-Parameterliste). Mit den Befehlen 'Nach oben verschieben' bzw. 'Nach unten verschieben' in der Symbolleiste der Variablentabelle können Sie die Reihenfolge der Bausteinformalparameter im Code beeinflussen.
/

Instanzdeklaration

Der Instanzname muss in der Variablentabelle der aufrufenden POE deklariert werden. Im folgenden Beispiel ist DrainCheck_1 der Name der FB-Instanz DrainCheck.

Hinweis
Ein sicherheitsbezogener FB kann nur in sicherheitsbezogenen Programmen/FBs aufgerufen (instanziiert) werden.

Der Aufruf dieser FB-Instanz mit dem verwendeten Namen in ST und FBS/KOP ist nachfolgend gezeigt.

Bedingte Ausführung von Funktionen mit EN/ENO

EN/ENO ermöglicht das bedingte Ausführen von Funktionen und Funktionsbausteinen gemäß der Norm IEC 61131-3. EN (Enable) ist der Freigabeeingang und ENO (Enable Out) der Freigabeausgang.

EN/ENO wird in sicherheitsbezogenem Code nicht unterstützt.

Weitere Informationen hierzu finden Sie im Hilfekapitel "Ausführungssteuerung mit EN/ENO".

Namespaces für Funktionsbaustein-POEs

PLCnext Engineer unterstützt Namespaces (Namensräume) für Standard-Funktionsbaustein-POEs (gilt nicht für sicherheitsbezogene FB-POEs). Mit Hilfe von Namespaces können Sie POEs organisieren und gruppieren, um diese eindeutig im Projekt zu machen. So können Sie Namenskonflikte zwischen POEs im PLCnext Engineer-Projekt vermeiden.

Weitere Informationen finden Sie im Thema "Namespaces für POEs definieren".

Funktionsbaustein-Aufruf in ST

Der Aufruf eines Funktionsbausteins in ST hat grundsätzlich die folgende Syntax:

instance(invar1:=1, invar2:=2, in_out_var:=MyVariable);
a:= instance.outvar1;

Alternative Syntax:
instance(invar1 := 1, invar2:=2, outvar1 => a, in_out_var:=MyVariable);

In dem hier gezeigten Beispiel wird ein Funktionsbaustein mit dem Instanznamen 'instance' und den Eingangsparametern 'invar1' und 'invar2' aufgerufen, wobei jedem Parameter ein Wert zugeordnet ist. Der Funktionsbaustein liefert das Ergebnis als Ausgangsvariable 'outvar1'. Im Beispiel wird das Ergebnis auf die Variable 'a' geschrieben.

Der Formalparameter 'in_out_var' wird vom FB gelesen und geschrieben. Er ist in der lokalen Variablentabelle des FB mit 'Verw. = InOut' deklariert. Beachten Sie, dass ein InOut-Formalparameter keine "echte Variable" ist, sondern eine Referenz auf eine andere Variable. Dies ist vergleichbar mit einem Zeiger auf die Adresse einer anderen Variablen. Daher sind an InOut-Parametern nur Variablen zulässig und keine Konstanten oder Literale.

Die textuelle Sprache ST wird momentan nicht für sicherheitsbezogene FBs unterstützt. Verwenden Sie stattdessen den sicherheitsbezogenen grafischen Editor SNKOP.

Funktionsbaustein-Aufruf in FBS/KOP

In FBS/KOP/NKOP/SNKOP wird der FB-Instanzname über dem Symbol und der Name des FB-Typs innerhalb des Bausteinsymbols angezeigt.

Die Symbolfarbe und das Icon oben links im Symbol zeigen die Herkunft des Funktionsbausteins (lokal erzeugter FB, FB aus Anwenderbibliothek oder Systembibliothek). Lesen Sie hierzu den Abschnitt "FU/FB-Symbol zeigt Herkunft".

In sicherheitsbezogenem SNKOP-Code (SNKOP = Sicherheitsbezogener Netzwerkorientierter KOntaktPlan) sind die Symbole für FB-Instanzen gelb.

Weitere Infos
Die Abbildung im Hilfekapitel "Instanziierung: Programm- und FB-Instanzen" erläutert die Beziehung zwischen Typen und Instanzen und zeigt, wo Instanzen dieser Typen möglich sind.