vc环境下的opc客户端程序开发论文

vc环境下的opc客户端程序开发论文

ID:25872928

大小:49.50 KB

页数:5页

时间:2018-11-23

vc环境下的opc客户端程序开发论文_第1页
vc环境下的opc客户端程序开发论文_第2页
vc环境下的opc客户端程序开发论文_第3页
vc环境下的opc客户端程序开发论文_第4页
vc环境下的opc客户端程序开发论文_第5页
资源描述:

《vc环境下的opc客户端程序开发论文》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、VC环境下的OPC客户端程序开发论文.freel。OPC服务器对象维护有关服务器的信息并作为OPC组对象的包容器,能够动态地创建和释放组对象;OPC组对象除了维护有关自身的信息之外,还提供了包容OPC项的机制,从逻辑上管理OPC项。它提供了客户组织数据的一种方法,客户可以对其进行读写,还可以设置客户端的数据更新速率。当服务器缓冲区内的数据发生改变时,OPC将向客户发出通知,客户得到通知后再进行必要处理,而无需浪费大量的时间进行查询;OPC项则表示了与OPC服务器的连接,它并不提供对外接口,客户端不能直接对其进行操作,而是通过组对象对其进行操作的。图1表示了这3类对

2、象的相互关系以及它们与OPC客户端程序之间的关系。图1OPCDA服务器对象与OPCDA客户端的对应关系2.2OPC数据访问方式OPC客户端在对OPC服务器进行数据访问时,可以选择两种不同的访问方式,即同步访问方式和异步访问方式。其中同步访问方式的实现相对简单,OPC服务器将OPC应用程序所要求得到的数据访问结果作为方法引数返回给OPC应用程序,此时OPC应用程序一直处于等待状态,直到结果被返回为止。当客户数目较少并且与服务器交互的数据量也较少的时候可以采用同步访问方式。与此相对,异步访问方式的实现较为复杂,OPC服务器接到OPC应用程序的要求后,立即将方法引数返回

3、,OPC应用程序随后可以进行其它处理。当OPC服务器完成数据访问时,触发OPC应用程序的异步访问完成事件,将数据访问结果传送给OPC应用程序,OPC应用程序在VC的事件处理程序中接收从OPC服务器传来的数据。当有大量客户和大量数据交互时,异步访问方式的效率更高,能够避免客户数据请求的阻塞,从而最大限度的节省CPU和网络资源。图2和图3分别表示了两种数据访问方式的处理过程。图2同步数据访问处理图3异步数据访问处理3VC环境下OPC客户端程序设计OPC客户端程序在设计时需要遵守OPC数据访问规范,实现规范所规定的全部必需接口。同时,客户端模块需要有独立的设备连接界面和

4、监控运行界面,并能够支持多服务器的连接。下面详细介绍VC环境下的OPC客户端程序开发步骤,并给出关键源代码:(1)包含OPC头文件。首先创建新的工程,编辑StdAfx.h文件,加载opcda.h、op.h、opcerrors.h、opcprops.h、opcquality.h以及opcda_i.c、op_i.c文件。(2)初始化库。由于OPC是基于技术制定的,所以在使用接口类之前必须首先使用CoInitialize(NULL)函数对库进行初始化,如果成功,函数返回值等于S_OK。HRESULTh1;h1=CoInitialize(NULL);if(h1!=S_OK

5、)return(FAUSE);(3)通过OPC服务器的ProgID查询注册表中相关CLSID。每个服务器都有一个字符串型的ProgID,通过ProgID可以得到全球惟一的CLSID,使用CLSIDFromProgID()函数实现ProgID到CLSID的转换。h1=CLSIDFromProgID(ProgID,CLSID);(4)连接OPC服务器,查询对象的IID_IOPCServer接口。在连接OPC服务器前,OPC客户端需要事先指定计算机名和OPC数据访问服务器名,建立连接后,创建OPC组并添加OPC数据项。h1=CoCreateInstance(clsid,

6、NULL,CLSCTX_LOCAL_SERVER,IID_IOPCServer,(void**)m_OPCServer);(5)创建OPC组,查询IOPCItemMgt接口。IOPCServer接口的AddGroup()方法可以创建一个有指定名称和属性的OPC组。h1=m_IOPCServer-AddGroup(L,””,TRUE,800,111,TimeBias,PercentDeadBand,LOCAL_ID,m_GrpSrvHandle,RevisedUpdateRate,IID_IOPCItemMgt,(LPUNKNOgt);(6)添加OPC数据项。使用I

7、OPCItemMgt接口的AddItem()方法可以添加具有特殊属性的指定数量的数据项。pOPCItemMgt-AddItems(ItemNumber,ItemArray,(OPCITEMRESULT**)pItemResult,(HRESULT**)pErrors);(7)OPC的数据项读写。对OPC数据项的读写可以有同步与异步之分,对于大量的数据传输,异步是更佳的选择,但对少量的数据传输,同步表现得更好。本程序采用异步访问方式,需要指向IOPCAsyncIO2指针。h1=m_IOPCItemMgt-QueryInterface(IID_IOPCAsyncIO2

8、,(voi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。