欢迎来到天天文库
浏览记录
ID:36618090
大小:1.49 MB
页数:71页
时间:2019-05-09
《COM技术和OPC技术》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、COM技术及OPC技术主要内容COM基础知识OPC的概念OPC的作用OPC基础知识实验室OPC组相关的工作一、COM基础知识COM(ComponentObjectModel,组件对象模型)是Microsoft创建并已取得广泛认可的一种组件标准。在COM标准中,COM对象被很好的封装起来,客户无法访问对象的实现细节,提供给用户的唯一的访问途径是通过COM接口来访问。对于COM接口有两方面的含义:首先它是一组可供调用的函数,由此客户可以让该对象做某些事情;其次,接口是组件程序及其客户程序之间的协议。也就是说接口不但定义了可用什
2、么函数,也定义了当调用这些函数时对象要做什么。COM提供了编写组件的一个标准方法,遵循COM标准的组件可以被组合起来以形成应用程序。组件和客户之间通过“接口”来发生联系,至于这些组件是谁编写的、如何实现的都是无关紧要的。IOPCAsyncIO:publicIUnknown{public:virtualHRESULTSTDMETHODCALLTYPERead(/*[in]*/DWORDdwConnection,/*[in]*/OPCDATASOURCEdwSource,/*[in]*/DWORDdwCount,/*[size
3、_is][in]*/OPCHANDLE__RPC_FAR*phServer,/*[out]*/DWORD__RPC_FAR*pTransactionID,/*[size_is][size_is][out]*/HRESULT__RPC_FAR*__RPC_FAR*ppErrors)=0;virtualHRESULTSTDMETHODCALLTYPEWrite(/*[in]*/DWORDdwConnection,/*[in]*/DWORDdwCount,/*[size_is][in]*/OPCHANDLE__RPC_FAR*p
4、hServer,/*[size_is][in]*/VARIANT__RPC_FAR*pItemValues,/*[out]*/DWORD__RPC_FAR*pTransactionID,/*[size_is][size_is][out]*/HRESULT__RPC_FAR*__RPC_FAR*ppErrors)=0;virtualHRESULTSTDMETHODCALLTYPERefresh(/*[in]*/DWORDdwConnection,/*[in]*/OPCDATASOURCEdwSource,/*[out]*/D
5、WORD__RPC_FAR*pTransactionID)=0;virtualHRESULTSTDMETHODCALLTYPECancel(/*[in]*/DWORDdwTransactionID)=0;};OPC与COM间关系OPC(OLEforprocesscontrol)是建立在微软公司OLE/COM技术基础上。COM技术的出现为简单地实现控制设备和控制管理系统之间的数据交换提供了技术基础。但如果不提供一个工业标准化的COM接口,各个控制设备厂家开发的COM组件之间的相互连接仍然是不可能的。OPC是作为工业标准定义的
6、特殊的COM接口。对相关COM技术的理解是对OPC技术理解的关键所在。OPC技术还有着它本身的独特性,理解了COM技术只是理解OPC技术的第一步。COM组件的特点遵循COM规范编写的组件具有以下特点:COM组件是以二进制的形式发布,所以COM组件是完全与语言无关的。COM组件可以在不妨碍老客户的情况下被升级。COM提供了一种实现同一组件不同版本的标准方法。升级其实就是在现有的组件上增加新的接口就可以了。COM组件可以透明地在网络上被重新分配位置。对远程机器上的组件同本地机器上的组件的处理方式没有什么差别。COM组件是一种给
7、其他应用程序提供面向对象的API服务的极好方法。COM接口客户程序和组件程序通过接口进行相互之间的通信。组件程序就是通过接口暴露它的功能给客户程序的,而COM客户程序是不可能看见组件对象本身的。仅有接口是可见的,它告诉客户程序能利用组件能干什么,如何利用它的功能。在组件内,接口以虚函数表的形式实现的。实际上,COM标准就是标准的接口和使用它所需协议的描述,所以说接口是COM允许对象跨进程、跨计算机进行交互的关键技术。接口的定义、结构与分类COM对于接口的定义和接口的实现作了严格的区分。通过下面的IUnknown接口可以知道
8、,在接口中只有接口方法的描述,而没有实现。COM接口的名字以字母I打头。其中IUnknown接口最重要,因为所有其它接口都是从IUnknown接口直接或间接继承而来的。IUnkown接口定义了三个方法:1、HRESULTQueryInterface([in]REFIIDriid,[out]void**p
此文档下载收益归作者所有