SCADA Architecture in IoT: Edge, MQTT and Cloud Design
Design a bounded SCADA and Industrial IoT architecture with PLC-owned control, edge collection, MQTT or OPC UA data paths, store-and-forward, OT segmentation, failure tests and a worked remote-pump example.
Review status: Vendor-neutral architecture and test method reviewed against current NIST OT and IoT guidance, ISA/IEC 62443, OPC UA PubSub, OASIS MQTT and Eclipse Sparkplug primary sources; product capabilities, network routes, certificates, timing, hazards and production acceptance still require site-specific verification
Direct answer
SCADA architecture in IoT keeps deterministic control close to the process while publishing selected operational data through a bounded edge and messaging path. Instruments and drives connect to PLCs or RTUs; those controllers own control states, permissives, interlocks and safe fallback behavior. SCADA provides operator supervision, alarms, history and authorized requests. An edge gateway normalizes approved data, preserves quality and timestamps, buffers during an outage and publishes northbound to an MQTT broker, OPC UA PubSub subscriber or cloud ingestion service. The cloud may analyze, aggregate or visualize data, but it should not silently become the only control path.
The practical design rule is simple: control locally, supervise within OT, publish deliberately, and prove every boundary under failure. “Connected to the cloud” is not an architecture. A reviewable design names the owner of every value and command, the direction and frequency of every flow, the behavior when a dependency disappears, and the evidence required before release.
This guide owns the edge, messaging and cloud-integration task. For the full field-to-enterprise layer model, redundancy and general diagrams, use SCADA architecture. For PLC, edge and historian integration at a broader IIoT level, use the IIoT PLC integration guide. For operational screen, alarm and maintenance practices, use SCADA best practices.
SCADA IoT architecture at a glance
| Layer | Primary responsibility | Typical components | Must continue if cloud is unavailable? | Acceptance evidence |
|---|---|---|---|---|
| physical process | measure and affect the plant | sensors, analyzers, motors, valves, drives | as required by the process design | calibrated or simulated test points |
| control | deterministic equipment and process behavior | PLC, PAC, RTU, safety system where separately engineered | yes for the defined operating or fallback state | state, interlock and negative tests |
| supervisory OT | operator awareness and authorized requests | SCADA servers, HMI clients, alarm service, local historian | normally yes | screen, alarm, trend and restart tests |
| edge integration | collect, contextualize, filter and buffer approved data | industrial gateway, protocol adapter, local cache | yes, within declared capacity | mapping, queue, overflow and replay tests |
| OT boundary | permit only approved identities and flows | zones, firewalls, DMZ relay or broker, certificate services | yes | rule review, denied-flow and logging evidence |
| enterprise or cloud | fleet analytics, long-term aggregation and business applications | broker, ingestion, data lake, analytics, dashboards | no dependency for basic local control unless explicitly engineered | availability, tenancy, retention and cost tests |
What changes when IoT is added to SCADA?
SCADA and IoT solve different default problems
Classic SCADA is organized around operational supervision: acquire current process state, present it to an operator, alarm abnormal conditions, retain useful history and send authorized requests back toward control. IoT platforms are often organized around scalable device connectivity, asynchronous messages, fleet management, analytics and application integration. Both can move data, but their failure assumptions and semantic depth may differ.
Adding IoT should therefore extend a known SCADA data contract rather than create a second, undocumented version of the plant. If the SCADA point is Station03.DischargePressure in bar with source time, quality and a two-second freshness expectation, the IoT representation must preserve or explicitly transform those semantics. Publishing a floating-point number named pressure without unit, identity, quality or time produces inexpensive ambiguity.
The edge becomes a governed system boundary
An edge gateway is not merely a protocol converter. It may terminate southbound sessions, map addresses to names, apply engineering units, calculate deadbands, attach timestamps, translate quality, buffer messages, authenticate to a broker and expose health. Each function changes evidence and must have an owner.
Keep control decisions in the PLC unless a formal design assigns them elsewhere. A gateway may calculate a non-critical performance indicator; it should not quietly take over a pump interlock because a low-code tool made the calculation convenient. If an edge application fails, the PLC and local SCADA should move through documented states rather than wait indefinitely for a cloud response.
More consumers increase the value of one canonical model
SCADA, historian, maintenance analytics, energy reporting and cloud applications can subscribe to the same governed dataset. That reduces point-to-point interfaces, but only if the dataset has stable identity, types, units and lifecycle rules. Version the contract. Define how a renamed metric, changed data type or retired asset is announced. A broker can distribute a breaking change just as efficiently as a correct one.
Reference architecture: process to cloud
Six boundaries, not one long connection
Treat the architecture as six separately testable boundaries:
- The instrument or drive supplies a raw state to the controller.
- The PLC maps that raw state into a controlled, diagnostic model.
- SCADA reads the operational model and sends only approved requests.
- The edge service selects and contextualizes northbound telemetry.
- A broker or relay crosses a governed conduit, often through an industrial DMZ.
- Enterprise or cloud consumers use the data without becoming an implicit PLC dependency.
At every boundary record protocol, initiator, destination, identity, allowed operation, update rule, timeout, quality behavior, timestamp owner, retry policy and evidence location. A single diagram line named “MQTT” is insufficient because MQTT defines message transport behavior, not the complete plant semantics, authorization model or recovery design.
Control path versus information path
| Question | Local control path | IoT information path |
|---|---|---|
| purpose | operate equipment within defined states and constraints | distribute selected telemetry, events and context |
| common initiator | PLC logic or approved local operator request | edge publisher or OPC UA PubSub publisher |
| timing | deterministic enough for the process requirement | bounded but often asynchronous and variable |
| response to WAN loss | continue or enter a defined local fallback state | buffer, mark unavailable, retry or shed by policy |
| write behavior | explicit request, authorization, interlock and feedback | read-only by default; any command uses a separately engineered conduit |
| source of truth | controller and field feedback for equipment state | governed copy with source identity, time and quality |
| acceptance | sequence, interlock, timeout, restart and safe-state tests | schema, freshness, ordering, replay, identity and capacity tests |
Do not infer that “read-only telemetry” makes the integration risk-free. A gateway can still overload a controller with aggressive reads, expose sensitive process data, consume network capacity, mishandle credentials or publish stale data as current. Bound polling rates, connection counts and selected tags, then observe controller and network load during representative tests.
Worked example: remote pump station
Define the operating contract first
Consider a remote water pump station with two duty/standby pumps, suction and discharge pressure, reservoir level, motor feedback, a local PLC, local operator panel, cellular backhaul, central SCADA and cloud energy analytics. The PLC owns duty rotation, permissives, start/stop sequencing, minimum run time, fail-to-start, high-pressure trip request and local fallback. Central SCADA shows effective states and may send a bounded Start_Request or mode request when site policy permits. Cloud analytics receives telemetry but does not start a pump.
During a WAN outage the PLC continues the selected local mode. The edge gateway buffers approved telemetry within a declared time and storage limit. Central SCADA shows communications bad or stale rather than holding a green “running” state indefinitely. When the link returns, current state is established before or alongside historical replay, and replayed samples retain their source timestamps.
Worked tag and message map
| Canonical signal | Type and unit | Owner | SCADA use | IoT publication | Quality and time rule | Write rule |
|---|---|---|---|---|---|---|
Station03.Reservoir.LevelPV |
REAL, % | PLC from analog input | display, alarm, trend | report on 0.5% change or 30 s heartbeat | source timestamp; bad on input fault; stale after approved age | none |
Station03.PumpA.EffectiveState |
enum | PLC | status and sequence evidence | on change plus heartbeat | state revision and source time preserved | none |
Station03.PumpA.RunFeedback |
BOOL | PLC from field input | diagnostic detail | on change | distinguish false from bad quality | none |
Station03.PumpA.FailToStart |
BOOL | PLC | alarm and first-out | event on transition | alarm/event time retained | none |
Station03.Discharge.PressurePV |
REAL, bar | PLC from transmitter | display, high limit and trend | deadband plus heartbeat | engineering range and sensor fault exposed | none |
Station03.Control.ModeRequest |
enum | SCADA request, PLC acceptance | authorized control | not published as a cloud command | user, request time and outcome audited | local SCADA role, permitted values and mode only |
Station03.Edge.QueueDepth |
integer, messages | edge gateway | integration health | periodic health metric | gateway time plus alert threshold | none |
Station03.Edge.LastPublishAge |
duration, s | edge gateway | stale-path diagnosis | periodic health metric | monotonic calculation and wall-clock context | none |
This table is the contract, not a suggestion for exact vendor syntax. The project must map it to the selected PLC tags, OPC UA nodes, Modbus registers, Sparkplug metrics or proprietary driver. Verify how each product represents uncertain and bad quality, source versus server timestamps, retained messages, reconnect and duplicated delivery.
Example topic and namespace plan
For plain MQTT, use a stable hierarchy that separates environment, site, asset and message class, such as production/site03/pumps/telemetry. Do not place usernames, secrets or uncontrolled free text in topic names. Grant the edge identity publish access only to its site namespace and grant each consumer only the subscriptions it needs.
For Sparkplug, follow the specification's topic namespace, payload and session-state requirements instead of inventing a Sparkplug-like topic. Birth and death behavior matters because event-driven SCADA must know whether an edge node and its metrics are current. For OPC UA PubSub over MQTT, select and document the transport profile, encoding, dataset metadata and message-security requirements. “MQTT enabled” alone does not establish interoperability between plain JSON, Sparkplug and OPC UA PubSub consumers.
Polling, MQTT and OPC UA PubSub
Choose a communication model from requirements
| Model | Strength | Design burden | Best fit | Critical failure test |
|---|---|---|---|---|
| SCADA polling PLC/RTU | familiar request/response diagnostics and direct point control | connection and scan load grows with sites, points and consumers | local or central operational supervision | slow/no response without controller overload |
| edge polling plus MQTT publish | isolates northbound consumers and supports asynchronous fan-out | edge mapping, buffering and session state become critical | brownfield PLCs feeding multiple consumers | edge restart, queue overflow and ordered replay |
| Sparkplug over MQTT | defined topic namespace, payload and session-state behavior for SCADA/IIoT | requires conformant roles and operational sequence | state-aware industrial publish/subscribe | birth/death, rebirth and primary-host behavior |
| OPC UA client/server | rich address space, services, security and subscriptions | certificate, namespace and server-capacity management | structured OT integration and supervisory access | certificate rejection, reconnect and namespace stability |
| OPC UA PubSub | defined datasets with brokered or brokerless mappings | publisher/subscriber configuration, metadata and security-key design | decoupled OT-to-IT or cloud distribution | missing metadata, invalid signature and stale publisher |
| cloud-native device ingestion | fleet identity, managed scale and platform analytics | tenancy, egress, lifecycle, cost and vendor-bound service behavior | approved enterprise analytics beyond the OT boundary | cloud outage, revoked identity and cost/capacity ceiling |
MQTT provides brokered message transport, topic filtering and quality-of-service mechanisms. It does not automatically define industrial asset identity, metric types, engineering units, online state or command semantics. Sparkplug supplies a specific industrial namespace, payload and state model. OPC UA PubSub supplies datasets, metadata, encodings and mappings including MQTT. Choose one explicit application contract; do not mix them under the word “MQTT.”
Calculate load before deployment
Inventory points per site, encoded bytes per update, change rate, heartbeat rate, site count, consumers, retained or historical traffic, metadata, TLS/session overhead and expected reconnect bursts. Measure rather than trust the spreadsheet alone. A deadband that cuts normal traffic may not limit a simultaneous restart where every site sends current state and buffered history.
Protect the controller first. Prefer one approved collector over many independent analytics clients. Bound request groups, scan rates and concurrent sessions. At the broker or ingestion layer, set message-size, rate, queue, storage and retention limits with alarms well below exhaustion. Document what is dropped first and how data loss is reported.
Store-and-forward, time and data quality
An outage must produce a state, not a mystery
Store-and-forward can preserve history through a WAN or cloud outage, but it creates four timelines: the source sample time, gateway receive time, broker or service ingest time and consumer processing time. Decide which time drives a trend and retain the others for diagnosis. Replayed data must not appear to be live merely because it arrived now.
Define queue capacity in time and bytes under a tested worst-case event rate. Define overflow behavior: drop oldest, drop newest, preserve critical events, stop collection or spill to approved storage. Alarm before the limit. A marketing phrase such as “unlimited buffering” is not an acceptance criterion.
Make quality translation explicit
Map source quality into a consumer-visible model. Do not convert an OPC UA bad value into a valid JSON number without a quality field. For a Modbus source that lacks standardized quality, the collector may derive communication status and age, but label those as gateway observations rather than sensor self-diagnosis. Keep false, zero, null, bad, stale and not configured distinct.
Test clock loss and skew. Devices should use an approved time source and expose synchronization health where practical. If a remote gateway reboots with an incorrect clock, the consumer must not silently insert future-dated or ancient values into an operational trend.
Security architecture for SCADA and IoT
Use zones and narrowly defined conduits
NIST SP 800-82 Rev. 3 emphasizes that OT security controls must respect performance, reliability and safety requirements. ISA/IEC 62443 provides a lifecycle and risk-based framework for industrial automation and control systems. Apply those principles by grouping assets with similar security needs into zones and specifying permitted conduits between them.
Avoid a direct, general-purpose route from cloud workloads to PLCs. A common pattern places the control zone behind an industrial firewall, keeps SCADA services in an operations zone, uses an industrial DMZ for relays or a broker where justified, and permits a constrained outbound or mutually authenticated application flow toward enterprise/cloud services. The exact placement depends on risk assessment and product behavior; a diagram alone does not make a DMZ effective.
Minimum security design record
| Control area | Record before build | Verify before release |
|---|---|---|
| asset and software inventory | owner, role, model, firmware/software, support state and dependencies | inventory matches deployed nodes and approved versions |
| identities | unique device, service and user identities; issuer and lifecycle owner | default/shared credentials absent; revoke and renew work |
| certificates and keys | trust roots, subject mapping, storage, rotation and expiry response | invalid, expired and untrusted peers are rejected and logged |
| network conduit | source, destination, direction, protocol, port and business purpose | allowlist works; unapproved routes and protocols are denied |
| authorization | publish/subscribe namespaces and any command roles | edge cannot publish another site; analytics cannot write control tags |
| hardening | disabled services, secure configuration, patch and backup baseline | drift, restore and rollback evidence is retained |
| monitoring | connection, authentication, configuration, queue and data-quality events | actionable logs reach the approved monitoring owner |
| incident and recovery | isolation, certificate revocation, broker loss and clean restore procedures | tabletop plus representative technical recovery test passes |
Encryption is not the entire security design. TLS can protect a connection while an over-privileged identity publishes the wrong namespace or a trusted broker forwards harmful commands. Use least privilege at the application layer, validate payloads and ranges, separate telemetry from commands, and make the PLC reject an unsafe or inappropriate request regardless of where it originated.
Failure modes and acceptance testing
Test the first failed boundary
An end-to-end green dashboard can hide the location of a defect. Build test points at the source tag, PLC model, SCADA tag, edge input, edge queue, broker topic, cloud ingest and final application. When a value diverges, find the first boundary where expected and observed evidence differ. That prevents teams from blaming “the network” or “the cloud” without proof.
| Fault injection | Expected local control | Expected SCADA evidence | Expected IoT behavior | Pass condition |
|---|---|---|---|---|
| sensor out of range | PLC follows defined bad-input state | bad quality and actionable alarm | bad/invalid state published, not a plausible substitute | all consumers agree on invalidity and time |
| PLC-to-edge session lost | PLC continues or enters defined local fallback | communications alarm; last value not shown as current | publisher or metric becomes unavailable by contract | loss detected within approved interval |
| WAN/cloud outage | no dependency for basic control | local supervision remains available | bounded queue grows and health alarm activates | no uncontrolled restart or silent loss |
| edge gateway restart | control remains local | integration health changes | current state re-established; duplicates handled | consumers recover without false transitions |
| broker unavailable | local control and SCADA unaffected by northbound path | broker path alarm | retry/backoff obey limits | no retry storm or controller overload |
| stale timestamp or clock skew | no unsafe control assumption | age/time anomaly visible | invalid or quarantined according to policy | future/ancient samples cannot masquerade as live |
| unauthorized publish or subscribe | no effect on PLC | security event available | broker denies identity/namespace | denied action and source are logged |
| cloud command attempt | PLC accepts nothing through telemetry-only route | no hidden control state | request rejected or impossible by architecture | no cloud-to-PLC path exists unless separately approved |
| queue capacity exceeded | control continues | data-loss/overflow alarm | documented shedding policy executes | loss is bounded, counted and disclosed |
| restored link with backlog | control remains current | live state stays distinguishable from history | replay preserves source time and bounded rate | live processing is not starved by replay |
Download the acceptance checklist
Use the SCADA IoT architecture acceptance checklist as a starting register. Assign an owner, requirement ID, expected result and evidence link before execution. Replace every example threshold with a value derived from the real process, network, product capacity and risk assessment.
Deployment sequence
Move from read-only pilot to governed service
| Gate | Work product | Go condition | Stop condition |
|---|---|---|---|
| 1. ownership | architecture decision record and system owners | control, supervision, edge, security and data owners accept responsibilities | “the vendor handles it” remains the only owner |
| 2. inventory | asset, point, flow and dependency inventory | every selected tag and connection has a purpose | unknown legacy route or unsupported component |
| 3. isolated prototype | simulated process, PLC tags, edge map and broker | value, quality, time and identity work end to end | happy path works but stale/bad state is ambiguous |
| 4. read-only site pilot | bounded points from one representative site | measured load, outage, restart and queue tests pass | controller/network load or recovery exceeds limit |
| 5. security gate | zones/conduits, identities, hardening and monitoring | denied flows, expiry, revoke, backup and restore pass | shared admin, direct cloud route or unlogged denial |
| 6. operational acceptance | alarm, support, incident and change procedures | operators and support team can diagnose the first failed boundary | system requires a developer to explain every outage |
| 7. scale test | representative sites, consumers and reconnect burst | capacity margins and costs remain within approved bounds | replay storm, queue exhaustion or uncontrolled spend |
| 8. controlled rollout | versioned release and rollback per cohort | each cohort meets the same automated and field evidence | unexplained regression or contract drift |
Begin with read-only telemetry. Adding a command path changes the safety, authorization, audit, latency and failure surface and deserves a separate design review. If remote supervisory requests are necessary, define request, acceptance, rejection, timeout, cancellation and confirmed process feedback as distinct states. A message-delivery acknowledgement is not proof that equipment moved.
Common design mistakes
Treating the cloud as the new PLC
Cloud services are valuable for fleet analytics, aggregation and compute that does not belong in a controller. WAN latency, service availability, credentials and upstream dependencies make them a poor accidental home for essential interlocks or basic operating sequences. Keep the controller capable of its declared local behavior during loss of edge, broker or cloud.
Publishing every tag at the fastest rate
More data is not automatically more insight. Select variables from decisions and failure modes. Use justified change thresholds and heartbeats. Preserve critical events. Measure normal, upset and reconnect traffic. A system sized only from average bandwidth can fail exactly when many sites recover together.
Conflating delivery with truth
MQTT delivery level, broker acknowledgement or cloud ingest success says nothing about whether the transmitter was healthy, the PLC mapping was correct or the engineering unit was preserved. Carry source identity, quality and time, and test a known value at every boundary.
Hiding command semantics in a generic topic
Do not let an analytics identity publish to a wildcard that includes control requests. Separate telemetry and command namespaces, identities and conduits. Define PLC-side authorization, range and state checks. Record the requester and final outcome. Default to no northbound command path.
Skipping recovery and lifecycle tests
Certificates expire, gateways restart, schemas change, disks fill and products leave support. Test renewal, revoke, backup, clean restore, queue overflow, version rollback and asset retirement. An architecture that works only on its installation day is a demo, not an operational service.
Diagnostic answer map for SCADA and IoT architecture
| User or AI query | Concise answer | Required qualification |
|---|---|---|
| What is SCADA architecture in IoT? | It is a layered design that preserves local PLC/RTU control and SCADA supervision while publishing governed operational data through edge and messaging services. | The architecture must also define identity, quality, time, buffering, security and failure behavior. |
| Does IoT replace SCADA? | Usually no; IoT extends distribution and analytics while SCADA remains focused on operational supervision. | Products may combine roles, but responsibility and outage boundaries must remain explicit. |
| Should a PLC connect directly to the cloud? | A governed edge collector is often easier to constrain, observe and maintain than direct controller connectivity. | Only a site-specific risk and lifecycle review can approve the actual route. |
| What does an edge gateway do in SCADA? | It collects approved sources, maps a canonical data contract, preserves quality/time, buffers outages and authenticates northbound. | It should not silently acquire control authority or hide its own health. |
| Is MQTT enough for industrial data? | MQTT transports messages but does not define engineering units, source quality, timestamps, schemas or control semantics. | Add a governed information model or use an appropriate defined industrial profile. |
| What is Sparkplug compared with MQTT? | Sparkplug adds an industrial namespace, payload model and session-state behavior on top of MQTT. | Conformance requires the specified topic, payload and birth/death behavior, not only an MQTT broker. |
| How should SCADA IoT handle WAN loss? | Buffer bounded, source-timestamped data at a governed layer and expose queue/overflow health. | Local control must remain safe, and replay must distinguish history from current state. |
| Can cloud analytics command a PLC? | Technically yes, but start read-only and add commands only through a separate, least-privilege, validated request path. | PLC-side permissives, interlocks, expiry, audit and confirmed feedback remain mandatory. |
| How do you secure IoT-enabled SCADA? | Inventory assets and flows, segment zones, allow only required conduits, use unique least-privilege identities and test recovery. | Encryption alone does not fix excessive privilege or unsafe application logic. |
| What should be tested before multi-site rollout? | Test capacity, data fidelity, identity isolation, outages, restart, certificate lifecycle, queue limits, replay, schemas, monitoring and restore. | Use representative upset rates and site counts, not only a one-site normal demo. |
Frequently asked questions
What is SCADA architecture in IoT?
SCADA architecture in IoT is a layered industrial design in which PLCs or RTUs retain local control, SCADA retains operational supervision, and an edge plus messaging layer publishes selected, contextualized data to additional consumers such as enterprise or cloud analytics. A complete design also defines identity, quality, timestamps, buffering, security boundaries and outage behavior.
Does IoT replace SCADA?
Usually no. IoT services can extend connectivity, analytics and fleet visibility, while SCADA remains focused on operator supervision, alarms, history and authorized operational requests. Some products combine roles, but the responsibilities and failure boundaries still need to be explicit.
Should a PLC connect directly to the cloud?
Only after a site-specific architecture and risk review proves that the controller, identity, protocol, capacity, lifecycle and network boundary are appropriate. A governed edge collector or relay is often easier to constrain and monitor. Avoid making basic local control depend on cloud availability.
What is the role of an edge gateway in SCADA IoT architecture?
The edge gateway can collect from approved southbound sources, map data into a canonical model, preserve quality and time, apply justified filters, buffer during outages, authenticate northbound and expose its own health. It should not acquire undocumented control authority simply because it can run logic.
Is MQTT enough for industrial SCADA data?
MQTT is a messaging protocol, not a complete industrial information model. The project must still define topic namespace, payload schema, types, units, quality, timestamps, session state, retained-message rules, authorization and command semantics. Sparkplug or OPC UA PubSub can supply more defined application behavior when supported and implemented correctly.
What is the difference between Sparkplug and plain MQTT?
Plain MQTT defines brokered message exchange. Eclipse Sparkplug defines an industrial topic namespace, payload and operational session-state behavior on top of MQTT, including birth and death concepts that help SCADA consumers judge whether edge nodes and metrics are current. A plain JSON publisher is not Sparkplug compatible merely because it uses MQTT.
How should SCADA data be buffered during an internet outage?
Buffer it at a governed layer with declared capacity, event-rate assumptions, source timestamps, health alarms, overflow policy and bounded replay behavior. Local control must follow its own outage design. On reconnection, consumers must distinguish current state from historical samples arriving late.
Can cloud analytics send commands back to a PLC?
Technically many platforms can, but capability is not approval. Start read-only. If a remote request is justified, engineer a separate identity and conduit, least-privilege authorization, input validation, PLC-side permissives and interlocks, request/accept/reject states, timeout, audit and confirmed process feedback.
How do you secure an IoT-enabled SCADA architecture?
Use a risk-based OT security program, inventory assets and flows, segment zones, allow only required conduits, issue unique least-privilege identities, protect and rotate credentials, harden components, monitor security and integration health, and test isolation plus recovery. Encryption alone does not correct excessive privilege or unsafe application logic.
What should be tested before scaling from one site to many?
Test point and connection load, value-quality-time fidelity, identity isolation, WAN loss, broker loss, gateway restart, certificate expiry and revocation, queue limits, replay bursts, duplicate handling, schema compatibility, monitoring, backup/restore and cost. Use representative site counts and upset rates, not only normal averages.
Sources, review scope, and limitations
The PLC Programming IO Editorial Team reviewed this guide on August 30, 2026 against the cited NIST, ISA, OPC Foundation, Eclipse, OASIS, CISA and current cloud-platform documentation. Products, managed-service limits, certificates, protocol versions and security guidance change. Revalidate the selected versions, topology, capacity, routes, identities, recovery and safe operating behavior in an isolated lab and approved representative environment.
- NIST SP 800-82 Rev. 3: Guide to Operational Technology Security
- NISTIR 8259A: IoT Device Cybersecurity Capability Core Baseline
- ISA/IEC 62443 series of industrial automation and control system cybersecurity standards
- ISA-95 enterprise-control system integration standards
- OPC UA Part 14 PubSub scope
- OPC UA Part 14 MQTT mapping
- OPC UA Part 1 publish-subscribe concepts
- Eclipse Sparkplug specification
- Eclipse Sparkplug 3.0 specification document
- Eclipse Tahu reference implementations
- OASIS MQTT Version 5.0 specification
- CISA industrial control systems recommended practices
- AWS IoT SiteWise edge processing documentation
- Microsoft Azure IoT Operations overview
Editorial scope and limitation
This page provides vendor-neutral architecture, data-contract and test guidance. It does not authorize access to a production system, replace a process hazard analysis, certify a product, prove an installed network or prescribe one topology for every site. The PLC Programming IO Editorial Team reviewed the page against the cited primary sources and records corrections through the site's editorial process. Validate the selected products, versions, certificates, routes, timing, capacity, recovery and safe operating behavior in an isolated lab and representative approved environment before deployment.
PLC Programming IO Editorial Team
Industrial automation education, references, and software testing
The PLC Programming IO Editorial Team publishes sourced industrial-automation education and documents how material is reviewed, tested, and corrected. A team byline means the publisher is responsible for the page; it does not represent a fictional person or imply an engineering licence.
Coverage:
- • PLC programming concepts and examples
- • Vendor software tutorials and comparisons
- • SCADA, HMI, protocols, and instrumentation
- • Training, careers, and reference material
Review standard:
- • Prefer primary and official sources
- • Record software versions when material
- • Separate tested facts from estimates
- • Publish material corrections
Important scope note
This site provides education, not project-specific engineering approval. Safety, code, and compliance decisions require a qualified person with access to the actual machine and jurisdiction.