有关OPC的问题!

Painot 2012-11-15 04:57:21
我想要做一个OPCClient,我只知道有几个步骤,但是具体的我就不知道了,也尝试着找了点资料看下,但是看不出个所以然来,所以希望在这里能遇见几个会的指点一下,谢谢!
第一步,初始化COM库
HRESULT r1;
r1 = CoInitialize(NULL);
if(SUCCESS(r1))
{
MessageBox(NULL,"初始化COM库成功!","COM库",MB_OK);
}
else
{
MessageBox(NULL,"初始化COM库失败!","Error Initialize()",MB_OK);
}
第二步,将ProgID转化成CLSID
CLSID clsid;
r1 = CLSIDFromProgID(L"",&clsid);//L后面的我不知道填什么东西,看网上的资料好像是什么注册表的 什么的,我不是很明白,求真相,谢谢!
if(r1 !=S_OK)
{
CoTaskMemFree(&clsid);//释放对象
m_pIOPCServer = NULL;//服务器对象实例句柄
CoUninitialize();//释放内存
}
第三步,创建实例
r1 = CoCreateInstance(clsid,NULL,CLSCTX_LOCAL_SERVER,IID_IOPCServer,(void**)&m_pIOPCServer);//这里面的几个参数我也不知道具体的是什么意思,虽然在MSDN里面有,但是看着不是怎么理解,望解释!
if(r1 != S_OK)
{
CoTaskMemFree(&clsid);
m_pIOPCServer = NULL;
CoUninitialize();
}
第四步,添加组
r1 = m_pIOPCServer->AddGroup(L"",FALSE,500,1,&TimeBias,&PercentDeadband,LOCAL_ID,&m_GrpSrvHandle,&ReviseUpdateRate,IID_IOPCItemMgt,(LPUNKNOWN*)&m_pIOPCItemMgt);
if(r1 == OPC_S_UNSUPPORTEDRATE)
{
szErrorText.Format("Revised Update Rate %d is different from Requested UpdateRate 500",ReviseUpdateRate);
}
//添加组,里面的参数什么的,因为我在MSDN里面没有找到相应的函数,有的也只有一个参数的,根本就不能对照着来看
m_Item[0].szAccessPath = L"";
m_Item[0].szItemID = L"";
m_Item[0].bActive = TRUE;//激活标识
m_Item[0].hClient = 1;
m_Item[0].dwBlobSize = 0;
m_Item[0].pBlob = NULL;
m_Item[0].vtRequestedDataType = 2;//2标识int 型

第五步:添加项
r1 = m_pIOPCItemMgt->AddItems(1,m_Item,&m_pItemResult,&m_pErrors);
if(m_pItemResult[0].dwAccessRights != (OPC_READABLE+OPC_WRITEABLE))
{
//输出错误信息
}
r1 = m_IOPCItemMgt->QueryInterface(IID_IOPCGroupStateMgt,(void**)&m_pIOPCGroupStateMgt);//同步通讯方式

之后就是Read和Write了,我想理解多的一点有关于DCOM模式的OPC通讯!
...全文
326 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
云海玉弓缘 2015-01-18
  • 打赏
  • 举报
回复
请问客户端读到的数据时间戳老和本地事件差8个小时怎么解决?
Yo1988 2015-01-13
  • 打赏
  • 举报
回复
@lyshuai2008 小弟我也刚刚要学习这个OPC,也是遇到跟你一样的问题,也是一样的困惑,求帮忙指导下,万分感谢!!!
一个世纪 2013-09-10
  • 打赏
  • 举报
回复
Painot 2012-12-21
  • 打赏
  • 举报
回复
嗯,谢谢你们了,通过自己的摸索,也算是小小的成功了一把,已经把OPCClient拿下了!接分咯!
Painot 2012-11-18
  • 打赏
  • 举报
回复
都没有人知道OPC的相关信息么?还是说舍不得说下啊!无语啊!
oyljerry 2012-11-18
  • 打赏
  • 举报
回复
一个是学习COM组件的调用方式,另一个是学习OPC协议的相关标准等,这样就可以比较好理解这些调用顺序以及为什么了
zhouzhipen 2012-11-18
  • 打赏
  • 举报
