What is an OPC .NET Wrapper ?
An OPC .NET wrapper is a software layer that makes OPC COM servers accessible from a .NET client application.
Largely different pieces of software, that can hardly be compared, fit this description and are rightfully called OPC .NET wrappers. This documents explains the different software layers that are or can be part of an OPC .NET wrapper.
The aim of this document is to give an overview and help determine what kind of wrapper should be chosen in a specific application.

Run-time callable wrapper (RCW)
This layer is required in each OPC .NET wrapper. It does handle the call of a COM server method from a .NET application. This is all it does. Data type conversions and dynamic memory allocations need to be handled outside the RCW.
COM Interop
This layer handles data type conversions and dynamic memory allocation. Strings, variants, arrays etc. need to be converted when passed to the COM server or returned from it. This is the most difficult layer in a .NET wrapper. It is error prone and can introduce memory faults and memory leaks if not done properly. It takes months of development and testing to write such a software layer.
.NET API
The OPC Foundation has not yet standardized the .NET API. Each wrapper product and custom implementation has therefore a different application interface and oriented on different goals:
- Modeled after the OPC DA ( respectively AE or HDA ) specification.
Supporting the OPC server functions on-to-one gives highest performance. Having an identical set of functions does not standardize the API. The OPC DA method interface has to be adapted to .NET data types, which can be done in different ways. - Optimized for certain applications, such as e.g. ASP applications.
Such an API is easier to use, on cost of flexibility. - According the XML-DA specification.
The XML-DA standard specifies SOAP messages and .NET makes a transformation into method calls. A wrapper with the same API as generated for the XML-DA web services can be used in place of the web service stub. Clients can be developed as XML-DA client applications and still access OPC DA (COM) servers. - OPC-DA and XML-DA combination.
Both types of servers can be accessed through the same API. Since the OPC-DA interface has far more features, the wrapper has to simulate features that are not available in XML-DA. A lot of OPC DA emulation is required when the newer XML-DA type servers are accessed. Typically APIs are optimized for the newest standard and emulation is done to provide compatibility with older standard.
Helper Methods
Helper methods can simplify usage. For example the OPC DA 2 browse interface is very basic. Helper methods can make features more convenient to use and e.g. provide a browse interface according the OPC DA 3 specification. Another example are DirectIO read/write methods. OPC DA 3 specifies such easy to use methods. The .NET wrapper can offer such methods also for OPC DA 2 servers.
Helper methods can address features that are not directly related to server access, such as reading item definition arrays from an XML file.
OPC .NET Wrapper Products
The remarks above illustrate that an OPC .NET wrapper is a rather complex software component that can be implemented differently. A number of vendors offer such implementations. A overview can be found atwww.opcconnect.com/dotnet.php
To select a product the user needs to determine what's important in his applications:
- Type of client applications ( Windows, ASP, ASP.NET, etc. )
- Type of servers to be accessed, now and in the future ( OPC DA, AE, HDA, XML-DA )
- Performance requirements
Development Tools
Listed above are components that are required in the wrapper to access the server.
A good software component should not only provide these features but also good support for the application development process. That includes wizards, documentation and utilities for configuration and test support.
Wizards
Wizards can greatly simplify the project creation process and reduce the training requirements. Wizards can be added to Visual Studio and can create a client application that contains the server access components selected in the wizard dialog. The application development can start on a simple but functional code that contains the needed elements.
Documentation
Extensive documentation is essential for the efficient use of software components. The documentation can be provided as HTML, Windows CHM help file or it can be integrated into Visual Studio for context sensitive help.
Utilities
Utilities provided with the wrapper product eliminate the need to develop such tools as part of the project. Often needed utilities are:
| Test Clients | Test clients are are an important reference tools in case of problems with the client application. The test client should use the same .Net wrapper. |
| Configuration Tools | If clients use a predefined set of items then it's good practice to define these items in an XML configuration file. The wrapper product can supply a helper class to load the XML file and a Windows application to created/modify the XML file. |
What is an OPC .NET Wrapper ?的更多相关文章
- OPC and .NET
Note: recent OPC standards, including Unified Architecture (UA) and Express Interface (Xi) were desi ...
- 用C#开发基于自动化接口的OPC客户端
OPC全称是Object Linking and Embedding(OLE) for Process Control,它的出现为基于Windows的应用程序和现场过程控制应用建立了桥梁.OPC作为一 ...
- C#实现 OPC历史数据存取研究
来源:http://blog.csdn.net/gjack/article/details/5641794 C#实现 OPC历史数据存取研究 (原文)Research of Accessing the ...
- (OPC Client .NET 开发类库)网上很多网友都有提过,.NET开发OPC Client不外乎下面三种方法
1. 背景 OPC Data Access 规范是基于COM/DCOM定义的,因此大多数的OPC DA Server和client都是基于C++开发的,因为C++对COM/DCOM有最好的支持.现在, ...
- 关于OPC自动化接口编程(OPCDAAuto.dll)几点注意问题
为了能够在工作中方便的应用OPC和充分的理解OPC的开发流程.内部机制,这两天正在研究开发OPC客户端程序,一般我们开发OPC客户端程序有以下几种方式: (1) 使用OPCNetAPI,需 ...
- gradlew wrapper使用下载到本地的gradle.zip文件装配--转
原文地址:http://www.myexception.cn/mobile/1860089.html gradlew wrapper使用下载到本地的gradle.zip文件安装.使用gradlew来b ...
- Could not find or load main class org.gradle.wrapper.GradleWrapperMain解决办法
解决办法: gradlew is the gradle wrapper executable - batch script on windows and shell script elsewhere. ...
- 使用Windows Service Wrapper快速创建一个Windows Service
前言 今天介绍一个小工具的使用.我们都知道Windows Service是一种特殊的应用程序,它的好处是可以一直在后台运行,相对来说,比较适合一些需要一直运行同时不需要过多用户干预的应用程序,这一类我 ...
- [发布]SuperIO v2.2.5 集成OPC服务端和OPC客户端
SuperIO 下载:本站下载 百度网盘 1.修复串口号大于等于10的时候导致IO未知状态. 2.优化RunIODevice(io)函数内部处理流程,二次开发可以重载这个接口. 3.优化IO接收数据, ...
随机推荐
- 洛谷P2812校园网络
传送门啦 其实这个题只要读懂分析好题意就不是很难. 就是将一个有向图进行缩点操作,把一个强连通分量看成一个点,求入度为 0 的点和出度为 0 的点各有多少. 在这里先向大家推荐两个题目,建议大家先去看 ...
- Maven3核心技术(笔记三)
第一节:Maven仓库概念 Maven 远程仓库配置文件:$M2_HOME/lib/maven-model-builder-3.3.3.jar 文件:org\apache\maven\model\po ...
- 最大子段和(Max Sum)
Max Sum. The following is an instance. a) (-2,11,-4,13,-5,-2) 思路: 最大子段和:给定一个序列(元素可正可负),找出其子序列中元素和 ...
- 选择性卸载eclipse安装过的工具
我们有时候需要卸载eclipse中之前安装的一些工具,而不想全部删除,那就可以采取下面的方式: 打开eclipse,Help->About Eclipse->Installation De ...
- hdu 1028 整数划分 (母函数)
假如输入44 = 4;4 = 3 + 1;4 = 2 + 2;4 = 2 + 1 + 1;4 = 1 + 1 + 1 + 1;一共5种 假如输入3 用母函数的方法就是写成(1+X+X2+X3)(1+X ...
- MySQL慢查询优化
MySQL数据库是常见的两个瓶颈是CPU和I/O的瓶颈,CPU在饱和的时候一般发生在大量数据进行比对或聚合时.磁盘I/O瓶颈发生在装入数据远大于内存容量的时候,如果应用分布在网络上,那么查询量相当大的 ...
- canvas 笔记整理
canvas Retina 屏幕优化 /** * HiDPI Canvas Polyfill (1.0.9) * * Author: Jonathan D. Johnson (http://jonda ...
- HDU 4443 带环树形dp
思路:如果只有一棵树这个问题很好解决,dp一次,然后再dfs一次往下压求答案就好啦,带环的话,考虑到环上的点不是 很多,可以暴力处理出环上的信息,然后最后一次dfs往下压求答案就好啦.细节比较多. # ...
- Ubuntu16.04下HBase的安装与配置
一.环境 os : Ubuntu 16.04 LTS 64bit jdk : 1.8.0_161 hadoop : mysql : hive : hbase: -hadoop2 安装HBase前,系统 ...
- Failed to load JavaHL Library. SVN
以前使用的电脑是32位的,安装的svn可以正常使用,但是现在的电脑室64位的,安装好svn后,把项目提交到svn的过程中,总是弹出来一个错误的对话框: Failed to load JavaHL Li ...