3. 版本命名与编号规范设计
在Schneider自动化项目中,版本号不是给工程师自己看的备注,而是贯穿PLC程序、HMI画面、变频器参数、SCADA组态和交付文档的“身份标识”。如果版本号规则不统一,现场调试时很容易出现“程序是V2,画面是V1.3,参数表是最终版”的混乱局面。本节围绕可落地的版本号规则展开,重点解决四个问题:主版本、次版本、修订号、构建号分别代表什么;如何结合项目阶段、硬件平台、PLC型号和客户交付要求设计命名模板;如何把版本号写入工程文件、导出包和交付清单;以及如何通过版本号快速判断兼容性和回退路径。
一、四段式版本号的定义与边界
推荐采用“主版本.次版本.修订号.构建号”四段式结构,例如 V2.1.3.045。四段数字不是随意递增,每一段都有明确的变更边界:
- 主版本(Major):表示架构级或接口级不兼容变更。例如PLC程序从单站控制改为分布式控制、HMI画面从本地操作改为远程集中操作、通信协议从Modbus RTU切换为Modbus TCP、I/O分配表发生大规模调整。主版本变更后,旧版HMI或旧版参数表通常不能直接复用。
- 次版本(Minor):表示功能新增但保持向后兼容。例如新增一个报警页面、增加一段配方逻辑、扩展一个PID回路、新增一台变频器的控制逻辑。次版本变更后,原有接口和变量地址应尽量保持不变。
- 修订号(Patch):表示缺陷修复或小范围优化,不改变功能和接口。例如修正一个定时器预设值、调整一个报警延时、修复一个按钮地址错误、优化一段注释。修订号变更通常可以直接替换旧版本。
- 构建号(Build):表示同一修订号下的编译或导出次数,用于区分“同一天内多次导出”的工程文件。构建号由工具自动递增或由工程师按导出顺序手动填写,不承载功能含义。
需要特别说明的是,构建号与修订号的区别:修订号对应“改了什么”,构建号对应“导出了几次”。例如同一天内修正了同一个报警延时并导出了三次,修订号可以保持 3 不变,构建号依次为 045、046、047。这样既能追溯每一次导出,又不会让修订号虚增。
二、结合项目阶段、硬件平台与PLC型号的命名模板
版本号本身只解决“第几版”,命名模板解决“这是哪个项目、哪个阶段、哪个硬件平台、哪个PLC型号的版本”。推荐命名模板如下:
项目代号_客户简称_阶段_硬件平台_PLC型号_版本号_日期
示例:
HZ-WTP_KY_DEBUG_M340_PLC-M241_V2.1.3.045_20250612
HZ-WTP_KY_FAT_M580_PLC-M580_V1.0.0.012_20250703
HZ-WTP_KY_SAT_M340_PLC-M241_V2.1.3.051_20250718
模板中各字段的含义与取值建议:
- 项目代号:如
HZ-WTP表示杭州某水处理项目,用于区分不同现场。 - 客户简称:如
KY,用于区分同一项目下的不同客户或不同标段。 - 阶段:建议统一为
DES(设计)、DEV(开发)、DEBUG(厂内调试)、FAT(工厂验收)、SAT(现场验收)、OPS(运维)。阶段字段直接决定该版本是否允许对外交付。 - 硬件平台:如
M340、M580、M221、M241,表示该版本对应的硬件平台系列。 - PLC型号:如
PLC-M241、PLC-M580,精确到具体CPU型号,避免同一平台下不同型号混用。 - 版本号:四段式
V主.次.修.构建。 - 日期:建议使用
YYYYMMDD,便于排序和追溯。
当同一项目存在多个PLC站时,可在PLC型号后增加站号,例如 PLC-M241_ST01、PLC-M241_ST02。当客户有特殊交付要求时,可在版本号后增加客户交付标识,例如 _CUST-A,表示该版本是专门提交给客户A的交付版本。
三、版本号与工程对象的绑定关系
版本号不能只写在文件名上,还必须写入工程内部,形成“文件—工程—交付物”三层一致。建议在Schneider工程环境中按以下位置绑定:
- PLC程序:在Control Expert的项目属性中填写版本号,并在程序头部注释块中写入完整命名模板。
- HMI画面:在画面首页或系统页放置版本号文本,变量地址建议使用内部字符串变量,避免硬编码。
- 变频器/软起动器参数:在参数表首行标注版本号,参数文件命名与PLC版本号保持一致。
- SCADA组态:在项目属性或关于页面显示版本号,导出包命名与PLC版本号一致。
- 交付文档:I/O清单、网络拓扑图、参数表、测试记录均引用同一版本号。
这样做的目的是:现场任何一份文件都能通过版本号反查到对应的PLC程序、HMI画面和参数表,避免“程序升级了但画面没升级”的错配。
四、版本号变更的判断路径
版本号变更不是凭感觉递增,而是按变更内容判断。下面这张图给出了从“发生变更”到“确定四段号如何递增”的判断路径,同时标出了主版本变更时必须同步检查的兼容性对象。
图中左侧红色框表示主版本变更时必须同步检查的兼容性对象,右侧蓝色框表示次版本变更时建议同步更新的交付物,左下紫色框和右下橙色框分别对应修订号和构建号的记录要求。实际执行时,先按判断1到判断4的顺序确定递增段位,再按对应侧栏检查配套对象,避免只改程序不改画面。
五、客户交付版本的命名与冻结规则
客户交付版本与内部开发版本必须区分。建议在阶段字段使用 FAT 或 SAT 标识客户可见版本,并在版本号后增加交付标识。例如:
HZ-WTP_KY_FAT_M340_PLC-M241_V2.1.3.045_20250612_CUST-A
HZ-WTP_KY_SAT_M580_PLC-M580_V1.0.0.012_20250703_CUST-A
交付版本一旦提交客户,应执行“冻结”规则:该版本对应的PLC程序、HMI画面、参数表、I/O清单和测试记录不再修改;如需修改,必须递增修订号或次版本号,并重新生成新的交付版本。冻结的目的是保证客户手里的版本与工程内部版本一一对应,避免现场出现“客户说V2.1.3,工程师手里却是V2.1.4”的争议。
%MW100:10 存放版本号字符串,避免每次改版都要重新编辑画面。
六、版本号与回退路径
版本号规则最终要服务于回退。当现场升级后出现异常,工程师需要快速判断“回退到哪个版本”。建议在版本记录表中保留以下字段:版本号、日期、阶段、变更摘要、兼容的HMI版本、兼容的参数表版本、回退目标版本。例如:
| 版本号 | 日期 | 阶段 | 变更摘要 | 兼容HMI | 回退目标 |
|---|---|---|---|---|---|
| V2.1.3.045 | 20250612 | FAT | 修正报警延时 | V2.1.3.045 | V2.1.2.041 |
| V2.1.4.001 | 20250620 | SAT | 新增配方页面 | V2.1.4.001 | V2.1.3.045 |
| V2.2.0.001 | 20250703 | SAT | 通信改为Modbus TCP | V2.2.0.001 | 不兼容回退 |
表中“不兼容回退”表示主版本变更后,旧版HMI和参数表不能直接使用,回退必须连同HMI和参数表一起回退。这样,版本号就不只是命名规则,而是现场变更控制和故障回退的判断依据。
总结来说,Schneider自动化项目的版本命名与编号规范,核心是“四段号定义清楚、命名模板字段完整、工程内部绑定一致、交付版本冻结可查、回退路径明确”。做到这五点,版本号才能真正成为项目治理的工具,而不是文件名上的装饰。