回复
OPC只是一套通用的工业标准,其本质还是COM组件,OPC的接口都有相应的标准,(注意:这个不是MS的标准,MSDN上是查不到的)。 而且这个标准几句话也说不清楚,还是去查查相关专业的资料吧
1 OPC的基础知识..................................................................................................... 1 1.1 OPC的开发背景和历史..................................................................................... 1 1.1.1 为什么需要OPC ......................................................................................... 1 1.1.2 OPC怎样解决你的问题.............................................................................. 1 1.1.3 OPC的历史................................................................................................. 3 1.1.4 OPC现状和发展......................................................................................... 3 1.2 什么是OPC........................................................................................................ 4 1.2.1 基于COM技术的OPC................................................................................. 4 1.2.2 OPC和DDE的比较..................................................................................... 5 1.2.3 OPC适用于哪些地方.................................................................................. 6 1.3 OPC的概要........................................................................................................ 7 1.3.1 OPC服务器和包装DLL .............................................................................. 7 1.3.2 OPC的主要功能......................................................................................... 9 1.4 VB的对象.........................................................................................................12 1.4.1 Visual Basic对象.........................................................................................12 1.4.2 VB的集合对象...........................................................................................14 1.5 OPC的对象.......................................................................................................14 1.5.1 OPC对象的分层结构.................................................................................15 1.5.2 OPC标签....................................................................................................16 1.5.3 服务器句柄................................................................................................16 1.5.4 OPC服务器对象........................................................................................16 1.5.5 OPC组集合对象........................................................................................19 1.5.6 OPC组对象................................................................................................21 1.5.7 OPC标签集合对象.....................................................................................28 1.5.8 OPC标签对象............................................................................................30 1.5.9 OPC浏览器对象........................................................................................30 2 使用VISUAL BASIC开发OPC应用程序............................................................ 32 2.1 建立一个VISUAL BASIC工程.............................................................................32 2.1.1 启动Visual Basic .........................................................................................32 2.1.2 设置OPC包装DLL.....................................................................................32 2.2 建立一个OPC对象...........................................................................................34 2.2.1 变量声明....................................................................................................34 2.2.2 连接OPC服务器和建立OPC组..................................................................35 2.2.3 添加OPC标签............................................................................................35 2.2.4 断开OPC服务器........................................................................................36 2.3 同步数据读写...................................................................................................37 2.3.1 窗体设计....................................................................................................37 2.3.2 命令按钮的事件处理.................................................................................38 2.3.3 同步数据读取............................................................................................39 2.3.4 同步数据写入............................................................................................40 2.3.5 运行结果....................................................................................................41 2.4 异步数据读写...................................................................................................42 2.4.1 OPC对象声明的改变.................................................................................42 2.4.2 OPC组对象属性的改变.............................................................................43 2.4.3 异步读取代码的改变.................................................................................43 2.4.4 异步写入的改变........................................................................................45 2.5 订阅方式的数据采取........................................................................................46 3 使用VISUAL BASIC开发OPC ACTIVEX控件.................................................. 48 3.1 建立一个ACTIVEX控件.....................................................................................48 3.1.1 必需的引用和声明.....................................................................................52 3.1.2 OPC自动化包装的引用.............................................................................52 3.1.3 OPC对象和Windows API的声明................................................................53 3.2 添加控件的属性,方法和事件.........................................................................55 3.3 建立属性页.......................................................................................................63 3.4 版本信息窗体...................................................................................................70 3.5 调试ACTIVEX控件............................................................................................74 3.5.1 建立一个Visual Basic工程..........................................................................74 3.5.2 调试ActiveX控件.......................................................................................77 3.6 生成ACTIVEX控件............................................................................................78 4 使用EXCEL开发OPC应用程序.......................................................................... 81 4.1 使用EXCEL和VBA的OPC应用程序..................................................................81 4.1.1 定义Excel宏...............................................................................................81 4.1.2 编辑Excel工作表........................................................................................87 4.1.3 试运行.......................................................................................................94 4.2 使用ACTIVEX控件的OPC应用程序..................................................................95 4.2.1 在Excel中使用ActiveX控件........................................................................95 4.2.2 使用VBA建立OPC服务器数据访问程序................................................105 5 运行环境的设置................................................................................................. 110 5.1 远程连接所需的软件......................................................................................110 5.2 添加一个OPC专用用户..................................................................................110 5.3 推荐的分布式COM安全机制的设置..............................................................111 5.3.1 没有分布式COM安全机制的设置...........................................................111 5.3.2 具有分布式COM安全机制的设置...........................................................111 5.4 OPC服务器计算机的设置..............................................................................112 5.4.1 安装OPC服务器......................................................................................112 5.4.2 分布式COM安全机制的设置...................................................................112 5.5 OPC客户程序计算机的设置..........................................................................116 5.5.1 安装OPC客户程序...................................................................................116 5.5.2 分布式COM安全机制的设置...................................................................117 6 附录..................................................................................................................... 118 6.1 OPC符号........................................................................................................118 6.1.1 OPC名称空间符号...................................................................................118 6.1.2 OPC数据源符号......................................................................................118 6.1.3 OPC访问权限符号...................................................................................118 6.1.4 OPC服务器状态符号...............................................................................118 6.2 OPC错误码.....................................................................................................118 6.3 OPC数据型.....................................................................................................119 6.3.1 经常使用的OPC数据型...........................................................................119 6.3.2 定制数据型和自动化数据型....................................................................120 6.4 示范源程序的使用方法..................................................................................120 6.4.1 复制和注册示范源程序...........................................................................120 6.4.2 运行示范源程序......................................................................................121 6.4.3 示范源程序的运行环境...........................................................................121 6.5 参考资料........................................................................................................121 6.6 有关OPC的互联网站......................................................................................122 6.7 OPC专用名词中英对照表..............................................................................122

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