Protocols

Lightweight Messaging for Industrial IoT

Ignition MQTT Integration: Connect Your Industrial IoT Infrastructure

Ignition MQTT integration enables lightweight, publish-subscribe messaging across your entire industrial IoT infrastructure. Connect edge devices, sensors, and PLCs to a centralized MQTT broker using the Sparkplug B protocol for standardized, efficient data exchange.

Overview

Ignition MQTT integration leverages the lightweight MQTT protocol combined with the Sparkplug B specification to deliver a robust, standardized communication layer for industrial IoT. The MQTT Engine and MQTT Transmission modules from Cirrus Link Solutions provide native, bidirectional connectivity between Ignition and any MQTT-enabled device or broker.

By deploying a Unified Namespace (UNS) architecture with MQTT at its core, you can decouple data producers from consumers, enabling scalable and resilient data distribution across your entire enterprise. Edge nodes running Sparkplug B publish structured data to the broker, while Ignition MQTT Engine automatically discovers and subscribes to all available metrics.

Key Benefits

  • Lightweight publish-subscribe protocol with minimal bandwidth usage
  • Sparkplug B standardized payload format for interoperability
  • Automatic device and tag discovery via birth certificates
  • Store-and-forward buffering for unreliable network connections
  • Unified Namespace (UNS) architecture for enterprise-wide data access

MQTT Integration Architecture

The Ignition MQTT integration architecture follows a hub-and-spoke model with the MQTT broker at the center. Edge nodes publish Sparkplug B messages to the broker, and the MQTT Engine module subscribes to receive all data into the Ignition tag system.

┌─────────────┐     ┌──────────────┐     ┌─────────────────┐
│  Edge Node  │────▶│  MQTT Broker │◀────│  Ignition MQTT  │
│  (Sparkplug)│     │  (Mosquitto) │     │  Engine Module   │
└─────────────┘     └──────┬───────┘     └────────┬────────┘
                           │                       │
┌─────────────┐            │              ┌────────┴────────┐
│  Edge Node  │────────────┘              │  Ignition MQTT  │
│  (Sparkplug)│                           │  Transmission   │
└─────────────┘                           └─────────────────┘

Configuration Steps

1

Install the MQTT Engine Module

Download the MQTT Engine module from Cirrus Link Solutions or the Ignition Exchange. Navigate to the Ignition Gateway configuration page, go to Modules, and upload the .modl file to install it.

# Download from Cirrus Link Solutions or Ignition Exchange
# Gateway > Config > Modules > Install Module
# Upload: MQTT-Engine-signed.modl
# Restart Gateway if prompted
2

Configure the MQTT Broker Connection

Set up the connection between Ignition MQTT Engine and your MQTT broker. Configure the broker URL, port, authentication credentials, and TLS settings for a secure Ignition MQTT integration.

// MQTT Engine > Servers > Settings
{
  "ServerName": "Production-Broker",
  "URL": "tcp://mqtt-broker.local:1883",
  "Username": "ignition_engine",
  "Password": "********",
  "KeepAlive": 30,
  "CleanSession": true,
  "TLS": {
    "Enabled": true,
    "Port": 8883,
    "CACertificate": "/certs/ca.crt",
    "ClientCertificate": "/certs/client.crt"
  }
}
3

Set Up the Sparkplug B Namespace

Configure the Sparkplug B topic namespace to organize your MQTT data hierarchy. Define group IDs, edge node IDs, and device IDs to structure your Unified Namespace for the Ignition MQTT integration.

# Sparkplug B Topic Structure
# Namespace: spBv1.0/{GroupId}/{MessageType}/{EdgeNodeId}/{DeviceId}

# Birth/Death Certificates
spBv1.0/Plant-A/NBIRTH/EdgeNode-01          # Node Birth
spBv1.0/Plant-A/DBIRTH/EdgeNode-01/PLC-001   # Device Birth
spBv1.0/Plant-A/NDEATH/EdgeNode-01           # Node Death

# Data Messages
spBv1.0/Plant-A/NDATA/EdgeNode-01            # Node Data
spBv1.0/Plant-A/DDATA/EdgeNode-01/PLC-001    # Device Data

# Commands
spBv1.0/Plant-A/NCMD/EdgeNode-01             # Node Command
spBv1.0/Plant-A/DCMD/EdgeNode-01/PLC-001     # Device Command
4

Create Tag Providers and Map Tags

Once the MQTT Engine module connects to the broker, Sparkplug B devices are automatically discovered. Tags appear in the Ignition tag browser under the MQTT Engine tag provider, organized by group, edge node, and device.

