学习开源数据采集与监视控制SCADA-即工业组态开源框架FUXA

FUXA 是一款开源、基于 Web 的过程可视化软件 ,常被用作 SCADA (数据采集与监视控制)系统、HMI(人机界面)和仪表板工具。你可以把它理解为工业物联网领域的"组态软件",核心作用是为机器和设备创建现代化的监控界面,并实时显示数据。


关于 FUXA

主要特点:

  • 纯 Web 化:整个工程设计和监控界面都在浏览器中完成,无需安装厚重的客户端软件。
  • 跨平台:后端基于 Node.js,前端使用 Angular 等 Web 技术。
  • 丰富的设备连接能力:它支持多种主流工业协议和物联网协议,作为连接底层设备与上层应用的桥梁。

2️⃣ 访问 FUXA 界面

安装完成后,FUXA UI 将通过以下 URL 访问:

复制代码
http://localhost:1881

FUXA Web 服务器提供两个主要页面:

页面 URL 说明
可视化界面 http://localhost:1881/home 终端用户查看界面
编辑器 http://localhost:1881/editor 项目设计和开发界面

📝 完整步骤概览

复制代码
┌─────────────────────────────────────────────────────────┐
│  步骤 1:连接设备并配置标签                               │
├─────────────────────────────────────────────────────────┤
│  步骤 2:创建可视化界面                                   │
│    ├─ 2.1 创建空视图                                     │
│    ├─ 2.2 绑定控件到视图                                 │
│    ├─ 2.3 绑定形状到视图                                 │
│    └─ 2.4 绑定图表控件到视图                             │
├─────────────────────────────────────────────────────────┤
│  步骤 3:配置 UI 布局                                    │
├─────────────────────────────────────────────────────────┤
│  步骤 4:配置报警系统                                    │
├─────────────────────────────────────────────────────────┤
│  步骤 5:激活并创建自定义用户                             │
└─────────────────────────────────────────────────────────┘

步骤 1:连接设备并配置标签

🔌 支持的设备类型

FUXA 支持多种工业设备:

设备类型 协议 适用场景
Modbus RTU/TCP 通用工业设备
Siemens S7 S7 协议 西门子 PLC
OPC UA OPC UA 工业自动化标准
BACnet IP BACnet 楼宇自动化
MQTT MQTT 物联网设备
Ethernet/IP Allen Bradley 罗克韦尔设备

📋 配置步骤

  1. 获取设备凭证

    • IP 地址
    • 端口号
    • 认证信息
    • 寄存器地址
  2. 添加设备连接

    • 进入编辑器的"连接"(Connections)页面
    • 添加设备
    • 配置通信参数
  3. 配置标签

    • 创建数据标签
    • 绑定到设备寄存器
    • 设置数据类型和单位

步骤 2:创建可视化界面

2.1 创建空视图 📺

创建一个新的视图作为可视化界面的基础。

2.2 绑定控件到视图 🎛️

添加各种交互控件(按钮、开关、滑块等)并绑定数据标签。

2.3 绑定形状到视图 🔷

添加图形元素(矩形、圆形、管道等)并绑定数据以实现动态效果。

2.4 绑定图表控件到视图 📊

添加数据图表以显示实时趋势和历史数据。


步骤 3:配置 UI 布局 🎨

设计用户界面的整体布局,包括:

  • 顶部导航栏
  • 侧边栏菜单
  • 主内容区域
  • 底部状态栏

步骤 4:配置报警系统 🚨

设置报警规则,当数据超出阈值时自动触发报警。

报警类型

报警级别 说明 应用场景
High High 高高报警 严重超标
High 高报警 超标预警
Low 低报警 低于下限
Message 消息报警 信息提示

报警功能

  • ✅ 实时弹窗提示
  • ✅ 声音报警
  • ✅ 报警历史记录
  • ✅ 短信/邮件通知

步骤 5:激活并创建自定义用户 👥

用户管理

  1. 激活系统

    • 配置系统参数
    • 设置访问权限
  2. 创建用户

    • 添加用户账号
    • 分配角色和权限
    • 设置访问密码
  3. 用户角色

    • 管理员:完全访问权限
    • 操作员:查看和控制权限
    • 访客:仅查看权限

💡 实用技巧

