Eine Funktion ist eine POU, die bei der Ausführung genau ein Datenelement liefert und dessen Aufruf in textuellen Sprachen als Operator in Ausdrücken vorkommen kann. Das Datenelement kann auch ein Array oder eine Struktur sein.
Sie fügen das Objekt der Applikation oder dem Projekt über den Befehl „Projekt Objekt hinzufügen POU“ hinzu. Im Gerätebaum oder in der Ansicht „POUs“ haben Funktions-POUs das Suffix „(FUN)“.




HINWEIS

Funktionen haben keine interne Statusinformation, das bedeutet, dass Funktionen die Werte ihrer Variablen nicht bis zum nächsten Aufruf speichern. Aufrufe einer Funktion mit den selben Eingabevariablen-Werten liefern immer denselben Ausgabewert. Deshalb dürfen Funktionen keine globalen Variablen und Adressen verwenden!
Der Editor einer Funktion besteht aus dem Deklarationsteil und dem Implementierungsteil.
Die oberste Zeile des Deklarationsteils enthält folgende Deklaration:
FUNCTION <function> : <data type>
Darunter deklarieren Sie die Eingabe- und Funktionsvariablen.
Die Ausgabevariable einer Funktion ist der Funktionsname.




HINWEIS

Wenn Sie eine lokale Variable in einer Funktion als RETAIN
deklarieren, hat dies keinen Effekt! In diesem Fall gibt CODESYS einen Compilerfehler aus.




HINWEIS

In CODESYS V3 können Sie explizite und implizite Parameterzuweisungen in Funktionsaufrufen nicht mischen. Das bedeutet dass Sie entweder nur explizite oder nur implizite Parameterzuweisungen in Funktionsaufrufen verwenden. Die Reihenfolge der Parameterzuweisungen beim Funktionsaufruf ist beliebig.
Eine Funktion aufrufen
In ST können Sie den Aufruf einer Funktion als Operand in Ausdrücken verwenden.
In AS können Sie einen Funktionsaufruf nur innerhalb von Schrittaktionen oder Transitionen verwenden.
Beispiele
Funktion mit Deklarationsteil und einer Zeile Implementierungs-Code

Funktionsaufrufe:
ST:
result := POU_Funct(5,3,22);
AWL:

FUP:

Funktionen mit zusätzlichen Ausgängen
Nach der Norm IEC 61131-3 können Funktionen zusätzliche Ausgänge haben. Die zusätzlichen Ausgänge deklarieren
Sie in der Funktion zwischen den Schlüsselwörtern VAR_OUTPUT
und END_VAR
. Die Funktion rufen Sie gemäß folgender Syntax auf:
<function> (<function output variable1> => <output variable 1>, <function output variable n> => <output variable n>)
Beispiel
Die Funktion fun
ist mit zwei Eingabevariablen in1
und in2
definiert. Der Ausgabevariablen der Funktion fun
wird auf die lokal deklarierten Ausgangsvariablen loc1
und loc2
geschrieben.
fun(in1 := 1, in2 := 2, out1 => loc1, out2 => loc2);
Siehe auch