规则
标识符不能在本地声明两次。
一个标识符可以在全局范围内使用多次。
如果局部变量与全局变量同名,则局部变量在 POU 中具有优先权。
标识符不允许与关键字相同。
示例:范围
VAR_Global
在全局变量列表中声明的变量可以与在另一个 GVL 中定义的变量同名。
CODESYS 提供扩展命名空间或变量范围标准的功能:
全局命名空间运算符
以点开头的实例路径始终打开一个全局命名空间。如果有一个局部变量(例如,
ivar
) 与全局变量同名,那么您将全局变量称为.ivar
.全局变量列表的名称可以为包含变量定义唯一的命名空间。因此,您可以在不同的全局变量列表中声明具有相同名称的变量,并且仍然可以通过添加列表名称来唯一引用。
例子:
globlist1.ivar := globlist2.ivar; (* ivar from GVL globlist2 is copied to ivar in GVL globlist1 *)
在项目中包含的库的全局变量列表中定义的变量可以根据以下语法进行唯一寻址:
<name scope library>.< GVL name>.<variable name>
例子:
globlist1.ivar := lib1.globlist1.ivar (* ivar from GVL globlist1 in library lib1 is copied to ivar in GVL globlist1 *)
插入库时,您还可以使用库管理器来定义命名空间。这样,您可以通过以下方式对库 POU 或库变量进行唯一引用
<namespace library >.<POU name\|variable name>
.请注意,当库嵌套时,您必须连续引用所有库的命名空间。示例:如果
Lib1
被引用Lib0
, 那么 POUfunc
在Lib1
由解决Lib0.Lib1.fun
:ivar := Lib0.Lib1.fun(4, 5); (* return value from func is copied to variable ivar in the project *)
反引号标识符
通过使用反引号,还可以在标识符中使用通常不允许在标识符中使用的字符,例如特殊字符。锐音重音字符用于反引号: ´ (统一码:U+02CA)
建议使用反引号,以便能够在中使用相同的标识符 CODESYS 与其他编程语言或文档(例如电路图)一样。
两个反引号之间可以使用任何字符,换行符和其他反引号除外。关键字也可以作为反引号之间的标识符。
例子:
´Variable+9´
´INT´
反引号是每个标识符的一部分,因此 var1
和 ´var1´
是两个不同的标识符。
PROGRAM PLC_PRG VAR var1 : INT; ´var1´: INT; END_VAR var1 := var1 + 1; ´var1´ := 12;