← 所有文章

PLC時鐘漂移如何用外部時間比對而不改動控制邏輯

· 站長

用外部參考時間量測PLC時鐘差異,分開事件時間、接收時間、延遲與解析度,不修改PLC時鐘或控制邏輯。

一 定義三個時間與符號

PLC時間看起來慢幾秒,先分清目前偏移與持續走時速率。本文只利用既有、已核對的只讀時間來源與外部參考比對,不新增PLC程式、不寫入時鐘。定義偏移為PLC回報時間減對應參考時間;正值表示PLC時鐘讀數較超前,但不代表它正在越走越快。

採樣可每60秒一次,用參考主機monotonic計算間隔。牆上時間會被校正或跳動,不能用它判定60秒;PLC解析度若為1秒,差0.3秒不代表真實漂移,報表附resolution和uncertainty。

保留PLC原始日期時間與現場設定的時區,再另存換算UTC及換算規則。PLC回報的日期時間欄位未必自帶時區,不能直接宣稱原值是UTC。若時區未知,先標待確認,避免把八小時設定差誤判成晶振漂移。

欄位 例值 意義
sourceTime 10:00:05.000 PLC回報
referenceTime 10:00:04.700 參考快照
receivedTime 10:00:04.820 到達時間
offset +0.300s source−reference

適用情境為Q06UDVCPU既有診斷或時間讀取路徑。QnUCPU第3.5節列有年月日時分秒及擴充毫秒欄位,但可讀解析度由實際使用方式決定。若現有工具只回秒,不能在後面補三個零就宣稱取得毫秒精度;本文小數案例屬量測模型假設。

先確認參考主機本身可靠,保存校時狀態與校時跳變記錄。穩定的單調計時可量測經過時間,但不是自動具有準確UTC的保證;主機時鐘頻率或參考品質不明時,結果只是兩台時鐘的相對差異,不能全歸因PLC。

二 延遲與ppm

請求10:00:00.000發出、10:00:00.120收到時,不能把任一端時間單獨當參考。可用RTT120ms、對稱延遲假設60ms算中點,但只是模型;去程20、回程100時中點會偏40ms,列入不確定度。

將兩次可比較的偏移估計相減,再除以參考經過秒數,乘一百萬得到相對速率ppm。假設起點偏移加二秒,二十四小時後加五秒,增加三秒;3除86400乘1000000約為34.722ppm。這是區間平均走時差,不是PLC原廠精度或校時指令。

只有收到時間而無發送時間時不能假設RTT,標單向未知;RTT改變或網路路徑改變就另分段。

量測 算式 結果
偏移變化 末點+5秒減起點+2秒 增加3秒
24小時 3/86400×10^6 34.722ppm估計
單向未知 無發送時刻 不做精確補正

若兩次偏移估計各有正負0.6秒不確定性,以保守最壞相加,三秒變化的不確定性為正負1.2秒。對應二十四小時的速率區間約20.833至48.611ppm,不能把34.722的小數位當成同樣精確的實測結果。延長觀察有助降低端點誤差的相對影響,但期間不可混入跳時。

請求與回覆間隔包含傳輸、排隊及設備處理。中點模型假設時間資料代表請求處理期間的時刻;若來源只是舊快照,還有資料年齡問題。記錄實際介面的取值語意,沒有證據時將模型誤差列出,不用RTT除二就宣稱已完全補償延遲。

三 三筆資料案例

另做三筆高解析度教學資料,假設它們已換到相同時區且參考時刻對齊。09:00偏移為負0.200秒,09:01負0.100秒,09:02正0.050秒,相鄰增加0.100和0.150秒。這些小數是資料模型,不保證現場既有讀取路徑能取得;只有秒解析度時應改用較長觀察區間。

三筆偏移變化不同,可能來自延遲、資料量化、參考變化或校時,不能只看末筆就推定固定漂移。若專案自訂RTT超500毫秒為低可信樣本,保留原始資料並在分析視圖標記排除理由;500毫秒不是三菱規定,也不是所有場景適用門檻。

時間 source reference offset
09:00 08:59:59.800 09:00:00.000 −0.200s
09:01 09:00:59.900 09:01:00.000 −0.100s
09:02 09:02:00.050 09:02:00.000 +0.050s

每筆表格另附送出時刻、收到時刻、來源原文、解析度及時鐘世代。日誌必須有完整日期;23:59:59到隔日00:00:01通常經過兩秒,不能只減時分秒得到巨大負值。跨時區與夏令時間轉換也先做規則核對。

遇到CPU重啟或已有SNTP校時事件,就分段分析。偏移突然跳回零不表示原本速率變成零,可能只是基準被調整。保留跳變前後兩段及事件證據,不跨越跳變用一條斜率平均,否則會把校時量混入自然走時。

四 跳時與失敗排查

先查參考主機時區、RTT、PLC解析度、CPU重啟和人工校時紀錄。不可因大offset就改時鐘,也不能用估計值改變輸出或流程。正式校時須另做停機、權限和型號支援確認,本文不提供校時指令。

分開標stepDetected、late、newEpoch和invalidSource。stepDetected只表示資料突變,不能僅憑突變推論真的clock step;要有人工紀錄或獨立證據。invalidSource不應加入漂移回歸。

QnUCPU Clock Function與GX Works2顯示受型號、韌體和工具版本限制,實機按型號核對,不以本文模型取代官方規格。

失敗時按順序查時區、來源解析度、資料是否新鮮、參考品質及RTT。若偏移固定約八小時,優先查時區;若偏移隨RTT明顯變化,查傳輸與取值時機;若出現整秒階梯,查量化效應。這些是調查方向,需用記錄支持,不是一看形狀就定案。

完成後應交付原始量測表及選定區間的偏移、平均速率和不確定範圍。若只有一次讀取,結論限於當次偏移估計,不能計算漂移率。若沒有足夠精度,寫明目前只能判斷秒級差異,並說明要補哪種既有讀取或較長觀察。

若同一個來源時間連續數次完全相同,先查讀取路徑是否回傳快取或停止更新,不要把它解讀為PLC時鐘停止。比較回覆識別、來源更新記錄與另一個既有只讀途徑;來源新鮮度沒有確認以前,這些樣本不適合用來估計走時速率。

五 FAQ 驗收與來源

練習:兩天間偏移由負四秒變負二秒,參考間隔172800秒。偏移增加二秒,估計相對速率為2除172800乘1000000,約11.574ppm;PLC讀數仍落後,但正在相對追近。這正好說明偏移符號與速率符號不能混為一談。

問:偏移正值代表越走越快嗎?答:只表示當時讀數超前,速率需比較兩個以上時間點。

問:收到時間可直接當PLC取值時刻嗎?答:不保證,還有傳輸、處理及來源快照延遲。

問:毫秒欄位表示毫秒準確嗎?答:解析度與準確度不同,需核對來源及參考誤差。

問:發現偏移應立即校時嗎?答:本篇只讀取證,校時需另評估歷史時間、排程與控制相關影響,按既有工程程序進行。

reference不可取得時保存incomplete,不參與回歸;保留原始時間字串,避免錯誤日期轉零。

參考:QnUCPU手冊 第3.5節 Clock Function 印刷頁127起;延遲與ppm計算為本文明確假設的外部量測模型

延伸閱讀


使用 PLC 工具箱 →