我们在前面的课程介绍过昆仑通态历史曲线的设计,今天来分享一下历史数据报表的制作过程。
历史数据报表对于现场数据是非常重要的,我们可以通过查询数据报表分析数据趋势,最重要的是可以进行数据的溯源。
今天我们介绍的功能有,实时查看当前数据,通过时间筛选数据,报表导出功能。
01、定义需要采集的变量
首先,我们连接PLC内部变量,这个属于基础操作,我们就不做解释。
这里我用的触摸屏内部的脚本写的为随机数生成的,大家可以参考一下写法,直接关联PLC变量可以跳到第5个步骤。
1,我们这次在数据库建立四个整数变量,这里我给他命名为Data1,Data2,Data3,Data4。
再建立两个字符串变量Time1,Time2。赋初始值
2001-01-01 03:15:28---注意这个是查询报表的时间格式。
2,打开运行策略,点击新建策略-建立一个循环策略
3,点击策略属性,修改循环时间,我们这里改成500ms
4,点击脚本程序,我们使用!Rand(0,100 )函数,这里表示随机数将在0-100范围内产生。
输入以下脚本,点击保存,这样,我们模拟的数值就建立好了。
代码语言:javascript复制Data1.Value=!Rand(0,100 )
Data2.Value=!Rand(0,100 )
Data3.Value=!Rand(0,100 )
Data4.Value=!Rand(0,100 )
5,在实时数据库中建立一个数据分组,我们命名为历史记录。
6,点击组对象成员,选择数据对象列表,点击添加。
我们把需要记录的数据,也就是Data1-Data2添加到组对象成员列表。
7,点击存盘属性,我们选择永久存储,存储周期改成1S一次。至此,历史数据会自动储存到触摸屏,接下来,就是把他做进报表中了。
02、实时曲线设计
1,进入主画面,选择报表控件,绘制一个表格。
2,双击表格,输入文字。添加时间,数据1,数据2,数据3,数据4列。
3,双击表头,右键可以删除不需要的列,最后效果如下。
4,选择所有空白单元格,点击添加数据连接,选择历史数据。
5,点击条件显示属性,选择组对象名称-历史数据,点击复位,将会自动填充数据列表,你也可以自行选择数据列。
6,时间条件-选择根据变量设置的时间范围处理存盘数据。
开始和结束时间我们选择前面建立的两个字符串变量。
7,如图我们再建立两个输入控件,一个按钮控件
输入控件1,关联Time1。
输入控件2,关联Time2。
按钮控件,命名为查询,添加按下脚本,脚本代码为
窗口0.控件1.Refresh( )
8,最后,我们把日期列数据单元格格式改成日期时间:
03、效果展示
1,输入时间可以查询数据,效果如下
补充:
使用下面两个函数,可以导出报表:
ExportPdfFile(strPdfFileName, bVector)
函数意义:导出PDF文件
参数1:字符串,文件名 参数2:整数,导出方式,0为矢量,1为图片
实 例: 脚本方法.控件1.ExportPdfFile(“PDF文件”, 0)
ExportToCSVFile(beginRow,endRow,beginCol,endCol, strCSVFileName)
函数意义:导出CSV文件
参 数:
参数1,浮点数,起始行 参数2,浮点数,结束行 参数3,浮点数,起始列 参数4,浮点数,结束列参数5,字符串,文件名
实例: 脚本方法.控件1.ExportToCSVFile(0,0,0,0, “CSV文件”)
本文内容仅供参考,如有错误,望请批评指正。如有不清楚的地方,欢迎各位留言讨论!