如何使用 opc ua 从 PLC 读取信号?

Posted

技术标签:

【中文标题】如何使用 opc ua 从 PLC 读取信号?【英文标题】:How to read signals from PLC using opc ua? 【发布时间】:2018-10-23 21:45:29 【问题描述】:

我的机器上运行着一个 node-opcua 服务器。我想从 PLC 读取数据。 据我了解,OPC Server 用于在 PLC 上进行读/写。

我已按照说明从http://node-opcua.github.io/ 创建服务器和客户端

那么,我的问题是如何从 PLC 读取信号?我是 IoT 和 OPC UA 的新手。请指导我。

【问题讨论】:

【参考方案1】:

很遗憾,您错过了一大块拼图。

是的,OPC 服务器最常见的用途之一是允许 OPC 客户端与 PLC 通信。

但是 OPC 并没有什么神奇的功能可以做到这一点。这是因为特定的 OPC 服务器知道如何通过该 PLC 的本机协议与它声称支持的每种不同类型的 PLC 进行通信。这是一项繁重的工作,几乎每个 PLC 型号和品牌都不同,这就是为什么供应商可以要求他们的服务器定价,而您却找不到很多开源替代品。

只是为自己编写一个随机的 OPC 服务器并运行它对您没有任何帮助。 OPC 服务器需要为连接并知道如何获取它的客户端提供某种有用的数据。如果您正在对服务器进行编程,那么需要知道如何获取它。


如果您想从 PLC 获取数据并使用 OPC,您应该做的是购买或以其他方式获得一个知道如何与您感兴趣的 PLC 通信的 OPC 服务器,然后为自己编写一个 OPC 客户端以与该服务器交互并获取您需要的数据。

这是 OPC 一开始就解决的大问题:让供应商担心与 PLC 通信所需的大量复杂、遗留且有时未记录的协议。需要这些数据的客户只需担心一个开放标准 (OPC)。

【讨论】:

【参考方案2】:

1) 什么类型的PLC?

2) 你需要在 node.js 中实现通信协议。但是,最好考虑使用其他工具。

3) 利润

恕我直言,node-opcua 更适合在 node.js 应用程序上发布内部参数。

例如 - https://www.npmjs.com/package/node-modbus

【讨论】:

【参考方案3】:

OPCUA 服务器不用于从 PLC 读取数据。 OPCUA 服务器会发布可供 OPCUA 客户端访问的数据。

如果您想使用 OPCUA 从 PLC 读取数据,您至少需要:

可配置为OPCUA服务器的PLC(以西门子S7-1500系列为例)

一个 OPCUA 客户端应用程序(http://node-opcua.github.io/ 是一个选项)

注意:“OPC”和“OPCUA”之间有很大的区别。我说的是 OPCUA,因为你提到了 node-opcua 库。

注 2:Kevin Herron 并非完全错误,但听起来有点误导我。他提到的专用通信驱动程序不是 OPC 服务器的一部分。某些产品可能被标记为“与 x,y.. 品牌的 PLC 通信的 OPC 服务器”,但这些产品不仅仅是一个 OPC 服务器。在这种情况下,不使用 OPC 连接到 PLC。

【讨论】:

以上是关于如何使用 opc ua 从 PLC 读取信号?的主要内容,如果未能解决你的问题,请参考以下文章

怎样用PLC读取一个外部的数字信号,然后在WINCC中显示出来?

我应该从哪里开始使用 OPC-UA 客户端?

OPC UA 如何从服务器读取数据类型

OPC ua是啥?

西门子PLC1500 OPC ua 通信测试(ua Expert)

从 OPC UA 服务器读取结构化数据