УкраїнськаEnglishmRussian
Вхід/Новий

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

16.09.2017 10:00 Давність: 7 yrs
Категорії: НовинаДоповідь

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


Автор, лідер та головний розробник Роман Савоченко, на конференції, зачитав доповідь про перспективи версії 0.9LTS проекту OpenSCADA у поступу виконання завдань, що є умовою випуску релізу.

Велика подяка OSDN за організацію конференції!

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

Поточною стабільною версією тривалої підтримки проекту OpenSCADA є 0.8 яку було випущено у 2012 році і для якої весь цей час випускаються оновлення. Також, у межах поточної робочої версії 0.9, продовжується основний процес розробки, який до кінця цього року (2017) має досягти запланованої стадії та результатом чого має стати випуск нової стабільної версії тривалої підтримки 0.9 LTS. У цій доповіді проект вільної SCADA системи стабільної версії 0.9 попередньо презентується з огляду на її можливості, як розвинутої SCADA система, у основній та супутніх галузях призначень, та наводиться прогрес у завданнях, що складають умову її випуску.

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

Проект 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!

Наразі основний час та зусилля розробників покладено на завершення умовних завдань випуску нової стабільної версії 0.9 LTS.

Практичні рішення, побудовані на основі OpenSCADA

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

Автоматизовані системи управління технологічними процесами (АСУ ТП) та середовища виконання ПЛК:

  • “Система Автоматизації Метрополітену”, 2016 (Оптима). Підтримка триває...

  • “САУ кульових барабанних млинів ШБМ 287\410 котлоагрегату №8 БКЗ 160–100 ПТ”, у 2010 для №7,9 та у 2015 для №8. У якості ПЛК використано ICP-DAS LP-8781 із OpenSCADA у ролі середовища виконання ПЛК. Підтримка триває ...

  • “САУ Фосфатування, Амінування та Гідразину котлоагрегатів БКЗ 160–100 ПТ”, 2014 після звільнення від окупації. У якості ПЛК використано ICP-DAS LP-8781 із OpenSCADA у ролі середовища виконання ПЛК. Підтримка триває ...

  • Система Контролю Реактивності (СКР) Ядерної Підкритичної Установки (ЯПУ), 2013...2015. Перервано.

  • Система збору та візуалізації котла №1 цеху ТЕЦ, 2012.

  • Вакуумна технологічна установка, 2011. Підтримка триває ...

  • Диспетчеризація електрощитової, 2011.

  • Диспетчеризація пташиного господарства, 2010. Підтримка триває ...

  • Диспетчеризація вагономийного комплексу, 2009

Динамічні моделі технологічних процесів реального часу, наразі доступні через Web у багатомовному інтерфейсі (на трьох мовах):

  • Динамічна модель ТП парового котла, із 2007 року і по цей день, як демонстрація OpenSCADA.

  • Динамічна модель ТП АГЛКС, із 2006 року і по цей день, як демонстрація OpenSCADA.

Вбудовані системи: ICP DAS LP-xxxx, LX-8x31; Segnetics SMH2Gi; Diamond Systems ATH400-128; Kontron MOPSlcdLX; Tri-M VSX104, ICOP VDX-6354; ТОВ "А-ТЕКС" iROBO-Fanless; Завод Електрообладнання Тіон-Про270; Avalue FPC-1705; Advantech PCA-6753, PPC-L126; "Raspberry Pi Foundation" RPi 1, 2, 3; Orange Pi Zero.

Мобільні пристрої: Nokia N800, N810, N900, N950, N9; вже є робочі збірки для Android.

Розумний будинок та домова автоматика: Розумний будинок (HouseSpirit), 2011; Власний розумний будинок із системою диспетчеризації серверу, 2014 та по цей час.

