Prerequisites
Overview
Within MQTT Transmission, a record is a collection of tags under an Ignition folder which are treated as a single entity and published on demand. They are usually used for , but not restricted to, sending flow computer records such as events, alarms and history datasending a record of information such as a batch data entry form or flow computer event/alarm record.
Records are published via an MQTT client using a Sparkplug-like topic format with a JSON protobuf payload.
Records received at MQTT Engine are passed to MQTT Recorder which automatically generates database tables and populates the rows within the tables with records as they are received.
This tutorial shows how to configure the MQTT modules to generate and publish records to be stored in an MySQL database .including:
| Table of Contents |
|---|
| minLevel | 3 |
|---|
| exclude | Additional Resources |
|---|
|
Image Added
| Note |
|---|
| The topology of this example shows MQTT Distributor, MQTT Engine, Record MQTT Recorder Store, and MQTT Transmission all running in the same Ignition instance. This is done for simplicity of the tutorial, but this isn't required or even intended to be a real use case. In a more realistic scenario MQTT Transmission and MQTT Engine would be located on separate machines. |
Step 1: Install the MQTT modules
Install the four MQTT modules listed in the pre-requisites onto your Ignition system following the Cirrus Link Module Installation guide.
By default, both MQTT Engine and MQTT Transmission are configured to connect to MQTT Distributor on tcp://localhost:1883 and will show as Connected under their respective Servers configuration setting in the Ignition UI. MQTT Transmission will also have an Example Transmitter configured pointing to a set of tags that are configured in the Ignition "default" tag provider.
This allows the three modules to automatically connect and provide a starting base for the tutorial.
Follow the Ignition Connecting to MySQL guide to configure a database connection to your SQL database.
Within MQTT Transmission, a record is a collection of tags under an Ignition folder which are treated as a single entity and published on demand. The next step is to create the Ignition folders representing the Records within Ignition.
Use the Design Launcher to launch a Designer connection to the Ignition Gateway and create a new project. In the 'default' tag provider, import the recorder_tutorial_tags.json to build a set of Ignition folders to represent the records.
| Note |
|---|
| Note the set of tags under the MQTT Tags folder that were automatically configured when the MQTT Transmission module was installed |
The imported tags will create three records as shown below:

Now we can configure the MQTT Transmission module to publish records using the existing MQTT client created by the Example Transmitter. Navigate to the MQTT Transmitter Transmission > Settings in the left side bar of the Ignition Gateway UI and select the Transmitters tab. Note Make note of the Sparkplug IDs configured for your transmitter.
For our example we have the Group ID as My MQTT Group and the Edge Node ID as Edge Node 994161
Image Removed
Image Added
Now we can setup three configurations each of which points to a record folder and also configs the boolean tag which controls the on demand publish of the record.
| Note |
|---|
| For this tutorial we will manually trigger the record publishes however these tag changes can easily be scripted at the Edge or managed through control writes from MQTT Engine |
Select the Records tab and then click the Create new Records.. link. Use the following configuration settings:
- Tag Settings
- Tag Provider
- Tag Folder Path
- Record Type
- Sparkplug Settings
- Group ID
- Edge Node ID
- Use the Edge Node ID from your Transmitters Sparkplug IDs. For my Transmitter, I will use Edge Node 994161
- Device ID
- Advanced Settings
- Override Publish Tag
- Leave as unchecked. This will create a boolean tag named Publish in the Tag Folder Path MyRecords/Record_One which will be used to trigger the record publish
- Publish Tag Path
Select Create New Record and you will see the Publish boolean in the tag browser