Ім'я: ПЛК Засновано: жовтень 2008р Учасники:Роман Савоченко Опис: Проект присвячено створенню: середовища виконання ПЛК, прошивки ПЛК та апаратних конфігурацій спеціалізованих ПЛК. Розглянуто вбудовані системи на основі архітектур x86 та ARM, а також окреме обладнання вбудованих рішень:
Сучасні системи автоматизованого керування технологічними процесами (АСУ ТП) є достатньо складними. Умовно ієрархію АСУ ТП можна поділити на два рівня: нижній та верхній рівень. Нижній рівень АСК ТП містить польове обладнання (датчики та виконавчі механізми), а також програмовані логічні контролери (ПЛК). Верхній рівень представляє із себе систему оперативної візуалізації та контролю за технологічним процесом — SCADA-система. ПЛК становить відповідальну частину АСК ТП, яка виконує функцію збору даних польового обладнання, обчислення та видачу керуючих, блокуючих та інших дій на керувальні органи польового обладнання.
OpenSCADA є відкритою реалізацією SCADA-системи, яку засновано на модульній архітектурі, що дозволяє будувати кінцеві рішення під різноманітні вимоги. Цільовим призначення OpenSCADA є системи верхнього рівня, однак висока ступінь модульності, і як наслідок масштабованість, дозволяють вирішувати широке коло задач суміжних областей.
2. Програмовані логічні контролери
Ринок ПЛК насичено широким спектром виробів різної архітектури та конструкції. Архітектурно ПЛК можна поділити на три умовні групи:
жорстко-програмовані ПЛК та модульні пристрої погодження з об'єктом (ППО);
високоінтелектуальні комерційні ПЛК;
ПК-сумісні ПЛК із відкритим доступом.
Жорстко-програмовані ПЛК за звичай будуються на основі одно-кристальних мікроЕОМ або мікросхемах програмованої логіки. Програма таких контролерів або прошивається одноразово, надаючи можливість програмної параметризації, або ж формується спеціалізованими засобами, які наділено функціями компіляції бінарної прошивки середовища виконання з програмою користувача, наприклад ISaGRAF або LabView. У якості представника такого ПЛК можна у приклад навести модулі розподіленого ППО фірми Advantech.
Високоінтелектуальні комерційні ПЛК за звичай будуються на базі більш потужного обладнання з архітектурою, близькою до повноцінного ПК. Основною відмінністю від стандартного ПК-сумісного ПЛК є закрита програмна, а часто і апаратна архітектури. Програмне оточення таких контролерів за звичай базується на операційній системі реального часу, яка планує декілька потоків користувача з поділом їх за пріоритетом. Користувацьке програмування таких ПЛК здійснюється роботою у фірмовому програмному оточенні, яке формує у якості результату бінарний код потоку ПЛК. У якості представника такого обладнання можна навести ПЛК серії S7 фірми Siemens.
ПК-сумісні ПЛК з відкритим доступом — це група скоріше не ПЛК, прямо сумісних з ПК, а ПЛК, які не містять інтегрованого середовища виконання і часто постачаються без операційної системи. Архітектура таких ПЛК може бути різною, починаючи від економічних рішень архітектури x86 та закінчуючи архітектурними рішеннями ARM та MIPS. Середовище виконання таких ПЛК за звичай формують з ПЗ того ж класу, що і у випадку з жорстко програмованими ПЛК, у вигляді бінарного файлу для виконання під одну з розповсюджених, масштабованих або спеціалізованих ОС (DOS, QNX, Linux, WinCE, VxWorks). Часто зустрічаються і спеціалізовані під задачу рішення. У якості представників цього класу можна розглядати ПЛК формфактору PC/104.
Варіанти конструктивного виконання ПЛК можна умовно поділити на моно-блокові та модульні. Моно-блокові ПЛК надають фіксовану конфігурацію ППО, спеціалізовану під обмежене коло завдань. Модульні конструкції надають можливість легкого розширення конфігурації ППО під потрібне завдання. Існують також і гібридні конструкції, які представляють із себе моно-блок, спроможний розширювати своє ППО за рахунок зовнішніх блоків ППО, які підключаються по одному з стандартних інтерфейсів, наприклад, за RS-485.
3. OpenSCADA як середовище виконання ПЛК
Архітектура системи OpenSCADA дозволяє створювати кінцеві рішення під різні вимоги та ресурси шляхом модульного розширення. Ця можливість виявляється корисною у світлі обмеженості ресурсів ПЛК. Крім того, враховуючи постійний розвиток апаратного забезпечення, а також безперервне підвищення інтеграції та економічності сучасних мікропроцесорних рішень, OpenSCADA дозволяє послідовно розширювати функціональність ПЛК, зберігаючи наступність зі старими рішеннями. Наприклад, на основі системи OpenSCADA можна будувати рішення з мінімальними вимогами на рівні: CPU 100 МГц, пам'ять та флеш-диск по 30 Мб.
Як було зазначено вище ресурси сучасних ПЛК можуть коливатися у достатньо великих межах, причому ПЛК фіксованого типу, побудовані на однокристальних мікроЕОМ, все далі витискаються у вузько-спеціалізовані галузі розвиненими ПК-архітектурами. Така тенденція робить все більш цікавою можливість створення уніфікованої відкритої платформи для реалізації середовища виконання ПЛК на основі уніфікованих ПК-платформ.
OpenSCADA дозволяє реалізувати ідею створення відкритої платформи для реалізації середовища виконання ПЛК. Вже зараз можна реалізовувати оточення ПЛК, які нічим не поступаються комерційним інтелектуальним контролерам, а багато у чому і перевершують їх за рахунок можливості інтегрування функцій, характерних для SCADA систем, у оточення ПЛК, розширюючи функціональні та користувацькі характеристики ПЛК та приводячи його на єдину зі SCADA кодову базу, а також оптимізуючи вартість кінцевого рішення.
Перелічимо функції, які вирішуються OpenSCADA у межах оточення ПЛК:
збір даних різного спектру обладнання у синхронному, асинхронному або блоковому режимах;
користувацькі процедури обробки даних та видача керуючих дії на Java-схожій мові високого рівня та на формальній мові блокових схем (Soft-logic);
архівація даних, починаючи від тимчасових буферів у пам'яті та закінчуючи повноцінними архівами на файловій системі або у БД різної дискретизації та глибини;
інтеграція у інфраструктуру АСУ ТП шляхом реалізації стандартних протоколів взаємодії (ModBus, SNMP, OPC UA ...);
інтеграція зі СУБД для експорту даних, зберігання конфігурації або архівів;
вільна конфігурація та адміністрування мережі ПЛК як за посередництвом оперативного інтерфейсу станції адміністрування, так і за посередництвом Web-інтерфейсу;
можливість реалізації панелей оператора з інтерфейсом контролю та керування на вбудованій Touch-панелі;
надання Web-інтерфейсів оперативного та диспетчерського контролю.
Action source page doesn't exist yet(/Home Page Uk / Using / PLC / firmware?)
Action source page doesn't exist yet(/Home Page Uk / Using / PLC / firmware ARM?)
6. Додаток 1. Обчислювальна продуктивність процесорних систем
* — Включає в себе дворазовий час виклику функції gettimeofday().
** — Вхід до процедури на мові JavaLikeCalc також означає вхід до критичної секції та запит на читання RW замка відтак цей час переважно відображає продуктивність цієї операції. Цей час виключено з відповідних значень у стовпчиках з JavaLikeCalc.
Різниця у часі обчислення при прямому виклику математичної операції та із віртуальної машини JavaLikeCalc обумовлена впливом частоти ядра процесору (частоти на якій воно працює) та яким виконується частина команди до передачі її математичному сопроцесору та із швидкістю пам'яті. Продуктивність математичного сопроцесору зазвичай не пов'язана безпосередньо із продуктивністю та частотою ядра процесору або швидкістю пам'яті.
Методика вимірювання у таблиці вище наступна:
Оцінка часу обчислення операцій загального блокування критичної секції, "sin(Pi)" та "pow(Pi,2)", у другому, третьому та четвертому стовпчиках. Операції sin() та pow() обрано як показові, для оцінки продуктивності сопроцесору та загальних маніпуляцій із реальними числами. Значення у квадратних дужках характеризує ступінь накладених витрат під час обчислення всередині віртуальної машини OpenSCADA та продуктивність цілочисельних обчислень довкола зразкових операцій. Тобто основне значення характеризує продуктивність процесору у операціях із плаваючою точкою (математичний сопроцесор або емуляція), а у квадратних дужках у цілочисельних операціях (центральний процесор), як різниця часу операцій із плаваючою точкою. Методика вимірювання:
забезпечуємо стабільність частоти центрального процесору, шляхом встановлення політики керування у ПРОДУКТИВНІСТЬ;
запускаємо OpenSCADA без навантаження, проект по замовчанню або з порожньою конфігурацією, з конфігуратором UI.QTCfg (RU), UI.WebCfg (RU) або UI.WebCfgD;
переходимо до вкладки "Виконати", встановлюємо "Включено", вводимо значення аргументам "X" у 3.14159 та "Ступінь" у 2 (для "pow()"), встановлюємо кількість запусків у 1000 (для більшої репрезентативності можна збільшити, порядками, до загального часу операції не більш 10 секунд);
натискаємо "Виконати" та отримуємо час виконання;
здійснюємо обчислення декілька разів, натискаючи "Виконати", домагаючись мінімального значення;
фіксуємо мінімальне значення, яке ділимо на 1000 (кількість запусків) та отримуємо основне значення часу одного обчислення у мікросекундах;
у вкладці "Програма" вводимо текст команди ПОРОЖНЬО, "y=sin(3.14159)", та далі "y=pow(3.14159, 2)";
переходимо до вкладки "Виконати" та виконуємо теж саме, що й у пунктах "d."-"g.";
отриманий результат записуємо у другому стовпчику та вважаємо допоміжним, у квадратних дужках, для третього та четвертого після віднімання значення у другій.
Комплексна оцінка продуктивності, п'ятий стовпчик, здійснюється шляхом виконання моделі технологічного процесу (ТП) АГЛКС на цільовій архітектуру. Цей тест може виконуватися тільки на обчислювальних системах із порівняно високою продуктивністю (або із кількістю ядер більш за одне), які спроможні виконувати модель, та із пристроєм виводу графічної інформації (дисплей), випадок виконання серверу візуалізації не розглядається. Основне значення навантаження процесору характеризує виконання динамічної моделі ТП, а додаткове додає формування та виконання графічного інтерфейсу. Методика вимірювання:
забезпечуємо стабільність частоти центрального процесору, шляхом встановлення політики її керування у ПРОДУКТИВНІСТЬ;
запускаємо емулятор терміналу (наприклад, "konsole"), де набираємо "top", натискаємо Shift+H (дивимося процес в цілому) та Shift+P (сортуємо за навантаженням на процесор);
знімаємо покази у колонці "%CPU" напроти процесу "openscada", відбираємо типове значення для декількох оновлень та фіксуємо його як основне значення;
У цьому розділі міститься інформація про продуктивність сховищ, з якими та на яких працювали та працюють рішення OpenSCADA. Action source page doesn't exist yet(/Using / PLC / storages?)
8. Додаток 3. Рішення ПЛК
У цьому розділі міститься інформація про моделі ПЛК реально побудованих або проектованих на основі розробленого середовища виконання та прошивки ПЛК. Action source page doesn't exist yet(/Using / PLC / solve?)