Aufrufe in ST
Die folgenden Sprachelemente können in ST aufgerufen werden:
Reihenfolge für Sprachelemente beim Aufruf
Falls Sie eines dieser Sprachelemente aufrufen, aber unterschiedliche Sprachelemente mit dem gleichen Namen vorhanden sind, gilt die folgende Reihenfolge:
Aufruf der Methode
Aufruf der Funktionsbaustein-Instanz – nur wenn keine Methode mit dem gleichen Namen vorhanden ist
Aufruf der Funktion – nur wenn keine Methode und keine Funktionsbaustein-Instanz mit dem gleichen Namen vorhanden ist
Hier die Erläuterung dieser Reihenfolge anhand des Beispiels 1, in dem diese 3 Sprachelemente deklariert sind:
eine Funktionsbaustein-Instanz mit dem Namen Element1 (im Abschnitt VAR...END)
eine Methode mit dem Namen Element1
eine Funktion mit dem Namen Element1
Aufgrund der Reihenfolge für den Aufruf des Sprachelements ruft logi.CAD 3 die Methode auf. Parameter beim Aufruf, die in der Methode nicht deklariert sind, werden als fehlerhaft gekennzeichnet.
FUNCTION_BLOCK CallElement
VAR
Element1 : MyFB1;
END_VAR
METHOD PUBLIC Element1
END_METHOD
Element1(IN1:=1, IN2:=2); // Die Methode "Element1" wird aufgerufen. 'IN1' und 'IN2' wird als fehlerhaft gekennzeichnet.
Element1(IN1:=1); // Die Methode "Element1" wird aufgerufen. 'IN1' wird als fehlerhaft gekennzeichnet.
Element1(); // Die Methode "Element1" wird aufgerufen.
END_FUNCTION_BLOCK
FUNCTION_BLOCK MyFB1
VAR_INPUT
IN1 : int;
IN2 : int;
END_VAR
VAR_OUTPUT
OUT1 : int;
END_VAR
OUT1 := IN1 + IN2 +2;
END_FUNCTION_BLOCK
FUNCTION Element1
VAR_INPUT
IN1 : int;
END_VAR
VAR_OUTPUT
OUT1 : int;
END_VAR
END_FUNCTION
Fehlt die Deklaration der Methode (siehe Beispiel 2) ruft logi.CAD 3 die Funktionsbaustein-Instanz auf.
FUNCTION_BLOCK CallElement
VAR
Element1 : MyFB1;
END_VAR
Element1(IN1:=1, IN2:=2); // Die Funktionsbaustein-Instanz "Element1" wird aufgerufen.
Element1(IN1:=1); // Die Funktionsbaustein-Instanz "Element1" wird aufgerufen.
Element1(); // Die Funktionsbaustein-Instanz "Element1" wird aufgerufen.
END_FUNCTION_BLOCK
FUNCTION_BLOCK MyFB1
VAR_INPUT
IN1 : int;
IN2 : int;
END_VAR
VAR_OUTPUT
OUT1 : int;
END_VAR
OUT1 := IN1 + IN2 +2;
END_FUNCTION_BLOCK
FUNCTION Element1
VAR_INPUT
IN1 : int;
END_VAR
VAR_OUTPUT
OUT1 : int;
END_VAR
END_FUNCTION
Erst, wenn die Deklaration der Funktionsbaustein-Instanz ebenfalls fehlt (siehe Beispiel 3), ruft logi.CAD 3 die Funktion auf. Parameter beim Aufruf, die in der Funktion nicht deklariert sind, werden als fehlerhaft gekennzeichnet.
FUNCTION_BLOCK CallElement
Element1(IN1:=1, IN2:=2); // Die Funktion "Element1" wird aufgerufen. 'IN2' wird als fehlerhaft gekennzeichnet.
Element1(IN1:=1); // Die Funktion "Element1" wird aufgerufen.
Element1(); // Die Funktion "Element1" wird aufgerufen.
END_FUNCTION_BLOCK
FUNCTION_BLOCK MyFB1
VAR_INPUT
IN1 : int;
IN2 : int;
END_VAR
VAR_OUTPUT
OUT1 : int;
END_VAR
OUT1 := IN1 + IN2 +2;
END_FUNCTION_BLOCK
FUNCTION Element1
VAR_INPUT
IN1 : int;
END_VAR
VAR_OUTPUT
OUT1 : int;
END_VAR
END_FUNCTION