WinCC 實(shí)現(xiàn)批次數(shù)據(jù)過慮查詢,以及打印批次數(shù)據(jù)報(bào)表
1 <概述>
<在一些行業(yè)的生產(chǎn)過程中,產(chǎn)品按照批次進(jìn)行生產(chǎn)。WinCC 在批次生產(chǎn)過程中會對一些生產(chǎn)數(shù)據(jù)進(jìn)行歸檔,以便于后期對批次生產(chǎn)進(jìn)行分析或者追溯。WinCC 提供了數(shù)據(jù)歸檔的功能,并且還可以通過多種方式將歸檔數(shù)據(jù)查詢出來進(jìn)行呈現(xiàn)。例如通過 OnlineTrendControl 顯示歷史趨勢,通過 OnlineTableControl 顯示歷史數(shù)據(jù)。也可以通過報(bào)表打印的方式輸出到打印機(jī)或者報(bào)表文件。但是在使用 WinCC OnlineTrendControl 以O(shè)nlineTableControl 時,對于數(shù)據(jù)的過濾查詢只能根據(jù)時間進(jìn)行。這就給這種希望根據(jù)批次名稱進(jìn)行批次數(shù)據(jù)查詢的應(yīng)用帶來了一些不便。為了解決這個問題,本文將介紹如何能夠通過生產(chǎn)批次名稱來進(jìn)行批次數(shù)據(jù)過濾查詢的組態(tài)編程方法。
1.1 <實(shí)現(xiàn)原理>
<首先明確應(yīng)用需求的重點(diǎn)是希望根據(jù)批次名稱進(jìn)行歷史數(shù)據(jù)的查詢。那么也就意味著只要能夠在 WinCC 中歸檔批次名稱的同時,將該批次的開始生產(chǎn)時間以及結(jié)束生產(chǎn)時間與批次名稱一同進(jìn)行歸檔。當(dāng)選擇了需要查詢的批次名稱的時候也就能夠獲取到該批次的生產(chǎn)起始以及結(jié)束時間,再根據(jù)這兩個時間即可過濾查詢出該批次生
產(chǎn)過程中歸檔的所有歷史數(shù)據(jù)。
1.2 <測試環(huán)境>
<本文中的功能實(shí)現(xiàn)所使用 WinCC 版本為 V7.5 SP1 亞洲版。操作系統(tǒng)為 Windows
10 Pro Version 1803(64-Bit)>
2 < 步驟>
2.1 <創(chuàng)建測試變量>
<創(chuàng)建測試變量(為便于測試以及文檔編寫,創(chuàng)建的變量均為內(nèi)部變量。實(shí)際項(xiàng)目應(yīng)用操作類同,只是生產(chǎn)數(shù)據(jù)變量為外部變量)。

在變量管理器中創(chuàng)建變量組并命名為“report”。
在變量組“report”中創(chuàng)建變量如圖?01,注意數(shù)據(jù)類型。各個變量的用途參考變量注釋
2.2 <創(chuàng)建過程值歸檔>
<如圖?02 在變量記錄中創(chuàng)建過程值歸檔“batchState”,并在該歸檔中添加歸檔變量“batchName”、“beginTime”、“endTime”。采集類型均選擇為“非周期”,起始變量均選擇為“batchRecordTrigger”。這將意味著變量“batchRecordTrigger”的值一旦發(fā)生改變,則會對 3 個歸檔變量進(jìn)行一次歸檔。該過程值歸檔用于記錄批次名稱以及批次生產(chǎn)的開始和結(jié)束時間。

如圖 03 在變量記錄中創(chuàng)建過程值歸檔“batchDatas”,并在該歸檔中添加歸檔變量“data1”、“data2”、“data3”。采集類型均選擇為“周期 - 連續(xù)”,采集周期與歸檔/顯示周期均設(shè)置為 “1 second”(實(shí)際應(yīng)用根據(jù)需要確定即可)。該過程值歸檔用于記錄生產(chǎn)數(shù)據(jù)。

>
2.3 <編輯畫面監(jiān)視域>
<在畫面編輯器中添加靜態(tài)文本以及輸入/輸出域進(jìn)行數(shù)據(jù)監(jiān)視及輸入。
如圖 04 根據(jù)需要添加靜態(tài)文本以及輸入/輸出域,并按照圖中的藍(lán)色標(biāo)簽關(guān)聯(lián)之前已經(jīng)創(chuàng)建的相應(yīng)變量。其中“批次名稱輸入/輸出域”用于批次名稱的輸入,其它輸入/出域均設(shè)置為輸出類型即可。

