能否快速批量錄入歷史數(shù)據(jù)變量?能否動(dòng)態(tài)增、刪歷史數(shù)據(jù)控件里數(shù)據(jù)?能否動(dòng)態(tài)選擇控件的時(shí)間區(qū)間?
總之,就是想,省時(shí)!高效!靈活!
本文以示例方式來介紹這個(gè)話題,包括:
- 示例功能介紹
- 示例實(shí)現(xiàn)步驟
- 示例源程序下載鏈接
1.功能介紹
動(dòng)態(tài)控制WinCC在線表格控件
1、選擇參數(shù)組名稱(變量組),向控件中添加多條數(shù)據(jù)
2-3、設(shè)定歷史數(shù)據(jù)顯示的時(shí)間范圍
4、設(shè)置數(shù)據(jù)時(shí)間間隔
5、查詢歷史數(shù)據(jù)
2.組態(tài)步驟
創(chuàng)建變量
在WinCC變量管理中創(chuàng)建不同的變量
本例中,每個(gè)變量組下包含的變量如表所示:
創(chuàng)建變量歸檔
在WinCC變量記錄下創(chuàng)建變量歸檔,并添加變量
變量歸檔下包含的歸檔變量同上
3.WinCC查詢畫面
添加畫面對(duì)象
本例中需要選擇查詢的參數(shù)以及查詢的時(shí)間段,然后通過一個(gè)按鈕來執(zhí)行數(shù)據(jù)查詢腳本,并把歷史數(shù)據(jù)加載到在線表格控件上。
因此,需要在畫面中添加以下對(duì)象:- 選項(xiàng)組控件:用來選擇所查詢的參數(shù),其對(duì)應(yīng)的所有歸檔變量將會(huì)被加載到歷史數(shù)據(jù)控件中- 時(shí)間選擇控件:用來設(shè)定歷史數(shù)據(jù)的開始和結(jié)束時(shí)間- 歷史數(shù)據(jù)控件:查詢- 按鈕:執(zhí)行查詢事件
畫面中個(gè)對(duì)象的名稱將會(huì)在查詢腳本中被使用到,因此需要設(shè)定各個(gè)控件的名稱。本例中各控件名稱設(shè)置如下圖所示。
選項(xiàng)組控件
<選項(xiàng)組控件用來選擇需要查詢的參數(shù),并且為單選控件。本文中介紹兩種添加選項(xiàng)組控件的方法:直接拖拽控件、從Excel表格中拖拽。1、直接拖拽控件選項(xiàng)組控件可以直接從“窗口對(duì)象”下拖拽到畫面中,設(shè)定其框數(shù)量(屬性:“幾何”->“框數(shù)量”)為4,并為不同的索引設(shè)定相應(yīng)的文本。
2、從表格中拖拽:下面介紹另外一種方法,可以直接從excel(必須是微軟的excel不可以是wps)或者WinCC Configuration Studio中拖拽文本到WinCC畫面自動(dòng)創(chuàng)建選項(xiàng)組控件。首先,在excel中輸入需要的文本。然后,在excel中選擇所有文本,移動(dòng)鼠標(biāo)到選中區(qū)域的右下角,直到鼠標(biāo)變成十字光標(biāo)形狀。按著鼠標(biāo)右鍵拖拽文本到WinCC畫面,松開鼠標(biāo),在彈出對(duì)話框中選擇“插入選項(xiàng)組”。最后,選項(xiàng)組控件被插入到WinCC畫面。
另外,也可以直接從WinCCConfiguration Studio中拖拽文本到WinCC畫面自動(dòng)創(chuàng)建選項(xiàng)組控件,方式和上面的從表格拖拽一致,也有右鍵拖拽。
時(shí)間選擇控件
按如下步驟添加MicrosoftDate and Timer Picker Control控件到畫面中。
首先,在ActiveX控件上右鍵,選擇“添加/刪除”,然后在OCX控件列表中選擇Microsoft Date andTimer Picker Control。
然后,添加控件到畫面,拖拽MicrosoftDate and Timer Picker Control控件到畫面中。
最后,設(shè)置控件的“Format”屬性為“3-dptCustom”,“CustomFormat”屬性為”yyyy-MM-dd hh:mm”。
在線表格控件
添加在線表格控件到畫面中,所有屬性保持默認(rèn)值即可。
查詢腳本
根據(jù)選項(xiàng)組所選定的參數(shù)加載相應(yīng)的多個(gè)歸檔變量到在線表格控件,根據(jù)設(shè)定的查詢時(shí)間范圍設(shè)定控件時(shí)間軸的開始時(shí)間及結(jié)束時(shí)間。注意:設(shè)定在線表格控件的時(shí)間范圍之前,需要取消在線表格控件的“刷新”(Online)屬性,否則設(shè)定的時(shí)間范圍不起作用。本例中將通過腳本來設(shè)置在線表格控件的“刷新”(Online)屬性。畫面中“數(shù)據(jù)查詢”按鈕的腳本
以下是部分的VBS腳本如下:
Sub OnLButtonUp(ByVal Item, ByVal Flags, ByVal x, ByVal y)
Dim OP1,tbl1,col
Dim TableName(26),ValueColumnCount '定義每張表格數(shù)值上限為(可以自行增減) 定義變量個(gè)數(shù)
Set tbl1 = ScreenItems("tbl1") '將在線表格控件名稱賦值給tbl1
tbl1.Online=False '停止數(shù)據(jù)刷新
Dim i
For i=1 To tbl1.ValueColumnCount
tbl1.ValueColumnIndex=i '引用已組態(tài)的數(shù)值列。使用此屬性可以將其它屬性的值分配給特定的數(shù)值列。
'介于 0 和 (ValueColumnCount - 1) 之間的值為“ValueColumnIndex”的有效值。屬性“ValueColumnCount”定義已組態(tài)的數(shù)值列數(shù)。
'通過特性 ValueColumnRepos 可為“ValueColumnIndex”特性分配動(dòng)態(tài)屬性。數(shù)據(jù)類型為 LONG。
tbl1.ValueColumnRemove=tbl1.ValueColumnName '添加數(shù)據(jù)前先刪除所有數(shù)據(jù),否則數(shù)據(jù)沒辦法替換
Next
Set OP1=ScreenItems("OP1") '數(shù)據(jù)選擇選項(xiàng)組控件名稱 (注意設(shè)置好多選框名字為OP1)
Select Case OP1.Process '根據(jù)選擇項(xiàng)設(shè)定變量個(gè)數(shù)及各個(gè)歸檔變量名稱
Case 1 '選擇第1項(xiàng)
TableName(0)="測(cè)試溫度1"
TableName(1)="測(cè)試溫度2"
TableName(2)="測(cè)試溫度3"
TableName(3)="測(cè)試溫度4"
valuecolumncount=4 '每個(gè)選擇的個(gè)數(shù)賦值給計(jì)數(shù)變量
Case 2 '選擇第2項(xiàng)
TableName(0)="測(cè)試濕度1"
TableName(1)="測(cè)試濕度2"
TableName(2)="測(cè)試濕度3"
TableName(3)="測(cè)試濕度4"
TableName(4)="測(cè)試濕度5"
valuecolumncount=5
Case 4 '選擇第3項(xiàng)
TableName(0)="測(cè)試壓力1"
TableName(1)="測(cè)試壓力2"
TableName(2)="測(cè)試壓力3"
valuecolumncount=3
' Case 8 '選擇第4項(xiàng)
'TableName(0)="EMSA區(qū)DB_1A-2Q34氣鎖對(duì)1A-2Q30緩沖_相對(duì)_顯示值"
'TableName(1)="EMSA區(qū)DB_1A-2Q43氣鎖對(duì)1A-2Q39緩沖_相對(duì)_顯示值"
'TableName(2)="EMSA區(qū)DB_1A-2Q53微生物檢驗(yàn)室對(duì)1A-2Q52更衣_相對(duì)_顯示值"
'TableName(3)="EMSA區(qū)DB_1A-2Q52更衣對(duì)1A-2Q51緩沖_相對(duì)_顯示值"
'TableName(4)="EMSA區(qū)DB_1A-2Q51緩沖對(duì)外走廊_相對(duì)_顯示值"
'TableName(5)="EMSA區(qū)DB_1A-2Q33退更對(duì)1A-2Q34氣鎖_相對(duì)_顯示值"
'TableName(6)="EMSA區(qū)DB_1A-2Q32氣鎖對(duì)1A-2Q31更衣_相對(duì)_顯示值"
'TableName(7)="EMSA區(qū)DB_1A-2Q31更衣對(duì)1A-2Q30緩沖_相對(duì)_顯示值"
'TableName(8)="EMSA區(qū)DB_1A-2Q30緩沖對(duì)外走廊_相對(duì)_顯示值"
'TableName(9)="EMSA區(qū)DB_1A-2Q49無菌檢驗(yàn)室對(duì)1A-2Q48更衣_相對(duì)_顯示值"
'TableName(10)="EMSA區(qū)DB_1A-2Q48更衣對(duì)1A-2Q47緩沖_相對(duì)_顯示值"
'TableName(11)="EMSA區(qū)DB_1A-2Q47緩沖對(duì)外走廊_相對(duì)_顯示值"
'TableName(12)="EMSA區(qū)DB_1A-2Q41氣鎖對(duì)1A-2Q40更衣_相對(duì)_顯示值"
'TableName(13)="EMSA區(qū)DB_1A-2Q40更衣對(duì)1A-2Q39緩沖_相對(duì)_顯示值"
'TableName(14)="EMSA區(qū)DB_1A-2Q39緩沖對(duì)外走廊_相對(duì)_顯示值"
需要完整程序可以私信老周獲取
運(yùn)行結(jié)果
在WinCC計(jì)算機(jī)屬性的啟動(dòng)列表中啟動(dòng)“變量記錄運(yùn)行系統(tǒng)”,并激活WinCC項(xiàng)目。
激活項(xiàng)目,效果如首圖
本文源程序 (軟件版本:WinCC V7.5 SP2)