老外编程时遇到和我一样的COM异常:0x80010105

来源:互联网 发布:js 小数乘以整数 编辑:程序博客网 时间:2024/04/30 19:15

Cyril
Posted: Thu Oct 11, 2007 8:34 am    Post subject: Why can't RSLinx OPC Server browse Items?   

--------------------------------------------------------------------------------
 
I use the OPC Clent to connect RSLinx OPC Server. There are two topics - "PLCA" and "PLCB" in server, and each topic has some items.The connect status is OK.But it can't get item names using BrowseOPCItemIDs.
case 1
Code:

iOpcNamespace->ChangeBrowsePosition(OPC_BROWSE_TO,L"");
result = iOpcNamespace->BrowseOPCItemIDs(OPC_FLAT,L"",VT_EMPTY,0,(&iEnum));
 

The result is 0x80010105 that mean the server threw an exception.

case 2
Code:

iOpcNamespace->ChangeBrowsePosition(OPC_BROWSE_TO,L"");
result = iOpcNamespace->BrowseOPCItemIDs(OPC_BRANCH,L"",VT_EMPTY,0,(&iEnum));
 

The result is OK.iEnum is consist of "PLCA" and "PLCB".

case 3
Code:

iOpcNamespace->ChangeBrowsePosition(OPC_BROWSE_DOWN,L"PLCA");
result = iOpcNamespace->BrowseOPCItemIDs(OPC_BRANCH,L"",VT_EMPTY,0,(&iEnum));
 

The result is OK.iEnum is consist of "[PLCA]Offline" and "[PLCA]Online".


case 4
Code:

iOpcNamespace->ChangeBrowsePosition(OPC_BROWSE_DOWN,L"PLCA");
result = iOpcNamespace->BrowseOPCItemIDs(OPC_FLAT,L"",VT_EMPTY,0,(&iEnum));
 

The result is OK.iEnum has nothing.

What should I do to get all topic and items?