|
zijinqiaoshishishujukuruanjianliyuzhileyixiezujian,fenbieshixianbutongdetedinggongneng,zaigongchengzutaideshihou,qiadangliyongzhexiezujianlaishixianmouxiegongneng,huidadaoshibangongbeidexiaoguo。
紫(zi)金(jin)橋(qiao)實(shi)時(shi)數(shu)據(ju)庫(ku)軟(ruan)件(jian)裏(li)預(yu)置(zhi)的(de)報(bao)警(jing)時(shi)間(jian)統(tong)計(ji)組(zu)件(jian),能(neng)夠(gou)按(an)照(zhao)需(xu)求(qiu)統(tong)計(ji)某(mou)些(xie)數(shu)據(ju)在(zai)某(mou)個(ge)時(shi)間(jian)段(duan)內(nei)的(de)報(bao)警(jing)時(shi)間(jian),從(cong)而(er)計(ji)算(suan)出(chu)數(shu)據(ju)點(dian)在(zai)該(gai)時(shi)間(jian)段(duan)內(nei)正(zheng)常(chang)運(yun)行(xing)的(de)合(he)格(ge)率(lv)。
benanlishimoushengchanxinxixitongzhongshiyongbaojingshijiantongjizujiandebufen,shiyonglezujiansuozhichidebufenhanshu,tongguojiaobenduizujianjinxingcaozuo,zhiyuzujiandezutaishezhi,keyiquruanjianbangzhuzhongzhazhao,zhelibuxiangshu。
下麵主要講解一下報警時間統計組件在本例中的使用。
功能實現過程是這樣的:首shou先xian,將jiang要yao統tong計ji報bao警jing時shi間jian的de位wei號hao,添tian加jia到dao組zu件jian中zhong,然ran後hou按an照zhao要yao求qiu的de統tong計ji周zhou期qi以yi及ji時shi間jian範fan圍wei進jin行xing統tong計ji,統tong計ji完wan成cheng後hou,將jiang統tong計ji結jie果guo取qu出chu做zuo其qi他ta計ji算suan,組zu件jian的de功gong能neng完wan成cheng。
在窗口中建立報警統計組件,並將組件命名為Alarm1,同時需要使用一個報表進行配合使用,新建一個自由報表命名為Fr1,該報表是用來存放位號名稱以及上下限值,可以手動進行維護。案例中的Fr1表內的數據都是從SQL Server數據庫讀取的。
在使用報警統計組件之前,要先保證報表Fr1裏有需要的內容,例如下圖,其中報警統計組件要使用的分別是‘位號、下限、上限’這三列。

下麵就來說一下報警統計組件的使用,我們先看下麵的腳本截圖,

我們來看框體中的腳本:
1、紅框部分,第一行是清空報警時間統計組件,如果不清空的話,下一次添加到組件中的位號會與之前的共存。接下來是循環語句,#Alarm1.AddTag這行是將報表Fr1的第1列第i行的位號添加到組件中,並且自指定報警上下限值分別是第3列和第4列的第i行xing數shu值zhi,為wei了le使shi報bao警jing組zu件jian中zhong自zi指zhi定ding的de位wei號hao上shang下xia限xian值zhi在zai組zu件jian執zhi行xing時shi有you效xiao,需xu要yao修xiu改gai位wei號hao的de量liang程cheng上shang下xia限xian值zhi分fen別bie大da於yu報bao警jing上shang下xia限xian值zhi,所suo以yi就jiu有you了le#Alarm1.AddTag函數上麵的兩行腳本。紅框中最後一行是為了使位號量程上下限值設置生效,這裏不詳述。
2、藍框部分,在上麵紅框部分的腳本中,將位號全部添加到報警時間組件以後,接下來就是組件使用函數#Alarm1.Start開始執行統計,,函數的各個參數的意義請參考幫助文件,這裏86400是(shi)一(yi)天(tian)內(nei)的(de)秒(miao)數(shu),即(ji)本(ben)次(ci)統(tong)計(ji)的(de)是(shi)一(yi)天(tian)內(nei)的(de)數(shu)據(ju)。第(di)二(er)行(xing)是(shi)起(qi)始(shi)時(shi)間(jian)的(de)設(she)定(ding),即(ji)下(xia)一(yi)次(ci)統(tong)計(ji)的(de)起(qi)始(shi)時(shi)間(jian),在(zai)本(ben)例(li)中(zhong)也(ye)就(jiu)是(shi)下(xia)一(yi)天(tian)的(de)統(tong)計(ji)開(kai)始(shi)時(shi)間(jian)。
3、綠框部分,取出統計完成的數據,供我們使用。循環內第一行裏#Alarm1.GetCellHi是取出高限報警的時間,#Alarm1.GetCellLow是取出低限報警的時間。整行的功能是將高限報警時間和低限報警時間相加,除以全天的時間,就是位號在該日內的不合格率,再用1減去不合格率,便得到合格率的數值,然後賦值給Bind_TagValue(中間變量,綁定表使用),後麵的一行是將數據插入到SQL Server數據庫中。
彩色框外麵的腳本隻是在本案例中用來判斷腳本的執行時間,讀者可以借鑒使用,也可以完全忽視。
以(yi)上(shang)就(jiu)是(shi)本(ben)案(an)例(li)中(zhong)報(bao)警(jing)時(shi)間(jian)統(tong)計(ji)組(zu)件(jian)通(tong)過(guo)函(han)數(shu)的(de)動(dong)態(tai)使(shi)用(yong),比(bi)較(jiao)適(shi)合(he)需(xu)要(yao)統(tong)計(ji)的(de)位(wei)號(hao)較(jiao)多(duo)的(de)情(qing)況(kuang),如(ru)果(guo)需(xu)要(yao)統(tong)計(ji)的(de)位(wei)號(hao)較(jiao)少(shao),可(ke)以(yi)直(zhi)接(jie)在(zai)報(bao)警(jing)時(shi)間(jian)統(tong)計(ji)組(zu)件(jian)的(de)設(she)置(zhi)界(jie)麵(mian)進(jin)行(xing)組(zu)態(tai),然(ran)後(hou)直(zhi)接(jie)執(zhi)行(xing)Start函數即可。
讀者如果有些函數不十分清楚,可以查看紫金橋實時數據庫的幫助文件。以後我們還會陸續推出其他組件的示例說明。
更多資訊,請登陸:www.realsoft.cc
|