Case Studies

MQTT Sparkplug Implementation with Ignition

Posted in Manufacturing Automation and Intelligence


DMC designed an MQTT Sparkplug implementation to record data from edge devices on a Central Ignition Historian.


DMC’s client had multiple sites containing multiple water skids, each of which needed to be able to store data in a centralized database. Due to the scope of their business, they required a way to easily add remote devices and an organized way of viewing their data.

To accomplish this, DMC worked with the client to develop Unified Namespace (UNS) using MQTT Sparkplug. We then programmed an Ignition system to use this namespace.

DMC’s solution implemented an Ignition server at the edge, which served as the MQTT transmitter, and an Ignition Enterprise server using MQTT Distributor/Engine to serve as the broker and subscriber.

DMC used Sparkplug B as the communication protocol: chosen for its advantages in conveying device status and uptime. The client desired a unified namespace with multiple organizational levels styled after ISA-95.

To fit this topic namespace into the Sparkplug protocol, DMC developed an automated process for encoding the unified namespace into the Sparkplug namespace using the Parris method. The Enterprise program then extracted the MQTT tags back into the UNS to allow for consistency.

This method helped the client rapidly add new edge equipment, without sacrificing the benefits of unified namespace or Sparkplug.

Learn more about DMC's Ignition programming expertise and contact us for your next project. 

Customer Benefits

  • Streamlined process for adding edge devices
  • Sparkplug implementation that aligned with Client developed UNS


  • Ignition
  • MQTT
  • Sparkplug B
  • Cirrus Link Ignition MQTT Distributor Module
  • Cirrus Link Ignition MQTT Engine Module
  • Cirrus Link Ignition MQTT Transmission Module
  • UNS (Unified Name Space)