Detecta asignaciones en bucles que calculan el mismo valor para cada ciclo de bucle. Estas líneas de código podrían insertarse fuera del bucle.
Justificación: Se trata de una advertencia de rendimiento. El código que se ejecuta en un bucle, pero que hace lo mismo en cada ciclo del bucle, puede ejecutarse fuera del bucle.
Importancia: Medio
Ejemplo
PROGRAM PLC_PRG VAR iCounter, iVar1, iVar2: INT; END_VAR FOR iCounter := 0 TO 10 DO iVar1 := 100; // SA0041 iVar2 := iVar2 + iVar1; END_FOR --> SAN0041: Possible loop invariant code 'iVar1 := 100'