跳到主要内容

流程 (Node-RED) — 快速上手

通过 /ui/flow 菜单可以访问网关内置的 Node-RED 环境。 Node-RED 是一款低代码工具,通过拖放方式连接各个模块(节点)来构建数据流。您可以读写网关的标签值,通过 MQTT/HTTP 与外部系统对接,并实现报警、日志、计算等自动化流程。

2026.05+ 容器模式下的 Node-RED

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 后才会生效

即使添加/删除/修改了节点,在点击 Deploy 之前网关并不知晓这些变更。显示红点 (●) 的节点表示“存在未保存的变更”。


4. 消息(msg)的基本结构

在节点之间流动的数据始终是名为 msg 的 JavaScript 对象。最常用的字段:

字段含义
msg.payload正文(主要数据)。可以是数字/字符串/对象/缓冲区
msg.topic主题(分类标签)。常用于 MQTT/Switch/Join 等
msg.timestamp时间戳(需要时自行填充)
msg._msgidNode-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.valuemsg.payload 在流程中填充
写入有风险 — 请先用测试标签验证

在对实际设备直接应用写入之前,请使用外部模拟器或测试标签充分验证。写权限仅限于与运维团队达成一致的标签。

详细字段 / 输入输出 / 全部协议支持表 → Edge 类别(标签读取/写入)


6. 第一个流程 — Hello World

目标:每 5 秒读取一个标签并输出到 Debug 侧边栏

  1. 从面板拖入 inject 节点 → 双击 → Repeat: interval every 5 seconds → Done
  2. 拖入 엣지태그값 읽기 节点 → 在 Tag ID 中输入实际标签(例如 TAG_TEST_00042)→ Done
  3. 从面板拖入 debug 节点
  4. inject → 태그값 읽기 → debug 顺序用连线连接三个节点
  5. 点击右上角 Deploy
  6. 打开右侧侧边栏的 debug 选项卡,确认每 5 秒是否输出值

这一模式(周期触发 → 读取 → 处理)是所有 IIoT 流程的基本形态。


7. 后续步骤

按左侧菜单顺序:

  1. 基本节点用法 — IIoT 中常用的 14 个节点的功能
  2. Edge 节点(标签读取/写入) — 网关专用节点(第 5 节一览的详细版本)
  3. MQTT 节点详解 — Broker 配置 / Pub / Sub / LWT / Birth
  4. OPC-UA 节点详解 — Endpoint / Item / Client / Subscribe / Browse
  5. Sparkplug B 节点详解 — Group / Edge / Birth-Death / 收发
  6. IIoT 示例集 — 现场常见的 12 种模式
  7. 故障排查 — 常见陷阱

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/>