MQTT
Designed to be light weight, open, and simple, MQTT is a subscriber/publisher messaging transport protocol that is considered a great solution for applications where a small code footprint is required and/or network bandwidth is scarce. It is particularly suitable for continuous monitoring of sensory data such as temperature, pressure, water level, energy monitoring, etc.
Learn more about MQTT
Overview
MQTT stands for Message Queuing Telemetry Transport. It is an extremely simple and lightweight publish/subscribe messaging protocol, designed for constrained devices and low-bandwidth, high-latency, or unreliable networks. The design principles are to minimize network bandwidth and device resource requirements while also attempting to ensure reliability and some degree of assurance of delivery. These principles make the protocol ideal for the emerging “machine-to-machine” (M2M) or “Industrial Internet of Things” (IIoT) world of connected devices and for remote applications where network connectivity and bandwidth are at a premium. It was first developed by IBM in 1999 and is now an open standard that has become widely implemented across a variety of industries.
Features & Benefits of the MQTT
The MQTT protocol allows your system to access IIoT data. MQTT brings many powerful benefits to your process:
- Distribute information more efficiently
- Increase scalability
- Reduce network bandwidth consumption dramatically
- Reduce update rates to seconds
- Very well-suited for remote sensing and control
- Maximize available bandwidth
- Extremely lightweight overhead
- Very secure with permission-based security
- Used by the oil-and-gas industry, Amazon, Facebook, and other major businesses
- Saves development time
- Publish/subscribe protocol collects more data with less bandwidth compared to polling protocols
How MQTT Works
To fully realize benefits of the IIoT, data transmitted by the HMI or “edge gateway” must be presented to upstream IT applications in a way that is flexible, modular, and efficient. The MQTT feature available on all Maple Systems HMI products exemplifies the power of this protocol. MQTT is organized into topics which can contain single data points or a group of related data. Topic names are assigned to the variables or tags they wish to publish to the broker. Topics are the titles, or addresses, used to organize data in MQTT protocol. The HMI can be configured to transmit data from a specific topic whenever a change occurs, or on a periodic basis, lowering the bandwidth required for connection.
MQTT allows topics to be broken down in intuitive ways. A single data point can be assigned to multiple topics and one topic can contain more than one data point. An application can subscribe to all topics on a single HMI, creating an application monitoring one specific machine. Or, if a parameter, say temperature, exists on many machines, the programmer can use a topic “wild card” enabling them to instantly subscribe to the same parameter across all machines. This enables efficient and easy detection of abnormal conditions across an entire installed base of machines.
The publish-subscribe messaging pattern requires a message broker. The publisher/subscriber model allows MQTT clients to communicate one-to-one, one-to-many and many-to-one. Our Advanced and cMT products support all three functions of the MQTT protocol, enabling them to communicate with a wide array of PLCs, sensors, and more, regardless of the machine’s protocol.
With support for over 300+ PLC and controller protocols, Maple HMIs convert that data into the universally accepted MQTT protocol, then send it to a broker (hosted locally or in the cloud) for use by IIoT applications. This makes Maple Systems HMIs the perfect edge gateway to the IIoT.
Implementing MQTT
For the controls engineer looking to incorporate an edge gateway into their system, the HMI configuration process in EBPro could not be easier: simply create an authenticated broker connection, then select the tags you wish to publish.
Point and click to organize tags into topics for your specific application, download the project to the HMI, and you’re up and running.
- cMT/HMI MQTT User Manual
Download and follow our cMT/HMI MQTT User Manual to get started. Read how to step up MQTT, create topics, choose a broker, and subscribe to topics. Additional features covered are AWS IoT and Sparkplug B. - MQTT Set-Up Tech Note and Sample Project
Along with a MQTT Set-Up Sample project, Tech Note 5111, MQTT Set-up walks through the steps necessary to configure an HMI as an edge gateway for an MQTT network and demonstrates how to use the HMI as an Edge Gateway.
Publisher / Broker / Subscriber Roles
A fundamental advantage of MQTT is that data is sent to a central “broker” instead of being directly transmitted to multiple clients such as remote interfaces or management software. The MQTT broker is responsible for maintaining client connections and sending/receiving messages. Client devices, edge gateways, and IT applications (or publishers/subscribers in MQTT language), are freed up to focus on producing and consuming data. This division of labor greatly enhances scalability. As overall system sizes grow, the CPU resources and bandwidth requirements of the edge gateway remain static.
Publisher– A Publisher is a sensor, PLCs, HMI, or anything creating data. Sometimes called a “Server” or “Edge Device”. The publisher sends a message to a central topic (broker) which has multiple subscribers waiting to receive the message.
Broker– An MQTT broker is a server that receives all messages from the clients and then routes the messages to the appropriate destination subscribers/client
Subscriber/Client– The end user of the data. This can range from a high-end ERP management program that tracks information for control and data analytics, to a website that simply displays real-time operational facility data, and anything in between. The subscriber/client specifies one or more topics on the MQTT broker that they
Important Points to Note:
- Clients do not have addresses like in email systems, and messages are not sent to clients.
- Messages are published to a broker on a topic.
- The job of an MQTT broker is to filter messages based on topic, and then distribute them to subscribers.
- A client can receive these messages by subscribing to that topic on the same broker
- There is no direct connection between a publisher and subscriber.
- All clients can publish (broadcast) and subscribe (receive).
- MQTT brokers do not normally store messages.
Sparkplug B & Ignition
What is Ignition (Gateway)?
Ignition is a SCADA platform developed by Inductive Automation. It includes data historian, visualization and reporting, SQL database integration, OPC UA, and MQTT with Sparkplug B as some of its main features. Select Maple Systems devices are interoperable with Ignition via the Sparkplug B MQTT mode available in our EBPro programming software.
In order to pair your supported Maple Systems device with the Ignition Platform, you must have the following Cirrus Link MQTT Modules installed in the Ignition Gateway:
- Cirrus Link MQTT Distributor Module
- Cirrus Link MQTT Engine Module
- Cirrus Link MQTT Transmission Module
What is Sparkplug B?
Sparkplug B is a specification for MQTT enabled devices and applications to send and receive messages in a stateful way. While MQTT is stateful by nature it doesn’t ensure that all data on a receiving MQTT application is current or valid. Sparkplug B provides a mechanism for ensuring that remote device or application data is current and valid.
Sparkplug B includes support for features such as:
- Complex data types using templates
- Datasets
- Rich metrics with the ability to add property metadata for each metric
- Metric alias support to maintain rich metric naming while keeping bandwidth usage to a minimum
- Historical data
- File data
Getting Started with Ignition and MQTT
Sparkplug B MQTT Sample Project
Demonstrates how to connect a supported Maple HMI to Ignition Gateway to publish Sparkplug B MQTT payloads. Requires Cirrus Link MQTT Modules to be installed in Ignition. This sample project includes a variety of Sparkplug B tag types, including strings and integers, which are automatically discovered upon connection to Ignition. Also includes functions to start and stop MQTT connections as well as to connect to another gateway using an IP address.
Sparkplug B MQTT Quick-Start Guide
This Guide will assist in the:
- Installation and configuration of Inductive Automation Ignition as an MQTT Broker
- Configuration of supported Maple Systems devices to send Sparkplug B payloads to Ignition via MQTT
- Installation and configuration of MQTT.fx as an MQTT Client