EnglishУкраїнськаРocсийский
Вхід/Новий
17.09.2016 10:00 Давність: 1 year
Категорії: НовинаДоповідь

Автор: Роман Савоченко

17го вересня 2016р. у місті Київ: Конференція розробників та користувачів вільного ПЗ — FOSS 2016: "OpenSCADA — досягнення, перспективи та плани релізу 0.9LTS"

Конференція відбулася! На конференції зачитано доповідь про досягнення, перспективи та плани релізу 0.9LTS проекту OpenSCADA.

Велика подяка організаторам OSDN!

Сайт конференції: osdn.org.ua

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


Доповідь/Стаття

Проект OpenSCADA засновано у 2003 році Савоченко Романом, як вільну реалізація Системи Диспетчерського Контролю та Збору Даних (SCADA) або Людино Машинний Інтерфейс (HMI), на основі досвіду використання та розробки комерційних SCADA-систем. SCADA або HMI системи загалом призначені та використовуються для здійснення людиною оперативного контролю за роботою складного технологічного обладнання різноманітних виробничих підприємств.

Наразі проект OpenSCADA є розвиненою SCADA/HMI системою, яка доволі широко застосовується як по прямому призначенню, так, завдяки своїй гнучкості, і у багатьох суміжних галузях, як то: динамічні моделі та імітатори технологічних процесів реального часу, середовища виконання Програмованих Логічних Контролерів (ПЛК), моніторинг обладнання серверів, побудова розумного будинку та домової автоматики. Із деякими обмеженнями та доробками, значним чином у внутрішньому оточенні, OpenSCADA може використовуватися і у галузях: білінгові системи, Керування Ресурсами Підприємства (ERP), облік та бухгалтерія. Таким чином OpenSCADA із впевненістю можна називати загально — система роботи із даними реального часу.

Оскільки проект є вільним, надається переважно під ліцензією GPLv2, користувач може вільно отримати доступ до вихідних текстів проекту, зібрати його та використовувати. Готові збірки та пакети програми наразі надаються для багатьох відомих дистрибутивів та оточень Linux, на головному ресурсі проекту oscada.org. Для вільно-отриманих вихідних текстів, бінарних архівів або пакетів на форумі проекту надається обмежена безкоштовна підтримка, головним чином для проблем, які розробник може швидко локалізувати у себе та для неспецифічних користувачу оточень. Для отримання повноцінної підтримки користувач моє можливість придбати пакет комерційної технічної підтримки у розробників проекту. Окрім комерційної підтримки користувач може придбати послуги по розробці рішень на основі OpenSCADA як безпосередньо у розробників, так і у сторонніх інтеграторів. Відсутні функції або розширення, які не суперечать концепції проекту, користувач може також замовити розробникам OpenSCADA.

Основний процес розробки забезпечується автором та головним розробником OpenSCADA Савоченко Романом, який відповідно і визначає цей процес. До останнього часу розробка переважно здійснювалася у межах робочої версії, шляхом цільової стабілізації та розширення, у процесі реалізації рішень користувачів. Із початком 2016 року та досягненням поточної робочої версії прийнятного рівня стабільності, при запровадженні всіх ключових змін у архітектурі та концепції, було оновлено дорожню карту та розпочато процес підготовки до випуску релізу стабільної версії 0.9 LTS. Треба відзначити, що весь цей час продовжують випускатися оновлення попередньої стабільної версії 0.8 LTS! Також треба відзначити деяке зростання якісного рівня та участі співтовариства у розробці проекту, яке однак все ще доволі низьке, переважно через значну спеціалізованість програмного забезпечення цього класу.

Із значних розширень OpenSCADA загального характеру варто відзначити наступні:

  • Значна стабілізація ядра OpenSCADA та розширення можливостей налагодження користувачем. Включення та контроль всіх ядер процесору. Уніфікація внутрішніх ресурсів. Розширення механізму резервування. Реалізація механізму динамічного перекладу повідомлень. Реалізація механізму виклику/відкриття документації проекту. Перехід на схему розробки Work/LTS, тобто розробка у межах робочої версії та випуск оновлень до стабільної версії шляхом зворотнього портування сумісних змін із робочої версії. Уніфіковано та розроблено новий механізм запуску програми із програми-менеджеру проектів OpenSCADA.

  • Значне розширення можливостей внутрішньої мови програмування та інтерфейсу користувацького програмування в цілому.

  • Значна стабілізація та розширення середовища візуалізації як для роботи у мережі, через сервер візуалізації, так і у контексті реалізації примітивів, переважно у UI.Vision. Розширення концепції повідомлень.

  • Значне розширення, стабілізація та підвищення продуктивності транспортів, архівів та баз даних OpenSDADA.

  • Значне поповнення підтримуваних протоколів та обладнання через реалізацію як протокол користувача, на внутрішній мові програмування OpenSCADA.

