SA0081: Il limite superiore non è un valore costante
Rileva il FOR
istruzioni in cui il limite superiore non è definito con un valore costante
Motivo: se il limite superiore di un ciclo è un valore variabile, non è più possibile vedere la frequenza con cui viene eseguito un ciclo. Questo può portare a seri problemi in fase di esecuzione, nel peggiore dei casi a un ciclo infinito.
Importanza: Alta
Esempio 86. Esempio
PROGRAM PLC_PRG VAR i:INT; iBorder1: INT := 10; iBorder2: INT := 10; iCounter: INT; END_VAR VAR CONSTANT ciBorder:INT := 10; END_VAR
FOR i:=0 TO 10 DO //OK iCounter := i; END_FOR FOR i:=0 TO ciBorder DO // OK iCounter := i; END_FOR FOR i:=0 TO iBorder1 DO // SA0081 iCounter := i; END_FOR FOR i:=0 TO iBorder2 DO // SA0081 iCounter := i; IF iCounter = 10 THEN iBorder2 := 50; END_IF END_FOR
Uscita in Messaggi vista:
SA0081: Il bordo superiore di un ciclo for deve essere un valore costante