Skip to main content

Objekt: Funktion

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

Wichtig

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.

Wichtig

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

Wichtig

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.

Beispiel 514. Beispiele

Funktion mit Deklarationsteil und einer Zeile Implementierungs-Code

_cds_img_function.png

Funktionsaufrufe:

ST:

result := POU_Funct(5,3,22);

AWL:

_cds_img_function_call_in_il.png

FUP:

_cds_img_function_call_in_fbd.png


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 515. 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);