一種基于紫金橋軟件中報警的特殊使用方法—對報警進行持續(xù)提示
紫金橋組態(tài)軟件系統(tǒng)自帶的報警功能的處理邏輯是一次達到報警條件后,如果現(xiàn)場測量值一直滿足當前的報警條件,那么只會提示最開始的第一條報警記錄。但是如果需要在發(fā)生報警后,當前現(xiàn)場測量值繼續(xù)滿足報警條件還要給出報警提示時,這樣就需要進行二次開發(fā),下面的示例就給出了一個針對這種需求的解決方法。
用戶具體需求是:當現(xiàn)場測量值滿足條件(這里假定是大于3.9或者小于3.5)觸發(fā)報警之后,立刻報警。下一條數(shù)據(jù)也滿足條件時也要觸發(fā)報警(不能不報)。具體是,如果收到的數(shù)據(jù)一直不在3.5~3.9的范圍內(nèi)且值不變化則60秒報一次警,如果收到的數(shù)據(jù)一直不在3.5~3.9的范圍內(nèi),且值是變化的同步產(chǎn)生報警。下面以偏差報警為例進行說明。
下圖是功能實現(xiàn)的流程圖:
具體實現(xiàn):
一、畫面圖元組態(tài)1、在工程目錄下新建了一個Access數(shù)據(jù)庫并新建了一個數(shù)據(jù)表ALM1如下圖:
2、在點組態(tài)里新建模擬點TEST、TEST1、TEST2和報表關(guān)系數(shù)據(jù)源點RP如下圖:
3、新建了中間變量RECY。(下文會交代它的作用)
4、組態(tài)報表關(guān)系源點連接字符串,具體就是點擊圖中連接字符串文本框后面的按鈕進行配置如下圖:
最終生成的字符串為:
“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=”+GetAppPath()+“SqlAlmDB.mdb;User Id=admin;Password=;”
5、在紫金橋開發(fā)環(huán)境里新建一個窗口Draw1、一個自由報表ALM、一個文本對象、一個按鈕如下圖:
6、關(guān)聯(lián)文本對象的動畫連接——TEST.PV的模擬輸入輸出,用于手動改變TEST.PV的值,模擬現(xiàn)場情況。
7、關(guān)聯(lián)按鈕的動畫連接鼠標腳本:#ALM.SaveExcel(“”,1,1);后邊要通過查看保存的Excel文件來驗證系統(tǒng)是否可以實現(xiàn)預期功能。
二、系統(tǒng)控制邏輯組態(tài)1、窗口腳本周期腳本組態(tài),這部分腳本主要是要實現(xiàn)系統(tǒng)流程圖中的從關(guān)系數(shù)據(jù)表讀入數(shù)據(jù)并顯示在報表控件上。如下圖:
2、在自由報表ALM/自由報表設置/關(guān)系庫連接設置里,組態(tài)了報表關(guān)系庫源點,如下圖:
3、在應答后觸發(fā)的腳本/SQL正確返回腳本中,實現(xiàn)判斷當前TEST.PV是否滿足偏差報警條件,如果滿足就把變量RECY置1否則置0,這里RECY是一個中間變量起到觸發(fā)向關(guān)系庫插入報警記錄的開關(guān)作用。腳本如下圖:
4、畫面/腳本/條件腳本組態(tài),這里我們新建了一個條件腳本InsertRecord如下圖,并進行腳本控制邏輯組態(tài)如下圖:
通過這個條件腳本實現(xiàn)了向關(guān)系庫插入報警記錄的邏輯。
三、運行工程,測試系統(tǒng)實際效果1、手動改變TEST.PV=9.7滿足偏差報警條件大于3.9或者小于3.5保持一段時間如下圖:
2、手動改變TEST.PV=3.6不滿足偏差報警條件(大于3.9或者小于3.5)
3、手動改變TEST.PV=1滿足偏差報警條件(大于3.9或者小于3.5)保持一段時間
4、點擊“導出”按鈕保存自由報表的內(nèi)容為excel格式文件。
5、打開Excel表格如下圖:
6、分析表格記錄
通過對表格的分析我們可以得出清晰的結(jié)論:
(1)如果當前現(xiàn)場測量值滿足報警條件且和前一個報警值不一致則也會產(chǎn)生報警,即插入關(guān)系數(shù)據(jù)表并在自由報表上顯示。如表格中的第一條記錄TEST.PV=0和第二條記錄TEST.PV=9.7。
(2)如果當前現(xiàn)場測量值滿足報警條件并且不變則系統(tǒng)會向關(guān)系數(shù)據(jù)表中60秒插一條記錄并顯示在自由報表控件上例如當TEST.PV=9.7時。即符合用戶關(guān)于“如果收到的數(shù)據(jù)一直不在3.5~3.9的范圍內(nèi)則60秒報一次警”的需求。
(3)如果當前報警值不符合報警條件就不會產(chǎn)生報警例如:令TEST.PV=3.6在導出的表格里沒有記錄。即系統(tǒng)只會記錄報警記錄。
(4)當現(xiàn)場測量值由正常值變成符合報警條件的值時,立刻就會產(chǎn)生一條報警例如:TEST.PV=3.6變成TEST.PV=1就會產(chǎn)生報警。Excel表格中第14條記錄就當
TEST.PV=3.6變成TEST.PV=1時產(chǎn)生的報警。
綜上,經(jīng)測試系統(tǒng)達到了用戶的需求并能正確穩(wěn)定運行。