在OPC节点路径中,“ ns = 2; s =“的意义是什么?

时间:2019-08-19 19:40:04

标签: opc opc-ua

我注意到所有OPC标签ID都以ns=2;s=开头。

一些可能的NodeId值的示例是:

  • ns=2;s=AcquisitionTimeRemaining
  • ns=2;s=Status
  • ns=2;s=Time

我想知道这个前缀的含义是什么。


研究:

论坛上的其他人asked this question。给出的答案是 ns 前缀指定NodeId所属的名称空间索引。回答者继续声明:

  

出于奇怪的历史原因,我们假设ns = 1(如果未明确显示)。 Kepware的节点全部为ns = 2,因此必须指定。

我没有使用“ Kepware节点”,并且我的命名空间仍设置为2 ...这个总是是2吗?我找不到有关前缀中的 s 代表什么的任何信息。

2 个答案:

答案 0 :(得分:6)

ns=2表示名称空间索引2。

s=foo表示它是一个字符串类型NodeId,其值为“ foo”。

NodeId有4种类型:

  1. 数字(值是UInteger)
  2. 字符串(值是一个字符串)
  3. 向导(值是Guid / UUID)
  4. 不透明(值是ByteString)

此语法是从用于以OPC UA XML编码对NodeId进行编码的语法中借用的:

ns=<namespaceindex>;<type>=<value>

出现什么名称空间节点以及有多少个名称空间取决于您连接的服务器。

答案 1 :(得分:2)

名称空间值仅取决于OPC UA服务器及其配置。 强制性是为OPC UA默认名称空间保留0。

您可以在“ ns = 0; i = 2255”(Server_NamespaceArray)上读取/订阅OPC UA服务器命名空间配置。 Node值是此服务器上可用的所有命名空间的数组