Ignition and MQTT in the Unified Namespace

Content

Inductive Automation’s Ignition is one of the most widely used SCADA platforms in industry. Yet it reaches its full potential in a Unified Namespace (UNS) only together with MQTT. The combination of Ignition and MQTT turns a classic SCADA installation into an event-driven node. This node publishes and consumes data through a central broker. Instead of maintaining every connection by hand, Ignition speaks over a shared backbone.

This article shows how Ignition and MQTT work together in practice. It explains the producer and consumer roles, the three Cirrus Link MQTT modules, and the structure of Sparkplug B. The focus stays on a clean UNS architecture without point-to-point links. The examples are vendor-neutral and apply to any Ignition installation.

Ignition and MQTT: Ignition Edge publishes Sparkplug B to the MQTT broker (UNS), Ignition SCADA subscribes
The same product in two roles: Ignition Edge as producer, Ignition SCADA as consumer at the central UNS broker.

 

Ignition and MQTT – the Roles in the Unified Namespace

A Unified Namespace gathers all production data in one central place. Every system publishes its data there. Every consumer reads it on demand. The broker acts as the single source of truth. For the fundamentals, see our article What is a Unified Namespace.

In this architecture, Ignition takes on two roles at once. That is exactly what makes the platform such a good fit for the UNS. Both roles run over the same MQTT infrastructure.

  • Producer (edge → broker): Ignition reads tags from PLCs, OPC UA, or Modbus. It then publishes those values to the broker as Sparkplug B.
  • Consumer / SCADA node (broker → visualization): Ignition subscribes to topics on the broker. The values return as tags and feed dashboards, trends, and alarms.

The link between Ignition and MQTT replaces the classic OT silos. In the past, every target system queried the data directly at the source. Each new connection meant another direct link. In the UNS, that effort disappears. Ignition publishes once, and any number of consumers read along.

The difference from a classic HTTP query is fundamental. HTTP works on a request-and-response pattern. Every new consumer loads the source again. MQTT instead distributes the data through publish and subscribe. The broker handles distribution, not the source system. Our article MQTT vs. HTTP compares both patterns in more detail.

The table below summarizes Ignition’s two roles in the UNS. Both run in parallel and over the same broker.

Aspect Producer role Consumer role
Module MQTT Transmission MQTT Engine
Data direction Ignition tags to broker Broker to Ignition tags
Task publish field and OPC UA values subscribe and visualize data
Position at the edge, near the machine central, as a SCADA node

 

The Three Cirrus Link MQTT modules

Ignition does not speak MQTT out of the box. The bridge between Ignition and MQTT comes from three Cirrus Link modules. Each module covers a clear role. Together they form a producer, a consumer, and an optional broker. The graphic below shows the data direction of each module.

Ignition and MQTT: MQTT Transmission encodes Ignition tags to Sparkplug B, MQTT Engine decodes them back identically
Transmission and Engine are inverse operations; the MQTT Distributor is the broker in between.

 

MQTT Transmission – the publisher

The MQTT Transmission module makes Ignition a producer. It reads the configured Ignition tags. Those tags come from OPC UA or Modbus, for example. Transmission encodes the values automatically as Sparkplug B. It then publishes them to the broker. The developer does not build the topic structure by hand. The module creates it according to the Sparkplug standard.

A typical data flow starts right at the machine. A PLC delivers its values to Ignition over OPC UA. Ignition stores those values as tags. MQTT Transmission then publishes the tags as Sparkplug B. Our guide OPC UA to MQTT integration shows how to connect OPC UA sources cleanly to MQTT.

 

MQTT Engine – the subscriber

The MQTT Engine module makes Ignition a consumer. It subscribes to the Sparkplug B topics on the broker. Then it decodes the incoming messages. The values reappear as clean Ignition tags. A SCADA developer sees data from other edge nodes as local tags. Engine also tracks the lifecycle of a Sparkplug session. When a device drops out, it marks the affected tags as stale.

 

MQTT Distributor – the embedded broker

The MQTT Distributor module brings an MQTT broker directly into Ignition. It builds on Cirrus Link’s Chariot technology. For smaller setups, this embedded broker is enough. That way, no separate broker server is needed. Larger architectures usually run a dedicated broker instead. It then operates separately from the SCADA platform.

The three modules sort cleanly by role and data direction. The overview below shows when each module fits.

Module Role Data direction Typical use
MQTT Transmission Publisher Ignition tags to broker edge node that publishes field and OPC UA data
MQTT Engine Subscriber Broker to Ignition tags SCADA node that visualizes the UNS
MQTT Distributor Broker central hub embedded broker for smaller setups

 

Sparkplug B – Structure and Lifecycle in the UNS

MQTT alone only defines the transport. Sparkplug B defines the meaning of the messages. This specification structures topics and payloads uniformly. That is exactly why producers and consumers understand each other without prior arrangement. For a deeper introduction, see our post What is Sparkplug B.

