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 | 罗克韦尔设备 |
📋 配置步骤
-
获取设备凭证
- IP 地址
- 端口号
- 认证信息
- 寄存器地址
-
添加设备连接
- 进入编辑器的"连接"(Connections)页面
- 添加设备
- 配置通信参数
-
配置标签
- 创建数据标签
- 绑定到设备寄存器
- 设置数据类型和单位
步骤 2:创建可视化界面
2.1 创建空视图 📺
创建一个新的视图作为可视化界面的基础。
2.2 绑定控件到视图 🎛️
添加各种交互控件(按钮、开关、滑块等)并绑定数据标签。
2.3 绑定形状到视图 🔷
添加图形元素(矩形、圆形、管道等)并绑定数据以实现动态效果。
2.4 绑定图表控件到视图 📊
添加数据图表以显示实时趋势和历史数据。
步骤 3:配置 UI 布局 🎨
设计用户界面的整体布局,包括:
- 顶部导航栏
- 侧边栏菜单
- 主内容区域
- 底部状态栏
步骤 4:配置报警系统 🚨
设置报警规则,当数据超出阈值时自动触发报警。
报警类型
| 报警级别 | 说明 | 应用场景 |
|---|---|---|
| High High | 高高报警 | 严重超标 |
| High | 高报警 | 超标预警 |
| Low | 低报警 | 低于下限 |
| Message | 消息报警 | 信息提示 |
报警功能
- ✅ 实时弹窗提示
- ✅ 声音报警
- ✅ 报警历史记录
- ✅ 短信/邮件通知
步骤 5:激活并创建自定义用户 👥
用户管理
-
激活系统
- 配置系统参数
- 设置访问权限
-
创建用户
- 添加用户账号
- 分配角色和权限
- 设置访问密码
-
用户角色
- 管理员:完全访问权限
- 操作员:查看和控制权限
- 访客:仅查看权限
💡 实用技巧
🎯 最佳实践
-
项目规划
- 先设计整体架构
- 划分功能模块
- 制定命名规范
-
标签管理
- 使用清晰的标签名称
- 添加描述和单位
- 合理组织标签分组
-
界面设计
- 保持界面简洁
- 使用一致的配色
- 考虑移动端适配
-
性能优化
- 合理设置数据更新频率
- 避免过多动画效果
- 使用缓存减少请求
⚠️ 常见问题
| 问题 | 解决方案 |
|---|---|
| 设备连接失败 | 检查 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 客户端:
- 选择类型为 MQTT Client。
- 输入 Broker 的 IP 地址和端口 (如
192.168.1.100:1883)。 - 如需认证,填写 Client ID、用户名和密码。
- 配置成功后,即可在"标签"管理中设置订阅主题或发布主题,并将这些数据点绑定到界面组件上。
为什么 MQTT 对 FUXA 很重要?
MQTT 协议轻量、简单、省带宽,非常适合工业现场的传感器数据传输。由于 FUXA 本身原生支持的协议有限(主要集中在主流 PLC 协议),当遇到小众或非标设备时,可以利用"网关转换"策略:
常见方案:现场设备 → 网关(转换为 MQTT)→ FUXA(支持 MQTT)
这种方案巧妙地扩展了 FUXA 的接入能力,解决了原生协议支持不足的问题。