Benutzerdefinierte Funktionen

Function Definition

FUNCTION <name> : <returntype>

VAR_INPUT

    <variable declarations>

END_VAR

VAR_OUTPUT

    <variable declarations>

END_VAR

VAR_IN_OUT

    <variable declarations>

END_VAR

VAR

    <variable declarations>

END_VAR

VAR_EXTERNAL

    <variable declarations>

END_VAR

    <statements>

END_FUNCTION

Deklariert eine Funktion. Danach ist sie über ihren Namen aufrufbar. Die Deklaration des Rückgabetyps ist optional. Wird er angegeben, gibt die Funktion einen Wert des angegebenen Typs zurück. Der Rückgabewert wird innerhalb des Funktionskörpers durch eine Zuweisung an den Funktionsnamen definiert.

Die Funktion kann Eingangs-, Ausgangs- und In-Out-Parameter enthalten. Die Reihenfolge der Deklaration ist von Bedeutung. Sie wird für nicht-formale Aufrufe verwendet. Deklarierte Variablen werden nur innerhalb des Funktionskörpers verwendet. Externe Variablen werden aus dem globalen Bereich importiert. Variablen und Parameter sind nicht persistent, d.h. sie behalten ihren Wert zwischen zwei Aufrufen nicht bei.

Nicht-formaler Funktionsaufruf

<functionname>(<expression>, …, <expression>)

Nicht-formaler Funktionsaufruf. Die Reihenfolge der Ausdrücke muss mit der Anzahl und der Reihenfolge der deklarierten Parameter übereinstimmen.

Formaler Funktionsaufruf

<functionname>(

    <inputParamName>  := <expression>,

    <outputParamName> => <variableName>,

    <inputParamName>  := <variableName>)

Formaler Funktionsaufruf. Parameter werden durch ihren Namen identifiziert. Wenn ein deklarierter Parameter nicht aufgeführt ist, wird er implizit auf seinen Standardwert gesetzt.

Benutzerdefinierte Funktionen 1:

Formales und Nicht-Formales nicht vermischen

Die Vermischung von formalen und nicht-formalen Funktionsaufrufen führt zu ungültiger GST-Syntax.