Sparkplug B in Ignition and MQTT: topic segments and the session as a signal trace from NBIRTH to NDEATH with report-by-exception
Topic structure on top, the session as a signal trace below – a message only on value change.

Every Sparkplug topic follows a fixed namespace. It reads spBv1.0/{group_id}/{message_type}/{edge_node_id}/{device_id}. The five segments assign each message clearly. The first segment is the fixed version. Then come group, message type, edge node, and device. This structure makes the topics predictable and machine-readable.

The message type drives the lifecycle of a session. Sparkplug B works statefully and uses birth and death certificates. The most important types at a glance:

  • NBIRTH / DBIRTH: node and devices come online. They send their full tag set as a birth certificate.
  • NDATA / DDATA: during operation, Sparkplug sends only changes. This principle is called report-by-exception and saves bandwidth.
  • NDEATH / DDEATH: on disconnect or loss, the death certificate applies. The broker reports the outage through the last-will message.

This session awareness is a core benefit of Sparkplug B. A consumer always knows whether a source is online. A silent value stays distinct from a real outage. For clean topic design, our guide MQTT topic namespace best practices offers practical rules.

Sparkplug B also knows a state topic for the primary host. A consumer such as MQTT Engine acts as the primary host. It publishes its online status to a STATE topic. When this host loses its connection, the edge nodes notice at once. They then buffer their data locally. After the host returns, they send the buffered values. So no value is lost during short network outages. This combination is what makes Ignition and MQTT reliable in the UNS.

 

Ignition as a SCADA Node in the Unified Namespace

In the consumer role, Ignition becomes the visualization layer of the UNS. Through MQTT Engine, it subscribes to the relevant topics. The data appears as tags and feeds Perspective or Vision screens. An operator sees values from many sources in one place. It makes no difference which edge node produced the data.

The key change is the removal of point-to-point coupling. In the past, SCADA held its own drivers to every PLC. Each source meant a separate, direct connection. In the UNS, Ignition instead subscribes only to the broker. New data sources appear automatically once their edge node publishes. Our article SCADA in the Unified Namespace describes this new role in detail.

A UNS also carries several consumers at once. Besides Ignition, a historian, an MES, or analytics services often read along. They all subscribe to the same broker and the same topics. Ignition is therefore just one consumer among many. A new service connects without the source noticing. This decoupling is the real win from Ignition and MQTT.

How i-flow fits in: i-flow can serve as a preconfigured UNS hub with an integrated broker and Sparkplug B support. Ignition connects to it as a producer and consumer, without teams setting up the broker infrastructure themselves. Responsibility for the namespace and scaling then sits centrally in the hub. Our post MQTT in the Unified Namespace explains why MQTT is the right backbone for this.

 

Best Practices and Common Mistakes

The combination of Ignition and MQTT is robust once a few rules are in place. The points below sum up the most important lessons.

Do

  • Use the primary host state: Configure a primary host identifier. That way, edge nodes know whether the responsible consumer is reachable, and they buffer when needed.
  • Design the namespace cleanly: Define group_id and edge_node_id by site and asset. A clear structure stays maintainable long term.
  • Trust report-by-exception: Publish only relevant tags with sensible deadbands. That noticeably relieves the broker and the network.

Avoid

  • Publishing every tag blindly: Sending thousands of tags without a deadband overloads the UNS. Choose deliberately what truly belongs in the namespace.
  • Ignoring the Sparkplug state: Without the birth and death certificates, stale values look current. That leads to misreadings in SCADA.

 

Conclusion

The combination of Ignition and MQTT turns a SCADA platform into a full UNS node. Through MQTT Transmission, Ignition publishes data as Sparkplug B. Through MQTT Engine, it consumes and visualizes it again. Sparkplug B provides the uniform structure and the session awareness. The result is an architecture without fragile point-to-point links. Three key takeaways:

  1. Ignition is producer and consumer: the same platform publishes edge data and visualizes the whole namespace through a broker.
  2. Cirrus Link supplies the bridge: Transmission, Engine, and Distributor cover publish, subscribe, and an optional broker.
  3. Sparkplug B structures the UNS: a fixed topic namespace and lifecycle certificates make data predictable and outages visible.

About i-flow: i-flow is an industrial software company based in southern Germany. The company stands for a new era of self-connecting factories — and the end of manual integration. Its platform connects factories fully automatically, at any scale, worldwide. Over 750 million data operations per day in production-critical environments demonstrate the scalability of the software and the deep trust that customers place in i-flow. This success is based on close collaboration with customers and partners worldwide, including renowned Fortune 500 companies and industry leaders like Bosch.

Related Articles

Your question has not been answered? Contact us.

Eine Frau mit braunen Haaren, einem dunkelblauen Hemd und einer hellen Hose steht lächelnd mit den Händen in den Taschen vor einem steinernen Gebäude mit großen Fenstern.

Your Contact:

Marieke Severiens (i-flow GmbH)
content@i-flow.io

Download the UNS architecture checklist for evaluating roles in UNS now.