开始使用流 (Node-RED)
您可以通过 /ui/flow 菜单访问网关内置的 Node-RED 环境。
Node-RED 是一款低代码工具,通过拖拽并连接区块(节点)来创建数据流。它可以读取和写入网关的标签值,通过 MQTT/HTTP 与外部系统联动,并绘制报警、日志记录、计算等自动化流程。
Node-RED 4.1.10 + Node.js 20(均在 image 内全局安装)。容器首次启动时,userDir.seed (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. 界面构成

| 数字 | 区域 | 说明 |
|---|---|---|
| ① | 左侧 调色板 | 可用节点列表。按类别分组,PlantPulse Edge 类别中包含网关专用节点(pp-tag-value-read · pp-tag-value-write · pp-opc-* · pp-tag-list) |
| ② | 流标签页 | 将流分成多个页面。通过 + 创建新标签页 |
| ③ | 中间 工作区 | 拖放节点并使用连线将其连接 |
| ④ | 右侧 侧边栏 | info 为所选节点的帮助,debug 为 debug 节点的输出日志 |
| ⑤ | 右上角 Deploy | 必须点击后网关才会感知更改 |
3. 基础操作 — 常用快捷键
| 动作 | 方法 |
|---|---|
| 添加节点 | 从调色板拖拽到工作区 |
| 节点设置 | 双击节点 → 在右侧面板编辑 → Done |
| 连接节点(连线) | 拖拽节点的输出点(右侧)并放置在另一个节点的输入点(左侧) |
| 断开连线 | 点击选择连线后 Delete |
| 多选 | Shift 拖拽选择区域,或使用 Ctrl/Cmd + 클릭 追加选择 |
| 复制 / 粘贴 | Ctrl/Cmd + C / Ctrl/Cmd + V |
| 搜索 | Ctrl/Cmd + F — 在调色板中搜索节点名称 |
| 导入流 | 菜单 → 导入 → 粘贴 JSON (导入用示例流 可直接 import) |
即使添加/删除/修改了节点,在点击 Deploy 之前,网关也不会感知这些更改。标记有红点 (●) 的节点表示“有未保存的更改”。
4. 消息(msg) 的基本结构
节点之间传输的数据始终是一个名为 msg 的 JavaScript 对象。最常用的字段如下:
| 字段 | 含义 |
|---|---|
msg.payload | 正文(主要数据)。支持数字/字符/对象/Buffer |
msg.topic | 主题(分类标签)。常用于 MQTT/Switch/Join 等 |
msg.timestamp | 时间戳 (必要时手动填充) |
msg._msgid | Node-RED 自动分配的唯一 ID — 用于追踪 |
大多数节点仅依靠 msg.payload 即可运行。
5. Edge 节点 — 概览 (网关专用)
在调色板左侧 PlantPulse Edge 类别中,共有 7 个由网关自行注册的节点。首先看其中作为输入输出核心的两个节点,它们几乎是所有 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 或 PlantPulse → 仅筛选该节点。颜色为淡粉蓝色。
| 节点设置中经常留空的项 | 动态填充方法 |
|---|---|
| Tag ID | 在流中使用 msg.tag_id = 'TAG_...' 动态指定 (使一个节点可重复用于多个标签) |
| Value (写入节点) | 在流中使用 msg.value 或 msg.payload 填充 |
在对实际设备应用写入之前,请使用外部模拟器或 测试标签 进行充分验证。写入权限仅限与运营团队协商一致的标签。
详细字段 / 输入输出 / 所有协议支持表 → Edge 类别 (标签读取/写入)
6. 第一个流 — Hello World
目标:每 5 秒读取一个标签并在 Debug 侧边栏输出。
- 从调色板拖拽
inject节点 → 双击 →Repeat: intervalevery 5 seconds→ Done - 拖拽 PlantPulse Edge → 标签值读取 节点 → 在 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 种模式
- 导入用示例流 — 可直接粘贴运行的 6 套完整流
- 流问题排查 — 常见误区
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/>