标识符指定规则
变量标识符规则
-
标识符不得包含空格或特殊字符。
-
忽略大写字母。例如,
VAR1
和var1
指的是同一个变量。 -
下划线被识别。例如,
A_BCD
和AB_CD
被视为两个不同的标识符。不允许使用多个连续的下划线。 -
标识符的长度不受限制。
多重使用标识符(命名空间)的规则
-
一个标识符不得在本地声明两次。
-
一个标识符可以在全球范围内多次使用。如果局部变量与全局变量同名,则局部变量在 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 *)
。
-
-
插入库时,还可使用库管理器定义命名空间。这样,您就可以通过
<namespace library>.<block name|variable name>
对库块或库变量进行唯一引用。请注意,当库被嵌套时,您必须依次引用所有库的命名空间示例:如果
Lib1
被Lib0
引用,则Lib1
中的 POUfunc
被Lib0.Lib1.fun
寻址:ivar := Lib0.Lib1.fun(4, 5); (* return value from func is copied to variable ivar in the project *)
我们建议,除了在变量声明时需要特别考虑的事项外,还应遵循以下规则。这样,在分配名称时就能获得最佳的协调性。
关于变量名的建议
在应用程序和程序库中,应尽可能使用匈牙利符号命名变量。为每个变量找到一个有意义的、简短的英文名称作为基名,基名可以由几个单词组成。每个单词的第一个字母用大写,其余字母用小写。在基本名称前添加一个小写前缀,表示变量的数据类型。
例如 iFileSize : INT;
数据类型 |
前缀 |
说明 |
---|---|---|
|
|
我们明确建议将 |
|
保留 |
|
|
|
位字符串;不用于算术运算 |
|
|
位字符串;不用于算术运算 |
|
|
位字符串;不用于算术运算 |
|
|
位字符串;不用于算术运算 |
|
|
算术整数数据类型,8 位 |
|
|
算术整数数据类型,8 位 |
|
|
算术整数数据类型,16 位 |
|
|
算术整数数据类型,16 位 |
|
|
算术整数数据类型,32 位 |
|
|
算术整数数据类型,32 位 |
|
|
算术整数数据类型,64 位 |
|
|
算术整数数据类型,64 位 |
|
|
算术浮点数据类型,32 位 |
|
|
算术浮点数据类型,64 位 |
|
|
长度可变的单字节字符串(默认设置:80 个字符) |
|
|
长度可变的双字节字符串(默认设置:80 个字符) |
|
|
时间长度,32 位 |
|
|
时间长度,64 位 |
|
|
时间,32 位 |
|
|
时间,64 位 |
|
|
日期和时间 |
|
|
|
|
|
日历日期 |
|
|
日历日期 |
|
|
|
|
|
|
枚举 |
|
示例
VAR bySubIndix: BYTE; xFlag: BOOL; udiCounter: UDINT; END_VAR
标识符 |
说明 |
示例 |
---|---|---|
嵌套声明 |
前缀按声明顺序依次附加。 |
|
功能块实例 用户定义数据类型的变量 |
前缀:功能块或数据类型名称的缩写 |
|
本地常数 本地常数 |
前缀: |
|
全局变量 |
在库前缀后附加一个前缀。
|
|
全球常数 全局常量变量 |
在库前缀后附加一个前缀。
|
|
关于变量名的建议CODESYS V3.x 库
标识符 |
说明 |
示例 |
---|---|---|
可变 |
与变量名的描述相对应,但全局变量和常量不需要库前缀,因为命名空间取代了函数。 |
|
关于用户自定义数据类型(DUT)标识符的建议
的标识符 |
说明 |
示例 |
---|---|---|
结构 |
库前缀,后跟下划线和简短、翔实的结构描述。该结构创建变量的相关前缀应作为注释放在冒号之后。 |
|
枚举 |
库前缀,后接下划线,标识符为大写。 请注意:在过去的CODESYS 版本中,枚举值 > 16#7FFF 会导致错误,因为它们不会自动转换为 |
声明
|
关于CODESYS V3 库中用户自定义数据类型 (DUT) 标识符的建议
的标识符 |
说明 |
示例 |
---|---|---|
CODESYS V3 库中的 DUT 名称 |
命名空间取代了对库前缀的需求。因此,此处省略。枚举值的定义也不带库前缀。 |
带命名空间的库
ᅠ ᅠ ᅠ ᅠ ᅠ ᅠ ᅠ
声明
在应用程序中的使用
|
关于 POU、功能、功能块、程序标识符的建议
的标识符 |
说明 |
示例 |
---|---|---|
POUs:功能、功能块、程序 |
库前缀,后接下划线和简短、翔实的 POU 名称。和变量一样,每个单词的第一个字母都是大写,其他字母都是小写。我们建议您用动词和名词组成 POU 名称。 对于功能块,创建实例的相关前缀应作为注释跟在名称后面。 |
|
行动 |
只有区块本身调用的操作,以 |
关于CODESYS V3 图书馆中 POU 标识符的建议
的标识符 |
说明 |
示例 |
---|---|---|
POU |
省略库前缀是因为命名空间取代了库前缀的功能。 |
|
方法 |
只有区块本身调用的方法,以 否则,方法没有前缀。 |
|
接口 接口 |
|
|
关于可视化标识符的建议




注意

请注意,可视化块的名称不能与项目中的其他块相同,因为这可能会在更改可视化块时造成问题。