Industrial Protocol Comparison: Modbus vs OPC UA vs MQTT vs S7
Industrial automation runs on protocols. The four you will encounter most often are Modbus, OPC UA, MQTT, and S7 (Siemens). Each was designed for a different problem. Choosing the wrong one means either over-engineering a simple read task or under-specifying a critical data pipeline. Here is how they compare.
The Four Protocols at a Glance
Modbus (1979)
Originally designed by Modicon (now Schneider Electric) for PLC-to-PLC communication over serial links. Modbus TCP extended it to Ethernet in the late 1990s. It is the simplest industrial protocol still in use — a master/slave (or client/server) model where the master reads and writes registers and coils at numeric addresses. No data model, no security, no discovery. Just raw register access.
OPC UA (2006)
The OPC Foundation built OPC UA as a platform-independent successor to COM-based OPC DA. It provides a rich information model, built-in security (encryption, authentication, authorization), and discovery. OPC UA is the "enterprise-grade" industrial protocol — designed for SCADA-to-MES-to-ERP integration, not just device polling.
MQTT (1999)
Originally created by IBM for oil pipeline monitoring via satellite links, MQTT is a publish/subscribe messaging protocol optimized for low-bandwidth, high-latency networks. It does not define a data model for industrial equipment — you bring your own payload format. MQTT's strength is decoupling: publishers and subscribers do not need to know about each other.
S7 / Siemens S7 Communication (1995)
Siemens' proprietary protocol for S7-300, S7-400, S7-1200, and S7-1500 PLCs. S7 Communication (also called S7comm) provides direct access to PLC memory areas — data blocks (DB), inputs (I), outputs (Q), markers (M), timers (T), and counters (C). See our S7 Communication Protocol Guide for a deep dive into memory areas and addressing. It is the protocol you use when your plant runs on Siemens hardware and you need to read/write PLC data without going through TIA Portal.
Head-to-Head Comparison
When to Use Each Protocol
Use Modbus When
- You need to poll simple devices. Energy meters, VFDs, temperature sensors, I/O modules — if it exposes registers and you need to read them every second, Modbus is the fastest path.
- The network is local and trusted. Modbus has no security. Use it on isolated LANs or behind VPNs. Never expose a Modbus TCP device directly to the internet.
- You are integrating legacy equipment. Most industrial devices manufactured before 2010 speak Modbus. If you need data from an old PLC or meter, Modbus is likely your only option.
- You need deterministic response times. Modbus requests and responses are small and predictable. No handshakes, no sessions, no certificate negotiation. Send a request, get a response.
Use OPC UA When
- You need structured data, not just registers. OPC UA's information model lets you expose equipment as objects with properties, methods, and events. "Pump-01.Temperature" is more maintainable than "Register 40001".
- Security is a requirement. OPC UA supports X.509 certificates, role-based access control, encrypted communication, and audit logging. If your plant has a security policy, OPC UA is the protocol that satisfies it.
- You are connecting SCADA to MES or ERP. OPC UA is designed for vertical integration — from field devices up to business systems. Its companion specifications (ISA-95, PLCopen, MTConnect) map industrial data to standard models.
- You need cross-vendor interoperability. OPC UA is vendor-neutral by design. An OPC UA client from any vendor can connect to any OPC UA server.
Use MQTT When
- You are sending data to the cloud or across sites. MQTT's publish/subscribe model decouples producers from consumers. A PLC publishes data to a topic; a cloud dashboard subscribes to that topic. No direct connection needed.
- Network bandwidth is limited. MQTT headers are 2 bytes. Messages can be as small as a few bytes of payload. On cellular or satellite links, MQTT uses a fraction of the bandwidth that OPC UA requires.
- You need to scale to thousands of devices. MQTT brokers handle millions of concurrent connections. A single MQTT infrastructure can serve a fleet of 10,000 sensors across 50 sites.
- You want store-and-forward reliability. MQTT's QoS levels and persistent sessions ensure messages are delivered even when the connection is intermittent.
Use S7 When
- Your plant runs Siemens PLCs. S7 is the native protocol for S7-300, S7-400, S7-1200, and S7-1500 controllers. If you need direct access to PLC memory — data blocks, inputs, outputs, markers — S7 is the fastest way to get it.
- You need to read/write specific DB values. S7 lets you address individual data blocks by number and offset. Read DB1.DBX0.0 (a boolean), write DB1.DBD4 (a 32-bit float). No register mapping required.
- You are building a diagnostic or monitoring tool. If you need to check PLC status, read cycle times, or monitor specific memory areas without modifying the PLC program, S7 gives you direct access.
- TIA Portal is overkill for your task. Reading a few registers from an S7-1200 should not require launching TIA Portal, setting up a project, and configuring a connection. S7 protocol tools connect directly.
Can They Coexist?
Yes — and most industrial sites use multiple protocols simultaneously. A typical architecture:
- Field level: Modbus RTU over RS-485 connects sensors and meters to a gateway. S7 connects Siemens PLCs.
- Cell/area level: A SCADA system speaks Modbus TCP, S7, and OPC UA to collect data from different equipment vendors.
- Site level: OPC UA aggregates data from SCADA systems into a unified namespace for MES and historians.
- Cloud level: MQTT transports selected data points to cloud dashboards, analytics platforms, or remote monitoring services.
This layered approach uses each protocol where it is strongest. The key is having a SCADA platform that speaks all of them. For more on how these layers fit together, see our guide to SCADA architecture.
Frequently Asked Questions
Which industrial protocol should I use: Modbus, OPC UA, MQTT, or S7?
Use Modbus for simple device polling on trusted local networks (energy meters, VFDs, sensors). Use OPC UA for plant-wide integration requiring structured data and built-in security (SCADA-to-MES-to-ERP). Use MQTT for cloud connectivity, multi-site data collection, and bandwidth-constrained networks. Use S7 when your plant runs Siemens PLCs and you need direct access to data blocks and memory areas.
Is MQTT better than Modbus for industrial automation?
They serve different purposes and are not direct replacements. Modbus is a request/response protocol for polling device registers on local networks. MQTT is a publish/subscribe messaging protocol optimized for cloud and multi-site data transport. Most real plants use both: Modbus at the field level for device communication and MQTT at the cloud level for data aggregation.
Can Modbus, OPC UA, MQTT, and S7 be used together?
Yes. Most industrial sites use multiple protocols simultaneously. A typical architecture uses Modbus RTU over RS-485 for field sensors, S7 for Siemens PLCs, a SCADA system that speaks multiple protocols to collect data, OPC UA for plant-wide aggregation to MES and historians, and MQTT for transporting data to cloud dashboards or remote monitoring. The key is using a SCADA platform that supports all of them.
What is the most secure industrial protocol?
OPC UA has the strongest built-in security: X.509 certificates, role-based access control, encrypted communication, and audit logging. MQTT with TLS provides transport encryption and username/password authentication. Modbus has no built-in security at all and should only be used on isolated or VPN-protected networks. S7comm has no native security, though S7-1500 PLCs have configuration options for PUT/GET access control.
What protocol does Siemens S7 use?
Siemens S7 PLCs use the S7 Communication protocol (S7comm), a proprietary application-layer protocol that runs over TCP/IP on port 102. It provides direct access to PLC memory areas including data blocks (DB), inputs (I), outputs (Q), markers (M), timers (T), and counters (C). Unlike Modbus which uses register addresses, S7 addresses data by memory area and byte offset.
SCADA That Speaks All Four
Voltrus supports Modbus TCP/RTU, OPC UA, MQTT, Siemens S7, BACnet, DNP3, and more — in one application. Connect to any device, build dashboards, set alarms. Lifetime license from $249.
Get Voltrus SCADAProtocol-Specific Tools
Need standalone tools for individual protocols? Modbus Poll for Modbus devices, S7 Explorer for Siemens PLCs, MQTT Client for MQTT brokers — all native macOS apps from $9.99.
Further Reading
- Modbus TCP vs OPC UA: Which Protocol to Choose
- Modbus RTU vs TCP: Which Variant to Use
- S7 Communication Protocol Guide: Memory Areas, Addressing, Data Types
- MQTT QoS Levels Explained: When to Use QoS 0, 1, or 2
- Modbus Register Types Explained: Coils, Discrete Inputs, Holding Registers, Input Registers