01狀態碼定義
CWMS 廢水連續自動監測 — 狀態碼一覽
| 代碼 | 定義 |
|---|---|
| 00 | 廢水處理單元暫停運轉/讀取失敗 |
| 10 | 正常排放紀錄值 |
| 11 | 超限紀錄值 |
| 20 | 校正測試紀錄值 |
| 30 | 無效數據 |
| 31 | 監測設施維修、保養 |
| 32 | 廢水處理單元故障 |
| 40 | 天災或不可抗力因素 |
| 90 | 設施汰換已報備但無備用設施 |
| 91 | 備用監測設施替代值 |
| 92 | 主管機關採樣檢測替代值 · 未定義 |
| 93 | 歷史平均測值替代值 StatusReplace |
| 94 | 其它替代值 |
02狀態碼議題
哪些碼要產生 93 替代值,以及 31/91 的處理爭議
確定
20、31 期間仍有真實讀數 → 不需 93 替代值; 30、40、90 無資料 → 需 93 替代值。
議題:31 狀態碼的處理
| 場景 | 值查詢 | 狀態 | 替代值 | 對外輸出 |
|---|---|---|---|---|
| 平鎮 | 濾掉 → -999 → 取最後一筆真實值 | 31 | 前月平均(輸出層) | 雙行:前月均+93 / 0.00+31 |
| FCP(改前) | 濾掉 → 0.00 | 31(另查回復) | 前月平均(usecase) | API 給雙行料,但 OT 端丟 93 → 單行 0.00 31 |
議題:91 狀態碼的處理
①
physical_quantity.status_code = "91" ← 人工設定(操作員標「這台走備用設備」)②
record 表.status = "91" ← 每筆讀數都「繼承」91 寫進去③
聚合輸出(
calculate_table / WithStatus)= 10/11 ← 只有這層被告警檢查改掉03代碼修改
作報告:維修保養(狀態碼 31)輸出邏輯調整
一、問題(調整前)
設備進入「維修保養」時系統標記為 31。但實務上,維修期間設備往往還在持續量測、有真實讀數。
舊系統把 31 當成「沒有有效數據」處理:在法規輸出檔(CWMS)裡把真實讀數丟掉、填成 0.00,再另補一行「上個月的平均值」當替代值(標記 93)。
二、我做的調整
把後端(FCP)對 31 的處理改成:
直接輸出該時段的真實量測值、標記 31、單行;不再填 0.00、不再拿上月平均來替代。
採集端(OT 端,原 GCC)不用改 —— 它只負責「後端給什麼就顯示什麼」;我另外順手清掉採集端一段重複、會跟後端打架的舊判斷邏輯。
三、效果對照
| 調整前 | 調整後 | |
|---|---|---|
| 行數 | 2 行 | 1 行 |
| 內容 | 上月平均+93 / 0.00+31 | 596.8+31 |
| 真實量測值 | 被丟棄 | 完整保留 |
04結果預測
輸出檔(改之後)
248D01 11502041655118.20 31 ← 20/31:實測聚合值 + 原碼,單行
30/40/90 不變:仍雙行 —— 第一行 前月平均 + 93、第二行 0.00 + 原碼。
05附帶修好 + 狀態碼集合
00 10 11 32 91有效碼 · 進聚合 · 單行
20 31仍有讀數 · 單行實測聚合值 + 原碼
30 40 90無資料 · 雙行 · 前月均 + 93
93替代值標記(合成,不進聚合)