Aufruf der Methode in ST

Syntax
( * internal call of method of the current function block *)
THIS.method-name();|method-name();
THIS.method-name|method-name
(input_1:=x1,input_2:=x2,...,input_n:=xn,
output_1=>y1,output_2=>y2,...,output_n=>yn); 
( * internal call of a method of the base function block from within a derived function block *)
SUPER.method-name();
SUPER.method-name
(input_1:=x1,input_2:=x2,...,input_n:=xn,
output_1=>y1,output_2=>y2,...,output_n=>yn)
 
( * external call of a method *)
instance-name.method-name();
instance-name.method-name
(input_1:=x1,input_2:=x2,...,input_n:=xn,
output_1=>y1,output_2=>y2,...,output_n=>yn);

Bedeutung

formaler →Aufruf der →Methode ohne oder mit Parameterliste
Die Methode wird aufgrund des Methodennamens method-name aufgerufen. Die Angabe vor dem Methodenname bestimmt, in welchem Kontext die Methode aufgerufen wird:

  • THIS. – Damit rufen Sie eine Methode des gleichen Sprachkonstrukts auf. Als Alternative ist es dafür auch möglich, THIS. wegzulassen.
    Beispiel: THIS.UP5(); oder UP5(); – Damit wird die Methode UP5 z.B. in der Methode UP aufgerufen. Beide Methoden sind im gleichen →Funktionsbaustein deklariert oder im Basis-Funktionsbaustein (wenn der Funktionsbaustein mit dem Aufruf der Methode ein abgeleiteter Funktionsbaustein ist; siehe Informationen zum Schlüsselwort EXTENDS unter "Deklaration eines Funktionsbausteins in ST").

  • SUPER. – Damit rufen Sie eine Methode des Basis-Funktionsbaustein in einem abgeleitetet Funktionsbaustein auf.
    Beispiel: SUPER.UP5(); – Damit wird die Methode UP5 des Basis-Funktionsbausteins aufgerufen. Der Aufruf der Methode erfolgt in einem Funktionsbaustein, der aufgrund des Schlüsselworts EXTENDS vom Basis-Funktionsbausteins abgeleitetet wurde.

  • instance-name. – Damit rufen Sie die Methode einer →Instanz auf.
    Beispiel: Inst1.UP5(); – Damit wird die Methode UP5 der Instanz Inst1 aufgerufen.

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.

images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/information.svg Die Möglichkeiten für die Parameterliste sind analog zum Aufruf von Funktionen.

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: Inst1.UP3 (10,20,T#3ms); – Dieser nicht-formale Aufruf ist gleichbedeutend mit diesem formalen Aufruf: Inst1.UP3 (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. Wie bereits erwähnt, ist dies analog zum Aufruf einer Funktion (s iehe die Beispiele dort).

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.

Ein Beispiel für den internen Aufruf einer Methode mit Parameterliste, aber ohne EN/ENO finden Sie unter "Deklaration einer Methode".
Ein Beispiel mit den unterschiedlichen Aufrufen von Methoden (mit THIS., SUPER. und instance-name.) finden Sie unter "Deklaration eines Funktionsbausteins in ST".