介绍
node-red-contrib-opcua 是一个基于 Node-RED 和 OPC UA 协议的 npm 包,它提供了在 Node-RED 中集成 OPC UA 功能的便捷方法。OPC UA 协议是一种应用层协议,用于在工业自动化领域中实现数据通信。使用 node-red-contrib-opcua 可以方便地读取和写入 OPC UA 服务器中的数据,同时还能够监听服务器端的事件。本教程将详细介绍如何使用 node-red-contrib-opcua npm 包实现基于 Node-RED 的 OPC UA 功能。
安装
首先需要安装 Node-RED。在 Node-RED 安装完成后,我们需要在 Node-RED 中安装 node-red-contrib-opcua。可以使用以下命令安装:
npm install node-red-contrib-opcua
安装完成后,需要重启 Node-RED 服务。
使用
在 Node-RED 编辑器中,我们可以找到 OPC UA 相关的节点。通过这些节点可以实现 OPC UA 服务器的连接、数据读写以及事件监听。
连接 OPC UA 服务器
首先需要添加一个“OPC UA Server”节点。右键单击画布中的任何位置,点击“OPC UA Server”,将节点添加到画布中。
此节点需要设置 OPC UA 服务器的端口和 URL。其中,URL 是服务器的地址。端口是需要连接的端口。默认情况下,OPC UA 服务器的端口为 4840。如果您的服务器设置的不是这个端口,那么请将端口设置为服务器所在的端口。
设置完成后,我们需要在线路上添加一个“Inject”节点,这个节点用于输入一些测试数据,以便我们检查 OPC 连接是否正常。右键单击画布中的“Inject”节点,将其配置为“string”类型。并在内容中输入一些测试数据,如“Hello OPC UA”。
接下来,我们将“Inject”节点连接到“OPC UA Server”节点。随后,添加一个“OPC UA Browse”节点,将其连接到“OPC UA Server”节点的输出端。这个节点用于浏览 OPC UA 服务器的对象模型。输入端口可以设置为从“Inject”节点读取数据的端口。
读取 OPC UA 数据
要读取 OPC UA 服务器中的数据,需要添加一个“OPC UA Read”节点。将该节点连接到“OPC UA Server”节点的输出端,将输入端口设置为从“OPC UA Browse”节点读取的端口。该节点需要设置要读取的节点 ID 或节点地址。
在“OPC UA Read”节点的输出端,我们可以添加一个“Debug”节点,用于显示从服务器读取的数据。
写入 OPC UA 数据
要将数据写入 OPC UA 服务器,需要添加一个“OPC UA Write”节点。将该节点连接到“OPC UA Server”节点的输出端,将输入端口设置为从“OPC UA Browse”节点读取的端口。该节点需要设置要写入数据的节点 ID 或节点地址以及要写入的数据。
监听 OPC UA 事件
在 OPC UA 服务器中发生的事件可以被监听到。要监听 OPC UA 服务器的事件,需要添加一个“OPC UA Events”节点。将该节点连接到“OPC UA Server”节点的输出端。此节点需要设置要监听的事件类型。
示例代码
[{"id":"efc58282.33ed8","type":"OPCUAServer","z":"dd417ba2.cd7598","port":"4840","url":"opc.tcp://localhost:4840","idType":"1","delay":"10","timeout":"","initialize":"","open":"","close":"","topic":"","inputName":"","outputNamespace":"","ik":true,"x":170,"y":160,"wires":[["c5e02e5b.16c508"]]},{"id":"447c207.e58066c","type":"inject","z":"dd417ba2.cd7598","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"Hello OPC UA","payloadType":"str","x":170,"y":220,"wires":[["072d3ab3.3f5446"]]},{"id":"072d3ab3.3f5446","type":"OPCUAInject","z":"dd417ba2.cd7598","injectType":"write","payloadType":"msg","payloadVal":"payload","payloadTag":"","dataVal":"","x":370,"y":220,"wires":[["c5e02e5b.16c508"]]},{"id":"c5e02e5b.16c508","type":"OPCUARead","z":"dd417ba2.cd7598","nodeId":"ns=1;s=Temperature","dataType":"Double","value":"payload","name":"","x":520,"y":160,"wires":[["1de4447a.0f0cf3"]]},{"id":"1de4447a.0f0cf3","type":"debug","z":"dd417ba2.cd7598","name":"Temperature","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":700,"y":160,"wires":[]}]
总结
Node-RED 是一个强大的工具,可以快速创建基于低代码的 IoT 应用程序。使用 Node-RED 和 node-red-contrib-opcua 将 OPC UA 功能集成到应用程序中,可以加速应用程序开发过程。本教程介绍了如何使用 node-red-contrib-opcua npm 包连接 OPC UA 服务器、读取和写入数据以及监听事件。希望这对于您的工业自动化应用程序开发有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/90408