問題:為什么PCS 7項目中OS上顯示的當前報警時間和本地時間不一致,例如,計算機時間為14:16,而當前報警時間為22:16,如下圖所示,偏差8個小時。該問題是如何造成的,又該如何解決?
圖 1 當前報警和計算機時間不符
回答:在標準的PCS 7項目中,程序產生的報警信息其時間均來自于控制器。如果控制器的時間設置不正確,例如,設置控制器時間時未考慮時區的問題,或者未做自動的時間同步功能,則會出現上述問題。
我們首先來分析時區的問題。通常情況下,中國用戶在安裝操作系統時,其時間設置對話框中時區的設置會自動設置為東八區北京時間,比GMT時間早8個小時。
圖 2 本地時區設置
而在WinCC項目的下列計算機屬性設置中,其默認控制器的時區為UTC(即GMT)時區,并在本地顯示報警的時間時按照本地時區進行轉換后顯示(歸檔時仍然按照UTC時區歸檔)。
圖 3 WinCC項目計算機屬性設置中有關時區的設置
如果我們不考慮控制器和上位機之間的時區偏差問題,簡單的設置控制器的時間和本地時間相同。則會有如下問題:例如,當前本地時間為早晨9:00,設置控制器的時間也為早晨9:00。則當前產生的報警時間來自于控制器,其也為早晨9:00,上傳至WinCC后,由于WinCC的默認設置中(上圖3)認為控制器為UTC時區,且按本地時區進行顯示。其將會自動加上本地時區和UTC時區的時間偏差8小時后,進行顯示。最終顯示的報警時間則為9:00+8=17:00點,和當前計算機時間不符。
因此,當通過Simatic manager的PLC ? Set time of day菜單手動對所選擇的控制器進行時間設定時,必須注意時區偏差的問題,如下圖所示。
圖 4 設置控制器時間時需要加入時區偏差
在設置模板時間時,需要點擊More按鈕,加入相應的本地時區時間偏差后(例如,當前計算機設置時區為東八區,則設置時間偏差為+8小時),然后點擊apply按鈕設置控制器的時間。例如,當前本地計算機時間為早晨9:00(東八區),則控制器的時間應該設置為凌晨1:00才正確(UTC時間 = 當前時間 - 時區偏差)。這樣設置后,則不會出現上述的類似問題了。
上面介紹了控制器時間和本地時間之間時區偏差的問題,以及如何手動設置時間來糾正上述問題。在實際項目實施過程中,如果系統規模相對較大,例如,多個/對控制器、計算機等,則我們強烈建議采用系統自動時間同步的方式來進行時間設置。此時我們就不需要人為的去考慮時區的問題等,系統將自動根據時區偏差等來設置控制器和計算機的時間。