Інші рішення довкола проекту OpenSCADA та його інфраструктури:

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

  • Автоматичний складальник проекту OpenSCADA (2015) для спрощення збірок та перезбірок пакетів, бінарних архівів та живих дисків дистрибутиву автоматизації на основі OpenSCADA. Cкладальник передбачає перевірку репозиторію вихідних текстів OpenSCADA Subversion та збірку двох гілок, а саме: стабільної (LTS), наразі це 0.8, та робочої, наразі це 0.9.

  • Дистрибутив Linux систем автоматизації на основі проекту OpenSCADA (2012) відокремлено та формалізовано у проекті “Дистрибутив автоматизації Linux проекту OpenSCADA”. Репозиторії пакетів дистрибутиву, в першу чергу, включають пакети самої OpenSCADA, а також низку пакетів операційної системи та оточення, адаптованих та зібраних спеціально для цього проекту. Наразі здійснено заміну бази дистрибутиву автоматизації із дистрибутиву ALTLinux на Debian, через багато причин як технічного, так і політичного характеру. Живі диски, а наразі і проект “Дистрибутив автоматизації Linux проекту OpenSCADA”, створюються:

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

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

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

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

OpenSCADA 0.9 LTS

Майбутню стабільну версію значним чином можна оцінити вже зараз, не очікуючи офіційного анонсу та відгалуження від робочої версії. А саме використавши регулярні збірки поточної робочої версії у вигляді: живих дисків, пакетів та репозиторіїв пакетів. А враховуючи той факт, що поточна стабільна версія підтримується із її офіційного випуску (випущено вже 18 оновлень) то багато функцій присутні там; тобто для цільового ознайомлення з окремими функціями Ви можете використати навіть поточну стабільну версію.

Наразі активно ведуться роботи над двома задачами крос-платформності, а саме:

  • Розширення модулів дійсних Web-інтерфейсів до рівня сучасних Web-технологій та до якомога ближчих функціональних можливостей основних їх аналогів на основі Qt — виконано на 90%, рівень Web-інтерфейсів дозволяє користуватися йми як первинними (суб’єктивно) та реалізовано багатомовність.

  • Адаптація до виконання на програмній платформі “Android” — виконано на 90% та доступні робочі збірки.

Також активно ведуться роботи над останнім умовним пунктом випуску релізу 0.9 LTS, а саме — над уніфікацією та динамічною актуалізацією off-line документації OpenSCADA, що полягає у: зміні рушія Бази Знань (Wiki) проекту на MediaWiki; уніфікації структури Бази Знань; переносі, верифікації та повному перекладі (на первинні мови) основної документації; реалізації динамічного формування-оновлення off-line документації із Бази Знань. Наразі завершено процес формального аналізу та обрання нового Wiki-рушія, формування структури нової Wiki та відбувається найтриваліша процедура — перенос, верифікація та повний переклад. Тобто це завдання виконано на 30%.

Із вже наявних значних можливостей і особливостей майбутнього релізу 0.9 LTS треба відзначити наступні, системні:

  • Значна стабілізація ядра OpenSCADA, уніфікація контролю внутрішніх ресурсів та розширення можливостей налагодження користувачем. Так, код динамічного об'єкту OpenSCADA вже навіть включено до поточної стабільної гілки, оновленням 17.

  • Розширення механізму резервування, який потенційно передбачає резервування будь-якої підсистеми та реалізує наразі резервування підсистем “Збір даних” та “Архівація”.

  • Підтримка ієрархічних параметрів об'єктів контролерів збору даних.

  • Механізм динамічного перекладу повідомлень, який передбачає можливість зміни мови інтерфейсу користувача за зміною користувача інтерфейсу або безпосередньо мови.

  • Механізм виклику/відкриття документації проекту, який із модернізацію Бази Знань (Wiki) проекту OpenSCADA передбачатиме оновлення offline документації із оновленням та збіркою OpenSCADA.

  • Перехід на концепцію розробки Робоча/LTS, тобто розробка у межах робочої версії та випуск оновлень до стабільної версії шляхом зворотнього портування сумісних змін із робочої версії. Фактично перехід відбувся у 2013 році коли поточною стабільною версію визнано 0.8 LTS, а робочою 0.9 Work.

  • Зміна версій модулів відбувається за змінами у коді модуля та перед їх вивантаженням до репозиторію вихідних текстів.

  • Уніфікація та розробка нового механізму запуску програми із програми-менеджеру проектів OpenSCADA. Ймовірно що цей механізм буде розширено із переносом його до модуля UI.QTStarter, у межах адаптації до програмної платформи “Android”.

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

    • Відправлення SMS повідомлень (SMS) та електронних листів (SMTP).

    • Джерело Безперервного Живлення (UPS), як об'єкт даних із атрибутами зі значеннями.

    • Прості сенсори та давачі: Елемер TM510x; EDWARDS TURBOMOLECULAR PUMPS (SCU750); Sycon Multi Drop Protocol (SMDP); Блок живлення турбо-молекулярного насосу (TMP-xx03); Вимірювання температури IT-3 (IT3); IVE-452HS-02; OPTRIS CT/CTL; CTR 100, 101.

    • Комп'ютер теплового лічильника VKT7.

    • IEC-60870-104.

    • Тестові реалізації та приклади: DCON, OWEN.

    • One Wire за допомогою {DS9097,DS9097U} (1W_{DS9097,DS9097}) для чипів: DS1820, DS1820/DS18S20/DS1920, DS1822, DS2413, DS2408, DS2450, DS2438.

    • I2C: PCF8591, PCF8574, BMP180, DS3231, AT24C{32|64}.

    • GPIO: DHT11,22 (AM23XX). GPIO|I2C: 1602A(HD44780).

