OpenSCADAWiki : Using. PLC

18.09.2015

OpenSCADA у програмованому логічний контролер (ПЛК)
1. Введення

Сучасні системи автоматичного управління технологічними процесами (АСУ ТП) є досить складними. Умовно ієрархію АСУ ТП можна розділити на два рівня: нижній та верхній рівень. Нижній рівень АСУ ТП містить польове обладнання (датчики і виконавчі механізми), а також програмовані логічні контролери (ПЛК). Верхній рівень представляє з себе систему оперативної візуалізації та контролю за технологічним процесом — SCADA-система. ПЛК є відповідальною частиною АСУ ТП, яка виконує функцію збору даних польового обладнання, обчислення та видачу регулюють, блокувальних і інших впливів на регулюючі органи польового обладнання.

OpenSCADA є відкритою реалізацією SCADA-системи, яка заснована на модульній архітектурі, що дозволяє будувати кінцеві рішення під різні вимоги. Цільовим призначенням OpenSCADA є системи верхнього рівня, однак висока ступінь модульності, і як наслідок масштабованості, дозволяє вирішувати широке коло завдань суміжних областей.

2. Промислові програмовані логічні контролери

Ринок ПЛК насичений широким спектром виробів різної архітектури і конструкції. Архітектурно ПЛК можна розділити на три умовні групи:

  • жорстко-програмовані ПЛК і модульні пристрої узгодження з об’єктом (УСО);
  • високоінтелектуальні комерційні ПЛК;
  • PC-сумісні ПЛК.

Жорстко-програмовані ПЛК зазвичай будуються на основі одно-кристальних мікроеом або мікросхем програмованої логіки. Програма таких контролерів або прошивається одноразово, надаючи можливість програмної параметризації, або ж формується спеціалізованими середовищами наділеними функціями компіляції бінарної прошивки середовища виконання з користувацької програмою, наприклад OpenSCADAWiki : Using. PLC
ISaGRAF і OpenSCADAWiki : Using. PLC
LabView. В якості представника такого ПЛК можна в приклад привести модулі розподіленого УСО фірми OpenSCADAWiki : Using. PLC
Advantech .

Високоінтелектуальні комерційні ПЛК зазвичай будуються на базі більш потужного обладнання з архітектурою, близькою до повноцінного PC-комп’ютера. Основною відмінністю від стандартного PC-сумісного ПЛК є закрита програмна, а часто і апаратна архітектури. Програмне оточення таких контролерів зазвичай ґрунтується на операційній системі реального часу, плануючої кілька настроюваних потоків з поділом їх за пріоритетами. Користувальницьке програмування таких ПЛК здійснюється роботою у фірмовому програмному оточенні, формує в якості результату бінарний код потоку ПЛК. В якості представника такого обладнання можна привести ПЛК серії S7 фірми OpenSCADAWiki : Using. PLC
Siemens .

PC-сумісні ПЛК — це група швидше не ПЛК, прямо сумісних з PC, а ПЛК, які не мають інтегрованої середовища виконання і часто поставляються без операційної системи. Архітектура таких ПЛК може бути різною, починаючи від економічних рішень архітектури x86 і закінчуючи архітектурними рішеннями ARM і MIPS. Середовище виконання таких ПЛК зазвичай формують з того ж класу, що і у випадку з жорстко програмованими ПЛК у вигляді виконуваного бінарного файлу під одну з поширених, масштабованих або спеціалізованих ОС (DOS, QNX, Linux, WinCE, VxWorks). Часто зустрічаються і спеціалізовані під завдання вирішення. В якості представників цього класу можна розглядати ПЛК формфактора OpenSCADAWiki : Using. PLC
PC/104 .

Варіанти конструктивного виконання ПЛК можна умовно розділити на моноблочні і модульні. Моноблочні ПЛК надають фіксовану конфігурацію УСО, спеціалізовану під обмежене коло завдань. Модульні конструкції надають можливість легкого розширення конфігурації УСО під потрібну завдання. Існують також гібридні конструкції, що представляють собою моноблок, здатний розширювати своє УСО за рахунок зовнішніх блоків УСО, що підключаються по одному із стандартних інтерфейсів, наприклад, по RS-485.

3. OpenSCADA як середовище виконання ПЛК

Архітектура системи OpenSCADA дозволяє створювати кінцеві рішення під різні вимоги і ресурси шляхом модульного розширення. Ця можливість виявляється корисною у світлі обмеженості ресурсів ПЛК. Крім того, враховуючи постійний розвиток апаратного забезпечення, а також безперервне підвищення інтеграції і економічності сучасних мікропроцесорних рішень OpenSCADA дозволяє послідовно розширювати функціональність ПЛК, зберігаючи наступність із старими рішень. Наприклад, на основі системи OpenSCADA можна будувати рішення з мінімальними вимогами на рівні: CPU 100 МГц, пам’ять і флеш диск за 30 Мб.

Як було зазначено вище ресурси сучасних ПЛК можуть коливатися в досить великих межах, причому ПЛК фіксованого типу, побудовані на однокристальних мікроеом, все далі витісняються у вузько-спеціалізовані області розвиненими PC-архітектурами. Така тенденція робить все більш цікавою можливість створення уніфікованої відкритої платформи для реалізації середовища виконання ПЛК на основі уніфікованих PC-платформ.

OpenSCADA дозволяє реалізувати ідею створення відкритої платформи для реалізації середовища виконання ПЛК. Вже зараз можна реалізовувати оточення ПЛК, нічим не поступається комерційним інтелектуальним контролерам, а багато в чому і перевершують їх за рахунок можливості інтеграції функцій, характерних для SCADA систем, в оточення ПЛК, розширюючи функціональні і користувальницькі характеристики ПЛК і приводячи його на єдину зі SCADA кодову базу, а також оптимізуючи вартість кінцевого рішення.

