-

Funktion-POEs in PLCnext Engineer

Dieses Thema enthält die folgenden Abschnitte:

Allgemeine Informationen zu Funktion-POEs

Eine Funktion ist eine POE mit mehreren Eingangsparametern und genau einem Ausgangsparameter (Rückgabewert). Das Aufrufen einer Funktion mit denselben Eingangswerten liefert immer das gleiche Ergebnis. Der Rückgabewert kann ein einfacher Datentyp sein. Innerhalb einer Funktion dürfen andere Funktionen aufgerufen werden, jedoch keine Funktionsbausteine oder Programme. Rekursive Aufrufe sind nicht erlaubt.

Hinweis
Funktionen mit Rückgabewerten vom Typ Struct oder Array
Funktionen mit Rückgabewerten vom Typ Struct oder Array sind nicht vollständig zustandslos. Das bedeutet, der Rückgabewert eines Struct oder Array wird beim nächsten Aufruf der Funktion gehalten. Der Grund dafür ist, dass diese Typenelemente auf Grund von Performance-Problemen als Referenzen übergeben werden. Initialisieren Sie deshalb den Rückgabewert innerhalb der Funktion.

Für jede Funktion muss der Datentyp des Rückgabewerts angegeben werden. Dies erfolgt im 'Einstellungen'-Editor (siehe folgende Abbildung).

Zum Hinzufügen einer Funktion-POE rechtsklicken Sie auf den Ordner 'KOMPONENTEN | Programmierung > Lokal > Funktionen & Funktionsbausteine' (oder einen darin enthaltenen Unterordner) und wählen den Befehl 'Funktion hinzufügen' aus dem Kontextmenü.

Der Schreibzugriff auf Eingangsformalparameter ist möglich durch Aktivieren der Compiler-Option 'Schreiben auf Variablen mit Verwendung 'Eingang' erlauben'. Wählen Sie 'Extras > Optionen', öffnen Sie die Kategorie 'Compiler | IEC-Compiler-Einstellungen' und markieren Sie das entsprechende Kontrollkästchen.

Hinweis
Sicherheitsbezogene anwenderdefinierte POEs vom Typ Funktion werden nicht unterstützt. Nur sicherheitsbezogene Funktionen aus eingebundenen Bibliotheken können verwendet werden.

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.
/

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 Funktion-POEs

PLCnext Engineer unterstützt Namespaces (Namensräume) für Standard-Funktion-POEs (gilt nicht für sicherheitsbezogene Funktion-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".

Funktionsaufruf in ST

Ein Funktionsaufruf in ST hat grundsätzlich die folgende Syntax:

OutVariable := functionName(InVar1, InVar2);

Die Namen der erforderlichen Eingangsvariablen stehen (in Klammern ) nach dem Funktionsnamen. Der Rückgabewert der Funktion (das Ergebnis) wird in eine Ausgangsvariable geschrieben.

Funktionsaufruf in FBS/KOP

In FBS/KOP wird der Funktionsname innerhalb des Symbols der Funktion angezeigt.

Die Symbolfarbe und das Icon oben links im Symbol zeigen die Herkunft der Funktion (lokal erzeugte Funktion, Funktion 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 Funktionen aus Bibliotheken gelb.