天天看點

Wonderware-InTouch曆史報警、操作記錄導出為Excel

Intouch自身的曆史記錄控件為AlmDbViewCtrl,可以查詢曆史報警和操作記錄。我們需要在控件向導中拉出時間控件DTPicker,選擇時間,關鍵字等,即可查詢想要的結果,這些需要編寫程式去實作。

Wonderware-InTouch曆史報警、操作記錄導出為Excel
顯示時:
#DTPicker9.value = $DateString;
#DTPicker10.value = "00:00:00";
#DTPicker11.value = $DateString;
#DTPicker12.value = "23:59:59";
#AlmDbViewCtrl2.SpecificTime = 1;
#AlmDbViewCtrl2.StartTime = StringMid(#DTPicker9.value,6,2) + "/" + StringMid(#DTPicker9.value,9,2) + "/" + StringMid(#DTPicker9.value,1,4) + " " + #DTPicker10.value;
#AlmDbViewCtrl2.EndTime = StringMid(#DTPicker11.value,6,2) + "/" + StringMid(#DTPicker11.value,9,2) + "/" + StringMid(#DTPicker11.value,1,4) + " " + #DTPicker12.value;
#AlmDbViewCtrl2.Refresh();
           
查詢:
#AlmDbViewCtrl2.SpecificTime = 1;
#AlmDbViewCtrl2.StartTime = StringMid(#DTPicker9.value,6,2) + "/" + StringMid(#DTPicker9.value,9,2) + "/" + StringMid(#DTPicker9.value,1,4) + " " + #DTPicker10.value;
#AlmDbViewCtrl2.EndTime = StringMid(#DTPicker11.value,6,2) + "/" + StringMid(#DTPicker11.value,9,2) + "/" + StringMid(#DTPicker11.value,1,4) + " " + #DTPicker12.value;
#AlmDbViewCtrl2.GroupName = "$SYSTEM";
IF CONDITION <> "" THEN
CALL ALMFILTERSEARCH(CONDITION);
#AlmDbViewCtrl2.ShowFilter();
ELSE
#AlmDbViewCtrl2.Refresh();
ENDIF;
           
QuickFunction:ALMFILTERSEARCH
FileDelete("D:\Intouch Files\FlexUI_LX2\ALARM.xml");
FileWriteMessage( "D:\Intouch Files\FlexUI_LX2\ALARM.xml",0,HIST_XMLCODE + "<FILTER_FAVORITES><RECORD><FILTERNAME>MYFILTER</FILTERNAME><ELEMENT>", 0 );
IF HIST_SEARCHINDEX == 1 THEN
    FileWriteMessage( "D:\Intouch Files\FlexUI_LX2\ALARM.xml",-1, "<NAME>名稱</NAME><ORIGNAME>Name</ORIGNAME><OPERATOR>LIKE</OPERATOR><VALUE>%"+STR+"%</VALUE><PARENT>0</PARENT>", 0);
ELSE 
    FileWriteMessage( "D:\Intouch Files\FlexUI_LX2\ALARM.xml",-1, "<NAME>報警注釋</NAME><ORIGNAME>Alarm Comment</ORIGNAME><OPERATOR>LIKE</OPERATOR><VALUE>%"+STR+"%</VALUE><PARENT>0</PARENT>", 0);  
ENDIF;
FileWriteMessage( "D:\Intouch Files\FlexUI_LX2\ALARM.xml", -1, "</ELEMENT></RECORD></FILTER_FAVORITES>", 0 );
#AlmDbViewCtrl2.FilterFavoritesFile = "D:\Intouch Files\FlexUI_LX2\ALARM.xml";
           

以上就是實作查詢曆史記錄的代碼,實作時間篩選、關鍵字查詢,如下圖操作所示:需要過濾器選擇過濾内容。

Wonderware-InTouch曆史報警、操作記錄導出為Excel

若是想導出曆史記錄為EXCEL,導成自己想要的格式則非常麻煩,首先需要把曆史記錄讀出,寫腳本通過這個報警控件去讀取會很慢,使用也較麻煩。

為了這個導出EXCEL的功能可以按照如下方法實施,實作了曆史報警和操作記錄的查詢、篩選、排序,删除、導出。

Wonderware-InTouch曆史報警、操作記錄導出為Excel
Wonderware-InTouch曆史報警、操作記錄導出為Excel

通過控件嵌入INtouch畫面的形式,與工程檔案融為一體,隻需要注冊一下控件即可使用。

資料庫配置如下:

伺服器名:.

資料庫名為:WWALMDB

登陸使用者:sa

密碼:123456

以下為曆史報警/操作記錄界面:可根據TgaName、報警組、值、HH/HI/LO/LL、類型、報警等級、操作員、節點名、報警注釋等進行篩選查詢,可查範圍與AlmDbViewCtrl一樣。

Wonderware-InTouch曆史報警、操作記錄導出為Excel
Wonderware-InTouch曆史報警、操作記錄導出為Excel

導出EXCEL,命名;可點選按鈕實作每日定時導出曆史報表。

Wonderware-InTouch曆史報警、操作記錄導出為Excel

根據自己喜好的格式版面儲存為EXCEL:AlarmReport\EventReport,導出結果即為查詢的結果。

Wonderware-InTouch曆史報警、操作記錄導出為Excel
Wonderware-InTouch曆史報警、操作記錄導出為Excel

與AlmDbViewCtrl比較起來操作更簡單,不需要各種設定,任何項目實施隻需要幾分鐘的時間,省去了編寫簡本程式的麻煩和困難。控件移植性強,極大提高調試進度。

若需要此控件可進入下面連結學習掌握。

Wonderware-InTouch曆史報警、操作記錄導出為Excel

Intouch-曆史報警/操作記錄導出為EXCEL

Intouch-報表的實際應用案例

繼續閱讀