Реалізовані останнім часом проекти систем управління

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

Із завершених рішень, які описано та опубліковано, можна відзначити два, які реалізовано у 2014 та 2015 році на ТЕЦ міста Краматорськ, одразу після звільнення від окупації. А саме “САУ Фосфатування, Амінування та Гідразину котлоагрегатів БКЗ 160–100 ПТ” та “САУ кульових барабанних млинів ШБМ 287\410 котлоагрегату №8 БКЗ 160–100 ПТ”. Останнє рішення стало продовженням проекту 2010 року для котлоагрегатів №7 та 9. Результатом цих двох рішень стала загальна технологічна мережа обладнання корекції котлової та живильної води та системи пило-приготування до складу якої увійшли три станції оператору та шість контролерів ICP_DAS LP8781 із OpenSCADA на них всіх.

Власний сервер проекту OpenSCADA та канал підключення до інтернет

На початку 2014 року гостро стало питання хостінгу ресурсів проекту OpenSCADA та каналу підключення до Інтернет, у зв'язку із проблемами та політикою, точніше повної її відсутності, попереднього хостингу фірми ТОВ НІП “ДІЯ”. Тому було оголошено та вдало завершено збір коштів на новий канал та серверну інфраструктуру проекту. Основним та єдиним спонсором стала фірма “Beams&Plasmas”. У цьому році завдання розгортання нового серверу та переносу ресурсів проекту OpenSCADA було завершено: wiki.oscada.org/HomePageEn/Server.

Окрім чинних сервісів на новому сервері було розгорнуто: тунельоване підключення для надання віддаленого сервісу; автоматичний складальник проекту; моделі “АГЛКС” та “Бойлер” із демонстраційним Web-доступом до них іззовні; розумний будинок на основі OpenSCADA із функціями моніторингу серверу та ERP.

Наразі ресурси OpenSCADA розгорнуто у хмарі віртуальних серверів із доступом за доменом OSCADA.ORG та через канал шириною 3МБ/с.

Автоматичний складальник проекту OpenSCADA

З метою спрощення збірок та перезбірок пакетів, бінарних архівів та живих дисків дистрибутиву автоматизації на основі OpenSCADA; на новому сервері було написано скрипти та розгорнуто автоматичний складальник OpenSCADA.

Наразі складальник передбачає перевірку репозиторію вихідних текстів OpenSCADA Subversion та збірку двох гілок, а саме: стабільної (LTS), наразі це 0.8, та робочої, наразі це 0.9. Стабільна гілка, за звичай, збирається при випуску чергового оновлення, приблизно через 3-6 місяці та для всіх цілей першої ревізії стабільної версії. Робоча версія перескладається при кожному вивантажені змін у SVN-репозиторій та переважно для цілей, які використовують розробники та користувачі комерційних послуг та технічної підтримки. Всі збірки автоматичним складальником відбуваються вночі та за звичай закінчуються до півдня наступного дня.

На цей час автоматичний складальник передбачає цілі:

  • формування архіву та RPM-пакету вихідних текстів;

  • збірка пакетів для репозиторія дистрибутиву Linux Автоматизації на OpenSCADA: Debian, ALTLinux (старі);

  • збірка пакетів для репозиторіїв дистрибутивів Linux стабільних версій та архітектур x86, x86_64, ARM: Debian, Ubuntu, CentOs, SuSE, Mandriva, ALTLinux;

  • збірка прошивок для вбудованого обладнання та ПЛК;

  • збірка пакетів для мобільних платформ Maemo, MeeGo;

  • збірка живих образів та архівів живих дисків для дистрибутиву автоматики OpenSCADA, на базі Debian та ALTLinux (старі).

Оскільки наразі здійснюється автоматична збірка пакетів для локальних репозиторіїв основних дистрибутивів Linux безпосередньо на сервері OpenSCADA то спеціальна збірка до первинних репозиторіїв дистрибутивів Linux припинена, раніш це здійснювалося для ALTLinux та Fedora.

