如何从OPC UA开始 - 从PLC设备采样和采集数据?

如何从OPC UA开始 - 从PLC设备采样和采集数据?

问题描述:

我期望设计用于收集/处理来自PLC设备的样品的解决方案,并使用设备的一些控制标签。请提出方法。对于长期的问题抱歉。在了解什么是更小和更合理的主题/问题之后,我会将它分成更多的问题。如何从OPC UA开始 - 从PLC设备采样和采集数据?

该公司的解决方案几乎是从零开始构建的。有一些PLC设备,并且有一个KEPServerEx(没有 IoT网关)。 PLC设备已通过第三方专有软件使用。但是未来没有“更大的框架”。从这个角度来看,我可以引入现代设计,但预算受到限制。

从我迄今为止所了解到的情况来看,KEPServerEx似乎是访问PLC设备的不错选择,但我没有实际操作经验。在我看来,OPC UA应该是旧OPC(DA)的选择。我也了解使用PLC的阶梯方式。

根据我对KEPServerEx所了解到的“物联网网关”(不会使用),KepServer可以在PLC标签级别设置采样频率。而且传输数据的频率可以由物联网网关设置。物联网网关然后使用内部(内存)缓冲区来存储采样值,并且可以读取元组(tagID,值,质量,时间戳)并将其传递给第三方。

我不清楚的是,如何在没有物联网网关的情况下做到这一点。我认为这一定是一项基本的操作。 (tagID,值,质量,时间戳)是否通过任何OPC服务器与PLC协同工作?或者它只是通用于KEPServerEx,还是它专用于IoT网关(可选)插件?

我了解到OPC基金会最近在OPC UA中添加了Publih/Subscribe机制。它是否也需要更新版本的KEPServerEx?或者它可以用于任何早期的OPC服务器?

我在编程和数据库方面经验丰富。我在工业传感器,执行器等方面也有一些技术背景......但是,我从来没有在工业领域与数字自动化合作过。

谢谢,祝你有美好的一天。

根据您要与之通信的PLC以及您的设备将传输数据的通信网络,您需要购买适当的驱动程序包,以便KEPServerEX可以与其进行通信。

例如:

如果您的PLC是一种欧姆龙NJ PLC,而且它是一个以太网络与KEPServerEX是驻留在服务器上,则需要使用“欧姆龙NJ以太网”司机在Kepware提供的套件包叫做“欧姆龙套件”。

关于你提到的有关物联网网关问题:

从我学会了“物联网网关”(不会被使用)对KEPServerEx的KepServer可以在PLC变量级别设置采样频率。而且传输数据的频率可以由物联网网关设置。物联网网关然后使用内部(内存)缓冲区来存储采样值,并且可以读取元组(tagID,值,质量,时间戳)并将其传递给第三方。

这可以在没有物联网网关来完成,通过使用适当的上述驱动程序,然后使用另一个驱动程序包发送PLC数据,无论你想(ODBC客户端,SQL Server数据库等)。这取决于你想要处理的数据。

+0

说,我会选择将数据发送到SQL数据库。 “另一个驱动程序包”如何与PLC驱动程序的驱动程序通信?数据路径上是否有缓冲区? PLC驱动程序是否推送数据或是实时访问数据的SQL访问驱动程序? – pepr

+1

同样,这完全取决于您的通信网络。以太网上的PLC和SQL数据库服务器? KepServerEX将以您为每个标签指定的扫描速率向PLC请求数据。如果您希望使用KepServerEX将数据推送到SQL Server,那么您需要Kepware的“DataLogger”软件包将该OPC数据推送到SQL Server。 DataLogger将从OPC服务器(KepServerEX)提取数据,并根据您指定的触发器将其推送到SQL数据库。 – controller

+0

KepServerEX是否有一个用于采样PLC数据的缓冲区?在DataLogger从OPC服务器获取数据之前,数据是否存储在别处?或者是将采样记录立即推送到DataLogger? – pepr

当您与特定设备通话时,您需要知道设备使用的协议,这些协议可能会有很大差异。

有时设备的制造商提供了一个OPC服务器,以避免这种情况发生,或者当您提到第三方连接服务器(如KepServerEx或Matrikon)时,可以使用OPC接口供客户端使用。

我对KepServerEx或您的特定需求一无所知,但通常OPC服务器有一个缓存,其中的值存储在客户端可以从中读取或从硬件直接读取。订阅可以被类似地配置,例如频率,阈值等。

从OPC服务器/第三方到设备的协议决定了您可以采样值的频率。例如。有些协议需要为设备查询值,有些协议更精细。

如果您创建了一个OPC客户端,那么您几乎可以免费获得您连接到的OPC服务器,无论它是制造商的第三方还是OPC服务器,并且只要订阅中的项目发生变化,客户端就会存储值很平凡。

如果您熟悉Visual Studio,那么AdvancedHMI可能是一个可行的解决方案。您没有提及任何特定的PLC,但AdvancedHMI包含许多PLC通信驱动程序作为免费软件包的一部分。这使您可以编写VB或C#将数据从PLC传输到数据库。这些驱动程序不是OPC驱动程序,但其设计要简单得多,效率更高。

+0

感谢您的信息。我会看看。 – pepr