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

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

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