Skip to content

更新: 3/24/2026, 2:52:03 PM 字数: 0 字 时长: 0 分钟

注塑机控制系统命名规范

1. 文档概览

1.1 文档目的

本文档为基于 Luban平台(Beremiz二次开发版本)的注塑机控制系统项目建立统一、规范的命名标准,确保PLC程序代码、功能块、结构体、变量等技术元素的命名具有一致性、可读性和可维护性。通过规范化命名,提高团队协作效率,减少错误,提升代码质量。

1.2 平台说明

本规范专门针对 Luban平台(基于Beremiz的二次开发版本)制定,充分考虑了Luban平台的特性和使用习惯。在实施过程中,应优先遵循Luban平台的命名约定,确保代码在Luban环境中能够正常运行和维护。

1.3 适用范围

本规范适用于基于Luban平台的注塑机控制系统项目中的所有技术元素,包括但不限于:

  • 变量(全局变量、局部变量、静态变量、输入输出变量等)
  • 功能块(Function Block)
  • 结构体(Structure)
  • 枚举类型(Enumeration)
  • 程序组织单元(POU)
  • 文件和文件夹
  • 配置项和常量
  • 任务和程序

2. 命名基本原则

2.1 核心原则

原则说明
清晰性命名应清晰、准确地反映元素的用途和功能,避免使用模糊、歧义的名称,优先使用描述性名称
一致性在整个项目中保持命名风格的一致性,同一类型的元素应使用相同的命名规则
简洁性在保证清晰的前提下,尽量使用简洁的名称,避免过长的命名(一般不超过30个字符)
可读性使用大小写、下划线等分隔符提高可读性,避免使用连续的大写字母(除非是常量)
兼容性遵循IEC 61131-3标准的命名约定,确保命名在Luban/Beremiz平台中的兼容性
国际化使用一致的英语语言进行命名,确保命名在国际项目中具有可理解性

3. 具体命名规则

3.1 变量命名

3.1.1 全局变量(VAR_GLOBAL)

  • 格式gvl_<类型标识><描述>gvl_<模块>_<类型标识><描述>
  • 风格:小写字母,下划线分隔
  • 示例gvl_bMotorStartState, gvl_iSystemStatus, gvl_rCurrentPressure
  • 反例GLOBAL_VAR, g_Mold, globalMold

3.1.2 局部变量(VAR)

  • 格式<类型标识><描述>
  • 风格:驼峰式(camelCase)
  • 示例bIsRunning, iCurrentPosition, rTargetTemperature
  • 反例CurrentPosition, TARGET_TEMP, is_running

3.1.3 临时变量(VAR_TEMP)

  • 格式temp<类型标识><描述>
  • 风格:驼峰式(camelCase),前缀"temp"
  • 示例tempbFlag, tempiValue, temprResult
  • 反例TempValue, temp_value

3.1.4 静态变量(VAR_STATIC)

  • 格式stat<类型标识><描述>
  • 风格:驼峰式(camelCase),前缀"stat"
  • 示例statbInitialized, statiCounter, statrAverageValue
  • 反例StatCount, stat_count

3.1.5 输入变量(VAR_INPUT)

  • 格式i_<类型标识><描述><类型标识><描述>
  • 风格:驼峰式(camelCase)
  • 示例i_bExecute, i_rTargetPos, i_iPressure
  • 反例Input_Execute, target_pos

3.1.6 输出变量(VAR_OUTPUT)

  • 格式o_<类型标识><描述><类型标识><描述>
  • 风格:驼峰式(camelCase)
  • 示例o_bDone, o_bBusy, o_iStatus
  • 反例Output_Done, busy_status

3.1.7 输入输出变量(VAR_IN_OUT)

  • 格式io_<类型标识><描述>
  • 风格:驼峰式(camelCase)
  • 示例io_stAxisRef, io_aDataArray
  • 反例InOut_Axis, io_axis_ref

3.1.8 常量(VAR CONSTANT)

  • 格式CONST_<类型标识>_<描述>CONST_<模块>_<类型标识>_<描述>CONST_<描述>
  • 风格:全大写,下划线分隔
  • 示例CONST_MAX_PRESSURE, CONST_i_MAX_COUNT, CONST_r_MAX_PRESSURE
  • 反例maxPressure, CONSTMinTemp, const_max_pressure

3.1.9 结构体成员

  • 格式<类型标识><描述><描述>
  • 风格:驼峰式(camelCase)(首选)
  • 示例rPressure, iPositionpressure, flowRate, targetPosition
  • 反例Pressure, FLOW_RATE, r_pressure, flow_rate

3.2 数据类型标识规范

