SA0056: Konstante außerhalb des gültigen Bereichs

Funktion

Ermittelt Literale (Konstanten) außerhalb des für den Operator gültigen Bereichs.

Begründung

Die Meldung wird für Fälle ausgegeben, in denen eine Variable mit einer Konstanten verglichen wird, die außerhalb des Wertebereichs dieser Variablen liegt. Der Vergleich liefert dann konstant TRUE oder FALSE. Dies deutet auf einen Programmierfehler hin.

Wichtigkeit

Hoch

Beispiele:

PROGRAM MAIN
VAR
    nBYTE   : BYTE;
    nWORD   : WORD;
    nDWORD  : DWORD;
    nUSINT  : USINT;
    nUINT   : UINT;
    nUDINT  : UDINT;
 
    bResult : BOOL;
END_VAR
bResult := nBYTE >= 355;                            // => SA0056
bResult := nWORD > UDINT#70000;                     // => SA0056
bResult := nDWORD >= ULINT#4294967300;              // => SA0056
bResult := nUSINT > UINT#355;                       // => SA0056
bResult := nUINT >= UDINT#70000;                    // => SA0056
bResult := nUDINT > ULINT#4294967300;               // => SA0056