Prerequisites

Summary

The Inductive Automation platform and MQTT modules can be resilient to failures when configured to use redundancy.  Redundant Ignition systems can be set up and configured to act as failover backups for primary/master Ignition instances.  This tutorial will provide step by step instructions for installing a set of Ignition systems with redundancy on the host/primary Ignition instance as well as redundancy on the MQTT enabled edge nodes.  For this tutorial we will show how to set up a total of six Ignition systems.  These will be:

Additional Edge Nodes could be added to this infrastructure.  It is also important to note that the Ignition Edge Nodes with MQTT Transmission could also be instances of Ignition Edge MQTT depending on your requirements (https://inductiveautomation.com/whats-new-ignition-edge).  There are additional considerations when setting up a real world system using redundancy.  These topics are not covered in this tutorial but should be taken into consideration.

Upon completion of this tutorial you will have a functional system with redundancy/failover support for both remote edge nodes as well as the primary Ignition system that the remote edge nodes are reporting to.

Architecture




Tutorial

Step 1: Download and Install Ignition on Six Systems

Ignition is an Industrial Application Platform that can be used to create SCADA and HMI solutions. A fully functional Ignition system can be downloaded and run in trial mode.

Go to the Inductive Automation download page and download the desired Ignition installer for Windows, Linux or MacOS;
https://
inductiveautomation.com/downloads/archive.

Once the Ignition installer has been downloaded, follow the instructions provided by Inductive Automation to install and startup Ignition.

(Note: For this test infrastructure, MQTT Distributor will be installed as an Ignition module on both the Primary Ignition Gateway as well as the Primary Ignition Gateway Backup.  Make sure to either turn off firewalls or at a minimum allow inbound connections to TCP/IP port 1883, as remote MQTT Clients will need to be able to establish a TCP/IP socket connection to these ports).

Step 2: Download and Install the Cirrus Link MQTT Modules

Go to the Inductive Automation download page again and scroll down to the Third Party modules section. Find the Cirrus Link modules section and download the MQTT Distributor, MQTT Engine, MQTT Transmission modules.
https://
inductiveautomation.com/downloads/archive.  For each of the Ignition instance, install the following MQTT Modules.

Step 3: Configure the MQTT Modules

Once Ignition is installed, the MQTT Modules are installed, and everything is running we can configure the systems.  Since we are going to have a backup for each master system, we only need to do most of the configuration for the master systems.  Later, we can sync the configurations to the backups automatically.  We'll start by configuring the modules and configure the redundancy settings in the next step.

Step 4: Configure Redundancy

The following configuration shows all of the redundancy settings that were used in setting this environment up using Amazon's AWS EC2 instances (virtual machines).  The configuration will vary based on your network configuration.  Additional Ignition redundancy resources can be found at the following links:

https://docs.inductiveautomation.com/display/DOC79/Setting+Up+Redundancy
https://support.inductiveautomation.com/usermanuals/ignition/index.html?redundancy_settings.htm

Step 5: Create some tags in Edge 1 and Edge 2

In this step we will use Ignition Designer in the Ignition Edge 1 and Edge 2 instances to create some tags.  These tags will be used by MQTT Transmission and the Default Transmitter to push data to MQTT Distributor and MQTT Engine in the Ignition Primary instances.

 

Step 6: Force Sync of Backup Instances

The next step to to force the backup Ignition instances to receive their configurations from the master Ignition instances.  This will happen automatically eventually but for expediency we're going to force the action.

Step 7: Verify MQTT Engine is getting data from the MQTT Transmission Edge 1 and Edge 2

Open Ignition Designer on the Ignition Primary instance.  Expand the MQTT Engine tag tree and validate the following tags are present.  If they are present and not stale, they are properly connected.

Step 8: Test the Redundancy

In order to test the redundancy, we need to make a few simple dashboards.  It is important to note that this can not be tested with Ignition Designer alone.  Designer can not be opened from an Ignition backup instance since projects get replicated to the backup instances.  So, to show everything working, we'll make some very rudimentary dashboards.

To summarize, this tutorial shows how Ignition and the MQTT Modules can be used to create a resilient infrastructure that is able to withstand failures of machines and network connections within the architecture.  As noted earlier, this tutorial shows the basic requirements of configuring failover support with Ignition and the MQTT Modules.  This can be further improved with additional advanced concepts.  Feel free to contact sales@cirrus-link.com for more information.