Contents
Cirrus Link Resources
Cirrus Link Website
Contact Us (Sales/Support)
Forum
Cirrus Link Modules Docs for Ignition 7.9.x
Inductive Resources
Ignition User Manual
Knowledge Base Articles
Inductive University
Forum
This page describes how Cloud Injector Tag Agent configurations interact with Ignition tag trees to publish MQTT messages and tags to a Cloud service or IoTHub. It explains how tags get identified to be published as well as what specific topics that data will be published on. It also goes over some example configurations to show how the system will behave in different scenarios.
Like the MQTT Transmission Transmitter, the Cloud Injector Tag Agent is designed to pick up tags in Ignition or Ignition Edge and publish those tags, parts of their configuration, and tag change events to a Cloud service. Which tags are published to the Cloud is based on a combination of an Agents configuration as well as the arrangement of tags in the Ignition tag tree.
It is important to note that the configuration of the tag agent in conjunction with the tag tree determines what MQTT topics data is published on. The MQTT topics are essentially the 'addresses' of the different components in the distributed system. In the topics, per the Sparkplug specification, there are three important identifiers to note. These are shown below.
(Is this paragraph below relevant to the Tag Agent ?)
These identifiers then become components of the MQTT topics. There is also a 'verb' in Sparkplug messages which denotes whether the message is a birth certificate, death certificate, data message, command message, etc. Sparkplug topics are of the following form using all of these different parameters.
It is also important to note that the combination of any GROUP_ID and EDGE_NODE_ID must be unique within the distributed system. Because these are used as 'addresses' in the system you should never have two that conflict with each other. It is a bit like having two houses on the same street (GROUP_ID) with the same postal address (EDGE_NODE_ID). It isn't possible for other MQTT clients in the system to tell where messages are coming from and when sending messages to them they will both receive the messages. This is why the combination of these two identifiers must be unique. For example, you can have two or more Edge Nodes with the same GROUP_ID as long as each EDGE_NODE_ID is unique.
The Sparkplug settings are optional and allow for an additional customization of how the Tag Agent scans and discovers tag within the specified Tag Path. Here is a brief description of how the Agent scans/discovers folders based on the different combinations of potential Sparkplug Settings.
As you can see, the Sparkplug settings can be used to either hard-code these IDs, or leave them blank so that the Agent will scan and discover them based on the tag tree layout.
In the original release of MQTT Transmission the Default Transmitter was the only mechanism that could be used to define which tags would be published over MQTT. When in use, it would look in the specified Tag Provider that is configured for a folder called 'Edge Nodes'. Each folder under the 'Edge Nodes' folder would be considered a Sparkplug 'Group ID'. Each folder under each 'Group ID' folder would be considered a 'Edge Node ID'. Finally, each folder under each 'Edge Node ID' folder would be considered a 'Device ID'.
Consider the following tag tree:
With the above tag tree while using MQTT Transmission's Default Transmitter we end up with the following Sparkplug Edge Nodes.
Note each Edge Node also results in a single MQTT Client connection. So, the above configuration results in three Sparkplug MQTT clients publishing messages to an MQTT Server.
It is important to note that the Default Transmitter no longer exists in Ignition 8. This is because a Custom Transmitter can be defined to represent the Default Transmitter.