项目背景
既有上位机同时管理 10 台温度控制器、挡板设备、工业相机、工艺脚本和实验记录。现场诊断发现温度记录不连续、相机存储静默中断和预览延迟、界面显示写入成功但目标设备未变化、Ramp Rate 在硬件回读前显示默认值,以及温度换算存在 10 倍偏差等问题。
改造目标
保留已验证的设备集成,集中处理高风险链路:让控制写入可追溯,建立参数双向同步和设备回读,采集或存储停止后能够恢复,统一温度单位处理,形成可重复构建的 Release 安装包,并明确客户硬件现场仍需完成的验收项目。
控制与数据链路的可靠性改造
把串口通信、相机采集、数据落盘、界面状态和安装包作为一条可观测链路处理。每项修改均对应具体故障模式和可核验结果。
- 01
固定基线与证据
固定源代码和安装包版本,检查日志与 SQLite 数据,梳理设备边界,把现场实测故障与工程假设分开记录。
- 02
串口采集与参数回读
保持 PV/SP 高频轮询稳定;Ramp Rate 从寄存器 0x0023 低频读取,每 3 秒读取一台设备,10 台约 30 秒完成一轮。
- 03
设备写入校验
仅当 Modbus 0x06 响应中的从站、寄存器和值完全一致,并完成目标 SP 回读后才判定写入成功;不一致时重试或明确报错。
- 04
相机链路恢复
分别监测原始帧到达和文件落盘;原始帧停止 3 秒后重开采集,持续有帧但 3 秒未落盘时重新调度保存。
- 05
数据与单位一致性
统一温度单位处理路径,移除历史 ×10 与 ÷10 混用,保留真实采集时间,并保存可供后续复核的诊断记录。
- 06
发布与验收控制
构建 x64 Release 安装包,核对运行依赖、版本号和 SHA-256,保留回滚材料,并输出目标设备现场验收清单。
受控交付物
- 定向源代码补丁
- 12 个文件,覆盖 Ramp Rate 回读、写入校验、相机恢复、存储调度和温度单位一致性。
- 客户测试安装包
- Windows x64 版本 1.0.3.20260728,包含 Qt 运行库、SQLite 驱动、相机 SDK、设备配置和 VC Runtime。
- 架构与代码审查
- 对既有应用结构、通信链路、数据处理和 P0/P1 风险进行分级审查。
- 构建与打包记录
- Release 构建结果、依赖清单、版本元数据、文件统计和 SHA-256 校验值。
- 现场验收清单
- 设备参数回读、重复写入、相机持续运行、断线恢复、存储连续性和温度单位检查。
工程证据
以下证据均注明对象、范围和限制,不能替代客户目标设备的现场验收。
架构审查
检查 83 个 C++ 源文件与头文件,约 36,200 个物理代码行。审查识别出具体 P0/P1 风险与责任边界,属于静态工程审查,不是软件质量认证。
旧版本现场诊断
相机帧间隔中位数约 125 ms,99% 不超过 130 ms;发现 1 次 562.921 秒和 1 次 17.306 秒的完整缺口;1,486 张已保存图片未发现连续重复帧。这些数据用于界定旧版本故障基线,不能证明 1.0.3 的持续运行结果。
Release 构建
构建通过;EXE 大小 1,727,488 字节;SHA-256 为 CB4A11624F97BABC892399DF0975059408AA62CA4502622BBEE84D058D2FD5FD。该证据只证明构建产物可复现以及指定静态断言已检查。
安装包审查
安装目录 78 个文件,共 66,292,772 字节;Qt Debug DLL 为 0;Qt、SQLite、相机 SDK、VC Runtime 和设备配置均存在。安装包 SHA-256 为 6908988BF48670AC25A9F004BC77070960AE55D19D35AB51212EBDD64B4321A9;安装包未进行数字签名。
验证状态
- Ramp Rate 读取路径、写入与回读、采集看门狗、存储看门狗和历史温度倍率移除的静态检查通过。
- CTest 返回成功,但输出为“未发现测试”;该结果不属于功能测试证据。
- 已核对 ProductVersion、FileVersion、安装包内容、运行依赖和 SHA-256。
- 证据日期前,1.0.3 未在客户目标设备安装和运行,设备侧功能与持续运行验收尚未完成。
项目边界与限制
当前公开成果为客户测试用 Windows 安装包,以及源代码、构建、打包和静态审查证据。该结果不代表客户现场已完成最终验收,不代表完成生产签名、计量精度认证、长时间无中断存储或适配所有温控器与相机组合。最终验收至少需要:读取真实 Ramp Rate;重复写入时软件回读与设备面板一致;相机连续运行不少于 2 小时且无无法解释的存储缺口;验证断开与重连恢复;在目标设备上确认温度单位。