Lukas
Lukas
发布于 2024-08-24 / 130 阅读
0
0

博途VCI接口使用Git进行代码管理

在博途中需要对程序版本进行管理,如何使用Git的方式实现呢?
可以通过博途版本控制接口VCI,可以将开源分布式版本控制系统Git 连接到 TIA Potal 中。
通过 Git软件,可以 控制 TIA Por tal 中的程序块版本 ,如函数块 FB ,函数 FC ,数据块 DB ,软件单元。
使用 Git 有什么优点呢?博途中的项目服务器也可以对程序块进行版本管理。
项目服务器只能对 PLC 中所有程序进行统一管理,而使用 Git ,可以对具体的单个 FB 或 FC 或 DB 进行管理。 每一个单独的程序块都可以管理。项目服务器属于集中式管理。 Git属于分布式版本控制系统,任何一处 协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。

1. 软件安装

(1) 安装Git 软件。 Git 官方网站上下载安装 Git 。
https://git-scm.com/downloads
选择对应系统的安装包,保持默认安装路径或自定义路径,其他设置不变进行安装。
国内网络在官方网站下载速度较慢,推荐使用国内镜像站下载
https://registry.npmmirror.com/binary.html?path=git-for-windows/

(2) 安装博途插件 VCI git connector Add in
https://support.industry.siemens.com/cs/cn/zh/view/109773999
将Siemens.VCIGitConnector.addin 放入到 博途安装路径 AddIns 中。
默认是C:\Program Files\Siemens\Automation\Portal V18\AddIns文件夹中。

2. 打开“插 件”栏,选择激活插件。

图 1-1 启用VCI插件

  1. 注册Gitee,并创建仓库。
    https://gitee.com/

    图 1-2 创建仓库

    图 1-3 配置仓库路径

  2. 远端仓库配置完毕后,因为他是空的,所以需要在本地新建一个文件夹;然后,用命令git init将这个文件夹初始化成一个gitee本地仓库;最后,用命令git remote add将本地仓库与一个远程仓库关联起来。
    详细操作文档:https://gitee.com/help/articles/4122

操作步骤:
5. 在任何盘新建一个文件夹,然后右键open git bash here

图 1-4 创建本地仓库

  1. 输入git init指令,将其初始化

指令:

git init    \#将文件夹初始化成一个gitee本地仓库


图 1-5 初始化本地仓库

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

    图 1-6 仓库的https链接

在本地仓库目录中执行命令git remote -v,可以看到本地仓库与远程仓库的关联关系。origin是远程仓库在本地的默认名称。

图 1-9 查看关联情况

2. 设置版本控制接口

  1. 新增接口并提交代码至本地仓库

  2. 新建一个博途项目,并添加一个PLC 。

  3. 展开“版本控制接口”,双击“新增工作区”,并打开工作区。

    图 2-1 新增工作区

  4. 点击“组态工作区”按钮,设置工作区路径,选择版本控制插件。工作区路径为代码仓库

    图 2-2 进入工作区

  5. 在博途中新建“Cylinder_VCI[FB2]”, 编写气缸的简单控制,然后编译!

    图 2-3 创建FB

  6. 打开版本控制接口工作区,将“BLOCK_ 1[FB1]” 拖入到工作区。

    图 2-4 将项目FB拖入工作区


图 2-5 commit需添加注释


图 2-6 导出成功后提示

  1. 打开本地仓库路径,可以看到Cylinder_VCI 这个FB的xml文档就存到放本地仓库了。

但此时Gitee仓库中是没有的。

图 2-7 本地仓库

  1. 修改FB,更新本地仓库

增加使能接口,并修改逻辑。


图 2-8 修改功能块

  1. 功能块修改后发现工作区状态发生变化。


图 2-9 工作区状态变化

  1. 选择导出,点击同步按钮,将博途项目中最新修改的功能块同步到本地仓库。


图 2-10 同步本地仓库

  1. 再次commit,并提交注释。


图 2-11 添加commit注释
尽量用英语来写注释。

  1. 目前仓库中应该有两个版本的功能块。右键本地仓库文件夹,选择git bash

输入指令可以查看各个版本和注释:

指令:

git log


图 2-12 本地仓库存放的历史版本

  1. 如果需要将本地的功能块版本回滚,需要借助两个指令。
git reflog    #查看版本号

git reset hard HEAD @{1}  #回滚版本

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

在图中,1是第一版,0是第二版。如果新增第三版。那2就会指向第一版,0指向第三版。类似于栈指针的概念。


图 2-13 版本回滚

  1. 版本回滚后,工作区状态同样会发生变化。


图 2-14 工作区状态发生变化

  1. 这时候需要反向操作,选择导入,然后点击同步按钮。

    图 2-15 将最新/回滚版本导入博途项目

  2. 查看最新的FB功能块,发现刚才增加的管脚和逻辑都没有了。


图 2-16 功能块回滚成功

  1. 点击“Push”将本地仓库的对象推送至远程仓库,如图2-16所示。

图 2-17 git的push操作

  1. 但是本地与远程仓库的分支没有匹配,点击“Push”命令会报错,如图2-18所示。


图 2-18 git的push操作报错

  1. 按照提示,在本地仓库文件夹下(一定是当前仓库文件夹),右键快捷菜单点击“Git Bash Here”,打开Git Bash,键入“git push --set-upstream origin master”消除故障。

指令:

git push --set-upstream origin master


图 2-18 push报错处理

  1. 接下来显示git登陆弹窗,输入自己的账户名和密码

    图 2-19 登陆gitee

  2. 成功后会提示分支已经链接

    然后再次点击“Push”命令,本地仓库的对象就推送到远程仓库了。


图 2-20 push完成

  1. 打开远程仓库可以看到存储的项目,如图2-21所示。

也可以看到刚才创建的cylinder_VCI程序块。

图 2-21 Gitee仓库

  1. 打开程序块可以看到,这是回滚到第一个版本的程序。

    图 2-22 程序信息

  2. 如果其他项目希望使用到这个功能块时,可以同样创建一个本地仓库文件夹

然后初始化仓库,连接上gitee仓库,通过git remote -v查看是否顺利关联。


图 2-23 新项目的本地仓库初始和关联


图 2-24 新项目组态工作区

  1. 在工作区中,右键.vci,选择pull。

这一操作可以从远程仓库pull回最新程序到本地仓库。

图 2-25 pull操作


图 2-26 pull操作报错

  1. 发生报错后,同样在本地仓库路径下,git bash,输入指令
    指令:
git pull origin master


图 2-27 pull报错处理

  1. 然后直接到工作区就可以看到远程仓库的cylinder_VCI就pull到了本地仓库中。

    图 2-28 本地仓库更新成功

  2. 将工作区xml拖入到项目中进行转换,就可以使用这一版本的功能块了。


图 2-29 博途项目更新成功


评论