SA0072: Ungültige Verwendung einer Zählervariablen

Funktion

Ermittelt Schreibzugriffe auf eine Zählervariablen innerhalb einer FOR-Schleife.

Begründung

Eine Manipulation der Zählervariablen in einer FOR-Schleife kann leicht zu einer Endlosschleife führen. Um die Ausführung der Schleife für bestimmte Werte der Zählervariablen zu unterbinden, arbeiten Sie mit CONTINUE oder einfach mit einem IF.

Wichtigkeit

Hoch

PLCopen-Regel

L12

Beispiel:

PROGRAM MAIN
VAR_TEMP
    nIndex  : INT;
END_VAR
VAR
    aSample : ARRAY[1..10] OF INT;
    nLocal  : INT;
END_VAR
FOR nIndex := 1 TO 10 BY 1 DO
    aSample[nIndex] := nIndex;                      // no error
    nLocal          := nIndex;                      // no error
 
    nIndex          := nIndex - 1;                  // => SA0072
    nIndex          := nIndex + 1;                  // => SA0072
    nIndex          := nLocal;                      // => SA0072
END_FOR