Wonderware-InTouch历史报警、操作记录导出为Excel

Intouch自身的历史记录控件为AlmDbViewCtrl,可以查询历史报警和操作记录。我们需要在控件向导中拉出时间控件DTPicker,选择时间,关键字等,即可查询想要的结果,这些需要编写程序去实现。

显示时:
#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";

以上就是实现查询历史记录的代码,实现时间筛选、关键字查询,如下图操作所示:需要过滤器选择过滤内容。

若是想导出历史记录为EXCEL,导成自己想要的格式则非常麻烦,首先需要把历史记录读出,写脚本通过这个报警控件去读取会很慢,使用也较麻烦。

为了这个导出EXCEL的功能可以按照如下方法实施,实现了历史报警和操作记录的查询、筛选、排序,删除、导出。

 

 

通过控件嵌入INtouch画面的形式,与工程文件融为一体,只需要注册一下控件即可使用。

数据库配置如下:

服务器名:.

数据库名为:WWALMDB

登陆用户:sa

密码:123456

以下为历史报警/操作记录界面:可根据TgaName、报警组、值、HH/HI/LO/LL、类型、报警等级、操作员、节点名、报警注释等进行筛选查询,可查范围与AlmDbViewCtrl一样。

导出EXCEL,命名;可点击按钮实现每日定时导出历史报表。

根据自己喜好的格式版面保存为EXCEL:AlarmReport\EventReport,导出结果即为查询的结果。

与AlmDbViewCtrl比较起来操作更简单,不需要各种设置,任何项目实施只需要几分钟的时间,省去了编写简本程序的麻烦和困难。控件移植性强,极大提高调试进度。

若需要此控件可进入下面链接学习掌握。

Wonderware-InTouch历史报警、操作记录导出为Excel

Intouch-历史报警/操作记录导出为EXCEL

Intouch-报表的实际应用案例

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章