Developers have many options for the development
of .NET OPC client applications. What's best depends on many factors and on
personal preferences.
The basic choices are the API and the communication.
Type of Application Interface
OPC client applications increasingly have to access different types of OPC servers. This can be accomplished with wrappers, either embedded in the client or as external converter servers.
The chosen application interface and the servers that need to be accessed determine the needed wrappers.
OPC defined interfaces are:
Classic OPC |
The classic OPC DA, HDA, AE specification define a C++ COM interface and a
COM Automation interface. For .NET the OPC Foundation provided sample .Net
wrapper code but didn't create a .NET API specification. |
XML DA |
The OPC XML DA specification was created in 2003. It defines .NET2 web
service SOAP messages for the functionality of OPC DA (Data Access). See OPC-DA / XML-DA
Comparison for an overview and comparison of the two OPC
specifications. |
OPC UA |
OPC UA was started in 2003 with the ambitious goal of a multi-platform
specification with the capability to model all kinds of systems. |
Type of Server Communication
The interface specification defines the communication supported by the server.
(D)COM
|
The Classic OPC Specification defines a COM interface. OPC DA, HDA, AE
servers are COM server and need to be accessed through (D)COM. |
.NET2 web services |
The .NET2 web services (ASMX) eliminate the DCOM remote communication limitations and configuration issues. However, the communication is restricted to HTTP and the security options are limited. The .NET2 based XML DA is available since 2003 and is often used to remotely access OPC DA servers through an XML DA gateway server. |
OPC UA |
OPC UA communication is either TCP or HTTP. The security handling and the
upper layer communication are UA specific to make it consistent on all
platforms. |
Products are available for many combinations of
API and server communication.
Application designers should decide the used
API based on:
Advosol offers the most complete set of client components, converter servers and server toolkits.
The Classic OPC DA (Data Access) interface is implemented in .NET classes. All OPC DA V2.05 and 3.0 features are supported. In a layered class structure the upper level classes provide server access features with a minimal amount of code. OPCDA.NET can be combined with OPCHDA.NET and OPCAE.NET for HDA (Historical data access) and Alarm&Events.
OPCAE.NET
client component
The Classic OPC AE (Alarms&Events) interface is
implemented in .NET classes. All OPC AE V1.1 features are supported. In a
layered class structure the upper level classes provide server access features
with a minimal amount of code. OPCAE.NET can be combined with OPCHDA.NET
and OPCDA.NET for HDA (Historical data
access) and DA (Data Access).
OPCHDA.NET
client component
The Classic OPC HDA (Historical Data Access) interface is implemented in .NET
classes. All OPC HDA V1.2 features are supported. In a layered class structure
the upper level classes provide server access features with a minimal amount
of code. OPCHDA.NET can be combined with OPCDA.NET
and OPCAE.NET for HDA (Historical data access) and
Alarm&Events.
EasyUA Client SDK
EasyUA implements a .NET interface with base layer classes with methods according the UA Communicatin Stack.
The application can full control of teh server communication.
Upper layer classes simplify the server access.
XMLDA.NET client
component
Thru the XML DA API the client application can access:
-
XML DA servers with .NET web services or WCF communication
- OPC DA
V2.05 and 3.0 servers
XMLDA.NET is especially well suited for web
client applications.
Used in combination with XDAGW-SS
server-side XML DA gateway, the client application can access local OPC DA
servers directly or remote server thru the XML DA gateway.