Дистрибутив Linux систем автоматизації на основі проекту OpenSCADA

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

Живі диски, а наразі і проект “Дистрибутив автоматизації Linux проекту OpenSCADA”, створюються:

  • для надання швидкого способу знайомства із OpenSCADA;

  • як платформа для ПЛК та панельних ПК/ПЛК апаратних архітектур x86 та x86_64;

  • як платформа для рішень систем автоматизації у створенні збірного диску проекту системи автоматизації у поєднанні із встановлювачем типового, оптимізованого і стабілізованого оточення; документацією та іншими файлами конфігурації частин проекту;

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

Наразі здійснено зміну бази дистрибутиву автоматизації із дистрибутиву ALTLinux на Debian, через багато причин як технічного, так і політичного характеру. На основі Debian надаються збірки живих дисків для версій 7, 8 та для апаратних архітектур x86, x86_64; які до того-ж включені до автоматичного складальника гілки робочої версії. Тобто для кожної ревізії проекту OpenSCADA у репозиторії вихідних текстів Subversion здійснюється збірка цих живих дисків і користувач має можливість одразу спробувати свіжі можливості та виправлення.

OPC-UA у OpenSCADA

Протокол OPC-UA підтримується у OpenSCADA із 2009 року та за останні три роки його реалізація зазнала значних змін та вдосконалень, не в останню чергу завдяки використанню, зворотнього зв'язку та прямих замовлень щодо вдосконалення від користувачів. Наразі реалізовано клієнтську та серверні частини цього протоколу, причому серверна частина більш розвинена у зв'язку із вибагливістю клієнтів OPC-UA інших виробників. Роботу та сумісність реалізації OPC-UA від OpenSCADA перевірено на багатьох клієнтах, завдяки користувачам; та створено таблицю сумісності. Документацію щодо модуля DAQ.OPC-UA значним чином оновлено, актуалізовано та перекладено на всі три підтримувані автором мови.

Загалом OPC-UA це багатоплатформовий варіант реалізації протоколів OPC, який у вигляді застарілого, закритого, небезпечного та одноплатформового OPC-DA доволі часто зустрічається у автоматиці комерційних виробників; та питання шлюзування із чинних реалізацій OPC-DA у OPC-UA піднімається все частіш. У випадку з OpenSCADA пряме шлюзування стане можливе із адаптацією до роботи на платформі MS Windows, що однак ще не дуже цікаво користувачам та інтеграторам, оскільки вони не готові платити за загальнодоступність результатів цієї адаптації, згідно того, що OpenSCADA це вільне ПЗ. Але із релізом версії 0.9 LTS заплановано публічне оголошення збору коштів на виконання робіт щодо адаптації OpenSCADA до роботи на платформи MS Windows.

Із значних змін у реалізації OPC-UA, за останні три роки, треба відзначити завершення та оформлення відокремлення протокольної частини коду у окремій бібліотеці під ліцензією LGPLv3 для надання користувачам можливості створення власних рішень довкола OPC-UA, а також значну стабілізацію та реалізацію серверної частини у одному потоці з підключенням, режим пуллінгу вхідного транспорту, що зокрема дозволило портувати повноцінний код OPC-UA до версії 0.8LTS.

Розширення OpenSCADA для прямої роботи із шинами та пристроями нижнього рівня: 1Wire, I2C, GPIO. Розумний будинок.

Від заснування проект OpenSCADA спрямовувався на завершенні рішення та протоколи джерел даних переважно промислового характеру. Та з часом, а саме із досягненням високого рівня готовності OpenSCADA для промислової автоматики, автору стало цікаво, та з'явився деякий час, освіжити та актуалізувати свої знання та зацікавленості у низькорівневій електроніці, на предмет низькорівневих шин та сенсорів. Для цього було обрано та придбано Raspberry Pi2, як платформу для вільного доступу до низькорівневих шин із оточення Linux та OpenSCADA. Також, до автоматичного складальника OpenSCADA додано ціль “Debian_8_armhf”, для збірки пакетів Debian 8 апаратної архітектури ARMHF, які можна прямо, з репозиторію, встановити/оновити на RASPBIAN JESSIE.