🎯 最佳实践

  1. 项目规划

    • 先设计整体架构
    • 划分功能模块
    • 制定命名规范
  2. 标签管理

    • 使用清晰的标签名称
    • 添加描述和单位
    • 合理组织标签分组
  3. 界面设计

    • 保持界面简洁
    • 使用一致的配色
    • 考虑移动端适配
  4. 性能优化

    • 合理设置数据更新频率
    • 避免过多动画效果
    • 使用缓存减少请求

⚠️ 常见问题

问题 解决方案
设备连接失败 检查 IP 地址、端口、网络连接
数据不更新 检查标签配置、设备通信状态
界面显示异常 清除浏览器缓存、检查浏览器兼容性
报警不触发 检查报警条件、阈值设置

🎉 恭喜!

您已经完成了 FUXA 的快速入门学习!

安装与运行:

FUXA 运行在 Node.js 环境中,要求 Node 版本为 14、16 或 18。安装命令通常为:

bash 复制代码
npm install -g --unsafe-perm @frangoteam/fuxa
fuxa

安装完成后,在浏览器中打开 http://localhost:1881 即可访问编辑器。


FUXA 与 MQTT 的关系

MQTT 是 FUXA 最重要的"输入/输出"通道之一。FUXA 内置了 MQTT 客户端功能,既可以订阅 (接收)来自设备的消息,也可以发布(发送)指令给设备。

在实际应用中,FUXA 与 MQTT 配合主要有两种方式:

1. 数据采集与监控(订阅)

将 FUXA 作为 MQTT 客户端,连接到 Broker(如 Mosquitto)。通过订阅特定的主题,FUXA 可以实时接收传感器、PLC 等设备上报的数据,并在仪表板上动态显示。

  • 场景举例:温度传感器每隔 5 秒通过 MQTT 发布一次温度值。FUXA 订阅该主题后,监控界面上的温度计数值会实时更新。

2. 远程控制(发布)

利用 FUXA 的可视化界面(如按钮),当用户点击时,触发 FUXA 向特定的 MQTT 主题发送指令消息(通常为 JSON 格式),从而控制继电器、电机等执行机构。

  • 场景举例 :在 FUXA 界面上点击"启动"按钮,它会发布一条 {"device": "pump", "status": "ON"} 的消息到 /control/pump 主题,设备端收到后即可启动水泵。

配置步骤简述:

在 FUXA 编辑器中,通过"连接"配置界面添加 MQTT 客户端:

  1. 选择类型为 MQTT Client
  2. 输入 Broker 的 IP 地址和端口 (如 192.168.1.100:1883)。
  3. 如需认证,填写 Client ID、用户名和密码。
  4. 配置成功后,即可在"标签"管理中设置订阅主题或发布主题,并将这些数据点绑定到界面组件上。

为什么 MQTT 对 FUXA 很重要?

MQTT 协议轻量、简单、省带宽,非常适合工业现场的传感器数据传输。由于 FUXA 本身原生支持的协议有限(主要集中在主流 PLC 协议),当遇到小众或非标设备时,可以利用"网关转换"策略:

常见方案:现场设备 → 网关(转换为 MQTT)→ FUXA(支持 MQTT)

这种方案巧妙地扩展了 FUXA 的接入能力,解决了原生协议支持不足的问题。

相关推荐
亚马逊云开发者2 小时前
Claude Code 接入开源模型实战:SageMaker 部署 Kimi/GLM + LiteLLM 路由降本 70%
开源
zl_dfq2 小时前
Python学习5 之【字符串】
python·学习
蚂蚁数据AntData2 小时前
破解AI“机器味“困境:HeartBench评测实践详解
大数据·人工智能·算法·机器学习·语言模型·开源
ada0_ada13 小时前
qt模块学习记录
开发语言·qt·学习
Xudde.3 小时前
班级作业笔记报告0x10
笔记·学习·安全·web安全·php
信创DevOps先锋4 小时前
Gitee CodePecker SCA:开源安全治理的“标准答案“如何炼成
安全·gitee·开源
知识分享小能手5 小时前
MongoDB入门学习教程,从入门到精通,MongoDB的选择片键 - 完整知识点(16)
数据库·学习·mongodb
知识分享小能手5 小时前
MongoDB入门学习教程,从入门到精通,MongoDB分片配置完全指南(15)
数据库·学习·mongodb
Dyanic5 小时前
AMSFusion:一种基于注意力机制的自适应多尺度红外与可见光图像融合网络
图像处理·人工智能·学习