The MQTT Transmission UNS Transmitter is an agent that monitors tags and publishes them as MQTT Messages with a JSON payload to an MQTT Server.
It is ideal for lightweight IT deployments where minimal data points are required by Enterprise consuming clients and is generally used on the IT side of an OT/IT infrastructure.
The 'topic per datapoint' strategy is very expensive from a resource perspective on both the MQTT clients as well as the MQTT Server. Review Which MQTT Transmission Transmitter should I use to make sure you are using the appropriate MQTT Transmission Transmitter for your application. |
Configuration is set under the MQTT Transmission > UNS Transmitter tab
The configuration sections available are Tag Settings, Publish Settings, History Settings and Advanced Settings.

By default the filtered properties list contains:
|
For each tag, identified under the configured Tag Path, the UNS Transmitter will publish two MQTT messages:
The UNS Transmitter will use the namespace unsAv1.0 and will prefix this to all publishes from the MQTT Transmission UNS Transmitter
| The UNS namespace may be disabled via script using the "UseTopicPrefixToken" parameter |
A single MQTT message is published for each tag when the QualifiedValue of the tag changes
| A single MQTT message, containing the tag properties, is published for each tag on every client connection. |
| Tag properties are only included if different from the default Ignition tag property settings unless configuration property Send All Properties is True |
Let's take a look at a an example of how a UNS Transmitter can be used to publish data in a UNS format at MQTT Engine.
In Creating a UNS Namespace at MQTT Engine we created a UNS namespace at Engine as shown below:
MQTT Engine UNS tag tree

MQTT Engine UNS tag tree Site 1 Area 1 expanded

If we set the configuration parameters for the UNS Transmitter such that the Tag Provider is "MQTT Engine" and the Tag Path is = "UNS", a single message will be published each time the Qualified Value changes for a tag below "UNS":
Message examples are:
On a connect by the UNS Transmitter to the MQTT server, a single properties message will be published for each a tag below "UNS".
Message examples are:
| The custom tag properties of SparkplugDeviceId, SparkplugEdgeNodeId and SparkplugGroupID were created when enabling UNS at MQTT Engine |
Using the UNS Transmitter to publish from the Edge
Let's take a second example of publishing directly from the Edge tags using the Edge tags at Site 1 A from Creating a UNS Namespace at MQTT Engine

If we set the configuration parameters for the UNS Transmitter such that the Tag Provider is "Site 1 A" and the Tag Path is = "", a single message will be published each time the Qualified Value changes for a tag:
Message examples are:
On a connect by the UNS Transmitter to the MQTT server, a single properties message will be published for each a tag
Message examples are:
Depending on the tag count, frequency of tag data changes and the QOS (Quality of Service) used, the number of in-flight messages for any individual MQTT client can become unsupportable leading to lost data.
To mitigate this, the UNS Transmitter configuration allows for additional MQTT Clients to be associated with a single UNS Transmitter with an "MQTT Client Count" property is available under the "Advanced Settings" in the configuration.
For each MQTT Client there is an In-flight Permits Free tag available under the MQTT Transmission > Transmission Info tag path. The MQTT Client Count should be set high enough such that the In-Flight Permits Free information tag for each MQTT Client never goes to zero.
In the image below, the New UNS Transmitter has been configured with an MQTT Client Count of 5 which are assigned as MQTT Client-0 through MQTT Client-4.
