用C#开发OPC Client

本文介绍了如何使用C#语言开发.NET平台的OPC客户端,实现与基于COM的OPC数据存取服务器之间的数据交换。通过研究OPC NET COM包装器和设计模式,作者构建了一个OPC客户端软件,解决了COM到.NET平台的迁移问题。文章详细阐述了组件核心内容、服务器枚举和连接、组和项的增删、地址空间浏览以及数据读取的过程。
摘要由CSDN通过智能技术生成

转帖自 编程爱好者

 

研究C#程序与基于COM的OPC数据存取服务器交换数据
何海江
(湖南经济管理干部学院计算机系 ,湖南长沙 410004)
摘要:研究了OPC NET COM自动化包装器所封装的COM编排技术和OPC NET应用程序接口内的设计模式。在其基础上使用C#语言编写了一个基于.NET的OPC客户程序,与基于COM的OPC数据存取服务器交换数据。有效地实现了将遵循OPC规范的代码从COM平台移植到.NET平台。
关键词:C#;COM编排;数据存取服务器;设计模式

  Study C# program to exchange data with COM based OPC data access server
He Hai-jiang
      ( Department of Computer Science of Hunan Economic Management College ,Hunan Changsha 410004 )
Abstract: The marshal technique from OPC NET COM Wrapper and design patterns from OPC NET API are researched. An OPC client software based on .NET is built on the basis of these technique with C# language,it is employeed to exchange data with OPC data access server based on COM.It is effectively realized to migrate the code following OPC specifications from COM plantform to .NET plantform.
Key Words: C#;COM marshal;data access server;design pattern

   C#是微软为.NET平台量身订作的新程序语言,特别适合组件的开发,当前软件工业中许多产品的新版本逐步转移到的.NET平台。OPC是工业软件中广泛采用的数据交换协议,许多数据采集设备都要求提供实现OPC数据存取规范的服务器,和上层软件交换数据。因此研究在C#中实现OPC有很大的现实意义。OPC数据存取规范从1.0版本到2.05,再到3.0版本,微软的分布式应用软件开发平台从COM到.NET,导致了许多的不兼容问题。笔者从事的工业过程数据仓库系统中就存在这样的情况,许多供应商的OPC服务器是在COM平台开发的,而应用软件需要在.NET框架下实现,要求和已经安装好的那些COM平台服务器通讯,必须解决如何使OPC应用在两个平台间无缝迁移。
COM和.NET是两个差别很大的分布式应用软件开发平台,如果要在.NET 应用中使用COM对象,需要通过RCW(runtime-callable wrapper, 运行环境可调用包装器)在可管理的.NET代码和未托管的COM代码之间生成一个代理。Visual Studio.NET提供了一个工具类型库导入器TlbImp.exe,可以方便地提取COM程序的信息。实现了自动化接口的OPC服务器可以使用这种方法。但大多数的OPC服务器只实现定制接口,该方法无法实现,需要手工编排COM中的IDL(Interface Definition Language,接口定义语言),工作量非常大。编排过程中会遇到包括数据类型转换、接口实现、参数传递等许多问题的困扰,自动化软件要求高可靠性,要编写这样的软件,软件测试和维护的工作量很大。现在OPC基金会对会员提供了OpcRcw动态链接库,OPC NET COM 包装器和OPC NET API,前两者完成了前述的工作,后者将OPC复杂的规范封状成简单易用的C#类。本文分析了这些组件的核心代码,在此两种技术的基础上,建立一个.NET框架的OPC客户软件,与基于COM的OPC数据存取服务器交换数据。文中提供一个应用实例,代码全部使用C#实现,分五个步骤说明。
1 组件核心内容
OPC基金会提供的这些组件,包括源代码和部分文档,但文档部分比较简单,在软件设计过程中,大量使用了抽象工厂模式和策略设计模式。要理解这些设计模式,需要阅读这方面的书籍,设计模式经典书为Eri

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值