检测循环中在每个循环周期计算相同值的赋值。这些代码行可以插入循环之外。
理由这是一个性能警告。在循环中执行的代码,如果在每个循环周期中都做同样的事情,则可以在循环之外执行。
重要性:中型
示例
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'