SA0037: 对输入变量的写访问
检测输入变量(VAR_INPUT
) 可以通过 POU 内的写权限进行访问
理由:根据 IEC 61131-3 标准,输入变量不得在 POU 内更改。这种访问也是导致错误的原因,并使代码难以维护。这表明变量既用作输入变量又用作辅助变量。应该避免这种双重用途。
重要性:中等
例 47. 例子
VAR_GLOBAL g_xGlob AT %QX0.0 : BOOL; END_VAR
PROGRAM 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”的写访问