Versions Compared

Key

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

...

Summary

The Inductive Auotmation 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:

...

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.

  • Ignition Primary
    • Create the following widgets.
      • Label - Ignition Primary
      • Label - Redundancy State → Label with Tag Path of "[MQTT Engine]/Engine Info/Redundancy State"
      • Label - Redundancy Role → Label with Tag Path of "[MQTT Engine]/Engine Info/Redundancy Role"
      • Label - Edge 1 Tag 1 → Label with Tag Path of "[MQTT Engine]/Edge Nodes/Group 1/Edge 1/Device 1/Tag 1"
      • Label - Edge 2 Tag 1 → Label with Tag Path of "[MQTT Engine]/Edge Nodes/Group 1/Edge 2/Device 1/Tag 1"
      • Label - MQTT Engine Connected → Multi-State Indicator with Tag Path of "[MQTT Engine]/Engine Info/MQTT Clients/Chariot SCADA/Online"
      • Label - Edge 1 Connected → Multi-State Indicator with Tag Path of "[MQTT Engine]/Edge Nodes/Group 1/Edge 1/Node Info/Online"
      • Label - Edge 2 Connected → Multi-State Indicator with Tag Path of "[MQTT Engine]/Edge Nodes/Group 1/Edge 2/Node Info/Online"
    • When complete - it should look similar to what is shown below

Image Added

  • Ignition Edge 1
    • Create the following widgets
      • Label - Ignition Edge 1
      • Label - Redundancy State → Label with Tag Path of "[MQTT Transmission]/Transmission Info/Redundancy State"
      • Label - Redundancy Role → Label with Tag Path of "[MQTT Transmission]/Transmission Info/Redundancy Role"
      • Label - Edge 1 Tag 1 → Label with Tag Path of "[default]/Edge Nodes/Group 1/Edge 1/Device 1/Tag 1"
      • Label - Connected → Multi-State Indicator with Tag Path of "[MQTT Transmission]/Transmission Info/MQTT Clients/Group 1-Edge 1/Online"

Image Added

  • Ignition Edge 2
    • Create the following widgets
      • Label - Ignition Edge 2
      • Label - Redundancy State → Label with Tag Path of "[MQTT Transmission]/Transmission Info/Redundancy State"
      • Label - Redundancy Role → Label with Tag Path of "[MQTT Transmission]/Transmission Info/Redundancy Role"
      • Label - Edge 2 Tag 1 → Label with Tag Path of "[default]/Edge Nodes/Group 1/Edge 2/Device 1/Tag 1"
      • Label - Connected → Multi-State Indicator with Tag Path of "[MQTT Transmission]/Transmission Info/MQTT Clients/Group 1-Edge 2/Online"

Image Added

  • Once all three dashboards have been created, save and publish them and close the Ignition Designer windows.
  • Now open each of the Ignition client 'Test' projects.  With everything running you should see three windows similar to the following.

Image Added

  • At this point we can begin failing Ignition instances.  From the Status → Redundancy page we can use the 'Force Failover' button as shown below.  Of course stopping the actual Ignition instance is another option.

Image Added

  • Primary Ignition Failure: Failing the Ignition Primary instance will cause the following.
    • Ignition Primary will go down and be unreachable
      • This results in all MQTT connections being lost.
    • Ignition Primary Backup will come up and take the place of Ignition Primary
    • MQTT Engine will reconnect on Ignition Primary
    • The MQTT Transmission instances will reconnect to the new MQTT Server (MQTT Distributor) running in Ignition Primary Backup
    • This is all shown in the screenshot below of the Ignition projects.  Note all connections are valid and the 'Redundancy Role' of Ignition Primary is now Backup.

Image Added


  • Edge 1 Failure: Failing the Ignition Edge 1 instance will cause the following.
    • Ignition Edge 1 will go down and be unreachable
      • This results in the MQTT Connection between Ignition Edge 1 and Ignition Primary being lost.
    • Ignition Edge 1 Backup will come up and take the place of Ignition Edge 1.
    • The MQTT Transmission instance on Ignition Edge 1 Backup will connect to the MQTT Server (MQTT Distributor) running in Ignition Primary
    • This is all shown in the screenshot below of the Ignition projects.  Note all connections are valid and the 'Redundancy Role' of Ignition Edge 1 is now Backup.

Image Added

  • Failure of all Master Nodes: Failing all master Ignition instances (Primary, Edge 1, and Edge 2) will cause the following.
    • Ignition Primary, Edge 1, and Edge 2 will all go down and be unreachable
      • This results in all MQTT connections being lost
    • Ignition Primary Backup, Edge 1 Backup, and Edge 2 Backup will all come up and start their MQTT services.
    • The new MQTT Transmission instances on Ignition Edge 1 Backup and Ignition Edge 2 Backup will connect to the new MQTT Server (MQTT Distributor) running in Ignition Primary Backup
    • This is all shown in the screenshot below of the Ignition projects.  Note all connections are valid and the 'Redundancy Role' of all instances is now Backup.

Image Added

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.