← 所有文章

FIELD NOTES / 資料記錄與報表

長時間無資料如何顯示停機還是資料源中斷

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

將設備運轉狀態與資料品質分開,正確呈現穩定值、斷線、補送及未知時間。

本文目錄

沒有新值不等於設備停止

趨勢五分鐘沒有新點,可能是設備停機、數值沒有變、採集斷線、緩衝排隊或資料庫寫入失敗。先把「資料是否可用」與「設備目前狀態」分開顯示,不能只用最後一筆生產數據的時間直接推論機器停了多久。

若系統只在數值變動時上傳,穩定溫度可能長時間沒有新值,但通訊仍健康。反過來,設備停機後仍可能持續回報零速與停止狀態,資料非常新鮮。這兩個例子說明資料更新與生產狀態是不同維度。

準備採集模式、預期心跳或更新規則、最後成功來源讀取、接收時間、品質及設備運行狀態。每個時間都標明位置,閘道發出心跳不代表它確實讀到PLC,資料庫可查詢也不代表現場採集正常。

本文適用於一般監控與歷史報表,不作安全停機判定。操作或保護需要什麼失效行為,必須依控制系統設計;HMI把資料顯示為未知,不能替代應有的硬體或控制保護。

用兩個維度建立可理解的畫面

第一個維度描述資料品質,例如有效、過時、來源中斷與待確認;第二個維度描述已知設備狀態,例如運轉、停止、待機。只有取得可信且足夠新鮮的狀態資料,才顯示目前運轉或停止;資料失效時保留最後已知狀態並明顯標示時間。

案例:零八時最後確認設備運轉,零八時零一分開始斷線。畫面可以寫最後已知運轉、更新於零八時、目前狀態未知。不要繼續使用無標記的綠色運轉,也不要直接轉成紅色停機,因為兩者都超出現有證據。

若獨立的可信停止訊號仍有效,可以顯示已知停止,同時標示產量來源中斷。兩個來源的範圍與品質各自保留,不因一個連線正常就替其他所有點位背書,也不因一個點斷線就抹掉所有仍可信資訊。

畫面至少顯示值、單位、品質與最後有效時間,必要時加資料年齡。最後值可協助理解過去狀況,但外觀要讓人知道它不能代表現在。空白、零及未知是三種不同語意,不應用同一個零來表示。

完成後讓操作者回答兩個問題:現在能否相信這個值,以及最後一次知道設備狀態是在何時。若只能看顏色猜原因,還需要補文字與時間資訊。

門檻來自資料契約而不是隨手填秒數

週期上傳每秒一筆的點位,可依需求設計資料年齡門檻;但要考慮採集、網路及處理正常延遲。教學假設五秒作過時門檻,不代表所有PLC點位都適用。控制確認、能耗報表與每日統計有不同的時效要求。

變化上傳的點位則需要另外的活性證據,例如成功輪詢紀錄、明確心跳或按設計定期更新。數值不變的來源時間可能不變,不能只用它判定斷線;也不能看到伺服器接收時間更新,就認定底層感測器每次都重新量測。

OPC UA的DataValue包含數值、StatusCode與時間資訊,來源與伺服器時間有各自語意。實際採集器應依協定與設備定義保存這些資訊,不能把每次畫面刷新時間寫成來源時間,讓舊值看起來永遠新鮮。

另處理啟動後尚未取得第一筆資料的狀態。不能把預設零與目前時間組成看似正常值,也不要把啟動等待期間算成已知停機。初始化是否完成、來源是否可用與製程是否停止各自判斷。

門檻前後可以安排明確顯示與恢復規則,避免剛超時又立即變好造成抖動,但不能用延遲掩蓋實際缺口。使用什麼確認條件,應寫進資料契約並測試,而不是只在畫面腳本中藏一個數字。

恢復後分開補送與即時資料

重連後收到一包五分鐘前資料,表示歷史正在補齊,不表示目前狀態已取得。依來源時間與品質辨認即時資料,先標補送中或目前仍待確認,直到取得符合要求的新資料才更新目前狀態。

歷史統計將已知停止、已知運行與未知時間分開。假設一小時內已知運行四十分鐘、已知停止十分鐘、資料未知十分鐘,不能直接宣稱停機二十分鐘,也不能把未知全當運行。先列三項,指標如何處理未知依規則說明。

若恢復後的事件能補回缺口,再按可追溯資料重建歷史狀態,保留修訂版本。無法補回則維持未知,不能用重連後看到停止推測過去整段都停止。狀態證據有時間範圍,不能任意往前延伸。

排查時沿現場來源、閘道、訊息接收、資料保存及畫面逐層比較最後成功時間。若閘道持續收到新資料而資料庫不更新,就優先查後段;若來源已無有效讀取,先查前段,避免每次都重啟顯示端。

完成驗收時模擬穩定值、真正停止、採集中斷、後端延遲與歷史補送,確認畫面與統計各自符合預期。不要只測拔網路線後變灰,恢復及資料年齡同樣重要。

練習與常見問題

練習:最後生產事件在十時,但設備心跳與狀態每秒更新且明確顯示待機。能否因十分鐘沒有生產事件就判資料源中斷?不能,事件稀疏與通道健康不同。應顯示可信的待機狀態,產量事件仍保留其最後時間。

失敗時先查是否變化上傳、時間欄位是否被覆寫、品質是否被丟棄,再沿資料路徑找最後正常位置。把所有缺資料一律補零,會讓故障診斷與停機統計一起失真。

問:曲線平直就是斷線嗎?答:可能穩定,也可能舊值,需看更新模式與品質。

問:有心跳就代表所有點都正常嗎?答:只證明心跳涵蓋的路徑,不代表每個來源值都有效。

問:重連第一包資料能立即標正常嗎?答:先確認是否新鮮有效,而非歷史補送。

問:未知時間可直接算停機嗎?答:應分列未知,若有估算規則須清楚標示。

參考:OPC UA Part 4 DataValue:數值、品質狀態、來源時間與伺服器時間的語意。

延伸閱讀