一、引言
在項(xiàng)目中,經(jīng)常會(huì)用到增強(qiáng)報(bào)警組件來顯示報(bào)警信息,但是往往發(fā)生報(bào)警后或者在查看歷時(shí)報(bào)警時(shí),還想關(guān)注一下報(bào)警點(diǎn)的在報(bào)警時(shí)一段時(shí)間內(nèi)的數(shù)據(jù)變化走勢(shì),通常的做法為人為的記錄該報(bào)警點(diǎn)的位號(hào),并到趨勢(shì)畫面中進(jìn)行查詢,這樣操作起來比較麻煩,現(xiàn)在可以通過較為簡(jiǎn)單的方法來達(dá)到該目的。
二、功能實(shí)現(xiàn)
首先,創(chuàng)建兩個(gè)窗口,一個(gè)命名為“報(bào)警顯示”,在窗口屬性中將“打開其他窗口時(shí)自動(dòng)關(guān)閉”的勾去掉,在窗口中添加“增強(qiáng)型報(bào)警組件”,命名為_Alarm;另一個(gè)串口命名為“趨勢(shì)分析”,在窗口屬性中將窗口類型設(shè)置為“彈出式窗口”,在窗口中添加“趨勢(shì)分析”組件,命名為_Curview,定義一個(gè)整形的窗口變量nFlag。其次,創(chuàng)建一個(gè)間接變量“SendMessage”做數(shù)組用,用來在兩個(gè)窗口之間傳遞報(bào)警點(diǎn)的信息。
1.報(bào)警顯示窗口設(shè)置
在“報(bào)警顯示”窗口中,雙擊“增強(qiáng)型報(bào)警組件”,在彈出的“報(bào)警屬性”對(duì)話框中的“報(bào)警設(shè)置”標(biāo)題頁點(diǎn)擊“設(shè)置報(bào)表”按鈕,彈出“自由報(bào)表設(shè)置”對(duì)話框。

在“單元格觸發(fā)動(dòng)作設(shè)置”中選擇“左鍵雙擊”動(dòng)作,輸入如下腳本:
SendMessage.Clear();
SendMessage.Add(#_Alarm.GetAlrmTxt(2,$R));
SendMessage.Add(#_Alarm.GetAlrmTxt(7,$R)+" "+StrLeft(#_Alarm.GetAlrmTxt(7,$R),8));
Display("趨勢(shì)分析");
該段腳本的含義為將報(bào)警點(diǎn)的點(diǎn)名與報(bào)警時(shí)間加入到數(shù)組SendMessage中。
2.趨勢(shì)分析窗口設(shè)置
在“趨勢(shì)分析”窗口中,在窗口動(dòng)作“進(jìn)入窗口”中編寫如下腳本:
string _PenName;
string _PenEUHi;
string _PenEULo;
string _PenHi;
string _PenLo;
_PenName = SendMessage[0]+".PV";
_PenHi = SendMessage[0]+".HI";
_PenHi = SendMessage[0]+".LO";
#本地.RegTag(_PenName);
#本地.RegTag(_PenHi);
#本地.RegTag(_PenLo);
#_Curview.SetPen(0,_PenName);
#_Curview.SetPen(1,_PenHi);
#_Curview.SetPen(2,_PenLo);
nFlag = 1;
該短腳本中要注意數(shù)據(jù)庫函數(shù)RegTag()的使用,由于數(shù)組SendMessage傳遞來的是不帶參數(shù)的點(diǎn)位號(hào),所以要通過_PenName、_PenHi、_PenHi拼接成點(diǎn)名,但拼接成的點(diǎn)名數(shù)據(jù)庫并不承認(rèn),所以要用該函數(shù)注冊(cè)之后才可以使用。之后要向“趨勢(shì)分析”組件中添加三支畫筆,分別為實(shí)時(shí)值、報(bào)警上限、報(bào)警下線。其中,nFlag為標(biāo)志位,用于判斷曲線顯示的起始時(shí)間,在周期腳本中調(diào)用。
在“窗口運(yùn)行時(shí)中期執(zhí)行”中編寫如下腳本:
if #_Curview.GetTimeBegin(0) <> LongTime(SendMessage[1]) && #_Curview.GetPenDesc(0) <> "" && nFlag == 1 then
#_Curview.SetTimeBegin(0,LongTime(SendMessage[1]));
nFlag = 0;
endif
該短腳本的含義為將曲線的起始時(shí)間設(shè)置成報(bào)警點(diǎn)的報(bào)警時(shí)間。
這樣,在系統(tǒng)運(yùn)行時(shí),在“報(bào)警顯示”窗口雙擊某一條報(bào)警信息,則會(huì)彈出該報(bào)警點(diǎn)在觸發(fā)報(bào)警之后的一段時(shí)間內(nèi)的趨勢(shì)圖,方便用戶對(duì)該報(bào)警點(diǎn)的走勢(shì)進(jìn)行分析。

三、結(jié)束語
通過該方式可以實(shí)現(xiàn)報(bào)警信息與趨勢(shì)分析的快速切換,提供了工作效率同時(shí),也給廣大用戶帶來了方便。