Versions Compared

Key

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

Prerequisites

  • Ignition with Google Cloud Injector Module installed
  • Ignition Designer installed
    • Review the Inductive Automation documentation for Launching Designer against the Ignition gateway
  • Knowledge of Ignition and Module installation process: Cloud and MQTT Module Installation.
  • An existing Microsoft Azure account with an active IoT Hub and a registered device.
    • Documentation on creating an IoT Hub and registering an new device can be found here

...

This tutorial will provide step-by-step instructions for the following:

...

  • Configuring the Azure Injector Module to connect to an existing Azure IoT Hub
  • Publishing live Tag data and events to the connected Azure IoT Hub 

Upon completion of this module you will have an Ignition Gateway connected and publishing live Tag data to an Azure IoT Hub.

Architecture

Tutorial

Step 1:

...

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/ignition

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

Step 2: Download and Install the Cirrus Link Azure Injector Module

Go to the Inductive Automation download page again and select the 'Strategic Partner Modules' tab. Find the Cirrus Link modules section and download the Azure Injector Module.
https://
inductiveautomation.com/downloads/ignition.  The download links should look similar to what is shown below.

Image Removed

Step 3: Configure the MQTT Modules

Once you have Ignition installed and running, and the Azure Injector module downloaded, browse to the Ignition Gateway console (e.g. http://localhost:8088).  Login using the default credentials of admin/password.  Click on Configuration tab and then click on the Modules tab on the left side of the page.  Scroll to the bottom of the Modules section and click on the Download/Upgrade modules button.  When prompted, select the Azure Injector module from the file browser and install it.  When complete, the Ignition Gateway Web UI module section should look similar to what is shown below:

Image Removed

Select the "AZURE INJECTOR" → "Settings" link on the lower left of the page to navigate to the Azure Injector Module's configuration page.  A detailed explanation of each configuration tab can be found here.  For this tutorial, we will only be adding a new Azure IoT Hub Setting.

...

Configure the Azure Injector Module

Once you have Ignition and the Azure Injector Module installed and running we can setup the configuration to connect to the active IoT Hub.

Tip
Review the Azure Injector Module configuration guide for more details on each tab

Navigate to the Azure Injector Module configuration section from the left side bar in the Ignition Gateway. From the Azure IoT Hubs tab, click on the "Create new Azure IoT Hub Setting..." link to bring up the following configuration form:

For

Set the following parameters:

  • Setting Name

...

    • This can

...

    • be any unique identifier

...

    • . For tis tutorial we will use "TestSetting".

...

  • Password

      ...

        • This the IoT Hub Device Connection String from your Azure IoT Hub.  This can be found by navigating to a provisioned Device within the Device Explorer of the IoT Hub that you wish to use

      ...

        • .


      The Protocol, Set, and Certificates fields can be left with the default values.  Click Click on "Create New Azure IoT Hub Setting" to finish creating the new configuration setting.

      Now the Azure Injector module is connected to the IoT Hub

      ...

      , we have to determine if there are are changes needed to the Tag Agent tab to be able to push

      ...

      data.

      If you

      ...

      already have Ignition tags defined, for example from the Ignition OPC UA Server, then depending on the depth of your tag tree you may need to configure the Sparkplug Settings. 

      Tip
      Review the Cloud Injector Tag Agents and Tag Trees document which describes how Cloud Injector Agent configurations interact with Ignition tag trees to push messages and tag change events to the cloud service. It explains how tags get identified to be pushed as well as what specific 'topics' will be included with the messages. It also goes over some example configurations to show how the system will behave in different scenarios.

      Once the Tag Agent is setup as needed, you can jump to Step 3: Publishing data.


      If you do not have Ignition tags defined we will do that in the next step with a tag tree depth that requires no additional Sparkplug settings.

      Step 2: Create tags to be published in Designer

      Image Removed

      The Default Tag Agent will monitor tags that are in the "Edge Nodes" folder of the "default" Tag Provider.  In the next step we go into more detail about the tags in this folder.

      Step 4: Use Ignition Designer to Examine the Initial Tag Structure

      With Ignition running and the AWS Injector module loaded and configured we can now open the Ignition Designer to create/observe the initial Tag structure.  Regardless of the OS Ignition is running on, there is a “Get Designer” button on the Ignition Gateway Console. From here you can launch your Designer on any machine.  This is shown below.  The default credentials for the designer are the same as the Gateway Console, admin/password.  

      Image Removed

      Once you have logged into the Designer enter a new project name and open the project. The project name that we used for this tutorial is simply called “test”.

      Image Removed

      After Designer opens, you will see the default Designer screen as shown below.

      With the Azure Injector module installed in Ignition, a new folder is created under the "All Providers" folder and is called “Azure Injector”. This folder will contain both information tags about the module's version and state, as well as control tags for refreshing the module and its Tag Agents.

      Image Removed

      ...

      When the Azure Injector module is installed in Ignition,

      ...

      an Edge Node folder is automatically created in the

      ...

      • All Providers/default/Edge Nodes

      Image Removed

      Step 5: Use Ignition Designer to Create New Tags

      ...

      'default' Ignition tag provider.Image Added

      Create a tree structure under this folder as shown below with some memory tags - this folder structure creates the same hierarchy that is described in the Sparkplug B specification of Group ID, Edge ID, and Device ID.

      ...

      Tip
      Refer to the Ignition Tag Browser and Creating Tags documentation for assistance in configuring Ignition tags

      Image Added

      Step 3: Publishing data

      When the Azure Injector module is installed in Ignition, an Azure Injector tag provider is automatically created. This folder will contain both information tags about the module's version and state, as well as control tags for refreshing the module and Tag Agents.

      With this folder structure in place, now we can create some memory tags of various data types to publish. Right click on the Tutorial Device folder and select ’New Tag’/’Memory Tag’. In the tag editor change the Name of the tag to “Boolean001”, and change the Data Type to Boolean. Follow this same procedure for new memory tags called “Integer001” of type Integer, “Float001” of type Float, and “String001” of type String. The resulting folder structure should look as follows.

      Image Removed

      Step 6: Use Ignition Designer to Publish Tag Data (Current Tag Values)

      Now that we have a folder structure with some tags we can refresh the Azure Injector module.  Make sure that the Ignition Designer has read/write communications turned on by selecting the Project/Comm Read/Write button highlighted in the image below.Image Removed 

      Image Added

      Tip
      Review the Inductive Automation Designer documentation for additional assistance on setting the project communication mode


      To refresh the default Tag Agent with the folder structure we’ve created, open the folder "All Providers/Azure Injector /Azure Injector ControlControl" and click on the Refresh Boolean. Note the Boolean tag will not change to true. This is really a one-shot and as a result, the tag will not change to true. When this happens, the Tag Agent will scan the "Edge Nodes" folder and find the new Memory Tags that we have created, construct construct JSON payloads representing those tags with their current values and publish the payload to the Azure IoT Hub that we have configured.

      Image Added

      Note
      The Boolean tag will not change to true. This is really a one-shot and as a result, the tag will not change to true.


      Image RemovedThe Azure Injector Tag Agent will publish two JSON payloads to the Azure IoT hub.  The format of these messages closely follows the Sparkplug B Specification's payload structure.

      ...

      Code Block
      titleSecond Payload
      {
        "topic": {
          "namespace": "spBv1.0",
          "groupId": "Tutorial Group",
          "edgeNodeId": "Tutorial Edge Node",
          "deviceId": "Tutorial Device"
        },
        "payload": {
          "timestamp": 1504739061501,
          "metrics": [
            {
              "name": "Boolean001",
              "timestamp": 1504739061546,
              "dataType": "Boolean",
              "properties": {
                "Quality": {
                  "type": "Int32",
                  "value": 192
                }
              },
              "value": true
            },
            {
              "name": "String001",
              "timestamp": 1504739061546,
              "dataType": "String",
              "properties": {
                "Quality": {
                  "type": "Int32",
                  "value": 192
                }
              },
              "value": "onetwothree"
            },
            {
              "name": "Integer001",
              "timestamp": 1504739061546,
              "dataType": "Int32",
              "properties": {
                "Quality": {
                  "type": "Int32",
                  "value": 192
                }
              },
              "value": 123
            },
            {
              "name": "Float001",
              "timestamp": 1504739061546,
              "dataType": "Float",
              "properties": {
                "Quality": {
                  "type": "Int32",
                  "value": 192
                }
              },
              "value": 1.23
            }
          ],
          "seq": 1
        }
      }


      Step

      ...

      4: Use Ignition Designer to Publish Tag Data (Live Tag Values Changes)

      Now we can change the values of the new Memory Tags and generate payloads that contain the Tag change events.Click  Click on the value of the "Boolean001" Memory Tag to change it's value.

      ...

      Code Block
      titleChange Event Payload
      {
        "topic": {
          "namespace": "spBv1.0",
          "groupId": "Tutorial Group",
          "edgeNodeId": "Tutorial Edge Node",
          "deviceId": "Tutorial Device"
        },
        "payload": {
          "timestamp": 1504740884529,
          "metrics": [
            {
              "name": "Boolean001",
              "timestamp": 1504740883526,
              "dataType": "Boolean",
              "value": false
            }
          ],
          "seq": 2
        }
      }


      Step

      ...

      5: Azure

      ...

      IoT Hub Applications

      It is beyond the scope of this tutorial to show how to design an application in Azure to handle the payloads as they are pushed in to the Azure IoT Hub.  For additional information on developing applications to consume this data see https://docs.microsoft.com/en-us/azure/.

      Additional Resources

      ...

      ...

      ...

      ...

      ...



      Excerpt Include
      CLD80:FAQ: Ignition Modules
      CLD80:FAQ: Ignition Modules
      nopaneltrue

      ...