组态王历史数据查询之欧阳术创编.docx
《组态王历史数据查询之欧阳术创编.docx》由会员分享,可在线阅读,更多相关《组态王历史数据查询之欧阳术创编.docx(13页珍藏版)》请在冰豆网上搜索。
组态王历史数据查询之欧阳术创编
历史数据查询
1.
时间:
2021.02.02
创作:
欧阳术
2.功能概述
常规需求:
很多工业现场会存储数据并对存储的历史数据进行查询、打印输出。
历史数据查询一般为起始时间、结束时间、间隔时间都不固定,最终用户根据实际需要进行查询。
组态王中的实现方法:
利用组态王内置报表以及报表的函数来实现对历史数据的查询。
组态王内置报表的操作类似excel,操作简单、方便,并且组态王提供了大量的报表函数来实现各种复杂功能。
3.工程实例
我们举一个例子来说明实现方法。
在此例程中我们定义五个变量,分别为“压力”、“温度”、“密度”、“电流”、“电压”,运行系统运行后记录历史数据,下面就以此为例来演示完成这一要求的具体步骤。
4.操作步骤
4.1定义设备
根据工程中实际使用得设备进行定义,本例程使用亚控的仿真PLC设备,使用“PLC-亚控-仿真PLC-串口”驱动,定义设备名称为“PLC”。
4.2定义变量
在组态王中定义五个变量:
压力(IO实数类型)、温度(IO实数类型)、密度(IO实数类型)、电压(IO实数类型)、电流(IO实数类型)。
压力变量:
最小值0,最大值100,最小原始值0,最大原始值100,连接设备PLC,寄存器INCREA100,数据类型short,读写属性为只读,采集频率1000。
记录和安全区选择“数据变化记录”,变化灵敏度选择“0”。
温度变量:
最小值0,最大值50,最小原始值0,最大原始值100,连接设备PLC,寄存器DECREA100,数据类型short,读写属性为只读,采集频率1000。
记录和安全区选择“数据变化记录”,变化灵敏度选择“0”。
密度变量:
最小值0,最大值1,最小原始值0,最大原始值100,连接设备PLC,寄存器INCREA100,数据类型short,读写属性为只读,采集频率1000。
记录和安全区选择“数据变化记录”,变化灵敏度选择“0”。
电流变量:
最小值30,最大值50,最小原始值0,最大原始值100,初始值为30,连接设备PLC,寄存器DECREA100,数据类型short,读写属性为只读,采集频率1000。
记录和安全区选择“数据变化记录”,变化灵敏度选择“0”。
电压变量:
最小值180,最大值250,最小原始值0,最大原始值100,初始值220,连接设备PLC,寄存器DECREA100,数据类型short,读写属性为只读,采集频率1000。
记录和安全区选择“数据变化记录”,变化灵敏度选择“0”。
4.3制作画面
4.3.1创建报表
新建画面,画面名称“历史数据查询”。
在组态王工具箱按钮中,用鼠标左键单击“报表窗口”按钮,此时,鼠标箭头变为小“+”字形,在画面上需要加入报表的位置按下鼠标左键,并拖动,画出一个矩形,松开鼠标键,报表窗口创建成功,如图一所示。
图一报表
用鼠标双击报表窗口的灰色部分(表格单元格区域外没有单元格的部分),弹出“报表设计”对话框,如图二所示。
该对话框主要设置报表的名称、报表表格的行列数目以及选择套用表格的样式。
我们设置报表名称为“Report0”,行数、列数可以按照默认的不变。
图二报表设计
我们根据需要对报表的格式进行设置,如报表的表头,标题等。
我们选中单元格A1到E1,点击右键弹出快捷菜单,选择“合并单元格”,单元格合并后我们填写标题,如“历史数据查询”,点击右键在快捷菜单中选择“设置单元格格式”,设置字体、对齐方式、等。
如图三所示:
图三历史数据报表
4.3.2命令语言
制作按钮:
在组态王工具箱中我们选择按钮,此时鼠标光标变为“+”字形,按下鼠标左键并拖动,画出矩形按钮。
按钮的大小根据需要进行调整。
选中按钮,点击右键,弹出快捷菜单,选择“字符串替换”,如图四所示:
弹出“按钮属性”,将按钮文本的“文本”字符串改为“历史数据查询”。
如图五、图六所示。
点击“确定”完成对按钮文本的修改。
命令语言:
实现历史数据的查询我们需要使用组态王的报表函数来实现,报表函数为:
ReportSetHistData2(),此函数的介绍如下:
ReportSetHistData2(StartRow,StartCol);
参数说明:
StartRow:
查询的数据在报表中填充的起始行数。
StartCol:
查询的数据在报表中填充的起始列数。
此函数为报表专用函数。
查询历史数据,使用该函数,只要设置查询的数据在报表中填充的起始位置,即输入起始行数(StartRow)、列数(StartCol)。
系统会自动弹出历史数据查询对话框。
双击“历史数据查询”按钮,弹出按钮的“动画连接”,如下图七所示,点击“命令语言连接”的“弹起时”,编写脚本程序。
图四快捷菜单
图五按钮属性
图六按钮属性
图七动画连接
在命令语言编辑框中,我们选择“全部函数”,找到需要的ReportSetHistData2函数,如图八所示:
点击“确定”,函数的参数设置为StartRow:
2,StartCol:
1,脚本程序如下:
ReportSetHistData2(2,1);
参考图九所示:
点击“确认”完成按钮命令语言的编写。
图八选择函数
图九命令语言
按照上面的步骤实现报表的“打印”功能。
打印函数为:
ReportPrintSetup(szRptName);
语法格式使用如下:
ReportPrintSetup(szRptName);
参数说明:
szRptName:
要打印预览的报表名称
添加一个新的按钮,通过“字符串替换”将“文本”修改为“打印”,双击“打印”按钮,弹出“动画连接”,点击“命令语言连接”的“弹起时”,编写报表打印的脚本程序。
如图十所示:
脚本程序如下:
ReportPrintSetup("Report0");
图十打印报表
完成按钮命令语言的编写后,保存画面。
画面如下图十一所示:
图十一历史数据查询画面
4.4进入运行系统
画面开发完成后在工程浏览器的“系统设置”中的“设置运行系统”中对“配置主画面”选项卡进行主画面的配置,设置“历史数据查询”画面为主画面。
配置完成后点击工程浏览器的“View”按钮切换到运行系统。
系统运行后会将主画面打开,运行一段时间,记录一段时间的历史数据,然后我们点击“历史数据查询”按钮,弹出历史数据查询选择对话框,如图十二所示:
在报表属性设置中报表名称为我们定义的报表的名称,起始行、起始列为报表函数中设置的起始行、起始列。
排列属性、列属性等根据需要进行设置。
时间属性选项卡如图十三所示:
选择起始时间、终止时间、间隔时间。
变量属性选项卡如图十四所示:
选择要查询历史数据的变量。
设置完成后点击“确定”,弹出设置报表中变量顺序的对话框,如图十五所示,我们可以通过此项对变量的顺序进行调整,设置完成后点击“确定”,得到我们要求的历史数据,如图十六所示:
图十二报表属性
图十三时间属性
图十四变量属性
图十五变量顺序设置
图十六历史数据查询
点击“打印”按钮,可以对报表进行打印输出,并且可以进行报表的打印预览,如图十七所示:
可以对页面进行设置也可以直接打印输出。
图十七报表打印
5.注意事项
1)在此例程中所用到的函数请参考相关函数使用手册或者组态王软件帮助。
2)查询历史数据的前提是必须在运行过程中保存了历史数据,否则查询不到历史数据。
时间:
2021.02.02
创作:
欧阳术