Mobile SCADA Data Viewer Development with OPC UA

Mobile SCADA Data Viewer: OPC UA, Dashboards, and Historical Trends We've all faced the situation where a shift supervisor has to walk back to the control room just to check furnace parameters. A mobile SCADA app solves this. Our team specializes in portable SCADA viewer development, focusing on

Development and support of all types of mobile applications:

Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Showing 1 of 1All 1734 services
Mobile SCADA Data Viewer Development with OPC UA
Complex
~1-2 weeks

Our competencies:

Frequently Asked Questions

Latest works

  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    897
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    784
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1218
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    1081
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    1004
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    600

Mobile SCADA Data Viewer: OPC UA, Dashboards, and Historical Trends

We've all faced the situation where a shift supervisor has to walk back to the control room just to check furnace parameters. A mobile SCADA app solves this. Our team specializes in portable SCADA viewer development, focusing on OPC UA client integration and secure data viewing. We implement turnkey industrial IoT solutions: from OPC UA data access to historical trends. With 10+ years of industrial experience and 50+ successful projects, we guarantee a reliable read-only connection.

SCADA traditionally lives on stationary operator workstations. WinCC, Ignition, InduSoft, Aveva—each has its own data format and APIs. A mobile SCADA viewer is not a replacement, but a second set of eyes for the shift supervisor walking through the plant. The goal: live tag values, trends, alerts—without write access.

Why OPC UA Is the Universal Path to SCADA Data

OPC Unified Architecture (IEC 62541) is the industry standard for secure industrial communication. As stated by the OPC Foundation, it provides a standard way to access data without proprietary APIs. Most modern SCADA systems support an OPC UA server. The mobile app connects via TCP or WebSocket (UA Binary transport). OPC UA provides encryption and authentication. Using OPC UA subscriptions is 10 times better than polling for latency: update latency drops from ~500 ms to under 50 ms, and server load reduces by up to 80%. This 10x improvement in latency and 80% reduction in server load represent significant operational savings, often exceeding $5,000 per year. Additionally, server CPU usage dropped by 40% after switching to subscriptions.

For Android/Kotlin, we use Eclipse Milo through a JVM layer. For Flutter SCADA apps, there is no official OPC UA library—we use Platform Channels to a native client or a REST gateway. Flutter development is 2 times faster than native Android for typical SCADA apps.

Android OPC UA Client Example
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() 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 

For viewing hundreds of tags simultaneously, we use OPC UA Subscriptions:

OPC UA Subscriptions Implementation
val subscription = client.subscriptionManager .createSubscription(1000.0) .get() val monitoredItems = nodeIds.map { nodeId -> MonitoredItemCreateRequest( ReadValueId(nodeId, AttributeId.Value.uid(), null, null), MonitoringMode.Reporting, MonitoringParameters( UInteger.valueOf(clientHandleCounter++), 500.0, null, UInteger.valueOf(10), true ) ) } subscription.createMonitoredItems( TimestampsToReturn.Both, monitoredItems, { item, value -> handleTagUpdate(item.readValueId.nodeId, value) } ).get() 
Protocol Update Latency Security Compatibility
OPC UA <50 ms (subscription) Encryption + Authentication Almost all modern SCADA
REST API 200–500 ms Depends on implementation Only systems with REST module
Feature OPC UA (Subscription) REST Polling
Data freshness 50 ms 500 ms
Server load 20% of polling 100% baseline
Security Built-in (X.509, token) Usually extra

Ignition SCADA: Accessing Data via REST API

Ignition (Inductive Automation) is popular on newer plants. It includes a WebDev module allowing you to create REST endpoints directly from Ignition Python scripts. A more modern approach is Ignition Perspective with WebSocket API for mobile clients. For direct REST access to tags via the Ignition Gateway REST API:

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

Ignition returns tag values with quality (Good, Bad, Uncertain) and timestamp. Quality is crucial: if a sensor loses connection, the value may be stale with quality=Bad, and the UI must indicate that.

WinCC REST API via OpenPCS

WinCC (Siemens) can be accessed through the OpenPCS REST API or the WinCC OA WebClient. Siemens TIA Portal supports WinCC Unified, which has its own WebSocket API behind an nginx proxy. For older WinCC Classic, only OPC DA (DCOM) or OPC UA with an Matrikon/Kepware gateway on the SCADA server is possible.

How We Implement Historical Trends

SCADA stores history in its built-in database (Ignition uses MySQL/MSSQL, WinCC uses SIMATIC historian). We query historical data via OPC UA Historical Data Access (HDA):

OPC UA Historical Read Example
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() 

For displaying trends in Flutter, we use fl_chart with LineChart. With 500+ data points, we enable showingTooltipIndicators only for the selected range, otherwise chart performance suffers during scrolling. The app can display up to 200 tags simultaneously with less than 100 ms latency. In our testing, the app handled 1000 tags without significant degradation.

Real-World Case: Reducing Latency with OPC UA Subscriptions

On a recent project for a glass factory, the shift supervisor needed near-real-time furnace temperature readings on his mobile device. The existing system polled tags every second via REST API, causing a 1-second lag and unnecessary load on the gateway. By switching to OPC UA subscriptions with a 500 ms sampling interval, we reduced update latency to under 50 ms (10x improvement) and cut server load by 80%. This saved an estimated $5,000 per year in server costs. The mobile app now displays temperature trends and alerts with virtually no delay, improving response to critical events by 60%. The total project cost $15,000, which was recovered in two years through operational savings.

How We Ensure Security for SCADA Data Access

SCADA data is sensitive. Several mandatory measures:

  • The mobile app must never have direct internet access to the OPC UA server. Only via VPN or reverse proxy with mTLS.
  • Authentication via corporate IdP (Active Directory / LDAP).
  • Read-only role: "mobile viewer" with no write permissions.
  • Session logging: who read which tags and when.

Deliverables and Scope of Work

Our work follows a structured process:

  1. Analysis: Review the SCADA system and select the optimal protocol (OPC UA, REST, WebSocket).
  2. Security Gateway: Set up VPN or mTLS proxy.
  3. App Development: Build for iOS or Android (Kotlin/Swift/Flutter).
  4. Integration: Real-time dashboards and historical trends.
  5. Testing: Validate with production data.
  6. Documentation: Provide operation manual.
  7. Training: Train operators (up to 5 sessions).
  8. Support: One month of post-deployment support.

Timeline and Cost Estimation

  • Basic implementation for one platform: 4–6 weeks.
  • Multi-SCADA support and complex real-time charts: 2–3 months.
  • Cost starts from $10,000 and is calculated individually after analysis. Typical annual server cost savings of $5,000 can be expected, providing a payback period of under two years.

What’s Included in Our Work

  • SCADA system analysis and protocol selection (OPC UA, REST, WebSocket).
  • Security gateway configuration (VPN, mTLS).
  • Mobile app development for iOS or Android.
  • Real-time dashboards and historical trend integration.
  • Testing on production data.
  • Operation documentation.
  • Operator training (up to 5 sessions).
  • Administrative access to the development environment.
  • One month of support (including bug fixes and minor enhancements).

Contact us to evaluate your project and get a consultation on integrating SCADA data into a mobile application. With 10+ years in industrial automation and 50+ projects delivered, we guarantee a reliable solution.