Edge module is a simple way to collect data from industrial control system and push it to the cloud. This is can be used for OT/IT Integration and many other modern applications.


You can collect data from any supported data source (such as OPC and Modbus) and push the collected data to any of the following destinations:


  1. MQTT Broker.
  2. Azure IoT Hub.
  3. Google IoT Core.
  4. AWS IoT
  5. Stream Platform/SCADA/Gateway


You can specify the pushing intervals, and you can also group data to be sent as a bulk.


From Stream Explorer, select Edge under Integration and click on the Add button to add a new data pushing job.


Main Tab:



Basic

  • Active: Enables or disables this data pushing job.
  • Name: Unique name for the data pushing job.    
  • Description: (Optional). Use it to add meaningful note about this job.


Push Trigger

  • Type: Select one of the two options:


   a. Periodic: Push the data cyclically each specified number of seconds (Sample Interval).



   b. OnValueChange: Push the data only when the value changes by a specific absolute value (Minimum Value Change).


  • Push Interval: At first, Tags values are stored in the application internal memory in a queue. Later, it's pushed to its destination after the (Push Interval) is elapsed.




Tags Tab:


Add here any number of tags that you need to push its data, status and time stamp. (Click the + sign or double-click on any row to open the Tag Browser).





Destination Tab:


Add here any number of tags that you need to push its data, status and time stamp. (Click the + sign or double-click on any row to open the Tag Browser).



  • Type: Select any of the supported destination to push the data to. Following are the details of each type:


MQTT Broker:

- Click Manage to specify the required information of the MQTT Broker (IP Address, User name, password .. etc).    

- Client Id: Although it's not mandatory for all MQTT brokers, but it's useful to identification and filtration at the subscriber side.

- Topic Name: Each MQTT message is called a topic. And each topic requires a name (as a header) and a body (actual data for Tags).


Note: You can add as many data pushing jobs as needed. Each will run on it's separate thread independently.


Sample Message (JSON format)


[

  {

    "MsgSource": SIMULATOR,

    "TagName": "SIM.RAMP1",

    "RawValue": "41",

    "ScaledValue": "41",

    "Status": "Normal",

    "ComStatus": null,

    "TimeStamp": "2020-02-03 12:21:14"

  },

  {

    "MsgSource": SIMULATOR,

    "TagName": "SIM.RANDOM1",

    "RawValue": "88",

    "ScaledValue": "88",

    "Status": "Normal",

    "ComStatus": null,

    "TimeStamp": "2020-02-03 12:21:14"

  }

]