数据类型类型标识前缀示例说明
BOOLbbExecute, bRunning布尔类型
INTiiCount, iPosition整数类型
UINTuiuiIndex, uiCounter无符号整数类型
DINTdidiLargeCount, diPosition双整数类型
UDINTudiudiLargeIndex, udiCounter无符号双整数类型
SINTsisiSmallCount, siOffset短整数类型
USINTusiusiSmallIndex, usiFlag无符号短整数类型
REALrrPressure, rTemperature浮点类型
LREALlrlrPreciseValue双精度浮点类型
STRINGssName, sMessage字符串类型
BYTEbybyData字节类型
WORDwwValue字类型
DWORDdwdwAddress双字类型
TIMEttDelay, tDuration时间类型
DATEddDate日期类型
DATE_AND_TIMEdtdtTimestamp日期时间类型
ARRAYaaValues, aPositions数组类型
STRUCTststParams, stData结构体类型
ENUMeeMode, eStatus枚举类型

3.3 状态类型标识规范

状态类型类型标识前缀示例说明
上升沿r_r_Edge, r_Trigger上升沿触发
下降沿f_f_Edge, f_Trigger下降沿触发

3.4 类型标识使用说明

  • 类型标识前缀应紧跟在作用域前缀(如 gvl_, temp, stat 等)之后
  • 类型标识前缀应使用小写字母
  • 类型标识前缀后面的描述应使用驼峰式命名
  • 状态类型标识可与基本类型标识组合使用,如 r_bStart(上升沿布尔信号)
  • 对于长整型等数值类型,应根据实际需要选择合适的类型标识,确保数据范围足够且内存使用合理

3.5 功能块命名(Function Block)

  • 格式FB_<功能描述>
  • 风格:帕斯卡式(PascalCase)
  • 示例FB_Clamp, FB_MoldControl, FB_TemperaturePID
  • 反例fb_clamp, MoldControl, FB_mold_control

3.6 函数命名(Function)

  • 格式F_<动词><名词><动词><名词>
  • 风格:帕斯卡式(PascalCase)
  • 示例F_CalculatePressure, F_CheckLimit, MoveAbsolute
  • 反例f_calculate_pressure, calculatePressure, check_limit

3.7 结构体命名(Structure)

  • 格式ST_<描述>type<描述>
  • 风格:帕斯卡式(PascalCase)
  • 示例ST_MoldParams, ST_AxisRef, typeMoldParameters
  • 反例StMoldParams, struct_mold, ST_mold_params

3.8 枚举类型命名(Enumeration)

  • 格式E_<描述>
  • 风格:帕斯卡式(PascalCase)
  • 枚举值格式e<描述>_<值>
  • 示例
    • 类型:E_ClampMode, E_AxisState, E_ErrorCode
    • 值:eMode_Manual, eMode_Auto, eState_Idle, eState_Running
  • 反例enumClampMode, E_CLAMP_MODE, manual_mode

3.9 程序组织单元(POU)命名

3.9.1 程序(Program)

  • 格式PRG_<描述>
  • 风格:帕斯卡式(PascalCase)
  • 示例PRG_MainControl, PRG_MoldSequence, PRG_AlarmHandler
  • 反例prg_main, MainControl, PRG_main_control

3.9.2 功能(Function)

  • 格式F_<描述>
  • 风格:帕斯卡式(PascalCase)
  • 示例F_ScaleAnalog, F_LimitValue, F_CalculateChecksum
  • 反例f_scale, ScaleAnalog, F_scale_analog

3.10 文件和文件夹命名

3.10.1 文件命名

  • 格式<功能描述>.<扩展名>
  • 风格:帕斯卡式(PascalCase)
  • 扩展名
    • 结构化文本:.st
    • 功能块图:.fbd
    • 梯形图:.ld
    • 顺序功能图:.sfc
    • 指令表:.il
  • 示例FB_Clamp.st, MoldControl.st, PRG_Main.st
  • 反例fb_clamp.st, MOLD_CONTROL.st, clamp.st

3.10.2 文件夹命名

  • 格式<功能描述>
  • 风格:小写字母,下划线分隔
  • 示例function_blocks, programs, data_types, docs
  • 反例FunctionBlocks, PROGRAMS, DataTypes

3.11 任务命名(Task)

  • 格式TASK_<描述><描述>
  • 风格:帕斯卡式(PascalCase)或全大写
  • 示例TASK_Main, TASK_Fast, TASK_Background
  • 反例task_main, MainTask, task_Main

3.12 资源命名(Resource)

  • 格式RES_<描述>
  • 风格:帕斯卡式(PascalCase)
  • 示例RES_PLC1, RES_MainController
  • 反例res_plc1, PLC1, resource_main

