WinCC 中使用備份歸檔,并在需要時(shí)自動(dòng)鏈接備份歸檔
??
1 概述
在工業(yè)生產(chǎn)中,WinCC 歸檔的生產(chǎn)歷史數(shù)據(jù)起到很重要的作用。一部分歷史數(shù)據(jù)可以反映設(shè)備運(yùn)行狀態(tài)的變化,一部分歷史數(shù)據(jù)可以用來(lái)分析某些參數(shù)改變對(duì)生產(chǎn)效果的影響,還有一部分?jǐn)?shù)據(jù)用來(lái)進(jìn)行生產(chǎn)故障分析。所以需要盡可能多的保存歷史數(shù)據(jù)。但是,隨著在線歷史歸檔數(shù)據(jù)的增多,WinCC 的性能也會(huì)受到影響,所以 WinCC 提供了歸檔數(shù)據(jù)備份功能,在滿足存儲(chǔ)在線歸檔數(shù)據(jù)的基礎(chǔ)上,還能保證歷史歸檔數(shù)據(jù)不丟失。因此,本文檔將介紹如何使用 WinCC V7.5 SP1 的歸檔備份功能。
2 WinCC 歸檔數(shù)據(jù)的限制
在 WinCC 歸檔組態(tài)中可以組態(tài)變量記錄和報(bào)警記錄的歸檔大小,如圖 1 所示。其中單個(gè)分段就是一個(gè) SQL 數(shù)據(jù)庫(kù)文件,所有分段是 WinCC 所保存的所有的在線歸檔數(shù)據(jù)。

在 WinCC 項(xiàng)目文件夾下的 ArchiveManager 文件夾中保存的是 WinCC 在線歸檔數(shù)據(jù)。
其中 TagLoggingFast 文件夾下保存的是快速歸檔文件,如圖 2 所示:

在歸檔組態(tài)中,需要保證所有單個(gè)歸檔(包括快速歸檔,慢速歸檔和報(bào)警歸檔)片斷的總數(shù)不超過(guò)某一個(gè)固定值。經(jīng)過(guò)測(cè)試比較,SQL 數(shù)據(jù)庫(kù)所能連接的歸檔片斷最大可行的數(shù)量為 200 個(gè)。歸檔片斷個(gè)數(shù)不能過(guò)多地超過(guò)這個(gè)數(shù)量,否則會(huì)影響 Microsoft SQLserver 運(yùn)行性能。這反過(guò)來(lái)會(huì)導(dǎo)致數(shù)據(jù)管理錯(cuò)誤。
同時(shí) WinCC V7.5 SP1 中單個(gè)歸檔片斷大小不應(yīng)該超過(guò) 2G。
詳細(xì)信息可以參考:
https://support.industry.siemens.com/cs/cn/zh/view/34473263
3 WinCC 歸檔備份功能
可以在 WinCC 歸檔組態(tài)中啟用歸檔備份功能,如圖 3 所示。

激活備份功能之后,所有歸檔文件在歸檔分段文件完成 15 分鐘后或達(dá)到分段最大尺寸之
后都會(huì)被放到備份歸檔路徑下。其中備份路徑可以是本地路徑,也可以是網(wǎng)絡(luò)路徑,如圖 4 所示。

如果同時(shí)也選擇了“備份到兩個(gè)路徑”選項(xiàng),那么會(huì)同時(shí)在兩個(gè)路徑下保存?zhèn)浞輾w檔,如圖?所示:

4 鏈接備份歸檔的方法
WinCC 可以直接查看在線歸檔數(shù)據(jù),例如通過(guò)在線表格或在線趨勢(shì)控件加載在線歸檔數(shù)據(jù)。備份出去的歸檔數(shù)據(jù)則無(wú)法直接查看,需要先鏈接備份歸檔之后才能查看這些歸檔
數(shù)據(jù)。目前,在 WinCC V7.5 SP1 中存在以下幾種鏈接備份歸檔的方法:
? 在變量記錄編輯器中鏈接
? 使用 WinCC 在線表格或在線趨勢(shì)控件鏈接
? 通過(guò)腳本鏈接歸檔
4.1?在變量記錄編輯器中鏈接歸檔
打開(kāi)變量記錄編輯器,選擇“歸檔”并右鍵,然后依次選擇“歸檔組態(tài)”?“快速變量記錄”(或“慢速變量記錄”)?“鏈接歸檔”,如圖 6 所示。

然后在彈出的窗口中選擇備用路徑及歸檔即可,鏈接成功后提示如圖 7 所示。

