Aufruf der Funktion in ST

Syntax
function-name();
 
function-name
(input_1:=x1,input_2:=x2,...,input_n:=xn,
output_1=>y1,output_2=>y2,...,output_n=>yn);

Bedeutung

formaler →Aufruf der →Funktion (= formaler Funktionsaufruf) ohne oder mit Parameterliste
Der Aufruf einer von Ihnen deklarierten Anwenderfunktion (z.B. Simple2) und einer Systemfunktion (z.B. des IEC-Bausteins AND) erfolgt mit der gleichen Syntax.

Keine Prüfung von Rekursionen

Rekursionen bei →Funktionen und →Methoden werden von logi.CAD 3 nicht verboten oder geprüft. Erstellen Sie trotzdem keine Selbstaufrufe und vermeiden Sie einen gegenseitigen Aufruf von 2 (oder mehr) Funktionen/Methoden in Ihrer Anwendung.
Beachten Sie, dass Rekursionen von Funktionen/Methoden in Ihrer Anwendung unerwartete Ereignisse beim Ausführen der Anwendung verursachen können, z.B. könnte die Anwendung in einer Endlosschleife ausgeführt werden und/oder das →Laufzeitsystem reagiert nicht mehr.

Die Parameterliste beim formalen →Aufruf kann aus folgenden Elementen bestehen:

  • →Zuweisungen auf →Eingangsvariablen (inkl. auf Eingang EN)
    Der Ausdruck auf der rechten Seite des Zuweisungsoperators ":=" in den Zuweisungen auf Eingangsvariablen darf eines jener Konstrukte sein, wie unter Zuweisung angeführt.

  • Zuweisungen auf →Ein-/Ausgangsvariablen
    Der Ausdruck auf der rechten Seite des Zuweisungsoperators ":=" in den Zuweisungen auf Ein-/Ausgangsvariablen darf nur eines jener Konstrukte sein, die auch auf der linken Seite des Zuweisungsoperators ":=" stehen könnten.

  • Zuweisungen von →Ausgangsvariablen (inkl. auf Ausgang ENO)
    Der Ausdruck auf der rechten Seite des Zuweisungsoperators "=>" in den Zuweisungen von Ausgangsvariablen darf eine deklarierte →Variable (z.B. result) des passenden →Datentyps sein.

Als Alternativen können Sie auch die folgenden Varianten beim Aufruf verwenden:

  • nicht-formaler Aufruf
    Die Parameterliste muss genau dieselbe Anzahl an Eingangsvariablen haben – in genau derselben Reihenfolge und mit passenden Datentypen, wie in der Deklaration
    angegeben, ausgenommen der Parameter zur Ausführungssteuerung EN und ENO.
    Beispiel: Inst2 (10,20,T#3ms); – Dieser nicht-formale Aufruf ist gleichbedeutend mit diesem formalen Aufruf: Inst2 (EN := TRUE,IN1:=10,IN2 := 20,T1 := T#3ms, OUT => result);

  • unvollständige Parameterliste beim formalen Aufruf
    Sie können Eingangsvariablen und Ausgangsvariablen in der Parameterliste weglassen.
    Weggelassene Eingangsvariablen erhalten den Standard-→Initialisierungswert. S iehe die Beispiele unten.
    S pezialverhalten: Bei ausziehbaren Funktionen (wie z.B. dem AND-Baustein) werden Eingangsvariablen nach der am höchsten angegebenen Eingangsvariable nicht für die
    Funktionalität des Bausteins berücksichtigt und erhalten somit auch nicht den Standard- Initialisierungswert (siehe Beispiele unten) .

Im FAQ-Artikel "Wann soll ich einen formalen Aufruf verwenden? Wann einen nicht-formalen Aufruf?" finden Sie Informationen darüber, wann der formale Aufruf im Vergleich zum nicht-formalen Aufruf zu verwenden ist.

Beispiel
Simple1();
 
Simple2(IN1:=10,IN2 :=20,T1 := T#3ms,OUT => result);
AND(IN1:=TRUE,IN2:=FALSE);

Beispiele für unvollständige Parameterliste beim formalen Aufruf für eine Funktion:

Syntax

Bedeutung

FUNCTION fun1 : INTVAR_INPUTi1 : INT := 7;i2 : INT := 8;END_VAREND_FUNCTION

Deklaration der Funktion fun1

Deklaration der Variablen i1 und i2 mit Initialisierungswerten

FUNCTION fun2 : INTfun2:=22;END_FUNCTION

Deklaration der Funktion fun2 (mit dem Ergebniswert '22')

fun1();

Aufruf der Funktion fun1 ohne Parameterliste
fun1 erhält den Initialisierungswert 7 für i1 und den Initialisierungswert 8 für i2.

fun1(i2:=3);

Aufruf der Funktion fun1 mit unvollständiger Parameterliste
fun1 erhält den Initialisierungswert 7 für i1 und den zugewiesenen Wert 3 für i2.

fun1(i2:=fun2());

Aufruf der Funktion fun1 mit unvollständiger Parameterliste
fun1 erhält den Initialisierungswert 7 für i1 und den Ergebniswert 22 (von fun2) für i2.

fun1(i2:=fun2(EN:=FALSE));

Aufruf der Funktion fun1 mit unvollständiger Parameterliste
fun1 erhält den Initialisierungswert 7 für i1 und den Initialisierungswert 8 für i2.

Erklärung: Da EN := FALSE, wird fun2 nicht aufgerufen. Daher wird i2 mit dem Initialisierungswert versorgt.
Detaillierte Informationen über das Verhalten von Aufrufen mit einer Zuweisung auf den Eingang EN finden Sie unter " Zuweisungen in ST" .

Beispiele für unvollständige Parameterliste beim formalen Aufruf für den ausziehbaren AND-Baustein:

Syntax

Bedeutung

AND();

Aufruf der Funktion AND ohne Parameterliste
Dieser Aufruf wird als fehlerhaft gekennzeichnet. Zuweisungen auf die ersten 2 Eingänge sind für den AND-Baustein erforderlich.

AND(IN2:=TRUE);

Aufruf der Funktion AND mit unvollständiger Parameterliste
Der Wert TRUE wird auf IN2 zugewiesen.
Die weggelassene Eingangsvariable vor IN2 (also IN1) erhält den Standard-Initialisierungswert FALSE.
Die weggelassene Eingangsvariablen nach IN2 (also IN3 bis IN16) werden für die AND-Funktionalität nicht berücksichtigt.

AND(IN1:=TRUE,IN10:=TRUE);

Aufruf der Funktion AND mit unvollständiger Parameterliste
Der Wert TRUE wird auf IN1 und IN10 zugewiesen.
Die weggelassene Eingangsvariablen vor IN10 (also IN2 bis IN9) erhalten den Standard-Initialisierungswert FALSE.
Die weggelassene Eingangsvariablen nach IN10 (also IN11 bis IN16) werden für die AND-Funktionalität nicht berücksichtigt.