【发布时间】:2018-12-20 13:23:46
【问题描述】:
我在半工业环境中管理一个分布相当广泛的软件应用程序。该软件的核心是基于 SOA 并采用 OPC-UA 使重要进程(在本地或基于 LAN 的机器上)之间的通信成为可能。这些进程要么是服务器(例如,外部网络管理服务器、硬件管理服务器等),要么是客户端(客户面板)或两者(服务器相互通信)。 OPC-UA 存在以下问题:
- 配置和维护配置是一项艰巨的工作(只是配置文件设置需要大量时间)
- 安全措施过于详细,无法满足我的需求(证书管理和客户系统上的证书突然失效)
- 库中的建模和网络开销使我的通信难以处理(高数据速率通常会导致服务器和客户端断开连接)
- 我曾多次向 OPC GitHub 论坛报告过不明且奇怪的错误,例如 UA Discovery Server 停止工作或响应等。
- 几乎不可能对 OPC UA 的内部部件进行故障排除。
总的来说,对我来说它的性能和稳定性还不够可靠。我愿意牺牲功能以获得更好的性能和可靠性。我什至考虑过自下而上编写套接字以满足我的进程间 (IPC) 需求。这样我至少可以将错误追踪到它们的核心。由于我不需要它最广为宣传的功能(又名 PLC 支持),我迫切希望找到一个好的替代方案。我的主要要求是:
- 类似 OPC-UA 的数据建模支持使我能够为客户和其他团队提供干净的界面(类似于 IDL)。
- 发布/订阅、远程命令、更新通知和基于节点的行为。
- 由于我的网络已关闭,因此我不关心严格的安全性。
- 数据速率高达 1Gbps 的高性能(这可能意味着支持 UDP)。
- 我完全在 .NET 框架中工作。所以对 OPC-UA 的 C# 支持对我帮助很大。
我查看了 DDS(缺少命令和更新通知)和 WCF(缺少跨平台支持)等等。 此链接还说明了 MQTT:Alternative to OPC-UA
【问题讨论】:
-
您的问题似乎与您使用的产品质量有关,而不是与 OPC UA 有关。如果你从头开始构建所有东西,你最终会遇到其他不一定更小的问题。所以考虑这些: - 本地发现服务器是完全可选的 - OPC UA 中的安全性是可选的 - 速度可能很困难,但我也有点依赖于实施。即将推出的 UDP 传输协议也将实现更快的速率 - 获得具有适当支持的优质 OPC UA SDK;它可能会花费您更多,但可以为您节省很多。
-
证书是可选的,如果你不使用安全。低端的嵌入式设备甚至可能做不到。再次取决于 SDK 如何在实践中实现这一点。 Softing 为 OPC Foundation SDK 提供商业支持。 Unified Automation 拥有优质的 .NET SDK - 在 OPC Foundation SDK 的基础上重新设计,更加灵活易用。
-
如果您希望 LDS 问题得到解决,您应该向 GitHub 报告这些问题。
-
@JouniAro 谢谢,看来 GitHub 上的版本不是官方的,也不是唯一的参考。我会看看你提到的版本的价格/我已经向 GitHub 页面报告了许多错误,其中一些已经在版本中得到解决,但是 LDS 中发生了很多奇怪的事情,它影响了我的工作场所声誉和公司对我的信任。所以我不再冒险了:)
-
OPC UA 堆栈是官方的,由 OPC 基金会提供支持。 GitHub 中的 .NET SDK 是 SDK 层的示例实现,由 OPC 基金会提供。 LDS 是官方的,由 OPC 基金会提供,旨在提高生产质量,但如果看起来不是这样,您必须让他们知道。
标签: cross-platform microservices opc interprocess opc-ua