You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Abstract

This page describes how MQTT Transmission Transmitter configurations interact with Ignition tag trees to publish MQTT messages and tags to an MQTT Server. 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.

Sparkplug Overview

MQTT Transmission is designed to pick up tags in Ignition or Ignition Edge and publish those tags, their parts of their configuration, and tag change events to an MQTT Server. Which tags are published to the MQTT Server is based on a combination of a 'Transmitter' configuration as well as the arrangement of tags in the Ignition tag tree.

It is important to note that the configuration of the transmitters 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.

Sparkplug Identifiers
  • The 'Group ID' is meant to represent a logical grouping of Edge Nodes. This can be a region, a facility name, or any meaningful grouping of Edge Nodes within your application.
  • The 'Edge Node ID' is the ID of the logical Edge Node. This is often the name of the system running Ignition with MQTT Transmission.
  • The 'Device ID' is the ID of a device attached to the Ignition instance. This can be a PLC or logical grouping of tags the represent a physical or logical device connected to Ignition.

These identifiers then become components of the MQTT topics. There is also a 'verb' in Sparkplug messages which denotes whether the message is birth certificate, death certificate, data message, command message, etc. Sparkplug topics are of the following form using all of these different parameters.

  • spBv1.0/GROUP_ID/VERB/EDGE_NODE_ID/[DEVICE_ID]

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 with the same postal address. 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.

Transmitters and Tag Trees

MQTT Transmission for Ignition 7.9.x has two different types of Transmitters. There is the 'default' Transmitter and also 'custom' Transmitters. Transmitters define where in the tag tree MQTT Transmission will look for tags that should be published via MQTT. They also optionally define the 'Sparkplug Identifiers' that will be used in the topic namespace.







  • No labels