组态王报表保存成excel
- 格式:doc
- 大小:245.00 KB
- 文档页数:3
《工业控制计算机》2009年22卷第9期工控组态软件有着较强的检测与控制功能,但在历史数据处理方面,只是提供了一些比较简单的查询、显示、打印函数供编程使用,如果要对历史数据进行复杂的处理就显得力不从心。
如果能将组态软件的历史数据导入Excel,利用Excel在数据处理方面的优势就可以拟补组态软件的不足。
本文讨论如何将组态王采集到的数据导入Excel的电子表格以实现复杂的报表功能。
1Kingview6.0的历史数据记录功能数据记录功能对于任何一个工业系统来说都是至关重要的,随着工业自动化程度的普及和提高,工业现场对重要数据的存储和访问的要求也越来越高。
组态王支持历史数据的记录功能,它有三种记录方式:数据变化记录、定时记录、备份记录。
被记录的数据可以存储在指定的路径下。
组态王的历史记录文件包括三种:觹.tmp、觹.std、觹.ev。
组态王的历史数据首先被保存到.tmp临时文件中,每小时生成一个。
每天的某整点时刻,运行系统读出当天的临时文件进行压缩,生成一个后缀名为.std的历史库记录文件,而每一年的记录生成一个后缀名为.ev的文件,专供历史趋势曲线调用。
历史记录文件最长可保存8000天。
当到达规定时间时,系统自动删除最早的历史记录文件。
2VBA简介使用VBA可以在Excel中导入组态王的历史数据。
VBA是Visual Basic for Application的简称,是Office办公软件的内置编程语言,是程序开发语言Visual Basic的子集,它采用事件驱动机制。
利用VBA可以在Excel中自定义工具栏、菜单、界面,并能通过脚本语言对数据进行复杂分析和操作。
Kingview6.0提供了VBA接口,应用此接口,用户可以在Excel 中编制VBA程序来访问组态王的历史数据库,生成报表。
Kingview6.0提供的VBA接口文件为“AccessHist.dll”,该文件位于Kingview6.0安装目录下。
组态王中的数据报表制作与保存组态王中的数据报表制作与保存摘要:本文主要介绍如果使用组态王来构建数据报表,并以EXCEL的格式在指定的文件路径保存。
关键字:组态王历史库数据报表制作保存一、引言数据报表是反应生产过程中的数据、状态等,并对数据进行记录的一种重要形式。
它既能反映系统实时的生产情况,也能对长期的生产过程进行统计、分析,使管理人员能够实时掌握和分析生产情况。
组态王提供内嵌式报表系统,工程人员可以任意设置报表格式,对报表进行组态。
组态王为工程人员提供了丰富的报表函数,实现各种运算、数据转换、统计分析、报表打印等。
既可以制作实时报表,也可以制作历史报表。
组态王还支持运行状态下单元格的输入操作,在运行状态下通过鼠标拖动改变行高、列宽。
另外,工程人员还可以制作各种报表模板,实现多次使用,以免重复工作。
二、数据报表的制作数据报表分为实时数据报表和历史数据报表2类。
报表的构建方法如下: 在画面内,使用工具箱中的报表窗口按钮创建一个报表窗口,如图1所示。
图1 创建后的报表窗口用鼠标双击报表窗口的灰色部分,弹出“报表设计”对话框,该对话框主要设置报表的名称、报表表格的行列数目以及选择套用表格的样式。
1、制作实时数据报表实时数据报表是实时显示相关变量的数据值,在报表窗口的单元格中直接引用变量来实现。
在报表的单元格中直接输入“=变量名”,既可在运行时在该单元格中显示该变量的数值,当变量的数据发生变化时,单元格中显示的数值也会被实时刷新。
2、制作历史数据报表历史数据报表是从组态王的历史库中查询相关变量的历史数据,并在历史数据报表内显示,因此对历史数据报表要查询的数据必须设置历史记录属性。
在组态王中,离散型、整型和实型变量支持历史记录,字符串型变量不支持历史记录。
组态王的历史记录形式可以分为数据变化记录、定时记录(最小单位为1分钟)和备份记录。
记录形式的定义通过变量属性对话框中提供的选项完成。
如图2所示。
图 2 记录属性设置在查询时,希望弹出一个对话框,可以在对话框上随机选择不同的变量和时间段来查询数据,可使用函数ReportSetHistData2(StartRow,StartCol)。
组态王历史数据导出到EXCEL表格1、新建画面,在画面里添加“报表窗口”.如图所示:2、添加按钮,命名“查询”,双击按钮,在“弹起时”编写命令语言ReportSetHistData2(1,1)3、添加按钮,命名“保存”,双击按钮,在“弹起时”编写命令语言ReportSaveAs("Report2","D:/12.xls");注意"Report2"与新建的报表窗口控件名一致。
"D:/12.xls"为数据导出至D盘文件名12的EXCEL文件,该文件是自动生成的,无需单独新建。
4、添加关闭画面按钮,同时在其他画面需要添加打开报表按钮(不详细介绍)。
5、画面编辑完毕,运行画面。
点击“查询”按钮,如图所示:“报表属性“可以设置报表的显示方式(不具体介绍)6、““时间属性”里设置查询的时间段和时间间隔,注意报表最多可一次查询20000条数据。
例如:时间间隔1S,最多一次可查询5.5小时时间段内的数据。
如果想查询下一时段的数据,需重新设置查询时间段,依次查询数据。
6、“变量选择”添加历史库变量,将所需要导出的变量添加到表格内,前提是这些变量在定义时,已做了变量记录。
如图所示:7、完成以上设置后,变量就会在报表内显示,点击“保存”,查询出来的数据就会保存进指定的EXCEL。
但是如果下次更改查询的时间段,保存后,该EXCEL数据表内的文件会被覆盖掉,因此每次保存完数据后需要将导出的EXCEL数据拷贝出来。
如果想避免每次导出EXCEL文件,有如下解决方法:1)在“数据词典”里,新建“内存字符串”变量,名为“存盘文件名“,变量的初始值为:D:/2)打开“报表画面”,保存按钮的命令语言改为ReportSaveAs("Report2",\\本站点\存盘文件名);3)添加文本变量“存盘文件名”,字符串输入输出分别连接新建的内存字符串变量,如图所示:4)运行后,如图所示:可以通过更改文本变量D:/11.XLS,将每次查询完保存的数据表名称更改,每次保存的数据就会形成一个EXCEL表格。
报表与打印1.如何实现历史报表的定时打印?[可以利用命令语言实现。
例如每天早八点打印一次,利用事件命令语言,在“事件描述”中写入事件 "$小时==8"在事件“发生时”执行函数"reportprint2("reportname")"即可。
]2.如何打印信息到针式打印机,以便实现逐行打印?[用函数FileWriteStr(Filename,FileOffset,Message,LineFeed); 函数实现,filename参数为“LPT1:”]即可,只能是针式打印机才能实现逐行打印]3.组态王中的打印函数PrintWindow()如何使用纸张的横向打印功能?[PrintWindow()函数的第二、三个参数不能够为0并且将打印机的纸张设置为横向即可;如:PrintWindow( "监控中心", 60,60, 0,10, 10);]4.如何清除组态王6.0报表单元格中的内容?[1、[组态王报表没有提供清除报表内容函数,但提供了设置报表单元格内容的函数,包括设置一个或多个单元格的字符或数据,可以使用这些函数ReportSetCellString2(ReportName, StartRow, StartCol, EndRow, EndCol, "") 、ReportSetCellString(ReportName, Row, Col,"")来清除报表单元格的内容,如设为空字符。
这种方式比较灵活,对固定格式的表格特别有效,2、如果报表格式不固定,一般建议是通过REPORTLOAD("","")函数重新调入表格模板来实现数据的清空。
3、采用关闭报表所在画面然后在打开方式,]5.如何利用组态王报表来实现数据统计?[报表内部函数是指只能在报表单元格内使用的函数,有数学函数、字符串函数、统计函数等。
附录 B利用 Excel 做报表输出附录 B利用 Excel 做报表输出一、“组态王”进展历史数据记录的方式按变化灵敏度记录假设在“数据库\变量定义”中使“是否记录”有效的话,“组态王”则对此变量自动进展历史记录。
由于“组态王”是以实时数据库为核心运转的,从下位机传送上来的数据,按肯定的频率刷实时数据库,每当刷实时数据库时,“组态王”便对作历史记录的变量进展推断,以便打算是否记录。
并不是每次刷实时数据库时,“组态王”便对作历史记录的变量进展记录,假设是那样的话,假定变量更频率为0.5 秒的话,那将每隔 0.5 秒作一个历史记录,这会造成硬盘空间的巨大铺张。
“组态王”是用数据压缩的方式进展记录,在“数据词典”中规定“是否记录”有效的同时,还需定义“记录变化灵敏度”,该域缺省值为1,用户应避开将其设为 0,除非该变量的刷频率很低。
“组态王”依据“记录变化灵敏度”对变量进展推断,只有当变量的变化幅度〔相对上一次历史记录点〕大于等于“记录变化灵敏度”值时,才对此变量作一实际变化曲线201612第N 个记录点84第一记录点第五记录点次记录,以下图描述了这种记录方式,假设规定某变量的变化灵敏度为4,则记录状况如下:“记录变化灵敏度”是一个很重要的参数,此值假设规定太大,会造成记录准确性下降,此值假设太小,则会造成记录点过多,用户应依据实际状况,选择此值大小。
☞定时记录在很多状况下,“组态王”承受变化灵敏度的方式对数据作历史记录的方式并不能满足用户的需求,例如:电力调度系统中,需要对电度量作整点记录。
假设承受灵敏度方式会造成硬盘空间的铺张,“组态王”通过”定时记录”功能,来满足这方面的需求 ,整点记录最小的时间间隔为一分钟。
二、历史数据在硬盘上的存储方式全部变量的历史记录会依据时间挨次统一存到硬盘上的带有时间信息的文件中。
每天生成一个文件,扩展名为“.std”。
“组态王”可以通过定义的网络构造进展网络存储。
三、组态王供给的 VBA 接口及其函数“组态王”的历史数据查询不仅能够通过组态王本身进展本地或远程的查询,包括报表、历史趋势曲线等形式。
组态王中的数据报表制作与保存组态王中的数据报表制作与保存摘要:本文主要介绍如果使用组态王来构建数据报表,并以EXCEL的格式在指定的文件路径保存。
关键字:组态王历史库数据报表制作保存一、引言数据报表是反应生产过程中的数据、状态等,并对数据进行记录的一种重要形式。
它既能反映系统实时的生产情况,也能对长期的生产过程进行统计、分析,使管理人员能够实时掌握和分析生产情况。
组态王提供内嵌式报表系统,工程人员可以任意设置报表格式,对报表进行组态。
组态王为工程人员提供了丰富的报表函数,实现各种运算、数据转换、统计分析、报表打印等。
既可以制作实时报表,也可以制作历史报表。
组态王还支持运行状态下单元格的输入操作,在运行状态下通过鼠标拖动改变行高、列宽。
另外,工程人员还可以制作各种报表模板,实现多次使用,以免重复工作。
二、数据报表的制作数据报表分为实时数据报表和历史数据报表2类。
报表的构建方法如下:在画面内,使用工具箱中的报表窗口按钮创建一个报表窗口,如图1所示。
图1 创建后的报表窗口用鼠标双击报表窗口的灰色部分,弹出“报表设计”对话框,该对话框主要设置报表的名称、报表表格的行列数目以及选择套用表格的样式。
1、制作实时数据报表实时数据报表是实时显示相关变量的数据值,在报表窗口的单元格中直接引用变量来实现。
在报表的单元格中直接输入“=变量名”,既可在运行时在该单元格中显示该变量的数值,当变量的数据发生变化时,单元格中显示的数值也会被实时刷新。
2、制作历史数据报表历史数据报表是从组态王的历史库中查询相关变量的历史数据,并在历史数据报表内显示,因此对历史数据报表要查询的数据必须设置历史记录属性。
在组态王中,离散型、整型和实型变量支持历史记录,字符串型变量不支持历史记录。
组态王的历史记录形式可以分为数据变化记录、定时记录(最小单位为1分钟)和备份记录。
记录形式的定义通过变量属性对话框中提供的选项完成。
如图2所示。
图 2 记录属性设置在查询时,希望弹出一个对话框,可以在对话框上随机选择不同的变量和时间段来查询数据,可使用函数ReportSetHistData2(StartRow,StartCol)。
报表与打印常见问题解答北京亚控科技发展有限公司2009年8月目录1. 报表 (1)1.1 组态王软件自带的报表窗口的行列设置限制是多少? (1)1.2 组态王软件自带的报表窗口的控件名称命名有什么特殊要求吗? (1)1.3 组态王软件自带的报表窗口控件,如何设定单元格数据显示的小数位数? (1)1.4 在组态王运行系统中,如何锁定报表的行和列? (1)1.5 在组态王运行系统中能否对报表单元格中的数据进行修改? (1)1.6 在组态王运行系统中如何清除报表单元格中的数据? (2)1.7 在组态王运行系统中,如何实现将组态王报表文件保存为以日期命名的文件? (2)1.8 组态王的历史记录属性中能够设置的定时记录最短时间是1分钟,如何实现1秒钟的定时记录功能? (2)1.9 在组态王中如何删除指定目录下的单个报表文件或多个报表文件? (3)1.10 如何打开组态王报表文件(*.rtl格式的文件)?能否使用其他应用程序打开? (3)1.11 能否对组态王报表控件中的行宽和列宽进行锁定? (3)1.12 在安装组态王的计算机A中能否读取另外一台安装组态王计算机B上面的报表文件?.......................................................................... 错误!未定义书签。
1.13 在组态王中实现以时分秒为文件名且每分钟保存一报表文件功能,当保存整点的报表时,指定文件夹内的文件名比实际时间少一个小时? (3)1.14 在组态王报表控件中对合并的单元格应如何计算它的行号和列号?...................................................................................................... 错误!未定义书签。
1.15 在组态王画面上如何得到指定变量在指定时间内的最大值、最小值和平均值?...................................................................................... 错误!未定义书签。
-WORD格式--可编辑-组态王常见问题的解决方法组态王虽然国内用的很多,但他的问题也很多,有时候弄起来真的很麻烦,比如一个简单的开机自动运行都要自己设置,下面是我在网上查到的一些内容。
组态王使用常见问题1、变量设定中最大(小)值及最大(小)原始值的意义?[最大(小)值是变量在现实中表达的工程值(如:温度、压力等)的大小,而最大(小)原始值是采集设备中 [寄存器 ] 数字量的最大(小)值(如板卡中的 819-4095 等)。
一般对于板卡设备此值为物理量经 AD 转换之后的值,如 12BitAD 此值范围 0~4096 、 16BitAD 为0~65535,对于 PLC 、智能仪表、变频器,其本身已将物理值转换为工程值所以此时最大(小)值与最大(小)原始值在设置时是一致的.2、为什么变量无法删除,如何删除变量?[在组态王中,只有未使用的变量才能被删除,因此在删除变量之前,必须去掉在画面或命令语言、控件引用处,等处与之有关的连接,如果还是无法删除,在工程浏览器中执行工具-更新变量计数命令,重新统计变量,在变量使用报告中可以查询变量是否还在某些地方使用,将其连接断开后,利用工具-删除未用变量将变量删除。
3、工程运行时,显示通讯协议组件失败?[设备驱动安装错误:1、安装新的驱动2、在开发状态下从新连接设备,如果还是有错误,请联系驱动部索要新的驱动程序]4、光盘上的典型案例无法打开?[将工程拷贝到硬盘上将属性改为存档即可5、如何在打开机器时自动进入组态王?[将 touchview 快捷方式拷贝到系统开始程序启动中6、怎样把工程文件变小?[可以删除 *.AL2 (报警信息文件), *.REC (历史记录文件), *.111文件( *.pic文件的备份文件)的文件。
7、如何在线增删用户及用户密码和权限?[使用 editusers()函数(用户权限需大于900) ]8、在定义变量的基本属性时状态栏中的保存数值、保存参数是什么意思?[保存参数:在系统运行时,修改变量的域的值(可读可写型),系统自动保存这些参数值,系统退出后,其参数值不会发生变化。
组态王报表保存成excel文件格式改变解决方案组态王内嵌的表格可以做成各种很精美的格式,也可以保存成.xls格式和.csv格式,但是原来的格式会荡然无存,很不方便。
下图是组态王报表格式(组态王6.52):下面是保存成excel之后的格式:下图是应用次解决方案后的最终效果图:下面我们来说明次方案的步骤:1.“打开文件”按钮命令语言:StartApp("F:\aa.xls");2.“文件另存为”按钮命令语言:ActivateApp("Excel.exe");ActivateApp("Excel.exe");SendKeys("%(f)abb.xls%(s)%(f)x");3.“文件转移”按钮命令语言:string filename;filename="F:\report\"+StrFromReal( \\本站点\$时, 0, "f" )+StrFromReal( \\本站点\$分, 0, "f" )+StrFromReal( \\本站点\$秒, 0, "f" )+".xls";ReportSaveAs("Report0",fileName);FileDelete( filename );FileMove( "F:\bb.xls", filename , DoneTag );说明:1.这部分是整个解决方案的核心。
利用的是组态王的报表可以保存成以时间为文件名的xls文件,同时FileMove这个函数在文件转移的时候的名字也是可以改变的。
2.“文件另存为”按钮和“文件转移”按钮里的命令语言不要写在一起,否则命令语言不执行,要让这个程序自动执行,可以做定时器实现。
4.组态王报表数据传递到excel组态王中建立excel 的dde连接,报表中所有数据均要建立dde变量,应用程序命令语言中通过赋值语言进行实时刷新。
组态王中的数据报表制作与保存组态王是一款常用的工业自动化软件,在工控领域内得到广泛应用。
在组态王中,可以通过界面配置的方式来实现自动化设备的运行控制和数据采集。
而对于数据的处理和展示,组态王提供了丰富的功能,其中数据报表的制作和保存是其中的重要功能之一。
本文将对组态王中数据报表制作和保存进行详细介绍。
1. 数据报表的制作在组态王中,数据报表的制作需要经过以下几个步骤:1.1 选择数据源首先,在组态王中选择需要展示的数据源,可以选择历史数据、实时数据、手动输入等多种数据源。
选择不同的数据源,会对后续报表的展示和数据处理产生不同的影响。
1.2 新建数据报表在选择了数据源之后,可以在组态王中新建数据报表。
新建数据报表的方法可以通过菜单栏“文件-新增-报表”来实现。
在新建报表时,需要指定报表的名称、报表的类型、和报表的模板。
报表的类型包括静态报表和动态报表,静态报表通常用于展示历史数据,而动态报表则用于实时展示实时数据和控制信息。
而报表的模板,则可以根据需要选择不同的报表样式,或者自定义报表模板。
1.3 设计报表模板在选择了报表模板之后,进入报表设计环节。
在报表设计环节中,需要完成以下几项工作:•将数据源字段拖放到报表中,以实现数据的展示。
•设计报表格式和样式,包括报表标题、表格格式、图表样式等。
•添加报表数据的筛选、过滤及排序方式,以满足不同场景下的数据展示需求。
•配置报表的输出方式,包括输出到本地、邮件、FTP等多种方式。
在完成了以上的工作之后,数据报表的制作就完成了。
此时,可以预览和调试报表,对格式进行微调等操作。
2. 数据报表的保存在组态王中,数据报表的保存可以分为两个部分:前端和后端。
2.1 前端保存在报表制作完成之后,可以通过菜单栏“报表-保存”或者快捷键CTRL + S来完成前端报表的保存。
前端保存包括以下内容:•报表的设计配置信息,包括字段、格式、样式、筛选排序等配置信息。
•报表的数据展示内容,例如表格、图表中的数据展示。
存表范例
(扩展名为xls,为Excel表格)
数据词典中定义以下两个为内存字符串的变量
在工程管理器中的自定义函数中输入以下程序
上图程序:
string filepath; //定义路径
string name; //文件名中转
string hour; //字符串,时间
string minute; //字符串,分钟
string second; //字符串,秒
string ret; //字符串,返回
filepath="D:\Excel\"; //存表路径,可分类存储
hour=strfromreal($时,0,"f"); //将实型转换成字符串
minute=strfromreal($分,0,"f"); //将实型转换成字符串
second=strfromreal($秒,0,"f"); //将实型转换成字符串
name=filename+$日期+hour+minute+second; //将输入的文件名和日期,时间组合成新的文件名ret=filepath+name+".xls"; //组合路径,文件名,扩展名
return ret; //返回值
下图为按钮中的程序:
上图程序:
报表路径=Reportname(报表); //报表为内存字符串
reportsaveas("AAA",报表路径); //报表路径为内存字符串,AAA为报表控件名称。
报表与打印常见问题解答北京亚控科技发展有限公司2009年8月目录1. 报表 (1)1.1 组态王软件自带的报表窗口的行列设置限制是多少? (1)1.2 组态王软件自带的报表窗口的控件名称命名有什么特殊要求吗? (1)1.3 组态王软件自带的报表窗口控件,如何设定单元格数据显示的小数位数? (1)1.4 在组态王运行系统中,如何锁定报表的行和列? (1)1.5 在组态王运行系统中能否对报表单元格中的数据进行修改? (1)1.6 在组态王运行系统中如何清除报表单元格中的数据? (2)1.7 在组态王运行系统中,如何实现将组态王报表文件保存为以日期命名的文件? (2)1.8 组态王的历史记录属性中能够设置的定时记录最短时间是1分钟,如何实现1秒钟的定时记录功能? (2)1.9 在组态王中如何删除指定目录下的单个报表文件或多个报表文件? (2)1.10 如何打开组态王报表文件(*.rtl格式的文件)?能否使用其他应用程序打开? (3)1.11 能否对组态王报表控件中的行宽和列宽进行锁定? (3)1.12 在安装组态王的计算机A中能否读取另外一台安装组态王计算机B上面的报表文件? (3)1.13 在组态王中实现以时分秒为文件名且每分钟保存一报表文件功能,当保存整点的报表时,指定文件夹内的文件名比实际时间少一个小时? (3)1.14 在组态王报表控件中对合并的单元格应如何计算它的行号和列号? 31.15 在组态王画面上如何得到指定变量在指定时间内的最大值、最小值和平均值? (3)1.16 使用组态王提供的kingreport.xls文件查询组态王历史数据,选择查询的工程后提示加载工程失败,为什么? (4)1.17 求报表中不为0的单元格数据的平均值? (4)1.18 为什么我使用ReportLoad()函数无法打开我使用ReportSaveas()函数保存的报表? (5)1.19 组态王的报表中如何实现报表数据的统计(如求和、求平均、检索最大最小值)? (5)1.20 组态王的报表能否直接保存成excel格式的文件,这样可以直接通过excel程序打开? (6)1.21 我使用组态王的报表控件制作工程报表,采用的ReportSetCellValue()来对报表控件进行后台填值操作,为什么当我显示报表时却是空白的? (6)1.22 在组态王运行系统中如何实现往报表单元格中插入数据? (6)1.23 组态王中扩展名为.rtl的文件是什么格式的文件?如何打开此类型的文件? (6)1.24 为什么在命令语言中使用报表函数却不执行? (7)2. 打印 (7)2.1 组态王软件对普通商业打印机的选择有什么要求? (7)2.2 组态王软件如何打印运行过程中的画面? (7)2.3 组态王软件的表格窗口的数据是如何进行打印输出的? (7)2.4 为什么用ReportPrint2()函数不能实现自动打印报表? (7)2.5 组态王软件的控件的数据是如何进行打印输出的? (8)2.6 在组态王中进行打印预览时,为什么不能进行打印方向的设置,如何解决? (8)1. 报表1.1组态王软件自带的报表窗口的行列设置限制是多少?组态王6.51及其以前版本,报表窗口的行列设置限制为2000行52列,对新版的组态王软件,报表窗口的行列设置限制有了改善,可以定义到20000行128列。
在本例中,假设“组态王”通过驱动程序从下位机采集数据,Excel又向“组态王”请求数据。
“组态王”既是驱动程序的“客户”,又充当了Excel 的服务器,Excel访问组态王的数据。
数据流向如下图所示。
具体步骤如下。
1、在“组态王”中定义设备在工程浏览器中,从左边的工程目录显示区中选择“设备”,然后在右边的内容显示区中双击“新建”图标,则弹出“设备配置向导”(设备的配置可请参见第六章 I/O设备管理,在这里比如建立了OMRON的PLC),已配置的设备的信息总结列表框如图18.7所示。
图18.7 设备安装向导定义的连接对象名为OMRON (也就是连接设备名),定义I/O变量时要使用此连接设备。
2、在“组态王”中定义I/O变量在工程浏览器左边的工程目录显示区中,选择“数据库\数据词典”,然后在右边的目录内容显示区中用左键双击“新建”图标,弹出“变量属性”对话框,在此对话框中建立一个I/O实型变量。
如图18.8所示。
变量名设为FromViewToExcel,这个名称由工程人员自己定义。
必须选择“允许DDE 访问”选项。
该选项用于组态王能够从外部采集来的数据传送给VB或EXCEL 或其它应用程序使用。
该变量的项目名为“OMRON.AR001”。
变量名在“组态王”中使用,项目名是供Excel引用的。
连接设备为OMRON,用来定义服务器程序的信息。
图18.8 定义IO变量3、创建画面在组态王开发系统中建立画面test1,如图18.9所示。
图18.9 组态王运行系统输出该变量为文本对象“%%%%%”设置“模拟值输出”动画连接,如图18.10所示。
图18.10 建立变量输出动画连接选择菜单“文件\全部存”,保存画面。
在工程浏览器中选择菜单“配置\运行系统”,弹出“运行系统配置”对话框,从对话框中选择主画面配置卡片,将画面test1设置为主画面。
4、启动应用程序启动“组态王”画面运行系统TouchVew。
TouchVew启动后,如果数据词典内定义的有I/O变量,TouchVew就自动开始连接。
组态王报表保存成e x c e l文件格式改变解决方案组态王内嵌的表格可以做成各种很精美的格式,也可以保存成.xls格式和.csv格式,但是原来的格式会荡然无存,很不方便。
下图是组态王报表格式(组态王6.52):下面是保存成excel之后的格式:下图是应用次解决方案后的最终效果图:下面我们来说明次方案的步骤:1.“打开文件”按钮命令语言:StartApp("F:\aa.xls");2.“文件另存为”按钮命令语言:ActivateApp("Excel.exe");ActivateApp("Excel.exe");SendKeys("%(f)abb.xls%(s)%(f)x");3.“文件转移”按钮命令语言:string filename;filename="F:\report\"+StrFromReal( \\本站点\$时, 0, "f" )+StrFromReal( \\本站点\$分, 0, "f" )+StrFromReal( \\本站点\$秒, 0, "f" )+".xls";ReportSaveAs("Report0",fileName);FileDelete( filename );FileMove( "F:\bb.xls", filename , DoneTag );说明:1.这部分是整个解决方案的核心。
利用的是组态王的报表可以保存成以时间为文件名的xls文件,同时FileMove这个函数在文件转移的时候的名字也是可以改变的。
2.“文件另存为”按钮和“文件转移”按钮里的命令语言不要写在一起,否则命令语言不执行,要让这个程序自动执行,可以做定时器实现。
4.组态王报表数据传递到excel组态王中建立excel 的dde连接,报表中所有数据均要建立dde变量,应用程序命令语言中通过赋值语言进行实时刷新。
组态王报表保存成excel文件格式改变解决方案
组态王内嵌的表格可以做成各种很精美的格式,也可以保存成.xls格式和.csv格式,但是原来的格式会荡然无存,很不方便。
下图是组态王报表格式(组态王6.52):
下面是保存成excel之后的格式:
下图是应用次解决方案后的最终效果图:
下面我们来说明次方案的步骤:
1.“打开文件”按钮命令语言:StartApp("F:\aa.xls");
2.“文件另存为”按钮命令语言:
ActivateApp("Excel.exe");
ActivateApp("Excel.exe");
SendKeys("%(f)abb.xls%(s)%(f)x");
3.“文件转移”按钮命令语言:
string filename;
filename="F:\report\"+StrFromReal( \\本站点\$时, 0, "f" )+StrFromReal( \\本站点\$分, 0, "f" )+StrFromReal( \\本站点\$秒, 0, "f" )+".xls";
ReportSaveAs("Report0",fileName);
FileDelete( filename );
FileMove( "F:\bb.xls", filename , DoneTag );
说明:
1.这部分是整个解决方案的核心。
利用的是组态王的报表可以保存成以时间为文件名的xls文件,同时FileMove这个函数在文件转移的时候的名字也是可以改变的。
2.“文件另存为”按钮和“文件转移”按钮里的命令语言不要写在一起,否则命令语言不执行,要让这个程序自动执行,可以做定时器实现。
4.组态王报表数据传递到excel
组态王中建立excel 的dde连接,报表中所有数据均要建立dde变量,应用程序命令语言中通过赋值语言进行实时刷新。
新保存指定文件名的excel解决方案:
1.建一个excel模板ee.xls(必要时隐藏最上一行)
2.复制模板到aa文件夹下ee.xls
3.导出excel到aa下的ee.xls
4.移动ee.xls到指定的文件夹下,可以用此移动命令改为想要的名字,如bb.xls
5.完成。
命令按钮如下
\\本站点\app_inf=InfoAppDir();
String adde; String adda; String addc; String addb;
adda=\\本站点\app_inf+"\aa.xls";
addc=\\本站点\app_inf+"\report";
addb=\\本站点\app_inf+"\report\aa.xls";
adde=\\本站点\导出+\\本站点\报告编号.Comment+".xls";
6.ReportSaveAs("曲线",adda); 导出excel到aa下的ee.xls
FileCopy(adda, addc, \\本站点\文件转移标志);
FileMove( addb,adde, \\本站点\文件转移标志);
filename=filename+\\本站点\$日期+StrFromint(\\本站点\$时,10)+"时"+StrFromint(\\本站点
\$分,10)+"分"+StrFromint(\\本站点\$秒,10)+"秒.xls";//建立一时间为文件名的EXECL文件
夹。