Node-RED 是一个基于浏览器的流程编排工具,用于连接硬件设备、API 和在线服务。它通过拖放节点(Nodes)并连接它们来构建自动化流程。
在 Node-RED 中,一切都是通过节点来实现的。节点可以是输入节点、输出节点、函数节点或者服务节点等。
输入节点:接收数据,例如来自传感器的数据或来自 HTTP 请求的数据。
输出节点:发送数据,例如向一个仪表发送数据或向另一个服务发送数据。
函数节点:执行自定义的 JavaScript 代码,可以对数据进行处理或转换。
服务节点:调用外部服务或 API,例如调用天气服务的 API。
流是由节点和连线(连接节点的线)组成的。这些流可以被触发执行,例如通过输入节点的数据到达或定时器触发。
当流被部署后,Node-RED 的运行时环境会管理这些流的执行:
事件驱动:流根据输入节点的触发事件开始执行。例如,当传感器数据到达或 HTTP 请求被接收时。
消息传递:消息在节点间传递。每个节点可以修改消息的内容或格式,然后将其传递给下一个节点。
并行和序列处理:流可以设计为并行处理多个输入或按顺序处理数据流。
Node-RED 提供了一个基于浏览器的界面,允许用户通过拖放操作来创建和修改流。界面还包括一个调试面板,用于查看消息的流动和节点的状态。
示例流程
例如,一个简单的流程可能包括:
HTTP 输入节点:监听来自 web 的 HTTP 请求。
函数节点:处理接收到的数据,例如解析 JSON 或计算值。
调试节点:显示处理后的数据,帮助开发者调试。
HTTP 响应节点:将处理后的数据返回给客户端。
部署和使用
用户可以在 Node-RED 的界面中设计流程,并通过点击“部署”按钮来使设计生效。一旦部署,流程就会自动运行,并根据需要处理数据。
Node-RED 的这种设计方式使得它非常适合快速原型开发和物联网项目的实现,同时也容易学习和使用。
编程页面,主要分为四个区域,菜单栏、节点库、工作区和调试区。
菜单栏:顶部的菜单栏,包含部署按钮以及主菜单(流程导入导出在菜单栏)
节点库:提供各种封装好功能的节点,供使用者调用
工作区:将节点拖入工作区,连线代表数据交互,即可实现自由编程
调试区:分为5个页面,分别是:信息窗口/帮助文档/日志窗口/配置节点/全局变量
部署
在配置完成后,需要点击右上角的部署按钮,配置才会生效。
导入和导出json
配置的实际存储载体是一个json文件,配置完成后,可以通过导出功能将流程备份。同理,如果需要在一个新网关上部署已经完成的配置,可以使用导入功能。
导入:直接复制JSON数据,或者上传JSON文件;
导出:保存为JSON文件。
节点通过连线连接在一起,一个节点可以有多个输入端口和多个输出端口。根据需要实现的功能,将多个节点从节点库拖到工作区,并通过线连接,就可以让数据流转。
有些节点在下方会显示一个状态栏,用来表明节点的运行状态,比如MQTT节点的状态栏表示MQTT的连接状态:
如果节点有任何未部署的修改,会在其右上方显示一个蓝色的圆点,如果配置有错误,会显示一个红色的三角形:
在配置中,增加一个调试节点,可以在调试区中看到调试信息。例如,在modbus读取或者在s7读取后面,增加一个调试节点,就能在调试区看到具体的日志,包括读取成功、超时、连接失败等等,方便排查问题。
在Node-RED中,节点帮助信息的使用方法如下:
查看节点基础信息
双击任意节点打开配置面板,顶部会显示该节点的功能简介和基本用法说明
节点描述区域通常包含参数说明和典型应用场景
访问详细帮助文档
在节点配置面板点击右上角的"?"图标,会打开该节点的官方文档页面
对于核心节点,帮助文档会显示在右侧信息侧边栏(Info Sidebar)
调试节点输出
使用Debug节点可以实时查看消息对象的完整结构
调试信息会显示在右侧Debug侧边栏,包含payload和其他属性
常用节点帮助示例
首先需要从右边拖四个节点,分别是注入、modbus读取、mqtt发布和调试,然后依次连线,配置完后点击部署,最后在调试区看数据。
配置注入
目的是设置modbus的读取周期
双击注入节点进行配置,只需要设置周期,选择周期性执行,并设置周期的间隔,最后点完成。
配置modubus读
主要需要配置modbus的地址码、寄存器、功能码、数据格式。其次还有串口参数,也是在modbus节点里面配置,在连接配置这一栏配置串口参数。
双击modbus节点进行配置,填写地址码,选择功能码。键值填写到数据名称,并填写寄存器地址,选择正确的数据类型。
配置串口参数
还是在modbus节点里面配置,点击连接配置旁边的编辑modbud config,设置正确的串口参数,最后点击更新和完成。
主题:填写mqtt的发布主题。
在连接参数里面,设置服务器地址和端口
在安全里面,配置用户名和密码
配置完每个节点后,点击部署
查看数据
可以在调试窗口,看到读取的值。
Node-RED可以从本地文件、URL 导入流程,下面是实例导入的详细教程。
在 Node-RED 编辑器中,点击右上角菜单 ≡ → 导入。
选择 Select a file to import,上传本地的 .json 流程文件。
点击 导入,流程会自动出现在工作区。
示例 JSON 文件内容(Hello World 流程):
json
[
{
“id”: “d1a3b5c6.12345”,
“type”: “inject”,
“z”: “abc123”,
“name”: “”,
“props”: [ { “p”: “payload” }, { “p”: “topic”, “vt”: “str” } ],
“repeat”: “”,
“crontab”: “”,
“once”: false,
“payload”: “Hello World”,
“payloadType”: “str”,
“topic”: “”,
“x”: 200,
“y”: 100,
“wires”: [ [ “b2c4d6e8.67890” ] ]
},
{
“id”: “b2c4d6e8.67890”,
“type”: “debug”,
“z”: “abc123”,
“name”: “”,
“active”: true,
“tosidebar”: true,
“console”: false,
“tostatus”: false,
“complete”: “false”,
“x”: 400,
“y”: 100,
“wires”: []
}
]
点击 部署 部署流程,并点击触发
1、选择节点
首先从右边拖入两个节点,分别是s7读取和调试,然后连线,配置完后点击部署,最后在调试区看数据。
2、配置s7读取
双击s7读取节点进行配置,点击配置旁边的+,需要配置ip和变量,最后点击添加和完成
接口选择以太网,填写plc的IP、端口、机架号和槽号。
地址变量填写要plc的参数地址,变量名称填写键值
3、点击部署
4、查看数据
在调试窗口查看数据