3. 程序版本标识与命名规范
在三菱iQ-F系列PLC的工程实践中,程序版本管理最容易出问题的环节往往不是备份本身,而是“名字对不上”。当现场同时存在调试版、试产版、量产版,且同一台设备又经历过多次工艺微调时,如果版本号、文件名、程序注释和软元件标签各自为政,追溯就会变成翻找历史邮件和U盘目录。本节围绕四个相互咬合的约定展开:版本号规则、文件命名、程序注释、标签约定,目标是让任何一个程序文件在脱离上下文后仍能被准确识别。
一、版本号规则:用三段式表达“代际—功能—修正”
iQ-F项目通常使用GX Works3进行开发,工程文件本身没有强制的版本字段,因此版本号必须由项目组自行定义并写入程序。推荐采用三段式数字版本号,格式为 V主版本.功能版本.修正版本,例如 V2.3.1。三段含义必须固定,不能在不同项目间随意解释:
- 主版本:设备硬件配置、控制架构或工艺流程发生不兼容变更时递增,例如增加FX5扩展模块导致I/O分配整体调整、控制对象由单工位改为双工位。主版本变化意味着旧版参数不能直接套用。
- 功能版本:在既有架构下增加或修改功能时递增,例如新增报警记录、调整PID参数组、增加手动模式。功能版本变化通常需要重新验证相关功能,但不影响整体架构。
- 修正版本:仅修复缺陷、调整注释或优化不影响功能的逻辑时递增,例如修正一个定时器设定值、补充标签说明。修正版本变化一般只需做针对性回归。
版本号应同时出现在三个位置:程序首部注释区、工程文件名、以及HMI或上位机可读取的版本寄存器中。建议在iQ-F的软元件中固定分配一段数据寄存器作为版本信息区,例如用D100~D102分别存放主、功能、修正版本号,D103存放版本日期(BCD格式,如H240315表示2024年3月15日)。这样即使程序被下载到PLC,也能通过监控D100~D103快速确认当前运行版本,而不必打开工程文件。
二、文件命名:让文件名自带追溯信息
GX Works3工程文件默认扩展名为.gx3,若仅用“新建工程”“最终版”“最终版2”命名,追溯成本极高。建议采用固定字段拼接的命名方式,字段之间用下划线分隔,顺序不可调换:
项目代号_设备编号_程序类型_版本号_日期.gx3
示例:
PKG01_LINE03_MAIN_V2.3.1_20240315.gx3
PKG01_LINE03_SAFE_V2.3.0_20240310.gx3
PKG01_LINE03_HMI_V2.3.1_20240315.gx3
其中“程序类型”用于区分同一设备下的不同程序职责,常见取值包括MAIN(主控逻辑)、SAFE(安全相关)、HMI(触摸屏工程)、TEST(调试专用)、BAK(备份)。日期使用YYYYMMDD八位格式,避免出现“3月15日”与“03-15”混用导致排序错乱。若项目使用多个PLC站,可在设备编号后追加站号,如LINE03_ST2。
目录结构同样需要约定。建议按“项目代号/设备编号/版本号”三级组织,每个版本号目录下存放该版本的全部工程文件、参数表和变更说明。旧版本目录不删除,只标记为归档,确保任何历史版本都能被找回。
三、程序注释规范:首部注释区与段落注释
iQ-F程序注释分为两类:工程首部注释和程序段注释。首部注释区应包含足够信息,使阅读者在不查外部文档的情况下理解程序来源。建议在MAIN程序的第一个扫描周期前,用注释形式固定以下字段:
- 项目名称与设备编号
- 程序版本号(与文件名、D100~D102一致)
- 版本日期与作者
- 适用PLC型号与扩展模块配置,例如FX5U-32MT + FX5-16EX + FX5-4AD
- 本版主要变更摘要,一句话说明改了什么
- 关联文件,例如对应的HMI版本、参数表版本
程序段注释应遵循“一段一职责”原则。每个功能块或每个步进段前,用注释说明该段的功能、输入条件、输出结果和关键软元件。例如在定位控制段前注明“D200为目标位置,M100为启动触发,Y0为脉冲输出”。注释中出现的软元件编号必须与标签约定一致,不能出现注释写M100而程序实际用M101的情况。
四、标签约定:让软元件名称可读、可查、可复用
iQ-F支持软元件标签功能,合理使用标签可以大幅降低误读风险。标签命名建议采用“区域_功能_序号”结构,全部使用大写字母和下划线,避免中文和空格。例如:
| 软元件 | 标签名 | 含义 |
|---|---|---|
| X0 | IN_START_PB | 启动按钮输入 |
| X1 | IN_STOP_PB | 停止按钮输入 |
| Y0 | OUT_CONV_MOTOR | 输送电机输出 |
| M100 | CMD_AUTO_START | 自动启动命令 |
| D200 | PAR_TARGET_POS | 目标位置参数 |
| T10 | TMR_START_DLY | 启动延时定时器 |
标签前缀用于区分软元件角色:IN表示输入,OUT表示输出,CMD表示内部命令,PAR表示参数,TMR表示定时器,CNT表示计数器,ALM表示报警。这样在交叉引用或监控时,仅凭标签就能判断该软元件的用途和方向。标签定义应集中维护,避免同一软元件在不同程序段被赋予不同标签名。
五、四类约定的协同关系
版本号、文件名、注释、标签并非孤立存在,它们通过“版本信息区”和“变更摘要”形成闭环。下图展示了四类约定如何围绕同一个版本号相互引用,使程序在文件系统、工程内部和PLC运行时三个层面都能被识别。
实际执行时,建议在每次发布前做一次“四对齐”检查:文件名中的版本号、首部注释中的版本号、D100~D102中的版本号、变更摘要中提到的版本号必须完全一致。任何一处不一致都视为未完成发布。对于使用多个程序文件的设备,MAIN、SAFE、HMI应各自独立命名并各自维护版本号,但在变更摘要中注明彼此的配套关系,例如“本版MAIN V2.3.1需配合HMI V2.3.1使用”。
最后需要强调,规范的价值在于执行的一致性。版本号规则、文件命名、注释和标签约定一旦确定,就应写入项目开发规范文档,并在GX Works3的工程模板中预置首部注释区和标签定义。新项目从模板创建,而不是从旧工程复制后改名,这样才能避免旧版本信息被无意带入新项目。当现场出现异常需要追溯时,凭借文件名即可定位版本目录,打开工程后通过首部注释确认变更内容,再通过D100~D103核对PLC实际运行版本,整条追溯链在几分钟内即可闭合。