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