← 所有文章

FIELD NOTES / 資料記錄與報表

批次開始結束事件缺一時如何標記不完整區間

資料記錄與報表作者:站長預估 5 分鐘閱讀

用實例識別重建批次區間,分開完整、缺漏與衝突,避免以猜測邊界計算製程時間。

本文目錄

先承認缺少邊界再計算時間

批次有十點開始事件,卻沒有結束事件,報表不能直接把目前時間當作正式結束。可能仍在執行,也可能早已結束但資料遺失。先列出已知證據與缺少的邊界,再決定哪些指標能算,哪些只能暫列或保持未知。

每次批次執行需要自己的實例識別,並保存設備、批次號、執行序號、事件種類、事件時間與接收時間。同一配方或同一批次號可能重複執行,只用批次文字配對開始與結束,容易把今天的開始接到昨天的結束。

本文適用於離線批次追溯與報表區間重建,不用推測的批次狀態直接控制設備。開始與結束在現場可能代表投料、流程執行或入庫,先約定所計時間的工程意義;不同定義的兩個事件不能拿來相減後稱為製程時間。

至少區分完整、僅有開始、僅有結束、邊界衝突與時間不可信。這些是報表設計的示例狀態,不是廠商既定狀態碼。持續執行與遺失結束則需額外現場證據,不能只因經過很久便把前者自動改成後者。

逐一處理四種事件組合

案例A:同一執行實例十點開始、十點二十分結束,時鐘可信且事件定義一致,可算完整持續二十分鐘。案例B只有十點開始,截至十點三十分尚無結束,列開始已知、結束未知;三十分鐘最多是截至查詢點的觀察長度,不是已完成批次時間。

案例C只有十點二十分結束,不能把班次起點八點補成開始。可確認收到結束事件,但開始未知。若有其他可信資料證明實際起點,新增一筆有來源的修訂;沒有證據時,持續時間保持缺值,避免生成虛假的一百四十分鐘。

案例D結束時間九點五十九分而開始十點,先標時間或配對衝突。不要取絕對值變成一分鐘,也不要交換事件種類讓算式變正。先查時區、時鐘跳動、執行識別與事件語意,只有查清後才產生修訂結果。

重複開始也分兩類。同一事件鍵重送可去重;不同事件鍵卻聲稱同一次執行開始兩次,可能是來源錯誤或新的執行實例,應保留衝突。不能用「取最早開始、最晚結束」包成一大段,這樣會掩蓋實際重啟或多次執行。

完成後,四種案例應呈現四個可辨識狀態,只有案例A有正式完整持續時間。列表可同時顯示已知開始、已知結束、資料截止時間與缺漏原因,讓使用者不必從空白欄位猜是零分鐘、未完成還是讀取失敗。

處理遲到事件與跨班區間

網路可能使結束先收到、開始後收到。依接收順序立即配對會誤判;保留原事件時間與接收時間,待同一實例的事件到齊再重建。OPC UA的事件時間與接收時間本來就是不同欄位概念,但具體開始結束與實例識別仍須由應用定義。

設定可等待遲到資料的期間,只代表何時發布暫定或結算結果,不代表超時後事件不存在。超過期限補到開始時,原缺開始狀態可修訂為完整,保留修訂前後版本與來源。不能因日報已出就直接丟棄足以修正事實的證據。

跨班例子為十九點五十分開始、二十點十分結束,二十點換班。完整執行二十分鐘,前後班各占十分鐘。若先把兩班事件分開再配對,每班都只剩一個邊界;應先按實例重建完整區間,再與各班時間範圍求交集。

僅有開始的批次若顯示截至目前的觀察長度,必須加上尚未確認結束的標記,且不混入已完成批次的平均持續時間。若已知其中一段資料中斷,也不要把整段觀察長度描述成設備持續運轉;批次期間與設備運轉期間本來就不同。

從其他證據估計邊界時,把估計值與原事件欄分開,保存估計方法、依據與範圍。例如只能確定結束落在十點二十至十點二十五之間,就保留區間,不必假裝精確到秒。估計批次另列,避免與完整實測區間合併後失去標記。

用一致規則組成報表與驗收

建立完整批次數、缺開始數、缺結束數與衝突數,先確定分類互斥。平均持續時間僅使用符合規則的完整區間,同時列出有效批次數與排除數;若今天十批只有兩批完整,平均值不能單獨代表全部十批。

失敗時先查實例識別是否被重用,再查原始事件是否真的缺少,接著查去重、時區與查詢範圍。開始可能在昨天而結束在今天,過早只取今日事件會製造假缺漏;查詢要有足夠前後文,不能單靠當日資料列重建所有跨日批次。

來源重新啟動時,保存啟動世代與當前批次恢復資訊。若設備只回報目前批次仍進行中,這能提供當下狀態,卻未必提供真實開始時間。不要用服務重連時間補成開始,否則每次通訊中斷都會把同一批次截短。

驗收輸入完整、缺開始、缺結束、重送、相反到達順序與跨班六組資料。每組先寫預期狀態與可計算欄位,再跑重建。相同輸入重跑後結果應一致,遲到事件補入後只修訂受影響實例,不能把其他批次的邊界借來補齊。

練習與常見問題

練習:三個實例中,甲從八點到八點十分,乙只有八點五分開始,丙只有八點二十分結束。完整批次數一,完整平均十分鐘;乙與丙各列缺漏。即使乙開始與丙結束看起來能相減十五分鐘,也不能把不同實例拼成完整批次。

問:沒有結束就一定仍在跑嗎?答:不一定,需區分仍執行與事件遺失的證據。

問:缺開始可用班次起點替代嗎?答:只能在明確估計用途下另列估計,不可冒充原事件。

問:結束先到就應刪除嗎?答:先保留並等待可配對的遲到開始,同時標記暫定狀態。

問:不完整區間要從報表消失嗎?答:不應消失;要保留缺漏數、已知邊界與待查原因。

參考:OPC UA Part 5 BaseEventType:事件時間與接收時間的基礎定義;本文批次配對規則為應用層教學設計。

延伸閱讀