Skip to main content

SA0013:具有相同变量名的声明

检测名称已被其他变量使用的变量(例如,具有相同名称的全局变量和局部变量)。还可以检测其函数、操作、方法或属性名称在同一访问范围内使用的变量。还检测在 GVL 中声明的变量 设备 查看或在 POU 池中。然而,为此,GVL POU 视图必须在应用程序中使用。

说明:相同的名称在阅读代码时可能会造成混淆,如果无意中访问了错误的对象,它们可能会导致错误。我们建议您使用命名约定来避免这些情况。

PLCopen规则:N5 / N9

重要性:中等

25. 例子
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;

输出在 留言 看法:

  • sa_icon_message.png SA0013:“iVar1”的声明隐藏了符号“GVL.iVar1”

  • sa_icon_message.png SA0013:“xVar3”的声明隐藏了符号“GVL.xVar3”



26. 例子

FB_Pou 功能块有 ACT 行动, 的 METH 方法和具有相同名称的局部变量。

_san_rule_0013_fb.png
FUNCTION_BLOCK FB_Pou
VAR
    ACT : UINT;  // SA0013
    METH : BYTE; // SA0013
END_VAR
PROGRAM PLC_PRG
VAR
    fbPou : FB_Pou;
END_VAR
fbPou();

输出在 留言 看法:

  • sa_icon_message.png SA0013:“ACT”声明隐藏符号“FB_Pou.ACT”

  • sa_icon_message.png SA0013:“METH”的声明隐藏了符号“FB_Pou.METH”