同樣可以斷開(kāi)與備份歸檔的鏈接,在圖 6 中選擇“斷開(kāi)與歸檔的連接”條目即可。在彈出的數(shù)據(jù)庫(kù)選擇”對(duì)話框中選擇需要斷開(kāi)的歸檔

斷開(kāi)成功的提示如圖 9 所示。

4.2 使用在線表格或在線趨勢(shì)控件鏈接歸檔
還可以通過(guò)在線表格或在線趨勢(shì)控件上的“連接接歸檔”和“斷開(kāi)鏈接”工具來(lái)鏈接或斷開(kāi)備份歸檔。
默認(rèn)情況下,“連接備份”和“斷開(kāi)備份”工具不會(huì)顯示在控件上,需要在控件屬性中把它們顯示出來(lái)。如圖 10 所示。

連接備份”和“斷開(kāi)備份”工具顯示在控件工具欄中,如圖 11 所示

點(diǎn)擊“連接備份” ,彈出選擇備份歸檔的對(duì)話框,如圖 12 所示。選擇備份路徑及歸檔
文件后,點(diǎn)擊“確定”按鈕即可把相應(yīng)歸檔鏈接到 WinCC 運(yùn)行系統(tǒng)。

同樣,點(diǎn)擊“斷開(kāi)備份” 可以斷開(kāi)所鏈接的備份歸檔,如圖 13 所示:

4.3 通過(guò)腳本鏈接歸檔
可以使用 VBS 腳本來(lái)鏈接或斷開(kāi)備份歸檔。其中鏈接備份歸檔的語(yǔ)法如下:
HMIRuntime.Logging.DataLogs.Restore [SourcePath] [TimeFrom] [TimeTo] [TimeOut]
[Type]
各參數(shù)含義如下:
? SourcePath:歸檔的備份路徑。
? TimeFrom、TimeTo:要恢復(fù)數(shù)據(jù)的時(shí)間段,這里要用 UTC 時(shí)間。
? TimeOut:是否等待。因?yàn)殒溄託w檔需要時(shí)間,此參數(shù)為-1 時(shí),腳本會(huì)等待鏈接結(jié)果。
? Type:所鏈接的歸檔類(lèi)型。1 代表快速歸檔,2 代表慢速歸檔,3 代表快速歸檔和慢速歸檔。
注意:
不寫(xiě)參數(shù)時(shí)將鏈接備份路徑下所有的歸檔文件到 WinCC 運(yùn)行系統(tǒng)。
TimeFrom 和 TimeTo 的時(shí)間格式錯(cuò)誤時(shí)也會(huì)鏈接備份路徑下所有的歸檔文件到 WinCC行系統(tǒng)。
鏈接函數(shù)是有返回結(jié)果的。返回結(jié)果為 0 時(shí)正常,為 1 時(shí)代表歸檔已經(jīng)鏈接或備份路徑下沒(méi)有備份歸檔,此兩種結(jié)果都可以認(rèn)為是正常。其它錯(cuò)誤信息如表 1 所示。
表 1 錯(cuò)誤代碼
錯(cuò)誤代碼錯(cuò)誤原因0x80047200WinCC 沒(méi)有激活0x80047201無(wú)效的歸檔類(lèi)型0x80047202無(wú)效的時(shí)間下邊界0x80047203無(wú)效的時(shí)間上邊界0x80047204無(wú)法在項(xiàng)目文件夾下創(chuàng)建 'CommonArchiving'0x80047205超時(shí)0x80047206WinCC 取消激活0x80047207無(wú)效簽名0x80047208無(wú)法加載數(shù)據(jù)庫(kù)0x80047209不能復(fù)制數(shù)據(jù)到 'CommonArchiving'0x8004720A數(shù)據(jù)庫(kù)名稱無(wú)效0x8004720B無(wú)數(shù)據(jù)庫(kù)列表0x8004720C數(shù)據(jù)庫(kù)已經(jīng)斷開(kāi)0x8004720D數(shù)據(jù)庫(kù)無(wú)法斷開(kāi)0x8004720F未簽名的數(shù)據(jù)連接0x80047210路徑錯(cuò)誤
斷開(kāi)備份的語(yǔ)法:
HMIRuntime.Logging.DataLogs.Remove [TimeFrom] [TimeTo] [TimeOut] [Type]
參數(shù)含義和鏈接歸檔語(yǔ)法相同。
5 應(yīng)用舉例
下面以趨勢(shì)顯示時(shí)自動(dòng)加載歸檔數(shù)據(jù)為例介紹 WinCC 備份歸檔的組態(tài)及自動(dòng)鏈接。在查詢歷史數(shù)據(jù)時(shí),如果所查詢的時(shí)間范圍超過(guò)了在線歸檔數(shù)據(jù)的時(shí)間范圍,則自動(dòng)加載備份歸檔。
5.1?變量組態(tài)
在 WinCC 中創(chuàng)建內(nèi)部變量,如圖 14 所示。

