这两年我们在自动化产线项目里用 WPF 做了一套上位机监控系统,通过 Modbus RTU 协议跟 PLC 通信,实时采集灌装设备的温度、液位、阀门状态、生产节拍这些关键参数。整个过程走下来感觉这个组合还挺顺手的,这里把设计和实现过程做个记录。
项目介绍智能灌装生产监控系统是一套基于 WPF + .NET 8 开发的工业自动化上位机软件。它通过 Modbus RTU 协议与产线 PLC 保持实时通信,对灌装设备的运行状态、填充精度、温度液位、阀门动作等关键参数进行毫秒级采集与可视化展示。
项目采用 CommunityToolkit.Mvvm 作为 MVVM 框架,配合 FreeSql 做数据持久化,图表部分用 LiveCharts 呈现生产过程趋势。
项目功能设备状态实时监控:通过 Modbus RTU 协议采集 PLC 寄存器数据,实时显示灌装设备的运行模式、启停状态、故障代码等信息
关键工艺参数展示:温度、液位、压力、填充精度等模拟量数据以数值和仪表盘形式呈现,更新频率可配置
生产节拍统计:实时计算并展示当前产线的生产速度、累计产量、批次完成进度
阀门与执行器动作监控:显示各灌装阀、清洗阀、进料阀的开关状态及动作次数
实时趋势曲线:基于 LiveCharts 绘制温度、液位、填充量等参数的变化曲线,支持多测点叠加对比
数据存储与回放:通过 FreeSql 将采集数据写入本地数据库,支持历史数据查询和曲线回放
异常告警机制:当参数超限或设备状态异常时,界面闪烁提示并记录告警日志
项目特点基于 Modbus RTU 工业标准协议,兼容主流 PLC 品牌
毫秒级数据采集与刷新,满足产线实时监控需求
采用 MVVM 架构,界面与业务逻辑分离,后期维护和功能扩展成本低
深色主题 UI,适合工业现场长时间盯屏的操作环境
模块化设计,采集、存储、界面各层解耦,方便替换或升级局部组件
轻量化部署,一台工控机即可覆盖单条产线的监控需求
支持自定义采集周期和报警阈值,适应不同产线的工艺要求
项目技术技术组件
用途说明
.NET 8
运行时框架
WPF
桌面 UI 框架,支持 XAML 样式定制和数据绑定
CommunityToolkit.Mvvm
MVVM 框架,负责 ViewModel 和命令绑定
FreeSql
ORM 工具,用于采集数据的本地持久化存储
Serilog
结构化日志记录,便于问题排查
Modbus RTU
与 PLC 通信的工业总线协议
LiveCharts
实时趋势曲线绘制
项目代码主窗口采用上下和左右混合布局,顶部是标题栏和状态区,左侧是导航菜单,右侧 ContentControl 承载各功能页面视图。