Контроль версий ПЛК - PullRequest
       29

Контроль версий ПЛК

19 голосов
/ 18 ноября 2010

Мне нужно придумать процесс CM для кода ПЛК.

В настоящее время система разрабатывается с использованием RSLogix 5000. Продукт сборки представляет собой монолитный файл, который может быть загружен в ПЛК для выполнения и отредактирован непосредственно в среде разработки. С несколькими разработчиками это стало проблемой. Они наступают друг на друга.

По аналогии, при разработке Java единственный способ отредактировать и сохранить исходный код - загрузить файл * .jar в вашу среду IDE, внести изменения, а затем сохранить их обратно в фляга Это не идеально.

Как я могу координировать изменения между несколькими разработчиками, работающими с ПЛК?

Ответы [ 9 ]

7 голосов
/ 07 июля 2011

Я использую Unity Pro, поэтому это может не относиться к другим брендам.

Unity может экспортировать «архивный» файл в формате XML, который описывает программу ПЛК и настройку ввода-вывода в полном объеме. После ввода изменений в эксплуатацию я создаю экспорт и регистрирую его в своем локальном репозитории Git. Это дает мне аннотированную историю изменений, но без визуального сравнения. Я всегда могу использовать UnityDiff для сравнения.

Выезд http://www.mdtsoft.com/ также

6 голосов
/ 18 ноября 2010

Если мы говорим об одном большом двоичном файле, то VCS (централизованный или децентрализованный) - не лучший инструмент для работы.
Внешняя ссылка (например, общий диск), где пакет будет копировать и маркироватьтекущее состояние PCL лучше.
См. " История программного обеспечения для отслеживания "

Чтобы предотвратить разрывы в исторической записи ревизий, старые версии программ должны храниться.
«Мы делаем еще один шаг вперед.Используя наше MDT Автосохранение , мы фактически выходим и опрашиваем оборудование.Ночью или с любой указанной частотой программное обеспечение считывает программы в ПЛК и затем сравнивает эту информацию с последней известной программой.Программное обеспечение для управления версиями скопирует новую программу и сохранит ее, а затем сравнит с последней.

Запуск управления версиями довольно прост.Требуется установка программного обеспечения, а затем настройка оборудования.«Вам понадобится сервер и пара недель разработки, и вы готовы к работе», - говорит Перишин.Тем не менее, его компания использует «термоусадочный подход», который включает в себя установку программного обеспечения, а затем настройку пользователями, заполняя пробелы.

При этом, если у вас есть несколько изменений от нескольких разработчиков, вам нужна среда интеграции , где можно выполнить и проверить первую доставку, прежде чем отправлять ее на реальный сервер..

См. Также этот пост .

5 голосов
/ 24 марта 2015

Вам необходима специализированная система управления версиями для ПЛК, такая как VersionDog .

От производителя:

"Специальная поддержка со Smart Compares для SIMATIC S5, SIMATIC S7, SIMATIC PCS 7, WinCC, WinCC Flexible, InTouch, CoDeSys, TwinCAT, Phoenix PC WORX, RSLogix, Шнайдер Модсофт, Schneider Concept, Schneider Unity, SINUMERIK 840D, Bosch IndraWorks и многое другое. Также робот программы от ABB и Kuka и офисные форматы данных, такие как Microsoft Word, Microsoft Excel и Adobe PDF отлично поддерживаются по версии.

Обновление: вот скриншот, показывающий сравнение версий релейной логики . Я предполагаю, что это то, что интересует большинство людей PLC. Мы также используем его для планирования отчета по электронной почте, если версии PLC офлайн и онлайн-приложений совпадают, как сигнал тревоги, что что-то было изменено в PLC, но не помещено в сервер контроля версий.

5 голосов
/ 10 июня 2011

Что касается RSLogix5000, я видел, как разработчики используют эмулированный ПЛК и вносят свои изменения в режиме онлайн. После того, как окончательный продукт будет разработан, он объединяется со всеми комментариями (поскольку они не содержатся в ПЛК) и затем вводится в эксплуатацию. Существуют проблемы с изменениями, которые нельзя сделать онлайн, например, AOI. Существуют инструменты, позволяющие двум людям одновременно редактировать одну и ту же логику в сети и стать владельцем разделов. Резервное копирование может быть сделано в форме загрузки, но нет никакого способа отследить изменения.

Это беспорядочная проблема, еще более запутанная, когда вы поддерживаете систему так, как вам нужен .ACD, с которым вы можете подключиться к сети, поскольку, если вы не выполняете различие с инструментом сравнения RSLogix, вы просто видите нечитаемый машинный код как "+ | Éû³´¬ÙÆW × æ ™ µ‚> Ù, "

Самая распространенная система контроля версий, которую я видел (к сожалению), - это просто сохранение самого последнего файла, затем получение копии и добавление текущей даты к имени файла, как описано в рекомендованном посте control.com.

4 голосов
/ 24 марта 2015

