Подтвердить что ты не робот

Управление версией ПЛК

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

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

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

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

4b9b3361

Ответ 1

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

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

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

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

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

Ответ 2

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

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

Просмотрите http://www.mdtsoft.com/ также

Ответ 3

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

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

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

Ответ 4

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

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

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

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

Ответ 5

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

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

Bart.

Ответ 6

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

Ответ 7

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

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

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

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

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

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

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

Ответ 8

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

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

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

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