5.2?歸檔組態(tài)
在 WinCC 變量記錄編輯器中創(chuàng)建過(guò)程值歸檔,如圖 15 所示。

設(shè)置歸檔屬性,單個(gè)分段時(shí)間范圍為 1 小時(shí),所有分段時(shí)間范圍為 2 小時(shí),這樣可以查詢最近 2 個(gè)小時(shí)的歸檔數(shù)據(jù)。如圖 16 所示

啟動(dòng)歸檔備份,設(shè)置備份路徑,如圖 17 所示。

5.3 畫(huà)面組態(tài)
在 WinCC 中創(chuàng)建以下畫(huà)面,并設(shè)置“Start”為起始畫(huà)面。

在“Start”添加畫(huà)面切換按鈕以及畫(huà)面窗口,如圖 19 所示。

兩個(gè)畫(huà)面切換按鈕分別連接畫(huà)面“Main”和“Trend”,如圖 20 所示。

在“Trend”畫(huà)面中添加選項(xiàng)組控件用來(lái)選擇是否要自動(dòng)鏈接備份歸檔,添加 Date and Time Picker 控件用來(lái)設(shè)置曲線的開(kāi)始時(shí)間和結(jié)束時(shí)間,并添加查詢按鈕、趨勢(shì)控件,如
圖 21 所示。
為趨勢(shì)控件選擇加載的歸檔變量,如圖 22 所示。
并設(shè)置趨勢(shì)控件的時(shí)間基準(zhǔn)為“本地時(shí)區(qū)”,如圖 23 所示。
在查詢按鈕的事件中編寫(xiě)曲線查詢腳本,如圖 24 所示
在腳本中判斷結(jié)束時(shí)間是否晚于開(kāi)始時(shí)間,是否加載備份歸檔,并判斷設(shè)置的時(shí)間范圍是否在在線歸檔范圍之外,如果是則加載對(duì)應(yīng)的備份歸檔。需要注意,在執(zhí)行 Restore令加載備份歸檔之前,需要把設(shè)定的時(shí)間范圍轉(zhuǎn)換成 UTC 時(shí)間。具體腳本如下:
Dim OP1,myTrend
Set OP1 =ScreenItems("OP1") '在線趨勢(shì)控件名稱
Set myTrend =ScreenItems("myTrend") '在線趨勢(shì)控件名稱
Dim BeginTime,endTime
Set BeginTime=ScreenItems("BeginTime")'開(kāi)始時(shí)間控件名稱
Set endTime=ScreenItems("endTime")'結(jié)束時(shí)間控件名稱
If DateDiff("s",BeginTime.value,endTime.value)>0 Then'結(jié)束時(shí)間晚于開(kāi)始時(shí)間
If OP1.Process =1 Then'自動(dòng)連接備份歸檔
Dim BeginTime_restore,endTime_restore
Dim restore_bool
restore_bool=0
BeginTime_restore=FormatDateTime(BeginTime.value)
endTime_restore= FormatDateTime(endTime.value)
If DateDiff("s",endTime.value,DateAdd("h", -2, Now))<=0 Then
'結(jié)束時(shí)間在歸檔時(shí)間范圍內(nèi)
If DateDiff("s",BeginTime.value,DateAdd("h", -2, Now))>0 Then
'開(kāi)始時(shí)間在歸檔時(shí)間范圍外
endTime_restore= DateAdd("h", -2, Now)
restore_bool=1
End If
Else
'結(jié)束時(shí)間在歸檔時(shí)間范圍外
restore_bool=1
End If
If restore_bool=1 Then'查詢時(shí)間超過(guò)在線歸檔數(shù)據(jù)時(shí)間范圍之外
BeginTime_restore=DateAdd("h", -8, BeginTime_restore)
endTime_restore=DateAdd("h", -8, endTime_restore) '轉(zhuǎn)換為 UTC 時(shí)間
HMIRuntime.Trace "歸檔連接開(kāi)始時(shí)間:" & CStr(BeginTime_restore)
& ",結(jié)束時(shí)間:" & CStr(endTime_restore) & vbNewLine
HMIRuntime.Trace "歸檔連接結(jié)果= " &
HMIRuntime.Logging.DataLogs.Restore("E:\db1",CStr(BeginTime_restore),CStr(endTime_resto
re),-1,1) & vbNewLine
End If
End If
myTrend.TimeAxisIndex =0 '時(shí)間軸索引
myTrend.Online =0
myTrend.TimeAxisRangeType =1 '時(shí)間軸類(lèi)型-時(shí)間范圍
myTrend.TimeAxisBeginTime = BeginTime.value '起始時(shí)間
myTrend.TimeAxisEndTime =endtime.value '結(jié)束時(shí)間
else
Msgbox "結(jié)束時(shí)間應(yīng)該晚于開(kāi)始時(shí)間!"
End If
在畫(huà)面關(guān)閉事件下斷開(kāi)備份歸檔的鏈接,腳本如圖 25 所示。
5.4 運(yùn)行結(jié)果
在 WinCC 項(xiàng)目屬性中取消“只能對(duì)項(xiàng)目目錄進(jìn)行寫(xiě)保護(hù)訪問(wèn)”選項(xiàng),如圖 26 所示,并在計(jì)算機(jī)屬性中啟用“變量記錄運(yùn)行系統(tǒng)”,然后激活 WinCC 項(xiàng)目
打開(kāi) WinCC 變量模擬器,來(lái)模擬變量的變化,設(shè)置如圖 27 所示。
切換到趨勢(shì)畫(huà)面,開(kāi)始時(shí)選擇“不加載備份歸檔”,然后選擇在線歸檔時(shí)間范圍之外的某個(gè)時(shí)間范圍,本例中選擇如圖 28 所示,然后點(diǎn)擊查詢按鈕。
可以看到在這個(gè)時(shí)間范圍內(nèi)并沒(méi)有數(shù)據(jù)顯示出來(lái)。
接下來(lái)選擇“自動(dòng)加載備份歸檔”選項(xiàng),設(shè)置相同的時(shí)間范圍,點(diǎn)擊查詢按鈕。對(duì)應(yīng)的歷史歸檔數(shù)據(jù)就會(huì)從備份歸檔中被重新加載,并呈現(xiàn)在曲線中。如圖 29 所示
此時(shí),點(diǎn)擊“斷開(kāi)備份”工具可以看到已經(jīng)鏈接到 WinCC 運(yùn)行系統(tǒng)的歸檔,如圖 30 所示。
切換到主畫(huà)面,趨勢(shì)畫(huà)面被關(guān)閉,會(huì)觸發(fā)斷開(kāi)備份的腳本。然后再切換回趨勢(shì)畫(huà)面,點(diǎn)擊“斷開(kāi)備份”工具可以看到所有鏈接到 WinCC 運(yùn)行系統(tǒng)的歸檔已經(jīng)被斷開(kāi),如圖 31 所示。
作者自我介紹:工控小周
人們中眼的天才之所以卓越非凡,并非天資超人一等,而是付出了持續(xù)不斷的努力。1萬(wàn)小時(shí)的錘煉是任何人從平凡變成超凡的必要條件。按比例計(jì)算就是:如果每天工作八個(gè)小時(shí),一周工作五天,那么成為一個(gè)領(lǐng)域的專(zhuān)家至少需要五年。我從信捷(干了五年)出來(lái)后,做過(guò)步科獨(dú)立銷(xiāo)售,做過(guò)北辰 自己?jiǎn)胃蛇^(guò) ,可是我發(fā)現(xiàn)通用品越來(lái)越難做,生意越來(lái)越難做,但是生活還得繼續(xù)下去,我就在想,白天想,夜里想 突然想到2011年認(rèn)識(shí)的巨控的總經(jīng)理,他有好的產(chǎn)品,無(wú)線遠(yuǎn)程監(jiān)控模塊GRM500,于是我從無(wú)錫碩放飛廣州, 經(jīng)培訓(xùn)成了巨控產(chǎn)品經(jīng)理,在巨控負(fù)責(zé)銷(xiāo)售和技術(shù),并且一直努力專(zhuān)注下去!一直不忘初心,經(jīng)常奔赴第一現(xiàn)場(chǎng),進(jìn)行項(xiàng)目評(píng)估,項(xiàng)目實(shí)施,數(shù)據(jù)采集,工業(yè)物聯(lián)通訊,上位機(jī),APP組態(tài)等。159618(工控小周)72327