一 先固定補償公式與資料批次
本例的溫度補償不能把新參數直接寫進正在使用的資料流。先在規格中明訂公式、單位與參數版本。本案例採線性補償 y=x+k×(T−Tref),x 是原始量測值,單位 mS/cm;T 是 °C;k=0.020 mS/(cm·°C);Tref=25 °C。若 x=10.00、T=35,則 y=10.00+0.020×10=10.20 mS/cm。
同一批測量固定 parameter_version、Tref、k 與 unit。批次開始時建立 ParameterSnapshot,後續每筆只讀快照,不直接讀可變的 current_parameter。候選參數通過離線驗證與範圍檢查後,才在批次邊界切換;不能一半資料使用 k=0.020,另一半突然使用 k=0.030 卻沒有標記。
補償狀態要可見:Active、Candidate、Validated、PendingSwitch、Rejected 或 FallbackOld。失敗時保留舊版參數並將狀態標為 FallbackOld,而不是把候選值寫入後再猜結果。操作員要能看到目前生效版本、候選版本、啟用時間與拒絕原因。
| 欄位 | 本案例值 | 單位/用途 | 規則 |
|---|---|---|---|
| formula | y=x+k×(T−Tref) | — | 版本固定 |
| x | 10.00 | mS/cm | 原始量測 |
| T | 35 | °C | 補償溫度 |
| k | 0.020 | mS/(cm·°C) | 候選需驗證 |
| Tref | 25 | °C | 不可混用 |
| parameter_version | P1 | 識別 | 批次內固定 |
補償輸入也要固定品質與單位。T=35 若其品質為 Bad,不能因公式可算就輸出正常結果;應保留 x、T、parameter_version 並標 InputInvalid。T=35 °F 也不能直接代入 °C 公式,必須先依契約轉為約1.6667 °C並保留運算精度,或拒收。
公式是本案例自訂示範,不代表所有感測器都使用線性補償。真實設備可能要求多項式、查表、溫度範圍或廠商內建演算法;若手冊未支持線性假設,應把本文當作資料版本與切換流程教學,不把算式接到生產控制。 本例的加號與係數僅用來演練版本管理,不是電導率回推參考溫度的通用物理模型。
二 候選參數如何驗證
候選 k=0.030 不能只因畫面看起來平滑就啟用。建立固定測試集,例如 T=15、25、35 °C,保存參考值與允許誤差。對 x=10.00,P1(k=0.020) 在 T=35 得 10.20;候選 P2(k=0.030) 得 10.30。若參考值是 10.18 且允差 ±0.05,P1 通過、P2 超差,P2 應維持 Rejected。
驗證資料必須和線上輸入分開,並保存 candidate_version、測試批次、公式、輸入單位、輸出結果與決策時間。若候選只在 25 °C 測試,不能推稱 15–35 °C 全範圍有效;測試點與適用範圍要寫進版本契約。
候選驗證成功後先進入 PendingSwitch,等待批次邊界或明確切換事件。切換事件寫入 activation_id,之後新增批次使用 P2;進行中的批次仍用 P1。不要依賴多個 word 同時寫入天然 atomic,應採單一寫入者、候選區完整驗證後發布及讀取者確認的協定,或平台已驗證的原子機制;單一完成旗標本身不足以保證多word一致。
| T(°C) | x | P1 k=.020 | P2 k=.030 | 參考/判定 |
|---|---|---|---|---|
| 15 | 10.00 | 9.80 | 9.70 | 依參考值驗證 |
| 25 | 10.00 | 10.00 | 10.00 | 兩者相同,不能單點決定 |
| 35 | 10.00 | 10.20 | 10.30 | P1較接近10.18 |
| 45 | 10.00 | 10.40 | 10.60 | 超出適用範圍需另驗 |
候選參數的測試資料不能與候選生成資料完全相同,否則只證明候選重現自己。可保留一組驗證點 T=20、30、40,並以參考儀表值比較。若 P2 在訓練點通過、在 40 °C 超過允差,應限制適用範圍或拒絕整版,不得只挑好看的點。
25 °C 是兩個候選的交會點,單測 25 °C 無法分辨 k。這是常見驗證陷阱:看似測試通過,實際上只驗證了補償項為零。至少要有參考溫度兩側的測點,並將邊界外資料標為未驗證。
三 批次凍結與切換一致性
以下另設一個驗證已通過的切換情境,不延用前節P2超差的拒絕結果。假設批次 B17 在 10:00 開始,ParameterSnapshot=P1。10:02 候選 P2 通過驗證,但 B17 已經收集部分資料;規格定義 P2 只能從下一批 B18 啟用。B17 的每筆紀錄帶 P1,B18 帶 P2,報表可比較兩批但不會把參數變更誤當製程變化。
若來源以多欄或多 word 傳遞 k、Tref、version,讀取時要先形成一致快照。讀到 k 新值、version 舊值的混合狀態應標 ParameterSnapshotUncertain,停止套用並保留上一個有效快照。不能假設連續掃描的多個寫入會同時完成。
切換後需檢查版本回讀與生效時間。若寫入 P2 後回讀仍是 P1,狀態不能顯示 Active P2;若版本號更新但 k 寫入失敗,也要以內容校驗或參數雜湊拒絕切換。切換的「宣布」和「內容」都要被驗證。
| 時間 | 批次/狀態 | 生效參數 | 預期 |
|---|---|---|---|
| 10:00 | B17開始 | P1 | 全批凍結P1 |
| 10:02 | P2驗證通過 | P1仍Active | P2 PendingSwitch |
| 10:05 | B17結束 | P1 | 封存version P1 |
| 10:06 | B18開始 | P2 | 新批啟用P2 |
| 10:07 | 回讀失敗 | P2狀態待查 | 暫停採用新結果/告警 |
批次快照需包含參數內容雜湊,不只版本字串。若 P1 版本號被錯誤重用但 k 已變,內容雜湊會不一致,系統應拒絕快照。參數切換記錄要有 old_version、new_version、activation_id、operator 與 reason,才能追查哪一批開始使用新值。
如果製程要求立即切換,仍應先定義切換點:例如下一個完整樣本、下一個掃描邊界或下一批。切換規則寫清楚後,才可在離線測試中驗證每筆輸出使用哪個版本;不能以「更新完成後自然生效」作為時序定義。
x與T也必須屬同一量測組;保留各自時間、樣本識別及最大允許時間差。參數快照一致,不能補救舊溫度配新量測。超過時間差或品質不合格時標輸入不匹配,不將最後一次溫度無限期沿用。
四 失敗保留舊版與排查
候選失敗的處理順序是:保留目前 Active 參數;把候選標 Rejected;寫入 reason、測試資料與操作者;讓資料流繼續以舊版計算或依製程規格停用。不能把候選 k 寫進工作區後,再用顯示值判斷是否合理,因為部分資料可能已被錯誤參數處理。
若輸出在切換時突然跳變,先查同一 batch 是否出現兩個 parameter_version,再查 T 的單位與公式符號。對 T=35、x=10,P1 應是 10.20;若顯示 10.30,可能是 P2 已提前套用;若顯示 9.80,可能使用了 Tref−T 的反向符號。
若資料在 25 °C 正常、35 °C 異常,查 k 的單位與驗證點;若所有溫度都偏移,查 Tref 或 offset;若只有切換瞬間異常,查快照一致性與 activation_id。排查報告要列 raw x、T、公式、參數版本、輸出與狀態,不只列最後一個補償值。
| 症狀 | 優先檢查 | 可能原因 | 應有狀態 |
|---|---|---|---|
| 切換中跳值 | batch/version | 混用P1/P2 | SnapshotUncertain |
| 35°C偏高 | k單位/版本 | P2提前套用 | P1/P2可追溯 |
| 25°C正常 | 驗證點 | 零補償掩蓋錯誤 | 擴充溫度測試 |
| 回讀不同 | 內容校驗 | 多欄寫入不一致 | FallbackOld |
| 候選失敗 | reason/測試集 | 允差或範圍不符 | Rejected |
回復舊版也要有邊界。若 B18 使用 P2 後發現品質偏差,下一個明確切換點可回到 P1;B18 已產生的結果仍保留 P2 標記,不可回復後批量改寫成 P1。報表比較時要把參數變更與製程變更分開呈現。
本篇公式與數值是自訂案例。對安全或品質關鍵製程,補償切換還需評估限值、互鎖、人工核准與回復程序;不能因版本狀態完整就推論製程一定安全。
五 驗收 FAQ 與來源
本題基準公式為 y=x+0.020×(T−25),x=10.00、T=35 得 10.20。候選 P2=0.030 在同條件得 10.30;P2 必須以多溫度參考資料驗證,通過後待下一批切換。批次內參數版本固定,失敗時保留 P1 並讓狀態可見。
FAQ1:參數寫入多個 word 後讀到新版本,是否代表整組已原子切換?答:不代表。要用一致快照、版本校驗或平台支援的原子機制;混合內容應標 SnapshotUncertain。
FAQ2:為何 25 °C 單點測試不足?答:T−Tref=0,任何 k 都得到同一結果。至少要測參考溫度兩側,並確認適用範圍。
FAQ3:候選驗證失敗時可以清零參數嗎?答:應保留舊版或依規格停用,不能把零當成安全替代。候選要標 Rejected 並保存原因。
FAQ4:線性公式能套所有溫度感測器嗎?答:不能。公式、係數、單位與範圍必須由目標設備或工程規格支持;未核對時只能作離線示例。
參考:NIST SI units 官方資料:溫度與單位表述、量值一致性參考,非 PLC 補償公式。
參考:NIST ITS-90 溫度尺度資料:溫度量測與校準背景參考,非特定設備參數。