Rekursiver Methodenaufruf

Innerhalb der Implementierung kann eine Methode sich selbst aufrufen, entweder direkt über den Zeiger ‎THIS‎ oder über eine lokale Variable für den zugeordneten Funktionsblock.

  • <Rückgabewertvariable> := <POU-Name> . <Methodenname> ( <Argumentenübergabe> );

    Direkter Aufruf der entsprechenden Funktionsblockinstanz mit dem Zeiger ‎THIS‎

  • <Rückgabewertvariable> := <POU-Name> . <Methodenname> ( <Argumentenübergabe> );

    Aufruf über eine lokale Variable der Methode, die den betreffenden Funktionsblock vorübergehend instanziiert

Eine Compiler-Warnung wird ausgegeben, wenn eine rekursive ⮫ „Aufrufen einer Methode “. Wenn die Methode mit dem Pragma ‎{attribute 'estimated-stack-usage' := '<estimated stack size in bytes>'}‎ versehen ist, wird die Compilerwarnung unterdrückt.

Ein Beispiel für die Implementierung finden Sie im Abschnitt "Attribut: ⮫ estimated-stack-usage'" chapter.

Um Methoden rekursiv aufzurufen, reicht es nicht aus, nur den Methodennamen anzugeben. Wird nur der Methodenname angegeben, so wird ein Compilerfehler ausgegeben: „Programmname, Funktion oder Funktionsblockinstanz erwartet anstelle von“