Перелічимо функції вирішуються OpenSCADA у рамках оточення ПЛК:

  • збір даних різного спектру обладнання у синхронному, асинхронному або блокових режимах;
  • користувальницькі процедури обробки даних та видачі керуючих впливів на Java-подібному мовою високого рівня і на формальному мові блокових схем;
  • архівування даних, починаючи від тимчасових буферів у пам’яті і закінчуючи повноцінними архівами на файловій системі або в БД різної дискретизації і глибини;
  • інтеграція в інфраструктуру АСУ ТП шляхом реалізації стандартних протоколів взаємодії (ModBus, SNMP, OPC UA. );
  • інтеграція з СУБД для експорту даних, зберігання конфігурації або архівів;
  • вільна конфігурація і адміністрування мережі ПЛК як за допомогою оперативного інтерфейсу станції адміністрування, так і за допомогою Web-інтерфейсу;
  • можливість реалізації панелей оператора з інтерфейсом контролю і управління на вбудованій Touch-панелі;
  • надання Web-інтерфейсів оперативного і диспетчерського контролю.

4. Прошивка та створення програмного оточення ПЛК архітектури x86

Архітектура x86 порівняно недавно стала позиціонуватися як вбудована і реальні рішення на її основі, в цій області, рідко володіють ресурсами (< i386), недостатніми для виконання повноцінної ОС і розвиненого оточення. З цієї причини, а також унаслідок більшої унифицированости архітектури індивідуальна збірка ядра Linux та базових програм оточення ОС здійснюється досить рідко, що зазвичай характерно для архітектури ARM. Більш цікавим і практичним для x86, для широкого спектру обладнання, є складання прошивок зі стислою кореневої файлової системою (КФС). Однак досі можлива індивідуальна збірка прошивок з допомогою систем збірок на зразок «BuildRoot» або «PTXDist», нижче. Також можлива і пряма установка дистрибутива Linux.

4.1. Інструменти і складання робочих оточень прошивок зі стислою КФС

Перед реалізацією прошивки ПЛК, даного розділу, ставилися наступні вимоги:

  • Компактність. У зв’язку з прямою залежністю ціни на промислові флеш-диски від їх обсягу, а також реальним відсутністю необхідності частого оновлення, образ прошивки потрібно упаковувати, досягнувши рівня компактності 8-50Мб на середовище виконання ПЛК в оточенні повноцінної ОС.
  • Уніфікований вихідний репозиторій. Оскільки прошивка не є чимось немодифицируемым, нерасширяемым і остаточно фіксованим, то в її основі повинен лежати реальний, що розвивається, репозиторій пакетів ОС. Це дозволить тривалий час формувати оновлення і розширення, не підтримуючи при цьому опосередкований репозиторій.
  • Налагоджена і проста процедура зборки. Враховуючи той факт, що конфігурація прошивки може деякий час стабілізуватися, крім того в компонентах ОС і OpenSCADA будуть виявлятися та усуватися помилки, то процедура складання прошивки не повинна бути обтяжливою, а навпаки — легко адаптується.
  • Прозора реалізація режиму запису в дереві ОС. Хоча прошивка і передбачає створення упакованого немодифицируемого образу прошивки, специфіка роботи середовища виконання ПЛК передбачає модифікацію БД та ведення архівів. Крім того, наявність можливості корекції вихідної конфігурації є важливою вимогою.
  • Надійність і стійкість до раптових вимиканням. Специфікою експлуатації ПЛК є, як правило, відсутність можливості коректного вимикання, а також практична реальність ситуацій миттєвого і непередбачуваного відключення живлення. ПЛК в таких ситуаціях повинен зберігати працездатність, у сенсі містити журналлируемую ФС і забезпечувати її перевірку і автоматичне усунення помилок.
  • Умовний поділ конфігурації ПЛК на два типи:
    • ПЛК без локального дисплея, можливо з простим текстовим табло.
    • Touch-панелі з функцією ПЛК.

Враховуючи вищенаведені вимоги, для створення прошивки був обраний репозиторій пакетів дистрибутива ОС Linux OpenSCADAWiki : Using. PLC
ALTLinux та інструмент створення дистрибутивів OpenSCADAWiki : Using. PLC
mkimage. mkimage — інструмент для складання образів Sisyphus-based системи за шаблоном. В якості вихідного набору шаблонів був узятий набір шаблонів формування дистрибутивів ALTLinux за адресою git://git.altlinux.org/people/boyarsh/packages/mkimage-profiles-desktop командою:

За основу формування ПЛК-шаблону був узятий стандартний «rescue», як найбільш компактний і близький до цільової задачі ПЛК.

Первинна збірка здійснювалася на основі пакетної бази дистрибутива OpenSCADAWiki : Using. PLC
ALTLinux 5.1. де присутня ядро реального часу від OpenSCADAWiki : Using. PLC
XENOMAI. Для отримання ряду специфічних пакетів потрібно підключити репозиторій «ALTLinux 5.1″ від проекту OpenSCADA:

rpm ftp://ftp.oscada.org/ALTLinux/5.1 new roman

В першу чергу створювалася конфігурація ПЛК без локального дисплея у вигляді наявності обладнання такого типу і відсутність обладнання для Touch-панелей.

Короткий опис статті: плк

Джерело: OpenSCADAWiki : Using / PLC

Також ви можете прочитати