IEC-61131 命名指南

louis
发布于 2024-08-15 / 100 阅读
0
0

IEC-61131 命名指南

变量命名规范

1.基本规范

  • 禁止以数字起始命名,命名不超过 32 个字符。
  • 推荐以英文单词命名,一个单词遵循完整字母规则。
  • 多个词组合命名时,每个单词的第一个字母遵循大写规则。
  • 多个词组合命名过长时,每个单词可以不超过 4 个字母缩写规则。
  • 推荐以英语进行注释,内容遵循应简明扼要规则。

2.普通类型命名规范

类型 前缀 说明 示例
SINT, USINT, DINT,UDINT, BYTE,WORD, DWORD, LWORD.... n 整数 ncount
bool x xSwitch
REAL, LREAL r 浮点数 rValue
STRING s 字符串 sNetID
WSTRNG ws 宽字符串 wsRouteName
TIME t 时间 tDelay
DATE d 日期 dMonday
DATA_AND_TIME dt 时间+日期 dtNewyear
ARAY[...] OF ... ar 数组 aMessages
POINTER/PVOID p 指针 pData
Nested Pointer pp 嵌套指针 ppData
Pointer to Interface pip 接口指针 pipCylinder
Reference to ref 引用类型 refSize

3.对象命名规范

对象 前缀 说明 示例
FUNCTION_BLOCK FB_ 功能块 FB_GetData
METHOD M_ 方法 M_Init
ACTION A_ 动作 A_MoveStart
INTERFACE I_ 接口 I_Provider
PROPERTY get/set 属性 GetValue、SetValue
STRUCT ST_ 结构体 ST_Buffer
ENUM E_ 枚举 E_SignalStates
UNION U_ 联合体 U_VariableType
TYPE T_ 类型定义 T_Localiz
FUNCTION F_ 函数定义 F_Convert
PROGRAM PRG_/无 静态程序类 PRG_Axis or Axis
GVL GVL_ 全局常量型文件 GVL_Subsystem
GVL CONSTANT GCL_ 全局参数型文件 GCL_Subsystem

4.实例命名规范

对象 前缀 说明 示例
Function Block fb 功能块实例化 fbGetData
Interface ip 接口 ipCylinde
Struct st 结构体实例化 stBufferEntr
Union u 联合体实例化 uCtr
Enum e 枚举实例化 eSignalStat
Alias Type 采用通用变量命名规则 sNetI
Constant c 局部或全局常量类型 cMaxVelocity
Internal Variables 无/_ 局部类型变量、实例前建议增加 _前缀。 _bExecute/fbSetParam
IN/OUT Variables 所有 PRG、FB、Fuction 等具备输入/输出变量、实例参数的命名参考通用类型或对象命名规则 sNetID、nPort \stBufferEntry\fbSetParam 或者 fbSetParam_IN/OUT

5.其他命名规范

文件夹 说明 示例
DUTs 建议结构体类型都放在同一索引目录中且根目录为 DUTs DUTs
GVLs 建议全局变量类型都放在同一索引目录中且根目录为 GVLs GVLs
POUs 建议静态对象类型都放在同一索引目录中且根目录为 POUs POUs
VISUs 建议 HMI 对象类型都放在同一索引目录中且根目录为 VISUs VISUs

6.代码缩进规范

  • 变量定义以统一的缩进(1 tab 键)规范,类型、初值、注释也遵循以 tab 键缩进来达到整体对其原则,确保变量定义清晰和整洁: alt 属性文本
  • 主代码以统一的缩排(1 tab 键缩进)规范,逻辑嵌套、注释等也以缩 进对齐规范来确保变量定义清晰和整洁: alt 属性文本

7.硬件连接变量

前缀 说明 示例
di Digital input diStart
do Digital output doLed
ai Analog input aiFlow
ao Analog output aoTemperature

8.空格

为了增加可读性, 在每个操作符的前后都加上一个空格:

xAxisPos = x0 + deltaX;
if (machineState == STATE_RUN)


评论