我的机器上运行着一个 node-opcua 服务器。我想从 PLC 读取数据。据我了解,OPC Server 用于在 PLC 上进行读/写。
我已按照说明从http://node-opcua.github.io/创建服务器和客户端
那么,我的问题是如何从 PLC 读取信号?我是 IoT 和 OPC UA 的新手。请指导我。
我的机器上运行着一个 node-opcua 服务器。我想从 PLC 读取数据。据我了解,OPC Server 用于在 PLC 上进行读/写。
我已按照说明从http://node-opcua.github.io/创建服务器和客户端
那么,我的问题是如何从 PLC 读取信号?我是 IoT 和 OPC UA 的新手。请指导我。
不幸的是,你错过了一大块拼图。
是的,OPC 服务器最常见的用途之一是允许 OPC 客户端与 PLC 通信。
但是 OPC 并没有什么神奇的地方可以做到这一点。这是因为特定的 OPC 服务器知道如何通过该 PLC 的本机协议与它声称支持的每种不同类型的 PLC 进行通信。这是一项繁重的工作,几乎每个 PLC 型号和品牌都不同,这就是为什么供应商可以要求他们的服务器定价,而你不会找到很多开源替代品。
只是给自己编程一个随机的 OPC 服务器并运行它对你没有任何帮助。OPC 服务器需要为连接并知道如何获取它的客户端提供某种有用的数据。如果您正在对服务器进行编程,那么您需要知道如何获取它。
如果您想从 PLC 获取数据并使用 OPC,您应该做的是购买或以其他方式获得一个知道如何与您感兴趣的 PLC 通信的 OPC 服务器,然后自己编写一个 OPC 客户端以与该服务器交互并获取您需要的数据。
这是 OPC 一开始就解决的大问题:让供应商担心与 PLC 通信所需的大量复杂、遗留、有时未记录的协议。需要这些数据的客户只需担心一个开放标准 (OPC)。
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。
1)什么类型的PLC?
2)您需要在节点中实现通信协议。但是,更好的是,考虑其他工具的实现。
3) 利润
恕我直言 node-opcua 更好地设计用于在 node.js 应用程序上发布内部参数。