# FUXA
**Repository Path**: crui1527/FUXA
## Basic Information
- **Project Name**: FUXA
- **Description**: 同步 https://github.com/frangoteam/FUXA
- **Primary Language**: JavaScript
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 11
- **Created**: 2025-02-14
- **Last Updated**: 2025-02-14
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README

# FUXA
FUXA is a web-based Process Visualization (SCADA/HMI/Dashboard) software. With FUXA you can create modern process visualizations with individual designs for your machines and real-time data display.



## Features
- Devices connectivity with Modbus RTU/TCP, Siemens S7 Protocol, OPC-UA, BACnet IP, MQTT, Ethernet/IP (Allen Bradley)
- SCADA/HMI Web-Editor - Engineering and Design completely web-based
- Cross-Platform Full-Stack - Backend with NodeJs and Frontend with Web technologies (HTML5, CSS, Javascript, Angular, SVG)
## Live Demo
Here is a [live demo](https://frangoteam.github.io) example of FUXA editor.
## Installing and Running
FUXA is developed with NodeJS (backend) and Angular (frontend).
See the Wiki for more details about installing and getting started
[Wiki](https://github.com/frangoteam/FUXA/wiki)
[Wiki Installing/Building](https://github.com/frangoteam/FUXA/wiki/Installing-and-Running)
### Running from docker
```
docker pull frangoteam/fuxa:latest
docker run -d -p 1881:1881 frangoteam/fuxa:latest
// persistent storage of application data (project), daq (tags history), logs and images (resource)
docker run -d -p 1881:1881 -v fuxa_appdata:/usr/src/app/FUXA/server/_appdata -v fuxa_db:/usr/src/app/FUXA/server/_db -v fuxa_logs:/usr/src/app/FUXA/server/_logs -v fuxa_images:/usr/src/app/FUXA/server/_images frangoteam/fuxa:latest
// with Docker compose
// persistent storage will be at ./appdata ./db ./logs and ./images
wget https://raw.githubusercontent.com/frangoteam/FUXA/master/compose.yml
docker compose up -d
```
### Install from [NPM](https://www.npmjs.com/package/@frangoteam/fuxa)
You need to have installed [Node](https://nodejs.org/en/about/previous-releases) Version 18.
**WARNING** In linux with nodejs Version 18 the installation could be a challenge.
If you don't intend communicate with Siemens PLCs via S7 (node-snap7 library) you can install from [NPM @frangoteam/fuxa-min](https://www.npmjs.com/package/@frangoteam/fuxa-min)
```
npm install -g --unsafe-perm @frangoteam/fuxa
fuxa
```
### Install from source
[Download the latest release](https://github.com/frangoteam/FUXA/releases) and unpack it
You need to have installed [Node](https://nodejs.org/en/about/previous-releases) Version 18.
**WARNING** In linux with nodejs Version 18 the installation could be a challenge.
If you don't intend to communicate with Siemens PLCs via S7, you can remove the ```node-snap7``` library from the ```server/package.json```. Similarly, if you don't intend to use ODBC to communicate with an external database, you can remove the ```odbc``` library from the ```server/package.json```.
```
cd ./server
npm install
npm start
```
Open up a browser (better Chrome) and navigate to http://localhost:1881
**Note** If you intend to use nodejs version 14, please remove odbc from the package.json dependencies. nodejs 14 may have compatibility issues with certain versions of odbc, which could lead to installation errors.
### Creating the Electron Application
Electron is a framework for building cross-platform desktop applications using web technologies. An Electron application is standalone, meaning it can be run independently on your desktop without needing a web browser.
To create the Electron application, you need to have node.js 18 installed. Follow these steps:
Build Server and Client First
```
cd ./server
npm install
cd ../client
npm install
npm run build
```
Packaging
```
cd ./app
npm install
npm run package
```
After following these steps, you will have a standalone Electron application for FUXA. The application can be found in the ./app directory.
## Usage
- Look the guide in [wiki](https://github.com/frangoteam/FUXA/wiki) pages
- Look video from [frangoteam](https://www.youtube.com/@umbertonocelli5301)
- Look video from [Fusion Automate - Urvish Nakum](https://youtube.com/playlist?list=PLxrSjjYyzaaK8uY3kVaFzfGnwhVXiCEAO&si=aU1OxgkUvLQ3bXHq)
## To Debug (Full Stack)
Install and start to serve the frontend
```
cd ./client
npm install
npm start
```
Start the Server and Client (Browser) in Debug Mode
```
In vscode: Debug ‘Server & Client’
```
## To Build
Build the frontend for production
```
cd ./client
ng build --configuration=production
```
## Contributing
Any contributions you make are greatly appreciated.
If you identify any errors, or have an idea for an improvement, please open an [issue](/../../issues).
But before filing a new issue, please look through already existing issues. Search open and closed issues first.
Non-code contributions are also highly appreciated, such as improving the documentation or promoting FUXA on social media.
### Pull-Requests
If you want to raise a pull-request with a new feature, or a refactoring of existing code please first open an issue explaining the problem.
```
1. Fork the Project
2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
3. Commit your Changes (git commit -m 'Add some AmazingFeature')
4. Push to the Branch (git push origin feature/AmazingFeature)
5. Open a Pull Request
```
### Coding standards
Please ensure you follow the coding standards used through-out the existing code base. Some basic rules include:
- Indent with 4-spaces, no tabs.
- Opening brace on same line as if/for/function and so on, closing brace on its own line.
## Let us know!
We’d be really happy if you send us your own shapes in order to collect a library to share it with others. Just send an email to info@frangoteam.org and do let us know if you have any questions or suggestions regarding our work.
##
## License
MIT.
/client/src/favicon.ico
FUXA
FUXA 是一款基于网络的进程可视化(SCADA/HMI/仪表板)软件。借助 FUXA,您可以为机器创建具有个性化设计的现代进程可视化效果,并实现实时数据展示。
/screenshot/fuxa-editor.png
/screenshot/fuxa-ani.gif
/screenshot/feature-action-move.gif
功能
设备连接支持 Modbus RTU/TCP、西门子 S7 协议、OPC-UA、BACnet IP、MQTT、Ethernet/IP(艾伦-布拉德利)
SCADA/HMI 网页编辑器 - 完全基于网络的工程与设计
跨平台全栈 - 后端采用 NodeJs,前端采用网络技术(HTML5、CSS、Javascript、Angular、SVG)
在线演示
这里是 FUXA 编辑器的 在线演示。
安装与运行
FUXA 的后端采用 NodeJS 开发,前端采用 Angular 开发。
有关安装和入门的更多详细信息,请参阅 Wiki。
Wiki
Wiki 安装/构建
通过 Docker 运行
bash复制
docker pull frangoteam/fuxa:latest
docker run -d -p 1881:1881 frangoteam/fuxa:latest
// 应用程序数据(项目)、数据采集(标签历史)、日志和图像(资源)的持久化存储
docker run -d -p 1881:1881 -v fuxa_appdata:/usr/src/app/FUXA/server/_appdata -v fuxa_db:/usr/src/app/FUXA/server/_db -v fuxa_logs:/usr/src/app/FUXA/server/_logs -v fuxa_images:/usr/src/app/FUXA/server/_images frangoteam/fuxa:latest
// 使用 Docker Compose
// 持久化存储将位于 ./appdata ./db ./logs 和 ./images
wget https://raw.githubusercontent.com/frangoteam/FUXA/master/compose.yml
docker compose up -d
从 NPM 安装
您需要已安装 Node 18。
警告 在 Linux 系统上,使用 Node.js 18 版本进行安装可能会有挑战。
如果您不打算通过 S7(node-snap7 库)与西门子 PLC 通信,可以从 NPM @frangoteam/fuxa-min 安装。
bash复制
npm install -g --unsafe-perm @frangoteam/fuxa
fuxa
从源代码安装
下载最新版本 并解压。
您需要已安装 Node 18。
警告 在 Linux 系统上,使用 Node.js 18 版本进行安装可能会有挑战。
如果您不打算通过 S7 与西门子 PLC 通信,可以从 server/package.json 中移除 node-snap7 库。同样,如果您不打算使用 ODBC 与外部数据库通信,可以从 server/package.json 中移除 odbc 库。
bash复制
cd ./server
npm install
npm start
打开浏览器(建议使用 Chrome)并访问 http://localhost:1881
注意 如果您打算使用 Node.js 14,请从 package.json 依赖项中移除 odbc。Node.js 14 可能与某些版本的 odbc 存在兼容性问题,这可能导致安装错误。
创建 Electron 应用程序
Electron 是一个使用网络技术构建跨平台桌面应用程序的框架。Electron 应用程序是独立的,这意味着它可以在您的桌面上独立运行,无需网络浏览器。
要创建 Electron 应用程序,您需要已安装 node.js 18。请按照以下步骤操作:
首先构建服务器和客户端
bash复制
cd ./server
npm install
cd ../client
npm install
npm run build
打包
bash复制
cd ./app
npm install
npm run package
按照这些步骤操作后,您将获得一个独立的 FUXA Electron 应用程序。应用程序位于 ./app 目录中。
使用方法
查看 wiki 中的指南
查看 frangoteam 的视频
查看 Fusion Automate - Urvish Nakum 的视频
调试(全栈)
安装并启动前端服务
bash复制
cd ./client
npm install
npm start
以调试模式启动服务器和客户端(浏览器)
bash复制
在 vscode 中:调试 ‘服务器和客户端’
构建
为生产环境构建前端
bash复制
cd ./client
ng build --configuration=production
贡献
我们非常感谢您的任何贡献。
如果您发现任何错误,或有改进的想法,请打开一个 问题。
但在提交新问题之前,请先查看已有的问题。先搜索开放和已关闭的问题。
非代码贡献也备受珍视,例如改进文档或在社交媒体上宣传 FUXA。
拉取请求
如果您想提交一个包含新功能或现有代码重构的拉取请求,请首先打开一个 issue 来说明问题。
bash复制
1. 叉掉项目
2. 创建您的功能分支(git checkout -b feature/AmazingFeature)
3. 提交您的更改(git commit -m 'Add some AmazingFeature')
4. 推送到分支(git push origin feature/AmazingFeature)
5. 打开一个拉取请求
编码规范
请确保遵循现有代码库中使用的编码规范。一些基本规则包括:
用 4 个空格缩进,不要用制表符。
开括号在同一行,如 if/for/function 等,关括号单独一行。
联系我们!
如果您发送自己的形状给我们,我们将非常高兴,以便收集一个库与他人共享。只需发送电子邮件至 info@frangoteam.org,并让我们知道您对我们的工作有任何问题或建议。
许可证
MIT。