Skip to main content
Version: 5.6

OPC Data Transfer via BatchRead Every 30 Seconds

tip

In this data transfer test, we connected 640,000 OPC data points to an OPC Router instance and transmitted them to MQTT and InfluxDB every 30 seconds. The average data transfer rate was 21,209 data points per second.

Systems

OS: Windows Server 2019 Standard 1809
RAM: 16GB
Processor: 64-bit 2.6GHz (4 cores)
OPC Router: 5.3.5007.156

OS: Windows Server 2019 Standard 1809
RAM: 12GB
Processor: 64-bit 2.6GHz (4 cores)
KEPServerEx: V6.16.203.0

OS: Windows 10 Pro N 22H2
RAM: 12GB
Processor: 64-bit 2.6GHz (4 cores)
KEPServerEx: V6.16.203.0

Projects

Two KEPServerEx Projects

  • Each with one channel (simulator)
  • Each with one device (16-bit device)
  • Each with 20 tag groups
  • Each with 100 sub-tag groups
  • Each with 200 tags

OPC Router Projects

For the two test cases, two projects were created with the same structure but with different numbers of connections and, consequently, different numbers of data points. Description of the simple project:

  • Four OPC UA client connections (2 plug-ins per KEPServerEx)
  • Each plug-in is used in 400 template instances, each for a single “Batch Read” transfer object
  • Each “Batch Read” transfer object queries 200 tags every 30 seconds and writes them to MQTT and InfluxDB

In summary: In Test Case 1, 320,000 tags were read every 30 seconds and transmitted to MQTT and Influx.

Test Case 2: In this case, 800 template instances are run per plug-in instead of 400. This is intended to query 640,000 tags every 30 seconds.

![ Configuration of the template instances (connections)](/assets/image (71).png)

OPC UA Client Connection

Deviations from the default:

  • Quickstart – Timeout (ms): 240000
  • Security – Validate server application URI: true
  • Subscription – Register OPC tags on startup: true
  • Advanced – Timeout (ms): 240000
  • Advanced – Enable maximum number of data points per query: true
  • Advanced – Maximum number of data points per query: 2500
  • Advanced – Soft limit on max items per subscription: 1500
  • Advanced – OPC Read Mode: Asynchronous

Evaluation

Test Case 1

A total of 320,000 data points were read every 30 seconds, distributed across four plug-ins, and written to MQTT and InfluxDB. After 30 minutes of runtime, we checked how much data had been written to InfluxDB.

![At 640,000 data records per minute, 100% of the data was transmitted in our test](/assets/image (2) (1).png)

Test Case 2

640,000 data points were read every 30 seconds and written to MQTT and InfluxDB, distributed across four plug-ins. After 30 minutes of runtime, we checked how much data had been written to InfluxDB.

![At 1,280,000 data records per minute, more than 99% of the data was transmitted in our test](/assets/image (1) (1) (1).png)

Project Files

Test Case 1

Test Case 2

KEPServer Ex – Benchmark Batch Read Server 1 (ZIP, 9 MB)

KEPServer Ex – Benchmark Batch Read Server 2 (ZIP, 9 MB)

:::note[[ [Extract before importing]] The KEPServer project files are provided as a ZIP archive. Extract the archive before importing the included .opf file into KEPServer Ex. :::