Контроль версий
для проектов TIA Portal
Полноценная система контроля версий на базе Git, встроенная в T-IA Connect. Экспортируйте свой проект в виде читаемых текстовых файлов, фиксируйте изменения (commit), просматривайте diff, управляйте ветками (branch) и синхронизируйте с удаленными репозиториями — напрямую из интерфейса или с помощью инструментов MCP.
Проекты TIA Portal — это кошмар для контроля версий
Бинарные файлы, отсутствие diff, невозможность merge — худший сценарий для контроля версий
Закрытый бинарный формат
Проекты TIA Portal представляют собой проприетарные бинарные файлы. Git видит их как blobs — никакого построчного diff, никакого осмысленного merge, никакой возможности увидеть, что именно изменилось между двумя версиями.
Версионность через копирование
Инженеры управляют версиями проектов, копируя папки: Project_v1, Project_v2, Project_v2_John_modified. Место на диске заканчивается, никто не знает, какая версия актуальна, а слияние (merge) невозможно.
Отсутствие видимости изменений
Кто-то изменил функциональный блок на прошлой неделе. Что именно изменилось? Какая сеть? Какая инструкция? Без текстового diff вы не сможете этого узнать, не открыв обе версии одновременно в TIA Portal.
Отсутствие рабочего процесса совместной работы
Двое инженеров не могут уверенно работать над одним и тем же проектом одновременно. Нет веток (branches), нет возможности слияния (merge), нет pull requests. Один просто перезаписывает работу другого.
Как работает VCS в T-IA Connect
Экспорт → Git → diff/branch/merge с автоматической нормализацией XML
Автоматический экспорт проекта
T-IA Connect экспортирует все элементы проекта в виде читаемых текстовых файлов: блоки (OB, FB, FC, DB) как SimaticML XML, таблицы тегов, UDT, таблицы наблюдения (watch tables) как XML, а конфигурацию оборудования как AML.
Нормализация XML
TIA Portal может изменять порядок атрибутов XML между экспортами, вызывая ложные diff. Встроенный XmlNormalizer детерминированно сортирует атрибуты, поэтому diff показывает только реальные изменения.
Встроенный Git (LibGit2Sharp)
Установка внешнего Git не требуется. T-IA Connect использует LibGit2Sharp для полностью встроенной реализации Git. Init, commit, branch, diff, merge, push, pull — всё встроено.
Полное управление ветками
Создавайте ветки (branches) для вариантов или экспериментов. Работайте в функциональной ветке, протестируйте её, а затем выполните merge обратно в main. Тот же рабочий процесс, что и у команд разработчиков ПО, теперь для проектов PLC.
Удаленная синхронизация (Push/Pull)
Добавьте удаленный репозиторий (GitHub, GitLab, Gitea, Azure DevOps) и выполняйте push/pull изменений. Делитесь историей проекта с командой, используя стандартную инфраструктуру Git.
Боковая панель в Desktop UI
Боковая панель VCS в настольном приложении показывает статус репозитория, измененные файлы и позволяет делать commit прямо из интерфейса. Командная строка не нужна для повседневных операций.
Типичный рабочий процесс контроля версий
От изменения проекта до отслеживаемой истории с возможностью diff
1. Инициализация репозитория
Запустите vcs_init для создания репозитория Git в .tia-connect/source/. Это делается один раз для проекта. Все последующие экспорты попадают в эту директорию.
2. Фиксация изменений (Commit)
После внесения изменений в TIA Portal запустите vcs_commit. T-IA Connect экспортирует весь проект, индексирует файлы и создает Git commit с вашим сообщением.
3. Просмотр Diffs и истории
Используйте vcs_diff, чтобы увидеть, что именно изменилось — какие элементы XML были добавлены, изменены или удалены. Используйте vcs_log для просмотра истории коммитов с сообщениями и метками времени.
4. Branch, Merge и Restore
Создавайте ветки для экспериментов (vcs_branch_create), объединяйте их (vcs_merge) или восстанавливайте конкретный файл из предыдущего коммита (vcs_restore).
Что экспортируется
Каждый элемент проекта становится читаемым текстовым файлом с поддержкой diff
Программные блоки
OB, FB, FC, DB — экспортируются как SimaticML XML. Каждый блок — это отдельный файл в директории blocks/. Полная структура сетей, инструкции и комментарии сохраняются.
Таблицы тегов
Теги PLC экспортируются как структурированный XML в директорию tags/. Имена, типы данных, адреса и комментарии — всё под контролем версий.
UDTs и таблицы наблюдения
Пользовательские типы данных (UDT) в udts/ и таблицы наблюдения в watch/. Полные типы данных проекта отслеживаются вместе с программной логикой.
Конфигурация оборудования
Топология сети, конфигурация CPU и модули ввода-вывода экспортируются как AML (AutomationML) в hardware/. Отслеживайте изменения оборудования вместе с изменениями ПО.
Доступные инструменты VCS
Доступны через MCP, Copilot, REST API и Desktop UI
vcs_init / vcs_commit / vcs_status
Инициализация репозитория, фиксация текущего состояния проекта с сообщением и проверка того, какие файлы были изменены, добавлены или удалены с момента последнего коммита.
vcs_log / vcs_diff
Просмотр истории коммитов с сообщениями и метками времени. Просмотр текстовых diff между коммитами или между текущим состоянием и последним коммитом.
vcs_branch_* / vcs_merge
Создание, перечисление, переключение и удаление веток. Слияние веток. Полный рабочий процесс ветвления Git для проектов PLC.
vcs_remote_* / vcs_push / vcs_pull
Добавление, перечисление и удаление удаленных репозиториев. Push коммитов в удаленный репозиторий и pull изменений от команды. Стандартный рабочий процесс Git remote.
vcs_restore / vcs_config
Восстановление файла из предыдущего коммита. Настройка имени пользователя и email в Git. Настройки на уровне проекта для встроенного репозитория Git.
Часто задаваемые вопросы
Чем это отличается от встроенного версионирования проектов в TIA Portal?
Версионирование в TIA Portal работает на уровне всего проекта — бинарные снимки. VCS в T-IA Connect экспортирует отдельные элементы в виде текстовых файлов, предоставляя построчный diff, ветвление (branching), слияние (merging) и возможность видеть, что именно изменилось в каждом блоке. Они дополняют друг друга.
Могу ли я делать push на GitHub/GitLab?
Да. Добавьте удаленный репозиторий с помощью vcs_remote_add и используйте vcs_push/vcs_pull для синхронизации. Экспортированные текстовые файлы идеально работают с любой платформой хостинга Git. История вашего проекта PLC живет вместе с остальными вашими репозиториями.
Действительно ли восстановление (restore) выполняет импорт обратно в TIA Portal?
vcs_restore извлекает содержимое файла из предыдущего коммита. Полный реимпорт в TIA Portal находится в разработке (существует проблема с кодировкой UTF-16 для некоторых типов блоков). На данный момент restore предоставляет вам точное содержимое исходного кода для ручного реимпорта.
Нужно ли мне устанавливать Git на мой компьютер?
Нет. T-IA Connect встраивает Git через LibGit2Sharp — нативную реализацию Git для .NET. Никакой внешней установки Git, никакой настройки PATH, никакой командной строки. Все работает через интерфейс и инструменты T-IA Connect.