RSLogix5000 всегда запрещал нескольким пользователям открывать и редактировать один и тот же .ACD одновременно.Однако, если несколько пользователей имеют идентичные файлы .ACD, открывают их и все подключаются к одному и тому же целевому контроллеру, каждый из них может редактировать на контроллере одновременно, но только если они работают над разными подпрограммами.Другие правки появляются автоматически, если они смотрят на рутину других программистов.

Обратите внимание, что такая работа в Интернете обычно выполняется при работающем ПЛК, даже иногда с работающей целевой системой (своего рода машиной).Этот вид договоренностей с целью завершить работу быстрее или в некоторых случаях, потому что система огромна.Никто не развивается подобным образом, так как это действительно инструмент отладки и нецелесообразный для значительных изменений.

Если один программист заканчивает работу, а другой не выполняет, незаконченная работа другого будет сохранена первому программисту.ACD, когда они сохраняютТот, кто спасет последним, получит работу каждого.

Как и другие, упомянутые в этой теме, использование даты файла довольно разумно.Некоторые компании используют переменную контроля версий, которая обычно отображается в подключенном HMI.Другие компании используют отдельный документ, который документирует, кто и что меняет.Иногда примечания к версии помещаются в длинном комментарии в основной подпрограмме.

Моя компания использует отдельный журнал изменений, и сохраняются устаревшие архивные копии.Несколько программистов используются только в самых крайних случаях.Кто-то всегда предназначен для поддержания автономной целостности файлов, обычно это человек, который будет работать дольше всех, или менеджер проекта.

Важно отметить, что комментарии цепочки не передаются от одного пользователя другому до RSLogix5000v21 потому что предыдущие версии не хранили комментарии на контроллере.

Все это говорит о том, что вы можете пытаться управлять автономной разработкой.Я не видел никаких сложных методов для этого.Обычно программисты пишут необходимые подпрограммы отдельно, а менеджер проекта собирает их в один проект.Самый чистый подход, который я видел, - это когда менеджер проекта создает архитектуру с глобальной функциональностью и назначает рутинную работу другим, предоставляя им копию .ACD для работы.Они возвращают .ACD с изменениями, а менеджер проекта копирует и вставляет их подпрограммы в «главный» проект.

4 голосов
/ 01 февраля 2011

Простая вещь, которую нужно сделать, это сделать разность текстов для файлов .l5k, чтобы вы могли легко увидеть, не вмешался ли разработчик в часть файла, находящуюся за пределами их видимости.

4 голосов
/ 01 декабря 2010

Это очень хороший вопрос, и он действительно зависит от того, что вы от него хотите.Если вы используете только оборудование Rockwell, возможно, будет полезно взглянуть на их решение, я думаю, что оно называется FactoryTalk AssetCentre.В настоящее время я изучаю использование Bazaar от Canonical.Одна вещь, на которую указал VonC, - это то, что программный продукт, который может объединять ПЛК, - это плюс плюс, не обязательно в моем мнении, но это, безусловно, помогает, черт возьми.несколько разработчиков работают над одним и тем же кодом ПЛК одновременно?Это пугающая мысль, но я знаю, что иногда это должно произойти, ПЛК Siemens немного проще программировать с несколькими разработчиками, но я бы назначил одного человека для консолидации и тестирования всех изменений перед его фиксацией в ПЛК.Любая система CVS позволит вам создавать ветки для каждого разработчика, но как вы заставите их объединить свои изменения - вопрос на миллион долларов.

Барт.

3 голосов
/ 24 января 2015

Я только что увидел этот вопрос по ссылке на стеке: Существуют ли реалистичные / полезные решения для управления исходным кодом для программ релейной логики .Вместо того, чтобы отвечать только по ссылке, я повторю свой ответ здесь:

На самом деле существует консервативное решение - от GE-IP всех мест.Проверьте Proficy Change Management.Этот продукт осуществляет управление версиями с точки зрения систем управления ПЛК, а не просто управление версиями с точки зрения файлов - он работает как слой, расположенный поверх VCS (страшная часть в том, что изначально эта VCS была Visual SourceSafe)и управляет правами, отчетами и проверкой / регистрацией.

Несмотря на то, что продукт от GE-IP, он предназначен для поддержки множества ПЛК и HMI систем из коробки.

ПолныйРаскрытие я использовал для работы в компании по продаже и установке PCM (но это было 7 лет назад).Поэтому, если вы спросите меня, как это было тогда, я, вероятно, скажу вам, где все пошло не так!

0 голосов
/ 06 марта 2019

Вы можете использовать Git для совместной работы и убедиться, что все используют один и тот же файл, а не загружают общий диск несколькими файлами.

Я создал эту тему о том, как заставить git интегрироваться с ПЛК. это прямо здесь

Несмотря на то, что файл .acd является двоичным, так как у нас есть RSLogixCompare, доступный как инструмент, мы можем использовать его для поиска различий для наших файлов ACD. Кроме того, графический интерфейс Git Ext очень помогает в упрощении его для пользователей, которые не обращали на это особого внимания.

В нем описывается, как именно интегрировать, как RSLogixCompare, с расширениями git. Надеюсь, это поможет некоторым людям!

...