# Auto-discovered tag paths in Ignition Designer
# [MQTT Engine]
#   └── Plant-A                          (Group)
#       └── EdgeNode-01                  (Edge Node)
#           ├── Node Info/               (Node metrics)
#           │   ├── Online        : true
#           │   └── Last Connected: 2026-03-11T08:30:00
#           └── PLC-001/                 (Device)
#               ├── Temperature   : 72.5  (Float)
#               ├── Pressure      : 14.7  (Float)
#               ├── FlowRate      : 120.3 (Float)
#               └── ValveStatus   : OPEN  (String)

# Reference tags in scripts:
value = system.tag.readBlocking(
    ["[MQTT Engine]Plant-A/EdgeNode-01/PLC-001/Temperature"]
)[0].value

Key Features

Sparkplug B Protocol

The Sparkplug B specification defines a standardized payload format and topic namespace for MQTT in industrial environments. It provides birth/death certificates, metric definitions, and state management for reliable Ignition MQTT integration across all your connected devices.

Auto-Discovery

MQTT Engine automatically discovers edge nodes and devices as they connect to the broker. Sparkplug B birth certificates carry full metric definitions, so tags are created in Ignition without any manual configuration - a key advantage of the Ignition MQTT integration approach.

Store & Forward

When network connectivity is lost between edge nodes and the MQTT broker, data is buffered locally using store-and-forward. Once the connection is restored, all buffered messages are transmitted in order, ensuring no data loss in your Ignition MQTT integration.

Unified Namespace

Build a hierarchical Unified Namespace (UNS) architecture where all operational data is organized in a single, logical topic tree. MQTT enables decoupled, event-driven data distribution from the edge to the enterprise, making your Ignition MQTT integration the backbone of your data strategy.

Use Cases

Oil & Gas

Oil & Gas Remote Monitoring

Deploy Ignition Edge with MQTT Transmission at remote wellsites to collect flow rates, pressures, and equipment status. Data is published via Sparkplug B to a central MQTT broker, where Ignition MQTT Engine aggregates metrics from hundreds of remote sites into a single unified view for operators.

Manufacturing

Smart Factory IIoT

Build a factory-wide IoT sensor network using MQTT-enabled gateways and edge devices. The Ignition MQTT integration collects data from vibration sensors, energy meters, environmental monitors, and production equipment, feeding a real-time digital twin of your manufacturing operations.

Utilities & Infrastructure

Multi-Site SCADA

Implement a distributed SCADA architecture with Ignition Edge gateways at each site publishing data via MQTT to a centralized Ignition server. The Sparkplug B protocol ensures efficient bandwidth usage over WAN connections, while store-and-forward guarantees data integrity during network outages.

Technologies

MQTT Engine

Cirrus Link module for Ignition that subscribes to MQTT brokers and automatically creates tags from Sparkplug B messages. The core component of any Ignition MQTT integration.

MQTT Transmission

Cirrus Link module that publishes Ignition tag data to MQTT brokers using the Sparkplug B protocol. Enables Ignition to act as an edge node in a larger MQTT infrastructure.

Sparkplug B

Open-source specification by the Eclipse Foundation that defines topic namespaces, payload encoding (Protobuf), and state management for MQTT in industrial automation.

Eclipse Mosquitto

Lightweight, open-source MQTT broker widely used in industrial IoT deployments. Supports MQTT v3.1, v3.1.1, and v5.0 with TLS encryption and authentication.

HiveMQ

Enterprise-grade MQTT broker with clustering, high availability, and advanced security features. Ideal for large-scale Ignition MQTT integration deployments requiring guaranteed message delivery.

Frequently Asked Questions

Find answers to common questions about this integration.

MQTT Engine acts as a subscriber that receives Sparkplug B messages from the MQTT broker and creates corresponding tags in Ignition. MQTT Transmission does the opposite: it publishes Ignition tag data to the MQTT broker as Sparkplug B messages. In a typical Ignition MQTT integration, the central server runs MQTT Engine while edge gateways run MQTT Transmission.
No, the Ignition MQTT integration works with any MQTT v3.1.1 or v5.0 compliant broker. Popular choices include Eclipse Mosquitto for lightweight deployments, HiveMQ for enterprise-grade clustering, and EMQX for high-throughput scenarios. The key requirement is Sparkplug B support on the client side, which is handled by the Cirrus Link modules.
The Ignition MQTT integration includes built-in store-and-forward capability. When the connection to the MQTT broker is lost, edge nodes buffer messages locally to disk. Once connectivity is restored, all buffered data is published in chronological order. Additionally, Sparkplug B death certificates notify subscribers when a node goes offline, and birth certificates resynchronize state when it reconnects.
Yes, while Sparkplug B is recommended for its standardized payload format and auto-discovery features, Ignition can also work with generic MQTT topics using custom parsing. The MQTT Engine module supports custom namespaces where you define your own topic structure and payload format (JSON, CSV, etc.). However, you lose the benefits of automatic tag creation, state management, and birth/death certificates that Sparkplug B provides.

Ready to Get Started?

Contact our team of experts to discuss your integration needs and get a customized solution.