FUXA 开源可视化组态软件介绍
项目概述
FUXA是一个基于Web的过程可视化(SCADA/HMI/Dashboard)软件,用于创建现代化的过程可视化界面,支持个性化设计和实时数据显示。
技术栈
后端:Node.js
前端:Angular (HTML5, CSS, JavaScript, SVG)
通信:Socket.io
存储:SQLite (默认),支持 InfluxDB、TDengine
部署:支持 Docker、NPM、Electron 桌面应用
核心功能
1. 设备连接与通信
FUXA支持多种工业协议和设备:
Modbus RTU/TCP
Siemens S7 协议
OPC-UA
BACnet IP
MQTT
Ethernet/IP (Allen Bradley)
ODBC
ADSclient
Gpio (Raspberry)
WebCam
MELSEC
Redis
2. 基于Web的SCADA/HMI编辑器
完全基于Web的工程和设计环境
支持拖拽式界面构建
实时预览和编辑
丰富的SVG组件库
3. 跨平台架构
后端使用Node.js,前端使用Web技术
支持部署为Docker容器
可打包为Electron桌面应用
支持通过NPM全局安装
核心模块
1.
Server 模块
main.js:服务器主入口,负责启动HTTP服务和初始化
fuxa.js:核心功能初始化和管理
runtime/:运行时核心,包含设备通信、报警、存储等功能
api/:RESTful API接口
2.
Runtime 模块
devices/:各种设备驱动实现
alarms/:报警系统
storage/:数据存储(支持多种数据库)
scripts/:脚本执行
scheduler/:任务调度
3.
Client 模块
src/app/:Angular应用代码
src/app/editor/:可视化编辑器
src/app/view/:运行时视图
src/app/device/:设备管理
系统架构

FUXA采用分层架构设计:
1.
前端层:Angular应用,负责用户界面和交互
2.
API层:RESTful API,处理前端请求
3.
运行时层:核心业务逻辑,包括设备通信、数据处理
4.
存储层:数据持久化,支持多种数据库
数据流
1.
设备数据通过各种协议驱动采集
2.
数据经运行时处理后存储
3.
前端通过Socket.io实时获取数据
4.
用户操作通过API传递到后端处理
关键特性
1.
实时数据显示:通过Socket.io实现实时数据更新
2.
可视化编辑器:拖拽式界面设计,支持多种组件
3.
报警系统:可配置的报警规则和通知
4.
数据历史:支持数据存储和历史查询
5.
脚本支持:可编写自定义脚本扩展功能
6.
多语言支持:内置多语言国际化
7.
安全认证:支持用户认证和权限管理
8.
Node-RED集成:可选集成Node-RED流程编辑器
总结
FUXA是一个功能强大、易于使用的过程可视化软件,通过现代化的Web技术和模块化设计,为工业自动化和监控系统提供了直观、高效的可视化解决方案。它的跨平台特性和丰富的设备支持使其成为各种监控场景的理想选择。
FUXA不仅提供了完整的SCADA/HMI功能,还通过开放的架构和插件系统,为用户提供了高度的可扩展性和定制能力。
夜雨聆风