.

阴影规则

.
.

在CODESYS中,通常允许您对不同的元素使用相同的标识符。例如,可以将POU和变量命名为相同的名称。但是,您应该避免这种做法,以免造成混淆。

反面例子:在下面的代码片段中,本地功能块实例与函数具有相同的名称:

.

.例如

FUNCTION YYY : INT
;
END_FUNCTION

FUNCTION_BLOCK XXX
;
END_FUNCTION_BLOCK

PROGRAM PLC_PRG
VAR
    YYY : XXX;
END_VAR
YYY();
END_PROGRAM
 

在这种情况下,不清楚是在程序中调用实例还是函数。

为确保名称始终唯一,您应遵循命名约定,例如变量的某些前缀。可以在帮助的“标识符”部分中找到分配标识符的规则。

可以使用CODESYS的静态代码分析来自动检查命名约定。静态代码分析还可以检测到名称YYY的重复使用并将其报告为错误。

枚举和全局变量列表对qualified_only属性的一致使用以及对合格库的使用也可以防止产生歧义。

阴影:如果将相同的标识符用于不同的元素,则编译器不会报告任何错误或警告。而是,编译器按特定顺序在代码中搜索标识符的声明。如果找到了声明,则编译器不会在其他位置搜索任何其他声明。如果确实存在其他声明,则它们对于编译器是“阴影”的。以下部分描述了屏蔽规则(即,编译器在搜索标识符声明时使用的搜索顺序)。“歧义访问和合格访问”部分提供了防止歧义访问和绕过影子规则的方法。

.
 应用程序中的搜索顺序
.
 库中的搜索顺序
.
 歧义访问和合格访问
.
 在实例路径中搜索