wincc的excel报表实例

wincc的excel报表实例
wincc的excel报表实例

wincc的excel报表打印实例

因为ms word和excel的文档都支持html文本格式,因此可以先用word或excel做好模版,另存为Web页,然后将该html 改成jsp,将数据部分动态填入即可,不用很辛苦的调整格式

word页面只要在jsp头设置如下指令:

<%@page contentType="application/msword;charset=GBK" %>

excel如下:

<%@page contentType="application/vnd.ms-excel;charset=GBK" %>

使用这种方式客户端必须安装有office软件,用户访问时将在ie中直接用wor d或excel打开该页面。

此方法优势是模板设计、调整方便,无需在服务器端使用复杂的POI或jxl技术,也无需在客户端使用ActiveX控件技术,更安全、方便,轻松实现较好的打印效果。

简单示例:

使用word建立一文档,画表格如下:

----------------------------

| 用户名| 真实姓名| 性别|

----------------------------

| guest | 路人甲| 男|

----------------------------

保存为Web页test.htm,将test.htm改名为test.jsp,修改其中guest、路人甲、男为从数据库动态查询,如下:

<%@ page contentType="application/msword;charset=GBK" %>

<%@ page import="java.sql.*" %>

xmlns:w="urn:schemas-microsoft-com:office:word"

xmlns="http://www.w3.or g/TR/REC-html40">

用户信息

1

2003-08-20T16:26:00Z

2003-08-20T16:27:00Z

1

taiping

1

1

9.2812

<%

Class.forName("sun.jdbc.odbc.JdbcOdbcDr iver");

String url="jdbc:odbc:mydb";

//连接mydb数据库

Connection con=Driver Manager.getC onnection (url, "", "");

try{

Statement stmt=con.createStatement();

//查询employee表

ResultSet rs=stmt.executeQuery("select user_name, real_name, gender from employee ");

while(rs.next()){

%>

<%

} // end while

rs.close();

stmt.close();

} finally {

con.close();

}

%>

用户名

真实姓名

性别

<%=rs.getString("user_name")%>

<%=rs.getStr ing("real_name")%>

<%=rs.getStr ing("gender")%>

WINCC报表详解

在工业生产中报表一直占有非常重要的部分,它一般用来记录现场的工艺参数和统计信息。早期是由人工抄录然后统计出相关的报表。进入计算机控制阶段,这份工作就需要工控软件来实现。对于工控行业的工程师来说:如何开发适合用户需求的报表一直是个难题。论坛上很多人都在寻求灵活高效的解决方法。 经过这段时间的网上讨论。综合网友们的意见和建议,我们做了总结。并结合WinCC软件本身作了相关的说明。希望能对大家在以后的报表开发中有所帮助。 接下来就从报表的需求分析、WinCC报表系统的应用、复杂报表的WinCC报表系统实现这几个部分来分别介绍。最后总结出WinCC报表系统在应用的优缺点和常见的问题的解决方法。 一.报表的需求分析 从需求上来讲报表一般分为:内容上的需求、样式上和任务上的需求。 1.内容需求内容上一般涉及到数据的求和、平均、最大值、最小值等计算,同时也会涉及到关系的处理,比如班组相关对应信息的统计分析等。下面是一个很典型的报表需求,就很能说明这样的问题: 图1. 月报表分析 此报表是典型的工业现场应用,在数据采集没有难度。唯一的难度在于四班三倒后,每个月班的出勤日是不一样的,这样对于月报来说,计算出本月每个班的出勤日是需要些算法。此类报表在连续生产的行业需求很广泛。比如:钢铁冶金行业需要一天24小时不停运转的系统。 还有一种内容上是分总的关系,就是一部分是简单的数据记录,另一部分是对上一部分 数据的统计,比如汇总、求和、平均等。如下图也是很典型的应用。

图2. 总分报表 另外一种就是涉及到混合排列的问题,一张表上既有分项数据,中间也涉及到统计信息,同时也会添加一些实时的信息在上面。如下图。 图3. 复杂报表 这是一个复杂的报表,中间涉及到分项的记录,数据求平均,和一些操作信息的记录。既有历史数据也有实时信息。 当然更复杂的报表需求也是有的,比如说涉及到一张报表上既有实时信息又有历史信息同时还涉及趋势视图、报警信息等。用户自己可以灵活的定义报表的内容和样式。比如下图。

WinCC数据报表实现方法介绍

