我一直在网上搜索,但我想不出如何在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);发布于 2014-12-18 00:35:42
您没有确切地说明什么是不起作用的。然而,主要的问题可能在于您使用的是BrowseFilter = browseFilter.item。树中的节点要么是树叶(有时称为项目),要么是树枝。您的代码只需要树根下的leafs。根目录下可能没有项目,您还需要获取分支,然后递归地深入到分支中。
首先将您的代码更改为使用BrowseFilter = browseFilter.all。这将为您提供根目录下的所有节点。然后,使用每个分支的项目ID作为新浏览的起点,递归地调用接收到的分支(只是分支,而不是项目)的browse。
https://stackoverflow.com/questions/27527763
复制相似问题