Skip to main content
Version: 5.4

OPC data transfer via transfer object

Systems

Host

Operating system: Windows 11
RAM: 32 GB
Processor: Intel i7-8700

virtual machines

OPC Router

Operating system: Windows Server 2022
RAM: dynamic, up to 16GB
Virtual processors: 8
OPC Router: 5.3.5008.157 (inraySDK version: 3.32.6002.24)

Test server

Operating system: Windows Server 2025
RAM: 8 GB
Virtual processors: 6
OPC Server: IoT Edge OPC UA PLC in Docker

Test setup

In the connections, a batch read transfer object or a data access transfer object was used to read 10 data points each. The data is sent to MQTT and also written to an Influx database.

Separate tests were carried out with DataChange triggers, time triggers and cron triggers. Performance was determined by comparing the expected number of executions with the actual number of executions.

OPC UA Client Settings

Some settings in the plugin were adjusted for the test.

SettingValue
Register OPC Tags on StartActive
OPC Read ModeAsynchronous
note

In this test, we deliberately pushed the OPC Router and the OPC server to and beyond their performance limits. Data rates of more than 19,500 tags per second were achieved.

Results when using the Cron Trigger

Using the Batch Read TO

ConnectionsData points (total)Trigger IntervalØ Executions / minExpected
1000100001 second6060

With OPC Data Access TO

ConnectionsData points (total)Trigger IntervalØ Executions / minExpected
1000100001 second6060

Results when using the data change trigger

note

At a data change rate of 250 ms, the sample rate in the plug-in was reduced to 250 ms.

With batch read transfer object

ConnectionsData points (total)Data changesØ Executions / minExpected
100010000500 ms118.9120
5005000500 ms120120
5005000250 ms192.2240
2502500250 ms198240
1001000250 ms199.4240

With OPC Data Access transfer object

ConnectionsData points (total)Data changesØ Executions / minExpected
100010000500 ms118,1120
5005000500 ms120120

Results when using the time trigger

note

Please note that the time trigger cycle is the time that is waited between executions.

With the batch read transfer object

ConnectionsData points (total)CycleExecutions / min
100010000500 ms114
5005000500 ms114
5005000250 ms215

Using the OPC Data Access transfer object

ConnectionsData points (total)CycleExecutions / min
100010000500 ms114
5005000500 ms114
5005000250 ms214
2502500250 ms214

Project files

Download Benchmark_CronTrigger_BatchRead_1000.rpe

Download Benchmark_CronTrigger_DataAccess_1000.rpe

Download Benchmark_DatachangeTrigger_BatchRead_1000.rpe

Download Benchmark_DatachangeTrigger_DataAccess_1000.rpe

Download Benchmark_TimeTrigger_BatchRead_1000.rpe

Download Benchmark_TimeTrigger_DataAccess_1000.rpe

Compose file for the OPC Server