ТДА16-1 (20.07.16)
Програмовані логічні
контролери стандарту
МЕК 61131
Олександр Пупена (pupena_san@ukr.net)
www.asu.in.ua
17.07.2016 ПЛК pupena_san@ukr.net 1
Програма та місце проведення конференції – за посиланням
Місце в загальній архітектурі
17.07.2016 ПЛК pupena_san@ukr.net 2
Інші (не ПЛК) варіанти:
• DCS (інша структура і парадигма)
• PC-base
• пристрої IEC 61499
• конфігуровані локальні/мережні
регулятори
• …
Спрощена фізична структура системи
17.07.2016 ПЛК pupena_san@ukr.net 3
Терміни: PLC (ПЛК), канали, модулі, блоки, CPU, AI, DI, AO, DO, CP, Rack (Шасі), Slot,
fieldbus, RIO/DIO, середовище розробки, real-time
Варіанти фізичної структури ПЛК
17.07.2016 ПЛК pupena_san@ukr.net 4
компактний (моноблочний)
компактний з можливістю розширення
модульний
Варіанти фізичної структури ПЛК
17.07.2016 ПЛК pupena_san@ukr.net 5
з розподіленими I/O ПЛК з вбудованим HMI
Централізований I/O vs розподілений
17.07.2016 ПЛК pupena_san@ukr.net 6
Централізований (модулі I/O) Розподілений (RIO – віддалені модулі I/O)
за місцем ЦПУ ПЛК можливий на відстані, по місцю датчиків/ВМ, або
навіть в полі (IP-67) – зручність монтажу, економія
кабельної продукції
той самий бренд, малий вибір
варіантів, але перевірена сумісність
можливий інший бренд, великий вибір варіантів,
можлива певна несумісність
максимальна швидкість взаємодії з
ЦПУ
можливі великі швидкості (RTE – Real Time
Ethernet)
гаряча заміна дефектних модулів гаряча заміна дефектних модулів
легка заміна дефектних модулів:
вийняв - вставив
легка заміна дефектних модулів (не у всіх
випадках): вийняв старий, змінив перемикачі на
новому, вставив
топологія – зірка (кабелі в один щит) топологія – шина (інколи з відгалуженнями), кільце
(надійність), інколи дерево (AS-i)
діагностування стану діагностування стану
проблематична організація гарячого
резервування
гаряче резервування базується на RIO
Розподілені I/O – автомат станів (приклад
Profibus DP)
17.07.2016 ПЛК pupena_san@ukr.net 7
Стан Поведінка
Power_ON /
Reset
DP slave включили або
перевантажили і почалася
внутрішня ініціалізація
WPRM
Wait for
Parameter
DP slave очікує параметри від DP
Master
WCFG
Wait for
Configuration
DP slave очікує телеграму
Check_Configuration від DP Master
DXCHG
Data Exchange
DP slave циклічно обмінюється
даними процесу і за необхідності
відповідає діагностичним запитом
Робота з віддаленими модулями I/O аналогічна до локальних.
Фізична структура ПЛК (продовження)
17.07.2016 ПЛК pupena_san@ukr.net 8
Широкий вибір на ринку, в т.ч. за критеріями:
• температурний діапазон
• тип живлення
• IP (ступінь захисту), вібростійкість
• відповідність SIL
• монтажні особливості
• особливості підключення
• архітектурна сумісність з іншими виробниками
• ….
Фізична структура ПЛК: резервування
17.07.2016 ПЛК pupena_san@ukr.net 9
140CRP
140CRP
140NOE
140NOE
мережа I/O (адаптована під гаряче резервування)
основний ПЛК резервний ПЛК I/O
I/OI/O
I/O
мережа I/O
Приклад структури системи
17.07.2016 ПЛК pupena_san@ukr.net 10
Конфігурування та програмування
17.07.2016 ПЛК pupena_san@ukr.net 11
Принципи:
• орієнтована на задачі реального часу, циклічне виконання задач
• мінімум програмування, максимум конфігурування
• мінімум помилок (макропрограми, відсутність вказівників, прямого
доступу до пам'яті …)
• захищеність від зависання (сторожові таймери)
• масштабованість, як малі так і великі системи на тому ж ПЛК,
можливість нарощування
• відкритість до зв'язку з засобами інших виробників (стандартизація)
• максимальна універсальність, мінімальний час адаптації до бренду
(стандартизація)
• можливість імпорту/експорту даних, програм
• максимальна зручність і простота налагодження, швидкий пошук
логічних помилок в коді
Середовище розробки та виконання,
приклад Unity PRO
17.07.2016 ПЛК pupena_san@ukr.net 12
• Як правило, середовище розробки платне для ПЛК великої та середньої
канальності, безкоштовне для малої канальності
Функціональна структура
17.07.2016 ПЛК pupena_san@ukr.net 13
Програмні задачі (Task): однозадачне середовище
виконання
17.07.2016 ПЛК pupena_san@ukr.net 14
задача (Task)
основний
час для ОС
час виконання задачі контролюється ОС ПЛК -
не більше ніж T watch dog (сторожовий
таймер), якщо більше – задача аварінйо
зупиняється !
Однозадачне виконання: циклічне vs періодичне
17.07.2016 ПЛК pupena_san@ukr.net 15
циклічне
періодичне
- різна тривалість задачі
- без пауз між викликами задачі
- однакова періодичність
виклику задачі
- під час пауз виділяється
більший час ЦПУ на
комунікації
Коли опитуються входи і записуються виходи?
17.07.2016 ПЛК pupena_san@ukr.net 16
- обробка входів/виходів, організація задач,
специфічні для різних ПЛК
- якщо опитування входів на початку задачі (образ
процесу), а запис виходів в кінці задачі, то образ
процесу не змінюється протягом виконання задачі,
а виходи оновлюються тільки по закінченню
- деякі ПЛК мають можливість проводити
запис/читання з I/O в будь якому місці програми
(наприклад в S7300/400 - PIW/PQW)
- у деяких ПЛК змішаний підхід - і образ процесу і
пряме звернення
Багатозадачність
17.07.2016 ПЛК pupena_san@ukr.net 17
Декілька задач, для кожної своя умова виклику (не обов'язково по часу),
можуть бути свої watchdog.
Типи задач
17.07.2016 ПЛК pupena_san@ukr.net 18
● CoDeSys
● Cyclic – періодичний виклик
● Freewheeling – ціклічно по колу
● Event – за зміною значення змінної або іншої
програмної події
● External Event – апаратне переривання
S7 1200 (TIA Portal)
Залежить від ПЛК!
M340 (Unity PRO)
Пріоритетність виконання задач
(приклад Unity PRO)
17.07.2016 ПЛК pupena_san@ukr.net 19
Програмна структура: POU - Program
Organizational Unit
17.07.2016 ПЛК pupena_san@ukr.net 20
Залежить від ПЛК!
Задача
CoDeSys Unity PRO
POU викликаються в Задачі; POU можуть викликати інші POU; усі POU в
ланцюжку виконуються в контексті тієї ж Задачі
Типи POU
17.07.2016 ПЛК pupena_san@ukr.net 21
Залежить від ПЛК!
Unity PRO: Section (ака Program), Function Block, Function/Procedure (тільки
бібліотечні)
Адресація каналів
17.07.2016 ПЛК pupena_san@ukr.net 22
Різні підходи прив'язки до каналів:
• топологічна адресація, визначається розміщенням каналу
в структурі (не потребує конфігурування адресації);
• наприклад %I2.4.3 відповідає за значення дискретного входу в 2-
му шасі, 4-й модуль, 3-й канал
• виділення адрес для каналів - mapping (відображення) на
певну область пам'яті (можливо поіменовану) під час
конфігурування;
• наприклад %IW100 може містити значення будь-якого
аналогового входу, куди захоче розробник
• змішане (або, і)
Топологічна адресація
17.07.2016 ПЛК pupena_san@ukr.net 23
Залежить від ПЛК!
Різні рівні і кількість в ієрархії:
• адреса PLC, пристрою на шині
• номер шасі
• номер модуля/блока
• номер каналу на модулі
• номер ком. порту
%IW0.1.23.4.5
шасі ком.модуля
ком. модуль
ком. порт
номер пристрою
модуль на пристрої
канал на
модулі
аналоговий вхід
приклад 2
приклад 1
Виділення адрес для каналів
17.07.2016 ПЛК pupena_san@ukr.net 24
Залежить від ПЛК!
Адресація
17.07.2016 ПЛК pupena_san@ukr.net 25
Залежить від ПЛК!
%IX або %I – область дискретних входів
%IW – область значень аналогових входів (у багатьох ПЛК пересікається з %I)
%QX або %Q – область дискретних виходів
%QW – область значень аналогових виходів (у багатьох ПЛК пересікається з %Q)
%MX або %M – область внутрішніх бітів
%MW – область внутрішніх слів (у багатьох ПЛК пересікається з %MW)
… інші варіанти
• топологічна адресація - %IW0.4.3
• нетопологічна адресація - %IW130
• поіменована адресація через змінні
Змінні
17.07.2016 ПЛК pupena_san@ukr.net 26
Залежить від ПЛК!
Типи
• INT (як правило 16-бітний!), UINT, DINT (32-бітний), UDINT
• BOOL
• BYTE
• REAL
• STRING
• ARRAY
• STRUCT (UDT)
• …
Найменування: в деяких ПЛК назви зберігаються тільки в проекті на ПК
(синоніми адрес); в деяких ПЛК змінним не обов'язково явно вказуються
адреси
Область видимості: сильно залежить від ПЛК; в ряді ПЛК усі змінні є
глобальними!
Мови
17.07.2016 ПЛК pupena_san@ukr.net 27
LD
ST/SCL
IL/STL
FBD/CFC
SFC/Grafcet
• стандарт IEC 61131-3: ПЛК підтримує як мінімум одну з 5-ти
• «заточені» під різні задачі
• виробники дуже люблять «діалекти», звідси несумісність і різність реалізацій
• мови в ПЛК можуть бути нерівнозначні за можливостями
• деякі середовища дозволяють конвертацію між мовами
ST/SCL
17.07.2016 ПЛК pupena_san@ukr.net 28
●ST - Structured Text
● текстова, C/Pascal/Basic подібна
● вирази та інструкції
● доступні умовні розгалуження, цикли
● послідовне виконання
● як правило, найбільш гнучка, люблять програмісти і автоматники
● як правило, присутня в ПЛК середньої та великої канальності
IL/STL
17.07.2016 ПЛК pupena_san@ukr.net 29
●IL - Instruction List
● текстова, орієнтовані на список інструкцій
● базуються на акумуляторах
● маленькі інструкції
● в деяких ПЛК єдина мова, інші мови - тільки представлення
● популярна тільки в ряді платформ (STL в S7 300/400, VIPA)
LD
17.07.2016 ПЛК pupena_san@ukr.net 30
●LD – Ladder Diagram
● графічна, РКС (релейно-контакнті
схеми)
● орієнтована переважно на
дискретну логіку
● добре сприймається електриками
● послідовне виконання зверху до
низу, зліва – направо
● функціональність сильно залежить
від реалізації
● в багатьох ПЛК (малої
канальності) є єдиною мовою
програмування
РКС і LD
17.07.2016 ПЛК pupena_san@ukr.net 31
або
FBD/CFC
17.07.2016 ПЛК pupena_san@ukr.net 32
●FBD – Function Block Diagram
● графічна, базується на потоках даних
● при нормальній реалізації «заточена» під регулювання, люблять
«регулювальні» автоматники і електронники
● функціональні блоки та функції з’єднуються входами/виходами
● послідовність виконання зверху-вниз, зліва-направо, задається
номером виконання
● в багатьох реалізаціях дуже обмежена (напр. Simatic), звідси часто
дискредитується, але там є CFC
● в деяких ПЛК (малої канальності) є єдиною мовою програмування
FBD/CFC і функціональна схема контуру
регулювання
17.07.2016 ПЛК pupena_san@ukr.net 33
Рис. 6.30. Приклад контуру регулювання з використанням
бібліотечних блоків та мови FBD
ПЛК (Програма користувача)
%QW4.1
Аналого-
вий вхід
Аналого-
вий вихід
4-20 мА 4-20 мА
%IW3.3
комунікаційний канал
HMI (операторська панель) або SCADA)
H1
HC1
зада
не
ВМ
25 ºС
TI1
HS1
1.45
25 c
Kp
Ti
дійсне
Керування логікою виконання в FBD та LD
17.07.2016 ПЛК pupena_san@ukr.net 34
• EN (Enable) –
можливість
логіки «якщо-
то»
• в деяких
реалізаціях ПЛК
відсутня (але
обов'язкова в IEC
61131-3)
SFC/Grafcet
17.07.2016 ПЛК pupena_san@ukr.net 35
●SFC – Sequential Function Chart
● графічна, базується на станах і
переходах
● дуже потужна для керування
періодичними процесами
● ресурсоємна (при повноцінній
реалізації), багато вбудованих
функцій контролю (налаштування
та контроль часу виконання кроку,
сигналізація …)
● добре сприймається технологами в
якості опису технологічного
процесу
SFC (приклад)
17.07.2016 ПЛК pupena_san@ukr.net 36
Бібліотека
17.07.2016 ПЛК pupena_san@ukr.net 37
• включає в себе готові функції,
процедури, функціональні блоки, сильно
спрощує життя розробнику
• програма як взамозвязаний набір
бібліотечних елементів
• часто є критерієм вибору платформи
• більшість сучасних середовищ розробки
для ПЛК середньої і великої канальності
дають можливість розробляти власні
бібліотечні елементи!
• таймери, лічильники, робота з
датою/часом, масивами, перетворення
типів, математичні, регулювання,
керування приводами …
Навігація в середовищі розробки
17.07.2016 ПЛК pupena_san@ukr.net 38
Конфігурування, налаштування
17.07.2016 ПЛК pupena_san@ukr.net 39
• багато функцій конфігуруються а не
програмуються
• конфігурація модулів в т.ч. RIO
зберігаються в центральному ЦПУ
Інструменти відлагодження програм
17.07.2016 ПЛК pupena_san@ukr.net 40
• анімаційні таблиці змінних (watch)
• анімація програм
• анімаційні графічні екрани
• самописці
• точки зупинки
• …
Приклади анімації програм в режимі виконання
17.07.2016 ПЛК pupena_san@ukr.net 41
https://www.youtube.com/watch?v=l1yp_VwcA88
Імітатор ПЛК
17.07.2016 ПЛК pupena_san@ukr.net 42
• імітатори ПЛК (simulator) - імітують роботу ПЛК на ПК розробника
• деякі мають можливість з'єднання по TCP/IP -> SCADA+simulator
відлагодження ПЗ АСУТП без наявного обладнання!
• ресурси ПК імітатору дає можливість вбудовувати складну
програмну модель об'єкту на тих же IEC 61131-3
Завантаження, зміна
17.07.2016 ПЛК pupena_san@ukr.net 43
• окрім виконавчого проекту, завантаження вихідного коду (не завжди)
• зміна програми без зупинки ПЛК!
• доступ з паролем
• завантаження через зв'язані між собою ПЛК (шлюзування)
• …
Діагностика ПЛК
17.07.2016 ПЛК pupena_san@ukr.net 44
• діагностичні індикатори на ЦПУ і модулях
• діагностичні вікна середовища розробки
• діагностичний буфер
• діагностичні функції та змінні
• можливість програмної обробки
• підтримка діагностики на рівні мереж
• інтеграція діагностики з SCADA/HMI
Приклад діагностичного вікна
17.07.2016 ПЛК pupena_san@ukr.net 45
Комунікації
17.07.2016 ПЛК pupena_san@ukr.net 46
• fieldbus (промислові мережі)
• рівня розподіленої периферії (RIO, приводи)
• рівня датчиків/ВМ (+ живлення по мережі)
• рівня ПЛК (між ПЛК/SCADA)
• Типові сервіси
• неявний (без програмного ініціювання) обмін I/O для розподіленої
периферії і датчиків:
• конфігурується, діагностується, автомат станів
• максимально наближений до локального I/O
• як правило функціонує методом Polling
• неявний обмін Global Data для розподіленої бази даних:
• для реалізації спільного Application між різними ПЛК одного рівня
• конфігурується, діагностується
• як правило функціонує методом Publisher/Subscriber
• явний обмін повідомленнями читання/запис об'єктів,
відправка/отримання повідомлення (прив'язаний до циклу),
клієнт/сервер
• функції програмування/конфігурування пристрою, діагностичні
функції
Комунікації (продовження)
17.07.2016 ПЛК pupena_san@ukr.net 47
• сумісність та обмеження
• підтримка «рідних» протоколів
• модульність: набір за необхідністю потрібної мережі
• підтримка відкритих протоколів: великі бренди підтримують
«великі» протоколи
• «тотальна» підтримка Modbus RTU та Modbus/TCP
• все прямує до Ethernet TCP/IP: TCP/IP, mail, http (WEB Server), ftp,
snmp, dhcp
• до Ethernet TCP/IP йде RTE (Real Time Ethernet), поширені
представники в Україні: Ethernet IP, Profinet.
• прграмісту як правило доступний інтерфейс до Application Layer, тільки
деякі вендори надають інтерфейс Open TCP
• для Ethernet TCP/IP повна відсутність кіберзахисту - все відкрито!
• технологія OPC вирішує проблему сумісності зі SCADA;
• OPC UA – перспективний напрям, реалізація планується на рівні ПЛК
• безпосередня інтеграція в Cloud зараз не підтримується, але можлива
через шлюзування та SCADA
Висновки для парадигми ПЛК
17.07.2016 ПЛК pupena_san@ukr.net 48
• на даний момент великий вибір і функціональні можливості
• висока швидкодія
• сучасні не тільки для дискретного керування а і аналогового
регулювання (PAC)
• домінує в Україні, але українські бренди не є домінуючими
• централізований підхід, але є розподілена периферія і
можливість глобальних даних (розподіленої БД) програм
декількох ПЛК
• окремі БД ПЛК та SCADA/HMI (програє в порівнянні з DCS), але
імпорт/експорт тегів навіть лінк зі SCADA/HMI, але як правило
того ж вендора
• не тільки пропрієтарні а і відкриті протоколи, відкритість все
збільшується
• можливість роботи з засобами інших вендорів
Висновки для парадигми ПЛК (продовження)
17.07.2016 ПЛК pupena_san@ukr.net 49
• простіше, швидше, надійніше за програмування PC Based, але
потребує певних знань в програмуванні, складніше для
експлуатаційного персоналу КВПіА (програє DCS і кофігурованим
контролерам та регуляторам)
• не таке гнучке в порівнянні PC Based, не дозволяє низькорівневого
програмування
• підтримка єдиного стандарту IEC 61131: перехід на іншу платформу
- адаптація до середовища а не вивчення мови програмування,
базовий перехід можливий через тижневе навчання
• як правило платне середовище розробки, під Windows
• підтримка дуже важливих речей: діагностика, налагоджування,
заливка на льоту …

Програмовані логічні контролери стандарту МЕК 61131

  • 1.
    ТДА16-1 (20.07.16) Програмовані логічні контролеристандарту МЕК 61131 Олександр Пупена (pupena_san@ukr.net) www.asu.in.ua 17.07.2016 ПЛК pupena_san@ukr.net 1 Програма та місце проведення конференції – за посиланням
  • 2.
    Місце в загальнійархітектурі 17.07.2016 ПЛК pupena_san@ukr.net 2 Інші (не ПЛК) варіанти: • DCS (інша структура і парадигма) • PC-base • пристрої IEC 61499 • конфігуровані локальні/мережні регулятори • …
  • 3.
    Спрощена фізична структурасистеми 17.07.2016 ПЛК pupena_san@ukr.net 3 Терміни: PLC (ПЛК), канали, модулі, блоки, CPU, AI, DI, AO, DO, CP, Rack (Шасі), Slot, fieldbus, RIO/DIO, середовище розробки, real-time
  • 4.
    Варіанти фізичної структуриПЛК 17.07.2016 ПЛК pupena_san@ukr.net 4 компактний (моноблочний) компактний з можливістю розширення модульний
  • 5.
    Варіанти фізичної структуриПЛК 17.07.2016 ПЛК pupena_san@ukr.net 5 з розподіленими I/O ПЛК з вбудованим HMI
  • 6.
    Централізований I/O vsрозподілений 17.07.2016 ПЛК pupena_san@ukr.net 6 Централізований (модулі I/O) Розподілений (RIO – віддалені модулі I/O) за місцем ЦПУ ПЛК можливий на відстані, по місцю датчиків/ВМ, або навіть в полі (IP-67) – зручність монтажу, економія кабельної продукції той самий бренд, малий вибір варіантів, але перевірена сумісність можливий інший бренд, великий вибір варіантів, можлива певна несумісність максимальна швидкість взаємодії з ЦПУ можливі великі швидкості (RTE – Real Time Ethernet) гаряча заміна дефектних модулів гаряча заміна дефектних модулів легка заміна дефектних модулів: вийняв - вставив легка заміна дефектних модулів (не у всіх випадках): вийняв старий, змінив перемикачі на новому, вставив топологія – зірка (кабелі в один щит) топологія – шина (інколи з відгалуженнями), кільце (надійність), інколи дерево (AS-i) діагностування стану діагностування стану проблематична організація гарячого резервування гаряче резервування базується на RIO
  • 7.
    Розподілені I/O –автомат станів (приклад Profibus DP) 17.07.2016 ПЛК pupena_san@ukr.net 7 Стан Поведінка Power_ON / Reset DP slave включили або перевантажили і почалася внутрішня ініціалізація WPRM Wait for Parameter DP slave очікує параметри від DP Master WCFG Wait for Configuration DP slave очікує телеграму Check_Configuration від DP Master DXCHG Data Exchange DP slave циклічно обмінюється даними процесу і за необхідності відповідає діагностичним запитом Робота з віддаленими модулями I/O аналогічна до локальних.
  • 8.
    Фізична структура ПЛК(продовження) 17.07.2016 ПЛК pupena_san@ukr.net 8 Широкий вибір на ринку, в т.ч. за критеріями: • температурний діапазон • тип живлення • IP (ступінь захисту), вібростійкість • відповідність SIL • монтажні особливості • особливості підключення • архітектурна сумісність з іншими виробниками • ….
  • 9.
    Фізична структура ПЛК:резервування 17.07.2016 ПЛК pupena_san@ukr.net 9 140CRP 140CRP 140NOE 140NOE мережа I/O (адаптована під гаряче резервування) основний ПЛК резервний ПЛК I/O I/OI/O I/O мережа I/O
  • 10.
  • 11.
    Конфігурування та програмування 17.07.2016ПЛК pupena_san@ukr.net 11 Принципи: • орієнтована на задачі реального часу, циклічне виконання задач • мінімум програмування, максимум конфігурування • мінімум помилок (макропрограми, відсутність вказівників, прямого доступу до пам'яті …) • захищеність від зависання (сторожові таймери) • масштабованість, як малі так і великі системи на тому ж ПЛК, можливість нарощування • відкритість до зв'язку з засобами інших виробників (стандартизація) • максимальна універсальність, мінімальний час адаптації до бренду (стандартизація) • можливість імпорту/експорту даних, програм • максимальна зручність і простота налагодження, швидкий пошук логічних помилок в коді
  • 12.
    Середовище розробки тавиконання, приклад Unity PRO 17.07.2016 ПЛК pupena_san@ukr.net 12 • Як правило, середовище розробки платне для ПЛК великої та середньої канальності, безкоштовне для малої канальності
  • 13.
  • 14.
    Програмні задачі (Task):однозадачне середовище виконання 17.07.2016 ПЛК pupena_san@ukr.net 14 задача (Task) основний час для ОС час виконання задачі контролюється ОС ПЛК - не більше ніж T watch dog (сторожовий таймер), якщо більше – задача аварінйо зупиняється !
  • 15.
    Однозадачне виконання: циклічнеvs періодичне 17.07.2016 ПЛК pupena_san@ukr.net 15 циклічне періодичне - різна тривалість задачі - без пауз між викликами задачі - однакова періодичність виклику задачі - під час пауз виділяється більший час ЦПУ на комунікації
  • 16.
    Коли опитуються входиі записуються виходи? 17.07.2016 ПЛК pupena_san@ukr.net 16 - обробка входів/виходів, організація задач, специфічні для різних ПЛК - якщо опитування входів на початку задачі (образ процесу), а запис виходів в кінці задачі, то образ процесу не змінюється протягом виконання задачі, а виходи оновлюються тільки по закінченню - деякі ПЛК мають можливість проводити запис/читання з I/O в будь якому місці програми (наприклад в S7300/400 - PIW/PQW) - у деяких ПЛК змішаний підхід - і образ процесу і пряме звернення
  • 17.
    Багатозадачність 17.07.2016 ПЛК pupena_san@ukr.net17 Декілька задач, для кожної своя умова виклику (не обов'язково по часу), можуть бути свої watchdog.
  • 18.
    Типи задач 17.07.2016 ПЛКpupena_san@ukr.net 18 ● CoDeSys ● Cyclic – періодичний виклик ● Freewheeling – ціклічно по колу ● Event – за зміною значення змінної або іншої програмної події ● External Event – апаратне переривання S7 1200 (TIA Portal) Залежить від ПЛК! M340 (Unity PRO)
  • 19.
    Пріоритетність виконання задач (прикладUnity PRO) 17.07.2016 ПЛК pupena_san@ukr.net 19
  • 20.
    Програмна структура: POU- Program Organizational Unit 17.07.2016 ПЛК pupena_san@ukr.net 20 Залежить від ПЛК! Задача CoDeSys Unity PRO POU викликаються в Задачі; POU можуть викликати інші POU; усі POU в ланцюжку виконуються в контексті тієї ж Задачі
  • 21.
    Типи POU 17.07.2016 ПЛКpupena_san@ukr.net 21 Залежить від ПЛК! Unity PRO: Section (ака Program), Function Block, Function/Procedure (тільки бібліотечні)
  • 22.
    Адресація каналів 17.07.2016 ПЛКpupena_san@ukr.net 22 Різні підходи прив'язки до каналів: • топологічна адресація, визначається розміщенням каналу в структурі (не потребує конфігурування адресації); • наприклад %I2.4.3 відповідає за значення дискретного входу в 2- му шасі, 4-й модуль, 3-й канал • виділення адрес для каналів - mapping (відображення) на певну область пам'яті (можливо поіменовану) під час конфігурування; • наприклад %IW100 може містити значення будь-якого аналогового входу, куди захоче розробник • змішане (або, і)
  • 23.
    Топологічна адресація 17.07.2016 ПЛКpupena_san@ukr.net 23 Залежить від ПЛК! Різні рівні і кількість в ієрархії: • адреса PLC, пристрою на шині • номер шасі • номер модуля/блока • номер каналу на модулі • номер ком. порту %IW0.1.23.4.5 шасі ком.модуля ком. модуль ком. порт номер пристрою модуль на пристрої канал на модулі аналоговий вхід приклад 2 приклад 1
  • 24.
    Виділення адрес дляканалів 17.07.2016 ПЛК pupena_san@ukr.net 24 Залежить від ПЛК!
  • 25.
    Адресація 17.07.2016 ПЛК pupena_san@ukr.net25 Залежить від ПЛК! %IX або %I – область дискретних входів %IW – область значень аналогових входів (у багатьох ПЛК пересікається з %I) %QX або %Q – область дискретних виходів %QW – область значень аналогових виходів (у багатьох ПЛК пересікається з %Q) %MX або %M – область внутрішніх бітів %MW – область внутрішніх слів (у багатьох ПЛК пересікається з %MW) … інші варіанти • топологічна адресація - %IW0.4.3 • нетопологічна адресація - %IW130 • поіменована адресація через змінні
  • 26.
    Змінні 17.07.2016 ПЛК pupena_san@ukr.net26 Залежить від ПЛК! Типи • INT (як правило 16-бітний!), UINT, DINT (32-бітний), UDINT • BOOL • BYTE • REAL • STRING • ARRAY • STRUCT (UDT) • … Найменування: в деяких ПЛК назви зберігаються тільки в проекті на ПК (синоніми адрес); в деяких ПЛК змінним не обов'язково явно вказуються адреси Область видимості: сильно залежить від ПЛК; в ряді ПЛК усі змінні є глобальними!
  • 27.
    Мови 17.07.2016 ПЛК pupena_san@ukr.net27 LD ST/SCL IL/STL FBD/CFC SFC/Grafcet • стандарт IEC 61131-3: ПЛК підтримує як мінімум одну з 5-ти • «заточені» під різні задачі • виробники дуже люблять «діалекти», звідси несумісність і різність реалізацій • мови в ПЛК можуть бути нерівнозначні за можливостями • деякі середовища дозволяють конвертацію між мовами
  • 28.
    ST/SCL 17.07.2016 ПЛК pupena_san@ukr.net28 ●ST - Structured Text ● текстова, C/Pascal/Basic подібна ● вирази та інструкції ● доступні умовні розгалуження, цикли ● послідовне виконання ● як правило, найбільш гнучка, люблять програмісти і автоматники ● як правило, присутня в ПЛК середньої та великої канальності
  • 29.
    IL/STL 17.07.2016 ПЛК pupena_san@ukr.net29 ●IL - Instruction List ● текстова, орієнтовані на список інструкцій ● базуються на акумуляторах ● маленькі інструкції ● в деяких ПЛК єдина мова, інші мови - тільки представлення ● популярна тільки в ряді платформ (STL в S7 300/400, VIPA)
  • 30.
    LD 17.07.2016 ПЛК pupena_san@ukr.net30 ●LD – Ladder Diagram ● графічна, РКС (релейно-контакнті схеми) ● орієнтована переважно на дискретну логіку ● добре сприймається електриками ● послідовне виконання зверху до низу, зліва – направо ● функціональність сильно залежить від реалізації ● в багатьох ПЛК (малої канальності) є єдиною мовою програмування
  • 31.
    РКС і LD 17.07.2016ПЛК pupena_san@ukr.net 31 або
  • 32.
    FBD/CFC 17.07.2016 ПЛК pupena_san@ukr.net32 ●FBD – Function Block Diagram ● графічна, базується на потоках даних ● при нормальній реалізації «заточена» під регулювання, люблять «регулювальні» автоматники і електронники ● функціональні блоки та функції з’єднуються входами/виходами ● послідовність виконання зверху-вниз, зліва-направо, задається номером виконання ● в багатьох реалізаціях дуже обмежена (напр. Simatic), звідси часто дискредитується, але там є CFC ● в деяких ПЛК (малої канальності) є єдиною мовою програмування
  • 33.
    FBD/CFC і функціональнасхема контуру регулювання 17.07.2016 ПЛК pupena_san@ukr.net 33 Рис. 6.30. Приклад контуру регулювання з використанням бібліотечних блоків та мови FBD ПЛК (Програма користувача) %QW4.1 Аналого- вий вхід Аналого- вий вихід 4-20 мА 4-20 мА %IW3.3 комунікаційний канал HMI (операторська панель) або SCADA) H1 HC1 зада не ВМ 25 ºС TI1 HS1 1.45 25 c Kp Ti дійсне
  • 34.
    Керування логікою виконанняв FBD та LD 17.07.2016 ПЛК pupena_san@ukr.net 34 • EN (Enable) – можливість логіки «якщо- то» • в деяких реалізаціях ПЛК відсутня (але обов'язкова в IEC 61131-3)
  • 35.
    SFC/Grafcet 17.07.2016 ПЛК pupena_san@ukr.net35 ●SFC – Sequential Function Chart ● графічна, базується на станах і переходах ● дуже потужна для керування періодичними процесами ● ресурсоємна (при повноцінній реалізації), багато вбудованих функцій контролю (налаштування та контроль часу виконання кроку, сигналізація …) ● добре сприймається технологами в якості опису технологічного процесу
  • 36.
  • 37.
    Бібліотека 17.07.2016 ПЛК pupena_san@ukr.net37 • включає в себе готові функції, процедури, функціональні блоки, сильно спрощує життя розробнику • програма як взамозвязаний набір бібліотечних елементів • часто є критерієм вибору платформи • більшість сучасних середовищ розробки для ПЛК середньої і великої канальності дають можливість розробляти власні бібліотечні елементи! • таймери, лічильники, робота з датою/часом, масивами, перетворення типів, математичні, регулювання, керування приводами …
  • 38.
    Навігація в середовищірозробки 17.07.2016 ПЛК pupena_san@ukr.net 38
  • 39.
    Конфігурування, налаштування 17.07.2016 ПЛКpupena_san@ukr.net 39 • багато функцій конфігуруються а не програмуються • конфігурація модулів в т.ч. RIO зберігаються в центральному ЦПУ
  • 40.
    Інструменти відлагодження програм 17.07.2016ПЛК pupena_san@ukr.net 40 • анімаційні таблиці змінних (watch) • анімація програм • анімаційні графічні екрани • самописці • точки зупинки • …
  • 41.
    Приклади анімації програмв режимі виконання 17.07.2016 ПЛК pupena_san@ukr.net 41 https://www.youtube.com/watch?v=l1yp_VwcA88
  • 42.
    Імітатор ПЛК 17.07.2016 ПЛКpupena_san@ukr.net 42 • імітатори ПЛК (simulator) - імітують роботу ПЛК на ПК розробника • деякі мають можливість з'єднання по TCP/IP -> SCADA+simulator відлагодження ПЗ АСУТП без наявного обладнання! • ресурси ПК імітатору дає можливість вбудовувати складну програмну модель об'єкту на тих же IEC 61131-3
  • 43.
    Завантаження, зміна 17.07.2016 ПЛКpupena_san@ukr.net 43 • окрім виконавчого проекту, завантаження вихідного коду (не завжди) • зміна програми без зупинки ПЛК! • доступ з паролем • завантаження через зв'язані між собою ПЛК (шлюзування) • …
  • 44.
    Діагностика ПЛК 17.07.2016 ПЛКpupena_san@ukr.net 44 • діагностичні індикатори на ЦПУ і модулях • діагностичні вікна середовища розробки • діагностичний буфер • діагностичні функції та змінні • можливість програмної обробки • підтримка діагностики на рівні мереж • інтеграція діагностики з SCADA/HMI
  • 45.
  • 46.
    Комунікації 17.07.2016 ПЛК pupena_san@ukr.net46 • fieldbus (промислові мережі) • рівня розподіленої периферії (RIO, приводи) • рівня датчиків/ВМ (+ живлення по мережі) • рівня ПЛК (між ПЛК/SCADA) • Типові сервіси • неявний (без програмного ініціювання) обмін I/O для розподіленої периферії і датчиків: • конфігурується, діагностується, автомат станів • максимально наближений до локального I/O • як правило функціонує методом Polling • неявний обмін Global Data для розподіленої бази даних: • для реалізації спільного Application між різними ПЛК одного рівня • конфігурується, діагностується • як правило функціонує методом Publisher/Subscriber • явний обмін повідомленнями читання/запис об'єктів, відправка/отримання повідомлення (прив'язаний до циклу), клієнт/сервер • функції програмування/конфігурування пристрою, діагностичні функції
  • 47.
    Комунікації (продовження) 17.07.2016 ПЛКpupena_san@ukr.net 47 • сумісність та обмеження • підтримка «рідних» протоколів • модульність: набір за необхідністю потрібної мережі • підтримка відкритих протоколів: великі бренди підтримують «великі» протоколи • «тотальна» підтримка Modbus RTU та Modbus/TCP • все прямує до Ethernet TCP/IP: TCP/IP, mail, http (WEB Server), ftp, snmp, dhcp • до Ethernet TCP/IP йде RTE (Real Time Ethernet), поширені представники в Україні: Ethernet IP, Profinet. • прграмісту як правило доступний інтерфейс до Application Layer, тільки деякі вендори надають інтерфейс Open TCP • для Ethernet TCP/IP повна відсутність кіберзахисту - все відкрито! • технологія OPC вирішує проблему сумісності зі SCADA; • OPC UA – перспективний напрям, реалізація планується на рівні ПЛК • безпосередня інтеграція в Cloud зараз не підтримується, але можлива через шлюзування та SCADA
  • 48.
    Висновки для парадигмиПЛК 17.07.2016 ПЛК pupena_san@ukr.net 48 • на даний момент великий вибір і функціональні можливості • висока швидкодія • сучасні не тільки для дискретного керування а і аналогового регулювання (PAC) • домінує в Україні, але українські бренди не є домінуючими • централізований підхід, але є розподілена периферія і можливість глобальних даних (розподіленої БД) програм декількох ПЛК • окремі БД ПЛК та SCADA/HMI (програє в порівнянні з DCS), але імпорт/експорт тегів навіть лінк зі SCADA/HMI, але як правило того ж вендора • не тільки пропрієтарні а і відкриті протоколи, відкритість все збільшується • можливість роботи з засобами інших вендорів
  • 49.
    Висновки для парадигмиПЛК (продовження) 17.07.2016 ПЛК pupena_san@ukr.net 49 • простіше, швидше, надійніше за програмування PC Based, але потребує певних знань в програмуванні, складніше для експлуатаційного персоналу КВПіА (програє DCS і кофігурованим контролерам та регуляторам) • не таке гнучке в порівнянні PC Based, не дозволяє низькорівневого програмування • підтримка єдиного стандарту IEC 61131: перехід на іншу платформу - адаптація до середовища а не вивчення мови програмування, базовий перехід можливий через тижневе навчання • як правило платне середовище розробки, під Windows • підтримка дуже важливих речей: діагностика, налагоджування, заливка на льоту …