乐于分享
好东西不私藏

又一个上位机模版,终于有人做全了.

又一个上位机模版,终于有人做全了.

15 个串口工具  ,终于有人整理到一起了。

很多人认为上位机开发,难在画监控画面。

经过我这么多年的观察,其实真正花时间是搭建基础架构。

想做一个功能完整的上位机。

权限、报警引擎、设备台账、配置热重载。

都要考虑到,但是从零开始搭建要花两周到三周的时间。

等到底层准备好了之后,核心业务还没有开始写。

一般的做法是找一个现成的框架。

最近在 GitHub,刷到一个 .NET 8 加 WPF 做的工业监控看板,这些它全给你铺好了。

它叫IndustrialMonitor,是一个基于 .NET 8 + WPF 的工业设备实时监控看板。

和从头开始搭建WPF监控项目相比,省去了很多基础的工作。

就比如买了一套半成品装修的房子,硬装全部都给你做好了。

下面我们看看它有哪些独特功能。

双通道实时折线图,可以同时看到温度、压力。

LiveCharts2 加上 SkiaSharp 渲染,曲线显示很丝滑,不会出现卡顿的情况。

温度和压力各有一条通道,两者之间互不干扰。

每个通道都有阈值警戒虚线,可以一眼看出哪个参数超限。

它还做了 TabControl切换,一个窗口看多个设备。

刷新间隔是400毫秒,滑动窗口是50个点,曲线与实时数据基本同步。

首页用卡片式的布局来展示仪表盘,设备在线率、运行台数、系统信息一目了然。

3秒防抖报警,毛刺再也不会刷爆你的报警列表。

传感器抖动的时候,传统的办法就是直接报警。

抖了10下,列表里就会出现几十条数据,真正的故障报警全被淹没。

它的做法是滑动窗口和防抖引擎一起用,参数连续超过3秒才会触发,偶尔会抖一抖然后被过滤掉。

报警灯呼吸式的闪烁,提醒到位但是不刺眼,夜班盯盘你就懂了。

比那种常亮红灯刺眼的方案舒服太多。

报警中心支持类型筛选,温度用红色表示,压力用蓝色表示,分页查看,不会因为翻页而看不到。

阈值上下文也会显示出来,在报警的时候可以看到具体的超标量。

三级 RBAC 权限控制。

管理员拥有所有权限,操作员不能修改配置和管理设备,观察者只能查看。操作按钮会根据角色的不同而自动隐藏。

以前做上位机权限的时候经常遗漏,任何人都能修改参数,出了问题之后找不到责任人。

这个项目从登录就卡住:用户名密码验证,SHA256 哈希存 SQLite,不存明文。

默认三个账户启动自动创建,管理员、操作员、观察者直接使用。

深色风格的登录界面,输入用户名和密码之后就可以进入系统了。

配置热重载之后,修改阈值不需要重新启动程序。

现场调试参数是很常见的事情,以前修改之后需要停止程序再重新启动

重启之后,几秒钟内的数据就没了。

现在修改appsettings.json保存之后就会生效,配置自动热重载,监控不断线。

像 阈值、刷新间隔、滑动窗口、防抖时间等都可以实时修改。

MVVM+DI 完整架构,要加功能就往里面塞。

不需要自己去实现INotifyPropertyChanged,也不需要自己去实现RelayCommand。

DI 容器管理生命周期,Singleton 提供给全局服务,Transient 提供给页面。

更换数据源,只需要修改DI注册就可以,接Modbus、OPC UA换实现类就完成了。

不过目前数据源还是模拟的,接真实 PLC 得自己写驱动。

框架已经搭建好了,只需要把DI容器换成实现类就可以。

UI 用的是 HandyControl,Card、深色侧边栏,开箱即用不用磨样式。

设备列表用JSON格式保存,报警记录用SQLite格式保存,重启之后也不会丢失。

可以按日期查询、按设备筛选,报警统计摘要也做好了,可以直接使用。

设备管理、历史查询都有的,状态用红绿标一目了然。

本地运行也很简单

然后用git把代码下载到本地。

git clone https://github.com/ray-adas2/IndustrialMonitor.gitcd IndustrialMonitordotnet run

第一次启动的时候会自动生成users.db和devices.json,默认有三个账号可以登录。

打开就出现仪表盘、实时图表、报警引擎。

有兴趣的朋友可以赶紧试一试。

15 个串口工具  ,终于有人整理到一起了。

开源地址:https://github.com/ray-adas2/IndustrialMonitor