1第五讲MCGS数据后处理及报表一、数据后处理MCGS中的数据后处理,其本质上是对历史数据库的处理,MCGS的存盘历史数据库是原始数据的基本集合,MCGS数据后处理就是对这些原始数据的数据操作(修改、删除、添加、查询等数据库操作),数据后处理的目的是要从这些原始数据中提炼出对用户真正有用的数据和信息并以数据报表的形式展示出来。在工程应用中,对采集的工程物理量存盘后,需要对数据库进行操作和对存盘的数据进行各种统计,以根据需要作出各种形式的报表。MCGS组态软件提供的存盘数据浏览构件,存盘数据提取构件和历史表格构件可以完成各种形式的数据报表,MCGS组态软件数据处理流程如下:如图所示,数据从采集设备输入,通过设备驱动进入实时数据库,MCGS组态软件提供对实时数据库的实时变量进行数据和曲线等多种显示方式,同时可通过数据存盘控制器随时对变量的存盘周期和方式进行修改,可对在硬盘上存好的数据进行多种处理。MCGS存盘数据浏览构件可以对存好的数据直接进行显示、打印、查询、修改、删除、添加记录和统计。MCGS存盘数据提取构件可以对存好的数据按照一定的时间间隔或不同的统计方式进行提取处理,可以把数据提取到MCGS实时数据库中的变量中,也可以根据一定的查询条件把相关的数据提取到其它的各种形式的数据库。用MCGS存盘数据提取构件配合MCGS历史表格可以完成工控项目中最常使用的各种形式的报表(如标准形式的日报表、月报表、年报表,不定记录项的报表,定要求查询报表等)。二、结合数据提取做复杂的报表我们通过实例来进行详细讲解,具体如下:1、新建一个窗口2在MCGS组态软件开发平台上,单击“用户窗口”进入,再单击“新建窗口”按钮,生成“窗口0”,选中“窗口0”,单击“窗口属性”按钮,弹出“用户窗口属性”设置,设置完毕按“确认”按钮,退出。如图:双击“数据提取”进入动画组态,最终效果如下图:2、模拟所需要的数据3在实时数据库中建立7个变量,分别为:“数据1”、“数据2”、“数据3”、“数据4”、“数据5”、“数据组”及“存数控制”。“数据1”、“数据2”、“数据3”、“数据4”、“数据5”为数值型变量,“存数控制”为开关型变量,“数据组”为组对象,其属性设置如下:在MCGS组态软件开发平台上,单击“运行策略”,再双击“循环策略”或选中“循环策略”,单击“策略组态”进入策略组态中。从工具条中单击“新增策略行”图标,新增加一个策略行。再从“策略工具箱”中选取“脚本程序”,拖到策略行上,单击鼠标左键,如图:双击图标,弹出“表达式条件”对话框,如图:4双击进入脚本程序编辑环境,按下面输入,进行模拟:数据1=数据1+1数据2=数据2+2数据3=数据3+3数据4=数据4+4数据5=数据5+5!SaveData(数据组)‘把数据组对象的值保存在硬盘上,如不明白请查在线帮助在MCGS组态软件开发平台上,单击“运行策略”进入策略组态,再单击右侧的“新建策略”按钮,弹出“选择策略类型”窗口,选中“用户策略”,会产生“策略1”,单击“策略属性”按钮,弹出“策略属性设置”窗口,如下图:双击“原始数据”进入策略组态,单击工具条中的“新增策略行”,从“工具箱”中选中“存盘数据浏览”拖放到策略行上,单击鼠标左键放好。双击,弹出“存盘数据浏览构件属性设置”对话框,如下图设置:基本属性在此属性页内设置窗口标题名称、打印属性、统计方式、打印方式等功能构件的基本的属性,如下图所示:5窗口显示标题:设置窗口显示的标题名,并且打印时本构件的默认标题名和窗口标题名相同。打印属性设置:设置打印的方向和自动后台打印方式。统计方式:有求和、最大值、最小值、平均值、样本方差与标准方差统计方式可供选择,用以实现对数据对象的数据处理。运行时允许修改数据:选中此项后,在MCGS运行环境中本构件才允许修改存盘数据,在组态环境中,对修改数据没有限制;打印时按页进行统计:选中此项后,打印时按统计方式对打印的每一页进行统计。数据来源本属性页用来设置本功能构件获取存盘数据的方式,用户可以选择三种方式来得到数据,如下图所示:6MCGS组对象对应的存盘数据表:使用MCGS的存盘数据对象中包含的数据作为显示和打印的数据。Access数据库文件:从用户指定的数据库的某个表中读取数据对象作为显示和打印的数据对象。ODBC数据库:通过ODBC数据接口从指定的表中获取数据对象作为显示和打印的数据对象。显示属性本属性页面内设置在运行环境中运行此功能构件时,功能构件的显示方式,包括表格和数据的显示格式,如下图所示:数据列:显示打开的数据库中指定数据表的字段域名称。表头:设置数据显示时表头的标题,系统默认于字段域名称相同。单位:设置数据列对应的单位,显示在表头上(只对数值型的字段域有效)。小数:设置数据列显示小数的位数(只对数值型的字段域有效)。时间显示格式:设置时间数据列的显示格式。功能按钮:此外,通过上移、下移、删除、复位等按钮,可以修改数据表格的显示方式。时间条件7通过设置本属性页的属性,可以得到指定的时间段内的数据,且可以指定这些数据的排序方式,如下图所示:排序列名:选择将要显示和打印的存盘数据的排序列名及排序方式(升序或降序);时间列名:如果选择的数据库含有时间列名(如:MCGS存盘数据库),按所选的时间列名和指定的时间范围提取数据显示。若要实现排序功能或按时间查询数据记录,则必须设置时间列名。天的分割时间点:在工程上,有时使用0:00作为一天的分界点并不一定合适,因此为了方便用户,我们可以设置固定时间段中跨越一天的分割时间点。如:0时0分,则每天从00:00:00到23:59:59;6时0分,则每天从06:00:00到第二天05:59:59。选择时间范围:选择“所有存盘数据”或指定的时间范围或按所连接的MCGS变量提供的时间范围。数值条件为了得到满足用户条件的用于显示和打印的数据段,可以使用本属性页内的属性指定从数据库或数据对象中选取数据的数值条件,数值条件是指对某字段满足某条件的的记录集合。如下图所示:8数据列名:来源于数据表中字段的列表,用于选择需要构成数值条件的字段。运算符号:设置数据表字段的操作比较方式,包括、=、=、、=、、Between。比较对象:构成字段比较的表达式,可以是常数,也可以是包括Mcgs数据对象和数学函数的表达式。如:油站1_温度+油站2_温度+10。按“增加”按钮,把设定的条件选择到列表框中。数值条件可以有多个逻辑运算语句构成,各个逻辑运算语句之间通过逻辑运算符号—And、Or以及括号连接在一起,构成数值条件。按“检查”按钮可以检查数值条件设置的正确性。按“删除”按钮,删除列表框中选定的一项。按“↑”、“↓”按钮,移动列表框中选定的项的位置。按“And”、“Or”、“[”、“]”按钮,在各逻辑语句之间增加连接关系。构成数值条件的完整表达式显示在属性页底部的一行上。在MCGS组态软件开发平台上,单击“用户窗口”,双击“数据提取”窗口,进入“动画组态”。从“工具箱”中选中1次“标签”,2次“标准按钮”,拖放到桌面按效果图放置。标签属性设置为:9“存数控制”按钮与“原始数据”按钮的属性设置如下图:3、按时间间隔提取数据我们分别按小时、天、月进行数据提取,就可以做成相应的天报表、月报表及年报表,按分钟进行数据提取,可以根据我们的需要做相应的报表。具体操作如下:存盘数据提取所谓数据提取,就是把历史数据库数据按照一定的时间条件和统计方式取出来,存到另外一个数据表中。在“运行策略”中新建四个用户策略,策略名称分别为:数据按分钟提取、数据按小时提取、数据按天提取、数据按月提取。依“数据按分钟提取”策略为例,进行相应的“存盘数据提取属性设置”。10双击“数据按分钟提取”进入策略组态,单击工具条中的“新增策略行”,从“工具箱”中选中“存盘数据提取”拖放到策略行上,单击鼠标左键放好。双击,弹出“存盘数据提取构件属性设置”对话框,如下图设置:数据来源如图所示,在数据来源属性中可以指定数据源,即数据从何处来。此构件可以指定从MCGS组对象对应的存盘数据表中提取,也可以从标准的Access数据库文件的指定表中提取。数据选择如图所示,数据选择用于指定需要处理的数据列成员,在左边的列表框中列出了所有可以处理的数据列,在右边的列表框中列出了所有已经指定需要处理的数据列,按添加按钮可以把左边的数据列加到右边,按删除按钮可以把右边已经指定的数据列删除,全加按钮可以把左边的数据列全部加到右边,全删按钮可以把右边的数据列全部删除。11数据输出如图所示,用于指定数据输出表和数据库,即存盘数据提取到何处。此构件可以把指定数据源的存盘数据提取到三种不同形式的数据库(数据表)中:提取到MCGS的存盘数据库中指定的数据表中,数据表名可以在组态时设定,也可以连接MCGS实时数据库的字符变量,在运行环境中任意修改。提取到用户指定的独立的Access数据库和指定的数据表中,数据库名和表名可以在组态时设定,也可以连接MCGS实时数据库的字符变量,在运行环境中任意修改。提取到用户指定的ODBC数据库和指定的数据表中,组态时,必须指定好数据库类型、数据名、数据表名、服务器名、用户名和用户密码,其中,数据名、数据表名、服务器名、用户名都可以连接变量,在运行环境中任意修改。时间条件如图所示,用于设置提取的时间范围(只对有时间类型的字段有效),时间列名用于选择查询的时间字段,月天的分割时间点,用于设置每天的起点,即每天的几点几分算作这一天的开始,此构件提供五种选择时间范围的方式。提取所有存盘数据,即把满足数值范围条件的所有数据按指定的提取方式提取到目标表中;12提取特殊时间段的数据,即把满足数值范围条件和指定时间段的存盘数据按指定的提取方式提取到目标表中,特殊时间包括当天、本月,本星期,前一天,前一月,前星期,使用特殊时间段配合相应的提取方式可以很方便的完成标准的日报表,月报表和年报表;提取最近一段时间的数据,即把满足数值范围条件和指定时间段的存盘数据按指定的提取方式提取到目标表中。提取固定时间段的数据,即把满足数值范围条件和指定时间段的存盘数据按指定的提取方式提取到目标表中。提取可变时间段的数据,即把满足数值范围条件和指定时间段的存盘数据按指定的提取方式提取到目标表中,在开始时间和结束时间中连接字符变量,操作员可以在运行环境中任意设定需要提取的时间范围。数值条件如图所示,用于设置提取数值查询条件,即把满足时间范围和数据范围的所有数据按照指定的提取方式提取到目标数据库中。字段名称用于选择需要比较的字段,运算符号用于指定比较方式,包括、=、=、、=、几种比较方式,比较对象用于设置比较值。And、or和Not按钮用于设置表达式之间的连接方式。删除按钮用于删除选定的表达式。13提取方式用于设置存盘数据提取的方式,包括设定与组对象成员相对应的目标表的字段名,存盘数据提取方法,提取到MCGS实时数据库对应的变量名,以及按数据的时间合格率方式提取时的合格标准的上限值和合格标准的下限值。来源数据表列中列出了在数据选择属性页中选定的所有组对象成员名。输出数据表列用于设置组对象成员对应到提取目标表中字段名,缺省为组对象的成员名,按来源数据表列中相应的表行(或拷贝按钮)可以把组对象成员名加到输出数据表列中,按上移、下移按钮可以改变相应字段在目标表中位置,按删除按钮可以删除选定表行。提取方法用于设置存盘数据提取的方法,存盘数据提取提供十一种对数据处理的方法,分别如下:求和,把指定时间段的所有记录求和并作为一个记录保存到目标数据表中。求最大值,把指定时间段的所有记录求最大值并作为一个记录保存到目标数据表中。求最小值,把指定时间段的所有记录求最小值并作为一个记录保存到目标数据表中。求平均值,把指定时间段的所有记录求平均值并作为一个记录保存到目标数据表中。14求累积值,把指定时间段的所有记录求累积量并作为一个记录保存到目标数据表中,累积量的算法如下,“求累计值”是对累计存盘数据进行处理,如流量计的存盘数据,其值在数据库的记录中是递增的数据,当流量计记录到其最大值