excel制作wincc报表

excel制作wincc报表

ID:9213089

大小:871.32 KB

页数:9页

时间:2018-04-23

excel制作wincc报表_第1页
excel制作wincc报表_第2页
excel制作wincc报表_第3页
excel制作wincc报表_第4页
excel制作wincc报表_第5页
资源描述:

《excel制作wincc报表》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、最近在网上看了些关于WINCC报表的资料,发现大多是西门子官网上的教材。大多数编程基础较弱的同仁们,估计很难达到预想的效果。下面我将用一个实例为大家详细的讲解下教材上的实现方法。一软件环境:1.OFFICE2003完整版。2.WINCC7.0SP2亚洲版。3.如果没有安装WINCC或者DataMonitor,就必须安装ConnectivetyPack。二实现思路1.在WINCC中新建测试项目。2.编辑Excel模板。3.编写宏。(重点)下面开始具体解析:第一步:在WINCC中新建测试项目,具体如何新建项目就不详细讲解。在新

2、建的项目中要达到如下要求:1.新建四个内部变量(test1,test2,test3,test4).2.将上面四个变量添加到变量记录中,归档周期为1分钟。将1分钟定时器设置成如下图:3.在全局脚本中新建全局动作,全局动作使test1,test2,test3,test4每分钟到发生变化(如:)4.将新建项目激活,产生数据记录。WINCC的准备工作就完成了。第二步:编辑EXCEL如下模板:在上图红色标注的部分是微软的日历控件,添加方法如下:在控件工具箱中选择“其它控件”,进行如下操作:把控件放到合适的位置并拖拽到合适的大小。第三

3、步:编写宏。1进入VBA的编辑界面:2新建两个子函数子函数:Set_Null代码如下:SubSet_Null()Form=4To27Forn=1To5Sheet1.Cells(m,n)=NullNextNextEndSub该函数主要是用来初始化表格。子函数:get_wincc_data代码如下:Subget_wincc_data()sDsn="CC_opc_test_14_08_25_16_31_51R"sPro="Provider=WinCCOLEDBProvider.1;"sDsn="Catalog="&sDsn&";

4、"sSer="DataSource=DUPANGFEIWinCC"sCon=sPro&sDsn&sSerSetconn=CreateObject("ADODB.Connection")conn.ConnectionString=sConconn.CursorLocation=3conn.OpenSetoRs=CreateObject("ADODB.Recordset")SetoCom=CreateObject("ADODB.Command")oCom.CommandType=1SetoCom.ActiveConnecti

5、on=connsStart=Year(DTPicker1.Value)&"-"&Month(DTPicker1.Value)&"-"&Day(DTPicker1.Value)&"00:00:00"sStop=Year(DTPicker1.Value)&"-"&Month(DTPicker1.Value)&"-"&Day(DTPicker1.Value)&"23:00:00"sStart=DateAdd("h",-8,CDate(sStart))sStop=DateAdd("h",-8,CDate(sStop))sSql="

6、TAG:R,('ProcessValueArchivetest1;"_&"ProcessValueArchivetest2;"_&"ProcessValueArchivetest3;"_&"ProcessValueArchivetest4'),'"&sStart&"','"&sStop&"'orderbydatetime,TimeStep=3600,1"oCom.CommandText=sSqlSetoRs=oCom.ExecuteIf(oRs.EOF)ThenoRs.CloseElseoRs.MoveFirsti

7、=0j=2Value_Old=oRs.Fields("ValueID").ValueDoWhileNotoRs.EOFValue_New=oRs.Fields("ValueID").ValueIfValue_Old<>Value_NewThenj=j+1i=0Value_Old=Value_NewEndIfSheet1.Cells(i+4,j)=oRs.Fields("RealValue").ValueGet_time=oRs.Fields("TimeStamp").ValueSheet1.Cells(i+4,1)=Hou

8、r(DateAdd("h",8,CDate(Get_time)))&":"&Minute(DateAdd("h",8,CDate(Get_time)))oRs.MoveNexti=i+1LoopoRs.CloseEndIf'Sheet1.Cells(1,6)=mEndSub(说明:上面标黄的部分是不需要

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。