Funktion-POEs in PLCnext Engineer
Dieses Thema enthält die folgenden Abschnitte:
- Allgemeine Informationen zu Funktion-POEs
- Bedingte Ausführung von Funktionen mit EN/ENO
- Namespaces für Funktion-POEs
- Funktionsaufruf in ST
- Funktionsaufruf in FBS/KOP
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. |
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.