3.13 实例命名

  • 格式inst<描述>Inst<描述>
  • 风格:驼峰式(camelCase),前缀"inst"或"Inst"
  • 说明:单个实例使用"Inst"前缀,多重实例和参数实例使用"inst"前缀
  • 示例
    • 单个实例:InstClamp, InstTemperatureControl
    • 多重实例:instMold, instPump
  • 反例clamp_instance, ClampInst

3.14 配置项命名

  • 格式<模块>.<配置项>
  • 风格:小写字母,点号分隔
  • 示例mold.close.pressure, temperature.setpoint, pump.max_flow
  • 反例MOLD_CLOSE_PRESSURE, TemperatureSetpoint, pumpMaxFlow

4. 代码格式规范

4.1 缩进与空格

  • 使用两个空格进行缩进,避免使用制表符
  • 在操作符两侧添加空格,在逗号后添加空格
  • 在括号内不添加空格,保持代码块的缩进一致性

4.2 注释规范

  • 使用英文编写注释,为复杂逻辑添加详细注释
  • 为函数和功能块添加头部注释,使用统一的头部注释模板

4.3 头部注释模板

pascal
//==================================================================================
// 公司: [公司名称]
// 标题: [块名称]
// 功能: [功能简要描述]
// 作者: [作者姓名]
// 目标系统: [PLC型号及固件版本]
// 工程平台: Luban [版本]
// 日期: [YYYY-MM-DD]
// 版本: [版本号]
//==================================================================================

5. 平台特定考虑

5.1 Luban平台特性

  • 遵循Luban(基于Beremiz二次开发版本)的默认命名约定
  • 考虑Luban的代码生成和导入导出功能对命名的影响
  • 确保命名在Luban的图形化界面中显示清晰
  • 注意Luban平台对变量名长度和特殊字符的限制
  • 遵循Luban平台的项目结构和文件命名规范

5.2 外部依赖处理

  • 对于第三方库、框架等外部依赖,应遵循其原有的命名规范
  • 在项目内部封装外部依赖时,应使用本规范的命名规则

6. 命名审查与最佳实践

6.1 审查机制

  • 自行检查:开发者在编写代码时,应参考本规范确保命名符合要求
  • 团队沟通:团队成员之间可互相提醒,确保命名风格一致
  • 经验分享:定期分享命名规范的最佳实践,提高团队整体代码质量

6.2 最佳实践

  • 优先使用描述性名称,避免过度使用缩写
  • 保持命名的一致性,确保同一类型的元素使用相同的命名规则
  • 考虑变量的作用域和生命周期,选择合适的命名前缀
  • 为复杂的数据结构和功能块提供清晰的注释说明

7. 术语表

术语解释
gvl_全局变量前缀(Global Variable List)
FB_功能块前缀(Function Block)
F_函数前缀(Function)
ST_结构体前缀(Structure)
E_枚举类型前缀(Enumeration)
PRG_程序前缀(Program)
TASK_任务前缀(Task)
RES_资源前缀(Resource)
CONST_常量前缀(Constant)
temp临时变量前缀
stat静态变量前缀
inst实例前缀(多重实例和参数实例)
Inst实例前缀(单个实例)
typePLC数据类型前缀
POU程序组织单元(Program Organization Unit)
GVL全局变量列表(Global Variable List)
IEC 61131-3工业控制编程语言国际标准
Luban基于Beremiz的国产PLC编程软件

8. 版本控制

版本日期作者变更说明
1.02025-09-16汪工初始版本,针对Luban平台优化
1.12025-10-09汪工参考西门子编程规范指南,增加代码格式规范和头部注释模板,增加数据类型标识规范,完善变量命名规则,添加类型标识前缀系统;优化常量命名规则,允许按需保留类型标识
1.22026-03-17周工/汪工调整结构体成员命名风格为驼峰式(camelCase)作为首选风格;补充完善数据类型标识规范,增加DINT、UDINT、SINT、USINT等数值类型;调整状态类型标识规范,将前缀从pos/neg改为r_/f_,使上升沿和下降沿的标识更加清晰直观;明确说明开发平台为Luban(基于Beremiz的二次开发版本),并补充Luban平台特定考虑的详细内容

9. 审批流程

本规范需经过以下审批流程:

  1. 技术团队内部评审
  2. 项目经理审批
  3. 部门负责人批准
  4. 发布实施

10. 参考资料

  • IEC 61131-3 标准文档
  • Luban软件用户手册
  • Beremiz官方文档
  • 西门子SIMATIC S7-1200/S7-1500编程风格指南
  • 注塑机控制系统需求规格说明书

备注:本规范应根据项目实际情况和Luban平台特性进行调整和补充,确保其与项目需求和团队习惯相适应。如有疑问或建议,请联系技术团队负责人。

技术交流:13971612060