项目概述

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

  1. 基于Web的SCADA/HMI编辑器

完全基于Web的工程和设计环境

支持拖拽式界面构建

实时预览和编辑

丰富的SVG组件库

  1. 跨平台架构

后端使用Node.js,前端使用Web技术

支持部署为Docker容器

可打包为Electron桌面应用

支持通过NPM全局安装

核心模块

Server 模块

main.js:服务器主入口,负责启动HTTP服务和初始化

fuxa.js:核心功能初始化和管理

runtime/:运行时核心,包含设备通信、报警、存储等功能

api/:RESTful API接口

Runtime 模块

devices/:各种设备驱动实现

alarms/:报警系统

storage/:数据存储(支持多种数据库)

scripts/:脚本执行

scheduler/:任务调度

Client 模块

src/app/:Angular应用代码

src/app/editor/:可视化编辑器

src/app/view/:运行时视图

src/app/device/:设备管理

系统架构在这里插入图片描述

FUXA采用分层架构设计:

前端层:Angular应用,负责用户界面和交互

API层:RESTful API,处理前端请求

运行时层:核心业务逻辑,包括设备通信、数据处理

存储层:数据持久化,支持多种数据库

数据流

设备数据通过各种协议驱动采集

数据经运行时处理后存储

前端通过Socket.io实时获取数据

用户操作通过API传递到后端处理

关键特性

实时数据显示:通过Socket.io实现实时数据更新

可视化编辑器:拖拽式界面设计,支持多种组件

报警系统:可配置的报警规则和通知

数据历史:支持数据存储和历史查询

脚本支持:可编写自定义脚本扩展功能

多语言支持:内置多语言国际化

安全认证:支持用户认证和权限管理

Node-RED集成:可选集成Node-RED流程编辑器

总结

FUXA是一个功能强大、易于使用的过程可视化软件,通过现代化的Web技术和模块化设计,为工业自动化和监控系统提供了直观、高效的可视化解决方案。它的跨平台特性和丰富的设备支持使其成为各种监控场景的理想选择。

FUXA不仅提供了完整的SCADA/HMI功能,还通过开放的架构和插件系统,为用户提供了高度的可扩展性和定制能力。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