组态王报表(课件)
组态王报表演示说明

报表演示说明1、本演示分为日报、月报、年报2、日报的生成:对于日报可以每小时输入一个数据,然后进行统计后每天生成一个报表日报生成的命令语言见事件命令语言的条件为:$分==0 && $秒==0,消失时注意:a、报表函数命令执行时报表控件所在的画面必须打开,因此对于画面不多的情况下可以在工程运行时将后台处理画面打开并隐含起来,同时所有其它的画面属性都应为覆盖式。
如果画面较多无法全部将画面属性设为覆盖式则可以在报表命令语言执行前执行打开画面的命令b、在新的一天开始时需要使用新的报表文件,因此需要在调用前需要判断当天的报表文件是否已经创建,如果没有创建则需要进行创建c、对于日报的统计主要针对每天持续运行的情况,对于不能保证持续运行的现场可以参照月报的统计方式b、报表的查询在日报查询页,可以对报表文件进行读取、删除等操作{string ()+"日报\"+ StrFromReal( \\本站点\$年, 0,"f" )+"y"+StrFromReal(\\本站点\$月, 0, "f" )+"m"+StrFromReal(\\本站点\$日, 0, "f" )+".rtl";//自定义变量long return01=InfoFile( , 1, \\本站点\$分 );//判断日报目录下是否已经有当天的报表文件了if (return01==0){string ()+"报表\日报.rtl";ReportLoad("Report5",);()+"日报\"+StrFromReal( \\本站点\$年, 0, "f" )+"y"+StrFromReal( $月, 0, "f" )+"m"+StrFromReal( $日, 0, "f" )+".rtl";ReportSaveAs("Report5",);}//如果没有报表文件则从报表目录下调取模板创建报表文件ReportLoad("Report5",);ReportSetCellString("report5", 3,10, \\本站点\$日期);long hang=\\本站点\$时+6;string timestr=time(\\本站点\$时,0,0);ReportSetCellString("report5", hang,1, timestr);ReportSetCellValue("report5", hang,2,\\本站点\颗粒物); ReportSetCellValue("report5", hang,3,\\本站点\颗粒物折算); ReportSetCellValue("report5", hang,4, \\本站点\SO2); ReportSetCellValue("report5", hang,5, \\本站点\SO2折算); ReportSetCellValue("report5", hang,6, \\本站点\NO2);ReportSetCellValue("report5", hang,7, \\本站点\NO2折算); ReportSetCellValue("report5", hang,8, \\本站点\流量); ReportSetCellValue("report5", hang,9, \\本站点\O2); ReportSetCellValue("report5", hang,10, \\本站点\温度); ReportSetCellValue("report5", hang,11, \\本站点\水分); ReportSaveAs("Report5",);}3、月报的生成月报中需要每天的统计数据,该数据为每天的平均值,如果需要其它的统计数据也可照此方法进行处理。
项目一组态王使用入门PPT课件

CHENLI
7
上一页 下一页 返回
任务一 组态王软件的安装及组态王程 序组构成
• 2.组态王程序组
• 安装完“组态王”之后,在系统菜单“开始\程序”中生成名称为 “组态王6.53 "的程序组。该程序组中包括4个文件和3个文件夹的快 捷方式,内容如下:
• 组态王6.53:组态王工程管理器程序(ProjectManager)的快捷方式, 用于新建工程、工程管理等。
CHENLI
3
上一页 下一页 返回
任务一 组态王软件的安装及组态王程 序组构成
• 工控组态软件的应用领域很广,可以应用于电力系统、给排水系统、 燃气竹网、供热竹网、石油、化工、智能建筑等领域的数据采集与控 制以及过程控制等诸多领域。
• 2.工控组态软件的主要功能 • (1)丰富的画面组态功能。 • (2)良好的开放性。 • (3)丰富的功能模块。 • (4)强大的数据库支持。 • (5)可编程的命令语言。 • (6)周密的系统安全防范。 • (7)强大的网络功能。
项目一 组态王使用入门
• 任务一 • 任务二
的应用
• 任务三
组态王软件的安装及组态王程序组构成 组态王工程管理器、浏览器和运行系统
建立一个简单的组态王工程
CHENLI
1
任务一 组态王软件的态软件的基本知识,掌握组态王软件的安装及组态王程序组所 包含的相应内容。
CHENLI
2
下一页 返回
任务一 组态王软件的安装及组态王程 序组构成
• 1.1.3 相关知识
• 1.什么是组态软件 • 组态(Configuration)的意思是构造、配置,是指用户通过软件提供
的工具、方法,采用类似“搭积木”的简单方式来完成自己所需要的 软件功能,而不需要编写复杂的计算机程序。在组态软件出现之前, 要实现某一任务,都是通过编写程序(如使用BASIC、 C、 FORTRAN等)来实现的。 • 工控组态软件是应用于工业控制领域的专用组态软件,是处在自动 控制系统监控层一级的软件平台和开发环境,使用灵活的组态方式, 为用户提供快速构建工业自动控制系统监控功能的、通用层次的软件 工具。组态软件大都支持各种主流工控设备和标准通信协议,并目提 供分布式数据管理和网络功能。
组态王软件详细教程第七讲报表系统

组态王软件详细教程第七讲报表系统(总9页)-CAL-FENGHAI.-(YICAI)-Company One1-CAL-本页仅作为文档封面,使用请直接删除第七讲报表系统第一节组态王内嵌数据报表数据报表的用途数据报表是反应生产过程中的数据、状态等,并对数据进行记录的一种重要形式。
是生产过程必不可少的一个部分。
它即能反应系统实时的生产情况,也能对长期的生产过程进行统计、分析,使管理人员能够实时掌握和分析生产情况。
组态王提供内嵌式报表系统,工程人员可以任意设置报表格式,对报表进行组态。
组态王为工程人员提供了丰富的报表函数,实现各种运算、数据转换、统计分析、报表打印等。
即可以制作实时报表,也可以制作历史报表。
另外,工程人员还可以制作各种报表模板,实现多次使用,以免重复工作。
制作实时数据报表在组态王工具箱内选择“报表窗口”工具,在报表画面上绘制报表。
如下图所示:双击报表窗口的灰色部分(表格单元格区域外没有单元格的部分),弹出“报表设计”对话框,对话框定义如下图所示:在“报表控件名”对话框中输入报表控件名称:实时数据报表,这个控件名会在报表函数中引用。
在行数对话框中输入所要制作的报表的大致行数15本讲介绍报表系统的创建和格式设置介绍报表函数介绍报表系统的组态介绍报表模板在列数对话框中输入所要制作的报表的大致列数6单击对话框的“确认”按钮。
则组态王报表画面如下图所示:设置表头格式设计表头:选中“b1”到“e2”的单元格区域,从报表工具箱上单击“合并单元格”按钮,在报表工具箱的编辑框里输入文本“实时数据报表”,单击“输入”按钮;或双击合并的单元格,使输入光标位于该单元格中,然后输入上述文本。
单击报表工具箱中的“设置单元格格式”按钮,设置单元格格式如下:数字—常规;字体—隶书、规则、一号、红色;对齐方式:水平—居中,垂直—居中;图案—设置单元格底纹颜色为灰色。
如下图所示。
设计报表时间在单元格“d3”中显示当前日期,双击该单元格,然后输入函数“=Date($年,$月,$日)”。
组态王系列课件

2014年2月22日星期六10 时20分10秒
8
组态王简明教程
简介: 本教程是学习“组态王”软件的入门教程,覆盖了“组态王”软件的大 部分基本功能。学完本教程后,您将能够建立一个功能齐全、可实际使 用的上位机监控系统。
下列课程向你演示如何:
* 使用工程浏览器 * 建立新项目 * 绘制画面 * 使用图库和控件 * 构造数据库 * 和下位机通讯 * 产生动画效果 * 查看趋势曲线和报警信息 * 设计自定义报表 * 系统安全防范
2014年2月22日星期六10 时20分10秒 5
----三是价格。组态软件产品要在中国市场上真正取得成功,能最广泛地 被各种用户层接受,价格是一个非常重要的因素。总的来说,大部分进 口组态软件产品的价格对中国大多数的中小企业用户来讲显得偏高,但 国外开发一个商品化软件产品的成本很高,要降价也决非易事,这就为 低价格的国产化组态软件进入这样一个大市场开辟了道路。另外,高价 位的进口组态软件产品容易产生盗版,有时盗版也会严重冲击正版的市 场。总之,组态软件在中国市场价格政策得当与否,对该产品的占有率 影响甚大。 ----四是服务。组态软件技术含量很高,只有能够为用户提供好的支持与 服务的产品及供应商,才能坐稳市场。通常进口组态软件的商品化程度 好,用户资料比较完整,现大多又都有网上支持,用户不难学会使用并 利用其提供的选件去做一些深层次的开发,关键是开始是否能够和如何 指导用户正确地去做这些工作。国产化组态软件由于商品化程度相对比 较低,售前售后的技术支持与服务的难度会大一些,但这些产品有时又 能满足用户要求从原代码级进行改进。国产化组态软件需要加强软件开 发的组织管理实施,进一步提高商品化程度,在此基础上更容易为用户 提供好的服务。 ----组态软件的市场竞争对用户来讲无疑增加了选择的机会,在相同条件 下,更容易寻求到技术领先,性价比高,服务周到的产品和供应商。 ----可以预言,组态软件在中国的进一步推广使用是一件大好事,它将促 使我国工业自动控制技术的应用不断上台阶,并有利于培养和造就一支 行业内的高技术队伍,由此缩短与发达国家生产自动化水平的差距,提 高我们的工业生产品在国际市场的竞争能力。
组态王7.5SP1版本第7章报表系统

第八讲报表系统第一节概述数据报表的用途数据报表是反应生产过程中的过程数据、运行状态等,并对数据进行记录、统计的一种重要工具,是生产过程必不可少的一个重要环节。
它既能反应系统实时的生产情况又能对长期的生产过程数据进行统计、分析,使管理人员能够掌握和分析生产过程情况。
组态王提供内嵌式报表系统,工程人员可以任意设置报表格式,对报表进行组态。
组态王为工程人员提供了丰富的报表函数,实现各种运算、数据转换、统计分析、报表打印等。
既可以制作实时报表又可以制作历史报表。
另外,工程人员还可以制作各种报表模板,实现多次使用,以免重复工作。
组态王7.5 SP1的报表向导工具可以以组态王的历史库或KingHistorian为数据源,快速建立所需的班报表、日报表、周报表、月报表、季报表和年报表。
此外,还可以实现值的行列统计功能。
大大减少了工程人员制作报表时的命令语言的编写。
第二节实时数据报表创建实时数据报表实时数据报表创建过程如下:1、新建一画面,名称为:实时数据报表画面。
2、选择工具箱中的工具,在画面上输入文字:实时数据报表。
3、选择工具箱中的工具,在画面上绘制一实时数据报表窗口,如图8-1所示。
图8-1单击报表窗口,“报表工具箱”会自动显示出来。
双击窗口的灰色部分,弹出“报表设计”对话框,如图8-2所示。
图8-2对话框设置如下:报表控件名:Report1行数:6列数:104、输入静态文字:选中A1到J1的单元格区域,执行“报表工具箱”中的“合并单元格”命令并在合并完成的单元格中输入:实时报表演示。
利用同样方法输入其它静态文字,如图8-3所示。
图8-35、插入动态变量:在B2单元格中输入:=\\local\$Date。
(变量的输入可以利用“报表工具箱”中的“插入变量”按钮实现)利用同样方法输入其它动态变量,如图8-4所示。
图8-4注:如果变量名前没有添加“=”符号的话此变量被当作静态文字来处理。
6、单击“文件”菜单中的“全部存”命令,保存您所作的设置。
1.1组态软件概述1.2组态王软件的安装1.3组态王的使用入门(共64张PPT)

可扩展性为用户提供了在不改变原有系统的情况下,向系统内增加 新功能的能力,这种增加的功能可能来自于组态软件开发商、第三 方软件提供商或用户自身。增加功能最常用的手段是ActiveX 组件 的应用,目前还只有少数组态软件能提供完备的ActiveX 组件引入 功能及实现引入对象在脚本语言中的访问。
第二页,共六十四页。
下一页 返回(fǎnhuí)
1.1 组态(zǔ tài)软件概述
组态软件是指一些数据采集与过程控制的专用软件,它们是在自动控制 系统监控层一级的软件平台和开发环境,使用灵活的组态方式,为用户 提供(tígōng)快速构建工业自动控制系统监控功能的、通用层次的软件工 具。组态软件应该能支持各种工控设备和常见的通讯协议,并且通常应 提供分布式数据管理和网络功能。对应于原有的HMI 的概念,组态软 件应该是一个使用户能快速建立自己的HMI 的软件工具,或开发环境。 在组态软件出现之前,工控领域的用户通过手工或委托第三方编写HMI 应用,开发时间长,效率低,可靠性差;或者购买专用的工控系统,通 常是封闭的系统,选择余地小,往往不能满足需求,很难与外界进行数 据交互,升级和增加功能都受到严重的限制。
下一页 返回(fǎnhuí)
1.1 组态(zǔ tài)软件概述
⑤ 组态王:组态王是国内第一家较有影响的组态软件开发公司 (更早的品牌多数已经湮灭)。组态王提供了资源管理器式的操作 主界面,并且提供了以汉字作为关键字的脚本语言支持。组态王也 提供多种硬件驱动程序。
⑥ 力控:大庆三维公司的力控是国内较早就已经出现的组态软件 之一。32 位下的1.0 版的力控,在体系结构上就已经具备了较为明 显的先进性,其最大的特征之一就是其基于真正意义的分布式实时 数据库的三层结构,而且其实时数据库结构可为可组态的活结构。 在1999—2000 年期间,力控得到了长足的发展(fāzhǎn),最新推出的 2.0 版在功能的丰富特性、易用性、开放性和I/O 驱动数量,都得 到了很大的提高。
组态王报表演示说明

报表演示说明1、本演示分为日报、月报、年报2、日报的生成:对于日报可以每小时输入一个数据,然后进行统计后每天生成一个报表日报生成的命令语言见事件命令语言的条件为:$分==0 && $秒==0,消失时注意:a、报表函数命令执行时报表控件所在的画面必须打开,因此对于画面不多的情况下可以在工程运行时将后台处理画面打开并隐含起来,同时所有其它的画面属性都应为覆盖式。
如果画面较多无法全部将画面属性设为覆盖式则可以在报表命令语言执行前执行打开画面的命令b、在新的一天开始时需要使用新的报表文件,因此需要在调用前需要判断当天的报表文件是否已经创建,如果没有创建则需要进行创建c、对于日报的统计主要针对每天持续运行的情况,对于不能保证持续运行的现场可以参照月报的统计方式b、报表的查询在日报查询页,可以对报表文件进行读取、删除等操作{string FileName1=InfoAppDir()+"日报\"+ StrFromReal( \\本站点\$年, 0, "f" )+"y"+StrFromReal(\\本站点\$月, 0, "f" )+"m"+StrFromReal(\\本站点\$日, 0, "f" )+".rtl";//自定义变量long return01=InfoFile( Filename1, 1, \\本站点\$分 );//判断日报目录下是否已经有当天的报表文件了if (return01==0){string FileName=InfoAppDir()+"报表\日报.rtl";ReportLoad("Report5",FileName);FileName=InfoAppDir()+"日报\"+StrFromReal( \\本站点\$年, 0,"f" )+"y"+StrFromReal( $月, 0, "f" )+"m"+StrFromReal( $日, 0, "f" )+".rtl";ReportSaveAs("Report5",FileName);}//如果没有报表文件则从报表目录下调取模板创建报表文件ReportLoad("Report5",FileName1);ReportSetCellString("report5", 3,10, \\本站点\$日期);long hang=\\本站点\$时+6;string timestr=time(\\本站点\$时,0,0);ReportSetCellString("report5", hang,1, timestr);ReportSetCellValue("report5", hang,2,\\本站点\颗粒物); ReportSetCellValue("report5", hang,3,\\本站点\颗粒物折算); ReportSetCellValue("report5", hang,4, \\本站点\SO2); ReportSetCellValue("report5", hang,5, \\本站点\SO2折算);ReportSetCellValue("report5", hang,6, \\本站点\NO2); ReportSetCellValue("report5", hang,7, \\本站点\NO2折算); ReportSetCellValue("report5", hang,8, \\本站点\流量); ReportSetCellValue("report5", hang,9, \\本站点\O2); ReportSetCellValue("report5", hang,10, \\本站点\温度); ReportSetCellValue("report5", hang,11, \\本站点\水分); ReportSaveAs("Report5",FileName1);}3、月报的生成月报中需要每天的统计数据,该数据为每天的平均值,如果需要其它的统计数据也可照此方法进行处理。
组态软件基础及应用(组态王KingView)ppt课件第四章

String
使用数据源名称
3 CurveTable
String
数据库的表名
4 CurveDateTimeField String
数据库的时间字段名
5 CurveVarName
String
连接变量名
6 CurveDataField
String
7 CuryeInvalidValue
String
8 CurveUser
”
3
第四章 趋势曲线和其他曲线
4.1.1 创建历史曲线控件
在组态王工程浏览器中新建画面,在工具箱中单击“插入通用控件”按钮,或 选择菜单“编辑”下的“插入通用控件”命令,在“插入控件”对话框的列表中选 择“历史趋势曲线”,单击“确定”按钮,鼠标箭头变为“+”字型,在画面上选 择一点位置作为控件的左上角,按下鼠标左键并拖动,画面上显示出一个虚线的矩 形框,该矩形框为创建后的曲线的外框。当达到所需大小时,松开鼠标左键,则历 史曲线控件创建成功,画面上显示出该曲线,如图4-1所示。
4.1 历史趋势曲线控件
KVHTrend曲线控件是组态王以Active X控件形式提供的绘制历 史曲线和ODBC数据库曲线的功能性工具。该曲线具有的特点:可以 连接组态王的历史库,也可以连接工业库服务器,还可以通过ODBC 数据源连接到其它数据库上。连接组态王历史库或工业库服务器时, 可以定义查询数据的时间间隔。可实现某条曲线在某个时间段上的曲 线比较。
Void
设置曲线时间坐标起点。
T:时间的年月日时分秒部分,将该时 无
HTSetLeftScooterTime(T,s)
间用HTConvertTime()函数间的秒
数。 s:时间的毫秒部分。
组态王的年月报表

组态王的年⽉报表(1)建⽴报表的步骤将《实时数据》插⼊到《⽇报表后台数据的累计量》插⼊到《⽉报表后台累计量》插⼊到《年报表后台》//........................................................................................................................................................................................................................................................................................................................................... //每⼩时将repot7的实时数据插⼊到report 6中,long hang;hang= \\本站点\$时+3;//定位long Value;Value=ReportGetCellValue("Report7", 4, 2);//获取指定报表单元格的数值ReportSetCellValue("Report6", hang, 2, Value);//将指定报表的指定单元格设定为指定值Value=ReportGetCellValue("Report7", 4, 3);ReportSetCellValue("Report6", hang, 3, Value);Value=ReportGetCellValue("Report7", 4, 4);ReportSetCellValue("Report6", hang, 4, Value);Value=ReportGetCellValue("Report7", 4, 5);ReportSetCellValue("Report6", hang, 5, Value);Value=ReportGetCellValue("Report7", 4, 6);ReportSetCellValue("Report6", hang, 6, Value);Value=ReportGetCellValue("Report7", 4, 7);ReportSetCellValue("Report6", hang, 7, Value);Value=ReportGetCellValue("Report7", 4, 8);ReportSetCellValue("Report6", hang, 8, Value);Value=ReportGetCellValue("Report7", 4, 9);ReportSetCellValue("Report6", hang, 9, Value);Value=ReportGetCellValue("Report7", 4, 10);ReportSetCellValue("Report6", hang, 10, Value);Value=ReportGetCellValue("Report7", 4, 11);ReportSetCellValue("Report6", hang, 11, Value);Value=ReportGetCellValue("Report7", 4, 12);ReportSetCellValue("Report6", hang, 12, Value);Value=ReportGetCellValue("Report7", 4, 13);ReportSetCellValue("Report6", hang, 13, Value);Value=ReportGetCellValue("Report7", 4, 14);ReportSetCellValue("Report6", hang, 14, Value);Value=ReportGetCellValue("Report7", 4, 15);ReportSetCellValue("Report6", hang, 15, Value);//将实时报表report 7中的统计数据输⼊到⽇报表后台中//填写时间string temp;long StartTime;long y;StartTime=cyl_HTConvertTime(\\本站点\$年,\\本站点\$⽉,\\本站点\$⽇,0,0,0);//获取选着时间的长整形单位y=StartTime+\\本站点\$时*3600;temp=StrFromTime( y, 2 );ReportSetCellString("Report6", hang, 1, temp);ReportSetCellString("Report6", 28, 1, "当天累积");//填充ReportSetCellString("Report6", 29, 1, "备注");//填充//............................................................................................................................................................................................................................................................................................................................................ ReportSetCellString2("Report6", 4, 1, 27, 8, " "); //清空单元格//............................................................................................................................................................................................................................................................................................................................................(1)查询⽉报string FileName;FileName=InfoAppDir()+"⽉报\"+\\本站点\报表名;ReportLoad("⽉报",FileName);//............................................................................................................................................................................................................................................................................................................................................(2)删除⽉报string FileName;FileName=InfoAppDir()+"⽉报\"+\\本站点\报表名;FileDelete( Filename );string FileName1;FileName1=InfoAppDir()+"⽉报\*.rtl";listClear("⽉报查询");ListLoadFileName( "⽉报查询", FileName1 );//............................................................................................................................................................................................................................................................................................................................................(3)刷新⽉报string FileName;FileName=InfoAppDir()+"⽉报\"+"*.rtl";listClear("⽉报查询");ListLoadFileName( "⽉报查询", FileName );//............................................................................................................................................................................................................................................................................................................................................//每天定时将⽇报后台reprot 6中的累积量插⼊到⽉报表reprot5后台中string reportname2=StrFromReal( \\本站点\$年, 0, "f" )+StrFromReal( \\本站点\$⽉, 0, "f")+".rtl";//把年⽉转化为字符串⽤来命名//====================string FileName;//⾃定义变量FileName=InfoAppDir()+"⽉报\"+reportname2;long return02=InfoFile( Filename, 1, \\本站点\$分 );//查找⽂件是否存在,找不到返回0 ShowPicture("⽉报后台");//HidePicture("⽉报后台");//判断⽉报⽬录下是否已经有当⽉的报表⽂件了if (return02==0)//当前⽬录下没有相应⽉报表报表{FileName=InfoAppDir()+"报表\⽉报.rtl";ReportLoad("Roport5",FileName);//把filename名称⽂件中数据填⼊到report中FileName=InfoAppDir()+"⽉报\"+ reportname2;Reportsaveas("Roport5",FileName);//报存⽉报后台//\\本站点\⽇计数=0;}//如果当⽉的⽉报⽂件还没有产⽣则调⼊⽉报.rtl⽂件并按规定格式保存报表⽂件FileName=InfoAppDir()+"⽉报\"+StrFromReal( \\本站点\$年, 0, "f" )+StrFromReal(\\本站点\$⽉, 0, "f" )+".rtl";ReportLoad("Report5",FileName);//读取指定路径下的报表到当前控件报表long hang;hang= \\本站点\$⽇+3;//定位//\\本站点\⽇计数=\\本站点\⽇计数+1;string str;long Value;long Value1;long Value2;str=ReportGetCellString("Report6", 2, 5);//获取指定报表单元格的⽂本ReportSetCellString("Report5", hang, 1, str);//将指定报表单元格设定为指定字符串//以上为在⽉报第⼀列添加⽇期Value=ReportGetCellValue("Report6", 28, 2);//获取指定报表单元格的数值ReportSetCellValue("Report5", hang, 2, Value);//将指定报表的指定单元格设定为指定值Value=ReportGetCellValue("Report6", 28, 3);ReportSetCellValue("Report5", hang, 3, Value);Value=ReportGetCellValue("Report6", 28, 4);ReportSetCellValue("Report5", hang, 4, Value);Value=ReportGetCellValue("Report6", 28, 5);ReportSetCellValue("Report5", hang, 5, Value);Value=ReportGetCellValue("Report6", 28, 6);ReportSetCellValue("Report5", hang, 6, Value);Value=ReportGetCellValue("Report6", 28, 7);ReportSetCellValue("Report5", hang, 7, Value);Value=ReportGetCellValue("Report6", 28, 8);ReportSetCellValue("Report5", hang, 8, Value);Value=ReportGetCellValue("Report6", 28, 9);ReportSetCellValue("Report5", hang, 9, Value);Value=ReportGetCellValue("Report6", 28, 10);ReportSetCellValue("Report5", hang, 10, Value);Value=ReportGetCellValue("Report6", 28, 11);ReportSetCellValue("Report5", hang, 11, Value);Value=ReportGetCellValue("Report6", 28, 12);ReportSetCellValue("Report5", hang, 12, Value);Value=ReportGetCellValue("Report6", 28, 13);ReportSetCellValue("Report5", hang, 13, Value);Value=ReportGetCellValue("Report6", 28, 14);ReportSetCellValue("Report5", hang, 14, Value);Value=ReportGetCellValue("Report6", 28, 15);ReportSetCellValue("Report5", hang, 15, Value);//将⽇报表中的统计数据当天累积值输⼊到⽉报表中//以下为计算累积值Value1=ReportGetCellValue("Report5", 4, 2);//获取⽉报后台起始值Value2=ReportGetCellValue("Report5", hang, 2);//获取⽉报后台末尾值Value=Value2-Value1;ReportSetCellValue("Report5", 35, 2, Value);Value1=ReportGetCellValue("Report5", 4, 2);//获取⽉报后台起始值Value2=ReportGetCellValue("Report5", hang, 2);//获取⽉报后台末尾值Value=Value2-Value1;ReportSetCellValue("Report5", 35, 2, Value);Value1=ReportGetCellValue("Report5", 4, 3);//获取⽉报后台起始值Value2=ReportGetCellValue("Report5", hang, 3);//获取⽉报后台末尾值Value=Value2-Value1;ReportSetCellValue("Report5", 35, 3, Value);Value1=ReportGetCellValue("Report5", 4, 4);//获取⽉报后台起始值Value2=ReportGetCellValue("Report5", hang, 4);//获取⽉报后台末尾值Value=Value2-Value1;ReportSetCellValue("Report5", 35, 4, Value);Value1=ReportGetCellValue("Report5", 4, 5);//获取⽉报后台起始值Value2=ReportGetCellValue("Report5", hang, 5);//获取⽉报后台末尾值Value=Value2-Value1;ReportSetCellValue("Report5", 35, 5, Value);Value1=ReportGetCellValue("Report5", 4, 6);//获取⽉报后台起始值Value2=ReportGetCellValue("Report5", hang, 6);//获取⽉报后台末尾值Value=Value2-Value1;ReportSetCellValue("Report5", 35, 6, Value);Value1=ReportGetCellValue("Report5", 4, 7);//获取⽉报后台起始值Value2=ReportGetCellValue("Report5", hang, 7);//获取⽉报后台末尾值Value=Value2-Value1;ReportSetCellValue("Report5", 35, 7, Value);Value1=ReportGetCellValue("Report5", 4, 8);//获取⽉报后台起始值Value2=ReportGetCellValue("Report5", hang, 8);//获取⽉报后台末尾值Value=Value2-Value1;ReportSetCellValue("Report5", 35, 8, Value);Value1=ReportGetCellValue("Report5", 4, 9);//获取⽉报后台起始值Value2=ReportGetCellValue("Report5", hang, 9);//获取⽉报后台末尾值Value=Value2-Value1;ReportSetCellValue("Report5", 35, 9, Value);Value1=ReportGetCellValue("Report5", 4, 10);//获取⽉报后台起始值Value2=ReportGetCellValue("Report5", hang, 10);//获取⽉报后台末尾值Value=Value2-Value1;ReportSetCellValue("Report5", 35, 10, Value);Value1=ReportGetCellValue("Report5", 4, 11);//获取⽉报后台起始值Value2=ReportGetCellValue("Report5", hang, 11);//获取⽉报后台末尾值Value=Value2-Value1;ReportSetCellValue("Report5", 35, 11, Value);Value1=ReportGetCellValue("Report5", 4, 12);//获取⽉报后台起始值Value2=ReportGetCellValue("Report5", hang, 12);//获取⽉报后台末尾值Value=Value2-Value1;ReportSetCellValue("Report5", 35, 12, Value);Value1=ReportGetCellValue("Report5", 4, 13);//获取⽉报后台起始值Value2=ReportGetCellValue("Report5", hang, 13);//获取⽉报后台末尾值Value=Value2-Value1;ReportSetCellValue("Report5", 35, 13, Value);Value1=ReportGetCellValue("Report5", 4, 14);//获取⽉报后台起始值Value2=ReportGetCellValue("Report5", hang, 14);//获取⽉报后台末尾值Value=Value2-Value1;ReportSetCellValue("Report5", 35, 14, Value);Value1=ReportGetCellValue("Report5", 4, 15);//获取⽉报后台起始值Value2=ReportGetCellValue("Report5", hang, 15);//获取⽉报后台末尾值Value=Value2-Value1;ReportSetCellValue("Report5", 35, 15, Value);Reportsaveas("Report5",FileName);//HidePicture("⽉报后台");//..........................................................................................................................................................................................................................................................................................................................................//每天定时将⽉报后台reprot 5中的累积量插⼊到年报表后台report 8中string reportname2=StrFromReal( \\本站点\$年, 0, "f" )+".rtl";//把年转化为字符串⽤来命名//====================string FileName;//⾃定义变量FileName=InfoAppDir()+"年报\"+reportname2;long return02=InfoFile( Filename, 1, \\本站点\$分 );//查找⽂件是否存在,找不到返回0ShowPicture("年报后台");//HidePicture("年报后台");//判断年报⽬录下是否已经有当年的报表⽂件了if (return02==0)//当前⽬录下没有相应年报表报表{FileName=InfoAppDir()+"报表\年报.rtl";ReportLoad("Roport8",FileName);//把filename名称⽂件中数据填⼊到report中FileName=InfoAppDir()+"年报\"+ reportname2;Reportsaveas("Roport8",FileName);//报存⽉报后台}//如果当⽉的⽉报⽂件还没有产⽣则调⼊⽉报.rtl⽂件并按规定格式保存报表⽂件FileName=InfoAppDir()+"年报\"+StrFromReal( \\本站点\$年, 0, "f" )+".rtl";ReportLoad("Report8",FileName);//读取指定路径下的报表到当前控件报表long hang;hang= \\本站点\$⽉+3;//定位string str;long Value;long Value1;long Value2;str=ReportGetCellString("Report5", 2, 5);//获取指定报表单元格的⽂本str=StrLeft(str, 7);//裁剪str,只获取⽉ReportSetCellString("Report8", hang, 1, str);//将指定报表单元格设定为指定字符串//以上为在⽉报第⼀列添加⽇期Value=ReportGetCellValue("Report5", 35, 2);//获取指定报表单元格的数值ReportSetCellValue("Report8", hang, 2, Value);//将指定报表的指定单元格设定为指定值Value=ReportGetCellValue("Report5", 35, 3);ReportSetCellValue("Report8", hang, 3, Value);Value=ReportGetCellValue("Report5", 35, 4);ReportSetCellValue("Report8", hang, 4, Value);Value=ReportGetCellValue("Report5", 35, 5);ReportSetCellValue("Report8", hang, 5, Value);Value=ReportGetCellValue("Report5", 35, 6);ReportSetCellValue("Report8", hang, 6, Value);Value=ReportGetCellValue("Report5", 35, 7);ReportSetCellValue("Report8", hang, 7, Value);Value=ReportGetCellValue("Report5", 35, 8);ReportSetCellValue("Report8", hang, 8, Value);Value=ReportGetCellValue("Report5", 35, 9);ReportSetCellValue("Report8", hang, 9, Value);Value=ReportGetCellValue("Report5", 35, 10);ReportSetCellValue("Report8", hang, 10, Value);Value=ReportGetCellValue("Report5", 35, 11);ReportSetCellValue("Report8", hang, 11, Value);Value=ReportGetCellValue("Report5", 35, 12);ReportSetCellValue("Report8", hang, 12, Value);Value=ReportGetCellValue("Report5", 35, 13);ReportSetCellValue("Report8", hang, 13, Value);Value=ReportGetCellValue("Report5", 35, 14);ReportSetCellValue("Report8", hang, 14, Value);Value=ReportGetCellValue("Report5", 35, 15);ReportSetCellValue("Report8", hang, 15, Value);//将⽉报表后台report 5中的统计数据当天累积值输⼊到年报表后台report 8中;Value1=ReportGetCellValue("Report8", 4, 2);//起始值Value2=ReportGetCellValue("Report8", hang, 2);//结束值Value=Value2-Value1;ReportSetCellValue("Report8", 16, 2, Value);Value1=ReportGetCellValue("Report8", 4, 3);//起始值Value2=ReportGetCellValue("Report8", hang, 3);//结束值Value=Value2-Value1;ReportSetCellValue("Report8", 16, 3, Value);Value1=ReportGetCellValue("Report8", 4, 4);//起始值Value2=ReportGetCellValue("Report8", hang, 4);//结束值Value=Value2-Value1;ReportSetCellValue("Report8", 16, 4, Value);Value1=ReportGetCellValue("Report8", 4, 5);//起始值Value2=ReportGetCellValue("Report8", hang, 5);//结束值Value=Value2-Value1;ReportSetCellValue("Report8", 16, 5, Value);Value1=ReportGetCellValue("Report8", 4, 6);//起始值Value2=ReportGetCellValue("Report8", hang, 6);//结束值Value=Value2-Value1;ReportSetCellValue("Report8", 16, 6, Value);Value1=ReportGetCellValue("Report8", 4, 7);//起始值Value2=ReportGetCellValue("Report8", hang, 7);//结束值Value=Value2-Value1;ReportSetCellValue("Report8", 16, 7, Value);Value1=ReportGetCellValue("Report8", 4, 8);//起始值Value2=ReportGetCellValue("Report8", hang, 8);//结束值Value=Value2-Value1;ReportSetCellValue("Report8", 16, 8, Value);Value1=ReportGetCellValue("Report8", 4, 9);//起始值Value2=ReportGetCellValue("Report8", hang, 9);//结束值Value=Value2-Value1;ReportSetCellValue("Report8", 16, 9, Value);Value1=ReportGetCellValue("Report8", 4, 10);//起始值Value2=ReportGetCellValue("Report8", hang, 10);//结束值Value=Value2-Value1;ReportSetCellValue("Report8", 16, 10, Value);Value1=ReportGetCellValue("Report8", 4, 11);//起始值Value2=ReportGetCellValue("Report8", hang, 11);//结束值Value=Value2-Value1;ReportSetCellValue("Report8", 16, 11, Value);Value1=ReportGetCellValue("Report8", 4, 12);//起始值Value2=ReportGetCellValue("Report8", hang, 12);//结束值Value=Value2-Value1;ReportSetCellValue("Report8", 16, 12, Value);Value1=ReportGetCellValue("Report8", 4, 13);//起始值Value2=ReportGetCellValue("Report8", hang, 13);//结束值Value=Value2-Value1;ReportSetCellValue("Report8", 16, 13, Value);Value1=ReportGetCellValue("Report8", 4, 14);//起始值Value2=ReportGetCellValue("Report8", hang, 14);//结束值Value=Value2-Value1;ReportSetCellValue("Report8", 16, 14, Value);Value1=ReportGetCellValue("Report8", 4, 15);//起始值Value2=ReportGetCellValue("Report8", hang, 15);//结束值Value=Value2-Value1;ReportSetCellValue("Report8", 16, 15, Value);Reportsaveas("Report8",FileName);//HidePicture("年报后台");//............................................................................................................................................................................................................................................................................................................................................。
组态王操作教程 ppt课件

Click here to enter
ppt课件
•1
组态王6.5教程
第一讲 概述 第二讲 建立一个新工程 第三讲 让画面动起来 第四讲 报警和事件 第五讲 趋势曲线
第六讲 DDE
ppt课件
•2
第一讲 概述
主要知识点:
组态的定义
组态的发展
组态软件的数据处理流程
使用组态软件的一般步骤
注:在实际的工程中组态王连接现场的实际采集 设备,采集现场的数据。
观看演示
ppt课件
•26
2.4 定义外部设备变量
在组态王工程浏览器中提供了“数据库”项供用户 定义设备变量。
数据库的作用:
数据库是“组态王”最核心的部分。在TOUCHVEW运 行时,工业现场的生产状况要以动画的形式反映在屏幕 上,操作者在计算机前发布的指令也要迅速送达生产现 场,所有这一切都是以实时数据库为中介环节,所以说 数据库是联系上位机和下位机的桥梁。
量与I/O点的一一对应关系,即定义数据连接。 7、根据前面设计的画面结构和画面草图,组态每一幅
静态的操作画面(主要是绘图)。
8、将操作画面中的图形对象与实时数据库变量建立动 画连接关系,规定动画的属性和幅度。
9、对组态的内容进行分段和总体调试。
10、系统投入运行。
ppt课件
•13
第一讲 概述
五、组态软件任务
Citech Genesis WizCon controlview
ppt课件
国别
美国 美国 德国 美国 美国
澳大利亚
美国
以色列
美国
•7
第一讲 概述
二、组态软件的发展 (续)
国内较知名的监控组态软件
组态王软件详细教程 第七讲 报表系统

第七讲报表系统第一节组态王内嵌数据报表➢本讲介绍报表系统的创建和格式设置➢介绍报表函数➢介绍报表系统的组态➢介绍报表模板数据报表的用途数据报表是反应生产过程中的数据、状态等,并对数据进行记录的一种重要形式。
是生产过程必不可少的一个部分。
它即能反应系统实时的生产情况,也能对长期的生产过程进行统计、分析,使管理人员能够实时掌握和分析生产情况。
组态王提供内嵌式报表系统,工程人员可以任意设置报表格式,对报表进行组态。
组态王为工程人员提供了丰富的报表函数,实现各种运算、数据转换、统计分析、报表打印等。
即可以制作实时报表,也可以制作历史报表。
另外,工程人员还可以制作各种报表模板,实现多次使用,以免重复工作。
制作实时数据报表在组态王工具箱内选择“报表窗口”工具,在报表画面上绘制报表。
如下图所示: 双击报表窗口的灰色部分(表格单元格区域外没有单元格的部分),弹出“报表设计”对话框,对话框定义如下图所示:→在“报表控件名”对话框中输入报表控件名称:实时数据报表,这个控件名会在报表函数中引用。
→在行数对话框中输入所要制作的报表的大致行数15→在列数对话框中输入所要制作的报表的大致列数6单击对话框的“确认”按钮。
则组态王报表画面如下图所示:设置表头格式设计表头:选中“b1”到“e2”的单元格区域,从报表工具箱上单击“合并单元格”按钮,在报表工具箱的编辑框里输入文本“实时数据报表”,单击“输入”按钮;或双击合并的单元格,使输入光标位于该单元格中,然后输入上述文本。
单击报表工具箱中的“设置单元格格式”按钮,设置单元格格式如下:数字—常规;字体—隶书、规则、一号、红色;对齐方式:水平—居中,垂直—居中;图案—设置单元格底纹颜色为灰色。
如下图所示。
设计报表时间在单元格“d3”中显示当前日期,双击该单元格,然后输入函数“=Date($年,$月,$日)”。
“e3”中显示当前时间,双击该单元格,然后输入“=Time($时,$分,$秒)”。
组态王报表(课件)

ReportLoad
此函数为报表专用函数。将指定路径下的报表读到当前报 表中来,语法格式使用如下:
ReportLoad(ReportName, FileName) 参数说明:ReportName:报表名称 FileName:报表存储路径和文件名称
语法格式使用如下:
ReportSetHistData(ReportName, TagName, StartTime, SepTime, szContent) ;
参数说明:ReportName:要填写查询数据结果的报表 名称;
为秒;
TagName:所要查询的变量名称; StartTime:数据查询的开始时间; SepTime:查询的数据的时间间隔,单位
ReportSetHistData2(1,1);
ReportSetHistData2 此函数为报表专用函数。查询历史数据,系统会自动弹 出历史数据查询对话框。 语法使用格式如下: ReportSetHistData2(StartRow,StartCol);
参数说明: StartRow:查询的数据在报表中填充的起始行数。 StartCol:查询的数据在报表中填充的起始列数。
在画面上输入文字:实时数据报表查询。 绘制一实时数据报表窗口,控件名称为:Report2。
“下拉式组合框”控件,控 件属性设置如图所示:
在画面属性的命令语言 中输入如下命令语言:
string filename; filename=InfoAppDir()+"\实时数据文件夹\*.rtl"; listClear("List1"); ListLoadFileName( "List1",filename);
组态王软件详细教程 第七讲 报表系统

第七讲 报表系统第一节 组态王内嵌数据报表数据报表的用途数据报表是反应生产过程中的数据、状态等,并对数据进行记录的一种重要形式。
是生产过程必不可少的一个部分。
它即能反应系统实时的生产情况,也能对长期的生产过程进行统计、分析,使管理人员能够实时掌握和分析生产情况。
组态王提供内嵌式报表系统,工程人员可以任意设置报表格式,对报表进行组态。
组态王为工程人员提供了丰富的报表函数,实现各种运算、数据转换、统计分析、报表打印等。
即可以制作实时报表,也可以制作历史报表。
另外,工程人员还可以制作各种报表模板,实现多次使用,以免重复工作。
制作实时数据报表在组态王工具箱内选择“报表窗口”工具,在报表画面上绘制报表。
如下图所示:双击报表窗口的灰色部分(表格单元格区域外没有单元格的部分),弹出“报表设计”对话框,对话框定义如下图所示:→ 在“报表控件名”对话框中输入报表控件名称: 实时数据报表 ,这个控件名会在报表函数中引用。
→在行数对话框中输入所要制作的报表的大致行数 15→在列数对话框中输入所要制作的报表的大致列数6单击对话框的“确认”按钮。
则组态王报表画面如下图所示:设置表头格式设计表头:选中“b1”到“e2”的单元格区域,从报表工具箱上单击“合并单元格”按钮,在报表工具箱的编辑框里输入文本“实时数据报表”,单击“输入”按钮;或双击合并的单元格,使输入光标位于该单元格中,然后输入上述文本。
单击报表工具箱中的“设置单元格格式”按钮,设置单元格格式如下:数字—常规;字体—隶书、规则、一号、红色;对齐方式:水平—居中,垂直—居中;图案—设置单元格底纹颜色为灰色。
如下图所示。
设计报表时间在单元格“d3”中显示当前日期,双击该单元格,然后输入函数“=Date($年,$月,$日)”。
“e3”中显示当前时间,双击该单元格,然后输入“=Time($时,$分,$秒)”。
设置单元格“d3”的格式为:常规—日期(YYYY年MM月DD日)。
组态软件基础及应用(组态王KingView)精品课件第一章

(6)可编程的命令语言。有可编程的命令语言,使用户可根据自己的需 要编写程序,增强图形界面。
(7)周密的系统安全防范,对不同的操作者,赋予不同的操作权眼,保
” 证整个系统的安全可靠运行。 (8)仿真功能。捉供强大的仿真功能使系统并行设计,从而缩短开发周 期。
”
第一章 组态王软件
1. 国外组态软件
(1)InTouch: Wonderware(万维公司)的InTouch软件是在上世 纪80年代末、90年代初进入中国的组态软件。InTouch提供了丰富的图库。 早期的InTouch软件采用DDE方式与驱动程序通信,性能较差, InTouch7.0 版已经完全基于32位的Windows平台,并且提供了OPC支持。
第一章 组态王软件
(6) MCGS:由北京昆仑通态自动化软件科技有限公司开发,分为
通用版、嵌入版和网络版,其中嵌入版和网络版是在通用版的基础开发
来的,在市场上主要是搭配硬件销售。
(7) 态神:态神是由南京新迪生软件技术有限公司开发,核心软件
产品初创于2005,是首款3d组态软件。
组态软件已经成为工业自动化系统的必要组成部分,因此吸引了大
象和控制目的组态,完成最终的自动化控制工程。
”
第一章 组态王软件
组态的概念最早出现在工业计算机控制中,如:DCS(集散控制系统)组 态、PLC(可编程控制器)梯形图组态;人机界面生成软件就叫工控组态软件 。在其他行业也有组态的概念,如AutoCAD,PhotoShop等。不同之处在于 ,工业控制中形成的组态结果是用在实时监控的。工控组态软件也提供编程 手段增强其功能,一般都是内置编译系统,提供类BASIC语言,有的支持VB ,现在有的组态软件甚至支持C#高级语言。
组态王历史报表、

创建历史数据报表历史数据报表创建过程如下:1、新建一価面,名押为:历史数据报表iffli面.2、选择工具箱中的工1工具,在颅而上输入文字:历史数据报表。
3、选择工具箱中的悟1工具,在岡面上绘制一历史数据报表窗口,控件名称为:Reports,并设计表格,如图8・17所 _______________________________________________A i「1 肋史2 09 瑕料输覆桂3456图8-17历史数据报表查询利用组态王提供的ReportSetHistData?的数町从组态王记录的历史库中按折定的赴始时间和时间间隔査询指定变虽的数据,设置过程如下:1、在価面中添加一按饥,按伍文本为:历史数据报表査询.2、在按粗的弹起爭件中输入如下命令ifi言.如图8JS所示:3.设置完毕后单击“文件"菜单中的“全部存”命令.保存您所作的设置。
4、单击“文件”菜单中的“切换到XTEW”命令,运厅此紳面・笊击“历史数据报表査询”按钮.弹出报表历史査询对话框.如图&19所示,报表历史査询对话框分二个履性页:报表属性页、时何属性页.变虽属性页.报表属性页:在报表属性页中您可以设置报表査询的显示恪式,此属性页设置如图8-19 所示。
时间属性页:在时间屈性页中您町以设置査询的起止时间以及査询的时间间隔.如图所示:图8・19图8-20变量属性页:在变虽叫性页中您可以选择欲査询历史数据的变忙.如图8・21所示:5. 设置完毕后单击•确定”按钮.原料油液位变虽的历史数据即可显示在历史数摇报 表控件中.从而达到了历史数据吉询的目的.如图8-22所示:图 8-22历史数据报表的其它应用一、1分钟数据报表演示利用报表窗口丁具结合组态王提供的命令语育可实现一个1分钟的数据报表•设置过程 如下:0*06/11/12 06/11/12 06/11/12 06/1142 06/1212 06/11/12柿16:24:44 15:25:44 15:26:44 15:27:44 15:28:44 15:29:44历史效抿报表用 S-211、新建一fli面.名松为:1分钟数据报表画面・2、选择工具箱中的工1工具,在曲而上输入文字:1分钟数据报表。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2)保存( ReportSaveAs ) )保存( 此函数为报表专用函数。 此函数为报表专用函数。将指定报表按照所给的文件名存储到指定目 录下,语法格式使用如下: 录下,语法格式使用如下: ReportSaveAs(ReportName, FileName) 参数说明:ReportName:报表名称; :报表名称; 参数说明 FileName:存储路径和文件名称 。 :
利用系统提供的命令语言可将实时数据报表以当前时间作为 文件名保存在指定的文件夹中, 文件名保存在指定的文件夹中,对于已经保存到文件夹中的 报表文件如何在组态王中进行查询呢? 报表文件如何在组态王中进行查询呢?利用组态王提供的下 拉式组合框与一报表窗口控件可以实现上述功能。 拉式组合框与一报表窗口控件可以实现上述功能。 查询过程: 查询过程:
ReprotPageSetup(String szRptName); 参数说明: 参数说明:szRptName:要进行页面设置报表的名称 。 : 例如:设置“实时数据报表” 例如:设置“实时数据报表” ReportPageSetup(“实时数据库表”)。 实时数据库表” 实时数据库表 。
4)打印预览设置ReportPrintSetup )打印预览设置 此函数对指定的报表进行打印预览并且可输出到打印配置中 指定的打印机上进行打印。 指定的打印机上进行打印。
8.2 历史数据报表
历史报表记录了以往的生产记录数据,对用户来说是非常 历史报表记录了以往的生产记录数据, 重要的。 重要的。
创建历史数据报表 • 新建一画面,名称为:历史数据报表画面。 新建一画面,名称为:历史数据报表画面。 • 在画面上输入文字:历史数据报表。 在画面上输入文字:历史数据报表。 • 在画面上绘制一历史数据报表窗口,控件名称为:历史报表,并设计表 在画面上绘制一历史数据报表窗口,控件名称为:历史报表, 所示: 格,如图 所示:
8.3 历史数据报表的其它应用
一、1 分钟数据报表演示
利用报表窗口工具结合组态王提供的命令语言可实现一 分钟的数据报表。 个1 分钟的数据报表。 设置过程如下: 设置过程如下: 新建一画面,名称为: 分钟数据报表画面。 新建一画面,名称为:1 分钟数据报表画面。 在画面上输入文字: 分钟数据报表。 在画面上输入文字:1 分钟数据报表。 在画面上绘制一报表窗口( ),控件名称为 控件名称为: 在画面上绘制一报表窗口(64 行5 列),控件名称为: 一分钟报表Report6,并设计表格,如图所示: 一分钟报表 ,并设计表格,如图所示:
当系统变量\\本站点 秒变化时 执行该脚本程序, 当系统变量 本站点\$秒变化时,执行该脚本程序,将变 本站点 秒变化时, 量每秒钟的数据自动写入报表控件中。 量每秒钟的数据自动写入报表控件中。
ReportSetCellString 将指定报表的指定单元格设置为给定字符串。 将指定报表的指定单元格设置为给定字符串。 语法格式使用如下: 语法格式使用如下: ReportSetCellString(ReportName, Row, Col, Value)
在工程浏览器窗口的数据词典中定义一个内存字符串变量: 在工程浏览器窗口的数据词典中定义一个内存字符串变量: 变量名: 变量名:报表查询变量 变量类型: 变量类型:内存字符串 初始值: 初始值:空 在画面上输入文字:实时数据报表查询。 在画面上输入文字:实时数据报表查询。 绘制一实时数据报表窗口,控件名称为: 绘制一实时数据报表窗口,控件名称为:Report2。 。
第八讲 报表
数据报表是反应生产过程中的过程数据、运行状态等, 数据报表是反应生产过程中的过程数据、运行状态等,并 对数据进行记录、统计的一种重要工具, 对数据进行记录、统计的一种重要工具,是生产过程必不 可少的一个重要环节。它既能反应系统实时的生产情况, 可少的一个重要环节。它既能反应系统实时的生产情况, 又能对长期的生产过程数据进行统计、分析, 又能对长期的生产过程数据进行统计、分析,使管理人员 能够掌握和分析生产过程情况。 能够掌握和分析生产过程情况。 组态王提供内嵌式报表系统, 组态王提供内嵌式报表系统,工程人员可以任意设置报表 格式,对报表进行组态。 格式,对报表进行组态。 组态王为工程人员提供了丰富的报表函数,实现各种运算、 组态王为工程人员提供了丰富的报表函数,实现各种运算、 数据转换、统计分析、报表打印等。 数据转换、统计分析、报表打印等。 工程人员还可以制作各种报表模板,实现多次使用, 工程人员还可以制作各种报表模板,实现多次使用,以免 重复工作。 重复工作。
ReportLoad
此函数为报表专用函数。将指定路径下的报表读到当前报 此函数为报表专用函数。 表中来,语法格式使用如下: 表中来,语法格式使用如下: ReportLoad(ReportName, FileName) 参数说明: 参数说明:ReportName:报表名称 : FileName:报表存储路径和文件名称 :
ReportSaveAs("Report1", "D:\教学 组态王 我的工程 生产车间 报 教学\组态王 我的工程2\生产车间 教学 组态王\我的工程 生产车间\报 表.rtl");
保存为rtl、 、 保存为 、xls、csv 格式
3)页面设置ReportPageSetup )页面设置 此函数为在运行状态下对报表进行页面设置函数
设置选中的单元格格式
输入静态文字: 输入静态文字:
单击“文件”菜单中的“全部存”命令,切换到 单击“文件”菜单中的“全部存”命令,切换到VIEW” 命令,进入运行系统。 命令,进入运行系统。
2、报表函数 、 报表在运行系统中、单元格中数据的计算、 报表在运行系统中、单元格中数据的计算、报表的操作等都是 通过组态王提供的一整套报表函数实现的。 通过组态王提供的一整套报表函数实现的。 报表函数分为报表内部函数、报表单元格操作函数、 报表函数分为报表内部函数、报表单元格操作函数、报表存取 函数、报表历史数据查询函数、统计函数、报表打印函数等。 函数、报表历史数据查询函数、统计函数、报表打印函数等。
“下拉式组合框”控件,控 下拉式组合框”控件, 下拉式组合框 件属性设置如图所示: 件属性设置如图所示:
在画面属性的命令语言 中输入如下命令语言: 中输入如下命令语言: string filename; filename=InfoAppDir()+"\实时数据文件夹 实时数据文件夹\*.rtl"; 实时数据文件夹 listClear("List1"); ListLoadFileName( "List1",filename); 上述命令语言的作用是将已经保存到“ 上述命令语言的作用是将已经保存到“当前组态王工程路 径下实时数据文件夹” 径下实时数据文件夹”中的实时报表文件名称在下拉式组 合框中显示出来。 合框中显示出来。
选择“命令语言”中的“数据改变命令语言”选项, 选择“命令语言”中的“数据改变命令语言”选项,在编 辑框中输入如下脚本语言, 辑框中输入如下脚本语言,
long row; row=\\本站点 秒+4; 本站点\$秒 本站点 ReportSetCellString("一分钟数据报表 2, 2,\\本站点 日期 一分钟数据报表", 本站点\$日期 一分钟数据报表 本站点 日期); ReportSetCellString("一分钟数据报表 row, 1, \\本站点 时间 一分钟数据报表", 本站点\$时间 一分钟数据报表 本站点 时间); ReportSetCellValue("一分钟数据报表 row, 2, \\本站点 原料油液位 一分钟数据报表", 本站点\原料油液位 一分钟数据报表 本站点 原料油液位1); ReportSetCellValue("一分钟数据报表 row, 3, \\本站点 催化剂液位 一分钟数据报表", 本站点\催化剂液位 一分钟数据报表 本站点 催化剂液位1); ReportSetCellValue("一分钟数据报表 row, 4, \\本站点 成品油液位 一分钟数据报表", 本站点\成品油液位 一分钟数据报表 本站点 成品油液位1); If(row==63) ReportSetCellString2("一分钟数据报表 4, 1, 63, 5, ""); 一分钟数据报表", 一分钟数据报表
8.1 实时数据报表 8.2 历史数据报表 8.3 历史数据报表的其它应用
8.1 实时数据报表
1、创建实时数据报表 、
新建一画面,名称为:实时数据报表画面。 新建一画面,名称为:实时数据报表画面。 在画面上输入文字:实时数据报表。 在画面上输入文字:实时数据报表。 在工具箱中选择“报表窗口” 在工具箱中选择“报表窗口”。
1)实时打印 ) ReportPrint2 此函数为报表专用函数。 此函数为报表专用函数。将指定的报表输出到打印配置中指定的打印机上 打印,语法使用格式如下: 打印,语法使用格式如下: ReportPrint2(ReportName) 自动打印:ReportPrint2(“ReportName”) 自动打印 或ReportPrint2(“ReportName”,1) , 手动打印: 手动打印 ReportPrint2(“ReportName”,0),弹出“ 打印属性” 对话框。 , ,弹出“ 打印属性” 对话框。
在画面中添加一按钮,按钮文本为:历史数据报表查询。 在画面中添加一按钮,按钮文本为:历史数据报表查询。 在按钮的弹起事件中输入如下命令语言: 在按钮的弹起事件中输入如下命令语言: ReportSetHistData2(1,1); ReportSetHistData2 此函数为报表专用函数。查询历史数据,系统会自动弹 此函数为报表专用函数。查询历史数据, 出历史数据查询对话框。 出历史数据查询对话框。 语法使用格式如下: 语法使用格式如下: ReportSetHistData2(StartRow,StartCol); 参数说明: 参数说明: StartRow:查询的数据在报表中填充的起始行数。 :查询的数据在报表中填充的起始行数。 StartCol:查询的数据在报表中填充的起始列数。 :查询的数据在报表中填充的起始列数。