百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT技术 > 正文

通过Git实现对西门子博图程序版本控制

wptr33 2025-02-15 17:38 23 浏览

  1. 背景

在工业自动化项目调试过程中,经常会出现程序部分代码使用迭代更新、回滚等需求,时间久远后,经常会发生,不知那个版本才是自己需要的版本,git管理工具可以满足工程师们这个需求。

  1. 概述

通过博图版本控制接口VCI,可以将开源式分布式控制系统Git连接的计算机博图软件中。

可以实现对FB/FC/DB/软件单元等实现版本管理。

  1. 软件需求
  2. 博图V16
  3. Git软件 Git-2.47.1-64-bit(根据自身计算机系统版本确定)
  4. 远程仓库https://gitee.com 注册账户
  5. 实现步骤

4.1下载git软件及博图插件
TIA_Add-In_VCI_Git_Connector_1.0.0

下载网址:

a)https://support.industry.siemens.com/cs/document/109773999/tia-add-in?dti=0&lc=zh-CN

b)https://git-scm.com/downloads

4.2 安装

a) 将
Siemens.VCIGitConnector.addin 放入到 博途安装路径 AddIns 中,

默认是 C:\Program Files\Siemens\Automation\Portal V16\AddIns 文件夹中.

b) Git-2.47.1-64-bit,右键,选择“以管理员身份运行”。

4.3激活博图VCI 插件

开启博图新建事例项目,鼠标左键单击软件右侧“插件”。

鼠标选择“
Siemens.VciGitConnect.addin”,左键单击“状态”列箭头,选择“激活”。激活后如下图所示:

  • 在计算机L盘新建文件夹,例如文件夹名称 “L:\Private\gitProTest”,此文件夹作为本地仓库存储程序文件用途。右键单击gitProTest,选择“Open Git Bash here”.弹出下图所示


  • 本地仓库初始化及仓库配置
  1. 输入git init,执行仓库初始化。

2)git config --global user.name "anum" #配置用户名为 anum

git config --global user.email "123@qq.com" #配置邮箱信息为 123@qq.com

3)查看仓库状态 输入git status

  • 博图软件端程序代码执行推入本地仓库及远程仓库操作
  1. 在工程树管理窗口—>版本控制接口下,新建工作区,并打开工作区。
  2. 工作区配置:工作区路径选择刚新建的文件夹gitProTest,版本控制插件选择Git.

单击弹出窗口的 “确定”按钮。

  1. 将所需控制的程序FB/FC/DT鼠标左键选择后拖拽到右侧工作区,本例以“FB2000_Motor”为例,如下图所示:

输入注释后,单击OK按钮,执行完成后弹出如下窗口。

  1. 将FB2000_Motor修改,删除输入变量“i_bEnable”,重新编译。

此刻注意,版本控制接口之工作区已经发生变化。

动作:选择 “->导出到工作区”,动作图标再次发生变化。

选择顶部 “同步”按钮。

弹出注释输入窗口,对新变更做备注,单击“OK”按钮。

(5)查看本地仓库文件存储状态

从上图可以看出,仓库存在2个版本,V1.0.0 和V1.1.0. 文件资源管理器中,可以看见FB已经在仓库中了。

  • 远程仓库端操作
  1. 在https://gitee.com/注册账户并登录,然后新建仓库。
  2. 在本地仓库“Open Git Bash here”窗口实现本地仓库与远程仓库关联。

git remote add origin https://gitee.com/XXXX-lukas/portal-vci.git 将本地仓库与一个远程仓库关联起来。origin 是远程仓库在本地的默认名称,用于指代名称后面的远程仓库地址,也可以用其它名字。XXXX-lukas/portal-vci.git为远程仓库名称。

  1. 输入git remote –v查看关联状态
  • 将本地仓库中文件推入远程仓库中。

工作区右键选择带推入的文件,选择Git –>Push.

推送完成后,弹出如下界面。

查看远程仓库:

4.10 版本回滚操作

经过FB修改,现在本地仓库有2个版本的文件,其中一个是普通A,没有使能信号及清除数据信号,另一个版本B添加了使能信号及清除运行数据信号。

  1. 使用git reflog 查看对应版本号

HEAD@{0}:最新版本

HEAD@{1}:之前版本

  1. 例如我们需要回滚到之前的版本,使用git reset --hard HEAD @{1} #回滚版本

其中的 1 就是 reflog 中显示的版本号。

在图中, 1 是第一版, 0 是第二版。

如果新增第三版。那 2 就会指向第一版, 0 指向第三版。

