Evaluate the AutomationView desktop suite free for 30 days. No credit card required. Claim trial key →
arrow_back Back to Articles
HMI

Why GraphQL and WebSockets are Replacing Polling in Modern HMI

calendar_month
person Carvalho Raphael

Why GraphQL and WebSockets are Replacing Polling in Modern HMI

HMI
%%{init: {'theme':'dark', 'themeVariables': { 'background': '#001c38' }}}%%
flowchart LR
    A["PLC / Edge Gateway"] -->|GraphQL| B["Unified Data Layer"]
    B -->|WebSockets| C["Browser-Based HMI"]
    C -->|WebSockets| B
    style A fill:#2563eb,stroke:#60a5fa,stroke-width:2px,color:#ffffff
    style B fill:#16a34a,stroke:#4ade80,stroke-width:2px,color:#ffffff
    style C fill:#dc2626,stroke:#f87171,stroke-width:2px,color:#ffffff
AutomationView Icon AutomationView



For decades, industrial control systems relied heavily on simple request-response polling mechanisms to update screens. If an operator needed to know a tank’s level, the HMI asked the PLC, waited for the response, and then asked again a second later. In 2026, this approach is fundamentally broken. As manufacturing floors integrate deeper with IIoT, Edge AI, and unified namespace architectures, traditional polling creates unacceptable latency and network congestion. Today’s high-performance operations demand a paradigm shift toward Industrial HMI WebSockets and GraphQL.

By decoupling the display layer from the data layer, modern web-based HMI platforms—such as Ignition Perspective or WinCC Unified—are leveraging these standard IT technologies to deliver instant, bidirectional data streams. This guide explores the mechanics of this shift and how automation engineers can architect real-time interfaces without the overhead of “Digital Rust.”

The Death of the Polling Cycle

In legacy SCADA, setting a tag update rate to 250ms across 10,000 tags guarantees severe network saturation. The system continuously asks, “Has anything changed?” even when the process is perfectly static. This over-fetching wastes bandwidth and burdens the PLC CPU.

Modern architectures solve this by moving to a publish-subscribe (PubSub) or event-driven model at the interface level, facilitated primarily by WebSockets.

WebSockets: Full-Duplex Real-Time Data

Unlike HTTP, which closes the connection after every request, WebSockets establish a persistent, full-duplex connection between the HMI browser client and the edge server.

  • Zero Polling Overhead: The server pushes data to the client only when a tag value changes (Report-by-Exception).
  • Millisecond Latency: Because the connection is already open, the latency of establishing a TCP handshake is eliminated.
  • Bidirectional Control: Operators can send setpoint changes back to the server instantly through the same socket.

On the plant floor, this means an alarm triggers on the operator’s tablet in milliseconds, critical for high-speed discrete manufacturing or safety-critical process control.

GraphQL: Precision Data Fetching

While WebSockets handle the transport of live data, GraphQL manages the structure of the data requested. Developed originally by Meta, GraphQL has become a crucial tool for industrial applications aggregating data from heterogeneous sources (PLCs, MES, ERPs).

Instead of hitting multiple REST endpoints (e.g., one for machine status, one for production counts, one for alarms), the HMI client sends a single GraphQL query specifying exactly what fields it needs. This prevents over-fetching and allows the interface to load much faster.

flowchart TD
    subgraph ds [Data Sources]
        PLC["PLC Tags"]
        MES["MES Work Orders"]
        DB["Historian Database"]
    end
    
    subgraph gql [GraphQL API]
        GQL["GraphQL Server"]
    end
    
    subgraph client [Client]
        HMI["HMI Client"]
    end
    
    PLC --> GQL
    MES --> GQL
    DB --> GQL
    GQL -->|Precise JSON Payload| HMI
    
    style PLC fill:#2563eb,stroke:#60a5fa,color:#ffffff
    style MES fill:#2563eb,stroke:#60a5fa,color:#ffffff
    style DB fill:#2563eb,stroke:#60a5fa,color:#ffffff
    style GQL fill:#16a34a,stroke:#4ade80,stroke-width:2px,color:#ffffff
    style HMI fill:#dc2626,stroke:#f87171,stroke-width:2px,color:#ffffff

Comparing Data Fetching Strategies

Understanding when to use REST, GraphQL, or WebSockets is key to building responsive HMI dashboards.

Technology Primary Use Case in HMI Network Efficiency Latency
REST / Polling Legacy integration, infrequent data pulls. Low (High overhead) High
GraphQL Initial dashboard load, complex nested queries, historical data fetching. High (No over-fetching) Medium
WebSockets Live tag updates, instant alarm notifications, continuous process monitoring. Very High (Push-based) Ultra-Low

Implementation Challenges in the Field

Transitioning to these technologies is not without hurdles. Automation engineers frequently encounter security constraints when opening WebSocket connections across strict IT/OT firewalls. Unlike standard HTTP traffic (port 443), persistent WebSocket connections require careful reverse proxy configuration (e.g., NGINX) and robust authentication tokens (JWT) to ensure bad actors cannot hijack the control stream.

