紫外工控论坛

 找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索

基于Visual C#的OPC客户端实现

2011-3-18 20:28| 发布者: 冰糖| 查看: 5282| 评论: 0

摘要: 摘 要:OPC是连接数据源(OPC服务器)和数据的使用者(OPC应用程序)之间的软件接口标准。这里以C#为开发工具,按照OPC技术的规范标准,将OPC技术应用到虚拟仪器显示组件中。具体实现了OPC客户端数据访问服务器的过程,接 ...


1.3 OPC通信方式
    OPC规范规定了两种通信方式:同步通信方式和异步通信方式。
    同步通信时,OPC客户程序对OPC服务器进行读写操作时,OPC客户程序必须等到OPC服务器对应的操作全部完成以后才能返回,在此期间OPC客户程序一直处于等待状态。如果有大量数据进行操作或者有大量OPC客户程序对OPC服务器进行读写操作,必然造成OPC客户程序的阻塞现象。因此同步通信适用于OPC客户较少,数据量较小时的场合。
    异步通信时,OPC客户程序对服务器进行读写操作时,OPC客户程序操作后立刻返回,不用等待OPC服务器的操作,可以进行其他操作。当0PC服务器完成操作后再通知OPC客户程序。因此,相对于同步通信和异步通信的效率更高,适用于多客户访问同一OPC服务器和大量数据的场合。

2 OPC客户端程序的设计方法
    (1)安装OPC自动化接口服务。在.NET环境下,点击“项目”子菜单下,“添加引用”,在弹出的对话框COM中选中“OPC DA Automation Wrapper2.02”项,点击“确定”按钮,这样才能使用自动化接口的服务。
    (2)连接OPC服务器。本例中使用的OPC服务器名为“ICONICS.Simulator OPCDA.2”。首先声明变量,这样才能触发事件(DataChange)来获取实时数据。连接不同的OPC服务器只要改变其服务器名称和OPC服务器所在的计算机名称即可。
    (3)添加组


    (5)OPC数据的读和写。对OPC服务器中的数据项数读可以通过group组的DataChange事件触发来读取。该事件有多个参数:其中:NumItems是指数据项的个数;ltemValues为数据项的数据;Qualities为数据项的品质;TimeStamps为数据项的更改时间;Cli—entHandles是数据项的标签索引,其所指的OPC标签的值在ItemValues(1)中,只有数据发生变化时才会触发该事件。也只会传输发生了变化的数据,没有变化的数据不会出现在本事件ItemValues中。使用C#事件处理机制,将DataChange注册到事件,一旦服务器端数据有变化,自动触发此过程,触发函数为:


    (6)断开OPC服务器。OPC客户端连接后占用服务器的资源,所以长时间不需要使用的OPC读写数据,则应及时断开OPC连接以释放资源。


    采用C#开发工具,按照OPC规范来实现OPC客户程序。OPC客户程序实现的功能有:通过OPC标准接口与OPC数据服务器连接,按照OPC服务器提供的Sine,Triangle,R8等波形数据,并取得OPC服务器中相关OPC点的数据,并对这些数据进行综合处理,实现各种波形图案,运行程序结果如图2所示。

3 结 语
    OPC规范的应用简化了OPC客户/服务器的开发过程,统一了数据存取的接口标准,将硬件供应商与应用软件开发者分离,使得软件开发者无需了解硬件的实质和操作过程,只要遵循OPC标准进行开发,就能够访问OPC服务器中的数据,大大简化了过去传输数据的复杂过程。在此介绍了在Visual C#环境下,遵循OPC标准提出了基于OPC技术的系统设计方案及数据接口开发关键代码,以快速、高效地进行底层数据采集,安全、灵活的数据处理,便捷的图形界面,为虚拟仪器提供了崭新的解决方案,具有较大的应用价值。

12

鲜花

握手

雷人

路过

鸡蛋

--------------------------------------------------------------------------------------------------------------------
本站是工控技术交流站点,论坛内容均为网络收集或会员所发表,并不代表本站立场,会员拥有该内容的所有权力及责任!
本站内容如有侵犯您的版权,请按下面方式联系本站管理员,我们将及时删除处理
管理员:冰糖 QQ:5483695(请直击主题), Mail:admin#ziwai.net(#改成@) 其它非本人.
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论!

QQ|Archiver|手机版|小黑屋|紫外工控论坛. ( 苏ICP备11032118号-1 )

GMT+8, 2024-5-18 20:24 , Processed in 0.296877 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

返回顶部