引言:
在工业控制中,常常要从某些重要数据的历史中发现问题和分析问题,保存历史数据就显得十分重要。紫金桥实时数据库支持历史数据的快速保存和检索,它按照一定的条件把数据保存到历史库中,用户需要时可随时从历史数据库中访问历史数据。本篇文章主要介绍在历史数据检索中经常会用到的历史查询组件的应用。希望对读者有所帮助。
功能需求:
通过指定起始时间、时间范围和采样时间间隔进行历史数据的检索,并可将查询结果显示在报表中,然后可以导出到.txt或.csv文件中。
例:假定开始时间2012-05-24,8:00:00,时间范围为4小时,数据间隔120秒。点击“查询”按钮,则报表当中显示从5月24日8:00:00开始,4个小时,数据间隔为120秒的数据显示在报表中。
整体思路:
1. 利用历史查询组件按照指定的起始时间、时间范围和个数将历史数据检索到组件内,检索数据主要用到Start函数;
2. 然后利用报表和此组件支持的函数,将数据从历史查询组件中转移到报表中灵活的加以显示;
3. 最后利用报表的SaveAsEx函数将数据导出到.csv或.txt文件中。
历史检索的整体界面
具体步骤:
新建历史数据查询组件,
双击进入属性设置界面
1) 选择数据源,在下拉框中选择要访问的数据源。
2) 小数位数:输入要显示的小数位数。
3) 数据类型:可以是时间间隔内(由Start函数指定)的瞬时值或平均值。
4) 增加:在位号输入框:输入位号,或通过位号选择按钮选取位号。
单击“增加”按钮,将位号加入到左面位号列表。
5) 删除:单击“删除”按钮,将位号从左面位号列表中删除。
6) 修改:在左面位号列表中选择好要修改的位号,在位号输入框中输入修改内容,单击“修改”按钮。
7) 运行时可见:选中该复选框,运行时将显示历史数据(这样可以调试),一般情况下,不用选择该复选框。
新建控制条,包括【起始时间】、【时间范围】、【采样间隔】、【查询】和【数据导出】
在【查询】按钮的单击脚本中
int nCount = #RangeTm.Time/IntervalTm;
#History.Start(#StartTm.Time,IntervalTm,nCount);
调用start函数进行历史数据的检索。
在【数据导出】按钮中进行数据的导出操作
#sj.SaveAsEx("",1);
将历史查询组件中的数据显示在报表中的脚本位于历史查询组件的脚本【检索完成时】中
小结:
本文主要介绍如何利用历史查询组件进行历史数据的查询和检索,并实现了历史数据的导出功能,虽然简单,但在比较常用。希望对读者有所帮助。