Versions Compared

Key

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

...

We must configure a total of 5 five Cirrus Link modules on two different Ignition gateways to get Alarm alarm data flowing from an Emerson ROC device to a central database.  These are:

  • Central Ignition Gateway
    • MQTT Distributor
    • MQTT Engine
    • MQTT Recorder
  • Remote/Edge Ignition Gateway
    • MQTT Transmission
    • EFM Emerson ROC

We'll cover the The configuration of each of these by each modules is covered below based on the Ignition gateway that they'll be set up re installed on.


Central Ignition Gateway Setup

...

MQTT Recorder requires that a Database database be set up in Ignition.  That can be done as described 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' as shown in the lower left below.

...

Once there, select a Datasource as shown in the image below.  This drop-down will be populated with any database connections you have set up in Ignition.  Optionally you can select a Partition Period if you would like tables segregated by time blocksperiods.

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 your Operating System's Firewall, Antivirus, and Malware protection services allow inbound connections on port 1883/TCP before proceeding.

...

With the Central Ignition Gateway ready to receive MQTT/Sparkplug RECORD objects, we can set up the EFM Emerson ROC and MQTT Transmission modules can be configured on the Remote/Edge Ignition Gateway.  Start by 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 confguration configuration you must perform the following steps at a minimum.

  1. Define the global TLP definitions available for all ROC devices in this Ignition instance
  2. Create the base device connection to the ROC
    1. The 'Alarm Scan Rate' in this connection configuration must be greater than zero to tell the driver to poll for alarm data at the specified rate.
    2. Set the Sparkplug Group ID, Edge Node ID, and Device ID that represent this device.  These will be used again later in the MQTT Transmission configuration.
  3. Specify the subset of global TLP definitions that this specific ROC uses

...

  • tag provider/Edge Nodes/Sparkplug Group ID/Sparkplug Edge Node ID/Sparkplug Device ID/...

In the example below this implies the following definitions:

...

Note at least one tag is also required below the Sparkplug Device ID level.  Often times there would be TLP tags here.  But, any tag such as a memory tag will be enough to trigger MQTT Transmission to send the appropriate BIRTH messages to MQTT Engine.

In addition to setting up an Edge Node with the Default Transmitter as we did above, we must also modify the MQTT Transmission server configuration 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.

...

Once 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 you have configured.  In this example, MQTT Distributor is installed on a Central Ignition Gateway at the IP address of 192.168.1.53.  You should not have to modify any other parameters because MQTT Distributor and MQTT Engine have been left in their default state.  Once you have modified the URL to match your configuration, you should see a '1 of 1' in the Connected column as shown below.

At this point, 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 has been configured with the same Sparkplug Group ID, Edge Node ID, and Device ID, alarm events will also be pushed to the MQTT server as Sparkplug RECORD objects.  When alarm events 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 an view of some alarms using a third party database viewing tool.

Image Added