基于 Git 的PLC程序版本控制
当正确实施强大的版本控制系统时,团队可以更多地专注于开发活动,而不是搜索和调查代码更改。
梯形图转SCL | 博途AI辅助编程文档 | AI模型价格对比 | AI工具导航 | ONNX模型库 | Vibe Coding教程 | PLC在线仿真器 | Tripo 3D | Meshy AI | ElevenLabs | KlingAI | ArtSpace | Phot.AI | InVideo
良好的版本控制实践对于高效的代码开发至关重要。它们确保用户可以跟踪文件随时间的变化,了解更改的原因和执行者,并在需要时恢复到特定的代码版本。随着更多工程师被分配到项目中,或者项目活动之间的时间间隔越长,正确版本控制的好处就越大。理解项目如何以及为何达到当前状态所需的时间更少。对于工业自动化开发人员来说,健全的版本控制系统确保用户能够回答这些问题:
- 可编程逻辑控制器(PLC)代码的最新版本在哪里?我可以在不打电话给其他开发人员的情况下访问它吗?
- 此代码版本是否与部署到PLC上的代码相同?
- 最新版本是否经过适当人员的审查/批准?
- 此文件与上一版本之间有何更改?
- 我可以控制谁可以在PLC代码生命周期的不同阶段访问文件吗?
谁做了更改以及为什么?
虽然存在许多不同类型的版本控制系统,但Git以超过80%的市场份额主导软件行业,被约1亿开发人员使用。
1、Git解释
Git是由Linus Torvalds(Linux的创始人)于2005年创建的成熟且积极维护的开源工具。它现在是全球使用最广泛的现代版本控制系统。Git成为标准的原因包括:
- Git是分布式的,意味着文件和历史记录存储在本地和中央仓库中。这一特性使工程师能够在没有网络访问的情况下工作。
- Git很快。由于历史记录存储在用户设备上,更改版本几乎是即时的。
- Git是安全的。Git使用哈希算法确保每次编辑都是可追溯的。在不知道Git的情况下无法更改文件或目录。
2、当今容易出错的手动过程
对于不熟悉Git的工业自动化专业人员来说,如果将其与广泛使用的手动实践——使用"存档文件夹"管理工业自动化文件——进行比较,可能更容易理解。
典型的存档文件夹工作流步骤包括:
- 控制工程师在本地计算机上使用已安装的集成开发环境(IDE)创建项目文件,例如Rockwell Automation Studio 5000 Logix Designer或Siemens TIA Portal。文件名通常是用户创建的项目名称、版本和工程师首字母的组合(例如,Mixer_DAH_V1)。
- 编辑通过覆盖先前文件(保存)或复制和重命名新文件(另存为)来存储。
- 当工作完成到重要状态时,可以将文件或整个项目文件夹压缩并复制到中央位置进行共享和备份。
- 如果其他团队成员需要访问文件以进行审查或更改,他们需要将文件下载到本地硬盘驱动器,并使用其开发环境查看和编辑文件。
控制工程师经常通过"复制和重命名"来管理文件历史记录,从而产生由文件名和修改日期区分的类似文件列表。不幸的是,这种工作流存在许多问题和限制。例如:
- 没有固有的信息说明文件为何被更新或更改。需要额外的工作来记录和传达更改。
- 项目组织基于手动命名文件,容易出现人为错误。
- 没有简单的方法来查看文件版本之间的差异。某些IDE提供此功能,但仅适用于其特定文件类型。
- 本地文件未定期备份。工作经常丢失,项目的最新版本可能不在存档文件夹中。
- 协作有限。如果队友从中央位置复制相同的文件并进行更改,他们无法轻松合并他们的工作。
- 管理人员难以了解项目取得的进展,因为工作通常保存在本地计算机上。
- 没有固有的方法来审查和批准文件。
- 为特定文件设置访问权限可能具有挑战性。
- 对于大型文件,复制、粘贴和最终上传可能需要大量时间。这一事实可能会降低项目备份的频率。
Git减轻了这些缺点。基于Git的基本工作流与存档文件夹工作流有许多相似之处。工作在本地完成,更改被保存并提交到文件历史记录中,这些提交的更改被同步到中央位置。Git消除了手动复制、移动和重命名文件的需要,带来了显著的好处。Git存储项目的版本,并提供有关谁、什么以及为何进行更改的丰富上下文。
3、基本Git工作流
工业自动化项目的基本Git工作流步骤包括:
- 在服务器上创建中央仓库,对于大多数Git提供商(GitHub、Copia等)来说是云托管的。
- 此仓库被克隆到控制工程师的本地计算机。它将作为标准的Microsoft Windows文件夹出现在本地PC上。
- 工程师使用本地IDE(如Studio 5000)创建自动化文件,将文件保存在本地仓库中,并在准备就绪时将这些更改提交到文件历史记录中。
- 当达到开发里程碑或工程师认为适当时,工程师将提交的更改推送到中央仓库。
同时,也克隆了中央仓库的本地团队成员可以"拉取"更新的文件到他们的本地仓库,因此他们始终使用最新的文件。
进行更改时的注意事项包括:
- 随着更改的进行,文件名在Git中可以保持不变。工程师没有理由必须使用文件名来描述项目状态。Git跟踪每个提交中的差异。
- 创建和克隆仓库、提交、推送和拉取等任务速度很快,通常只需要几次鼠标点击。Git工作流易于执行。
- Git永远不会删除或覆盖文件;如果需要,始终可以访问历史工作。(如果用户意外删除了一个梯级并保存了文件,他们可以恢复到早期版本。这就像保存后的撤销。)
- 不需要持久的Internet连接。用户可以本地工作,然后稍后推送更改。(这在现场设备上进行代码更改时很有帮助。)
4、为什么Git尚未被广泛采用
如前所述,Git版本控制的一个好处是跟踪文件何时更改以及显示更改了什么。Git通过显示文件版本内容并在"差异比较"过程中突出显示差异来实现这一点。"差异比较"相对较快且简单,因为大多数传统软件开发使用基于文本的编程语言。在Git"差异"中,红色高亮表示已删除的代码行,绿色表示新添加的代码。不幸的是,PLC编程的演变与传统软件编程不同。虽然有一些用于PLC编程的基于文本的语言,但大多数是使用梯形图和功能块图等视觉语言完成的。这个问题因为许多PLC供应商使用不同的二进制文件格式而变得更加复杂。标准Git无法显示这些语言,这大大降低了它对许多控制工程师的价值。对于大多数工业控制项目,Git可以指示文件何时以及被谁更改,但不能显示这些文件如何更改。缺乏这一重要好处减缓了Git的采用。
5、现代开发工具的救援
Copia Automation的成立是为了将现代开发工具带给工业自动化专业人员,释放传统软件开发中已经实现的生产力提升。他们已经开始解决使用基于Git的源代码控制时可视化和比较PLC代码更改的问题。必须理解的是,Copia在其桌面应用程序和Web浏览器中呈现PLC代码。这一功能为自动化团队提供了自由,并加速了代码审查和讨论。考虑一名开发控制机器安全性的代码部分的初级工程师,在一天结束时完成任务。只需一个Web链接,需要审查代码的经理可以从家庭计算机安全地登录到Copia仓库,并直接在Web浏览器中查看最新的更改。
6、高级Git工作流释放更大价值
Git支持增加更多控制并改善协作的高级工作流,称为"分支和合并"。理解这一概念的一种简单方法是设想每个开发项目都有一个主分支,其中存储最终的无错误代码。然后可以创建一个并行分支,使用户能够在不干扰主分支的情况下进行更改,然后在完成后将更改合并到主分支中。分支和合并最强大的方面之一是多个开发人员可以同时处理同一项目的能力。每个开发人员可以创建单独的分支,当他们的工作完成时,他们可以使用merge命令将他们的工作缝合在一起。分支和合并允许用户向工作中添加更多工程师以满足紧迫的截止日期。
7、Git版本控制帮助企业成功
基于Git的源代码控制的主要好处集中在员工生产力和缩短产品时间线。个人花更少的时间搜索文件和调查文件在其生命周期中的变化。增加的协作使企业能够更有效地利用他们最熟练的人员,因为多个团队成员可以同时处理同一项目,高级控制工程师可以通过Web应用程序快速审查更初级工程师的工作并持续记录反馈。节省的时间可以重新投入到开发创新和高质量代码的高价值工作中。此外,强大的基于Git的版本控制系统可以在处理意外运营问题时为企业节省大量预算。如果重大事件中断制造,代码的最后工作版本始终可以快速找到并用于恢复服务。
8、后续步骤
Git是软件开发的通用源代码控制解决方案,它的使用加速了代码开发和部署的速度。它已被证明可以缩短开发时间线,提高质量,并最大化运营正常运行时间。虽然保存和存储代码与传统的存档文件夹工作流略有不同,但工业自动化项目的基于Git的源代码控制易于学习,值得拥有这些好处。
原文链接:Understanding Git-Based Version Control for Industrial Automation
汇智网翻译整理,转载请标明出处