紫金橋?qū)崟r(shí)數(shù)據(jù)庫(kù)軟件里預(yù)置了一些組件,分別實(shí)現(xiàn)不同的特定功能,在工程組態(tài)的時(shí)候,恰當(dāng)利用這些組件來(lái)實(shí)現(xiàn)某些功能,會(huì)達(dá)到事半功倍的效果。
紫金橋?qū)崟r(shí)數(shù)據(jù)庫(kù)軟件里預(yù)置的報(bào)警時(shí)間統(tǒng)計(jì)組件,能夠按照需求統(tǒng)計(jì)某些數(shù)據(jù)在某個(gè)時(shí)間段內(nèi)的報(bào)警時(shí)間,從而計(jì)算出數(shù)據(jù)點(diǎn)在該時(shí)間段內(nèi)正常運(yùn)行的合格率。
本案例是某生產(chǎn)信息系統(tǒng)中使用報(bào)警時(shí)間統(tǒng)計(jì)組件的部分,使用了組件所支持的部分函數(shù),通過(guò)腳本對(duì)組件進(jìn)行操作,至于組件的組態(tài)設(shè)置,可以去軟件幫助中查找,這里不詳述。
下面主要講解一下報(bào)警時(shí)間統(tǒng)計(jì)組件在本例中的使用。
功能實(shí)現(xiàn)過(guò)程是這樣的:首先,將要統(tǒng)計(jì)報(bào)警時(shí)間的位號(hào),添加到組件中,然后按照要求的統(tǒng)計(jì)周期以及時(shí)間范圍進(jìn)行統(tǒng)計(jì),統(tǒng)計(jì)完成后,將統(tǒng)計(jì)結(jié)果取出做其他計(jì)算,組件的功能完成。
在窗口中建立報(bào)警統(tǒng)計(jì)組件,并將組件命名為Alarm1,同時(shí)需要使用一個(gè)報(bào)表進(jìn)行配合使用,新建一個(gè)自由報(bào)表命名為Fr1,該報(bào)表是用來(lái)存放位號(hào)名稱(chēng)以及上下限值,可以手動(dòng)進(jìn)行維護(hù)。案例中的Fr1表內(nèi)的數(shù)據(jù)都是從SQL Server數(shù)據(jù)庫(kù)讀取的。
在使用報(bào)警統(tǒng)計(jì)組件之前,要先保證報(bào)表Fr1里有需要的內(nèi)容,例如下圖,其中報(bào)警統(tǒng)計(jì)組件要使用的分別是‘位號(hào)、下限、上限’這三列。

下面就來(lái)說(shuō)一下報(bào)警統(tǒng)計(jì)組件的使用,我們先看下面的腳本截圖,

我們來(lái)看框體中的腳本:
1、紅框部分,第一行是清空?qǐng)?bào)警時(shí)間統(tǒng)計(jì)組件,如果不清空的話(huà),下一次添加到組件中的位號(hào)會(huì)與之前的共存。接下來(lái)是循環(huán)語(yǔ)句,#Alarm1.AddTag這行是將報(bào)表Fr1的第1列第i行的位號(hào)添加到組件中,并且自指定報(bào)警上下限值分別是第3列和第4列的第i行數(shù)值,為了使報(bào)警組件中自指定的位號(hào)上下限值在組件執(zhí)行時(shí)有效,需要修改位號(hào)的量程上下限值分別大于報(bào)警上下限值,所以就有了#Alarm1.AddTag函數(shù)上面的兩行腳本。紅框中最后一行是為了使位號(hào)量程上下限值設(shè)置生效,這里不詳述。
2、藍(lán)框部分,在上面紅框部分的腳本中,將位號(hào)全部添加到報(bào)警時(shí)間組件以后,接下來(lái)就是組件使用函數(shù)#Alarm1.Start開(kāi)始執(zhí)行統(tǒng)計(jì),,函數(shù)的各個(gè)參數(shù)的意義請(qǐng)參考幫助文件,這里86400是一天內(nèi)的秒數(shù),即本次統(tǒng)計(jì)的是一天內(nèi)的數(shù)據(jù)。第二行是起始時(shí)間的設(shè)定,即下一次統(tǒng)計(jì)的起始時(shí)間,在本例中也就是下一天的統(tǒng)計(jì)開(kāi)始時(shí)間。
3、綠框部分,取出統(tǒng)計(jì)完成的數(shù)據(jù),供我們使用。循環(huán)內(nèi)第一行里#Alarm1.GetCellHi是取出高限報(bào)警的時(shí)間,#Alarm1.GetCellLow是取出低限報(bào)警的時(shí)間。整行的功能是將高限報(bào)警時(shí)間和低限報(bào)警時(shí)間相加,除以全天的時(shí)間,就是位號(hào)在該日內(nèi)的不合格率,再用1減去不合格率,便得到合格率的數(shù)值,然后賦值給Bind_TagValue(中間變量,綁定表使用),后面的一行是將數(shù)據(jù)插入到SQL Server數(shù)據(jù)庫(kù)中。
彩色框外面的腳本只是在本案例中用來(lái)判斷腳本的執(zhí)行時(shí)間,讀者可以借鑒使用,也可以完全忽視。
以上就是本案例中報(bào)警時(shí)間統(tǒng)計(jì)組件通過(guò)函數(shù)的動(dòng)態(tài)使用,比較適合需要統(tǒng)計(jì)的位號(hào)較多的情況,如果需要統(tǒng)計(jì)的位號(hào)較少,可以直接在報(bào)警時(shí)間統(tǒng)計(jì)組件的設(shè)置界面進(jìn)行組態(tài),然后直接執(zhí)行Start函數(shù)即可。
讀者如果有些函數(shù)不十分清楚,可以查看紫金橋?qū)崟r(shí)數(shù)據(jù)庫(kù)的幫助文件。以后我們還會(huì)陸續(xù)推出其他組件的示例說(shuō)明。
更多資訊,請(qǐng)登陸:www.realsoft.cc
|