SA0037: 对输入变量的写访问
检测输入变量(VAR_INPUT) 可以通过 POU 内的写权限进行访问
理由:根据 IEC 61131-3 标准,输入变量不得在 POU 内更改。这种访问也是导致错误的原因,并使代码难以维护。这表明变量既用作输入变量又用作辅助变量。应该避免这种双重用途。
重要性:中等
例 47. 例子
VAR_GLOBAL
g_xGlob AT %QX0.0 : BOOL;
END_VARPROGRAM PLC_PRG
VAR_INPUT
xVarIn1 : BOOL;
xVarIn2 : BOOL;
END_VAR
VAR
iCondition : INT;
END_VAR
iCondition := iCondition + INT#1;
CASE iCondition OF
INT#1:
g_xGlob := xVarIn1;
INT#2:
g_xGlob := xVarIn2;
ELSE
g_xGlob := FALSE;
xVarIn1 := FALSE; // SA0037
END_CASE输出在 留言 看法:
SA0037:对输入变量“xVarIn1”的写访问