SA0062: Ausdruck ist konstant

Funktion

Ermittelt die Verwendung von Ausdrücken, die zur Laufzeit einen immer gleichen Wert haben.

Begründung

Ein komplexer Ausdruck, der immer wieder berechnet wird und dabei stets den gleichen Wert erzeugt, kann auf einen Fehler hinweisen. Dies gilt insbesondere, wenn etwas anderes beabsichtigt war. In jedem Fall belastet der Ausdruck die Laufzeit des Programms unnötig.

Wichtigkeit

Mittel

Beispiele:

PROGRAM MAIN
VAR
    bVar1  : BOOL;
    bVar2  : BOOL;
    nVar   : INT;
END_VAR
IF MAX(nVar,1) >= 1 THEN         // => SA0062
    ;
END_IF

bVar1 := bVar1 AND NOT TRUE;     // => SA0062
bVar2 := bVar1 OR TRUE;          // => SA0062
bVar2 := bVar1 OR NOT FALSE;     // => SA0062
bVar2 := bVar1 AND FALSE;        // => SA0062
 
IF (bVar1 = FALSE) THEN          // => SA0062
    ;
END_IF
 
IF NOT bVar1 THEN                // => no error
    ;
END_IF

nVar := 0;
IF nVar <> 0 THEN                // => SA0062
    ;
END_IF