WinCC数据报表实现方法介绍 在工业生产中报表一直占有非常重要的部分,它一般用来记录现场的工艺参数和统计信息。早期是由人工抄录然后统计出相关的报表。进入计算机控制阶段,这份工作就需要工控软件来实现。对于工控行业的工程师来说:如何开发适合用户需求的报表一直是个难题。 接下来就从报表的需求分析、WinCC报表系统的应用、复杂报表的WinCC报表系统实现这几个部分来分别介绍。最后总结出WinCC报表系统在应用的优缺点和常见的问题的 解决方法。 1.报表的需求分析 从需求上来讲报表一般分为:内容上的需求、样式上和任务上的需求。 内容需求 内容上一般涉及到数据的求和、平均、最大值、最小值等计算,同时也会涉及到关系 的处理,比如班组相关对应信息的统计分析等。下面是一个很典型的报表需求,就很能说明这样的问题: 图1. 月报表分析 此报表是典型的工业现场应用,在数据采集没有难度。唯一的难度在于四班三倒后,每个月班的出勤日是不一样的,这样对于月报来说,计算出本月每个班的出勤日是需要些算法。此类报表在连续生产的行业需求很广泛。比如:钢铁冶金行业需要一天24小 时不停运转的系统。 还有一种内容上是分总的关系,就是一部分是简单的数据记录,另一部分是对上一部

分数据的统计,比如汇总、求和、平均等。如下图也是很典型的应用: 图2. 总分报表 另外一种就是涉及到混合排列的问题,一张表上既有分项数据,中间也涉及到统计信息,同时也会添加一些实时的信息在上面。如下图: 图3. 复杂报表 这是一个复杂的报表,中间涉及到分项的记录,数据求平均,和一些操作信息的记录。既有历史数据也有实时信息。 当然更复杂的报表需求也是有的,比如说涉及到一张报表上既有实时信息又有历史信息同时还涉及趋势视图、报警信息等。用户自己可以灵活的定义报表的内容和样式。比

最新wincc生成excel

1 给wincc中通过vbs写excel的方式做报表的初学者一点脚本我对该帖子不做任何限制,都可以自由拷贝使用。方便初学者学习! //log子程序,40个数据记录,总共记录一周时间,写入excel,放到wincc 全局脚本中一分钟运行一次 //如果是要整点报表也简单,判断一下当前的系统时间,t的初始值根据当前时间定义。 //本程序主要是演示数据记录的过程。 //在c:\建立一个excel文件,该文件可以是你的报表模版 Option Explicit Function action Dim objExcelApp,objExcelbook,objExcelSheet Dim tagshijian,sheetname,username,zhushi Dim tagday Dim a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a1 8,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32,a33,a34,a3 5,a36,a37,a38,a39,a40

Dim i,j,t,count Dim msg Dim patch,fn Dim d,m,y,oh,mm,ss d=" " m="-" y="-" oh=":" mm=":" ss="" msg="记录报表成功" fn=CStr(Year(Now))&CStr(Month(Now))&CStr(Day(Now)) patch="c:\"&fn&".xls" Set a1=HMIRuntime.Tags("a1") Set a2=HMIRuntime.Tags("a2") Set a3=HMIRuntime.Tags("a3") Set a4=HMIRuntime.Tags("a4") Set a5=HMIRuntime.Tags("a5")

用户归档实现wincc报表

使用用户归档实现报表简介Use User Archive Create Report

摘要 简单介绍了用户归档,介绍如何通过用户归档和WinCC报表编辑器实现复杂报表。 关键词 用户归档,报表 Key Words User Archive ,Report IA&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

wincc生成excel

给wincc中通过vbs写excel的方式做报表的初学者一点脚本 我对该帖子不做任何限制,都可以自由拷贝使用。方便初学者学习! //log子程序,40个数据记录,总共记录一周时间,写入excel,放到wincc 全局脚本中一分钟运行一次 //如果是要整点报表也简单,判断一下当前的系统时间,t的初始值根据当前时间定义。//本程序主要是演示数据记录的过程。 //在c:\建立一个excel文件,该文件可以是你的报表模版 Option Explicit Function action Dim objExcelApp,objExcelbook,objExcelSheet Dim tagshijian,sheetname,username,zhushi Dim tagday Dim a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21, a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32,a33,a34,a35,a36,a37,a38,a39,a40 Dim i,j,t,count Dim msg Dim patch,fn Dim d,m,y,oh,mm,ss d=" " m="-" y="-" oh=":" mm=":" ss="" msg="记录报表成功" fn=CStr(Year(Now))&CStr(Month(Now))&CStr(Day(Now)) patch="c:\"&fn&".xls" Set a1=HMIRuntime.Tags("a1") Set a2=HMIRuntime.Tags("a2") Set a3=HMIRuntime.Tags("a3") Set a4=HMIRuntime.Tags("a4") Set a5=HMIRuntime.Tags("a5") Set a6=HMIRuntime.Tags("a6") Set a7=HMIRuntime.Tags("a7") Set a8=HMIRuntime.Tags("a8") Set a9=HMIRuntime.Tags("a9") Set a10=HMIRuntime.Tags("a10") Set a11=HMIRuntime.Tags("a11") Set a12=HMIRuntime.Tags("a12") Set a13=HMIRuntime.Tags("a13") Set a14=HMIRuntime.Tags("a14") Set a15=HMIRuntime.Tags("a15")

