1

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

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

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

我浏览了许多网站和 youtube 视频来了解 OPC UA 及其前身(OPC DA、OPC A&E、OPC HDA)。我已经安装了 matrikon OPC 服务器和资源管理器(客户端)来探索更多。

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

所以,我的问题是:

  • 我应该在哪里编写逻辑来读取值?OPC 服务器还是客户端?
  • 我将使用 NODE-OPC-UA。那里有任何开源 OPC 客户端 GUI 吗?
  • 如何为没有 OPC UA 投诉的 PLC 编写我们自己的 OPC 服务器?

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

4

3 回答 3

4

我应该在哪里编写逻辑来读取值?OPC 服务器还是客户端?

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

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

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

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

我将使用 NODE-OPC-UA。那里有任何开源 OPC 客户端 GUI 吗?

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

如何为没有 OPC UA 投诉的 PLC 编写我们自己的 OPC 服务器?

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

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

于 2019-10-02T17:37:02.267 回答
1

忘掉以前版本的 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)从 PLC 读取或写入等...),另一方面 OPC UA 客户端可以读取和写入

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

如何为没有 OPC UA 投诉的 PLC 编写我们自己的 OPC 服务器?

哟不能那样做。具有集成 OPC UA 服务器的 PLC 已将其整合到其固件中,并且只有制造商可以对其进行编程。

于 2019-10-03T17:03:37.340 回答
0

如果您不受任何限制,我想向您推荐 Siemens S7-300 / 400 / 1200 / 1500控制器系列。您可以将它们集成到系统中并通过 TIA 门户监控它们的工作。这样就不需要创建额外的应用程序了。

于 2020-02-13T08:06:15.917 回答