首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Eclipse Milo:如何使用OPC UA的发现功能?

Eclipse Milo:如何使用OPC UA的发现功能?
EN

Stack Overflow用户
提问于 2019-01-02 07:58:09
回答 1查看 1.1K关注 0票数 2

关于OPC UA的发现特性,我有一些疑问:

  1. 如何在发现服务器上注册OPC UA服务器?这是唯一可能的,如果制造商提供类似于网络接口,或有一个标准化的方法来做?
  2. 如何在发现服务器上注册使用milo创建的OPC UA服务器?
  3. 是否有可能禁用由milo opc ua-服务器自动启动的发现服务器?
  4. 如何与milo一起获得注册服务器的信息?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-02 09:47:32

  1. 如何在发现服务器上注册OPC UA服务器?这是唯一可能的,如果制造商提供类似于网络接口,或有一个标准化的方法来做?

制造商需要支持发现概要文件。OPC规范第11部分(注册后可自由雪崩:https://opcfoundation.org/developer-tools/specifications-unified-architecture/)更详细地描述了这一点。

OPC UA发现有三个主要概念:

  • 本地发现服务器(LDS): 客户端需要知道LDS服务器的IP地址,然后通过OPC调用RegisterServerRegisterServer2服务。
  • 具有多播扩展的本地发现服务器(LDS): 服务器和客户端使用标准化的mDNS多播查询来查找网络中的其他OPC实例。一旦LDS-ME服务器宣布自己,普通OPC UA服务器就知道IP地址,并调用RegisterServerRegisterServer2
  • 全球发现服务器(GDS): 对于大型系统,可能存在多个子网,其中多播查询不能工作。GDS是一个企业级的发现服务器,它也支持证书管理。

  1. 如何在发现服务器上注册使用milo创建的OPC UA服务器?

Eclipse Milo并不完全支持这一发现特性。它基本上支持LDS。目前有一个开放的PR由我自己,但不幸的是,它还没有合并:https://github.com/eclipse/milo/pull/89

  1. 是否有可能禁用由milo opc ua-服务器自动启动的发现服务器?

由于Eclipse默认不支持发现服务,所以它不会自动启动。无论如何,您都可以通过添加或移除相应的服务集来定义支持哪些服务。请看这一行:

代码语言:javascript
复制
stackServer.addServiceSet((DiscoveryServiceSet) sessionManager);

https://github.com/eclipse/milo/pull/89/files#diff-6eb416ef6889e36b34b34e32cb78b823R122

  1. 如何与milo一起获得注册服务器的信息?

在另一台服务器通过RegisterServerRegisterServer2注册自己之后,客户端可以通过两个服务调用检索已注册服务器的列表。

  • FindServers返回已注册服务器的列表,称为RegisterServerRegisterServer2
  • FindServersOnNetwork只支持LDS服务器,并且还返回通过mDNS消息宣布自己但尚未注册的服务器。

如果您正在寻找一个完全实现LDS和LDS-ME特性的开源堆栈,您可以查看open62541项目,它是OPC UA:https://github.com/open62541/open62541的C/C++实现。

目前正在为open62541堆栈开发GDS功能。(免责声明:我是open62541的核心开发人员之一)

其他资源来源:

您还可以查看我写的一篇关于OPC UA LDS-ME发现特性的论文,以及一个名为OPC UA for Plug & Produce:使用LDS-ME (https://mediatum.ub.tum.de/node?id=1375255)的自动设备发现的专用用例。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54003001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档