在wincc 中怎么做才能把报表生成按日期的excel 文件

在wincc 中怎么做才能把报表生成按日期的excel 文件在wincc 中怎么做才能把报表生成按日期的Excel 文件 VBS脚本实现,就是把文件名称以变量的形式表示。参考 '关闭保存 Dim patch,filename filename=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 patch objExcelApp.Workbooks.Close objExcelApp.Quit Set objExcelApp= Nothing 对于Excel报表,用VBS最灵活,Excel 定义好格式后wincc来填空,平均累计值就用Excel 的功能。 Dim excelapp Dim aa,bb,cc Set excelapp = CreateObject("Excel.Application") Set aa = HMIRuntime.tags("tag1") excelapp.visible = False'True excelapp.workbooks.open "D:\excel.xls" bb = Now 'getcurrent_datetime() aa.Read MsgBox CStr(bb) excelapp.cells(1,1).value = "rrrrrr"'111111 excelapp.cells(1,2).value = CStr(bb)

WinCC和EXCEL数据传递

1、DDE简介 动态数据交换(DDE)是基于Windows的消息机制,两个Windows应用程序通过相互之间传递消息进行“对话”,这两个程序被分别称为“服务器”和“客户”。DDE服务器是一个维护着其他Windows程序可能使用的数据程序,而DDE 客户则是从服务器获得这些数据的程序。 DDE对话是由客户程序发动的。客户程序将一条称为WM_DDE_INTITIATE的消息发给当前运行的所有Windows 程序,这条消息指明了客户程序所需要的数据类别,拥有这些数据的DDE服务器可以响应这条消息,这样一个对话就 开始了。 DDE的对话方式有3种: ①服务器数据变化时,直接把数据送给客户,由客户对这些数据进行处理,这类对话方式称为热链;②服务器的数据变化时,服务器通知客户,再由客户取数据,这种方式称为温链;③由客户申请数据、 服务器发送数据的方式称为冷链。 一、Wincc作为DDE的客户端,Excel作为DDE服务器(本地) 1、在变量管理上按鼠标右键--添加新的驱动程序--选“windows dde.chn” 图1 2、在DDE上按鼠标右键--新驱动程序连接--点属性,在其连接属性中: “计算机名称”为空;“应用程序”为excel;“主题”为[]工作表名,比如[DDE.xls]sheet1。

图2 3、在DDE\excel下建变量,在变量属性中选择地址,条目名称填:r行数c列数,比如r1c1(表示第一行 第一列的单元格),重复步骤3可以加入更多的DDE变量 图3 4、Excel程序 图4 Wincc程序 图5 5完成

