需要清楚 opc ua 服务器和 opc ua 客户端

Need clarity on opc ua server and opc ua client

我想创建一个工业自动化应用程序来执行以下功能:

  1. 从 PLC、SCADA 和 DCA 读取值
  2. 处理这些值并将故障通知主管和技术人员

我是工业自动化行业和物联网的新手,我知道我们有 OPC UA 可以拯救。

为了了解 OPC UA 及其前身(OPC DA、OPC A&E、OPC HDA),我浏览了许多网站和 youtube 视频。并且我已经安装了matrikon OPC server和explorer(客户端)来探索更多。

假设我想从 SIMATIC S7-1200 PLC 读取信号,据我了解,OPC UA 服务器随 PLC 一起提供,用于将 OPC UA 信息转换为 Profinet 信息。

那么,我的问题是:

如果有人分享一些资源,将不胜感激!

Where should I need to write logic to read values? OPC Server or Client?

在 OPC UA 中,服务器通常是向 OPC UA 客户端提供数据的设备或组件。在您的情况下,OPC UA 服务器是 SIMATIC S7。 然后使用 OPC UA 客户端从该服务器读取变量值。

为了调试和检查,您可以使用免费(商业)工具 UaExpert。你只能用它来查看服务器的当前数据,你不能用它来编写你的逻辑。

最后,回答您的问题:您需要使用 OPC UA 客户端 SDK 从 OPC UA 服务器读取值并围绕它实现您自己的逻辑。 有可用的商业 OPC UA 堆栈和开源堆栈。可在此处找到开源堆栈列表:Open Source OPC UA Stacks.

我知道 open62541 堆栈能够连接到 Simatic S7 并且它可以从变量节点读取值。

I am going to use NODE-OPC-UA. Is there any open-source OPC client GUI out there?

OPC 客户端 GUI 是一个非常通用的术语。您对 GUI 的具体目标是什么?如果你只是为了调试和检查需要它,使用UaExpert。由于 OPC UA 只是一个框架和协议定义,您需要自己编写值背后的逻辑。目前并没有真正通用的 OPC UA GUI,您可以使用它轻松地将自己的逻辑定义为 OPC UA 客户端。使用任何 OPC UA 客户端 SDK 来实现此目的。

How to write our own OPC Server for PLC which doesn't have OPC UA complaint?

无法笼统地回答这个问题。这在很大程度上取决于您使用的是哪种 PLC 硬件。例如,是否可以直接将自己的程序放到PLC上?是不是完全封闭,需要用现场总线接口和PLC通讯?

一个通用的解决方案是在外部设备(例如 PC)上实施 OPC UA 服务器。这台 PC 直接与 PLC 相连。在您的实施中,您需要实施与 PLC 的通信,然后将接收到的 PLC 值映射到 OPC UA 服务器变量。所以基本上你的 OPC UA 服务器充当网关。

忘掉以前版本的 OPC(OPC DA、OPC A&E、OPC HDA)它们是过时的版本并被 OPC UA 取代。

此外,过时版本基于 Windows DCOM,因此只能安装在 Windows 计算机上。

相比之下,OPC UA 独立于平台,甚至可以安装在 PLC 本身中,就像一些已经提供集成 OPC UA 服务器的 PLC 制造商一样。

如果您使用带集成服务器的PLC,您只需要一个OPC UA客户端来读写PLC数据。

如果 PLC 没有 OPC UA 服务器,则应在计算机上安装 OPC UA 服务器,一方面使用 PLC 理解的协议(Profinet,Ethernet/IP、Modbus、Fins 等...) 另一方面,OPC UA 客户端可以读写

据我所知,S7-1200 没有集成的 OPC UA 服务器,但 S7-1500 有。

How to write our own OPC Server for PLC which doesn't have OPC UA complaint?

你不能那样做。具有集成 OPC UA 服务器的 PLC 将其集成到其固件中,只有制造商才能对其进行编程。

如果你不局限于任何一方,我想建议你西门子 S7-300/400/1200/1500控制器系列。 您可以将它们集成到系统中并通过 TIA 门户监控它们的工作。 那么就不需要创建额外的应用程序了。