Чи існують реалістичні / корисні рішення для управління джерелами для логічних програм програми сходів


17

Контроль версій для програм логічної драбини (LL) для програмованих логічних контролерів (ПЛК), здається, практично не існує. Це може бути тому, що LL є візуальною мовою і має тенденцію зберігатись у двійкових файлах, а може бути тому, що контроль вихідного коду не «зачепився» в інженерних колах управління процесами - або, можливо, моя Google-Фу сьогодні слабка.

Чи знаєте ви які-небудь реалістичні та корисні рішення для управління версіями для таких систем?

Визначення:

  • real = зміни в програмах відстежуються користувачем і підлягають реверсії та злиттям
  • корисно = система інтегрується з візуальними LL-дизайнерами, не обмежується LL від одного виробника PLC і не коштує смішних грошей?

Примітка. Я чув, що люди, які використовують SVN або Mercurial et al, відстежують бінарні файли, але не думаю, що можливості diff / spage відображатимуть читабельні відмінності.

ДОДАТИ:

Спочатку нам потрібно було лише підтримувати PLC Allen-Bradley. Тепер у нас є також PLC Siemens та MicroLogix. Досі шукаємо життєздатне рішення ...


1
Це питання може бути актуальним для вас: stackoverflow.com/questions/4216619/plc-version-control
blueberryfields

Привіт @Stevenalowe, чи були якісь розробки на цю тему?
Montag451

@EnmosProje: не те, що я знаю, вибачте!
Стівен А. Лоу

Відповіді:


13

На жаль, відповідь залежатиме від постачальника PLC, який ви використовуєте. Більшість із них зберігає свій код у фірмових форматах файлів, тому ускладнює використання регулярного контролю джерела.

Роквелл пропонує FactoryTalk AssetCenter якщо ви використовуєте Аллена-Бредлі. Я його не цінував, але це, мабуть, дорого. Хоча це і більше, ніж контроль над джерелами.

Я використовував регулярний (Mercurial) вихідний контроль з файлами PLC Beckhoff TwinCAT. Це, здається, працює добре, але мені ніколи ні з ким не довелося зливатися. Їх нова версія TwinCAT (3), яка вийде пізніше цього року, повинна бути побудована на Visual Studio 2010, і я припускаю, що буде набагато краще пропозицій щодо інтеграції в управління версіями. Схрещені пальці.

Почніть редагування

Я просто хотів додати, що зараз я використовував новий продукт TwinCAT 3, і я використовую Mercurial (TortoiseHg та надбудова VisualHg для Visual Studio). Це працює досить добре. Перш за все, VisualHg відчуває себе дуже інтегрованим у IDE Visual Studio 2010, який TwinCAT 3 використовує. Однак вихідний код програм TwinCAT 3, як правило, зберігається у файлах XML. Це неабияке вдосконалення порівняно з власними бінарними форматами інших постачальників, які я використовував, але він все ще не зливається добре. Деякі з файлів не мають жодних розривів рядків у XML (про це я вже писав Бекхоффу), що означає, що система керування джерелом по лінії не робить багато. Крім того, оскільки це XML, впорядкованість вузлів у файлі XML, здається, змінюється випадковим чином, навіть коли ви не вносите жодних змін. Також, Я думаю, що іноді генерує нові ідентифікатори для деяких вузлів, коли цього не потрібно, що спричиняє зайві зміни, які сприймає Hg. Це фактично унеможливлює внесення змін до програми TwinCAT 3 двома програмістами одночасно, а потім об'єднує зміни. Це невдалий нагляд з боку розробників TwinCAT 3, які, безперечно, регулярно використовують управління джерелами у власній роботі, і не бачили переваги для нас, програмістів з автоматизованої автоматизації, мати доступ до аналогічно потужних інструментів. :( які, безсумнівно, регулярно використовують управління джерелами у своїй роботі, і не бачили переваги для нас, що мали програмісти автоматизації, мати доступ до аналогічно потужних інструментів. :( які, безсумнівно, регулярно використовують управління джерелами у своїй роботі, і не бачили переваги для нас, що мали програмісти автоматизації, мати доступ до аналогічно потужних інструментів. :(

Завершити редагування

Почніть редагування №2

