# 工业温湿度监控系统V2.0 **Repository Path**: linbo7749/TempHumMonitor ## Basic Information - **Project Name**: 工业温湿度监控系统V2.0 - **Description**: 此上位机软件基于C#+WPF+.NET8平台,结合西门子PLC200Smart+温湿度传感器等硬件开发的工业温湿度数据监控系统,包含实时数据、告警记录、历史趋势、用户管理、系统配置模块。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-03-10 - **Last Updated**: 2026-04-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # TempHumMonitor 温湿度监控系统 - 基于 WPF + .NET 8.0 的工业级温湿度实时监测解决方案 ## 项目简介 TempHumMonitor 是一款功能完善的温湿度监控系统,专门用于工业环境下的温湿度数据采集、实时监控、报警管理和历史趋势分析。该系统采用现代化的 WPF 技术栈开发,融合了 Prism MVVM 框架、SqlSugar ORM 以及西门子 S7-200 Smart PLC 通信技术,为工厂车间、仓库、实验室等场所提供稳定可靠的温湿度监测解决方案。 系统的核心功能包括实时数据采集与显示、多区域多点位监测、阈值报警设置与提醒、历史数据趋势分析、用户权限管理以及系统日志审计等模块。通过与 PLC 设备的无缝集成,系统能够自动采集来自各个监测点的温湿度数据,并在数据超出预设阈值时及时触发报警机制,帮助管理人员快速响应环境异常状况,保障生产环境和产品质量的安全稳定。 ## 技术栈 ### 软件部分: 本项目的系统开发采用了以下主流技术框架和组件: - **.NET 8.0** - 最新的 .NET 运行时,提供高性能和跨平台能力 - **WPF (Windows Presentation Foundation)** - Windows 桌面应用 UI 框架 - **Prism.DryIoc** - 成熟的 MVVM 框架,提供依赖注入、导航和事件聚合功能 - **SqlSugar** - 轻量级 ORM 框架,支持多种数据库(SQLite、MySQL、SQL Server 等) - **HslCommunication** - 工业通信库,用于与西门子 S7-200 Smart PLC 通信 - **HandyControl** - 精美的 WPF 控件库,提供现代化的 UI 组件 - **LiveChartsCore** - 强大的图表库,用于数据可视化 - **OxyPlot** - 专业的绘图组件,用于历史趋势分析 - **CommunityToolkit.Mvvm** - MVVM 工具包,简化属性和命令的实现 - **NLog** - 日志记录框架 ### 硬件部分: - **西门子S7-200Smart** - 上位机采用以太网通信,温湿度传感器数据通过RS485串口总线通信采集到此PLC下位机 - **温湿度传感器×9** - 温湿度传感器读取到PLC寄存器 - **中继×2** - 简单模拟加温加湿逻辑动作,上位机下发指令触发PLC动作 ## 功能模块 系统提供了完整的功能模块,涵盖温湿度监控的各个方面: ### 1. 实时监控 (Dashboard) 实时监控模块是系统的核心显示界面,以卡片形式展示各个监测点的温湿度数据。界面采用醒目的颜色标识设备在线状态,通过图表实时绘制温湿度变化曲线。该模块支持手动和自动两种数据采集模式,用户可以根据实际需求灵活切换。系统每60秒自动采集一次数据,同时支持手动触发即时采集。 ![输入图片说明](%E5%AE%9E%E6%97%B6%E6%95%B0%E6%8D%AE.png) ### 2. 报警记录 (AlarmRecord) 报警记录模块记录所有温湿度超标事件,提供多维度的查询筛选功能。用户可以按站点、报警类型、时间范围等条件进行精确查询。系统支持将报警数据导出为 Excel 格式,便于存档和进一步分析。报警类型包括温度过高、温度过低、湿度过高、湿度过低以及数据读取异常等多种情况。 ![输入图片说明](%E6%8A%A5%E8%AD%A6%E8%AE%B0%E5%BD%95.png) ### 3. 历史趋势 (HistoryTrend) 历史趋势模块提供温湿度数据的长期可视化分析功能。用户可以选择不同的时间周期(天、小时、分钟)和多个监测站点,系统将绘制出详细的数据曲线图。该模块支持多站点数据叠加显示,方便对比分析不同区域的温湿度变化趋势。数据同样支持导出功能。 ![输入图片说明](%E5%8E%86%E5%8F%B2%E8%B6%8B%E5%8A%BF.png) ### 4. 日志查询 (Log) 系统日志模块记录所有操作行为和系统事件,包括系统启动关闭、用户登录登出、参数修改、异常错误等信息。日志采用分类管理,支持按日志类型和时间范围进行检索,并提供导出功能便于审计追踪。 ![输入图片说明](%E6%97%A5%E5%BF%97%E6%9F%A5%E8%AF%A2.png) ### 5. 用户管理 (UserManage) 用户管理模块负责系统访问权限的控制。系统支持三种用户角色:超级管理员、管理员和操作员。超级管理员拥有全部功能权限,可以进行用户的新增、编辑、删除和密码重置操作。普通用户只能查看数据,无法修改系统配置。 ![输入图片说明](%E7%94%A8%E6%88%B7%E7%AE%A1%E7%90%86.png) ### 6. 参数设置 (SystemSetting) ![输入图片说明](%E5%8F%82%E6%95%B0%E8%AE%BE%E7%BD%AE.png) 参数设置模块允许用户配置系统运行的关键参数,包括温度上下限阈值、湿度上下限阈值、数据采集间隔以及历史数据保留天数等。这些参数将直接影响数据采集逻辑和报警判断规则。 ## 系统架构 项目采用经典的三层架构设计,配合 MVVM 模式实现代码的高度解耦: ``` TempHumMonitor/ ├── App.xaml # 应用程序入口,配置依赖注入 ├── Common/ # 公共工具类 │ └── Converters/ # 值转换器 ├── Enums/ # 枚举定义 ├── Event/ # 事件定义(Prism事件聚合器) ├── Infrastructure/ # 基础设施层 │ ├── Database/ # 数据库访问(SqlSugar) │ ├── Helpers/ # 辅助工具(日志、加密) │ └── PLC/ # PLC通信封装 ├── Models/ # 数据模型 ├── Services/ # 业务服务层 ├── ViewModels/ # 视图模型层 ├── Views/ # 视图层(XAML) └── Styles/ # 样式资源 ``` ## 快速开始 ### 环境要求 - Windows 10/11 操作系统 - .NET 8.0 Runtime - Visual Studio 2022(用于开发) ### 温湿度传感器连接 - 通过RS485总线连接到PLC串口,然后使用Modbus主站指令读取传感器数据 ### 配置 PLC 连接 在 `DashboardViewModel.cs` 中配置 PLC 的 IP 地址: ```csharp private const string _plcIp = "192.168.2.2"; // 修改为实际的PLC IP地址 ``` ### 数据库配置 系统默认使用 SQLite 数据库(`TempHumMonitor.db`),首次运行时会自动创建数据库和表结构。如需使用其他数据库,请在 `SqlHelper.cs` 中修改连接字符串。 ### 默认用户 系统预置了一个默认管理员账户: - 用户名:admin - 密码:123456 ## 项目结构说明 | 目录/文件 | 说明 | |-----------|------| | `Common/Store.cs` | 全局静态配置存储 | | `Infrastructure/PLC/S7_200SmartPLCHelperV2.cs` | 西门子 PLC 通信封装类 | | `Infrastructure/Database/SqlHelper.cs` | 数据库初始化和连接管理 | | `Services/TempHumRecordService.cs` | 温湿度记录业务逻辑 | | `Services/SystemLogService.cs` | 系统日志业务逻辑 | | `Services/UserService.cs` | 用户认证和管理的业务逻辑 | | `ViewModels/DashboardViewModel.cs` | 实时监控页面逻辑 | | `ViewModels/AlarmRecordViewModel.cs` | 报警记录页面逻辑 | | `ViewModels/HistoryTrendViewModel.cs` | 历史趋势页面逻辑 | ## 界面预览 系统界面采用现代化的深色主题设计,主要包含以下几个页面: **登录界面** - 用户身份验证入口 **主界面** - 包含顶部标题栏、左侧导航菜单和右侧内容区域的经典布局 **实时监控** - 展示所有监测点的实时温湿度数据卡片和变化曲线 **报警记录** - 表格形式展示报警事件,支持分页和导出 **历史趋势** - 多曲线图表展示历史温湿度变化 **日志查询** - 操作日志的查询和导出 **用户管理** - 用户列表的增删改查 **参数设置** - 系统参数的配置和保存 ## 依赖项 本项目依赖以下核心 NuGet 包: - Prism.DryIoc.Wpf (8.1.97) - SqlSugar (5.1.4.135) - HslCommunication (9.2.6) - HandyControl (3.5.1) - LiveChartsCore.SkiaSharpView.WPF (2.0.0-rc2) - OxyPlot.Wpf (2.1.2) - CommunityToolkit.Mvvm (8.2.2) - NLog (5.2.8) ## 许可证 本项目仅供学习和参考使用,请遵守相关开源许可证的规定。