紫金橋?qū)崟r(shí)數(shù)據(jù)庫軟件里預(yù)置了一些組件,分別實(shí)現(xiàn)不同的特定功能,在工程組態(tài)的時(shí)候,恰當(dāng)利用這些組件來實(shí)現(xiàn)某些功能,會(huì)達(dá)到事半功倍的效果。
紫金橋?qū)崟r(shí)數(shù)據(jù)庫軟件里預(yù)置的歷史查詢組件,能夠按照需求查找一段時(shí)間內(nèi)的歷史數(shù)據(jù),然后通過報(bào)表顯示出來或者供其他使用。
本示例是通過歷史查詢組件支持的函數(shù),利用腳本對(duì)組件進(jìn)行操作,關(guān)于組件支持的具體函數(shù),可以去軟件幫助中查找,這里不詳述。
下面主要講解一下歷史查詢組件的具體使用。
功能是這樣的:首先,將要查詢歷史的位號(hào),添加到組件中,然后設(shè)定要查詢歷史的起始時(shí)間和結(jié)束時(shí)間,再設(shè)定要查詢的相鄰歷史數(shù)據(jù)之間的時(shí)間間隔,執(zhí)行查詢并把結(jié)果顯示到報(bào)表中,功能完成。
在窗口中添加歷史查詢組件,并將組件命名為His1,同時(shí)需要使用一個(gè)報(bào)表進(jìn)行配合使用,新建一個(gè)自由報(bào)表命名為Tab1,該報(bào)表用來顯示查詢的結(jié)果。
下圖是運(yùn)行后查詢數(shù)據(jù)的畫面:

下面就來說一下各部分的腳本,腳本一共3部分,分別是‘添加位號(hào)’、‘開始檢索’按鈕中的腳本,還有一部分是歷史查詢組件中的‘事件腳本’。
首先來看‘添加位號(hào)’按鈕中的腳本,如下圖:

因?yàn)楸纠惺褂玫狞c(diǎn)名是有規(guī)律的,所以使用一個(gè)循環(huán)腳本一次全添加到歷史查詢組件中,其中主要是使用了歷史查詢組件的函數(shù)AddTag(),讀者可以根據(jù)自己的實(shí)際情況使用該函數(shù)向組件中動(dòng)態(tài)的添加要查詢的點(diǎn)。
接下來是‘開始檢索’按鈕的腳本,如下圖:

這里主要就是歷史查詢組件執(zhí)行Start()函數(shù),開始?xì)v史檢索,但是由于函數(shù)參數(shù)需要,先計(jì)算出了指定時(shí)間范圍內(nèi)要查找的歷史數(shù)據(jù)個(gè)數(shù)以及相鄰歷史的時(shí)間間隔。
最后一部分腳本是歷史查詢組件里的‘事件腳本’,雙擊組件,在彈出窗口單機(jī)‘事件腳本’按鈕即進(jìn)入腳本編輯框,在‘檢索完成時(shí)’選項(xiàng)卡里面,就是組件檢索完成歷史數(shù)據(jù)后要執(zhí)行的腳本,如下圖:

此部分前兩段分別是根據(jù)查詢到的歷史數(shù)據(jù)個(gè)數(shù)以及數(shù)據(jù)點(diǎn)的個(gè)數(shù),來設(shè)置報(bào)表的行數(shù)和列數(shù),最后一段的循環(huán)語句是把查詢到的數(shù)據(jù)添加到報(bào)表中,第一層循環(huán)是按行添加,循環(huán)內(nèi)的第一行是利用歷史查詢組件的函數(shù)GetTimeText()取得該行歷史數(shù)據(jù)的時(shí)刻,第二層循環(huán)是按列添加,循環(huán)內(nèi)的第一行使用GetTagName()函數(shù)取得每列的點(diǎn)名,添加到報(bào)表的表頭,第二行使用GetCell()取得每列在該行的歷史數(shù)據(jù),然后添加到報(bào)表中。
以上就是本例中歷史查詢組件通過函數(shù)的使用,適合需要查詢的位號(hào)較多并且位號(hào)名有一定規(guī)律的情況,如果需要查詢的位號(hào)較少,可以直接在歷史查詢組件的組態(tài)界面直接添加,然后直接執(zhí)行Start()函數(shù)即可。
另外,本例中為了方便觀察,設(shè)置了歷史查詢組件運(yùn)行可見,實(shí)際上該組件默認(rèn)在運(yùn)行狀態(tài)是不顯示的,也沒有必要顯示,這一點(diǎn)可以在組件的組態(tài)界面中勾選或者取消‘運(yùn)行時(shí)可見’即可。
讀者如果有些函數(shù)不十分清楚,可以查看紫金橋?qū)崟r(shí)數(shù)據(jù)庫的幫助文件。以后我們還會(huì)陸續(xù)推出其他組件的示例說明。
|