OPC-UA, Modbus, or MQTT: Picking a Plant Protocol
A working engineer's comparison of the three protocols that run plant networks, scored on the criteria that actually decide a deployment.
Walk into any processing plant and you'll find at least three generations of communication living side by side. A serial cable still carries register reads from a flow meter built in the 1990s. A newer line runs an Ethernet protocol that carries not just values but the meaning of those values. And somewhere a gateway pushes a thin stream of tags up to a historian or a cloud broker. Three protocols dominate that picture today: Modbus, OPC-UA, and MQTT. They get compared as if they were rivals for the same job. They aren't. Each was designed for a different problem, and choosing well starts with seeing what problem you actually have.
This is a working engineer's comparison, not a protocol beauty contest. We'll line them up against the criteria that decide a plant network: data semantics, latency, delivery guarantees, security, footprint and cost, and how each behaves over a real network. The goal is a defensible answer to one question. Which one belongs on which link in your plant?
Three protocols, three design intents
Modbus is the oldest and the simplest. Modicon published it in 1979 to talk to programmable controllers, and the rights now sit with the Modbus Organization. The current definition, the Modbus Application Protocol Specification V1.1b3, dates to April 2012 and still describes the same small idea: a master sends a request, a slave answers (Modbus Organization, 2012). The data model is four tables of primitives, coils and discrete inputs for bits, input registers and holding registers for 16-bit words. That's the whole vocabulary. A register is just a number at an address; the protocol carries no hint of whether it's degrees Celsius, a pump state, or an alarm bitmask.
OPC-UA answers a different need. By the mid-2000s, plants had OPC Classic everywhere, but it was bound to Windows COM/DCOM and hard to route across networks. The OPC Foundation released OPC Unified Architecture in 2008 and it was later standardized as the IEC 62541 series (OPC Foundation). UA is a service-oriented, platform-independent architecture built around an information model. A node carries more than a value: its data type, engineering unit, status, timestamp, and typed relationships to other nodes. The protocol transports structure and meaning, not only numbers.
MQTT comes from telemetry, not control. It's a lightweight publish/subscribe transport, designed, in its own words, for "constrained environments" where "a small code footprint is required and/or network bandwidth is at a premium" (OASIS, MQTT v3.1.1, 2014). Clients don't poll each other. A publisher sends a message to a topic on a broker, and every client subscribed to that topic receives it. MQTT became an OASIS Standard on 29 October 2014 and was adopted as an international standard, ISO/IEC 20922, in 2016 (ISO/IEC 20922:2016). It says nothing about what a payload means; that's left to you.
So the design intents barely overlap. Modbus moves registers between a controller and its field devices. OPC-UA moves modeled information between systems that need to understand each other. MQTT moves messages from many producers to many consumers over a fragile or expensive link. Keep that framing and most of the comparison answers itself.
How they line up
Here's the shape of the trade-off before we get into the criteria one at a time.
| Criterion | Modbus | OPC-UA | MQTT |
|---|---|---|---|
| Interaction model | Master/slave poll-response | Client/server services, browse and subscribe | Broker-based publish/subscribe |
| Data semantics | Raw registers, no metadata | Rich typed information model | Opaque payload, app-defined |
| Delivery guarantee | Request/response per transaction | Acknowledged services, subscriptions | Three QoS levels |
| Built-in security | None in the base protocol | Certificates, signing, encryption | Relies on TLS and broker auth |
| Footprint | Very small | Heavier stack | Small client, broker needed |
| Best fit | Field and device level | Cell to plant integration | Telemetry to historian or cloud |
Data model: numbers versus meaning
This is the deepest difference, and the one that bites integrators years after commissioning. A Modbus holding register tells you nothing about itself. The map between address 40021 and "reactor outlet temperature, °C, scaled by 10" lives in a spreadsheet, a PLC comment, or someone's head. Lose that document and the data is just integers. Multiply that across a few hundred devices from a dozen vendors and you have the classic plant-integration tax: every new connection is a fresh decoding exercise.
OPC-UA was built to end that. Its address space is a graph of nodes, each self-describing, with data type, unit, quality, and timestamp attached, plus references that express how things relate (this motor is part of that conveyor). A client can browse a server it has never seen and discover what's there. Companion specifications layer standard models on top for specific equipment classes, so a device can present itself in a way other systems already understand. That's a real reduction in glue code, and it's why UA tends to win above the controller, where systems from different vendors have to agree on what data means.
MQTT sits at the other extreme on purpose. The protocol treats the payload as opaque bytes and a topic string. That's a feature for telemetry: the broker doesn't care whether you send JSON, a binary blob, or a single float, so the transport stays tiny and fast. But it pushes the entire semantic burden onto your topic design and payload convention. Two teams publishing to the same broker without an agreed structure produce a swamp, not a data source. The flexibility is genuine, and so is the discipline it demands.
Latency and real-time behavior
What does "fast" mean for a protocol? Not the same thing for a safety interlock and a daily KPI. Modbus is deterministic in the narrow sense that a poll cycle is predictable: the master asks, the slave answers, and you can budget the round trip. But it's polled. To know a value changed, you read it again, so your effective latency is set by your scan rate and the number of devices on the link. On a busy serial segment that adds up. Modbus over TCP relaxes the bandwidth ceiling but keeps the poll-response habit.
OPC-UA breaks the polling tax with subscriptions. A client subscribes to the nodes it cares about and the server reports changes on a configured interval, so quiet signals cost almost nothing and active ones are pushed promptly. The cost is a heavier session and connection setup, and the secure channel handshake adds latency at connect time, not steady-state. For cell-level coordination that's a good trade. For a hard real-time motion loop, neither UA nor the others is the right tool; that stays on a fieldbus built for it.
MQTT is event-driven by nature. A change is published once and fanned out to subscribers, which is efficient when many consumers want the same signal. Its latency floor depends on the broker and the link, and the protocol explicitly targets links where bandwidth is scarce, so it shines over cellular or satellite where a chatty poll would be wasteful (OASIS, 2014). It is not a control protocol. Use it to move data about the process, not to close a loop on it.
Reliability and delivery guarantees
Each protocol handles "did the message arrive?" differently. Modbus answers transaction by transaction: the master gets a response or it doesn't, and a timeout is your signal to retry. There's no concept of a queued message waiting for a device that dropped off. If the slave was unreachable when you polled, you simply read stale or nothing until the next cycle.
MQTT is the most explicit here. It defines three quality-of-service levels: QoS 0 delivers at most once (fire and forget), QoS 1 at least once (assured arrival, possible duplicates), and QoS 2 exactly once (assured single delivery), as the specification spells out (OASIS, 2014). Two more features matter for plant telemetry. Retained messages let a topic hold its last value so a newly connected client gets current state immediately. And the Last Will message lets the broker announce that a client dropped off ungracefully, which is exactly how you detect a dead gateway. For unreliable links, that toolkit is hard to beat.
OPC-UA handles reliability through acknowledged services and durable subscriptions. A subscription buffers data changes and can resend missed notifications after a brief network interruption, so a client recovers without losing the gap. It's less of a store-and-forward design than MQTT and more of a session that tries hard to stay coherent. Which you want depends on whether your weak point is the link (favor MQTT's QoS and queuing) or semantic continuity between systems (favor UA's subscriptions).
Security: the criterion that has aged the worst
Here the protocols diverge sharply, and it's where old plant networks carry the most risk. Modbus has no security in the base protocol. No authentication, no authorization, no encryption. Anyone who can reach a device on the network can read its registers and, with write function codes, change them. That was a reasonable omission for an isolated 1979 serial bus. It is a serious exposure now that the same protocol rides Ethernet and, registered on TCP port 502, sits one misconfiguration away from a routable network. NIST's industrial control systems security guide is blunt that many control protocols were designed without authentication or encryption and must be protected by the architecture around them (NIST SP 800-82 Rev. 2, 2015).
OPC-UA was designed in the opposite direction. Security is built into the protocol: applications exchange X.509 certificates to authenticate each other, and a secure channel can sign messages for integrity and encrypt them for confidentiality, with a message security mode of None reserved for testing (OPC Foundation). That doesn't make a UA deployment secure by default, because certificate management is real work and a sloppy trust list undoes it. But the mechanisms are in the standard, not bolted on.
MQTT sits in the middle. The base protocol leaves transport security to the layer below, running over TLS for encryption and authentication, with the broker enforcing client identity and topic permissions (OASIS, 2014). An MQTT system can be locked down well, but only if you configure it; an open broker on a public address is one of the easier mistakes to make. Whichever protocol you pick, the governing assumption should come from a framework, not the wire format. The ISA/IEC 62443 series, developed out of the ISA99 committee, frames this as segmenting the plant into zones and controlling the conduits between them, so a weak protocol is contained rather than trusted (ISA, ISA/IEC 62443). Protocol choice doesn't replace that work. It feeds it.
Footprint, cost, and maintenance
Engineering budgets are finite, so weight matters. Modbus is featherweight. The application protocol caps a request at a 253-byte PDU, which fits inside the 256-byte serial frame, and a conforming stack runs on the smallest microcontroller (Modbus Organization, 2012). Implementations are everywhere, libraries are free, and almost every field device already speaks it. The cost isn't in the protocol; it's in the integration tax of the missing metadata we covered earlier, and in the security work you must add around it.
OPC-UA carries more weight. A full stack with the address space, services, and security is a heavier piece of software, and it asks more of the device and the engineer. Certificate handling, namespace design, and information modeling are skills, not checkboxes. The payoff lands later: less custom glue between systems, self-describing data, and one integration pattern instead of many. In our work the UA cost is mostly front-loaded into commissioning, then it pays back across the life of the line.
MQTT splits the cost. The client is tiny, which is why it suits a sensor or a constrained gateway. But the architecture needs a broker, and that broker is now infrastructure you run, scale, secure, and monitor. The protocol is cheap; the platform around it is the real line item. Topic hygiene is the maintenance burden that creeps up on teams: without a naming standard, a year of organic growth leaves you with thousands of topics nobody can fully map.
Over the wire: how each behaves on a real network
The network layer shapes day-to-day reliability. Modbus is a point-to-point conversation; the TCP variant rides ordinary Ethernet on port 502 but keeps its master-driven rhythm. It does not traverse a firewall or a NAT boundary gracefully, and it has no story for many consumers of the same value beyond more polling.
OPC-UA's binary transport, opc.tcp, is built for performance and is far friendlier to routing than the DCOM it replaced, though firewall and certificate setup still take planning. MQTT is the most network-tolerant of the three. Because clients open outbound connections to a broker, they cross NAT and firewall boundaries with one open port, and the pub/sub fan-out means one published value reaches a historian, a dashboard, and an analytics job without three separate reads. That property, more than anything, is why MQTT became the default for getting plant data off-site, including to an edge telemetry and analytics platform rather than wiring each consumer to each source.
Which fits your plant
Stop looking for a winner and map each protocol to its layer. At the field and device level, Modbus is fine and often unavoidable; it's simple, universal, and well understood. Keep it, but treat it as untrusted plumbing: segment it, never expose it, and put a gateway in front of anything that touches a wider network.
For integration between systems that must understand each other, controllers to MES, equipment to historian, multiple vendors on one plant, OPC-UA earns its weight. The information model and built-in security are worth the steeper learning curve precisely where ambiguity and exposure cost the most. If your pain is "every integration is a custom decoding job," UA is the answer.
For telemetry, especially over weak, metered, or remote links, and for getting data to a historian, dashboard, or cloud analytics, MQTT is the natural choice. Its delivery guarantees and pub/sub fan-out solve the exact problems that polling can't. If your pain is "I need many consumers of the same signal over a flaky connection," MQTT wins.
The strongest plant networks we see don't pick one. They run Modbus at the edge, normalize and model that data into OPC-UA for integration, and publish the streams that need to travel over MQTT. Every protocol here has limits, and the failure mode is always the same: forcing one to do another's job. The protocols stop competing the moment you give each the work it was built for. Pick by the link, not by the logo.
References
- Modbus Application Protocol Specification V1.1b3 — Modbus Organization, 2012
- OPC Unified Architecture — OPC Foundation (IEC 62541)
- MQTT Version 3.1.1 — OASIS Standard, 29 October 2014
- ISO/IEC 20922:2016 Information technology — MQTT v3.1.1
- Guide to Industrial Control Systems (ICS) Security, SP 800-82 Rev. 2 — NIST, May 2015
- ISA/IEC 62443 series (ISA99 committee) — International Society of Automation
Reuse & license
This article is published by Zoniax Innovations LLC under a Creative Commons Attribution 4.0 International (CC BY 4.0) license. You are free to share and adapt it for any purpose, including commercially, as long as you give appropriate credit to Zoniax and link back to the original article.
Disclaimer
These Field Notes are general technical information, published as-is for industry peers. They are not professional, engineering, safety, legal, or financial advice, and nothing here is a recommendation to buy, sell, or act. Figures are cited from public sources believed reliable but are not independently guaranteed — verify them against the primary sources and your own plant conditions before acting. Zoniax Innovations LLC and the author accept no liability for decisions made from this content. Naming a standard, product, or vendor is not an endorsement.
Cite this article
Nõmm, A. (2017). OPC-UA, Modbus, or MQTT: Picking a Plant Protocol. Zoniax. https://zoniax.com/blog/posts/opc-ua-modbus-mqtt-comparison
Permalink: https://zoniax.com/blog/posts/opc-ua-modbus-mqtt-comparison