OPC技术之OPCENUM.EXE使用方法(VC++) 点击:1227 | 回复:0



如火

    
  • 精华:172帖
  • 求助:0帖
  • 帖子:803帖 | 5249回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2006-02-22 15:43:00
楼主
 OPC 技术文档之 OPCENUM.EXE 使用方法(vc) -- flyback原创

   在制作OPC Client 的程序的时候,常常需要浏览目标服务器的所有OPC Server方法有两个:               
   一是通过 IOPCAutoServer 的GetOPCServers方法得到(这个比较简单,这里不讨论)。
  
   二是通过 OPCEnum.exe 提供的 IOPCServerList 接口的 EnumClassesOfCategories 方法实现。俺在搜索 www.google.com 的时候似乎没有找到有关 opcenum.exe 的使用,可能太简单了,会的朋友不要笑俺,俺是写给不会的朋友看的。俺要说的是一步一步的来:1.导出 opcenum.exe 服务的 IDL 文件

  1) 打开系统程序:oleview.exe
  2) 找到"Type Libraries\OpcEnum 1.1 Type Library(Ver 1.1)",1.0也可以
  3) 点击菜单里的"Object\View..."
  4) 在打开的"ITypeLib Viewer"里点击菜单的"File\Save As..."保存成一个IDL文件
  5) 以命令行方式来到保存IDL文件的目录
  6) 输入"midl /h xxxx.h xxxx.idl" xxxx.h是要生成的com接口头文件 xxxx.idl就是那个idl文件,midl会自动生成一个叫xxx_i.c的文件
 
2.写程序
  1) 打开VC++ 6.0
  2) 加入文件xxxx.h和xxx_i.c
  3) 写初始化,调用CoInitialize...,允许访问com内存管理器
  4) 写创建 OPC.ServerList.1 对象代码,注意如果是远程机器要使用 CoCreateInstanceEx , CLSCTX_REMOTE_SERVER ,在Setting里要加上 _WIN32_DCOM 
  5) 实现 IOPCServerList 接口 
  5) 最后调用 EnumClassesOfCategories 
  其中第一个参数为 1 ,第二个参数为组件类目录,即 oleview 里的 Grouped by Component Category\OPC Data Access Servers Version x.0 
--------------------------------------------------------------------------------
  其中函数: CreateOPCenum, TryIOPCServerList 乃原创,其他抄袭自 http://www.gefanucautomation.com/opchub/opcsample.asp


热门招聘
相关主题

官方公众号

智造工程师