Skip to main content
Version: 5.5

OPC data transfer via BatchRead every 30 seconds

tip

In this data transfer test, we connected 640,000 OPC data points in an OPC Router instance and transferred 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 with the same structure but different connections and thus different numbers of data points were created. Description of the simple project:

  • Four OPC UA client connections (2 plug-ins per KEPServerEx)
  • Each plug-in is used in 400 template instances for one "batch read" transfer object
  • Each "batch read" transfer object queries 200 tags every 30 seconds and writes them to MQTT and Influx-DB

Summary: In test case 1, 320,000 tags were read every 30 seconds and transferred to MQTT and Influx.

Test case 2: Here, 800 template instances are used instead of 400 template instances per plug-in. This means that 640,000 tags are queried every 30 seconds.

OPC UA client connection

Deviations from default:

  • Quickstart – Timeout (ms): 240000
  • Security – Validate server application URI: true
  • Subscription – Register OPC tags at 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 – Max items per subscription soft limit: 1500
  • Advanced – OPC read mode: Asynchronous

Evaluation

Test case 1

Every 30 seconds, 320,000 data points were read and written to MQTT and InfluxDB, distributed across four plug-ins. After 30 minutes of runtime, the amount of data written to InfluxDB was checked.

Test case 2

Every 30 seconds, 640,000 data points were read and written to MQTT and InfluxDB, distributed across four plug-ins. After 30 minutes of runtime, the amount of data written to InfluxDB was checked.

Project files

Test case 1

Test case 2

Download KEPServer Ex – Benchmark Batch Read Server 1.opf

Download KEPServer Ex – Benchmark Batch Read Server 2.opf