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

How to start with OPC UA -- sampling and collecting data from a PLC device?

我需要为来自 PLC 设备的 collecting/processing 个样本设计解决方案,并使用该设备的一些控制标签。请建议方法。很抱歉这个问题很长。等我知道什么是更小更合理的问题后,我会把它拆分成更多的问题subjects/questions。

公司的解决方案几乎是从头开始构建的。有一些 PLC 设备,还有一个 KEPServerEx(没有 物联网网关)。 PLC 设备已经通过第三方专有软件使用。但是没有 "bigger framework" 的未来。从这个角度来说,我可以引入现代设计,但预算有限

根据目前的了解,KEPServerEx 似乎是访问 PLC 设备的不错选择,但我没有使用它的实践经验。在我看来,OPC UA 应该是较旧的 OPC (DA) 的选择。我也知道使用 PLC 的阶梯方式。

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

我不清楚的是,如果没有物联网网关,如何做到这一点。我假设它必须是一个基本操作。 (tagID, value, quality, timestamp) 对于通过任何 OPC 服务器与 PLC 一起工作是通用的吗?还是仅对 KEPServerEx 通用,还是对 IoT Gateway(可选)插件有特殊意义?

我了解到 OPC 基金会最近向 OPC UA 添加了 Publih/Subscribe 机制。它是否还需要更新版本的 KEPServerEx?或者它可以与任何早期的 OPC 服务器一起使用吗?

我在编程和数据库方面相当有经验。我在工业传感器、执行器等方面也有一些技术背景,但是,我从未在工业领域从事过数字自动化工作。

谢谢,祝你有愉快的一天。

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

例如:

如果您的 PLC 是 Omron NJ PLC,并且它与 KEPServerEX 所在的服务器位于以太网网络上,您将需要使用 Kepware 提供的套件包中的 "Omron NJ Ethernet" 驱动程序,称为"Omron Suite".

关于您关于物联网网关的问题:

From what I have learned about "IoT Gateway" (which will not be used) for KEPServerEx, the KepServer can set the sampling frequency at the PLC tag level. And also the frequency of transferring the data can be set by IoT Gateway. The IoT Gateway then uses an internal (memory) buffer for storing the sampled values, and the tuples (tagID, value, quality, timestamp) can be read and passed to third party.

这可以在没有物联网网关的情况下完成,方法是使用上述适当的驱动程序,然后使用另一个驱动程序包将 PLC 数据发送到您想要的任何地方(ODBC 客户端、SQL 服务器数据库等.).这取决于您想如何处理您正在获取的数据。

当您与特定设备通话时,您需要了解该设备使用的协议,而这些协议可能差异很大。

有时设备制造商会提供一个 OPC 服务器来保护您不受此影响,或者正如您提到的第三方连接服务器(如 KepServerEx 或 Matrikon)可用于提供 OPC 接口供您的客户端使用。

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

从 OPC sever/3rd 方到设备的协议决定了您可以对值进行采样的频率。例如。有些协议需要轮询设备的值,有些协议更复杂。

如果您创建一个 OPC 客户端,那么您几乎可以自由选择连接到哪种 OPC 服务器,无论它是第 3 方还是来自制造商的 OPC 服务器,并且只要订阅中的项目发生变化,客户端就会存储值很简单。

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