用OPC做比较省事。 WinCC做OPC Server,Excel做OPC Client。 这种情况下,WinCC端不需要做任何设置,只要在Excel 里用少量的代码就能实现双方的通讯。 对于WINCC与S7-300的通讯,首先要确定PLC的通讯口类型,PLC一般都集成了MPI/DP口,还可以安装通讯模块。计算机(PC)上安装适当的通讯卡(不同的通讯卡支持的通讯协议不同)。看你需要啦! 其次是WINCC软件里的通讯协议要与PC机对应。WINCC提供了SIMATIC S7 PROTOCOL SUITE 通讯驱动程序,包含了多种通讯协议! 最终还有自己亲自实际操作了才有深刻的了解的!! Sub X6309X94AE9X0000X6539_OnClick(Byval Item) Dim fso,myfile Set fso = CreateObject("scripting.FileSystemObject") Set MyFile = fso.GetFile("d:\Excelcode.xls") Dim ObjExcelApp Set objExcelApp = CreateObject("Excel.Application") 'objExcelApp.Visible = True objExcelApp.Workbooks.Open MyFile '上面的程序段是为了打开d盘下叫Excelcode.xls名字的excel文件 objExcelApp.worksheets ("sheet1").Cells(1, 1).VAlue = HMIRuntime.Tags("usercodenew1").read objExcelApp.ActiveWorkbook.Save '上面两行的作用是将wincc变量"usercodenew1"的值写到Excel表中的A1格子里面,并且保持一下 Dim coldold Set coldold=HMIRuntime.Tags("usercodeold1") coldold.Value = objExcelApp.worksheets ("sheet1").Cells(1, 1).value '上面这两句的作用是将刚才保持到Excel表格中的数据重新读回wincc,存到"usercodeold1"变量中,当然现在其实并没有存入"usercodeold1"变量,只是存在了叫coldold的临时变量里面 objExcelApp.Workbooks.Close objExcelApp.Quit Set ObjEXceLapp = Nothing '到这里为止,我们可以通过上面的语句关闭刚才打开的excel程序了 coldold.Write '最后是把读到的excel值从临时变量coldold中写入它对应的"usercodeold1"变量中 End Sub 上面这个例子已经调试通过。网上有很多wincc值写入excel中的例子,一直找不到从excel中读取数据到wincc中的例子,结合网上朋友的一些经验,这里给出个小例子,供大家参考。

Wincc报表Excel

Sub OnClick(Byval Item) Dim MyVar1 Dim MyVar2 Dim objExcel Dim wb Dim xlsheet Dim rangee Dim Years,mounth,Days,hours,min,sec,daysweek Dim jj,kk,year1,mounth1,Days1,hours1,min1,sec1 Dim yi,er,san,si,wu,i,i1,lei,lei1,lei2,lei3,lei4,lei5 Dim zhou,yue,nian Dim shi,feng,miao,mytime Dim MyHour,MyMinute,myday,mymonth,myyear,a,b,c,d,e,f Set MyVar1=HMIRuntime.Tags("MyVar1") MyVar1.Write Date Set MyVar2=HMIRuntime.Tags("MyVar2") MyVar2.Write Time year1 = CStr(MyVar1.value) mounth1 = CStr(MyVar2.value) kk="d:\report2\" jj=".xls" Set yi = HMIRuntime.Tags("hunhe_1") yi.Read Set er = HMIRuntime.Tags("hunhe_2")

er.Read Set san = HMIRuntime.Tags("hunhe_3") san.Read Set si = HMIRuntime.Tags("hunhe_4") si.Read Set wu = HMIRuntime.Tags("hunhe_5") wu.Read Set objExcel = CreateObject("Excel.Application") objExcel.Visible = True Set wb=objExcel.Workbooks.Open ("c:\ExcelExample2.xls") Set xlsheet = wb.sheets("Sheet1") xlsheet.range("B4").Value=yi.Value xlsheet.range("C4").Value=er.Value xlsheet.range("D4").Value=san.Value xlsheet.range("E4").Value=si.Value xlsheet.range("F4").Value=wu.Value wb.SaveAs kk & year1 & jj wb.CLOSE objExcel.quit wb=Nothing

wincc的excel报表实例

因为ms word和excel的文档都支持html文本格式,因此可以先用word或excel做好模版,另存为Web 页,然后将该html改成jsp,将数据部分动态填入即可,不用很辛苦的调整格式 word页面只要在jsp头设置如下指令: <%@page contentType="application/msword;charset=GBK" %> excel如下: <%@page contentType="application/vnd.ms-excel;charset=GBK" %> 使用这种方式客户端必须安装有office软件,用户访问时将在ie中直接用word或excel打开该页面。 此方法优势是模板设计、调整方便,无需在服务器端使用复杂的POI或jxl技术,也无需在客户端使用ActiveX控件技术,更安全、方便,轻松实现较好的打印效果。 microsoft关于服务器端动态创建office文档的资料(asp示例): https://www.360docs.net/doc/9816651213.html,/default.aspx?scid=KB;en-us;301044& 简单示例: 使用word建立一文档,画表格如下: ---------------------------- | 用户名 | 真实姓名 | 性别 | ---------------------------- | guest | 路人甲 | 男 | ---------------------------- 保存为Web页test.htm,将test.htm改名为test.jsp,修改其中guest、路人甲、男为从数据库动态查询,如下: <%@ page contentType="application/msword;charset=GBK" %> <%@ page import="java.sql.*" %> 用户信息