Skip to main content
Version: 5.4

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: 64bit 2,6GHz (4 Kerne)
OPC Router: 5.3.5007.156

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

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

Projects

Two KEPServerEx projects

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

OPC Router projects

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

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

To summarise: In the first test case, 320,000 tags were read every 30 seconds and passed to MQTT and Influx.

Test case 2: Instead of 400 template instances per plugin, there are 800 template instances. This means that 640,000 tags are queried every 30 seconds.

Structure of the template instances (connections)

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 item count per request: true
  • Advanced – Maximum item count per request: 2500
  • Advanced – Max Items per Subscription Softlimit: 1500
  • Advanced – OPC read mode: Asynchronous

Evaluation

Test case 1

320,000 data points were read and written to MQTT and InfluxDB every 30 seconds across four plug-ins. After running for 30 minutes, a check was made to see how much data had been written to InfluxDB.

At 640,000 data records/minute, 100% of the data was transferred in our test

Test case 2

640,000 data points were read and written to MQTT and InfluxDB every 30 seconds across four plug-ins. After running for 30 minutes, a check was made to see how much data had been written to InfluxDB.

At 1,280,000 data records/minute, more than 99% of the data was transferred in our test

Project files

Download Benchmark_BatchRead_1600.rpe

Download Benchmark_BatchRead_3200.rpe

Download KEPServer Ex – Benchmark Batch Read Server 1.opf

Download KEPServer Ex – Benchmark Batch Read Server 2.opf