博图版本控制接口-工作区,变化如下图所示:

动作选择:从工作区导入 –> 单击顶部 “同步”按钮。PLC程序更新完成。

  • 远程仓库推送到本地仓库

后期如果其它项目需要使用该远程仓库程序文件,可以同样建立本地仓库文件,然后初始化->本地仓库配置用户名和邮箱 ->关联远程仓库,然后再博图版本控制接口-工作区,右键选择.Vci,选择pull. 这操作就可以实现将远程仓库pull到本地仓库。

完成后弹出如下所示:

如果发生报错,则需要在本地仓库文件下,右键选择git bash here.输入指令:git pull origin master.

相关推荐

什么是Java中的继承?如何实现继承?

什么是继承?...

Java 继承与多态:从基础到实战的深度解析

在面向对象编程(OOP)的三大支柱中,继承与多态是构建灵活、可复用代码的核心。无论是日常开发还是框架设计,这两个概念都扮演着至关重要的角色。本文将从基础概念出发,结合实例与图解,带你彻底搞懂Java...

Java基础教程:Java继承概述_java的继承

继承概述假如我们要定义如下类:学生类,老师类和工人类,分析如下。学生类属性:姓名,年龄行为:吃饭,睡觉老师类属性:姓名,年龄,薪水行为:吃饭,睡觉,教书班主任属性:姓名,年龄,薪水行为:吃饭,睡觉,管...

java4个技巧:从继承和覆盖,到最终的类和方法

日复一日,我们编写的大多数Java只使用了该语言全套功能的一小部分。我们实例化的每个流以及我们在实例变量前面加上的每个@Autowired注解都足以完成我们的大部分目标。然而,有些时候,我们必须求助于...

java:举例说明继承的概念_java继承的理解

在现实生活中,继承一般指的是子女继承父辈的财产。在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系。例如猫和狗都属于动物,程序中便可以描述为猫和狗继承自动物,同理,...

从零开始构建一款开源的 Vibe Coding 产品 Week1Day4:业界调研之 Agent 横向对比

前情回顾前面两天我们重点调研了了一下Cursor的原理和Cursor中一个关键的工具edit_file的实现,但是其他CodingAgent也需要稍微摸一下底,看看有没有优秀之处,下...

学会这几个插件,让你的Notepad++使用起来更丝滑

搞程序开发的小伙伴相信对Notepad++都不会陌生,是一个占用空间少、打开启动快的文件编辑器,很多程序员喜欢使用Notepad++进行纯文本编辑或者脚本开发,但是Notepad++的功能绝不止于此,...

将 node_modules 目录放入 Git 仓库的优点

推荐一篇文章Whyyoushouldcheck-inyournodedependencies[1]...

再度加码AI编程,腾讯发布AI CLI并宣布CodeBuddy IDE开启公测

“再熬一年,90%的程序员可能再也用不着写for循环。”凌晨两点半,王工还在公司敲键盘。他手里那份需求文档写了足足六页,产品经理反复改了三次。放在过去,光数据库建表、接口对接、单元测试就得写两三天。现...

git 如何查看stash的内容_git查看ssh key

1.查看Stash列表首先,使用gitstashlist查看所有已保存的stash:...

6万星+ Git命令懒人必备!lazygit 终端UI神器,效率翻倍超顺手!

项目概览lazygit是一个基于终端的Git命令可视化工具,通过简易的TUI(文本用户界面)提升Git操作效率。开发者无需记忆复杂命令,即可完成分支管理、提交、合并等操作。...

《Gemini CLI 实战系列》(一)Gemini CLI 入门:AI 上命令行的第一步

谷歌的Gemini模型最近热度很高,而它的...

deepin IDE新版发布:支持玲珑构建、增强AI智能化

IT之家8月7日消息,深度操作系统官方公众号昨日(8月6日)发布博文,更新推出新版deepin集成开发环境(IDE),重点支持玲珑构建。支持玲珑构建deepinIDE在本次重磅更...

狂揽82.7k的star,这款开源可视化神器,轻松创建流程图和图表

再不用Mermaid,你的技术文档可能已经在悄悄“腐烂”——图表版本对不上、同事改完没同步、评审会上被一句“这图哪来的”问得哑口无言。这不是危言耸听。GitHub2025年开发者报告显示,63%的新仓...

《Gemini CLI 实战系列》(五)打造专属命令行工具箱

在前几篇文章中,我们介绍了GeminiCLI的基础用法、效率提升、文件处理和与外部工具结合。今天我们进入第五篇...