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.
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 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 Advanced and cMT 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.
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.
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.
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/clients.
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 subscribe to.
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. Maple Systems cMT devices (cMT HMIs, cMT Servers, and cMT Gateways) are interoperable with Ignition via the Sparkplug B MQTT mode available in our EBPro programming software.
In order to pair your Maple Systems cMT 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
- 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
Demonstrates how to connect a Maple cMT HMI or cMT Server 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.
This Guide will assist in the
- Installation and configuration of Inductive Automation Ignition as an MQTT Broker
- Installation and configuration of MQTT.fx as an MQTT Client
- Configuration of Maple Systems cMT Devices to send Sparkplug B payloads to Ignition via MQTT
Documentation & Resources
- EBPro Programming Manual
- MQTT User Manual
- Sparkplug B MQTT Quick-Start Guide
- MQTT Set-Up
- Secure MQTT Connection between a Maple HMI and Ignition Gateway
- Using Ignition MQTT Engine with Maple Systems HMIs
- MQTT Set-Up Sample Projects
- Sparkplug B MQTT Sample Project
Explore our Smart Series
With display sizes ranging from 7" to 16" inches, our X Series HMIs offer the convenience of a local HMI display with the added benefit of built-in WebView, CODESYS, and cMT Server functionality to communicate with remote devices running the cMT Viewer application.