SA0105: Mehrfache Instanzaufrufe

Funktion

Ermittelt und meldet Instanzen von Funktionsbausteinen, die mehr als einmal aufgerufen werden. Damit eine Fehlermeldung für eine mehrfach aufgerufene Instanz eines Funktionsbausteins generiert wird, muss im Deklarationsteil des Funktionsbausteins das Attribut {attribute 'analysis:report-multiple-instance-calls'} hinzugefügt werden.

Begründung

Einige Funktionsbausteine sind so designt, dass sie nur einmal im Zyklus aufgerufen werden können. Dieser Test prüft, ob ein Aufruf an mehreren Stellen erfolgt.

Wichtigkeit

Niedrig

PLCopen-Regel

CP16/CP20

Beispiel:

Im folgenden Beispiel wird die Statische Analyse einen Fehler für fb2 ausgeben, weil die Instanz mehr als einmal aufgerufen wird und der Funktionsbaustein mit dem benötigten Attribut deklariert ist.

Funktionsbaustein FB_Test1 ohne Attribut:

FUNCTION_BLOCK FB_Test1

Funktionsbaustein FB_Test2 mit Attribut:

{attribute 'analysis:report-multiple-instance-calls'}
FUNCTION_BLOCK FB_Test2

Programm MAIN:

PROGRAM MAIN 
VAR
    fb1  : FB_Test1;
    fb2  : FB_Test2;
END_VAR
fb1();
fb1();
fb2();                           // => SA0105
fb2();                           // => SA0105