Publisher
A Publisher is a device or application that produces data and sends it to the MQTT Broker through a specific Topic.
- PLC
- RTU
- IoT sensor
- Gateway
- SCADA system
- Industrial application
MQTT is a messaging-based communication protocol that enables information produced by a device or application to be delivered to other devices and applications.
A key feature of MQTT is that communicating devices do not have to connect directly to each other. Messages are transported through a central MQTT Broker.
A device can publish data to a specific subject, known as a Topic. Other devices or applications that need the data can receive it by subscribing to the same Topic.
This architecture allows data-producing devices and data-consuming applications to be developed independently. For this reason, MQTT is widely used in IoT, IIoT, SCADA, data acquisition, machine communication, and distributed systems.
MQTT communication is based on three main components: Publisher, Subscriber, and Broker.
A Publisher is a device or application that produces data and sends it to the MQTT Broker through a specific Topic.
The Broker is the central messaging component of an MQTT system. It receives messages from Publishers and forwards them to Subscribers that are subscribed to the relevant Topics.
A Subscriber is an MQTT Client that subscribes to a Topic or Topic filters of interest and receives messages published to those Topics.
In the EOS SCADA MQTT client, the data address is created using the MQTT topic name. The address starts with the M# prefix followed by the MQTT topic.
For example:
The MQTT topic must have a hierarchical structure. Topic levels are separated by the / character.
A direct relationship can be established between the data address in EOS SCADA and the topic on the MQTT broker.
One of the most important differences between MQTT and traditional device-to-device communication methods is that MQTT uses the Publish / Subscribe model.
A Publisher does not send data directly to a specific device. Instead, it publishes the message to a Topic. The Broker then forwards the message to all Subscribers that are subscribed to that Topic.
For example, a wind turbine can publish its current power output through the
plant/turbine01/power
Topic. SCADA, database, and analytics applications can subscribe to the same Topic and use
the data independently.
Publisher:
Wind Turbine
Topic:
plant/turbine01/power
Payload:
2450
Subscriber:
SCADA, Data Logger, Dashboard, or analytics application
In MQTT, the term Topic is used to identify the information channel to which data belongs. A Topic can be considered similar to a data address in traditional industrial protocols; however, in MQTT it primarily acts as a logical channel through which messages are routed.
Topics are generally created using a hierarchical structure. The / character is
used as the level separator.
plant01/turbine01/power
plant01/turbine01/wind_speed
plant01/turbine01/temperature
plant01/turbine01/status
Subscribers can subscribe not only to a single Topic, but also to a group of Topics by using
Topic filters. MQTT provides wildcard characters such as
+ and # for this purpose.
MQTT defines three different Quality of Service (QoS) levels so that the message delivery method can be selected according to the application's requirements.
The message is sent with the lowest possible communication overhead. The message may not reach the destination. This level can be suitable for continuously updated real-time measurements.
Delivery of the message to the receiving side is ensured; however, the same message may be received more than once in some situations. The application must be able to handle duplicate messages.
This is the highest QoS level, designed to ensure that a message is delivered exactly once. It generates more communication overhead compared to the other levels.
In MQTT, the Broker can be configured to store the last message published for a Topic. This feature is called a Retained Message.
This allows a new Subscriber to receive the latest state of a Topic immediately after subscribing, without having to wait for the Publisher to send the data again.
This feature is particularly useful for sharing device status, operating mode, latest measurement value, or similar state information. The MQTT standard defines the delivery of retained messages to clients that newly subscribe to a Topic.
Although MQTT was originally developed to address messaging requirements in low-bandwidth and remote systems, it is now also used in manufacturing, energy, automation, and Industrial IoT applications.
In industrial systems, information collected from field devices, PLCs, RTUs, gateways, or SCADA systems can be transferred to a centralized MQTT infrastructure.
Distribution of process data collected by SCADA to different applications through MQTT.
Scalable data communication between field devices and centralized or cloud applications.
Transferring data collected from sensors, PLCs, RTUs, and other devices to centralized data acquisition systems.
Transferring industrial data to analytics, reporting, dashboard, and artificial intelligence applications.
Communication between multiple facilities, machines, or applications through a common messaging infrastructure.
MQTT can be used not only to collect data from devices, but also to send messages from applications to devices.
When MQTT and SCADA systems are used together, data collected by SCADA can be easily transferred to different software systems.
For example, a SCADA system can send field data received from Modbus, OPC UA, IEC 60870, or another protocol to a Broker as an MQTT Publisher. Data Logger, Dashboard, reporting, analysis, or artificial intelligence applications that use the same data can operate as MQTT Subscribers.
PLC / RTU / Sensor
↓
SCADA / Gateway
↓
MQTT Broker
↓
SCADA • Data Logger • Dashboard • Database • AI
In this architecture, MQTT acts as a messaging layer that reduces the direct dependency between applications.
MQTT itself does not mandate how message content should be structured or which Topic naming standard industrial devices must use. This can create a need for additional standardization to achieve interoperability between systems from different manufacturers.
Sparkplug is an open specification designed to enable MQTT infrastructure to be used in a more standardized and interoperable manner, particularly in industrial automation and IIoT applications.
Sparkplug provides definitions for an industrial Topic Namespace, Payload, and State Management on top of MQTT. Developed by the Eclipse Foundation, Sparkplug is specifically designed for SCADA and real-time industrial systems. :contentReference[oaicite:5]{index=5}
When MQTT is used in industrial systems, it is important not only for communication to function, but also for the communication to be secure.
MQTT connections can be encrypted using TLS, helping protect data transmitted over the network.
Clients connecting to the Broker can be authenticated, and user access can be controlled.
It is possible to restrict which Topics Clients can publish data to or which Topics they can read data from.
The security of an MQTT infrastructure, especially in production facilities and critical infrastructure, should be designed by considering network architecture, Broker configuration, authentication, access permissions, and certificate management together. The ability to use MQTT with TLS and modern authentication methods is part of the security approach supported by the standard ecosystem. :contentReference[oaicite:6]{index=6}
MQTT has several versions. Today, the most commonly encountered versions are MQTT 3.1.1 and MQTT 5.0. MQTT 5.0 was published as a standard by OASIS on March 7, 2019. :contentReference[oaicite:7]{index=7}
Its small message headers and simple protocol structure result in low communication overhead.
The ability of Publishers and Subscribers to operate independently makes it easier to build distributed systems.
Its architecture is suitable for connecting a large number of devices and applications to the same Broker infrastructure.
It is designed with low-bandwidth and unreliable networks in mind.
It makes it easier to distribute the same data to multiple applications or systems.
MQTT Client and Broker solutions are available for different operating systems, programming languages, devices, and applications.
This section will provide tools for testing MQTT communication, monitoring Topics, publishing messages, subscribing to messages, and developing MQTT communication for industrial applications.
MQTT Client, MQTT Publisher, MQTT Subscriber, MQTT Broker testing tools, and utility software for industrial communication applications will be provided here.
MQTT is a lightweight and flexible communication protocol that enables devices and applications to exchange messages through a Broker rather than establishing direct connections with each other.
The Publisher publishes data to a Topic, while the Subscriber subscribes to the Topics it needs. The Broker handles message distribution between these two sides.
This architecture makes MQTT particularly useful for IoT, Industrial IoT, SCADA, data collection, remote devices, energy systems, machine communication, and distributed industrial applications.
Complementary specifications such as Sparkplug can also be used to enable MQTT to provide more standardized data and state management in industrial applications. :contentReference[oaicite:8]{index=8}