У робочій версії були створені нові модулі та значним чином оновлені чинні:

  • Додано нові модулі:

    • БД за посередництвом ODBC (ODBC) — модуль реалізації доступу до баз даних за посередництвом прошарку БД ODBC та конекторів до нього.

    • Директорії за посередництвом LDAP (DB.LDAP) — модуль реалізації доступу до сервісних директорій за протоколом LDAP.

    • MMS(IEC-9506) (DAQ.MMS) — модуль підтримки обміну даних із джерелами даних за протоколом Manufacturing Message Specification (MMS, IEC-9506).

    • Comedi (DAQ.Comedi) — модуль підтримки джерел даних реального часу (бібліотека “Comedi”), які основані на платах збору даних (DAQ) різних виробників та встановлюються на шині: ISA, PCI, PCMCIA та USB.

    • SMH2Gi (DAQ.SMH2Gi) — модуль реалізації доступу до апаратних модулів джерел даних ПЛК Segnetics SMH2Gi "MC", "MR", а також взаємодії із оригінальним оточенням "SMLogix".

    • Fastwel IO (DAQ.Fastwel) — модуль обміну даними з апаратними модулями Fastwel IO.

    • FT3 (АПСТМ) (DAQ.FT3) — модуль обміну даними з контролерами АПСТМ, АСДКУ, СУАП.

    • BCM2835 (DAQ.BCM2835) — модуль доступу за GPIO одноплатних ПК Raspberry Pi та сумісних.

  • Обчислювач на основі Java-подібної мови (DAQ.JavaLikeCalc) значно стабілізовано, оптимізовано та розширено: збереженням контексту виконання функції, підтримкою внутрішніх функцій, динамічним перекладом повідомлень та багатьма іншими функціями інтерфейсу користувацького програмування в цілому.

  • Логічний рівень параметрів (DAQ.LogicLev) значно стабілізовано.

  • Шлюз джерел даних (DAQ.DAQGate) значно стабілізовано та розширено шлюзуванням повідомлень, пов'язаних із обраним джерелом даних.

  • Збір даних ОС (DAQ.System) стабілізовано, дещо розширено джерелами даних: “Файлова Система”, “ДБЖ”; та можливістю відокремленням повільних джерел від швидких.

  • ModBus ({DAQ,Protocol}.ModBus) стабілізовано та розширено підтримкою рядка як послідовності значень регістрів.

  • Клієнт DCON (DAQ.DCON) значно розширено підтримкою специфічних модулів.

  • OPC-UA (DAQ.OPC_UA) значно стабілізовано та розширено реалізацією, у клієнтській частині сервісу, публікацією та підтримкою “шматків”; специфічний код протоколу відокремлено у бібліотеку.

  • Обладнання ICP_DAS (DAQ.ICP_DAS) значно розширено, а фактично повністю переписано, підтримкою всіх наявних плат збору даних від фірми ICP_DAS для серії I8k, I-87k, на шині ISA та уніфіковані типи для стандартних модулів серії I7k.

  • Siemens S7 ПЛК (DAQ.Siemens) значно стабілізовано та розширено власною реалізацію ISO-TSAP.

  • Diamond плати збору даних (DAQ.DiamondBoards) значно розширено, а фактично повністю переписано, підтримкою всіх наявних плат збору даних від фірми Diamond Systems.

  • Пристрої АСКО (DAQ.AMRDevs) розширено, повністю реалізованою, підтримкою лічильника Контар (МЗТА).

  • Всі модулі БД значно стабілізовано, підвищено їх продуктивність та розширені динамічним перекладом і режимом предзавантаження сканувального запиту.

  • Архіватор на БД (Archive.DBArch) значно розширено оптимізацією запису та читання БД, а саме це: гуртовий запис декількох архівів до однієї таблиці, читання блоками кратними десяти у одному запиті та відновлення переліку архівів із інформації у БД.

  • Архіватор на ФС (Archive.FSArch) значно стабілізовано та доповнено абсолютним обмеженням розміру архіву на диску.

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

  • Сокети (DAQ.Sockets) розширено підтримкою шини RAWCAN та діагностичною інформацією.

  • Послідовний інтерфейс (Transport.Serial) розширено підтримкою низькорівневої шини I2C; спеціальними користувацькими функціями послідовного інтерфейсу: “sendbreak”, “TS”, “DR”, “DCD”, “RI”; розширеним керуванням RTS для RS-485.

  • Шар безпечних сокетів (Transport.SSL) розширено підтримкою: TLSv1.1, TLSv1.2, DTLSv1.

  • Власний протокол OpenSCADA (Protocol.SelfSystem) стабілізовано та розширено ієрархічним та багаторівневим спрямуванням запитів до зовнішніх хостів, діагностичною інформацією та обмеженнями.

  • HTTP (Protocol.HTTP) розширено адаптивністю до інтерфейсів користувача, у системних діалогах, та динамічною багатомовністю.

  • Системний конфігуратор Qt (UI.QTCfg) значно стабілізовано та розширено асинхронними запитами до інтерфейсу керування OpenSCADA, покращеною реалізацію елементів контролю.

  • Динамічний WEB конфігуратор (UI.WebCfgD) розширено новим дизайном з використанням CSS3 та можливостей сучасних WEB-браузерів.

  • Концепцію і рушій середовища візуалізації та керування значно стабілізовано та розширено підтримкою специфічних до візуалізатору атрибутів віджетів, реалізацією нового-гнучкого механізму повідомлень користувача, діагностикою виконання, фоновим (у окремому потоці) виконанням задачі формування документів, збільшенням кількості трендів на одному кадрі до 100.

  • Робочий інтерфейс користувача Qt (UI.Vision) значно стабілізовано та розширено для роботи у мережі, через сервер візуалізації; реалізацією групи специфічних до цього візуалізатору атрибутів; реалізацією видів “Дерево”, “Таблиця” та розширенням виду “Кнопка”, примітиву “Елементи форми”; реалізацією виду “XY” примітиву “Діаграма”; значним рефакторингом коду примітиву “Елементарна фігура”; підтримкою динамічної багатомовності.

  • Робочий інтерфейс користувача Web (UI.WebVision) значно стабілізовано, оптимізовано та розширено використанням CSS3 та можливостей сучасних браузерів, зокрема: збільшено чутливість інтерфейсу, додано масштабування до доступного простору вікна браузеру, реалізовано всі примітиви інтерфейсу; підтримкою динамічної багатомовності.

  • Бібліотека функцій системного API середовища користувацького програмування (Special.FLibSYS) стабілізована та розширена деякими функціями та об'єктами: “floatExtract”, “md5”, “tmSleep”, об'єкт “IO”; чинні функції та об'єкти значно розширено щодо: “dbReqSQL”, “FFT”, “strParse”, “strDec4Bin”.

Заключення

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

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

Поточні досягнення та рішення проекту OpenSCADA здійснено на програмній платформі Linux та апаратних платформах x86_32, x86_64, ARM. Та у процесі наближення до версії 0.9 LTS здійснюється значна робота по розширенню можливостей проекту до адаптації його роботи на інших платформах, через вивід Web-інтерфейсів на рівень високої готовності та стабільності, а також адаптації до роботи на програмній платформі Android.


10284