OPC UA Data Modeling

This project collects 100,000+ OPC UA tags, models the data as 10,000+ pumps, and sends the data to MQTT once a second.

KEPServerEX is used as the OPC UA server and is installed on a separate networked machine. The Intelligence Hub is installed on a single machine with the MQTT Broker enabled.

See below links to download the project files to run this test in your own environment.

Project Details

  • Number of Pumps: 10,240
  • Number of Tags per Pump: 9
  • Number of Tags: 92,160
  • Flow publish rate: 1 second
  • Number of MQTT Connections: 3
  • Number of Flows: 5

System Specs

  • AWS EC2 t2.2xlarge
    • vCPU: 8
    • Memory: 32GB

Performance Results

Testing Notes

  • Results averaged over 10 minute time window
  • Attributes/second includes internal _name, _model, _timestamp fields
  • Write results are greater than expected because of buffering/bursts. This should be interpreted as meeting expected results.
  • 3 MQTT connections are used to spread the write load across 3 threads

Steps to Reproduce

  • Install the latest version of the Intelligence Hub
  • Install KEPServerEX on the same or a different machine to match this test
  • Download and load the kepserverex_pumps.opf KEPServerEX project and ensure OPC UA is enabled
  • Download and load the intelligencehub_pumps.json Intelligence Hub Project
    • Change the OPC UA Connection settings to connect to your OPC UA Server
    • Enable the local MQTT Broker under Settings
  • Confirm connectivity to the OPC UA Server and MQTT Broker is working
  • Enable the Flows

Resources