服务器和客户端的 OPC UA 地址不同

OPC UA address differ between server and client

我已经在 KepserverEx 上使用几个标签创建了一个通道和设备。 在配置中,我将一个节点的地址设置为:

ns=3;s=Channel1.Device1.Start

如果我使用 UeExpert 浏览同一个节点,我会发现 NodeId 为

nsu=KEPServerEX;ns=2;s=Channel1.Device1.Start

这是我需要在我的 C# 客户端中使用的内容。

为什么ns(namespace index)的值和我在Server中定义的不一样?

我不知道 KepserverEx,但一般来说,节点的名称空间索引不是静态的,而是在模型为 loaded/instantiated 时在服务器中动态(重新)定义的。 对于默认的 opc ua 节点集,唯一的静态命名空间索引是 0。

因此,如果您在服务器中只定义了两个命名空间(+ 默认节点集),则命名空间将具有索引 1 和 2。

如果客户端不知道特定服务器中命名空间的索引,它可以请求命名空间列表,从而为特定命名空间名称解析正确的索引。