Управление версиями PLC

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

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

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

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

8 ответов


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

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

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

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

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


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

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

проверить http://www.mdtsoft.com/ также


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

Это грязная проблема, еще более грязная, когда вы поддерживаете систему, как вы хотите .ACD, с которым вы можете выйти в интернет, так как, если вы каким-то образом не делаете diff с инструментом сравнения RSLogix, вы просто видите нечитаемый машинный код, такой как "+|Éû3ÙÆW×晵'>>,"

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


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

производитель:

"специальная поддержка с умным сравнивает для SIMATIC S5, SIMATIC S7, ПК Siemens и 7, в WinCC, WinCC гибкому, Интач, курсы по Codesys, TwinCAT с, Phoenix PC WORX, RSLogix, Schneider Modsoft, Schneider Concept, Schneider Unity, SINUMERIK 840D, Bosch IndraWorks и многое другое. Также робот программы от ABB и Kuka и данные по офиса родственные такие форматы, как Microsoft Word, Microsoft Excel и Adobe PDF отлично поддерживаются по versiondog.

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


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

Я правильно читаю ваш вопрос и у вас есть несколько разработчиков, работающих над одним и тем же кодом PLC одновременно? Это страшная мысль, но я знаю, что иногда это должно произойти, Siemens PLC немного легче программировать с несколькими разработчиками, но я бы назначил одного человека для консолидации и тестирования всех изменений, прежде чем совершать PLC. Любая система CVS позволит вам создавать филиалы для каждого разработчика, но как вы заставите их консолидировать свои изменения-это вопрос миллиона доларов.

Барт


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


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

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

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

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

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

важно отметить, что комментарии rung не переносятся от одного пользователя к другому до RSLogix5000 v21, потому что предыдущие версии не сохраняли комментарии на контроллере.

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


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

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

пока продукт от GE-IP, он конструирован для того чтобы поддержать разнообразие системы PLC и HMI из коробки.

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