仅根据节点的标签检索节点

时间:2019-05-24 13:36:18

标签: opc-ua

一个客户已经实现了OPC-UA服务器,并提供了一些文档供我们访问。我们仅有的信息是与服务器联系的端点以及数据点链接到的标签。

我必须实现一个客户端,而无需访问服务器对其进行测试。这是足够的信息吗?我想我们至少需要一些名称空间uri。据我了解,为了使用get(id)之类的功能,我还需要知道一些名称空间ID。

例如,在python-opcua中,它将类似于:

public void doSomething(MyObj id){ // see https://stackoverflow.com/q/322715/2711488 List<Map<String, List<String>>> mapsList = new ArrayList<>(); for(Map.Entry<MyObj, Map<String, List<String>>> e: conMap.entrySet()){ if(e.getKey().key1.equals(id.key1)){ mapsList.add(e.getValue()); } } for(Map<String, List<String>> map: mapsList){ synchronized(map) { //... } } } (虽然不起作用,但这是另一个问题)

我以某种方式找到的客户端示例都使用硬编码的名称空间ID并没有帮助。

1 个答案:

答案 0 :(得分:0)

在对类型定义进行编程时,通常使用

TranslateBrowsePathToNodeIds ,因为您知道BrowseNames的路径,因为它们由路径中每个节点的类型定义来定义。

如果这听起来不像您的情况,那么您应该向后推文档以包括您需要访问的所有节点的NodeId。