我一直在网上搜索,但我无法弄清楚如何在OPC服务器上获取项目的树视图。我使用了以下代码:
using Opc.Da;
using Server=Opc.Da.Server;
using Factory=OpcCom.Factory;
string urlstring = string.Format("opcda://{0}/{1}/{{{2}}}", _hostName, _serverName, serverid);
Server s = new Server(new Factory(), new URL(urlstring));
ItemIdentifier itemId = null;
BrowsePosition position;
BrowseFilters filters = new BrowseFilters() {BrowseFilter = browseFilter.item};
BrowseElement[] elements = s.Browse(itemId, filters, out position);
答案 0 :(得分:0)
您没有说明究竟什么不起作用。但是,主要问题可能在于您使用的是BrowseFilter = browseFilter.item。树中的节点是叶子(有时称为项目)或分支。您的代码只询问树根下的叶子。根目录下可能没有任何项目,你也需要获得分支,然后递归地深入分支。
首先更改代码以使用BrowseFilter = browseFilter.all。这应该为您提供根目录下的所有节点。然后,使用每个分支的项目ID作为新浏览的起点,递归调用您收到的分支(只是分支,而不是项目)。