<
  • Главная
Статьи

CODESYS для програмування вбудованих систем

  1. аспекти програміста
  2. аспекти керівника
  3. Проблема правильної організації робіт
  4. Проблема розвитку універсальності системи і розширення ринку збуту
  5. Проблема інтеграції з пристроями інших компаній
  6. Проблема заміни ПЛК вбудовується системою
  7. Установка до CODESYS
  8. Висновок

У системах промислової автоматизації базовим інтелектуальним елементом є програмований логічний контролер (ПЛК) [1, 2, 3, 6, 7]. З точки зору програмування головна особливість ПЛК полягає в тому, що для роботи з ним не потрібно освіту в галузі інформатики. Інструменти і мови програмування ПЛК повинні бути максимально прості і в той же час ефективні. Спрощення використання не повинно спричинити за собою обмеження кола вирішуваних завдань. У системах промислової автоматизації базовим інтелектуальним елементом є програмований логічний контролер (ПЛК) [1, 2, 3, 6, 7]

Мал. Еволюційний набір для PLC Core модулів SYSTEC з системою виконання і візуалізацією CODESYS V3

Для задоволення цих суперечливих вимог були створені спеціальні мови програмування. У 1982 р вийшла перша редакція міжнародного стандарту МЕК61131-3 (далі МЕК). У ньому визначено п'ять мов програмування ПЛК: три оригінальних візуальних і два, які прийшли зі світу комп'ютерів. Так, до перших належать мови «релейних схем» (Ladder Diagram, LD), «функціональних блокових діаграм» (Function Block Diagram, FBD) і «послідовних функціональних схем» (Sequential Function Chart, SFC). А «Список інструкцій» (Instruction List, IL) - це апаратно-незалежний асемблер. Високорівнева мова «структурований текст» (Structured Text, ST) являє собою модифікований Паскаль. Окремі програмні компоненти можна описувати різними мовами МЕК навіть в одному проекті. Залежно від рівня підготовки, типу розв'язуваної задачі і особистих переваг прикладної МЕК-програміст вибирає оптимальний мову.

Створення якісного транслятора мови програмування високого рівня є складною і трудомісткою завданням. Для графічних мов обсяг роботи збільшується за рахунок необхідності створення відповідного графічного редактора і відладчика. Тому завдання підтримати кілька різних мов в одній програмному середовищі стала серйозною проблемою для багатьох виробників ПЛК. У підсумку це призвело до виникнення компаній, що спеціалізуються на створенні універсальних середовищ програмування на мовах МЕК. Однією з найбільш успішних виявилася німецька 3S-Smart Software Solutions GmbH зі своїм комплексом CODESYS.

CODESYS включає в себе редактори і транслятори для всіх п'яти стандартних мов з низкою суттєвих розширень. Він також підтримує значна кількість спеціалізованих налагоджувальних і сервісних функцій. На сьогодні CODESYS - світовий лідер серед МЕК-комплексів. З його допомогою щорічно програмується понад півмільйона контролерів. Після довгих років запеклих суперечок 18.01.2013 р була схвалена третя редакція стандарту МЕК 61131-3. До неї увійшли оригінальні об'єктно-орієнтовані розширення мов МЕК [4], вперше реалізовані в комплексі CODESYS V3. Таким чином, CODESYS створив новий міжнародний стандарт. Опису його складових, прийомам ефективної роботи і практику застосування присвячено кілька книг і безліч статей [1, 3, 6, 7, 8, 9].

аспекти програміста

Найчастіше програмісти вбудованих систем протиставляють CODESYS інтегрованим компіляторам мови С / C ++. Спробуємо порівняти їх технічно (результати порівняння наведені в таблиці).

Таблиця.Порівняльний аналіз компіляторів С ++ і CODESYSС ++CODESYS1. Трансляція коду / Середовище програмування

