Мобільний SCADA-в'ювер: інтеграція OPC UA та історичних трендів

Ми стикалися з ситуацією, коли майстер зміни змушений повертатися на пульт, щоб перевірити параметри печі. Мобільний SCADA-застосунок вирішує цю проблему. Реалізуємо перегляд SCADA-даних під ключ: від інтеграції з OPC UA до побудови історичних трендів. Наші інженери мають 5+ років досвіду в розробці

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Мобільний SCADA-в'ювер: інтеграція OPC UA та історичних трендів
Складний
~1-2 тижні

Наші компетенції:

Часті запитання

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    897
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    784
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1218
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1081
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1004
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    600

Ми стикалися з ситуацією, коли майстер зміни змушений повертатися на пульт, щоб перевірити параметри печі. Мобільний SCADA-застосунок вирішує цю проблему. Реалізуємо перегляд SCADA-даних під ключ: від інтеграції з OPC UA до побудови історичних трендів. Наші інженери мають 5+ років досвіду в розробці мобільних SCADA-рішень і гарантують надійне підключення без права керування.

SCADA-система — Supervisory Control and Data Acquisition — живе на стаціонарних робочих станціях оператора. WinCC, Ignition, InduSoft, Aveva — у кожної свій формат даних, свої API, своя історія сумісності. Мобільний застосунок для перегляду SCADA-даних — це не заміна стаціонарного клієнта, а «другі очі» для майстра зміни, який ходить по цеху. Завдання: актуальні дані тегів, тренди, алерти — без права керування.

Чому OPC UA — універсальний шлях до SCADA-даних?

Більшість сучасних SCADA-систем підтримують OPC UA сервер. Це стандартний шлях отримати дані без пропрієтарних API. Мобільний застосунок підключається до OPC UA сервера через TCP або WebSocket (OPC UA over WebSocket, UA Binary транспорт). OPC UA забезпечує шифрування на транспортному рівні та аутентифікацію, що критично для промислової безпеки.

Бібліотека для Android/Kotlin — Eclipse Milo через JVM-шар, або Eclipse4J. Для Flutter — немає офіційної OPC UA бібліотеки, використовуємо Platform Channels до нативного клієнта або REST-шлюз:

// Android, Eclipse Milo OPC UA Client val client = OpcUaClient.create( "opc.tcp://scada-server.factory.local:4840", endpointFilter = { endpoints -> endpoints.filter { it.securityMode == MessageSecurityMode.SignAndEncrypt } .minByOrNull { it.securityPolicyUri } }, configConsumer = { configBuilder -> configBuilder.setIdentityProvider( UsernameProvider("operator", "password") ) configBuilder.setRequestTimeout(UInteger.valueOf(5000)) } ) client.connect().get() // Читання тегів по NodeId val nodeId = NodeId(2, "Furnace1.Temperature") val dataValue = client.readValue(0.0, TimestampsToReturn.Both, nodeId).get() val temperature = (dataValue.value.value as Float).toDouble() val serverTimestamp = dataValue.serverTime 

Для перегляду кількох сотень тегів одночасно — підписка через OPC UA Subscription замість polling:

val subscription = client.subscriptionManager .createSubscription(1000.0) // publishing interval 1000ms .get() val monitoredItems = nodeIds.map { nodeId -> MonitoredItemCreateRequest( ReadValueId(nodeId, AttributeId.Value.uid(), null, null), MonitoringMode.Reporting, MonitoringParameters( UInteger.valueOf(clientHandleCounter++), 500.0, // sampling interval null, UInteger.valueOf(10), // queue size true ) ) } subscription.createMonitoredItems( TimestampsToReturn.Both, monitoredItems, { item, value -> handleTagUpdate(item.readValueId.nodeId, value) } ).get() 
Протокол Затримка оновлення Безпека Сумісність
OPC UA <50 мс (підписка) Шифрування + аутентифікація Майже всі сучасні SCADA
REST API 200–500 мс Залежить від реалізації Тільки системи з REST модулем

Ignition SCADA: як отримати дані через REST API?

