# ZiScada **Repository Path**: from_0_To_Dead_Automation/ZiScada ## Basic Information - **Project Name**: ZiScada - **Description**: 开源工业上位机监控软件(支持多款PLC,modbus-rtu/tcp,socket,tcp/ip,mqtt) - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-03-15 - **Last Updated**: 2026-05-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 工控上位机监控系统 (Industrial SCADA) ## 介绍 工控上位机监控系统是一个基于C# WPF开发的工业控制上位机软件,用于采集、展示、存储和控制工业设备数据。系统采用Modbus TCP协议与PLC通讯,支持实时数据监控、历史数据查询、报警管理和设备控制等功能。 ### 主要特性 - ✅ **完整的MVVM架构** - 代码结构清晰,易于维护和扩展 - ✅ **实时数据采集和展示** - 支持温度、压力、转速等模拟量数据 - ✅ **历史数据趋势曲线** - 使用OxyPlot绘制美观的趋势图 - ✅ **SQLite数据库持久化** - 数据自动保存到本地数据库 - ✅ **CSV和Excel报表导出** - 支持多种格式的数据导出 - ✅ **报警阈值配置和提示** - 灵活的报警管理 - ✅ **操作日志记录** - 完整记录用户操作 - ✅ **配置参数持久化** - 配置自动保存和加载 - ✅ **通讯断开自动重连** - 稳定可靠的通讯机制 - ✅ **美观的现代化界面** - 优秀的用户体验 --- ## 软件架构 ### 技术栈 | 技术 | 版本 | 说明 | |------|------|------| | .NET | 7.0 | 开发框架 | | WPF | - | UI框架 | | CommunityToolkit.Mvvm | 8.2.2 | MVVM框架 | | OxyPlot.Wpf | 2.1.2 | 图表绘图库 | | Entity Framework Core | 7.0.15 | ORM框架 | | SQLite | - | 数据库 | | EPPlus | 6.2.10 | Excel导出库 | ### 项目结构 ``` AutoMation_MES/ ├── Core/ # 核心业务逻辑层 │ ├── Communication/ # 通讯相关 │ │ └── ModbusTcpClientHelper.cs # Modbus TCP通讯帮助类 │ ├── Models/ # 数据模型 │ │ ├── ProcessData.cs # 过程数据模型 │ │ ├── AlarmConfig.cs # 报警配置模型 │ │ └── CommunicationConfig.cs # 通讯配置模型 │ ├── Services/ # 业务服务 │ │ ├── DataCollectService.cs # 数据采集服务 │ │ ├── LogService.cs # 操作日志服务 │ │ └── DataExportService.cs # 数据导出服务 │ └── Helpers/ # 工具类 │ └── ConfigHelper.cs # 配置管理帮助类 ├── Data/ # 数据访问层 │ ├── Entities/ # 数据库实体 │ │ ├── ProcessDataEntity.cs # 过程数据实体 │ │ └── OperationLogEntity.cs # 操作日志实体 │ ├── Repositories/ # 数据仓储 │ │ ├── ProcessDataRepository.cs # 过程数据仓储 │ │ └── OperationLogRepository.cs # 操作日志仓储 │ └── AppDbContext.cs # EF Core数据库上下文 ├── Client/ # 客户端UI层 │ ├── Views/ # 视图 │ │ └── SettingsWindow.xaml/cs # 设置窗口 │ └── ViewModels/ # 视图模型 │ ├── MainViewModel.cs # 主窗口ViewModel │ └── SettingsViewModel.cs # 设置ViewModel ├── MainWindow.xaml/cs # 主窗口 ├── App.xaml/cs # 应用程序入口 └── AutoMation_MES.csproj # 项目文件 ``` ### 架构模式 本项目采用经典的 **MVVM (Model-View-ViewModel)** 架构: - **Model(模型层)**: 包含数据模型、业务逻辑和数据访问 - **View(视图层)**: XAML界面,负责数据展示和用户交互 - **ViewModel(视图模型层)**: 连接View和Model,处理UI逻辑 --- ## 安装教程 ### 环境要求 - **操作系统**: Windows 10 或更高版本 - **.NET SDK**: .NET 7.0 SDK 或更高版本 - **磁盘空间**: 至少 100MB 可用空间 ### 方式一:使用源代码运行 1. **克隆或下载项目** ```bash git clone <仓库地址> cd AutoMation_MES ``` 2. **还原NuGet包** ```bash dotnet restore ``` 3. **构建项目** ```bash dotnet build ``` 4. **运行项目** ```bash dotnet run ``` ### 方式二:使用发布版本运行 1. **发布应用程序** ```bash dotnet publish -c Release -r win-x64 --self-contained true ``` 2. **进入发布目录** ``` cd bin/Release/net7.0-windows/win-x64/publish/ ``` 3. **运行程序** 双击 `AutoMation_MES.exe` 即可运行 --- ## 使用说明 ### 快速开始 1. **启动程序** 运行程序后,会看到主界面 2. **配置PLC连接** 点击顶部的"设置"按钮,配置: - IP地址:输入PLC的IP地址 - 端口号:默认502,一般不需要修改 - 采集间隔:建议1000-5000毫秒 - 最大数据点:建议100-500个点 点击"保存"保存配置 3. **连接PLC** 点击顶部的"连接"按钮,等待连接成功(指示灯变绿) 4. **查看数据** - 左侧:实时数据卡片 - 中间:温度和压力趋势曲线 - 右侧:设备控制按钮 - 底部:报警信息 ### 主要功能 #### 1. 实时数据监控 - 温度、压力、转速实时显示 - 电机和阀门状态清晰展示 - 数据自动刷新 #### 2. 趋势曲线 - 温度趋势曲线(上方) - 压力趋势曲线(下方) - 曲线自动滚动 - 鼠标悬停查看详情 #### 3. 设备控制 - 电机1/2启停控制 - 阀门1/2开关控制 - 操作自动记录日志 #### 4. 报警管理 - 报警阈值可配置 - 报警信息实时显示 - 最多保留50条报警 #### 5. 数据导出 - 按时间范围查询历史数据 - 导出为CSV格式 - 导出为Excel格式 - 文件自动保存到程序目录 --- ## 参与贡献 我们欢迎任何形式的贡献! 1. **Fork 本仓库** 点击右上角的 "Fork" 按钮 2. **新建 Feat_xxx 分支** ```bash git checkout -b Feat_xxx ``` 3. **提交代码** ```bash git add . git commit -m "Add some feature" ``` 4. **新建 Pull Request** 提交 Pull Request 到主仓库 --- ## 特技 ### 1. 数据点地址映射 | 地址 | 数据项 | 类型 | 说明 | |------|--------|------|------| | 0 | 温度 | 保持寄存器 | 实际值 = 寄存器值 / 10 | | 1 | 压力 | 保持寄存器 | 实际值 = 寄存器值 / 10 | | 2 | 转速 | 保持寄存器 | 实际值 = 寄存器值 | | 0 | 电机1 | 线圈 | true=运行, false=停止 | | 1 | 电机2 | 线圈 | true=运行, false=停止 | | 2 | 阀门1 | 线圈 | true=打开, false=关闭 | | 3 | 阀门2 | 线圈 | true=打开, false=关闭 | ### 2. 数据库说明 - **数据库文件**: `IndustrialScada.db` - **位置**: 应用程序根目录 - **类型**: SQLite ### 3. 配置文件 - **配置文件**: `config.json` - **位置**: 应用程序根目录 - **格式**: JSON ### 4. 文档 项目包含详细的文档: - `项目说明文档.md` - 项目概述、技术架构、功能说明 - `详细使用文档.md` - 快速入门、界面说明、功能使用、常见问题 ### 5. 使用 Readme\_XXX.md 来支持不同的语言 - README.md (中文) - README_en.md (English) - 待添加 ### 6. 参考资源 - [Gitee 官方博客](https://blog.gitee.com) - [Gitee 探索](https://gitee.com/explore) - [GVP - Gitee 最有价值开源项目](https://gitee.com/gvp) - [Gitee 官方使用手册](https://gitee.com/help) - [Gitee 封面人物](https://gitee.com/gitee-stars/) --- ## 许可证 本项目采用 MIT 许可证。 --- ## 联系方式 如有问题或建议,欢迎通过以下方式联系: - 提交 Issue - 发送 Pull Request - 联系开发团队 --- **项目版本**: 1.0.0 **最后更新**: 2026年