检测 POU 中以读权限访问的输出变量 (VAR_OUTPUT)
理由根据 IEC 61131-3 标准,禁止读取 POU 内的输出。这表明输出不仅用作输出,还用作中间结果的临时变量。应避免这种双重用途。
重要性:低
示例
VAR_GLOBAL g_xGlob AT %QX0.0 : BOOL ; g_iGlob AT %QW1 : INT ; END_VAR PROGRAM PLC_PRG VAR_OUTPUT xVarOut1:BOOL; xVarOut2:INT; xVarOut3:INT; END_VAR VAR iCondition : INT; END_VAR iCondition := iCondition + INT#1; CASE iCondition OF INT#1: xVarOut1 := g_xGlob; xVarOut2 := g_iGlob; INT#2: xVarOut3 := xVarOut2; // SA0038 ELSE xVarOut1 := FALSE; g_xGlob := xVarOut1; // SA0038 xVarOut2 := INT#0; xVarOut3 := INT#-1; END_CASE --> SA0038: Read access to output variable 'xVarOUT2' --> SA0038: Read access to output variable 'xVarOUT1'