Что мы можем отправить на GitHub
Начиная с 16 версии TIAPortal от нашего любимого и нереально дорогого Siemens нам дали возможность поработать с системой контроля версий. Кончено и до этого было очень много способов как сделать так, чтоб было хорошо это и какой-то MultiuserServer, и Global Library, и ProjectLibrary. У всего есть плюсы и минусы. Сегодня нас интересует Version Control Interface.
Интерфейс управления версиями TIA Portal позволяет подключать внешнюю программу управления версиями к TIA Portal. Это простой способ обмена данными вашего проекта с предпочитаемой программой управления версиями. Для этого определите один или несколько каталогов на вашем ПК как рабочие области. Программа управления версиями и TIA Portal затем обращаются к этим рабочим областям. Таким образом, TIA Portal не взаимодействует напрямую с программой контроля версий.
Символы в TIA Portal указывают, идентичны ли объекты рабочей области объектам в TIA Portal или есть различия. В случае различий вы можете запустить синхронизацию между рабочим пространством и TIA Portal. Для объектов TIA Portal в рабочей области можно управлять версиями через сервер управления версиями.
(c) прямой перевод справки в переводчике
Если по простому, то бы создаем папочку привязываем ее к Гиту, потом эту же папочку указывает как Workspace для нашего интерфейса и вот мы с ней взаимодействуем. Ну там знаете... Коммиты и все такое, прям как в настоящем программировании.
Что же подается контролю версий? Все что может быть представлено в текстовом формате.
- Organization blocks (OB)
- Function blocks (FB)
- Functions (FC)
- Data blocks (DB)
- PLC data types
- PLC tag tables
Что точно не получится синхронизировать так это блоки с "защитой" know-how и всякие библиотечные типы.
Ну и чтоб это все начало работать требуется TIA Openess(хочешь разбора пиши в комменты)
Создаем свой первый репозиторий
GitHub и локальный репозиторий
И так... Пошаговая инструкция от того кто пробежался по верхушкам. Для начала, чтобы не утруждать себя, нам необходимо зарегистрироваться на github.com и скачать это приложение. Для меня так будет проще.
Запускаем софтину и погнали. При первом запуске там вам что-то предложат, но так как у меня не первый запуск, то я жму file->new repository. Таким образом мы создаем папочку, которая будет нашим локальным хранилищем и будет синхронизироваться.
Тут мы указываем путь, имя, описание, какой у нас будет .gitignore файл и тип лицензии(там все очень сложно).Жмем Create repository и готово - локальный репозиторий создан. Так как просто иметь локально мне не интересно, то я сразу пожалуй опубликую этот репозиторий в GIT.
Теперь приступаем к настройке TIA
Настройка интерфейса контроля версий
Теперь погнали в TIA Portal. У меня 16. И так сделаем вид что вы создали уже проект, добавили какое-то там оборудование и вот стартуем.
Находим в самом низу данный раздел и жмакаем на 'Add new workspace'
Открываем рабочее пространство и наблюдаем в окне надпись, что оно не настроено.
Для настройки нам потребуется нажать на значок в правой области.
В появившемся окне прописываем путь до папке с локальным репозитореим.
Нажимаем ОК и радуемся что теперь у нас настроено рабочее пространство.
РАБОТА С ИНТЕРФЕЙСОМ КОНТРОЛЯ ВЕРСИЙ
Экспорт
Как работает эта система. Она преобразовывает данные из проекта в текстовую форму. Текстовые файлы отправляет в рабочее пространство и связывает файл в проекте с файлом в репозитории. Каждый новый файл надо добавлять в репозиторий.
Чтобы добавить файл в репозиторий достаточно просто перенести его из левой части в правую. Я для теста перенес сразу весь проект, а именно папку PLC_1.
Теперь давайте создадим немного файлов для нашего проекта.
Я тут добавил случайных объектов и изменил OB1. Что на это все нам ответит контроль версий?
Контроль версий нам показывает что произошли изменения в файлах, но не в всех, а только в тех что были добавлены изначально. Синхронизируем изменения, но перед этим надо указать, что мы хотим экпорт изменений, а после синхронизация.
Следующим шагом будет добавить все остальное. Просто снова закидываю папку PLC_1 и получаю обновление.
И вот наши файлы проекта в текстовом исполнении. Осталось их отправить в интернеты, но это не точно.
Если открыть наш GitHub Desktop то нам покажут все изменения, которые произошли в нашем локальном хранилище со времен последнего коммита.
Пишем какое-то внятное название коммита и описание и жмем Commit to main.
Отлично теперь мы можем вытолкнуть эти изменения, а можем дальше продолжать работать локально.
Импорт
Как же нам теперь залить изменения в свой проект...
Тут надо посмотреть несколько вариантов.
Изменения файла в репозитории
Допустим файл в репозитории изменился. И так как я не понимаю как конвертировался LAD(а он прям хорошая такая и страшная XML) будем работать с SCL.
Мы кое что изменили в файле, который был связан с нашим fb и контроль версий показал различия.
К сожалению я не могу посмотреть различие в проекте TIA Portal, но окно GitHub мне показывает измения.
Даем команду на импорт из Workspace в проект. И синхронизируем изменения.
Однако изменения еще не затронули наш репозиторий основной, который для синхронизации, а мы передумали изменять плюс на минус. В приложении GitHub отменяем изменения и вот снова ...
Давайте дальше без скриншотов просто как факт. я отменил изменения теперь в локальном репозитории в данном fb x+y у меня в проекте x-y тут я сам выбираю что для меня важнее. Я хочу чтоб был минус по этому я делаю ЭКСПОРТ изменений.
ИМПОРТ
Ну тут все просто(относительно).
Создаем новый проект, указываем workspace то место, что является локальный репозиторием. После перетаскиваем файлы из локального репозитория в проект.
Ну там компилируем и работаем.
https://github.com/sudak-91/ZenTestProject - вот тут проект тестовый. Возможно буду что-то дополнять. Всем спасибо.
Ваши пожелания идеи и прочее в комментарии.