Компілятори генерують машинний код з якісної оптимізацією за розміром і швидкодією. Для різних сімейств мікропроцесорів зазвичай застосовуються різні компілятори. Як правило, оновлення версій компіляторів йде незалежно від середовища програмування. Вбудовані компілятори генерують машинний код з оптимізацією по надійності і переносимості. Тисячі різних пристроїв, на різних мікропроцесорах, використовують однакові компілятори, що забезпечує їх якість. Оновлення компіляторів йде разом з оновленням середовища програмування. Але є опція вибору версії компілятора. Це дозволяє виключити ризик при виправленні старих проектів. 2. Інтерфейс з системним рівнем (API) Функції читання входів і записи виходів потрібно писати в програмі. На різних апаратних платформах інтерфейс з системним рівнем різний. Він змінюється при заміні процесора або ОС. МЕК-програма працює з образом входів / виходів. Їх обслуговує система виконання. Доступ до специфічних пристроїв виконується через системні бібліотеки. 3. Переносимість Багато функцій прикладного коду можуть бути використані повторно. Системно-залежні інтерфейси потрібно адаптувати. Якщо набір ресурсів (порти, польові мережі та ін.) Не змінився, то програма переноситься без змін. Необхідно переконфигурировать введення / виведення
і адаптувати системно-залежні бібліотеки. 4. Зручність прикладного програмування Природне середовище для комп'ютерних програмістів, чого не скажеш про сервісне персоналі. Модифікації прикладного коду можуть впливати на стабільність системи в цілому. Повинні виконуватися тільки досвідченими програмістами. Сім різних мов програмування, включаючи графічні, дозволяють програмісту створювати код так, щоб він був зрозумілий прикладним фахівцям і обслуговуючому персоналу. Програміст може вибирати оптимальний мову для різних функцій. 5. Поділ між верхнім / прикладним / призначеним для користувача рівнем керуючої програми і системним рівнем Чи не реалізовано. Для розуміння роботи керуючої програми потрібно попередньо мати уявлення про організацію програмного забезпечення в цілому. Правильно організоване МЕК-додаток має два або більше рівня з чітким поділом. Верхній рівень відображає загальну структуру і алгоритми управління. Це дозволяє розуміти роботу системи обслуговуючому персоналу, який не має спеціальної підготовки. Внутрішні деталі додатки приховані (захищені)
в функціональних блоках і бібліотеках. 6. Об'єктно-орієнтоване програмування (ООП) Було найсильнішим аргументом на користь вибору C ++ до виходу CODESYS V3. Підтримано в CODESYS V3 для всіх мов. Дозволяє використовувати сучасну технологію організації додатків. 7. Графічний інтерфейс оператора (HMI) Можливий. Вимагає написання додаткового коду або використання допоміжних інструментів. Інтерфейс відображення повинен бути адаптований для різних пристроїв виводу. Вбудований графічний редактор з набором типових елементів відображення і введення. Для управління графічним елементом потрібно ввести найменування змінних програми у відповідних полях. Візуалізація відображається в середовищі програмування, на графічній панелі пристрою або через Інтернет. Режим перегляду вибирається в діалоговому вікні. 8. Налагодження Середовища програмування мають вбудовані отладчики. Додаткові функції, типу графічної трасування, фіксації значень змінних, не практикуються. Повна підтримка загальноприйнятих налагоджувальних функцій (виконання по кроках, умовні точки зупину, стек викликів і т. Д.) На всіх мовах МЕК. Додаткові функції для налагодження та обслуговування системи в цілому (графічна трасування, менеджер рецептів, фіксація змінних, візуалізація). Можливо візуальне моделювання об'єкта управління. 9. Реальний час Визначається організацією програми. Залежить від ОС. Може викликати обмеження при налагодженні. Забезпечується системою виконання. У прикладній програмі зусиль не вимагає. 10. Підтримка стандартних польових мереж (Fieldbus) не увімкнено. Потрібно додаткове ПЗ, що реалізує стек протоколу, і окремий конфігуратор. Стеки апаратно-залежні. Конфігуратор (якщо є) зазвичай не інтегрований в середу програмування. Символьне відображення входів / виходів проблематично. Інтегровані конфігуратор і стеки польових мереж. Стеки польових мереж написані в середовищі CODESYS і незалежні від нижнього рівня. Потрібний стек компілюється і лінкуются з додатком автоматично. 11. Спеціалізований інструментарій для прикладних областей Потрібно програмувати самим або купувати додаткові інструменти. Інтеграція зазвичай вимагає розділяється пам'яті. Контроль руху та логіка управляються різними процесами. Інтегрований механізм зберігаються змінних. Моніторинг входів і управління виходами без програмування. Спеціалізовані прикладні бібліотеки. Вбудована система управління рухом (Soft Motion CAM / CNC), 3D-редактор переміщень, інтерпретатор G-кодів (ЧПУ). Працює в одному процесі, єдина адресація. 12. Командна робота / управління версіями Більшість середовищ розробки підтримують контроль версій. Підтримується шляхом установки спеціального плагіна для інтеграції з Subversion. 13. Швидке створення / тиражування однотипних систем Існують спеціальні прийоми і інструменти, що прискорюють роботу програміста. Пакет CODESYS Application Composer дозволяє конструювати додатки з автоматичною генерацією надійного коду. Додаток складається з готових настроюються блоків без програмування. 14. Підтримка нових стандартів на ринку систем управління Потрібно відстежувати і робити самостійно, замовляти або купувати сторонні розробки. Функціонал, що відповідає новітнім світовим стандартам, нарощується постійно. Наприклад: FDT, OPC UA, EtherCAT, CANopen, PROFINET, ASi і т. Д. 15. Контроль цілісності / захист копіювання Ні. Реалізується програмно. Захист модифікації коду, унікальний ідентифікатор проекту. Опціонально: шифрування проекту, багаторівнева система прав доступу, збереження вихідних текстів в пам'яті пристрою.

