『7x24小时有问必答』

前言

工控机硬件监控与看门狗系统,基于 WinForms 框架开发的工控机硬件监控与看门狗应用程序。支持 IT8625 芯片温度、风扇读取、系统自动记录日志及开机自启功能。

项目简介

项目是一个基于  WinForms (.NET Framework)  开发的工控机硬件综合管理工具,专为搭载  ITE IT8625 超级IO芯片(SuperIO)的工业主板设计。
系统集成了  硬件状态实时监控看门狗自动复位保护  和  运行日志自动记录  三大核心能力。
目前,该程序已部署于多条产线及客户现场,用于保障工控设备在  无人值守、7×24 小时连续运行  环境下的高可用性与稳定性。

核心功能

1、硬件状态实时监控

多维度传感器读取:通过底层接口直接访问 IT8625 芯片寄存器,获取真实硬件数据。
主控芯片识别:自动检测并显示 SuperIO 型号(如 IT8625)。
温度监控:实时显示 CPU 温度、主板环境温度、硬盘温度,帮助预判过热风险。
风扇转速监测:持续读取 CPU 风扇转速(RPM),支持停转或低速异常预警。

2、高可靠性看门狗(Watchdog)

自动喂狗机制:内置高精度定时器,按用户设定周期(如30秒)向硬件看门狗寄存器发送"喂狗"信号。
系统自恢复保护:当应用程序崩溃、系统卡死或断电重启后未及时喂狗时,硬件看门狗将强制复位整机,实现无人干预下的自动恢复。

3、自动化运维功能

开机自启动:通过写入 Windows 注册表  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run,实现软件随系统启动,并自动最小化至系统托盘。
运行日志记录
集成文件 I/O 模块,按设定间隔(默认10分钟)自动记录系统状态;
日志内容包括:采集时间、各温度值、当前喂狗次数、累计运行时长等;
日志以  .txt  格式存储,便于售后人员远程排查历史故障或分析设备健康趋势。

技术栈

类别
技术/组件
说明
开发框架
Windows Forms (WinForms) / C#
快速构建稳定桌面应用
底层硬件访问
WinRing0
开源驱动库,用于 Ring0 级别访问 I/O 端口和 SuperIO 寄存器
硬件通信协议
SMBus
通过 SMBus 接口读取 IT8625 传感器数据
系统集成
Windows Registry API
实现开机自启与配置持久化
数据持久化
System.IO
文件流操作,用于日志写入
运行模式
托盘常驻 + 后台服务式运行
无界面干扰,适合嵌入式部署

开发与运行要求

开发环境:Visual Studio 2022
运行权限:必须以  管理员身份运行(Administrator),否则无法通过 WinRing0 访问底层硬件寄存器
硬件依赖:主板需搭载 ITE IT8625 或兼容 SuperIO 芯片(部分 IT86xx/IT87xx 系列可能支持,需验证)
提示:因涉及内核级硬件操作,建议在测试环境充分验证后再部署至生产现场。

项目代码

初始化 OpenHardwareMonitor 硬件监控
// 初始化 OpenHardwareMonitor 硬件监控

private  void  InitializeOpenHardwareMonitor()

{

       try

      {

            _openHardwareComputer =  new  OpenHwComputer

            {

                  HDDEnabled =  true,      // 启用硬盘监控

                  CPUEnabled =  false,

                  GPUEnabled =  false,

                  MainboardEnabled =  false,

                  FanControllerEnabled =  false

            };

            _openHardwareComputer.Open();

             // 查找硬盘硬件

             foreach  (var  hardware  in  _openHardwareComputer.Hardware)

            {

                   if  (hardware.HardwareType == OpenHwHardwareType.HDD)

                  {

                        _hddHardware = hardware;

                         break;

                  }

            }

            _openHwInitialized =  true;

            LogEvent("OpenHardwareMonitor 初始化成功");

      }

       catch  (Exception ex)

      {

            LogEvent($"OpenHardwareMonitor 初始化失败:  {ex.Message}");

            _openHwInitialized =  false;

      }

}

项目效果

界面展示:SuperIO 型号识别、实时温度/风扇数据、看门狗状态、日志路径及运行计时
1.jpeg

项目源码

为了防止丢失,可以在评论区留言关键字看门狗,即可获取完整源码地址。

2.png

总结

本工具虽小,却是保障工业现场"稳如磐石"的关键一环——看得见的温度,守得住的稳定

关键词

最后
如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。也可以加入微信公众号[DotNet技术匠]  社区,与其他热爱技术的同行一起交流心得,共同成长!
作者:小码编匠
出处:gitee.com/smallcore/DotNetCore
声明:网络内容,仅供学习,尊重版权,侵权速删,歉意致谢!

END

方便大家交流、资源共享和共同成长
纯技术交流群,需要加入的小伙伴请扫码,并备注加群

推荐阅读

觉得有收获?不妨分享让更多人受益
关注「DotNet技术匠」,共同提升技术实力

收藏
点赞
分享
在看

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码