用VB实现WinCC归档数据的复杂报表
- 格式:pdf
- 大小:241.71 KB
- 文档页数:4
用VBS脚本实现,就是把文件名称以变量的形式表示。
参考'关闭保存Dim patch,filenamefilename=CStr(Year(Now))&CStr(Month(Now))&CStr(Day(Now))&CStr(Hour(N ow))+CStr(Minute(Now))&CStr(Second(Now))patch= "d:\"&filename&"demo.xls"objExcelApp.ActiveWorkbook.SaveAs patchobjExcelApp.Workbooks.CloseobjExcelApp.QuitSet objExcelApp= Nothing对于Excel报表,用VBS最灵活,Excel定义好格式后wincc来填空,平均累计值就用Excel的功能。
Dim excelappDim aa,bb,ccSet excelapp = CreateObject("Excel.Application")Set aa = HMIRuntime.tags("tag1")excelapp.visible = False'Trueexcelapp.workbooks.open "D:\excel.xls"bb = Now 'getcurrent_datetime()aa.ReadMsgBox CStr(bb)excelapp.cells(1,1).value = "rrrrrr"'111111excelapp.cells(1,2).value = CStr(bb)excelapp.cells(2,2).value = CStr(aa.value)excelapp.cells(3,2).value = CInt(aa.value)excelapp.cells(4,2).value = CSng(aa.value)excelapp.cells(5,2).value = CDbl(aa.value)excelapp.cells(6,2).value = CLng(aa.value)excelapp.cells(3,3).value = ScreenItems("33").outputvalueexcelapp.cells(4,4).value = ScreenItems("35").outputvaluecc = "D:\excel" + Mid(CStr(bb), 1, 4)+ Mid(CStr(bb), 6, 2)+ Mid(CStr(bb), 9, 2) + Mid(CStr(bb), 12, 2)+ Mid(CStr(bb), 15, 2)+ Mid(CStr(bb), 18, 2) + ".xls" MsgBox ccexcelapp.DisplayAlerts = False '对打开的文件,直接保存时,避免弹出对话框窗口,而是直接覆盖excelapp.activeworkbook.saveas cc '根据当前日期时间,另存为新的文件'excelapp.activeworkbook.save ’对打开的文件,直接保存'excelapp.activeworkbook.saveAs "D:\excelcopy.xls" ’直接另存为新的文件excelapp.workbooks.closeexcelapp.quitSet excelapp = Nothing第一段:Option ExplicitFunction actionDim fso,myfile,daystr,dstr,fnamedstr = FormatDateTime(Date)fname="d:\" + dstr + ".xls"Set fso = CreateObject("s cripting.FileSystemObject")Set MyFile = fso.GetFile("d:\ExcelExample.xls")MyFile.Copy (fname)End Function第二段:Option ExplicitFunction actionDim fso,myfilep,daystr,dstr,fnameSet fso = CreateObject("s cripting.FileSystemObject")dstr = FormatDateTime(Date)HMIRuntime.Tags("i").write fso.GetAbsolutePathName("")fname=HMIRuntime.ActiveProject.Path++dstr+.xlsDim ObjExcelAppSet objExcelApp = CreateObject("Excel.Application")objExCelApp.Visible = TrueobjExcelApp.Workbooks.Open fnameDim ii=1Do While objExcelApp.worksheets ("sheet1").Cells(i, 1).VAlue<>""i=i+1LoopobjExcelApp.worksheets ("sheet1").Cells(i, 2).VAlue = HMIRuntime.Tags("I-COD").read objExcelApp.worksheets ("sheet1").Cells(i, 3).VAlue = HMIRuntime.Tags("I-SS").readobjExcelApp.worksheets ("sheet1").Cells(i, 4).VAlue = HMIRuntime.Tags("I-PH").readobjExcelApp.worksheets ("sheet1").Cells(i, 5).VAlue = HMIRuntime.Tags("I-F").readobjExcelApp.worksheets ("sheet1").Cells(i, 6).VAlue = HMIRuntime.Tags("I-FI").readobjExcelApp.worksheets ("sheet1").Cells(i, 7).VAlue = HMIRuntime.Tags("O-COD").read objExcelApp.worksheets ("sheet1").Cells(i, 8).VAlue = HMIRuntime.Tags("O-SS").readobjExcelApp.worksheets ("sheet1").Cells(i, 9).VAlue = HMIRuntime.Tags("O-NH4N").read objExcelApp.worksheets ("sheet1").Cells(i, 10).VAlue = HMIRuntime.Tags("0-P").readobjExcelApp.worksheets ("sheet1").Cells(i, 11).VAlue = HMIRuntime.Tags("O-F").read objExcelApp.worksheets ("sheet1").Cells(i, 12).VAlue = HMIRuntime.Tags("O-FI").read objExcelApp.worksheets ("sheet1").Cells(i, 1).VAlue =NowobjExcelApp.ActiveWorkbook.SaveobjExcelApp.Workbooks.ClosEobjExcelApp.QuiTSet ObjEXceLapp = NothingEnd Functionc。
使用用户归档实现报表简介Use User Archive Create Report摘要 简单介绍了用户归档,介绍如何通过用户归档和WinCC报表编辑器实现复杂报表。
关键词 用户归档,报表Key Words User Archive ,ReportIA&DT Service & Support Page 2-17目录使用用户归档实现报表简介 (1)一.用户归档介绍 (4)二.用户归档的使用 (6)三.结合用户归档实现报表 (8)1.数据的存储 (9)2.报表布局的设计 (12)3.报表输出 (14)附录-推荐网址 (17)IA&DT Service & Support Page 3-17一.用户归档介绍用户归档编辑器是一个WinCC的附加选件,需要安装相应的授权才能使用,否则只能使用DEMO模式。
它可以用来在服务器 PC 上连续的保存来自技术过程的数据。
在图形编辑器中,可以组态 WinCC 用户归档表格元素来以表格显示运行系统中用户归档的在线数据。
用户归档还可用于准备自动化系统(例如 S5、S7)的数据。
如果必要,数据可以配方或设定值的形式从控制器读出。
用户归档编辑器提供两种数据库表格:用户归档: 用户归档是用户可在其中创建自己的数据域的数据库表格。
用户归档用于存储数据,并根据 SQL 数据库规则提供对这些数据的标准化访问。
视图: 视图接收来自用户归档的数据并用于数据的相加,例如,为获得有关产品组的概述。
其在WinCC默认情况下是不会被安装的。
可以通过以下步骤安装。
插入WinCC安装光盘,选择安装SIMATIC WinCC,弹出界面(图1),选择安装或者卸载的组件,在弹出的选择组件界面中左侧选择选项,右侧选中用户归档,点击下一步开始安装。
图1 安装卸载IA&DT Service & Support Page 4-17图2选择组件安装好后打开WinCC项目编辑器在项目的树状结构里会看到用户归档选项。
基于SQL2005的WINCC复杂报表实现方法The Implementation method of complex Wincc report based on SQL2005董洪垒王静波河北联合大学电气工程学院摘要:本文介绍了在Wincc组态环境中,基于SQL数据库和VB-Scirpt编程语言实现自定义Wincc复杂报表的操作方法,结合数据库和VB语言详细阐述了如何对数据进行自定义归档、查询以及导出和编辑。
基于模块化的思想,将报表的结构分为数据归档、数据查询、数据显示和数据打印四个模块。
详细介绍了各个模块的设计思路以及编程方法,从而有效解决了在Wincc7.0环境中实现复杂数据报表的问题。
关键词:WINCC SQL数据库 复杂报表Abstract:This paper introduces the wincc7.0configuration environment,and VB-Scirpt based on SQL database programming language to implement custom WinCC operating method of complex reports,combining database and VB language detailing how to customize the data archiving, query, export and edit. Based on modular thinking, to file reports, structured data, data query, data display and data printing up to four modules. Details on each module design ideas and programming methods, so as to effectively address the complex data reporting issues implemented in a wincc7.0 environment.Keywords: wincc SQL database complex reports0 引言目前在工控领域比较流行的组态软件主要有Wincc、组态王等,以上软件在工业现场应用中对于数据的监控等方面功能强大,但是在报表生成以及处理方面却功能有限,主要表现为格式较为固定单一,灵活性不高。
WinCC数据报表实现方法介绍 How use WinCC create data report摘要本文对数据报表的需求进行了分析,结合WinCC就复杂数据报表的实现进行了介绍。
关键词WinCC,报表Key Words WinCC, ReportIA&DT Service & Support Page 2-34目录WinCC数据报表实现方法介绍 (1)1.报表的需求分析 (4)1.1内容需求 (4)1.2报表样式和打印任务 (6)2.WinCC的报表系统 (7)2.1数据存储 (7)2.2数据分析和输出 (9)3.复杂报表的WinCC报表系统实现分析 (12)3.1普通归档结合Connectivity Pack实现报表 (12)3.2用户归档实现分总式报表 (19)4.WinCC报表功能总结 (24)5.使用脚本和EXCEL实现实时数据报表 (24)5.1在WINCC中使用VBS脚本通过EXCEL实现实时数据报表 (24)5.2如何使用EXCEL访问WinCC中的实时数据实现报表 (28)IA&DT Service & Support Page 3-34在工业生产中报表一直占有非常重要的部分,它一般用来记录现场的工艺参数和统计信息。
早期是由人工抄录然后统计出相关的报表。
进入计算机控制阶段,这份工作就需要工控软件来实现。
对于工控行业的工程师来说:如何开发适合用户需求的报表一直是个难题。
论坛上很多人都在寻求灵活高效的解决方法。
经过这段时间的网上讨论。
综合网友们的意见和建议,我们做了总结。
并结合WinCC 软件本身作了相关的说明。
希望能对大家在以后的报表开发中有所帮助。
接下来就从报表的需求分析、WinCC报表系统的应用、复杂报表的WinCC报表系统实现这几个部分来分别介绍。
最后总结出WinCC报表系统在应用的优缺点和常见的问题的解决方法。
1.报表的需求分析从需求上来讲报表一般分为:内容上的需求、样式上和任务上的需求。
搬家第四天-91.WinccV7.3使⽤⽤户归档实现报表1-⽤户归档+Activex控件曾经写过⼀篇博客,记录使⽤MSHFGrid控件⽣成报表以及导出到excel的⽅法,⾥⾯有⼀段VBS脚本是定期把变量值存⼊⼀个⾃定义的sql 数据表,然后在MSHFGrid显⽰查询到的记录集,最后把MSHFGrid结果导出到excel中。
使⽤⽤户归档后,实际上定期存⼊变量值这⼀步可以变得更加简单,不需要写那么多sql脚本了,重点控制好id=-1和job=6就⾏了。
本⽂简单介绍⽤户归档结合MSHFGrid控件实现报表的⽅法。
我们假设下位机已经设置完毕并且变量已经上载到Wincc。
1. 先定义和配置⼀个⽤户归档,具体⽅法参考其他博客。
2. 由于没有实际硬件,我们可以使⽤随机函数的⽅法模拟产⽣现场来的数据,随机函数可以写在项⽬模板⾥⾯,具体⽅法参考其他博客。
3. 新建vbs全局动作,把随机函数赋给各变量Option ExplicitFunction actionDim FT101,FT102,FT103,PT101,PT102,PT103,TT101,TT102,TT103,LT101,LT102,LT103Set FT101=HMIRuntime.Tags("S7$程序(1)/FT101")Set FT102=HMIRuntime.Tags("S7$程序(1)/FT102")Set FT103=HMIRuntime.Tags("S7$程序(1)/FT103")Set PT101=HMIRuntime.Tags("S7$程序(1)/PT101")Set PT102=HMIRuntime.Tags("S7$程序(1)/PT102")Set PT103=HMIRuntime.Tags("S7$程序(1)/PT103")Set TT101=HMIRuntime.Tags("S7$程序(1)/TT101")Set TT102=HMIRuntime.Tags("S7$程序(1)/TT102")Set TT103=HMIRuntime.Tags("S7$程序(1)/TT103")Set LT101=HMIRuntime.Tags("S7$程序(1)/LT101")Set LT102=HMIRuntime.Tags("S7$程序(1)/LT102")Set LT103=HMIRuntime.Tags("S7$程序(1)/LT103")FT101.Write MyRnd(100,200)FT102.Write MyRnd(110,220)FT103.Write MyRnd(120,230)PT101.Write MyRnd(100,200)PT102.Write MyRnd(110,220)PT103.Write MyRnd(120,230)TT101.Write MyRnd(100,200)TT102.Write MyRnd(110,220)TT103.Write MyRnd(120,230)LT101.Write MyRnd(100,200)LT102.Write MyRnd(110,220)LT103.Write MyRnd(120,230)End Function4. 新建全局动作,把数据定期存⼊⽤户归档数据表Option ExplicitFunction actionDim CurDate,CurTimeDim id,jobSet CurDate=HMIRuntime.Tags("CurDate")Set CurTime=HMIRuntime.Tags("CurTime")Set id=HMIRuntime.Tags("@UA_ID")Set JOB=HMIRuntime.Tags("@UA_JOB")CurDate.Write Date()CurTime.Write Time()id.Write -1job.Write 6End Function5. 画⾯上放⼀个DTPicker控件,名字修改为DTP,放⼀个MSHFGrid控件,名字修改为Report,放⼀个按钮,按钮⿏标点击VBS脚本为Sub OnClick(ByVal Item)Dim DT,Report,DBName,PCNameDim conn,ssql,ors,ocom,sconDim sYear,sMonth,sDay,sDateSet DT=ScreenItems("DTP")Set Report=ScreenItems("Report")Set DBName=HMIRuntime.Tags("@DatasourceNameRT")Set PCName=HMIRuntime.Tags("@LocalMachineName")sYear=Year(DTP.Value)sMonth=Month(DTP.Value)sDay=Day(DTP.Value)sDate=sYear & "/" & sMonth & "/" & sDay'Msgbox sDatescon="Provider = SQLOLEDB.1;Integrated Security=SSPI;Persist SecurityInfo=False;Initial Catalog ='" _& DBName.Read & "';Data Source = " & PCName.Read & "\WINCC"ssql="select Curdate as '⽇期',Curtime as '时间',FT101 as '流量1',FT102 as '流量2',FT103 as '流量3'," _& "PT101 as '压⼒1',PT102 as '压⼒2',PT103 as '压⼒3',TT101 as '温度1',TT102 as '温度2',TT103 as '温度3'," _ & "LT101 as '液位1',LT102 as '液位2',LT103 as '液位3' from UA#UA where Curdate='" & sDate & "'"Set conn=CreateObject("ADODB.Connection")conn.ConnectionString=sconconn.Cursorlocation=3conn.openSet ors=CreateObject("ADODB.RecordSet")Set ocom=CreateObject("mand")mandtype=1Set ocom.ActiveConnection=connmandText=ssqlSet ors=ocom.ExecuteSet Report.DataSource=orsReport.RefreshSet ors=Nothingconn.closeSet conn=NothingEnd Sub从MSHFGrid控件导出到Excel的脚本就不在这⾥写了,请参考其他的博客。
一、报表建立本次项目要求:所有测量变量在一个工作周期结束后进行存储,也就是事件触发,不同与以往的周期触发。
1、要求能存储字符串类型的数据,所以本次报表使用用户归档来实现,因为变量记录工具是不能存储字符串类型数据的。
而且用户归档控件的事件触发比变量记录要灵活的多。
2、要求可以将数据导出到EXCEL表格中。
实现对数据的编辑。
具体实现方法如下:第1项不用过多在意,了解一下即可,从第2项起为主要内容。
第1项的作用就是讲解怎样触发用户归档存储数据的。
1、在建立报表前首先要新建两个系统变量,用于日期和时间的存储。
在WINCC组态环境内——右击变量管理——单击添加新的驱动程序——找到System Info.chn——单击打开如下图建立两个变量分别为riqi 和shijian——作为日期和时间的存储变量。
再建立两个控制变量,此变量需要与下位机程序进行连接。
分别为A_ID、A_JOP在下位机程序里进行编写,当自控程序运行完一边后将这两个变量分别赋值-1、6赋值结束后再将0赋给这两个变量。
程序如下图此目的是用于用户归档数据存储时事件触发条件,在后面用户归档建立会详细描写。
2、建立用户归档WINCC在第一次安装完后是没有用户归档控件的,需要再次将光盘插入重新安装一次,在选项中将用户归档添加进行安装。
单击下一步先点击创建,在创建变量完成后,将上面建立的两个变量A_ID/A_JOP分别添加到ID和指令内,方法:单击选择按钮——浏览变量添加即可。
此项是用于数据存储触发的。
也就是当ID和指令分别为-1和6时用户归档存储一次数据。
详细如下图单击完成实现对用户归档的创建。
3、创建VB脚本动作,是用于用户归档事件触发的动作,没有此动作用户归档将无法存储数据。
方法:打开VB脚本——单击文件——新建——动作。
然后将下面程序写入即可。
Function actionDim xiaoshiDim riqiDim flagSet flag = HMIRuntime.Tags("flag")flag.ReadIf flag.Value =1 Thenriqi=CStr(Year(Now))&"-"&CStr(Month(Now))&"-"&CStr(Day(Now))Dim A_IDSet A_ID = HMIRuntime.Tags("A_ID")Dim A_JOPSet A_JOP = HMIRuntime.Tags("A_JOP")A_ID.ReadA_ID.Write -1A_JOP.ReadA_JOP.Write 6End If输入完之后将其保存。
利用VB实现WinCC归档数据处理段培永;王玉红;李慧【摘要】While WinCC is able to configure interface and archive data as a powerful HMI system, it is inadequate for complex data processing such as data query, computing and statistics. In this paper, the WinCC archiving database is connected with Access database and EXcellbased on VB, then an exe file is generated and can be directly called by WinCC, in which case experimenters can select data storage method and path according to their preferences and accomplish conditional query and complex processing for data.%WinCC是一款功能强大的HMI系统,它可以组态界面并可以对数据进行归档,但是对于一些复杂的数据处理如数据查询,计算和统计,就显得力不从心.文章利用 VB 编程工具建立了 WinCC 的归档数据库与 Access数据库和EXCEL的连接,并生成了.exe文件,通过WinCC的直接调用,实验人员可以根据自己的喜好去选择数据存储方法和路径,实现数据的有条件查询和复杂处理.【期刊名称】《计算机系统应用》【年(卷),期】2013(000)010【总页数】4页(P139-142)【关键词】WinCC归档数据;查询;Access;Excel【作者】段培永;王玉红;李慧【作者单位】山东建筑大学信息与电气工程学院,济南 250101; 山东省智能建筑技术重点实验室,济南 250101;山东建筑大学信息与电气工程学院,济南250101; 山东省智能建筑技术重点实验室,济南 250101;山东省智能建筑技术重点实验室,济南 250101【正文语种】中文WinCC是西门子公司与微软共同开发的一款优秀的工控组态软件,具有友好的组态界面,可实现变量趋势显示、历史数据查看、报警以及数据归档等功能,广泛地应用于各种工业系统的数据采集及监控系统中,某高校筹建的太阳能与浅层地热能复合系统实验室即引进了一套基于PLC和WinCC的数据采集和监控系统,实现了数据的自动采集和存储,但是实验人员需要对数据进行有条件的查询,输出备份并进行相关的处理以及打印,对于这些需求,WinCC就显得力不从心.有关资料介绍了用SQL技术直接访问WinCC的背景数据库,但是WinCC V6.2以后,数据均以压缩形式归档,需要由WinCC专门的驱动以及查询语言进行访问,对于不熟悉SQL数据库知识的实验人员操作起来会比较困难,因此,为了满足实验人员对数据查询和处理的要求,本着人性化,便捷化的原则,文章利用VB编程工具开发了一个.exe应用程序,通过WinCC的直接调用,实验人员可以自由查询数据并根据自己的喜好去选择数据存储方法和路径,实现数据的有条件查询和复杂处理.选用VB6.0编程工具,建立ACCESS数据库和EXCEL文件与归档数据库的连接,生成应用程序,通过WinCC的直接调用,使其集成到系统监控界面中,将Access强大的数据库处理功能和EXCEL便捷的报表编辑、处理和打印功能集合在一起,实验人员通过直观的界面,输入需要查询的条件即可对数据进行查询和处理,真正达到了实验建设的信息化和自动化要求.方案的提出基于一下几点特性的支持:1)WinCC的数据开放性[1]WinCC以Microsoft技术为后盾,几乎集成了Microsoft所有的开放性技术,采用标准的MS SQL Server作为组态数据和归档数据的存储数据库,对其访问方法有多种包括WinCC OLE-DB、MS OLE-DB、OPC HDA等.OLE-DB是一种快速访问不同数据的开放性标准.与大家都熟悉的ODBC标准不同,它是建立在COM和DCOM基础之上的,数据库的连接是通过一个数据库的提供者而建立的,通过西门子厂商提供的WinCC OLD DB Provider,可以是实现对WinCC 数据库的透明访问.2)VB强大的数据库处理功能[2,3]开发工具VB6.0作为WinCC数据库和ACCESS与EXCEL联系的桥梁,见图1: VB6.0内置的数据库引擎 ADO(ActiveX Data Object),是VB支持的一种最新的数据库访问模式,被用来同新的数据访问层OLEDB Provider协同工作, ADO继承了连接ODBC数据源方式,可以使用任何一种ODBC数据源,实现VB与WinCC数据库,Access数据库无缝连接.OLE即对象的连接和嵌入技术,可以实现应用程序之间的数据以及功能共享,利用OLE自动化编程在VB中使用Excel对象,完成与Excel 的无缝连接[4].2.1 连接方法WinCC V6.2以后,归档数据以压缩形式存储在背景数据库中,普通的 Microsoft OLE–DB provider无法读取并解密出WinCC的归档数据,访问这些经过压缩的二进制数据块,需要采用独特的OLE-DB provider—WinCC OLE-DB provider,而且访问语法也与访问一般数据库不同.ADO通过WinCC OLE-DB Provider访问数据库的连接字符串结构如下:其中,Catalog—WinCC运行数据库,他的名称一般是"CC_工程名_年_月_日_时_分_秒R";Data Source—访问本地计算机时为“.\WinCC”,访问远程计算机时为“Computer Name\WinCC”.以上这些信息可以在ODBC数据源中获得,获得方式如下:运行WinCC,在Windows操作系统的控制面板-管理工具—ODBC(数据源)中会动态添加两条数据源 :CC_SQLshiya_12_05_31_20_06_09 和 CC_ SQLshiya_12_05_31_20_06_09R,其中第二条数据源即为WinCC的归档数据库.对于不同的运行系统生成的数据库名称不同,因此设计采用手动设定数据库的连接字符串的方法来实现对不同数据库的访问.设定界面如图2所示:2.2 查询过程值方法查询WinCC过程值归档语法有其特有的格式:其中ValueID:数据库表中的ValueID.ValueName: ArchiveName\ValueName 格式的ValueName值.TimeBegin:起始时间TimeEnd:终止时间,格式为 YYYY-MM-DD hh.mm.ss.查询过程值首先要获得变量的名称,通过访问运行数据库下Archive表来获得,Archive数据表中存放的是变量ID与变量名称的对应关系,不经过压缩存档,直接用SQL查询语法进行访问,连接关键字符如下:查询语法如下:实验人员可以通过查询界面的下拉菜单来选择要查询的变量.同时设定查询的时间范围,在界面的MSHFlexGrid控件中显示出查询的数据.WinCC归档变量的时间采用通用协调时(UTC,Universal Time Coordinated)时间,滞后北京时间8小时,所以得到归档数据后,时间需要做调整.在VB中可以使用DateAdd函数来进行转换.查询结果如图3所示:以上是实现了对变量的自由查询,在实验过程中需要对查询到的数据进行备份和处理以及打印等操作,设计将ACCESS强大的数据库处理功能以及EXCEL的报表编辑和打印功能集合在一起,实验人员可以根据需要选择存储方式将数据导出.3.1 与ACCESS的连接在VB中使用ADO对象模型实现与Access数据库的连接,ADO连接主要包含Connection、Command、Recordset以及Parameter等,完成了传输模块中的主要部分.Connection用来指向特定的数据库;Com-mand用以对数据源完成插入、删除、修改或查询等操作;Recordset用以返回查询结果.方法如下:1)在连接数据库前,需要在Visual Basic 6.0菜单“工程”—“引用”中选择Microsoft ActiveX Data Objects 2.6 Library组件以及Microsoft ActiveX Data Objects Ext.for DDL and Security组件(实现对ADO对象和编程模型的扩展)2)利用代码创建数据库和表,实验人员可以自定义数据库的名称以及库中表的名称,表的格式在后台进行了定义,一共有三个字段,分别为“ID”,“Time”,“Value”,创建代码如下:3)将查询的归档数据库的记录集写入Access数据库中,由于要把字段中的时间转换为北京时间,记录集的写入分字段进行,代码如下:Access数据库创建和输出操作界面如图4,用户根据自己的需要建立Access数据库,定义表名,使数据操作更人性化.3.2 与EXCEL的连接用VB编写直接控制Excel操作的程序,方法是用VB的OLE自动化技术获取Excel 的句柄,从而控制Excel的一系列操作,其方法如下:1)在VB工程中引用Microsoft Excel类型库,从“工程”菜单中选择“引用”栏,选择Microsoft Excel 9.0 Object Library2)在通用对象的声明过程中定义excel对象3)创建新实例,获取Excel的控制句柄,创建Excel应用类.Set newxls=CreateObject("excel.application")4)创建工作簿和工作表,定义EXCEL输出格式.5)将查询数据导入到Excel在WinCC中图形界面中添加按钮控件,在鼠标动作中选择C动作,利用ProgramExecute函数实现对.exe应用程序的调用.这样实验人员就可以在WinCC 界面上直接启动应用程序,进行数据的查询与打印.根据对实验数据进行处理的要求,用VB编写了对WinCC历史数据进行查询,报表打印的应用程序.综合了Access存储数据的灵活性以及EXCEL报表打印功能,使实验人员在不熟悉编程语言的情况下可以对应用程序进行傻瓜式操作,程序已在实验室项目中成功应用,效果良好.【相关文献】1苏昆哲.深入浅出西门子WinCCV6.北京:航空航天大学出版社,2004.2张玉生.Visual Basic程序设计与上机实验指导.上海:华东理工大学出版社,2006.3胡冰.黎洪生.基于Access数据库的WinCC组态软件报表系统的研究.自动化与仪器仪表,2007(1):30−32.4李金锁.周华.梁慧杰.贾涛.WinCC的查询打印功能在天津无缝钢管厂的应用.机械工程与自动化,2007(2):155−157.5高春燕,李艳,谷伟东.Visual Basic数据库关键技术与实例应用.北京:人民邮电出版社,2004.。
WinCC实现数据报表的方法作者:郝军华来源:《硅谷》2013年第15期摘要文章根据原料数据报表的分析,介绍通过WinCC实现数据采集报表的方法。
关键词 WinCC;报表中图分类号:TP311 文献标识码:A 文章编号:1671-7597(2013)15-0080-02钢铁冶金工业原料消耗统计一直被企业重视,它一般用来确定原料场的原料备料和统计信息。
多年以前是由专人手抄录原料消耗相关的数据做成报表。
计算机现已成为人们生活中不可缺少的辅助工具,统计原料数据可通过计算机自动记录来实现。
对于自动化软件编程的工程师来说,如何开发、编写程序适合各个企业需求的报表格式软件一直是个棘手的问题。
所有人都在寻求灵活、高效的方法。
经过很长时间思考,查找资料并多次试验。
结合同事们给出的意见和建议,结合WinCC 软件本身作了相关的手册,自动生成EXCELL表格,本人做了实验并获得成功。
1 开发环境及数据记录格式作为西门子公司提供的监控、操作软件—WinCC针对用户各种需求提供了非常强大的数据记录功能,来完成各个企业对数据自动存储的需求。
从几个方面进行分析:数据记录、数据比较和数据打印。
这也是记录报表数据问题的经典思路。
2 具体实现方法对于数据记录,能自动灵活的存储生产数据的累积并汇总结果那是再好不过的了。
对于WinCC监控软件过程变量归档属性,自动记录数据到数据库中,并且能够从归档变量功能中方便的控制数据归档的记录和内容。
如下图。
认真总结这个操作画面,差不多可以自由编辑所有需要的各种数据统计记录存储类型。
1)定时的存储。
2)非定时的动作记录触发。
3)动作自动触发的定时存储。
在生产数据记录存储上WinCC可以方便的计算出平均数值、最大数值、最小数值等存储数据。
变量归档过程数据的读取,本人能够应用WinCC的控件中在线表格、WinCC Report 编辑控件中本身附带的打印功能,WINCC从PLC采集的实时数据,通过以太网接口存储数据到Microsoft SQLServer2005中,利用WinCC自带的VBS开发,访问MicrosoftSQLServer2005数据,对实时数据进行复杂的操作,可以通过VBS调用Excel,显示和打印出美观复杂的报表用户归档。