Detecta las sentencias FOR en las que el límite superior no está definido con un valor constante
Justificación: Si el límite superior de un bucle es un valor variable, entonces ya no es posible ver con qué frecuencia se ejecuta un bucle. Esto puede dar lugar a graves problemas en tiempo de ejecución. El peor caso es un bucle infinito.
Importancia: Alta
Ejemplo
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 --> SA0081: Upper border of a for loop must be a constant value