Як показано в таблиці, для людини, що має освіту за фахом програмування, C / C ++ є природним вибором. Перехід до використання МЕК-мов зажадає деяких зусиль з освоєння. Зазвичай початковий дискомфорт в CODESYS викликає відсутність головного циклу і функцій введення / виводу, які повністю «заховані» в системі виконання. Істотно відрізняється робота з таймерами. Найближче до мови C в CODESYS мову ST. Як правило, для його впевненого освоєння програмісту досить декількох годин [5].

Використання МЕК-мов може не дати явних переваг миттєво. Вони проявляються яскраво при необхідності пояснення прикладної програми іншим людям. У цьому сенсі дуже ефективна зв'язка мов SFC і ST. Діаграма SFC візуально представляє інтуїтивно зрозумілий алгоритм роботи, буквально «оживає» в онлайновому режимі. Дії кроків SFC описуються на звичному високорівневої мовою ST.

аспекти керівника

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

Проблема правильної організації робіт

Як правило, в компанії є системний програміст з відповідною освітою. Він починає з «оживлення» плати, установки операційної системи (ОС) або самостійної розробки необхідного функціоналу нижнього рівня. Видається логічним, щоб він продовжив роботу над системою далі, включаючи прикладні функції. Йому доводиться витратити чимало часу на те, щоб розібратися з прикладної сферою. Будь то газовий котел, система управління яхти, пульт авіаційного тягача або що завгодно, поступово він почне орієнтуватися в темі не гірше замовника. Іноді навіть краще, оскільки змушений розібратися з причинно-наслідковими зв'язками і вибудувати алгоритми. В результаті компанія набуває абсолютно унікального фахівця. Робота успішно здається. Далі стає зрозуміло, що тільки цей фахівець здатний супроводжувати систему. Його не можна відволікати або замінювати, не можна надати відпустку або звільнити. Компанія потрапляє в залежність від фахівця.

Компанія потрапляє в залежність від фахівця

Мал. Парк літаків тягачком пании TREPEL. Замість звичайних важелів управління він оснащений вбудованим панельним PC c CODESYS компанії Janz Tec

Спочатку сам програміст радий своїй унікальній позиції. Через декілька років він зауважує, що «золотий фонтан» не забив, а робота стала стомлюючої. Він відстав від нових технологій за основним фахом. Змінити роботу не реально. Проблема виникає з двох сторін.

CODESYS виручає завдяки властивостям 2 і 5 (див. Таблицю). Нижнім рівнем, включаючи установку системи виконання CODESYS, займаються системні програмісти. Прикладний проект робиться в CODESYS фахівцями з прикладної області. Завдяки 4, їм не потрібна спеціальна освіта. Системний і прикладної рівні чітко розділені, як і вимоги до їх виконавцям. При необхідності супровід програмного забезпечення може бути передано замовнику. Фахівцям замовника досить пройти дводенні навчальні курси.

Проблема розвитку універсальності системи і розширення ринку збуту


Мал. Пульт управління яхтою, розроблений компанією Exor

