在OPC UA服务器和OPC UA客户端上需要清楚

时间:2019-10-02 17:06:06

标签: plc opc-ua

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

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

我是工业自动化行业和IoT的新手,我知道我们已经准备好进行救援的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服务器?

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

3 个答案:

答案 0 :(得分:1)

  

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

在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,并且可以从变量节点读取值。

  

我将使用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服务器充当网关。

答案 1 :(得分:0)

忘记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可以理解的协议从PLC读取或写入PLC(Profinet,以太网/ IP, Modbus,Fins等...),另一方面,OPC UA客户端可以读写

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

  

如何为没有OPC UA的PLC编写自己的OPC服务器   抱怨吗?

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

答案 2 :(得分:0)

如果您在任何一方都不受限制,我想向您推荐西门子 S7-300 / 400 / 1200 / 1500控制器系列。 您可以将它们集成到系统中,并通过TIA门户监视其工作。 这样就无需创建其他应用程序。