TIA博途由一个编程软件逐步演变为一个工程的框架(好像没有说是一个平台),所以管理功能越来越重要,TIA博途中也越来越向这方面靠拢。可管理的对象有硬件也有软件,下面总结了一些TIA博途的管理功能供大家参考和讨论。
TIA博途的管理功能-版本控制接口VCI
1. 版本控制简介
TIA 博途 V14新增可选软件“Multi-user”即多用户,通过多用户功能可以实现团队的编程和调试任务。使用多用户的前提条件是必须创建服务器项目,然后将服务器项目存储于服务器中。每一个参与的工程师在本地有一个服务器项目的副本,将修改的部分上传到服务器的项目,并将其他工程师的修改的部分下传之本地项目,项目完成后,服务器中的项目与每一个工程师保存的项目副本完全一致。使用多用户还可以监管每一个成员的操作和修改的程序,但是也需要每一个成员购买使用授权,如果只进行项目的简单版本管理则有点大材小用了。
在TIA博途V16及后续版本中新增VCI即版本控制接口功能,可以使用GIT的功能对项目进行管理和版本控制,并且GIT是免费的。
2. GIT功能简介
在TIA博途VCI中可以使用插件作为GIT的接口,间接使用GIT的功能,所以必须要先了解GIT的功能。
2.1. GIT的特点
GIT是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理,GIT有如下特点:
- 分布式
分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。
- GIT 把内容按元数据方式存储
- GIT 没有一个全局的版本号
- GIT 内容的完整性
GIT的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
2.2. GIT工作区、暂存区和版本库
- 工作区: 就是电脑里能看到的目录。
- 暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
- 版本库:工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。
工作区、版本库中的暂存区和版本库之间的关系如图1所示。
图1
GIT的工作区、暂存区和版本库这里必须清楚,这三个区都是在本地,工作区数据的状态是未暂存的,通过指令将数据存放入到暂存区,数据的状态变为暂存,只有暂存的数据才能放入到本地的仓库。那么我们需要管理的PLC数据在哪里?在项目里,只有通过同步操作才能将数据放入到工作区。
2.3. GIT的基本操作
GIT的工作就是创建和保存项目的快照及与之后的快照进行对比。GIT常用的是以下 6 个命令:git clone、git push、git add 、git commit、git checkout、git pull,这些指令的作用如图2所示。
图2
- git add:添加文件到暂存区。
- git commit :将暂存区内容添加到本地仓库中。
- git clone:拷贝一份远程仓库,也就是下载一个项目。
- git pull:下载远程代码并合并。
- git push:上传远程代码并合并。
- git checkout:命令用于切换分支或恢复工作树文件。同时也是一个很危险的命令,因为这条命令会重写工作区,在TIA 博途VCI接口中没有该命令。
上面的内容参考网上资料,我归纳总结了一下。GIT的资料在网上比较多,如果想了解更多信息,可以在网上搜索相关资料。
3. TIA 博途VCI接口所需的软件
- TIA 博途的Openness
在安装TIA博途是缺省是安装的,为什么需要Openness功能?因为GIT不能处理LAD等编程语言,所以需要使用Openness功能将程序块转换为*.SimaticML文件(符合西门子专有的XML文件),这样才能被GIT使用,程序转换工作由VCI自动执行。
- 软件SIMATIC Automation Compare Tool
版本管理需要对象相互之间的对比才能知道彼此间的差异,TIA博途中可以比较程序块的差异,但是转换为*.SimaticML文件后就不能比较了,而SIMATIC Automation Compare Tool就是为比较*.SimaticML格式对象而设计的,所以不可或缺。比较的程序对象为:
- 程序块 (LAD, FBD, SCL, and STL)
- PLC 变量表
- 数据块 (DBs)
- 用户数据类型(UDTs)
从可以比较的对象来看,GIT可以进行版本控制的对象也就是上面几种,所以瓶颈不是GIT,而是SIMATIC Automation Compare Tool的限制。使用CFC和Graph语言编写的程序可能就不行了,目前为止是这样的。软件的下载网址为:
https://support.industry.siemens.com/cs/ww/en/view/109797235
- VCI Git Connector
VCI Add in 插件,可以在TIA博途中直接调用GIT命令,例如“Add”、“Push”等,方便TIA博途软件的使用者。如果对GIT比较熟悉,感觉没有这个插件也可以使用,大家看到后面可以自己感觉一下。软件的下载网址为:
https://support.industry.siemens.com/cs/ww/en/view/109773999
注意这个链接有两个Add-in可以下载,选择“VCI Git Connector”的文件,如图3所示,
图3
- 用于WINDOWS的GIT
这个软件就是版本控制的软件,下载的VCI Git Connector用于连接TIA博途和GIT,即在TIA博途中使用GIT命令。软件下载网址为:
https://www.git-scm.com/downloads
4. 创建远程仓库和本地仓库
可以在网上注册Github和Gitlab账号并创建远程仓库,两者的区别可以在网上搜索,这里不再介绍了。考虑到国内访问 Github 速度比较慢,可能会影响使用,也可以使用国内的Git 托管服务—Gitee(gitee.com),本文中测试的远程仓库就在Gitee上创建,创建的过程还是比较简单。这里需要记住远程仓库的地址,登录网站,在“我的”选择创建的仓库,在“克隆/下载”中可以查看和复制地址。
图4
创建本地仓库需要GIT软件的帮助。GIT软件安装完成后,在开始菜单栏中出现三个应用,分别是Git GUI、Git Bash和Git CMD。Git中的Bash是基于CMD的,在CMD的基础上增添一些新的命令与功能,所以建议在使用的时候,用Bash更加方便。GUI是图形化界面,很适合初学者使用,下面的介绍以Git GUI为主。本地仓库与远程仓库使用非对称加密方式进行通信,所以在本地需要生成SSH公钥,然后复制并粘贴到远程仓库中。使用SSH的好处有两个,第一是加密通信;第二是双方交换数据不再需要密码。双击打开Git GUI查看SSH公钥,如图5所示。
图5
在弹出的界面中生成公钥,然后复制公钥并登录远程仓库,在“设置”中粘贴复制的公钥,如图6所示。
图6
关闭GIT SSH公钥窗口,点击“Clone Existing Repository”,将远程仓库克隆到本地仓库,如图7所示。
图7
点击“Clone”按钮,这样就创建了一个本地仓库。
5. 在TIA博途中配置VCI接口
查看图1和2,可以看到,本地仓库、工作区都在一起,这时选择作为本地仓库的文件夹,再选择显示隐藏的文件就可以看到前面所说的.git文件了。需要进行版本控制的数据和文件是存放在工作区的,所以必须将TIA博途中PLC项目与工作区进行关联,这个关联可以直接在TIA博途中新增的“版本控制接口”中操作。在关联之前还需要做一些准备工作,即安装配置软件“SIMATIC Automation Compare Tool”和“VCI Git Connector”。
先安装软件“SIMATIC Automation Compare Tool”,然后打开TIA博途,从菜单导航至“选项”->“设置”->“版本控制接口”并添加比较程序(就是“SIMATIC Automation Compare Tool”的执行文件),如图8所示,执行文件缺省的路径为:“C:\Program Files\Siemens Automation\SIMATIC Automation Compare Tool”。
图8
测试笔记:
将TIA博途切换为英文操作,中文环境不能浏览到安装的执行文件,只能手动粘贴了。
“VCI Git Connector”软件不需要安装,解压缩后将文件“Siemens.VCIGitConnector.addin”复制到TIA 博途的Addins文件夹中,缺省目录为“C:\Program Files\Siemens\Automation\Portal V17\AddIns”(版本为V17)。缺省情况下,Add in没有激活,需要在博途中激活。打开TIA博途,在最右边的“插件”任务栏中选择刚添加的插件文件并激活,如图9所示。
图9
到此为止,准备工作都已将完成,后面可以进行关联操作了。
打开TIA博途,在项目树中可以看到“版本控制接口”条目,双击“新增工作区”,添加了一个工作区,工作区的名称可以修改。创建的工作区就是图1/2中所说的工作区。双击打开工作区如图10所示,左边是项目窗口,可以显示当前项目中所有PLC站点和其中的程序块,右面是工作区。工作区显示“未组态”表示在TIA博途中创建的工作区还没有与图1/2中所示的工作区进行关联。点击组态工作区按钮,选择工作区的路径和使用的版本控制插件“Git”。
图10
测试笔记:
如果不选择“Git”,则在TIA博途中不能直接使用Git的命令,可以使用Git GUI和Git BASH命令间接操作。同时也可以看到,这里为其它版本控制软件预留的接口。
【声明:本文/视频版权归西门子1847工业学习平台所有,未经允许,不得转载。】