之前分享过一篇关于TIA Portal Version Control Interface(版本控制接口)如何添加代码比较程序的推文,如何实现版本控制一笔带过了。本文填一下此接口如何结合版本控制软件如git ,实现plc程序版本管理,感兴趣的可以到坑里来一起玩耍。
1 了解git
git是一个分布式版本控制软件,可以直接在本地实现文件的版本管理。使用命令行就可以完成操作。
还可以把本地库传送到支持git的远程源代码托管服务平台进行保存如github。也可以使用git用本地主机自己搭建一台git服务器作为代码仓库使用。与别人分享、进行协同开发。
git软件直接到官网下载最新版安装即可:
https://git-scm.com/downloads
2 添加TIA Portal项目
新建一个文件夹,作为TIA Portal项目的版本控制接口的workspace即工作空间,并作为版本控制软件git的代码库目录。
示例中文件夹:C:\Users\liubing\Documents\TIAPRJ
为项目添加一个工作区:
在项目树中打开“版本控制接口”——双击“新增工作区”。
打开添加的工作区,点击“组态工作区”,指定工作区路径为C:\Users\liubing\Documents\TIAPRJ
然后从工作区左侧项目中把PLC中需要进行版本管理的对象拖到右侧工作区
此时,PLC_1中FC1块自动与工作区中FC1.scl文件关联,之间状态一致即该FC的比较版本与工作区中的完全相同。
项目中可以导出到工作区的对象包括:
组织块 (OB)
函数块 (FB)
功能 (FC)
数据块 (DB)
PLC 数据类型
PLC 变量表
3 创建git仓库
右击“TIAPRJ”文件夹,菜单中点击“Git Bash Here”,启动shell命令行界面
然后,输入git init,以TIAPRJ为目录初始化git仓库的创建
同时会创建一个默认的分支master,并作为当前分支。
该命令执行完后会在TIAPRJ目录生成一个 .git 目录。所有git需要的数据和资源都存放在这个目录中。
然后,配置Author信息:设置用户名与邮箱
这样就基本完成一个git仓库创建。
4 管理PLC程序版本
本文不聊git命令,只说明一下一个PLC程序版本控制涉及的一些主要操作。
有关git使用的详细内容可阅读官网book:
https://git-scm.com/book/zh/v2
保存一个FC1版本
前面提到当从项目把FC1拖到工作区,FC1.scl自动添加到工作区TIAPRJ目录中即git仓库工作区目录。
v1.0版本FC1源文件
FUNCTION "FC1" : Void
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
BEGIN
END_FUNCTION
先使用命令 git add
把FC1.scl的修改添加到暂存区
使用命令 git status
可以查看暂存区的信息,包括了刚才添加的FC1.scl
然后使用命令 git commit
提交已暂存的修改,v1.0为附加的信息,这样可以容易的辨识已保存的版本,当然也可以给每个commit添加tag。
使用命令 git log
可以查看已提交的历史版本信息,黄色行commit后面的字符串为该commit的ID
再保存一个FC1版本
修改FC1程序,如添加一个输入、一个输出参数,编译保存
v2.0版本FC1源文件
FUNCTION "FC1" : Void
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR_INPUT
Input_1 : Bool;
END_VAR
VAR_OUTPUT
Output_1 : Bool;
END_VAR
BEGIN
END_FUNCTION
打开workspace,FC1状态被标记为
,表示项目中对象的比较版本与工作区中的不同。自上一次同步操作后,TIA Portal 对象已更改。
先点击“将更改导出到工作区”,然后点击“同步”,把FC1修改同步到git仓库工作区,覆盖其中FC1.scl文件
然后在git bash中保存更改,流程与上面保存v1.0相同
先使用命令 git add
把FC1.scl的修改添加到暂存区
然后使用命令 git commit
提交已暂存的修改,v2.0为附加的信息
使用命令 git log
可以查看所有已提交的历史版本信息
恢复FC1到指定版本
如把FC1恢复到第一次保存的v1.0版本
使用命令 git restore
--source为指定commit的ID
打开TIAPRJ中FC1.scl文件,可以看到已恢复到v1.0
打开workspace,FC1状态被标记为
,表示项目中对象的比较版本与工作区中的不同。自上一次同步操作后,工作区文件已更改。
先点击“从工作区导入更改”,然后点击“同步”,把git仓库工作区FC1同步到项目
到此结束,本文只是抛砖引玉,git使用的更多内容,感兴趣的可自行学习,应该不会太难。