前言
工业自动化和智能制造的快速发展,对设备运行状态的实时监控、数据采集与智能分析提出了更高要求。传统的人工巡检与静态监控方式已难以满足现代产线对高可靠性、低延迟响应和可视化管理的需求。一套轻量级、可扩展且易于部署的工业监控系统,成为中小型制造企业实现数字化转型的重要切入点。
本文推荐一个基于 WPF + Prism + Modbus RTU,开发的轻量级、模块化的 SCADA 平台,支持数据采集、实时可视化、设备控制与报警管理,为工业监控应用提供实用的技术参考。
项目介绍
本系统采用 MVVM 设计模式 + Prism 框架 + Entity Framework (EF) 优化数据库操作,结合 Modbus RTU 通信协议 和 SQL Server 数据库,实现对工业设备的实时监控与数据管理。
系统提供 WPF 用户界面,支持设备数据采集、状态控制、实时曲线展示、阈值报警 及历史数据存储。
项目技术
类别 | 技术 |
|---|---|
前端界面 | WPF(C#) |
通信协议 | Modbus RTU(基于 NModbus 库) |
数据库 | SQL Server + Entity Framework(ORM) |
架构模式 | MVVM + Prism(模块化、依赖注入) |
定时机制 | System.Threading.Timer(异步轮询) |
项目场景
连接生产线上的 PLC 或各类传感器(如温湿度、液位、压力传感器)。
实时监控设备运行状态(电机温度、水箱液位、产线速度、故障信号等)。
作为小型 人机界面(HMI),集中展示产线关键指标。
项目功能
1、系统登录
基于数据库的用户名/密码验证。
安全登录流程,防止未授权访问。
2、设备数据采集
异步轮询采集温度、湿度、亮度数据。
支持 多从站设备(可配置从站地址)。
可动态配置 串口参数:波特率、数据位、停止位、校验位。
3、数据可视化
使用 LiveCharts 或 OxyPlot 实现 实时曲线图。
设备状态颜色标识:正常(绿色)、高温(红色)、低温(蓝色)。
显示历史最高/最低温度记录。
4、设备控制
通过 Modbus 写线圈(Write Coil) 控制 5 盏 LED 灯。
支持向保持寄存器写入文本指令(如"请检修")。
控制结果实时反馈至 UI。
5、报警管理
可配置 温度/湿度报警阈值。
超限时自动触发 视觉报警(背景变色、弹窗提示)。
报警事件自动记录至数据库。
6、数据存储
使用 EF 异步方法(如SaveChangesAsync)提升性能。
数据表结构包含:时间戳、温度、湿度、亮度。
支持 历史数据查询 与 Excel 导出。
用户信息独立存储于用户表。
安装与部署
前提条件
.NET Framework 4.7.2 或更高
SQL Server 2012+
支持 Modbus RTU 的物理设备或 Modbus 模拟器(如 Modbus Slave)
安装步骤
1、克隆或下载项目源码。
2、使用 Visual Studio 打开.sln解决方案。
3、还原 NuGet 包(含 Prism.Unity、NModbus4、EntityFramework 等)。
4、修改App.config中的 数据库连接字符串。
5、执行数据库初始化(Code First 迁移或手动建表)。
6、编译并运行项目。
配置说明
数据库连接:在
App.config中配置<connectionStrings>。串口参数:在设置页面或配置文件中指定 COM 端口、波特率等。
设备映射:定义从站地址 → 寄存器地址(如温度=40001,湿度=40002)。
报警阈值:可在 UI 或配置文件中设置高温/高湿上限。
使用说明
1、登录系统:输入有效凭据进入主界面。
2、连接设备:选择 COM 口,点击"连接"建立 Modbus 通信。
3、监控数据:查看实时曲线与设备状态面板。
4、控制设备:点击 LED 开关或发送文本指令。
5、管理报警:设置阈值,查看报警日志。
开发注意事项
异步通信:Modbus 读写必须在后台线程执行,避免阻塞 UI。
EF 异步操作:所有数据库写入使用async/await。
依赖注入:通过 Prism 的ContainerRegistry注册服务(如 IModbusService、IRepository)。
三层架构:严格分离 View / ViewModel / Model,ViewModel 不直接引用 View。
异常处理:串口断开、超时、CRC 错误需有容错机制。
项目源码
为了防止丢失,可以在评论区留言关键字「设备监控」,即可获取完整源码地址。
关键词
#WPF、#SCADA系统、#Prism模块化开发、#MVVM、#工业监控、#Modbus RTU通信、#NModbus、C#、#实时数据曲线、#阈值报警、#EF异步数据库、#HMI、 #人机界面、#工业物联网、#IIoT