Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

MQTT Transmission supports two different configurations to send data using MQTT:

  • Transmitter - which is an agent that monitor tags, converts them to Sparkplug Messages, and publishes to an MQTT Server. 
  • UNS Transmitter - which is an agent that monitors tags and publishes them as MQTT Messages with a JSON payload to an MQTT Server. 

To determine which one to use we need to understand the difference between MQTT and MQTT Sparkplug.

MQTT

MQTT is a lightweight messaging protocol designed for efficient communication between devices. It was created to address the challenges of transmitting data reliably over low-bandwidth, high-latency, or unstable networks — conditions commonly found in industrial settings, remote monitoring systems, and embedded devices.

...

This is the MQTT Transmission module using Transmitter configuration


Host Application

The Host Application is the system that consumes data from Edge Nodes. Typically, this is an industrial control system, IoT platform, or data analytics tool.

...

Sparkplug enforces a strict topic structure that organizes data consistently across devices and systems. Each topic follows a predefined format of Sparkplug's topic format: spBv1.0/<Group ID>/<Message Type>/<Edge Node ID>/<Device ID> where:

  • spBv1.0 – Identifies the Sparkplug protocol version.
  • Group ID – Represents a logical grouping of devices (e.g., production line, factory floor).Edge Nodes (eg, facility name) 
  • Message Type – Defines the message purpose (e.g., NBIRTH, NDATA, NDEATH).
  • Edge Node ID – Identifies the originating device.logical Edge Node.
  • Device ID ( optional) - Identifies the  device (eg. PLC)

This structure simplifies data organization, ensuring that all systems can identify device sources and message types without custom logic.

...

When devices disconnect, the broker automatically alerts Host Applications by publishing a death certificate — preventing stale or inaccurate data from being mistaken as live.

Which One to Use?

Plain MQTT is ideal for lightweight IoT deployments where flexibility is key, and devices produce minimal data points.

MQTT Sparkplug is better suited The MQTT Sparkplug Transmitter is designed for complex IIoT environments where data consistency, system state awareness, and scalability are critical.

Transmitters

A Transmitter is an agent that monitor tags, converts them to Sparkplug Messages, and publishes to an MQTT Server. 

It is generally used at the Edge of an OT infrastructure and is capable of 

  • The Sparkplug Transmitter creates a Sparkplug Client 
  • After connection to the MQTT server, two way communication is available between the Sparkplug Host Application and the Sparkplug Client
  • Data is always published as QoS0
  • The published messages Messages can be consumed by any Sparkplug Host Application such as MQTT Engine.
    • The topic uses the identified SPARKPLUG IDs for Group, Edge Node and Device
    • The payload includes Metrics, Timestamps and Metadata encoded using Google’s Protocol Buffers (Protobuf) 
  • Any MQTT client created by the agent will publish and subscribe to data using the Sparkplug B protocol.
  • Uses the namespace spBv1.0
  • Using the Sparkplug B protocol provides the benefits of session management including Primary Host ID
  • Understands Ignition UDTs and can be configured to publish UDT definitions in BIRTH messages
  • Is capable of publishing 10s of thousands data messages contain multiple of tag change events

UNS Transmitters

A UNS Transmitter is an agent that monitors tags and publishes them as MQTT Messages with a JSON payload to an MQTT Server. 

The UNS Transmitter would be configured to read tags from a UNS structure, such as created by MQTT Engine, and publish tag changes over MQTT to any Enterprise consuming clients.


The UNS Transmitter is ideal for lightweight IT deployments where minimal data points are required by Enterprise consuming clients.

  • The UNS Transmitter creates an MQTT Client
  • After connection to the MQTT server, data can only be published from the MQTT Client to the MQTT Server
  • Data can be published as QoS0, QoS1 or QoS2
  • Messages can be consumed by any MQTT client that can parse JSON messages.
  • Any MQTT client created by the agent will only publish data using the MQTT protocol.Uses the namespace unsAv1.0 (which can be disabled)
  • Publishes a single data message for each tag when QualifiedValue of the tag changes
    • The topic is the Ignition tag path starting at the Tag Path defined in the transmitter
    • The payload is a JSON formatted payload containing only the tag name, dataType, value, timestamp and qualityCode the tag changes 
  • Publishes a single properties message is published for each tag on every client connection
    • The topic is the Ignition tag path starting at the Tag Path defined in the transmitter extended by .props
    • The payload is a JSON formatted payload containing Ignition non default or custom property values 
  • Publishes the leaf tags of Ignition UDTs and the structure of the UDT (i.e. UDT name itself and folders in the UDT) become topic tokens.

...