使用用户归档实现报表.doc_第1页
使用用户归档实现报表.doc_第2页
使用用户归档实现报表.doc_第3页
使用用户归档实现报表.doc_第4页
使用用户归档实现报表.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

使用用户归档实现报表简介Use User Archive Create ReportWeb Support Edition (20093)摘 要 简单介绍了用户归档,介绍如何通过用户归档和WinCC报表编辑器实现复杂报表。关键词 用户归档,报表Key Words User Archive ,Report目 录使用用户归档实现报表简介1一用户归档介绍4二用户归档的使用6三结合用户归档实现报表81数据的存储92报表布局的设计123报表输出14附录推荐网址17一用户归档介绍用户归档编辑器是一个WinCC的附加选件,需要安装相应的授权才能使用,否则只能使用DEMO模式。它可以用来在服务器 PC 上连续的保存来自技术过程的数据。 在图形编辑器中,可以组态 WinCC 用户归档表格元素来以表格显示运行系统中用户归档的在线数据。用户归档还可用于准备自动化系统(例如 S5、S7)的数据。如果必要,数据可以配方或设定值的形式从控制器读出。 用户归档编辑器提供两种数据库表格: 用户归档: 用户归档是用户可在其中创建自己的数据域的数据库表格。 用户归档用于存储数据,并根据 SQL 数据库规则提供对这些数据的标准化访问。 视图: 视图接收来自用户归档的数据并用于数据的相加,例如,为获得有关产品组的概述。其在WinCC默认情况下是不会被安装的。可以通过以下步骤安装。插入WinCC安装光盘,选择安装SIMATIC WinCC,弹出界面(图1),选择安装或者卸载的组件,在弹出的选择组件界面中左侧选择选项,右侧选中用户归档,点击下一步开始安装。图1 安装卸载 图2选择组件安装好后打开WinCC项目编辑器在项目的树状结构里会看到用户归档选项。如下图:图3用户归档至此用户归档安装完毕。二用户归档的使用双击用户归档,打开如下界面:图4 用户归档操作界面右击归档弹出插入新归档菜单,点击就会打开新建归档的界面。按照提示步骤依次输入归档名称和控制变量。图5创建用户归档图6 设置控制变量点击下一步,完成创建工作。控制变量是用户归档中很重要的概念,简单介绍如下:利用这四个控制变量,可以触发用户归档。 要触发用户归档,必须为“ID”和“Job”变量或“Job”、“Field”和“Value”变量提供相应的值。图7控制变量的功能 (说明:图中的读和写是站在用户归档的角度讲的,就是把变量的数据读到用户归档写到控制系统变量。从用户归档中把数据删除。)图8控制变量的组合(说明:该图中ID=-1,job=6的操作是把变量的值写入用户归档。ID=-1 job=7的操作是把用户归档的数据写入变量中。)控制变量提供了两种访问用户归档的方法:通过输入控制变量“ID”和“Job”,可以写入或读取或删除数据记录中的目标值。可以使用控制变量“Field”和“Value”代替控制变量“ID”来搜索数据记录。 通过控制变量“Job”,可以写入或读取或删除通过该方法选择的数据记录。 例如,如果必须将数据记录从表格中删除然后将其再添加到表格末尾,则可以使用该数据选择类型。 “值”域必须唯一,否则将采用域中满足该条件值的第一条数据记录。更详细的信息请参见WinCC的帮助系统选项用户归档。三结合用户归档实现报表针对论坛中提到的报表问题,可以结合用户归档实现。下面以下图的报表为例作一个说明:图9报表样例该报表主要功能是小时量的记录和班平均值的计算。下面分步介绍如果使用用户归档和WinCC自带的报表编辑器实现这样的报表。1数据的存储首先创建一个用户归档。选择该归档,在右侧空白处单击鼠标右键选择插入新域。如下图:图10创建域图11 创建域名图12和WinCC变量建立连接点击下一步,按照提示完成操作。最后对应要记录的每一个变量都创建一个域与之相对应。同时为了统计方便创建日期和时间域分别对应在WinCC中创建的字符串变量。创建的结果如下图:图13 创建好的归档在变量管理 SYSTEM INFO下创建变量用于取得系统小时值。如下图:图14创建触发变量创建写入动作:在WinCC的全局脚本中创建一个动作,通过变量MyID1的变化来触发。脚本如下:Dim riqiDim riqijiuSet riqijiu = HMIRuntime.Tags(riqijiu)Dim MyID1Set MyID1 = HMIRuntime.Tags(MyID1)Dim flagSet flag = HMIRuntime.Tags(flag)MyID1.Read flag.Read If flag.Value =1 Thenriqi=CStr(Year(Now)&-&CStr(Month(Now)&-&CStr(Day(Now)riqijiu.Read riqijiu.Write &riqi&Dim UA_jiu_IDSet UA_jiu_ID = HMIRuntime.Tags(UA_jiu_ID)Dim UA_jiu_JobSet UA_jiu_Job = HMIRuntime.Tags(UA_jiu_Job)UA_jiu_ID.Read UA_jiu_ID.Write -1UA_jiu_Job.ReadUA_jiu_Job.Write 6End if这样 一旦小时发生变化我们就完成了写入的动作。注意:一般刚激活WinCC时,会触发一次变量变化。为了避免写入无效的数据。此处增加了一个flag变量用于判断是否激活WinCC产生的事件。技巧:在全局脚本增加一个动作,通过flag自身的变化事件把flag置位(供参考)。2报表布局的设计新建一个页面布局,在布局中作如下设置:图15布局设置该布局需要注意的是:在平均处放置的是静态文本,布局中放置了六个ODBC数据库表控件。分别连接三个班的累计和平均值。ODBC数据库表控件的参数设置如下图:图16 ODBC控件属性设置该设置中需要说明的是:在ODBC数据源处选择想要连接的数据库,在变量处连接一个文本变量8位字符集类型的变量。在列数中事先填写上返回的字段数。对于布局列宽的调整可以通过控件的属性窗口设置实现。图17 修改列宽至此完成了对页面的设计。3报表输出创建一个新的打印任务连接新建的布局。图18 打印任务创建一个查询界面如下:图18 操作界面在查询测试按钮中写入如下脚本:Dim sqlriqijiuSet sqlriqijiu = HMIRuntime.Tags(sqlriqijiu)Dim sqljiuaSet sqljiua = HMIRuntime.Tags(sqljiua)Dim sqljiuaavgSet sqljiuaavg = HMIRuntime.Tags(sqljiuaavg)Dim sqljiubSet sqljiub = HMIRuntime.Tags(sqljiub)Dim sqljiubavgSet sqljiubavg = HMIRuntime.Tags(sqljiubavg)Dim sqljiucSet sqljiuc = HMIRuntime.Tags(sqljiuc)Dim sqljiucavgSet sqljiucavg = HMIRuntime.Tags(sqljiucavg)sqlriqijiu.Read 得到查询条件某一天如“2009-3-11” sqljiua.Read 返回A班的统计值和平均值sqljiua.Write select shijianjiu,var1,var2,var3,var4,var5,var6,var7,var8,var9,var10 from UA#DailyReport where riqijiu like &sqlriqijiu.Value&% and shijianjiu between 0 and 7 order by shijianjiu sqljiuaavg.Read sqljiuaavg.Write select avg(var1),avg(var2),avg(var3),avg(var4),avg(var5),avg(var6),avg(var7),avg(var8),avg(var9),avg(var10) from UA#DailyReport where riqijiu like &sqlriqijiu.Value&% and shijianjiu between 0 and 7 返回B班的统计值和平均值sqljiub.Read sqljiub.Write select shijianjiu,var1,var2,var3,var4,var5,var6,var7,var8,var9,var10 from UA#DailyReport where riqijiu like &sqlriqijiu.Value&% and shijianjiu between 8 and 15 order by shijianjiu sqljiubavg.Read sqljiubavg.Write select avg(var1),avg(var2),avg(var3),avg(var4),avg(var5),avg(var6),avg(var7),avg(var8),avg(var9),avg(var10) from UA#DailyReport where riqijiu like &sqlriqijiu.Value&% and shijianjiu between 8 and 15 返回C班的统计值和平均值sqljiuc.Read sqljiuc.Write select shijianjiu,var1,var2,var3,var4,var5,var6,var7,var8,var9,var10 from UA#DailyReport where riqijiu like &sqlriqijiu.Value&% and shijianjiu between 16 and 23 order by shijianjiu sqljiucavg.Read sqljiucavg.Write select avg(var1),avg(var2),avg(var3),avg(var4),avg(var5),avg(var6),avg(var7),avg(var8),avg(var9),avg(var10) from UA#DailyReport where riqijiu like &sqlriqijiu.Value&% and shijianjiu between 16 and 23 其实这三个班的代码都是一样的。所以只要会写一个班的查询语句,其余的修改查询条件就可以了。另外“UA#归档名称”就是对应用户归档里数据库的表名称。在执行打印中调用打印作业。RPTJobPreview(ReportJob);/Return-Type: BOOL至此:完成了所有的操作。先点击查询然后执行打印任务,那么输出的结果如下图:图18 输出结果备注:在使用测试项目时,必须保证系统中24小时数据的完整性。附录推荐网址SIMATIC HMI人机界面西门子(中国)有限公司 工业自动化与驱动技术集团 客户服务与支持中心网站首页:WinCC下载中心:/download/DocList.aspx?TypeId=0&CatFirst=1&CatSecond=9&CatThird=-1 HMI全球技术资源:/CN/view/zh/10805548/130000 “找答案”WinCC版区:/service/answer/category.asp?cid=1032 注意事项 应用示例与所示电路、设备及任何可能结果没有必然联系,并不完全相关。应用示例不表示客户的具体解决方案。它们仅对典型应用提供支持。用户负责确保所述产品的正确使用。这些应用示例不能免除用户在确保安全、专业使用、安装、操作和维护设备方面的责任。当使用这些应用示例时,应意识到西门子不对在所述责任条款范围之外的任何损坏/索赔承担责任。我们保留随时修改这些应用示例的权利,恕不另行通知。如果这些应用示例与其它西门子出版

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论