流程 (Node-RED) — 快速上手
通过 /ui/flow 菜单可以访问网关内置的 Node-RED 环境。
Node-RED 是一款低代码工具,通过拖放方式连接各个模块(节点)来构建数据流。您可以读写网关的标签值,通过 MQTT/HTTP 与外部系统对接,并实现报警、日志、计算等自动化流程。
Node-RED 4.1.10 + Node.js 20(均在 image 内全局安装)。容器首次启动时,userDir.seed
(image 内置的默认 flows + node_modules + plantpulse-edge / node-red-contrib-opcua 节点)
会自动复制到 /data1/pp-data/node-userdir/(从第二次启动起保留用户 flow)。
image 升级后用户 flow 依然保持不变。
PlantPulse 专用节点(pp-tag-value-read / pp-tag-value-write / pp-opc-* / pp-tag-list)
通过绝对路径 symlink 连接到 image 中的 node/conf/plantpulse-edge-nodes/ —— 由 entrypoint 在每次
启动时确保(提前规避旧版 native 中使用相对路径的 symlink 在容器内失效的问题)。
请先完成 자주 하는 작업 → 새 PLC 연결 추가 / 태그 등록,并在至少有一个标签正在实时采集的状态下开始。Node-RED 会将该标签值作为输入使用。
1. 访问
在浏览器中访问网关后,点击左侧菜单 流程 (Node-RED),或直接进入 http://<gateway>/ui/flow。
2. 界面构成
| 区域 | 说明 |
|---|---|
| 左侧 面板(Palette) | 可用节点列表,按类别排列。엣지 类别中包含网关专用节点。 |
| 中间 工作区(Workspace) | 拖入节点进行布置,并用连线连接。可按标签页(多个流程)分开管理。 |
| 右侧 侧边栏 | info 选项卡显示所选节点的帮助信息,debug 选项卡显示 debug 节点的输出日志。 |
| 右上角 Deploy | 要让变更实际生效,必须点击 Deploy 按钮。 |
3. 基本操作 — 掌握后更高效的快捷键
| 操作 | 方法 |
|---|---|
| 添加节点 | 从面板拖到工作区 |
| 配置节点 | 双击节点 → 在右侧面板编辑 → Done |
| 连接节点(连线) | 拖动节点的输出端点(右侧)并放到另一节点的输入端点(左侧) |
| 断开连线 | 点击连线选中后按 Delete |
| 多选 | Shift 拖动框选,或用 Ctrl/Cmd + 클릭 追加选择 |
| 复制 / 粘贴 | Ctrl/Cmd + C / Ctrl/Cmd + V |
| 搜索 | Ctrl/Cmd + F — 在面板中按节点名称搜索 |
| 导入流程 | 菜单 → 导入 → 粘贴 JSON(可直接导入本文档中的示例代码) |
即使添加/删除/修改了节点,在点击 Deploy 之前网关并不知晓这些变更。显示红点 (●) 的节点表示“存在未保存的变更”。
4. 消息(msg)的基本结构
在节点之间流动的数据始终是名为 msg 的 JavaScript 对象。最常用的字段:
| 字段 | 含义 |
|---|---|
msg.payload | 正文(主要数据)。可以是数字/字符串/对象/缓冲区 |
msg.topic | 主题(分类标签)。常用于 MQTT/Switch/Join 等 |
msg.timestamp | 时间戳(需要时自行填充) |
msg._msgid | Node-RED 自动赋予的唯一 ID —— 用于追踪 |
大多数节点仅使用 msg.payload 即可工作。
5. Edge 节点 — 一览(网关专用)
在面板左侧 엣지 类别中,有网关自行注册的两个节点。它们是几乎所有 IIoT 流程的输入/输出。
| 图标 | 节点 | 英文名 | 功能 | 调用的 REST |
|---|---|---|---|---|
| ⬇ | 标签值读取 (pp-tag-read) | read tag value | 获取某个标签的当前值(缓存或直接从 PLC 读取) | GET /api/v1/tag/{tagId}/value |
| ⬆ | 标签值写入 (pp-tag-write) | write tag value | 向某个标签写入值(立即反映到 PLC) | POST /api/v1/tag/{tagId}/value |
inject (1s) ──▶ 태그값 읽기 ──▶ 처리 (function/switch/...) ──▶ 태그값 쓰기 / mqtt out / debug / file ...
如何查找节点 — 在面板搜索框输入 read tag 或 엣지 → 仅筛选出这两个节点。颜色为淡粉蓝色。
| 节点配置中常留空的项 | 动态填充方法 |
|---|---|
| Tag ID | 在流程中通过 msg.tagId = 'TAG_...' 动态指定(一个节点可复用于多个标签) |
| Value(写入节点) | 通过 msg.value 或 msg.payload 在流程中填充 |
在对实际设备直接应用写入之前,请使用外部模拟器或测试标签充分验证。写权限仅限于与运维团队达成一致的标签。
详细字段 / 输入输出 / 全部协议支持表 → Edge 类别(标签读取/写入)
6. 第一个流程 — Hello World
目标:每 5 秒读取一个标签并输出到 Debug 侧边栏。
- 从面板拖入
inject节点 → 双击 →Repeat: intervalevery 5 seconds→ Done - 拖入
엣지→태그값 읽기节点 → 在 Tag ID 中输入实际标签(例如TAG_TEST_00042)→ Done - 从面板拖入
debug节点 - 按
inject → 태그값 읽기 → debug顺序用连线连接三个节点 - 点击右上角 Deploy
- 打开右侧侧边栏的 debug 选项卡,确认每 5 秒是否输出值
这一模式(周期触发 → 读取 → 处理)是所有 IIoT 流程的基本形态。
7. 后续步骤
按左侧菜单顺序:
- 基本节点用法 — IIoT 中常用的 14 个节点的功能
- Edge 节点(标签读取/写入) — 网关专用节点(第 5 节一览的详细版本)
- MQTT 节点详解 — Broker 配置 / Pub / Sub / LWT / Birth
- OPC-UA 节点详解 — Endpoint / Item / Client / Subscribe / Browse
- Sparkplug B 节点详解 — Group / Edge / Birth-Death / 收发
- IIoT 示例集 — 现场常见的 12 种模式
- 故障排查 — 常见陷阱
8. 了解更多
- 在 OPC-UA 节点查看器(
/ui/opcua)中可一览当前网关拥有的所有标签/值/节点ID。→ 使用 OPC-UA 节点查看器 - REST API 本身参见
고급 / 통합 파트너용 → REST API章节。Node-RED 的pp-tag-read/pp-tag-write只是该 API 的轻量封装。 - Node-RED 官方手册:
<https://nodered.org/docs/>