Skip to main content
Version: 5.4

OPC data transfer via transfer object in 500ms

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 data change triggers, time triggers and cron triggers. Performance was determined by comparing the expected number of executions with the actual number of executions.

note

The deviations in the tables were rounded to the nearest five.

note

In this test, we deliberately pushed the OPC Router and the OPC server to and beyond their performance limits. Data rates of up to 20,000 tags per second were achieved.

Results when using the cron trigger

With the batch read TO

ConnectionsData pointsTrigger intervalExpected executionsDeviationPlug-in count
2000200001 second5000 - 102
1000100001 second500TBD1

With the OPC Data Access TO

ConnectionsData PointsTrigger IntervalExpected executionsDeviationPlug-in count
1000100001 second5000 - 51

Results when using the data change trigger

With batch read transfer object

note

At a data change rate of less than 500 ms, the sample rate was adjusted accordingly in the plug-in.

ConnectionsData points (total)Data changesExpected executionsDeviationPlug-in Number
1001000500 ms50001
2502500500 ms50001
5005000500 ms5000 - 201
100010000500 ms50055 - 801
50500250 ms500TBD1
100100050 ms500TBD1
250250050 ms500TBD1
500500050 ms500TBD1

With OPC Data Access Transfer Object

ConnectionsData points ReadData changesExpected executionsdeviationPlug-in Number
1001000500 ms50001
2502500500 ms5005 - 301
5005000500 ms50025 - 401
1000100005 00 ms50020 - 601
50500250 ms500TBD1
100100050 ms500TBD1
250250050 ms500TBD1
500500050 ms500TBD1

Results when using the time trigger

note

Please note that the time trigger interval is the time that is waited between executions. Since the execution time is not included in the calculation, the time trigger already results in a difference. Therefore, the number of expected executions cannot be achieved exactly here, but only as an approximation.

Using the batch read transfer object

ConnectionsData pointsTrigger IntervalExpected executionsdeviationPlug-in Number
1001000500 ms500TBD1
2502500500 ms50 030 - 351
5005000500 ms50030 - 351
100010000500 ms50050 - 601
50500250 ms500TBD1
1001000250 msnullTBD1
2502500250 ms500TBD1
5005000250 ms500TBD1

With the OPC Data Access transfer object

< td>250 ms

ConnectionsData pointsTrigger IntervalExpected executionsdeviationPlug-in Number
1001000500 ms50001
2502500500 ms50030 - 351
5005000500 ms500301
100010000500 ms50060 - 701
50500250 ms500TBD1
1001000250 ms500TBD1
2502500250 ms500TBD1
5005000500TBD1