На цей час до OpenSCADA створено модуль DAQ.BCM2835, для прямого та швидкого доступу до GPIO Raspbery Pi. Швидкість доступу до цього GPIO та віртуальної машини внутрішньої мови програмування OpenSCADA.JavaLikeCalc дозволило реалізувати вивід даних на текстовий дисплей LCD1602A та опитати сенсори DHT11, AM2320 шляхом прямої реалізації їх шини ONE-WIRE.

Модуль транспорту “Serial” було адаптовано для підключення та роботи із пристроєм шини I2C. Через цей транспорт у режимі I2C були підключені та створені шаблони опитування чипів PCF8591 та PCF8574.

Для потреб проекту “Розумний будинок, на основі OpenSCADA” (квартира автора) було створено шаблони для опитування мережі давачів 1Wire від фірми Dallas. На Linux, для опитування чипів 1Wire від фірми Dallas, присутні щонайменш два рішення DIGITEMP та OWNET, які однак переважно обмежуються давачами температури та мають проблеми інтеграції, так, саме для OWNET раніш було створено до OpenSCADA модуль “DAQ.OneWire”. Шаблони наразі створено для 1Wire адаптерів DS9097 та DS9097U на внутрішній мові OpenSCADA і вони дозволяють автоматично визначити, підключити, опитати та керувати пристроями на шині. Наразі реалізовано підтримку сенсорів температури, двоканального DIO та заплановано реалізацію підтримки ще трьох наявних у автора. За потреби, у майбутньому, будуть реалізовані адаптери 1Wire на шинах USB, I2C та прямо через GPIO.

На цей час фактично завершено підготовчі та випробувальні роботи щодо шин та сенсорів низького рівня, а також створено пристрої адаптерів 1Wire на інтерфейс RS232, а саме: DS9097 та DS9097U. Друковані плати цих адаптерів було розроблено у KiCAD та виготовлено за допомогою фотошаблону та плівкового фоторезисту. Надалі заплановано розгортання дротової мережі 1Wire та RS485, а також встановлення сенсорів температури DS18B20 з метою отримання картини втрат енергії, цільового планування заходів їх усунення та оцінки ефективності цих заходів.

Поточні плани у контексті підготовки до випуску версії 0.9 LTS

Вектор діяльності над проектом OpenSCADA переважно зберігається та спрямовується на цільову стабілізацію, у межах робочої гілки, та випуски оновлень до стабільної. Однак із початком поточного року та переносом серверу розпочато рух до випуску нової стабільної версії 0.9LTS та дорожню карту оновлено і зроблено безстроковою, але із прогресом реалізації за ключовими завданнями/умовами випуску нової стабільної версії, для відновлення стратегічного та довгострокового планування.

Чинні умови/завдання випуску нової стабільної версії 0.9LTS наразі такі:

  • Завершення адаптації OpenSCADA до прямої роботи із низькорівневими шинами та пристроями на кшталт 1Wire, I2C та первинна, у об'ємі мережі температурних сенсорів, реалізація проекту розумного будинку.

  • Ревізія, актуалізація та деяке розширення Web-модулів OpenSCADA.

  • Перенос бази знань та документування на новий рушій із уніфікацією структури під багатомовність із пріоритетом: Англійська, Українська, Російська; та автоматизацію генерації готових до друку документів.

  • Адаптація до роботи на платформі “Android”.

Звісно, користувачі, інвестори та спонсори мають можливість коригування процесу розвитку проекту OpenSCADA реалізуючи або фінансуючи потрібні їм функції/завдання для чого наявний перелік завдань, які потребують реалізації та завдання/умови релізу далеких планів 1.0:

  • Адаптація до роботи на платформі "MS Windows®".

  • Реалізація функції візуальної побудови користувацьких програм, як для блокових, логічних, релейних діаграм; так і для візуальної побудови моделей технологічних процесів.

Заключення

Інтегрована SCADA-система OpenSCADA є розвинутою, готовою та використовується у складних промислових умовах для виконання повного спектру завдань автоматизованого управління технологічними процесами та автоматизації в цілому.

Фактично OpenSCADA наразі є системою для роботи з динамічними даними у реальному часі, а її розвиток автором спрямовується на розширення та охоплення близьких йому суміжних галузей, уніфікацію бази знань (Wiki), та випуск нової стабільної версії 0.9LTS, на фоні загальної діяльності цільової стабілізації, підтримки та розширення.

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


2369