Furthermore, managing state on the client side requires modern JavaScript frameworks. If the WebSocket connection drops during a network hiccup on a mobile tablet, the HMI must gracefully degrade, show stale data warnings, and automatically attempt reconnection without locking up the operator’s screen.

Conclusion

The transition from rigid, polled HMIs to dynamic, event-driven web applications is complete. By combining the precision of GraphQL for initial state loading with the speed of Industrial HMI WebSockets for live updates, engineers can deliver interfaces that match the responsiveness of consumer web apps, all while reducing the load on critical control infrastructure. Explore more advanced HMI design patterns in the AutomationView Store.

FAQ

Can WebSockets replace MQTT?

No. MQTT is typically used for device-to-server communication (PLC to broker) over unreliable networks, while WebSockets are used for server-to-client communication (broker to web browser).

Is GraphQL difficult to implement on Edge controllers?

It requires more setup than a simple REST API, but modern edge platforms like Node-RED and Ignition provide built-in or plugin-based GraphQL support, streamlining the process.

Share this article

Stay Updated with HMI

Get the latest articles and news delivered directly to your inbox.

Log in to Subscribe

You must be registered and logged in to manage subscriptions.

Recommended for you

Deep Dive: Integrating HTML5 Web Components into Modern SCADA Systems

HMI
%%{init: {'theme':'dark', 'themeVariables': { 'background': '#001c38' }}}%%
flowchart LR
    A["Legacy HMI"] -.-> B["Proprietary Plugin"]
    B -.-> C["Vendor Lock-In"]
    D["Modern SCADA"] -->|HTML5 + SVG| E["Web Server"]
    E -->|WebSockets| F["Any Browser/Device"]
    
    style A fill:#e74c3c,stroke:#c0392b,color:#fff
    style B fill:#e74c3c,stroke:#c0392b,color:#fff
    style C fill:#c0392b,stroke:#a1281a,color:#fff
    style D fill:#2ecc71,stroke:#27ae60,color:#fff
    style E fill:#3498db,stroke:#2980b9,color:#fff
    style F fill:#9b59b6,stroke:#8e44ad,color:#fff
AutomationView Icon AutomationView
calendar_month

Deep Dive: Integrating HTML5 Web Components into Modern SCADA Systems

The industrial landscape is aggressively pivoting away from proprietary HMI plugins like ActiveX or Java applets. By transitioning to standard web technologies, automation engineers unlock responsive, hardware-agnostic control panels accessible from any authorized device. This guide unpacks the technical framework required for seamless HTML5 SCADA integration. The Middleware Layer: Bridging OPC UA to WebSockets Traditional […]

Read Article arrow_forward

Deep Dive: Designing Ergonomic Alarm Annunciation for High-Stress Control Rooms

HMI
%%{init: {'theme':'dark', 'themeVariables': { 'background': '#001c38' }}}%%
---
title: HMI alarm annunciation
---
flowchart LR
    classDef default fill:#1E293B,stroke:#475569,stroke-width:2px,color:#F8FAFC
    classDef alert fill:#EF4444,stroke:#B91C1C,color:#FFFFFF

    A["Process Anomaly"] --> B("Alarm Server")
    B -->|Priority 1| C["Audible Horn"]:::alert
    B -->|Priority 1| D["Flashing Red Indicator"]:::alert
    B -->|Priority 3| E["Banner Log Only"]
AutomationView Icon AutomationView
calendar_month

Deep Dive: Designing Ergonomic Alarm Annunciation for High-Stress Control Rooms

When a critical failure cascades through a plant, the control room transforms into a high-stress environment. If an operator is bombarded by a wall of indistinguishable red flashing lights and a cacophony of sirens, cognitive overload occurs within seconds. HMI alarm annunciation is the critical bridge between a process fault and the operator’s corrective action. […]

Read Article arrow_forward

Deep Dive: Mastering SCADA Trending and Historians for Process Visualization

HMI
%%{init: {'theme':'dark', 'themeVariables': { 'background': '#001c38' }}}%%
flowchart LR
    style PLC fill:#0d47a1,stroke:#0d47a1,stroke-width:2px,color:#ffffff
    style SCADA fill:#1565c0,stroke:#1565c0,stroke-width:2px,color:#ffffff
    style Hist fill:#1976d2,stroke:#1976d2,stroke-width:2px,color:#ffffff
    PLC["PLC Data Buffer"] -->|Real-Time| SCADA["HMI / SCADA Trending"]
    SCADA -->|Archiving| Hist["Process Historian DB"]
AutomationView Icon AutomationView
calendar_month

Deep Dive: Mastering SCADA Trending and Historians for Process Visualization

TL;DR: Differentiate live memory-buffered trends from long-term SQL/Time-Series storage to prevent HMI lag. Aggressive exception logging (deadbanding) saves massive database space but requires careful tuning to avoid missing transient spikes. Providing contextual overlays like setpoints and alarm limits transforms a meaningless squiggly line into actionable troubleshooting data. Pushing thousands of tags to a database without […]

Read Article arrow_forward