IIoT 中常用的基础节点
除 엣지 类别外,原生 Node-RED 默认提供的节点中,在 IIoT 流程里最为核心的部分如下,按使用频率排列。
1. inject — 触发器 / 调度器
流程的起点。可通过按钮手动触发一次,也可按固定周期/时刻自动触发。
| 选项 | 说明 |
|---|---|
Repeat: interval | 每 N 秒/分/小时 触发一次(例如:每 1 秒轮询) |
Repeat: interval between times | 仅在特定时间段触发(例如:09–18 时) |
Repeat: at a specific time | 每天固定时刻(例如:每天 07:00) |
Repeat: cron-like | crontab 格式(例如:0 7 * * * — 每天 07:00) |
| Inject once after | 是否在 Deploy 后立即触发一次 + 延迟时间 |
还可以注入 msg.payload 和 msg.topic,因此单个节点即可同时承担“调度 + 输入数据”的作用。
2. debug — 侧边栏日志
将 msg 或 msg.payload 输出到右侧边栏的 debug 选项卡。若将输出对象改为“完整 msg 对象”,可以看到平时看不到的所有字段,是调试必备。
3. function — 自由编写 JavaScript
输入一段 JavaScript 代码。对 msg 进行变换后 return msg;,即可传递给下一个节点。
// 예: payload 가 숫자라면 100배 해서 출력
msg.payload = parseFloat(msg.payload) * 100;
return msg;
若要分支到多个输出,可在节点设置中将 Outputs: 2 等调大,并返回数组 return [a, b];。
4. change — 字段的设置/复制/删除(无需代码)
像 msg.topic = "abc"、msg.payload = msg.payload.value 这类简单变换,无需函数节点,用一个 change 就能搞定。支持 set / change / move / delete 四种操作。
5. switch — 条件分支
根据 msg.payload 或任意字段的值,将消息发送到不同的输出端口。可选 checking all rules 或 stop after first match。
┌─ ≥ 80 ─▶ Slack 알림
read ──▶ switch ─┤
└─ < 80 ─▶ 정상 라인
6. join — 汇集多条消息
将并行的多个节点(태그값 읽기 ×3 等)的结果合并为一个数组/对象。mode manual、count N、key msg.topic。
7. delay — 延迟 / 速率限制
- Pause:将消息滞留 N 秒/分(例如:报警后 5 分钟内不重复发送)
- Rate Limit:像“每秒 1 条”这样限制处理速度 — 用于保护外部 API 轮询/MQTT 发送
8. trigger — 状态/定时器组合
实现“消息到达时发出开始消息,若 N 秒后仍未更新则发出结束消息”这类模式 — 常用于数据中断检测。
9. http request / http in / http response
| 节点 | 用途 |
|---|---|
http request | 调用外部 REST API(例如:外部气象 API、公司内部 ERP) |
http in + http response | 在 Node-RED 中自建新的 HTTP 端点(例如:接收 /myreport POST) |
10. file / file in
file(write/append):以文件形式保存到磁盘(CSV 日志等)file in(read):读取文件内容
11. csv / json / xml
字符串 ↔ 对象转换。csv 提供丰富的表头 / 分隔符选项。
12. template
使用 mustache 语法输出模板。在生成邮件/Slack 消息/报表正文时最为方便。
🔥 [경보] {{tag_id}} = {{value}}{{unit}} (한도 {{threshold}})
13. link in / link out
在同一工作区内实现“虚拟跳转”。用于整理杂乱如蛛网的连线。
14. catch / status / complete
当流程中某处发生错误时由 catch 捕获,而节点状态(例如:mqtt 已连接/已断开)则由 status 通知。这是运维稳定化的必备手段。
下一步
- Edge 类别(标签读取/写入) — 网关专用节点
- IIoT 示例集 — 组合上述节点的实际应用模式