2.4 <編輯畫面控件>
<如圖 05,添加 2 個“OnlineTableControl”控件,分別命名“TableControl”及“TableControl2”。添加 1 個“OnlineTrendControl”控件,命名“TrendControl”??丶癟ableControl”關(guān)聯(lián) 3 個歸檔變量:“batchName”、“beginTime”、“endTime”??丶癟ableControl2”關(guān)聯(lián) 3 個歸檔變量:“data1”、“data2”、“data3”.控件“TrendControl”關(guān)聯(lián) 3 個歸檔變量:“data1”、“data2”、“data3”。

2.5 <編輯按鈕>
<如圖?06 添加 3 個按鈕,開始批次生產(chǎn)、結(jié)束批次生產(chǎn)以及選擇并查詢。

為開始批次生產(chǎn)按鈕編寫腳本如圖 07。

為結(jié)束批次生產(chǎn)按鈕編寫腳本如圖 08。

為選擇并查詢按鈕編寫腳本如圖 09。


2.6 <創(chuàng)建并編輯報(bào)表布局>
<如圖 10,創(chuàng)建布局“batchReport”并根據(jù)需要編輯布局。關(guān)鍵步驟:CCAxOnlineTableControl.表格的動態(tài)參數(shù)中,關(guān)聯(lián) TimeColumnBeginTime 到變量“queryBeginTime_1”,關(guān)聯(lián)TimeColumnEndTime 到變量“queryEndTime_1”。
如圖 11,表格控件 Properties 中,取消選擇時間列選項(xiàng)頁中的“刷新”。
2.7 <創(chuàng)建并組態(tài)打印作業(yè)>
<如圖 12,創(chuàng)建打印作業(yè)命名為“batchReport”,并在常規(guī)選項(xiàng)頁中選擇已完成編輯的報(bào)表布局“batchReport.RPL”,選擇“無對話框”。
在打印機(jī)設(shè)置選項(xiàng)頁中取消勾選“打印機(jī)”,并勾選“PDF”(該選項(xiàng)需要安裝WinCCDataMonitor 選件后可用)。

2.8 <添加打印按鈕>
<如圖 13,添加打印按鈕,并在按鈕單擊鼠標(biāo)事件中編寫 C 腳本。

3 < 實(shí)際運(yùn)行結(jié)果>
3.1 <記錄過程>
<?如圖 14,首先在批次名稱輸入域中輸入將要開始生產(chǎn)的批次名稱,如“P202002071102”(在實(shí)際應(yīng)用中也可以通過全局腳本根據(jù)用戶需求自動輸入批次名稱)。
然后點(diǎn)擊“開始批次生產(chǎn)”按鈕啟動生產(chǎn)。此時“開始時間”會自動顯示當(dāng)前批次開始生產(chǎn)的時間。當(dāng)生產(chǎn)完成后,點(diǎn)擊“結(jié)束批次生產(chǎn)”按鈕來停止生產(chǎn)。此時“結(jié)束時間”會自動顯示當(dāng)前批次結(jié)束生產(chǎn)的時間。最終生產(chǎn)結(jié)束時該批次的“批次名稱”、“開始時間”、“結(jié)束時間”會被歸檔,同時會顯示到“TableControl”控件中而“TableControl2”及“TrendControl”控件中的數(shù)據(jù)還處于實(shí)時更新之中。
經(jīng)過多次生產(chǎn)過程后,“TableControl”控件即批次選擇列表中會出現(xiàn)之前所有已完成
批次的信息以供選擇。

3.2 < 查詢過程>
<如圖?15,首先在查詢批次選擇列表(TableControl?控件)工具欄上點(diǎn)擊“啟動/停
止”按鈕來停止控件的實(shí)時更新。然后在列表中選擇希望查詢的批次,如“P202002071125”。
點(diǎn)擊“選擇并查詢”按鈕。列表中所選擇的批次信息將會顯示在右側(cè)的輸出域中,包括查詢批次名稱、生產(chǎn)啟停時間以及該批次的生產(chǎn)時長。如本例中所選擇的批次生產(chǎn)是從“2020-02-07 11:25:21”到“2020-02-07 11:25:33”,持續(xù)了 12 秒,轉(zhuǎn)換為分鐘后則為?0.2 分鐘。
最終該批次內(nèi)的生產(chǎn)數(shù)據(jù)則呈現(xiàn)在 TableControl2 以及 TrendControl 中。

>
3.3 < 報(bào)表輸出>
<點(diǎn)擊“打印”按鈕,該批次的數(shù)據(jù)將會被打印成?PDF?文檔存儲到項(xiàng)目文件夾當(dāng)中,如

雙擊最新打印出的文件。在 Windows 10 中可通過 Microsoft Edge 瀏覽器進(jìn)行查
看,如圖 17
