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

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

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

  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.

相关推荐

oracle数据导入导出_oracle数据导入导出工具

关于oracle的数据导入导出,这个功能的使用场景,一般是换服务环境,把原先的oracle数据导入到另外一台oracle数据库,或者导出备份使用。只不过oracle的导入导出命令不好记忆,稍稍有点复杂...

继续学习Python中的while true/break语句

上次讲到if语句的用法,大家在微信公众号问了小编很多问题,那么小编在这几种解决一下,1.else和elif是子模块,不能单独使用2.一个if语句中可以包括很多个elif语句,但结尾只能有一个else解...

python continue和break的区别_python中break语句和continue语句的区别

python中循环语句经常会使用continue和break,那么这2者的区别是?continue是跳出本次循环,进行下一次循环;break是跳出整个循环;例如:...

简单学Python——关键字6——break和continue

Python退出循环,有break语句和continue语句两种实现方式。break语句和continue语句的区别:break语句作用是终止循环。continue语句作用是跳出本轮循环,继续下一次循...

2-1,0基础学Python之 break退出循环、 continue继续循环 多重循

用for循环或者while循环时,如果要在循环体内直接退出循环,可以使用break语句。比如计算1至100的整数和,我们用while来实现:sum=0x=1whileTrue...

Python 中 break 和 continue 傻傻分不清

大家好啊,我是大田。今天分享一下break和continue在代码中的执行效果是什么,进一步区分出二者的区别。一、continue例1:当小明3岁时不打印年龄,其余年龄正常循环打印。可以看...

python中的流程控制语句:continue、break 和 return使用方法

Python中,continue、break和return是控制流程的关键语句,用于在循环或函数中提前退出或跳过某些操作。它们的用途和区别如下:1.continue(跳过当前循环的剩余部分,进...

L017:continue和break - 教程文案

continue和break在Python中,continue和break是用于控制循环(如for和while)执行流程的关键字,它们的作用如下:1.continue:跳过当前迭代,...

作为前端开发者,你都经历过怎样的面试?

已经裸辞1个月了,最近开始投简历找工作,遇到各种各样的面试,今天分享一下。其实在职的时候也做过面试官,面试官时,感觉自己问的问题很难区分候选人的能力,最好的办法就是看看候选人的github上的代码仓库...

面试被问 const 是否不可变?这样回答才显功底

作为前端开发者,我在学习ES6特性时,总被const的"善变"搞得一头雾水——为什么用const声明的数组还能push元素?为什么基本类型赋值就会报错?直到翻遍MDN文档、对着内存图反...

2023金九银十必看前端面试题!2w字精品!

导文2023金九银十必看前端面试题!金九银十黄金期来了想要跳槽的小伙伴快来看啊CSS1.请解释CSS的盒模型是什么,并描述其组成部分。答案:CSS的盒模型是用于布局和定位元素的概念。它由内容区域...

前端面试总结_前端面试题整理

记得当时大二的时候,看到实验室的学长学姐忙于各种春招,有些收获了大厂offer,有些还在苦苦面试,其实那时候的心里还蛮忐忑的,不知道自己大三的时候会是什么样的一个水平,所以从19年的寒假放完,大二下学...

由浅入深,66条JavaScript面试知识点(七)

作者:JakeZhang转发链接:https://juejin.im/post/5ef8377f6fb9a07e693a6061目录由浅入深,66条JavaScript面试知识点(一)由浅入深,66...

2024前端面试真题之—VUE篇_前端面试题vue2020及答案

添加图片注释,不超过140字(可选)1.vue的生命周期有哪些及每个生命周期做了什么?beforeCreate是newVue()之后触发的第一个钩子,在当前阶段data、methods、com...

今年最常见的前端面试题,你会做几道?

在面试或招聘前端开发人员时,期望、现实和需求之间总是存在着巨大差距。面试其实是一个交流想法的地方,挑战人们的思考方式,并客观地分析给定的问题。可以通过面试了解人们如何做出决策,了解一个人对技术和解决问...