2010-11-18 3 views
16

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

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

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

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

+0

какое решение вы придумали? У нас такая же проблема, что и обновление всех файлов программистов. – JMooney

+0

@JMooney: Я просто продолжал путаться. – Dave

ответ

5

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

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

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

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

См. Также this post.

+1

Спасибо. Вы подтвердили мои страхи :) – Dave

4

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

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

Барт.

+0

Я не кодер ПЛК, поэтому я не могу сказать окончательно, что они работают над * одинаковым * кодом, то есть одновременно работают в Foo.java, но thay определенно пытаются самостоятельно извлечь Foo.java и Bar.java из Baz.jar, внести соответствующие изменения, а затем самостоятельно проверить в Baz.jar. Имеет ли эта аналогия смысл? – Dave

+0

Это то же самое, что вы видите с помощью PowerBuilder и * .pbl-файлов. – Dave

+0

Извините, я должен был уточнить, что имею в виду работу в том же файле, но в разных разделах кода. Если вы программируете ПЛК с помощью RSLogix, у него есть один файл (.ACD), но этот файл содержит конфигурацию ПЛК, код для разных подпрограмм и т. Д.Если один программист изменяет процедуру №1, а другой изменяет процедуру №2, они оба возвращают файл .ACD, и кому-то тогда необходимо объединить их. – Bart

4

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

+0

Да, это почти то, с чем мы застряли. – Dave

+0

@Dave: Как это отличается от разработки общего программного обеспечения? У вас могут быть некоторые изменения, которые могут быть внесены различными разработчиками; вам нужен типичный процесс слияния инструментов управления конфигурацией, в котором последний парень, которого нужно проверить, должен тщательно слить свои изменения. ... вы можете посмотреть на расширенные инструменты «diff», такие как наши инструменты http://www.semanticdesigns.com/Products/SmartDifferencer, которые не учитывают макет. У нас есть L5K передние концы, которые можно использовать с таким инструментом. –

+0

@Ira: в общем случае исходный код разбивается на множество небольших файлов вместо одного монолитного файла. – Dave

5

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

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

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

+0

Спасибо за ответ. Это уже не моя проблема, но я все равно определенно заинтересован в возможных решениях. Раньше у меня была эта проблема с PowerBuilder, и это было так же уродливо. – Dave

6

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

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

Заканчивать http://www.mdtsoft.com/ также

3

Я видел этот вопрос прямо сейчас по ссылке на бирже стека: Are There Realistic/Useful Solutions for Source Control for Ladder Logic Programs. Вместо ответа на один ответ я обмануваю свой ответ здесь:

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

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

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

4

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

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

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

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

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

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

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

+0

Ваш последний абзац - это то, что мы делаем. Исходя из обычного программного обеспечения, я надеялся на большее, но, как показано здесь (и подтверждено разработчиком PLC в этой программе), это примерно так же хорошо, как может быть. Кроме того, добро пожаловать в StackOverflow. – Dave

5

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

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

«Специальная поддержка со смарт сравнит для SIMATIC S5, SIMATIC S7, SIMATIC PCS 7, WinCC, WinCC гибком, 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 прекрасно поддерживаются по versiondog.

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

Смежные вопросы