- Zed IoT
-
2026年5月18日 -
下午1:11 -
0 评论
FUXA、Node-RED 和 Modbus 可以组成一个很实用的开源 SCADA 原型栈,但它的价值不在于“替代完整工业 SCADA”,而在于用较低成本把现场数据、HMI 画面、轻量逻辑和验证流程快速串起来。对工程团队来说,这套组合最适合做原型验证、实验线监控、设备联调、客户演示和轻量级现场看板。
本文的核心结论是:Modbus 负责把设备数据读出来,Node-RED 负责采集、转换和轻量编排,FUXA 负责 Web HMI / Dashboard 展示。 当系统需要高可用冗余、严格权限隔离、报警闭环、电子签名、审计追溯、变更管理或长期合规运维时,这套开源栈应当作为原型层或边缘展示层,而不是直接替代成熟 SCADA 平台。
决策块
如果目标是验证设备寄存器、搭建演示 HMI、跑通边缘采集链路或让业务方理解现场状态,FUXA + Node-RED + Modbus 很合适;如果目标是承载关键生产线、强审计报警、跨班组权限和长期 7x24 运维,就需要在这套栈外补齐工业级 SCADA 的治理能力,或者直接选择商用 SCADA / 工业平台。

1. 先把三者分工说清楚
这套组合容易被误解成“三个开源工具拼起来就是 SCADA”。更准确的说法是:它们覆盖了 SCADA 原型中最常见的三层,但没有自动覆盖生产 SCADA 的全部治理能力。
| 组件 | 主要职责 | 适合承担 | 不适合承担 |
|---|---|---|---|
| Modbus | 现场设备通信协议 | 读取寄存器、线圈、状态量和部分控制点 | 设备模型治理、权限、审计、报警策略 |
| Node-RED | 数据采集与轻量编排 | 轮询、协议桥接、数据清洗、API 转发、规则原型 | 关键实时控制、强事务、长期状态主账本 |
| FUXA | Web HMI / Dashboard | 画面组态、实时监控、趋势和轻量操作界面 | 高等级权限体系、完整报警闭环、合规审计 |
FUXA 官方仓库把它定位为面向工业自动化、IoT 和实时过程可视化的 Web SCADA / HMI / Dashboard 软件,并列出 Modbus RTU/TCP、OPC-UA、MQTT、Siemens S7 等协议支持。Node-RED 的官方概念文档则把 flow、node、message 作为核心模型,适合把输入、处理和输出用可视化流程串起来。Modbus 作为工业现场常见协议,核心优势是简单、普及、易接入,代价是语义弱,寄存器含义、单位、缩放和异常状态都需要系统自己管理。
所以,这套栈的正确边界是“快速把现场数据变成可见、可调试、可演示的系统”。它能帮助团队更早发现寄存器映射错误、采集周期不合理、HMI 画面信息密度过高、现场变量命名混乱等问题。
2. 推荐架构:不要让 HMI 直接背全部责任
一个稳妥的原型架构应该把采集、标准化、状态缓存和展示分开,而不是让 HMI 画面直接到处连设备。
flowchart LR
A("现场设备<br/>PLC / 仪表 / 传感器"):::blue --> B("Modbus RTU / TCP<br/>寄存器与线圈"):::cyan
B --> C("Node-RED<br/>轮询 / 清洗 / 转换"):::orange
C --> D("状态缓存<br/>Latest Values / History"):::violet
D --> E("FUXA Web HMI<br/>画面 / 趋势 / 操作"):::green
C --> F("业务接口<br/>API / MQTT / Database"):::slate
E --> G("人工查看与低风险操作"):::green
classDef blue fill:#EAF4FF,stroke:#3B82F6,color:#16324F,stroke-width:2px;
classDef cyan fill:#E9FBF8,stroke:#14B8A6,color:#134E4A,stroke-width:2px;
classDef orange fill:#FFF3E8,stroke:#F08A24,color:#7C3F00,stroke-width:2px;
classDef violet fill:#F4EDFF,stroke:#8B5CF6,color:#4C1D95,stroke-width:2px;
classDef green fill:#ECFDF3,stroke:#22C55E,color:#14532D,stroke-width:2px;
classDef slate fill:#F8FAFC,stroke:#64748B,color:#1F2937,stroke-width:2px;这个分层有三个好处。
第一,Modbus 采集逻辑集中在 Node-RED 或边缘采集层里。寄存器地址、缩放系数、单位、异常码和轮询间隔都在一个地方维护,后续切换 HMI 或增加数据库不会重新复制一套协议逻辑。
第二,FUXA 只需要关注画面和交互。它可以展示泵、阀门、温度、压力、运行状态和趋势,但不应该成为所有现场数据解释规则的唯一位置。否则画面越多,隐含逻辑越难维护。
第三,业务接口与 HMI 分离。原型阶段常常会临时加 MQTT、HTTP API、数据库、Excel 导出或客户系统回调。如果这些动作都写进 HMI 画面事件里,后续会很难测试和迁移;放在 Node-RED 或集成层里更容易逐步工程化。
3. 什么场景适合这套开源栈
3.1 设备联调和寄存器确认
当现场设备还在联调阶段,最缺的不是一套完整 SCADA,而是一个能快速看到“读到了什么、单位是否正确、变化是否符合预期”的工具链。Modbus 提供设备数据入口,Node-RED 负责轮询和转换,FUXA 则把关键点位画出来。
这种场景下,评价标准不是系统多完整,而是调试闭环是否短。工程师应该能快速回答:
- 某个寄存器地址是否正确。
- 缩放系数和单位是否一致。
- 设备异常码是否被识别。
- 轮询周期是否造成总线压力。
- HMI 上展示的状态是否和现场一致。
3.2 小型产线、实验台或客户演示
如果现场只有少量设备,控制风险较低,并且主要目标是展示状态、趋势和少量人工操作,FUXA + Node-RED + Modbus 可以显著降低原型成本。
典型例子包括实验室测试台、试点设备、能源监测小系统、冷链监控演示、设备供应商 Demo、客户 PoC 和内部培训环境。它们的共同特点是:系统需要真实连接设备,但失败后果可控,且更重视迭代速度。
3.3 从工具教程升级到系统原型
很多团队一开始只是在看单个工具:FUXA 怎么画 HMI,Node-RED 怎么读 Modbus,Modbus Poll 怎么验证寄存器。真正进入项目时,问题会变成“这些工具如何组成一个可解释的链路”。
这套组合的价值正在这里:它把工具从单点教程升级成原型架构。FUXA 不只是画图,Node-RED 不只是拖节点,Modbus 也不只是读寄存器;三者合起来回答的是“现场状态如何被采集、解释、展示和交付给人”。
4. 什么时候不要把它当生产 SCADA
开源原型栈最常见的风险,是原型跑通后被直接推到生产现场。问题通常不是“工具不能用”,而是“系统责任没有补齐”。
如果出现下面条件,就不应该把这套栈原样当作完整 SCADA:
- 多班组、多角色、多租户都要访问同一系统。
- 需要报警确认、升级、关闭、注释和事后追溯。
- 设备操作会影响安全、产线停机、客户承诺或资产损失。
- 需要高可用、冗余服务器、离线补偿和灾难恢复。
- 需要长期审计、变更记录、版本发布和配置回滚。
- 需要与 MES、ERP、CMMS 或质量系统稳定集成。
这些能力不是简单多画几个页面就能解决的。它们属于平台治理、运维流程和工业安全边界。此时更合理的做法是:保留开源栈作为边缘采集 / 原型验证 / 辅助看板,同时把生产控制、报警治理、权限审计和长期数据管理交给更稳的工业平台。
5. 落地时应该补哪些工程约束
如果你决定用这套栈做原型或轻量现场系统,至少要补齐以下约束。
| 约束 | 为什么重要 | 建议做法 |
|---|---|---|
| 点位表 | Modbus 语义弱,寄存器本身不说明业务含义 | 建立变量名、地址、类型、缩放、单位、上下限和说明 |
| 采集周期 | 轮询过快会增加总线和设备压力 | 按变量变化频率分组,不要所有点位同频采集 |
| 异常处理 | 通信超时、CRC 错误、设备离线都不能被当成正常值 | 区分 stale、offline、error、unknown |
| 操作权限 | HMI 操作失败后果可能高于展示失败 | 先限制写操作,只开放低风险人工确认动作 |
| 日志 | 原型阶段也需要知道谁改了什么 | 保存操作日志、配置变更和关键 flow 版本 |
| 备份 | Node-RED flow、FUXA 项目和点位表都可能丢 | 把配置导出纳入 Git 或定期备份 |
边界块
这套栈可以帮助团队证明“设备数据可以被采集并形成可用画面”,但它不能自动证明“系统已经具备生产 SCADA 的可靠性、权限、报警和审计能力”。把这两个结论分开,是避免原型失控的关键。
6. 一个可执行的最小路线
推荐的落地顺序如下:
- 先用 Modbus 调试工具确认寄存器地址、数据类型、字节序、缩放和异常码。
- 在 Node-RED 里建立最小采集 flow,只采关键点位,并输出标准化变量名。
- 加入状态缓存或简单时序存储,避免 HMI 直接承担所有状态逻辑。
- 在 FUXA 中画一张最小 HMI,只展示关键设备状态、趋势和低风险操作。
- 加入错误状态:通信失败、设备离线、数据过期、值越界必须可见。
- 如果需要写操作,先加人工确认、操作日志和回读确认。
- 原型验证通过后,再决定是否继续工程化或迁移到工业平台。
这样做的好处是每一步都有清晰验收点。系统先证明能读准,再证明能显示清楚,然后才考虑自动化和控制。对工业现场来说,这比一开始就追求“全功能 SCADA”更稳。
7. 结论
FUXA、Node-RED 和 Modbus 的组合适合做开源 SCADA 原型栈,因为它覆盖了现场通信、数据转换和 Web HMI 展示这三个最容易卡住原型的环节。它的优势是快、透明、成本低、容易让工程师和客户一起看见真实设备状态。
但这套组合不应该被包装成完整工业 SCADA 的一键替代品。只要系统进入关键生产、强权限、多角色报警、合规审计或长期运维阶段,就必须补齐平台治理和可靠性能力。正确使用它的方式,是把它当作原型验证和轻量边缘展示层:先把现场数据跑通、看清楚、解释准确,再决定是否继续扩展成生产系统。
参考资料
典型应用介绍


