項目背景
既有上位機同時管理 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 小時且無無法解釋的存儲缺口;驗證斷開與重連恢復;在目標設備上確認溫度單位。