SA0102:从外部访问程序/fb变量
检测对程序或功能块的局部变量的外部访问。
理由: CODESYS 允许对程序或功能块的局部变量进行外部读取访问。这违背了数据封装(隐藏数据)的原则,不符合IEC 61131-3标准。
重要性:中等
例 91. 例子
PROGRAM PLC_PRG VAR iCounter : INT; afb_Instance : AFB; bfb_Instance : BFB; END_VAR
iCounter := A_PRG.iLocal; // SA0102 iCounter := bfb_Instance.iLocal; // SA0102 A_PRG();
FUNCTION_BLOCK AFB VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR iLocal: INT; END_VAR
METHOD METH : INT VAR_INPUT END_VAR
iLocal := iLocal + 1;
FUNCTION_BLOCK BFB EXTENDS AFB VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR END_VAR METHOD METH : INT VAR_INPUT END_VAR
iLocal := iLocal + 1;
PROGRAM A_PRG VAR iLocal: INT; END_VAR
iLocal := iLocal + 1;
输出在 留言 看法:
SA0102:从外部访问程序/fb变量“iLocal”