OPC是OLE for Process Control的缩写,即应用于工业控制OLE。OLE是Object Linking and Embedding的缩写,即对象的链接和嵌入。OLE是一种软件技术,最初为了实现复合文档,以COM/DCOM技术为基础。
一提到OPC开发,首先给人的感觉是比较高深的技术,既需要COM/DCOM知识又需要了解OPC的技术标准,让人有些望而却步。其实“事情不像我想象”,OPC开发工作做起来也很简单。
首先,过COM/DCOM关。COM/DCOM是一种软件技术(或标准),规定了一个对象如何向其他对象暴露自身的接口。这个规定可以简单地理解为:要求DLL提供一个周知的接口,通过此接口可以知道DLL提供的其他函数接口,编程也不难,依葫芦画瓢,网上葫芦很多。
其次,过OPC关。因为OPC是基于COM技术的,所以OPC的规范就是“规定支持的接口”,但仅仅了解接口规范还不够,您需要了解OPC的内部工作机制才能开始OPC编程,如接口之间的关系,接口中参数,什么是刷新周期,同步异步读写的区别等,为此您需要阅读OPC规范。
最后,应用关。过了前两关,您就可以将OPC应用到您的实际工作中了。这是灵活运用,您自己的事了。
一:咱是做OPC开发,而不是想精通COM技术,所以对COM,我们只做一般了解,能够应付OPC开发就可以了。COM技术“规定了一个对象如何向其他对象暴露自身的接口”,那么它就涉及两方面的对象,提供接口的对象-服务器,和使用接口的对象-客户端。如果您是做客户端开发,只需要知道如何使用COM服务器就可以了,本文介绍OPC客户端的开发,关于服务器开发,在后续文章中介绍。
使用COM服务器四个步骤:
1、 初始化COM库
2、 启动COM SERVER
3、 调用接口函数
4、 关闭COM库
下面是一个列举本机OPC2.0组件的代码,包含上述4个步骤。本例中
CLSID_StdComponentCategoriesMgr
是
COM Server
的标识,
EnumClassesOfCategories
是
COM Server
提供的接口。
#include
"stdafx.h"
//
使用
COM
#define
_WIN32_DCOM
#include
"comcat.h"
#include
"objbase.h"
static
const CATID CATID_OPCDAServer20 = { 0x63d5f432, 0xcfe4, 0x11d1, { 0xb2, 0xc8, 0x0, 0x60, 0x8, 0x3b, 0xa1, 0xfb } };
int
_tmain(int argc, _TCHAR* argv[])
{
//
初始化
COM
库
HRESULT hr = CoInitializeEx (NULL, COINIT_MULTITHREADED);
if (SUCCEEDED (hr))
{
//
创建
COM Server
实例
ICatInformation *pCat = NULL;
hr = CoCreateInstance (CLSID_StdComponentCategoriesMgr,
NULL,
CLSCTX_SERVER,
IID_ICatInformation,
(void **)&pCat);

本文介绍了OPC(OLE for Process Control)的基本概念,并详细讲解了OPC客户端开发的步骤,包括初始化COM库、创建COM Server实例、列举本机OPC2.0组件以及连接和操作OPC服务器。示例代码演示了如何列举OPC服务器和使用接口进行浏览。
最低0.47元/天 解锁文章
530

被折叠的 条评论
为什么被折叠?