Якщо пристрій виявився затребуваним, то поступово виникає необхідність спеціальних виконань для різних замовників. З'являється кілька «прошивок» програми. Потім розробляється спеціальна комп'ютерна програма - конфігуратор системи. Вона налаштовує параметри пристрою. Поступово число параметрів зростає. Відповідно, розбухає документація. Але як і раніше знаходяться замовники, яким не вистачає потрібного саме їм функціоналу. Народжується логічна думка піти далі і дати замовникам (дистриб'юторам, установників) можливості програмування системи. З мовою C ++ це нереально. CODESYS вирішує дану проблему. Існує ряд спеціалізованих контролерів для друкарських машин, деревообробних верстатів, заправних станцій, дорожніх машин, хімічних аналітичних приладів і ін., Які оснащені CODESYS і доповнені спеціалізованими бібліотеками. Виробник відповідної машини сам адаптує контролер під різноманітні моделі і нарощує функціонал. Виробник вбудовується системи виграє за рахунок уніфікації і розширення областей застосування.

У простих пристроях виручає вбудована візуалізація CODESYS (п. 7 таблиці). З її допомогою графічні конфігуратор, включаючи веб-інтерфейс, робляться «попутно» на ранніх версіях прикладного проекту.

Проблема інтеграції з пристроями інших компаній

Зазвичай в успішно розвивається системі виникає необхідність підключення приладів, датчиків і інших пристроїв провідних світових виробників. Самостійна реалізація стандартних польових мереж значна по трудомісткості. Купівля готового стека дорога. CODESYS (див. П. 10 таблиці) дозволяє підтримати практично всі стандартні мережі. У нашій практиці до використання CODESYS у вбудованих системах частіше за інших приводила необхідність підтримки стеків CANopen і EtherCAT.

Проблема заміни ПЛК вбудовується системою

У деяких випадках, крім базового серійного вироби, потрібні особливі виконання. Приклад: компактний холодильник і замовна холодильна установка, різні термокамери, ваги, зварювальні автомати, наукове обладнання та ін. Під спеціальне виконання доцільно застосувати готовий ПЛК з CODESYS. На нашому ринку доступні десятки таких ПЛК різних цінових категорій. У різних застосуваннях можуть використовуватися компактні, модульні або панельні ПЛК. Для серійних виробів виготовляється власний вбудований контроллер. Якщо скрізь коштує CODESYS, то одна команда справляється з розробкою ПЗ і супроводом всіх варіантів. Практично скрізь застосовується один проект з різною конфігурацією.

Установка до CODESYS

Для того щоб пристрій програмувалося в CODESYS, в ньому попередньо повинна бути встановлена ​​так звана система виконання CODESYS Control. Вона включає планувальник завдань, завантажувач, функції налагодження, обслуговує польові мережі, введення / висновок і т. Д. Саме завдяки їй МЕК-програма виявляється апаратно-незалежною. Набір ресурсів, які має обслуговувати система виконання, відрізняється у різних контролерів. Мова йде не тільки про микроконтроллере, але і про структуру в цілому. З цієї причини не можна просто скопіювати систему виконання з одного пристрою на інший. Вона завжди вимагає деякої індивідуальної адаптації. Всі існуючі вмонтовані системи з CODESYS створені одним з трьох способів:

  1. Бізнес-модель розробніків CODESYS орієнтована на серійно віпускаються вироби. Виробник ПЛК набуває стартовий набір. Це комплекс з програмного забезпечення и робіт з навчання, допомоги в адаптації та Подальшого супроводу. На віході Вихід спеціальна «прошивка», «заточена» під конкретну систему и готова до тиражування. Перша адаптація зазвічай займає кілька місяців. Виконаю ее, компанія здобуває необхідній досвід и может самостійно встановлюваті CODESYS на будь-які свои продукти Досить Швидко, даже если смороду побудовані на різніх процесорах и в різніх операційних системах.
  2. Існують компании (Systec, Janz, Frenzel Berg та ін.), Що предлагают Готові Вбудовані пристрої з CODESYS і системи під замовлення. Замовнику залішається только Написати прикладне ПО. Зазвічай Такі компании віпускають власний ряд модулей- «напівфабрикатів». У них є надійне апаратних ядро ​​(вбудований комп'ютер, мікропроцесорній модуль, PLC Сore), Певний набір плат або мікросхем чинності / Виведення, мережеві и інші модулі. З них компонується потрібна система. Вони також пропонують кілька типів готових вбудованих комп'ютерів (контролерів) з CODESYS і еволюційні набори.
  3. Застосування мікросхем і модулів Beck IPC @ CHIP. Це мініатюрний вбудовується комп'ютер з ОС РВ на борту. Компанії Beck вдалося придумати технологію і створити спеціальний інструмент - Platform Builder (до речі, безкоштовний). З його допомогою в діалоговому режимі ми задаємо необхідну конфігурацію системи виконання CODESYS. Наприклад, можна включити підтримку CANopen, веб-візуалізації, описати входи / виходи, вибрати спосіб обслуговування незалежній пам'яті, додати власні обробники системних подій і т. П. Потім автоматично генеруються всі необхідні файли. Залишається дописати за готовими шаблонами драйвери введення / виведення під нашу периферію і зібрати систему виконання. Виходить виконуваний файл, який копіюється на вбудований диск IPC @ CHIP. Технологія виглядає простий, але поки ніхто з конкурентів не створив аналогів. Всі вони пропонують якісь типові збірки PLC Core ядер з фіксованим функціоналом.

На вимогу російських замовників Beck створила спеціальне виконання чіпів з розширеним температурним діапазоном (-40 ° С). Існує виконання для енергетики з підтримкою комунікаційної бібліотеки МЕК 61850.

Перший шлях вибирають великі виробники вбудованих систем. Він виправданий при випуску від декількох сотень виробів в рік і вище. У країнах ЄС все більше розвивається практика замовлення розробки. За кількістю застосувань в Росії лідирує технологія Beck IPC @ CHIP. У будь-якому випадку середовище програмування CODESYS поставляється безкоштовно. Ніяких обмежень в функціоналі і числі установок в ній не передбачено. У CODESYS є вбудований емулятор контролера. Це дозволяє почати роботу без придбання апаратних засобів.

Мал. «Безпілотний» транспортер E & K AUTOMATION на базі власного вбудованого контролера і модулів вводу / виводу Wago IO

Висновок

Сегмент вбудованих систем в сумарному річному обсязі застосувань CODESYS щорічно збільшується. CODESYS застосовується у вбудованих контролерів компаній Bosh, Rolls-Royce Marine, Praxis, CC Systems, Moba і ін. Це далеко не досвідчені прототипи, мова йде про десятки тисяч виробів. Приклади декількох застосувань показані на фотографіях.

Серед МЕК-систем програмування CODESYS виділяється тим, що, подібно до компіляторам С / С ++, безпосередньо генерує надійний і компактний машинний код, придатний для вбудованих систем. Прості в освоєнні мови МЕК дозволяють залучити до розробки і супроводу фахівців прикладної області. Інтерес для розробника вбудовуваних систем може представляти багатий функціонал комплексу CODESYS. Багатозадачність реального часу, обробка подій, вбудована візуалізація, розвинений набір комунікацій, «гаряче» оновлення коду, польові мережі, підтримка управління через Інтернет, засоби національної локалізації проектів і інші функції CODESYS можуть бути не затребувані у вбудовується системі спочатку. Але необхідно враховувати, що всі вони створювалися еволюційно, виходячи з практичних вимог, що виникали у користувачів контролерів в різних країнах, різних умовах і на різних етапах робіт. В процесі життя вбудовується системи неминуче виникають аналогічні або близькі завдання. Наприклад, завдання налаштування і тестування обладнання замовником, інтеграція з іншим обладнанням, веб-інтерфейс і т. П. У багатьох випадках CODESYS дасть готове рішення.

література
  1. Петров І. В. Програмовані контролери. Стандартні мови та прийоми прикладного проектування. М .: СОЛОН-Пресс. 2004.
  2. Болл К. Історія виникнення програмованих логічних контролерів // Control Engineering Росія. 2009. № 1 (36).
  3. Петров І. В. Вибір ПЛК: ставка на відкритість і сумісність // Конструктор. Машинобудівник. 2013. № 1.
  4. Wagner R., Petrov I. Go to OOP // SPS-Magazin. № 9.
  5. Петров І. В. Мова ST для C програміста // Світ комп'ютерної автоматизації. 2006. № 1.
  6. Харазі В. Г. Інтегровані системи управління технологічними процесами. СПб .: Професія. 2009.
  7. Денисенко В. В. Комп'ютерне управління технологічним процесом, експериментом, обладнанням. М: Гаряча лінія-Телеком. 2009.
  8. Petry J. IEC61131-3 mit CoDeSys V3: Ein Praxisbuch f? R SPS-Programmierer. Kempten. Germany. 2011 року.
  9. Константинов А. Модульний ПЛК FASTWEL I / O - від задуму до реалізації // Control Engineering Росія. 2012. № 4 (41).

IEC61131-3 mit CoDeSys V3: Ein Praxisbuch f?


Новости
  • Виртуальный хостинг

    Виртуальный хостинг. Возможности сервера распределяются в равной мере между всеми... 
    Читать полностью

  • Редизайн сайта

    Редизайн сайта – это полное либо частичное обновление дизайна существующего сайта.... 
    Читать полностью

  • Консалтинг, услуги контент-менеджера

    Сопровождение любых интернет ресурсов;- Знание HTML и CSS- Поиск и обновление контента;-... 
    Читать полностью

  • Трафик из соцсетей

    Сравнительно дешевый способ по сравнению с поисковым и контекстным видами раскрутки... 
    Читать полностью

  • Поисковая оптимизация

    Поисковая оптимизация (англ. search engine optimization, SEO) — поднятие позиций сайта в результатах... 
    Читать полностью