Я хотів би зазначити, що TwinCAT 3.1 тепер має формати файлів, які краще підходять для управління джерелами, особливо структуровані файли текстової мови. Насправді продукт зараз створений для підтримки інтеграції до Team Foundation Server, я вважаю.

Кінець редагування №2

Інша альтернатива полягає в тому, що більшість програм PLC можна експортувати в текстові файли. Наприклад, RSLogix 5000 експортує свої проекти у файл L5K, який є лише текстом. Я раніше запускав сценарії проти цих файлів - їх досить легко розібрати. Вони б добре працювали з контролем джерел. Звичайно, це означає експортувати кожен раз, який смокче.

Якщо ви користуєтесь будь-яким стандартним контролем версій, я настійно пропоную розподілений VCS, наприклад, Git або Mercurial, тому що з PLC вдвічі більше часу ви перебуваєте на місці і не можете підключитися до домашнього сервера, тому можливість робити локальні послуги є справжнім бонусом.

Інша річ, яку ви повинні усвідомити, - це те, що деякі програми програмування PLC, такі як RSLogix, вже містять інструмент "diff", тож ви можете запускати розрізнення щодо двох версій своїх проектів. Це, в поєднанні зі збереженням нового файлу з сьогоднішньою датою щодня, - це, здається, з чим більшість магазинів автоматизації.


Ви коли-небудь використовували функцію Autosave? wingtipllc.com/products/autosave-plc-version-control/…
blueberryfields

@blueberryfields: так, я використовував функцію автоматичного збереження на більшості програмного забезпечення, яке її підтримує, і так, це кілька разів врятувало мою сідницю. Однак використовувати його як контроль версій - не дуже гарна ідея. Контроль версій повинен мати більше, ніж просто часова марка, він повинен мати автора та опис змін. Також має бути можливість здійснити тристоронній злиття між батьківською версією та двома вилами.
Скотт Вітлок

TwinCAT-проекти Beckhoff можна експортувати та імпортувати до / з текстових файлів. Ось так ми ставимо їх під контроль версій. Працює добре для проектів, написаних в ST. Не намагався з такими графічними мовами, як LL.
stmax

@stmax - я щойно відредагував відповідь, щоб надати свій останній досвід із цим. Як я вже сказав, це працює, не так добре, як могло.
Скотт Вітлок

Я сприйняв це як "відповідь", оскільки видається, що експорт до текстових файлів та використання SCC - єдине життєздатне рішення для декількох постачальників PLC.
Стівен А. Лоу

4

Якщо можете, подивіться B&R Automation.

Повне розкриття інформації ... Я працюю партнером з продажу B&R Automation.

Сучасні проекти B&R Automation дуже добре працюють з програмним забезпеченням для версій. Зараз я використовую GIT (який не інтегрований), хоча передбачається інтеграція зі SVN в програмне забезпечення. Всі джерела HMI зберігаються як XML, а всі їхні джерела мови PLC (включаючи сходи) зберігаються текстові, а не бінарні (здебільшого XML). Якщо вам доведеться робити ручні злиття, то вам доведеться певною мірою "розібратися" у XML, але я не вважав це таким складним. А автоматичне злиття зазвичай робить це непотрібним у будь-якому разі.


3

Я тільки що побачив це питання, і насправді є консервоване рішення - від GE-IP усіх місць. Перевірте Proficy Change Management. Цей продукт виконує контроль версій з точки зору систем управління PLC, а не чистого контролю версій файлів з точки зору - він працює як шар, що сидить поверх VCS (страшно, що спочатку цей VCS був Visual SourceSafe) і обробляє управління правами, звітність та оформлення замовлення / реєстрацію.

Хоча продукт від GE-IP, він розроблений для підтримки безлічі систем PLC та HMI поза коробкою.

Повне розкриття я використовував для роботи в компанії, що продає та встановлює ПКМ (але це було 7 років тому). Тож якщо ви запитаєте мене, як це було тоді, я, швидше за все, скажу вам, де все пішло не так!


1

Як це жахливо, як це звучить, я в одному випадку застосував функцію "Друк у PDF" програмного забезпечення логіки драбинки (в даному випадку це був Horner's CScape), а потім безкоштовну графічну програму розрізнення PDF (наприклад, DiffPDF ) для порівняння змін, оскільки вихідний код був доступний лише у фірмовому, двійковому форматі.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.