4. 项目归档与版本管理

在量产验收与交付阶段,Studio 5000 项目文件往往要经历“调试版—试产版—量产版—交付版”多次迭代。如果命名随意、版本号混乱、归档目录没有统一结构,现场很容易出现“拿错程序”“改错版本”“无法追溯谁在什么时候改了什么”的问题。本节围绕四件事展开:文件命名规范、版本号规则、归档目录结构,以及与 Git/SVN 等版本控制工具的集成方法。

一、文件命名规范

Studio 5000 项目文件常见扩展名包括 .ACD(主项目文件)、.L5X(可导出为 XML 的工程交换文件)、.L5K(文本格式导出)以及 .RSS(旧版 RSLogix 5000 项目)。量产交付时,建议以 .ACD 作为主归档对象,同时导出 .L5X 作为可对比、可入库的文本副本。

推荐命名结构为:项目代号_控制器型号_程序类型_版本号_日期_责任人。例如:

P1000_L83E_MAIN_V1.2.0_20250612_ZHANG.ACD
P1000_L83E_MAIN_V1.2.0_20250612_ZHANG.L5X

其中项目代号用于区分产线或设备,控制器型号用于避免把 1756-L83E 的程序误刷到 1756-L82E,程序类型区分 MAIN、SAFE、HMI、MOTION 等,版本号与日期保证排序可读,责任人用于快速定位修改者。命名中禁止使用空格、中文、#、& 等特殊字符,避免 Git/SVN 或批处理脚本解析异常。

二、版本号规则

建议采用三段式语义化版本:主版本.次版本.修订号,即 Vx.y.z。

  • 主版本 x:架构级变更,如新增安全程序、更换控制器型号、I/O 配置大范围重构。主版本变更必须重新走验收。
  • 次版本 y:功能级变更,如新增一段顺控逻辑、修改 PID 参数组、增加报警点位。次版本变更需做回归测试。
  • 修订号 z:缺陷修复、注释修正、变量名调整等不影响控制逻辑的改动。

版本号必须与 Studio 5000 项目属性中的版本信息保持一致。可在 Controller Properties → Project 页填写项目描述,并在 Project Documentation 中记录版本号、修改日期、修改人。每次保存前先递增版本号,再执行“另存为”,避免覆盖上一版。

建议在项目内建立一个 _VERSION 例程或标签,用字符串记录当前版本号与发布日期,便于在线运行时通过 HMI 或 Logix Designer 直接读取,减少“程序与文档版本对不上”的情况。

三、归档目录结构

归档目录应固定为“项目—版本—类型”三级结构,保证任何人拿到归档包都能按路径找到对应文件。推荐结构如下:

P1000_量产交付/
├── 00_文档/
│   ├── 验收报告_P1000_V1.2.0.pdf
│   └── IO清单_P1000_V1.2.0.xlsx
├── 01_主程序/
│   ├── V1.0.0/
│   ├── V1.1.0/
│   └── V1.2.0/
│       ├── P1000_L83E_MAIN_V1.2.0_20250612_ZHANG.ACD
│       └── P1000_L83E_MAIN_V1.2.0_20250612_ZHANG.L5X
├── 02_安全程序/
├── 03_HMI/
├── 04_驱动与运动/
├── 05_备份/
│   └── 控制器CF卡镜像_20250612/
└── 06_发布/
    └── P1000_V1.2.0_Release.zip

其中 01_主程序 按版本号建子目录,每个版本目录内只放该版本对应的 .ACD 与 .L5X;05_备份 存放控制器 CF 卡镜像或整机备份;06_发布 存放最终交付压缩包,压缩包内应包含程序、文档、IO 清单和版本说明。归档目录本身也应纳入版本控制,但大体积的 .ACD 与镜像文件建议通过 Git LFS 或 SVN 外部存储管理。

四、与 Git/SVN 的集成方法

Studio 5000 的 .ACD 是二进制文件,直接放入 Git 会导致仓库膨胀且无法 diff。推荐做法是:用 .L5X 作为版本控制主对象,.ACD 作为发布附件。在 Logix Designer 中通过 File → Save As → Export → L5X 导出,或使用 Application → Export → Project 生成 XML 文本。

Git 集成的基本流程如下:

  1. 在项目根目录初始化仓库:git init,并创建 .gitattributes,将 *.L5X 标记为文本、*.ACD 标记为二进制。
  2. 将 .L5X 按版本目录提交,提交信息格式建议为 [V1.2.0] 新增3号工位顺控逻辑。
  3. 使用分支管理并行开发:main 对应量产发布,dev 对应调试,hotfix 对应现场缺陷修复。
  4. 发布时打标签:git tag -a V1.2.0 -m "P1000量产交付版",标签与归档目录中的版本号一一对应。

若现场使用 SVN,则可将 .L5X 与文档放入 trunk,发布版本放入 tags/V1.2.0,调试分支放入 branches/dev。SVN 对二进制文件支持较好,但仍建议以 .L5X 为主,便于查看差异。

无论 Git 还是 SVN,都不要把控制器在线运行中的 .ACD 直接提交到仓库;应先“另存为”到本地归档目录,确认版本号与注释无误后再提交。提交前务必执行一次“项目校验”(Logic → Verify → Controller),避免把带错误的程序带入版本库。
Studio 5000 项目归档与版本管理流程 命名与版本规则 项目代号_控制器型号_类型_版本_日期_责任人 P1000_L83E_MAIN_V1.2.0_20250612_ZHANG 版本号:V主.次.修订 主版本:架构变更,重走验收 次版本:功能变更,回归测试 修订号:缺陷修复,不影响逻辑 归档目录结构 P1000_量产交付/ ├── 00_文档/ ├── 01_主程序/V1.2.0/ ├── 02_安全程序/ ├── 03_HMI/ ├── 04_驱动与运动/ ├── 05_备份/ └── 06_发布/ Git / SVN 集成 主对象:.L5X(文本可 diff) 附件:.ACD(二进制,LFS) 分支:main / dev / hotfix 标签:V1.2.0 对应发布版 提交信息:[V1.2.0] 新增3号工位 提交前:Logic → Verify 版本演进与发布节点 V1.0.0 调试版 基础逻辑 V1.1.0 试产版 新增报警 V1.2.0 量产版 顺控优化 V1.2.1 交付版 现场修复 git tag V1.2.0 git tag V1.2.1 每次版本变更:递增版本号 → 另存为 → 导出 .L5X → 提交版本库 → 打标签 → 归档发布包

把上述规则落到日常操作中,可以形成一条固定动作链:修改程序前先确认当前版本号,修改后递增版本号并“另存为”到对应版本目录,导出 .L5X,执行项目校验,提交到 Git/SVN 并打标签,最后把 .ACD、文档和 IO 清单一起打包放入 06_发布。这样,量产验收时拿到的每一个版本都能对应到明确的日期、责任人和变更内容,交付过程也就有了可追溯的依据。