Key takeaways
Short answer: OPC UA is a structured, semantically-rich industrial interoperability standard — it models data with meaning, so a temperature is a typed, described value, not just a number. MQTT is a lightweight publish-subscribe transport that moves messages efficiently to many subscribers. OPC UA gives semantics; MQTT gives efficient delivery — and they are increasingly used together, not chosen between. See also scada vs historian.
OPC UA is a full industrial interoperability standard. It does not just move data — it models it, with structure, data types and descriptions, plus built-in security and authentication. A value arrives self-describing: this is a temperature, in these units, from this device, with this context.
MQTT is a lightweight publish-subscribe transport. It excels at moving many small messages efficiently to many subscribers, even over constrained or unreliable networks, by decoupling publishers from subscribers through a broker.
A plant needs deep, structured access to a PLC's tags — types, units, alarm states — so it uses OPC UA to talk to the controller, getting self-describing data it can interpret without a separate dictionary. It then needs to fan that data out to a dozen consumers (OEE, historian, dashboards, cloud analytics) over a patchy network, so it publishes the OPC UA payloads over MQTT. OPC UA answered "what does this data mean?"; MQTT answered "how do I move it to everyone efficiently?" Neither replaced the other.
OPC UA answers what the data means; MQTT answers how to move it efficiently to many consumers. OPC UA over MQTT combines rich semantics with scalable transport — a common pattern in modern architectures precisely because the two solve different halves of the problem.
1. Treating them as competitors. They solve different problems and combine well.
2. MQTT with no payload structure. Efficient transport of meaningless numbers still needs a model.
3. OPC UA where lightweight fan-out is needed. Sometimes you just need scalable delivery.
4. Ignoring security. OPC UA has it built in; raw MQTT needs it added deliberately.
Whichever you use, the point is getting reliable, well-structured machine data into your OEE system. OPC UA gives the structure that makes signals interpretable; MQTT helps that data scale to many consumers including the OEE platform.
Fabrico connects via standard industrial protocols including OPC UA and MQTT, so it consumes structured machine data however your architecture delivers it. Book a demo to see your machine data flowing into OEE.
No — they solve different problems and are often combined, OPC UA payloads over MQTT.
Structure, semantics and built-in security — data that describes itself.
For many subscribers or constrained, unreliable networks.
Either — the goal is reliable, structured machine data, however it is transported.
Not by default — security must be added, whereas OPC UA includes it.