是否为 OPC UA 地址空间中的应用程序级节点 ID 保留了 951 到 1999 的范围?

Posted

技术标签:

【中文标题】是否为 OPC UA 地址空间中的应用程序级节点 ID 保留了 951 到 1999 的范围?【英文标题】:Is the range 951 to 1999 reserved for application level node ids in OPC UA address space? 【发布时间】:2018-12-31 18:18:04 【问题描述】:

通过查看 node ids file ,您会注意到节点 ID 跳过了 951 - 1999 范围,即没有节点 ID 在该范围内的 OPC UA 节点。

该范围是否保留供应用程序使用?我的服务器实现使用 950 - 1999 范围内的节点 ID 是否安全?

我也在寻找提及 nodeid 范围的规范的一部分。

【问题讨论】:

【参考方案1】:

您指的是命名空间 0 中的节点 ID(URI 为 http://opcfoundation.org/UA/ )。整个命名空间保留供 OPC 基金会使用。不允许在此命名空间中定义任何新的 NodeID - 无论它们的数字或其他标识符是什么。

对于特定于您的服务器的节点,您应该定义自己的命名空间 - 然后它就是您的全部了。然后,您可以在此命名空间内使用任何节点标识符 - 甚至是与命名空间 0“冲突”的数字标识符(事实上,这根本没有冲突,因为命名空间的存在是为了防止冲突)。

【讨论】:

感谢您花时间回答。您能否分享一下规范中提到您刚才所说的部分?我需要它供个人参考。 有趣的是,我在 UA 规范中找不到对此的完整介绍。虽然它可能仍然存在。如果您有兴趣,可以在opcfoundation.org/forum 上提问。我能找到的最接近的(在 OPC UA 规范的 1.03 版中)在第 3 部分,8.2.2 NamespaceIndex 中,它将 OPC UA 命名空间定义为“opcfoundation.org/UA”,命名空间表中的索引为 0。我认为命名空间是一个 URI 的事实意味着只有“opcfoundation.org”的所有者才有权定义“下面”的东西,但现在不能提供证据。 刚刚找到我在规范中寻找的内容,查看规范的第 3 章,第 3 页。 59,第 8.2 节(Nodeid),您将清楚地看到如何使用命名空间 uri 来防止命名空间内的冲突。

以上是关于是否为 OPC UA 地址空间中的应用程序级节点 ID 保留了 951 到 1999 的范围?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 OPC UA 命名空间?

OPC-UA 服务器重启和订阅

OPC UA 统一架构学习4

OPC协议解析-OPC UA OPC统一架构

OPC UA官方文档翻译Part 1 --待续

C# 读写opc ua服务器,浏览所有节点,读写节点,读历史数据,调用方法,订阅,批量订阅操作