OPC DA / XML DA Benchmarks
The following tables list measured access times to OPC DA and .NET3 XML DA servers from .NET OPC DA and .NET3 XML DA client applications.
All combinations are measured in the same test environment and allow a realistic performance comparison.
The results can be summarized as:
· DCOM is significantly faster than WCF (.NET3) for local server access but not so much for remote server access.
· The OPC DA server access through an XML DA to OPC DA wrapper has the same performance as the access through an OPC DA specific .NET wrapper.
Conclusions:
For local access OPC DA servers have an advantage. Performance is better and DCOM configuration is manageable. For remote server access it’s better to use XML DA. DCOM issues are eliminated with not much performance costs and the WCF communication protocol can be selected according the performance and security requirements.
Client applications can be built as XML DA web service clients for access to both types of servers. The performance of XML DA to OPC DA wrappers and OPC DA .NET wrappers is about the same.
Benchmark Measurements:
Benchmark measurements were made for server access methods that are important for the server access performance.
Subscription data change callbacks were measured in percent CPU and network load.
OPC DA callbacks transfer data similar to a read result. Performance is improved with longer update intervals because more data is combined into one communication round-trip. However, with longer intervals the latency is increased and value changes may get lost in the server. The XML DA Subscribe call is made only once and performance is therefore not of much importance. The XML DA servers (and the XMLDA.NET internal wrapper) buffer value changes of subscribed items so that changes don’t get lost even if the client polls in rather long intervals. Poll calls can be slower or faster than read calls, depending on the amount of buffered data.
Access to a remote server through a wireless network
The time of 100 server calls were measured and are listed as execution times in milliseconds per call. The time includes client handling, communication and server handling.
|
OPCDA.NET Client |
XMLDA.NET Client
|
OPC DA Server |
OPC DA Server |
.NET3 XML DA Server binary TCP binding |
.NET3 XML DA Server basic HTTP binding |
.NET3 XML DA Server secure wsHTTP binding |
GetStatus |
3 |
3 |
5 |
15 |
30 |
Browse Root Branch (DA3) |
601 (10) 2 |
601 |
7 |
16 |
31 |
Read 10 items |
5 |
5 |
8 |
17 |
31 |
Write 10 items |
5 |
5 |
8 |
17 |
31 |
GetProperties of 10 items |
1101 (17) 2 |
1101 |
20 |
40 |
55 |
Data Change Callbacks 3 |
17% / 5% |
16% / 6% |
14% / 15% |
18% / 14% |
22% / 23% |
Notes:
The server access times are mainly communication times and therefore strongly dependent on the network speed. 1 Browse and GetProperties are slower for an OPC DA V2 server because a number of server calls are required to get the same set of data.
2 The client uses OPC DA V3 specific server methods.
3 The CPU / Network load for callbacks with 1000 value changes every 200ms.
Access to a local server
The time of 100 server calls were measured and are listed as execution times in milliseconds per call. The time includes client handling, communication and server handling.
|
OPCDA.NET Client |
XMLDA.NET Client
|
OPC DA Server |
OPC DA Server |
NET3 XML DA Server binary TCP binding |
.NET3 XML DA Server basic HTTP binding |
.NET3 XML DA Server secure wsHTTP binding |
GetStatus |
0.2 |
0.2 |
4 |
5.5 |
8 |
Browse Root Branch (DA3) |
31 (0.8) 2 |
133 |
5 |
6.5 |
9 |
Read 10 items |
0.2 |
0.3 |
6 |
7 |
10 |
Write 10 items |
0.2 |
0.3 |
6 |
7 |
10 |
GetProperties of 10 items |
3.61 (1.4) 2 |
41 |
12 |
12 |
18 |
Data Change Callbacks 4 |
15% |
14% |
11% |
11% |
18% |
Notes:
1 Browse and GetProperties are slower for an OPC DA V2 server because a number of server calls are required to get the same set of data.
2 The client uses OPC DA V3 specific server methods.
3 Browsing OPC DA2 servers from an XMLDA.NET client is slower because more server calls are required to collect all the data needed for an XML DA compliant browse result.
4 The CPU / network load for callbacks with 1000 value changes every 200ms.
Test Environment
The test computers with 1.8GHz processors and Windows Vista communicate over an 802.11g wireless network.
Client applications:
· OPC DA Client |
C# Windows Forms application that uses the Advosol OPCDA.NET client component for the OPC DA server access.
|
· XML DA Client |
C# Windows Forms application that uses the Advosol XMLDA.NET client component. The OPC DA server is accessed through the XMLDA.NET internal XML DA to OPC DA wrapper. The XML DA server is accessed as a .NET3 (WCF) service, using: a) the binary TCP binding b) the basicHTTP binding c) the secure wsHTTP binding |
Servers
|