《excel制作wincc报表》由会员分享,可在线阅读,更多相关《excel制作wincc报表(9页珍藏版)》请在金锄头文库上搜索。
1、最近在网上看了些关于 WINCC 报表的资料,发现大多是西门子官网上的教材。大多数 编程基础较弱的同仁们, 估计很难达到预想的效果。 下面我将用一个实例为大家详细的讲解 下教材上的实现方法。 一 软件环境: 1. OFFICE2003 完整版。 2. WINCC 7.0 SP2 亚洲版。 3. 如果没有安装 WINCC 或者 DataMonitor ,就必须安装 Connectivety Pack。 二 实现思路 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 代码如下: Sub Set_Null() For m = 4 To 27 For n = 1 To 5 Sheet1.Cells(m, n) = Null Next Next End Sub 该函数主要是用来初始化表格。 子函数: get_wincc_data 代码如下: Sub get_wincc_data() sDsn = “CC_opc_test_14_08_25_16_31_51R“ sPro = “Provider=WinCCOLEDBProvider.1;“ sDsn = “C
4、atalog=“ “ sSer = “Data Source=DUPANGFEIWinCC“ sCon = sPro “ _ “ _ “ _ “ sDsn = “Catalog=“ “ sSer = “Data Source=DUPANGFEIWinCC“ sCon = sPro “ _ “ _ “ _ “ _ “ _ “ _ “ _ “ _ “ _ & “ProcessValueArchivetest4), 查询多个变量名。& sStart & 查询的起始时间,& sStop & 查询的终止时间, order by datetime ,TimeStep = 3600,1“查询排序和查询时间间
5、隔(单位:秒) 。 在其它项目中使用时,上述代码中只需要更改变量名就可以了。 数据查询和处理: oCom.CommandText = sSql Set oRs = oCom.Execute If (oRs.EOF) Then oRs.Close Else oRs.MoveFirst i = 0 j = 2 Value_Old = oRs.Fields(“ValueID“).Value Do While Not oRs.EOF Value_New = oRs.Fields(“ValueID“).Value If Value_Old Value_New Then j = j + 1 i = 0 V
6、alue_Old = Value_New End If Sheet1.Cells(i + 4, j) = oRs.Fields(“RealValue“).Value Get_time = oRs.Fields(“TimeStamp“).Value Sheet1.Cells(i + 4, 1) = Hour(DateAdd(“h“, 8, CDate(Get_time) & “:“ & Minute(DateAdd(“h“, 8, CDate(Get_time) oRs.MoveNext i = i + 1 Loop oRs.Close End If Sheet1.Cells(1, 6) = m End Sub 对数据做出处理,将数据放到表格中。在这段代码中有一些关于 VBA 的知识和 VBA 一 些语法。还有就是数据放到表格中的什么地方。亲们好好看下,很简单,很容易明白。这段 代码很灵活,可以根据实现需求更改。 调试完成运行效果图如下: