TIA Portal 内置 Git

版本控制
针对 TIA Portal 项目

嵌入在 T-IA Connect 中的完整基于 Git 的版本控制系统。将您的项目导出为可读的文本文件,提交变更,查看 diff,管理分支,并与远程仓库同步 — 直接从 UI 或通过 MCP 工具操作。

TIA Portal 项目是版本控制的噩梦

二进制文件,无 diff,无 merge — 版本控制的最坏情况

不透明的二进制格式

TIA Portal 项目是专有的二进制文件。Git 将它们视为二进制大对象 (blobs) — 没有行对行的 diff,没有有意义的 merge,无法查看两个版本之间实际更改的内容。

复制粘贴式版本管理

工程师通过复制文件夹来管理版本:Project_v1、Project_v2、Project_v2_John_modified。磁盘空间激增,没人知道哪个版本是最新的,且合并是不可能的。

变更不可见

有人上周更改了一个功能块。他们具体改了什么?哪个网络?哪条指令?如果没有文本 diff,如果不并排在 TIA Portal 中打开两个版本,你就无法分辨。

缺乏协作工作流

两名工程师无法满怀信心地同时处理同一个项目。没有分支,没有 merge 能力,没有 pull requests。一个人会覆盖另一个人的工作。

T-IA Connect 中的 VCS 如何工作

导出 → Git → diff/branch/merge,带有自动 XML 标准化

自动项目导出

T-IA Connect 将所有项目元素导出为可读文本文件:块 (OB, FB, FC, DB) 导出为 SimaticML XML,变量表、UDT、监控表导出为 XML,硬件配置导出为 AML。

XML 标准化 (Normalization)

TIA Portal 在导出之间可能会重新排序 XML 属性,导致虚假的 diff。内置的 XmlNormalizer 会确定性地对属性进行排序,因此 diff 仅显示真正的更改。

内置 Git (LibGit2Sharp)

无需安装外部 Git。T-IA Connect 使用 LibGit2Sharp 实现完整的内置 Git。Init, commit, branch, diff, merge, push, pull — 全部内置。

完整分支管理

为变体或实验创建分支。在功能分支上工作,进行测试,然后 merge 回 main。软件团队使用的相同工作流,现在可用于 PLC 项目。

远程同步 (Push/Pull)

添加远程仓库 (GitHub, GitLab, Gitea, Azure DevOps) 并 push/pull 变更。通过标准的 Git 基础设施在团队间共享项目历史。

桌面 UI 侧边栏

桌面应用中的 VCS 侧边栏显示仓库状态、已修改文件,并允许您直接从 UI 进行 commit。日常操作无需命令行。

典型的版本控制工作流

从项目变更到可追溯、可对比的历史记录

1

1. 初始化仓库

运行 vcs_init 在 .tia-connect/source/ 中创建一个 Git 仓库。每个项目只需执行一次。所有后续导出都会进入此目录。

2

2. 提交 (Commit) 变更

在 TIA Portal 中做出更改后,运行 vcs_commit。T-IA Connect 会导出整个项目,暂存文件,并使用您的消息创建一个 Git commit。

3

3. 查看 Diffs 和历史记录

使用 vcs_diff 查看具体更改了什么 — 哪些 XML 元素被添加、修改或删除。使用 vcs_log 浏览带有消息和时间戳的 commit 历史。

4

4. 分支、合并 (Merge) 与还原 (Restore)

为实验创建分支 (vcs_branch_create),将它们合并回去 (vcs_merge),或从之前的 commit 还原特定文件 (vcs_restore)。

导出内容

每个项目元素都变成一个可读、可对比的文本文件

程序块

OB, FB, FC, DB — 导出为 SimaticML XML。每个块都是 blocks/ 目录下的一个独立文件。完整的网络结构、指令和注释均被保留。

变量表 (Tag Tables)

PLC 变量导出为 tags/ 目录下的结构化 XML。名称、数据类型、地址和注释 — 全部纳入版本控制。

UDTs 和监控表 (Watch Tables)

udts/ 中的用户自定义类型和 watch/ 中的监控表。完整的项目数据类型与程序逻辑一起被追踪。

硬件配置

网络拓扑、CPU 配置和 I/O 模块导出为 hardware/ 中的 AML (AutomationML)。将硬件更改与软件更改一起追踪。

可用的 VCS 工具

可通过 MCP、Copilot、REST API 和桌面 UI 访问

vcs_init / vcs_commit / vcs_status

初始化仓库,使用消息提交当前项目状态,并检查自上次提交以来哪些文件已被修改、添加或删除。

vcs_log / vcs_diff

浏览带有消息和时间戳的 commit 历史。查看 commit 之间或工作状态与上次提交之间的文本 diff。

vcs_branch_* / vcs_merge

创建、列出、检出和删除分支。合并分支。针对 PLC 项目的完整 Git 分支工作流。

vcs_remote_* / vcs_push / vcs_pull

添加、列出和删除远程仓库。将 commit 推送到远程并从团队拉取变更。标准的 Git 远程工作流。

vcs_restore / vcs_config

从之前的 commit 还原文件。配置 Git 用户名和电子邮件。内置 Git 仓库的项目级设置。

常见问题

这与 TIA Portal 内置的项目版本管理有何不同?

TIA Portal 的版本管理是在整个项目级别进行的 — 二进制快照。T-IA Connect 的 VCS 将单个元素导出为文本文件,为您提供行对行的 diff、分支、合并以及查看每个块中具体更改的能力。它们互为补充。

我可以 push 到 GitHub/GitLab 吗?

是的。通过 vcs_remote_add 添加远程仓库,并使用 vcs_push/vcs_pull 进行同步。导出的文本文件可完美适配任何 Git 托管平台。您的 PLC 项目历史记录可以与其他代码库并存。

restore 是否真的会导回 TIA Portal?

vcs_restore 从之前的 commit 中检索文件内容。完整重新导入 TIA Portal 的功能正在开发中(某些块类型的 UTF-16 编码存在问题)。目前,restore 为您提供准确的源内容以便手动重新导入。

我需要在机器上安装 Git 吗?

不需要。T-IA Connect 通过 LibGit2Sharp 嵌入了 Git — 这是一个原生的 .NET Git 实现。无需外部 Git 安装,无需 PATH 配置,无需命令行。一切通过 T-IA Connect 的 UI 和工具运行。

为您的 PLC 项目进行版本控制

Diffs、分支、merge、push/pull — 针对 TIA Portal 的真正源代码控制,而不是文件夹副本。内置于 T-IA Connect,无需配置。