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

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

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

  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.

相关推荐

MySQL进阶五之自动读写分离mysql-proxy

自动读写分离目前,大量现网用户的业务场景中存在读多写少、业务负载无法预测等情况,在有大量读请求的应用场景下,单个实例可能无法承受读取压力,甚至会对业务产生影响。为了实现读取能力的弹性扩展,分担数据库压...

Postgres vs MySQL_vs2022连接mysql数据库

...

3分钟短文 | Laravel SQL筛选两个日期之间的记录,怎么写?

引言今天说一个细分的需求,在模型中,或者使用laravel提供的EloquentORM功能,构造查询语句时,返回位于两个指定的日期之间的条目。应该怎么写?本文通过几个例子,为大家梳理一下。学习时...

一文由浅入深带你完全掌握MySQL的锁机制原理与应用

本文将跟大家聊聊InnoDB的锁。本文比较长,包括一条SQL是如何加锁的,一些加锁规则、如何分析和解决死锁问题等内容,建议耐心读完,肯定对大家有帮助的。为什么需要加锁呢?...

验证Mysql中联合索引的最左匹配原则

后端面试中一定是必问mysql的,在以往的面试中好几个面试官都反馈我Mysql基础不行,今天来着重复习一下自己的弱点知识。在Mysql调优中索引优化又是非常重要的方法,不管公司的大小只要后端项目中用到...

MySQL索引解析(联合索引/最左前缀/覆盖索引/索引下推)

目录1.索引基础...

你会看 MySQL 的执行计划(EXPLAIN)吗?

SQL执行太慢怎么办?我们通常会使用EXPLAIN命令来查看SQL的执行计划,然后根据执行计划找出问题所在并进行优化。用法简介...

MySQL 从入门到精通(四)之索引结构

索引概述索引(index),是帮助MySQL高效获取数据的数据结构(有序),在数据之外,数据库系统还维护者满足特定查询算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构...

mysql总结——面试中最常问到的知识点

mysql作为开源数据库中的榜一大哥,一直是面试官们考察的重中之重。今天,我们来总结一下mysql的知识点,供大家复习参照,看完这些知识点,再加上一些边角细节,基本上能够应付大多mysql相关面试了(...

mysql总结——面试中最常问到的知识点(2)

首先我们回顾一下上篇内容,主要复习了索引,事务,锁,以及SQL优化的工具。本篇文章接着写后面的内容。性能优化索引优化,SQL中索引的相关优化主要有以下几个方面:最好是全匹配。如果是联合索引的话,遵循最...

MySQL基础全知全解!超详细无废话!轻松上手~

本期内容提醒:全篇2300+字,篇幅较长,可搭配饭菜一同“食”用,全篇无废话(除了这句),干货满满,可收藏供后期反复观看。注:MySQL中语法不区分大小写,本篇中...

深入剖析 MySQL 中的锁机制原理_mysql 锁详解

在互联网软件开发领域,MySQL作为一款广泛应用的关系型数据库管理系统,其锁机制在保障数据一致性和实现并发控制方面扮演着举足轻重的角色。对于互联网软件开发人员而言,深入理解MySQL的锁机制原理...

Java 与 MySQL 性能优化:MySQL分区表设计与性能优化全解析

引言在数据库管理领域,随着数据量的不断增长,如何高效地管理和操作数据成为了一个关键问题。MySQL分区表作为一种有效的数据管理技术,能够将大型表划分为多个更小、更易管理的分区,从而提升数据库的性能和可...

MySQL基础篇:DQL数据查询操作_mysql 查

一、基础查询DQL基础查询语法SELECT字段列表FROM表名列表WHERE条件列表GROUPBY分组字段列表HAVING分组后条件列表ORDERBY排序字段列表LIMIT...

MySql:索引的基本使用_mysql索引的使用和原理

一、索引基础概念1.什么是索引?索引是数据库表的特殊数据结构(通常是B+树),用于...