1. ТДА18-1
Досвід командної розробки
прикладного ПЗ для АСУТП…
і про інше
Олександр Пупена (pupena_san@ukr.net)
Олег Клименко
Роман Міркевич
Володимир Полупан
(ІАСУ НУХТ)
18.03.2018 ТДА18-1 - pupena_san@ukr.net 1
http://www.iasu-nuft.pp.ua
2. До 2017
18.03.2018 ТДА18-1 - pupena_san@ukr.net 2
• 1 чол = 1 ПЗ (SCADA+PLC), відсутність командної роботи
• винятки: 2005 – два відділення АСУТП цукрозаводу під
ключ силами викладачів кафедри, 2009 – АСУТП цеху
виробництва цільномолочної продукції
• (-) не виявлення ефекту "замулювання ока"
• (-)сильна залежність від графіку навчального процесу
• (-) нездатність взяти великі об'єкти
• (-) відмова від "одночасних" об'єктів
• особисті субпідряди під інтегратора
• підстроювання під правила замовника (інтегратора)
3. 2017
18.03.2018 ТДА18-1 - pupena_san@ukr.net 3
• командою з 4 чоловік впровадження на виробництві (квітень –
жовтень 2017):
• тепличний комплекс: полив та фертигація (квітень, травень 2017)
• водопідготовка (червень – вересень 2017)
• автоматизація ваккум-апаратів 1-го продукту (серпень-жовтень
2017)
4. Як проходить командна робота
18.03.2018 ТДА18-1 - pupena_san@ukr.net 4
в офісі
в офісі
на об'єкті
5. Головні принципи: повна довіра в команді та з
замовником
18.03.2018 ТДА18-1 - pupena_san@ukr.net 5
7. Головні принципи: "заточенність" членів команди
18.03.2018 ТДА18-1 - pupena_san@ukr.net 7
Немає сенсу наймати
толкових людей а потім
розповідати їм, що робити;
ми наймаємо розумних
людей, щоб вони могли
розповісти нам що робити.
8. Головні принципи: взаємозамінність
18.03.2018 ТДА18-1 - pupena_san@ukr.net 8
Вимоги
• компетентність всіх членів команди у
всіх розділах
• використання єдиних правил –
використання каркасу
• наявність зв'язку на об'єкті, віддалені
правки: просунутий "аватаризм"
10. Головні принципи: декомпозиція та розподіл по
вертикалі та по горизонталі
18.03.2018 ТДА18-1 - pupena_san@ukr.net 10
По вертикалі:
• SCADA/HMI
• PLC1, PLC2 …
Це НЕ те, що я мав на увазі, коли казав, що
нам потрібно зробити декомпозицію нашої
комп'ютерної системи.
По горизонталі:
• "розгортання" каркасу
• контури
• окремі великі функції
• …
11. Головні принципи: замовник завжди правий
18.03.2018 ТДА18-1 - pupena_san@ukr.net 11
• треба робити функціонал як мінімум таким, щоб
задовольнити свої вимоги (подумайте про майбутнє)
• щоб врахувати усі нові забаганки клієнта, треба закласти це в
договір (наприклад хороші добові витрати поверх
замовлених)
12. Використання каркасу
18.03.2018 ТДА18-1 - pupena_san@ukr.net 12
Функціональний каркас для розробки ПЗ
PLC/PAC - концепції використання
взаємопов’язаного набору
• рекомендацій,
• структур даних
• та програм
до розробки прикладного програмного
забезпечення (ПЗ) програмованих
пристроїв, таких як промислові контролери
(PLC/PAC) але не обмежених ними,
з урахуванням типових вимог до систем
керування, сучасних світових стандартів
(ISA, IEC, ISO) та тенденцій (Industry 4.0, IIoT)
13. Каркас: мета
18.03.2018 ТДА18-1 - pupena_san@ukr.net 13
Швидка розробка прикладного ПЗ для контролерів АСКТП з урахуванням
• максимальної кількості типових вимог до функціональності
• та можливої інтеграції з іншими підсистемами.
14. Каркас: ідеї
18.03.2018 ТДА18-1 - pupena_san@ukr.net 14
Каркас передбачає:
• використання єдиних принципів розробки ПЗ для програмованих контролерів
IEC 61131 (і не тільки) для різних типів об’єктів середньої (порядку >100
каналів) та великої канальності та алгоритмічної складності;
• стандартну ієрархію ISA-88/ISA-95:
використання єдиних підходів до організації
ієрархії керування;
• узгоджений набір: типів даних, класів
функцій/функціональних блоків для будь-яких
об’єктів;
• універсальність: може бути реалізований на
будь-яких апаратних та програмних засобах і
мовах програмування, які мають можливість
та ресурси для його реалізації;
• розширюваність: запропоновані інтерфейси та структури за необхідності
можуть бути змінені та доповнені не порушуючи загальної ідеології;
15. Каркас: +/-
18.03.2018 ТДА18-1 - pupena_san@ukr.net 15
+ -
Стандартизація – можливість командної
роботи
Займає досить багато ресурсів
Можливість розподіленої розробки (по
вертикалі і по горизонталі)
Складний для "непосвяченого"
Багато базових фіч: перекидання каналів,
форсування, виведення змінних з
експлуатації, стандартизована обробка
змінних, карта ПЛК …
Масштабування каркасу для різного рівня
ПЛК (середній->дуже великий)
Закладений механізм інтеграції з
MES/MOM
Оновлення каркасу – кращі практики від
об'єкта до об'єкта
17. Каркас: досвід використання
18.03.2018 ТДА18-1 - pupena_san@ukr.net 17
• форсування – найбільш оцінена фіча для наладчика
• відключення змінних – автоматичне відключення алармів при
несправності датчиків
• панель статуса –зручна штука, "забули зняти симуляцію", "щось
зафорсовано"
• панель статуса на кожному HMI змінної
• вбудовані "надлишкові" фічі нерідко спасають там, де їх
використання не очікували
• "лічильники" замість таймерів – економія ресурсів і зручність
використання
• …
18. Каркас: досвід використання
18.03.2018 ТДА18-1 - pupena_san@ukr.net 18
• "У нас тут є можливість перекидати канали, якщо один з них вийде з
ладу, але це тимчасово, ми це приберемо". "Зачем убирать? Это нам
пригодится"
• розгортання: 1-3 дні методом копіпаста (TIA -> SoMachine, SoMachine
-> TIA , TIA -> Unity PRO) Мова ST – найбільш підходить
• найкращі програми для програміста АСУТП: Excel, Notepad
• хороша структурованість – надійність складних алгоритмів
• невизначеності в каркасі – "костилі" в ПЗ
19. Каркас: карта ПЛК
18.03.2018 ТДА18-1 - pupena_san@ukr.net 19
• Карта ПЛК – завжди під рукою наладчика
• щоб не було "А подивися, що там на вході такому", "А ти можеш
включити такий то вихід"…
• "буферний підхід" – економія тегів
20. Каркас: про масштабування і буферний підхід
18.03.2018 ТДА18-1 - pupena_san@ukr.net 20
для діагностики усіх
каналів - 11 змінних HMI
Панель: KTP900 BASIC PN,
максимум 800 тегів I/O
Канали в ПЛК (148): 50 AI, 10 A0, 30
DI, 58 DO
->
Перша фраза: "не будемо робити
карту ПЛК"
Слово "неможливо"
переоцінено
21. Каркас: налаштування змінних
18.03.2018 ТДА18-1 - pupena_san@ukr.net 21
контекстне меню
для наладчика
• пізніше - максимальний
перехід від табличного
налаштування до
контекстного (зручність)
22. Каркас: що далі…
18.03.2018 ТДА18-1 - pupena_san@ukr.net 22
• ще немає кінцевої версії каркасу
• багато спірних моментів щодо тонкощів реалізації
• необхідна адаптація для "малих" ПЛК та HMI (хоча є прецеденти )
23. Типові "граблі"
18.03.2018 ТДА18-1 - pupena_san@ukr.net 23
• погана організація робочого місця наладчика і
оператора
• INT/DINT на лічильниках-таймерах + обмеження
• НЕозначення ELSE в CASE
• НЕініціалізація змінних
• ….