检测名称已被其他变量使用的变量(例如,名称相同的全局变量和局部变量)。还能检测在同一访问作用域中使用的、带有函数、操作、方法或属性名称的变量。在“Devices” 视图或 POU 池中的 GVL 中声明的变量也会被检测到。不过,为此必须在应用程序中使用“POUs” view 的 GVL。
理由相同的名称可能会在读取代码时造成混淆,而且如果无意中访问了错误的对象,它们可能会导致错误。我们建议您使用命名约定来避免这些情况。
PLCopen 规则:N5 / N9
重要性:中型
示例
VAR_GLOBAL xVar1 : BOOL; iVar3 : INT; END_VAR PROGRAM PLC_PRG VAR xVar1 : BOOL; // SA0013 iVar3 : INT; // SA0013 END_VAR xVar1 := NOT GVL.xVar1; iVar3 := iVar3 + INT#2; iVar3 := GVL.iVar3; --> SA0013: Declaration of 'iVar1' hides symbol 'GVL.iVar1 --> SA0013: Declaration of 'xVar3' hides symbol 'GVL.xVar3
示例
功能块POU
有操作ACT
和方法METH
。
FUNCTION_BLOCK POU VAR ACT : UINT; // SA0013 METH : BYTE; // SA0013 END_VAR --> SA0013: Declaration of 'ACT' hides symbol 'POT.ACT' --> SA0013: Declaration of 'METH' hides symbol 'POT.METH'