Versions Compared

Key

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

Prerequisites

...

MQTT Recorder requires that a database be set up in Ignition.  That can be done as described in the 'Connect to a Database' section here.  Note Ignition supports additional database types.  For more detailed information about supported types, take a look at the information provided here.  Once a database is set up, MQTT Recorder can be configured.  Do so by opening the Ignition Gateway Web UI and browsing to the Configure tab at the top of the screen and then selecting 'MQTT Recorder → Settings'.

Once there, select a Datasource as shown in the image below.  This drop-down will be populated with any database connections set up in Ignition.  Optionally, a Partition Period can be selected to segregated tables by time periods.

Image RemovedImage Added

At this point, the Central Ignition Gateway with MQTT Distributor, MQTT Engine, and MQTT Recorder is fully configured and ready to receive MQTT Sparkplug messages from the Remote/Edge Ignition Gateway.  MQTT Distributor listens on TCP port 1883 by default for inbound MQTT connections.  Make sure the Operating System's Firewall, Antivirus, and Malware protection services allow inbound connections on port 1883/TCP before proceeding.

...

Start by configuring the MQTT Transmission module. Do so by opening Ignition Designer and creating a tag structure similar to what is shown below .with [default]MQTT Tags/FB107 folders:

Image Added
Image RemovedNote this structure is based on usage of the 'Default Example Transmitter' in MQTT Transmission in Ignition8.  So, the directory structure is very important.  Note the structure.

  • [tag provider/Edge Nodes/[Group ID]/[Edge Node ID]/[]MQTT Tags/[Device ID]/...

In the example below this implies the following definitions:

  • [Group Device ID] = G1
  • [Edge Node ID] = E1
  • [Device ID] = Flow Computer 1
  • FB107

Note since we are using the 'Example Transmitter' of Ignition8 we also need to set the Group ID and Edge Node ID in the Example Transmitter. To do so, go to MQTT Transmission → Settings on the left Ignition Gateway Web UI navigation panel. Then select the 'Transmitters' tab as shown below:

Image Added

Note that the 'Sparkplug IDs' are 'My MQTT Group/Edge Node c3420b' in this example.  These exact values will be used for the EFM Emerson ROC connection Sparkplug parameters to tell the EFM Emerson ROC which MQTT Transmission Transmitter configuration to use and, in turn, which MQTT connection to use to send the alarm data on. So, to match the Transmitter configuration in this example, we must set the Sparkplug IDs in the Emerson ROC driver instance as shown below. Note the Group ID and Sparkplug ID are defined in the MQTT Transmission Transmitter configuration. The Device ID is being picked up from the Ignition default Tag Provider tag tree.

Image Added

Next the MQTT Transmission server configuration must be modified to point to the Central Ignition Gateway we set up earlier.  To do so, in the Ignition Gateway Web UI browse to the Configure tab on the top and then to MQTT Transmission Settings in the lower left as shown below.

In the MQTT Transmission Settings configuration, click the Servers tab.  Then click 'edit' on the Chariot SCADA MQTT Server definition.  Modify the URL to match the URL of the Central Ignition Gateway.  In this example, MQTT Distributor is installed on a Central Ignition Gateway at the IP address of 192.168.12.2174.  Once the URL is modified to match the configuration, there should be a '1 of 1' in the Connected column as shown below.

Image RemovedImage Added

The next step is configuring the EFM Emerson ROC module.  This is done as described in the Emerson ROC Configuration manual.  In going through the basic setup and configuration for Alarm configuration the following steps must be performed:

...

MQTT Transmission is connected to the MQTT Server and as a result MQTT Engine is receiving tag change events.  In addition, because an EFM Emerson ROC device has been created and configured with the same Sparkplug Group ID, Edge Node ID, and Device ID, alarms will also be pushed to the MQTT server as Sparkplug RECORD objects.  When alarms are discovered by the EFM Emerson ROC driver, they will be published to the MQTT server, consumed by MQTT Engine, passed on to MQTT Recorder, and then inserted into the specified database.  Below is a view of some alarms using a third party database viewing tool.Image Removed

Image Added

Additional Resources