做上位机的时候,多传感器监控是比较常见的需求。
温湿度、压力、振动这些传感器各有各的协议和采样频率,统一采集要给每个数据源写连接代码。
实时曲线、报警逻辑、数据归档这些功能也要自己搭,以前做个监控上位机要几天才能搭起框架。
最近在 GitHub 上刷到一个.NET 8+WPF写的开源监控项目,正好把这件事给做了。
它是一个可以实现多数据源接入的监控工具。
普通的上位机只能接一个数据源,而且功能都很简单,报警管理、数据持久化等功能要自己去实现。
该项目把Mock、串口、TCP三种数据源都做了进去,并且有实时曲线、报警管理、数据持久化等功能。
经常做多传感器监控的工程师,推荐好好看看。
下面我们看看它有哪些独特功能。
实时监控可以切换三种数据源。
温湿度、压力、振动等传感器的数据可以在一个界面上集中采集和显示,不需要为每一个传感器单独编写一套连接代码。
Mock 模拟数据源可以在没有外部设备的情况下直接体验到全部功能。
适用于开发调试阶段,在现场设备还没有到位的时候就可以把界面逻辑调通。
串口数据源支持RS485、Modbus等常见的工业协议。
在现场设备调试的时候可以使用到,波特率、端口号等参数都可以配置。
TCP数据源可以连接到网络传感器上,IP和端口都可以设置,网络设备监控比较方便,远程设备也可以接入。
git clone https://github.com/agentthink/wpf-sensorhub.gitcd wpf-sensorhubdotnet restoredotnet run实时折线图用的ScottPlot,性能好,高频采集也不卡顿。
当前值、最值、平均值都能实时显示,数据趋势一目了然,不用自己写统计逻辑。
报警管理功能很实用。
支持上下限阈值报警,当数值大于上限或者小于下限的时候就会触发报警,阈值参数可以自己设置。
报警的时候会弹出窗口并发出声音提示,现场工程师不会遗漏到异常状态,设备出现问题可以第一时间被发现。
报警历史记录可以查询和导出,便于事后分析定位问题,在排查故障的时候不需要翻日志文件。
参数配置界面比较齐全。
可以配置传感器的名称、类型、单位、量程、阈值等等。
串口的波特率、TCP/IP端口号等都有配置项,设备参数改变后直接修改配置即可。
采样间隔、缓存点数都可以调节,既可以做高速采集也可以做低速采集。
配置自动持久化到本地的JSON文件中,可以直接导入。
数据持久化的方案有如下两种。
用CSV文件来存储,并且按日期分文件。
每50条刷一次,可以减少磁盘IO,在数据归档的时候不需要频繁地写入磁盘。
SQLite 数据库存储,支持结构化的查询和高效的检索,在大数据量的时候更加方便,历史数据查询速度也很快。
两种方案都可以按照时间来筛选导出,数据归档和回溯都很方便,不需要自己写数据导出逻辑。
数据统计功能也做了进去。
按照传感器维度进行统计汇总,每个传感器的数据要单独分析,不能混在一起计算。
均值、最大值、最小值、标准差等统计指标齐全,数据特征一目了然,异常数据一目了然。
数据分布可以用直方图来可视化,一眼就可以看出数据的规律以及异常点,在设备状态分析的时候很有用。
看到这你想装上试试?
这个项目做传感器监控够了,但也别拿它当 WinCC 用。
大型工厂中多种品牌的PLC混用的情况,商用组态软件的稳定性和生态更加成熟。
但是对于中小项目、现场调试、快速原型验证等,这个开源方案是完全可以的。
而且 .NET 8 + WPF 的技术栈,在国内工控圈里也用得很多,上手很快。
适用于上位机开发工程师、现场调试工程师、工控运维工程师。
有兴趣的朋友可以抓紧时间试一试。
开源地址:https://github.com/agentthink/wpf-sensorhub 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!