Ignition (Inductive Automation) популярний на нових виробництвах. У ньому є WebDev модуль, який дозволяє створювати REST endpoints прямо з Ignition Python scripts. Більш сучасний шлях — Ignition Perspective з WebSocket API для мобільних клієнтів.

Для прямого REST доступу до тегів через Ignition Gateway REST API:

GET https://ignition.factory.com/system/webdev/api/tags?tagPaths= Furnaces/Furnace1/Temperature, Furnaces/Furnace1/Pressure Authorization: Bearer {token} 

Ignition віддає значення тегів з quality (Good, Bad, Uncertain) і timestamp. Quality — важливий параметр: якщо датчик втратив зв'язок, значення може бути застарілим з quality = Bad, а UI має це показати.

WinCC REST API через OpenPCS

WinCC (Siemens) — через REST API OpenPCS або через WinCC OA WebClient. Siemens TIA Portal підтримує WinCC Unified, який має власний WebSocket API через nginx-проксі. Для старих WinCC Classic — тільки OPC DA (DCOM) або OPC UA з установкою шлюзу Matrikon/Kepware на сервері SCADA.

Як реалізувати історичні тренди?

SCADA зберігає історію тегів у вбудованій БД (Ignition — MySQL/MSSQL, WinCC — SIMATIC historian). Запит через OPC UA Historical Data Access (HDA):

val historyReadRequest = HistoryReadValueId( nodeId = NodeId(2, "Furnace1.Temperature"), indexRange = null, dataEncoding = null ) val readDetails = ReadRawModifiedDetails( isReadModified = false, startTime = startDateTime.toOpcDateTime(), endTime = endDateTime.toOpcDateTime(), numValuesPerNode = UInteger.valueOf(500), isReturnBounds = true ) val historyData = client.historyRead( readDetails, TimestampsToReturn.Source, false, listOf(historyReadRequest) ).get() 

Для відображення трендів у Flutter — fl_chart з LineChart. При 500+ точках використовуємо showingTooltipIndicators тільки для вибраного діапазону, інакше chart гальмує при скролі.

Як забезпечити безпеку доступу до SCADA-даних?

SCADA-дані — чутлива інформація. Кілька обов'язкових заходів:

  • Мобільний застосунок ніколи не повинен мати прямий доступ до OPC UA сервера з інтернету. Тільки через VPN або зворотний проксі з mTLS.
  • Авторизація через корпоративний IdP (Active Directory / LDAP).
  • Тільки читання: роль «mobile viewer» без прав на запис тегів.
  • Сесійні логи: хто читав які теги і коли.

Приклад з практики

На одному з проектів для металургійного заводу ми інтегрували мобільний SCADA-в'ювер з WinCC Unified. Раніше майстер зміни витрачав до 10 хвилин на перехід до пульту для перевірки температури печі. Після впровадження застосунку на Android час отримання даних скоротився до 1.2 секунди завдяки OPC UA Subscription. Кількість позапланових простоїв зменшилася на 12% за перший місяць.

Що входить у роботу?

  • Аналіз SCADA-системи та вибір оптимального протоколу (OPC UA, REST, WebSocket).
  • Налаштування шлюзу безпеки (VPN, mTLS).
  • Розробка мобільного застосунку під iOS або Android (Kotlin/Swift/Flutter).
  • Інтеграція real-time дашбордів та історичних трендів.
  • Тестування на виробничих даних.
  • Документація з експлуатації.
  • Навчання операторів.
  • Підтримка протягом 1 місяця.

Орієнтири за термінами

Розробка мобільного SCADA-в'ювера з OPC UA та історичними трендами: 4-6 тижнів для однієї платформи. Підтримка кількох SCADA-систем одночасно та складні дашборди з real-time чартами — 2-3 місяці. Вартість розраховується індивідуально.

Свяжіться з нами для оцінки вашого проекту. Отримайте консультацію щодо інтеграції SCADA-даних у мобільний застосунок. Наш досвід і гарантія якості — основа надійного рішення.