有人用delphi开发过OPC的客户端吗? 点击:488 | 回复:6



沙漠的风雨

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:24帖 | 461回
  • 年度积分:0
  • 历史总积分:1069
  • 注册:2003年10月23日
发表于:2008-04-21 11:31:37
楼主
有人用delphi开发过OPC的客户端吗?



王小石

  • 精华:0帖
  • 求助:0帖
  • 帖子:12帖 | 72回
  • 年度积分:0
  • 历史总积分:224
  • 注册:2001年12月26日
发表于:2008-04-25 00:51:00
1楼

沙漠的风雨

  • 精华:0帖
  • 求助:0帖
  • 帖子:24帖 | 461回
  • 年度积分:0
  • 历史总积分:1069
  • 注册:2003年10月23日
发表于:2008-05-15 11:23:10
2楼

用自动化接口已经连接到服务器了,如何添加多个item呢?

Demand

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 11回
  • 年度积分:0
  • 历史总积分:29
  • 注册:2008年12月12日
发表于:2009-08-10 15:22:54
3楼

你的OPC客户端做好没?能否传授一下经验

[明月夜]

  • 精华:3帖
  • 求助:0帖
  • 帖子:114帖 | 3593回
  • 年度积分:0
  • 历史总积分:7688
  • 注册:2008年3月16日
发表于:2009-08-11 11:57:09
4楼

我做过用DELPHI的姐妹语言C++BUILDER6编OPC客户端,做了个小项目,自觉得很成功。

增加项的子程序如下,供参考:

[明月夜]

  • 精华:3帖
  • 求助:0帖
  • 帖子:114帖 | 3593回
  • 年度积分:0
  • 历史总积分:7688
  • 注册:2008年3月16日
发表于:2009-08-11 12:01:11
5楼
bool AddItems(IUnknown * ptrGroup, // 组对象
wchar_t *items[],int  COUNT, // 项位号数组与项数
IOPCItemMgt * & ptrItems, // 项对象
DWORD hItem[] // 项服务句柄数组
)
{
ptrGroup->QueryInterface(IID_IOPCItemMgt,(void **)&ptrItems);
OPCITEMDEF *itemdef=new OPCITEMDEF[count];
HRESULT *pErrors=NULL;
OPCITEMRESULT *pItemResult=NULL;
for (int i=0;i<COUNT;i++)
{
itemdef[i].szItemID=items[i];
itemdef[i].szAccessPath=NULL;
itemdef[i].bActive = TRUE;
itemdef[i].hClient = (OPCHANDLE)i;
itemdef[i].dwBlobSize = 0; // no blob support
itemdef[i].pBlob = NULL;
itemdef[i].vtRequestedDataType = 0; // Requested data type
}
HRESULT hr=ptrItems->AddItems(COUNT, // Item Count
itemdef, // Array of item definition stru
&pItemResult, // Result array
&pErrors); // Error array
if (SUCCEEDED(hr))
{
for (int i=0;i<Count;i++)
hItem[i]=pItemResult[i].hServer;
}
else
ptrItems=NULL;
if (pItemResult!=NULL)
CoTaskMemFree(pItemResult);
if (pErrors!=NULL)
CoTaskMemFree(pErrors);
deletE [] itemdef;
return(ptrItems!=NULL);
}

[明月夜]

  • 精华:3帖
  • 求助:0帖
  • 帖子:114帖 | 3593回
  • 年度积分:0
  • 历史总积分:7688
  • 注册:2008年3月16日
发表于:2009-08-14 09:06:43
6楼
原来一年半前的旧贴子,难怪楼主消失了呢。

热门招聘
相关主题

官方公众号

智造工程师