Wonderware-InTouch历史报警、操作记录导出为Excel
Intouch自身的歷史記錄控件為AlmDbViewCtrl,可以查詢歷史報(bào)警和操作記錄。我們需要在控件向?qū)е欣鰰r(shí)間控件DTPicker,選擇時(shí)間,關(guān)鍵字等,即可查詢想要的結(jié)果,這些需要編寫(xiě)程序去實(shí)現(xiàn)。
顯示時(shí): #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 THENFileWriteMessage( "D:\Intouch Files\FlexUI_LX2\ALARM.xml",-1, "<NAME>名稱(chēng)</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>報(bào)警注釋</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";以上就是實(shí)現(xiàn)查詢歷史記錄的代碼,實(shí)現(xiàn)時(shí)間篩選、關(guān)鍵字查詢,如下圖操作所示:需要過(guò)濾器選擇過(guò)濾內(nèi)容。
若是想導(dǎo)出歷史記錄為EXCEL,導(dǎo)成自己想要的格式則非常麻煩,首先需要把歷史記錄讀出,寫(xiě)腳本通過(guò)這個(gè)報(bào)警控件去讀取會(huì)很慢,使用也較麻煩。
為了這個(gè)導(dǎo)出EXCEL的功能可以按照如下方法實(shí)施,實(shí)現(xiàn)了歷史報(bào)警和操作記錄的查詢、篩選、排序,刪除、導(dǎo)出。
?
?
通過(guò)控件嵌入INtouch畫(huà)面的形式,與工程文件融為一體,只需要注冊(cè)一下控件即可使用。
數(shù)據(jù)庫(kù)配置如下:
服務(wù)器名:.
數(shù)據(jù)庫(kù)名為:WWALMDB
登陸用戶:sa
密碼:123456
以下為歷史報(bào)警/操作記錄界面:可根據(jù)TgaName、報(bào)警組、值、HH/HI/LO/LL、類(lèi)型、報(bào)警等級(jí)、操作員、節(jié)點(diǎn)名、報(bào)警注釋等進(jìn)行篩選查詢,可查范圍與AlmDbViewCtrl一樣。
導(dǎo)出EXCEL,命名;可點(diǎn)擊按鈕實(shí)現(xiàn)每日定時(shí)導(dǎo)出歷史報(bào)表。
根據(jù)自己喜好的格式版面保存為EXCEL:AlarmReport\EventReport,導(dǎo)出結(jié)果即為查詢的結(jié)果。
與AlmDbViewCtrl比較起來(lái)操作更簡(jiǎn)單,不需要各種設(shè)置,任何項(xiàng)目實(shí)施只需要幾分鐘的時(shí)間,省去了編寫(xiě)簡(jiǎn)本程序的麻煩和困難。控件移植性強(qiáng),極大提高調(diào)試進(jìn)度。
若需要此控件可進(jìn)入下面鏈接學(xué)習(xí)掌握。
Wonderware-InTouch歷史報(bào)警、操作記錄導(dǎo)出為Excel
Intouch-歷史報(bào)警/操作記錄導(dǎo)出為EXCEL
Intouch-報(bào)表的實(shí)際應(yīng)用案例
?
?
?
總結(jié)
以上是生活随笔為你收集整理的Wonderware-InTouch历史报警、操作记录导出为Excel的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Java源码阅读--任重而道远(lang
- 下一篇: 小李子