《2022年用户归档实现wincc报 .pdf》由会员分享,可在线阅读,更多相关《2022年用户归档实现wincc报 .pdf(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、使用用户归档实现报表简介Use User Archive Create Report Web SupportEdition(2009 3)名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 17 页 -IA&DT Service&Support Page 2-17摘要 简单介绍了用户归档,介绍如何通过用户归档和WinCC报表编辑器实现复杂报表。关键词 用户归档,报表Key Words User Archive,Report名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 17 页 -IA&DT Service&Support Page 3-17目录使用用户归档实现报表简介
2、.1一用户归档介绍.4二用户归档的使用.6三结合用户归档实现报表.81数据的存储.92报表布局的设计.123报表输出.14附录推荐网址.17名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 17 页 -一用户归档介绍 用户归档编辑器是一个WinCC的附加选件,需要安装相应的授权才能使用,否则只能使用 DEMO 模式。它可以用来在服务器 PC 上连续的保存来自技术过程的数据。在图形编辑器中,可以组态 WinCC 用户归档表格元素来以表格显示运行系统中用户归档的在线数据。用户归档还可用于准备自动化系统(例如 S5、S7)的数据。如果必要,数据可以配方或设定值的形式从控制器读出。用户归档
3、编辑器提供两种数据库表格:用户归档:用户归档是用户可在其中创建自己的数据域的数据库表格。用户归档用于存储数据,并根据 SQL 数据库规则提供对这些数据的标准化访问。视图:视图接收来自用户归档的数据并用于数据的相加,例如,为获得有关产品组的概述。其在 WinCC默认情况下是不会被安装的。可以通过以下步骤安装。插入WinCC安装光盘,选择安装SIMATIC WinCC,弹出界面(图1),选择安装或者卸载的组件,在弹出的选择组件界面中左侧选择选项,右侧选中用户归档,点击下一步开始安装。图 1 安装卸载 IA&DT Service&Support Page 4-17名师资料总结-精品资料欢迎下载-名师
4、精心整理-第 4 页,共 17 页 -图 2 选择组件 安装好后打开WinCC项目编辑器在项目的树状结构里会看到用户归档选项。如下图:图 3 用户归档 至此用户归档安装完毕。IA&DT Service&Support Page 5-17名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 17 页 -二用户归档的使用 双击用户归档,打开如下界面:图 4 用户归档操作界面 右击归档弹出插入新归档菜单,点击就会打开新建归档的界面。按照提示步骤依次输入归档名称和控制变量。图 5 创建用户归档 IA&DT Service&Support Page 6-17名师资料总结-精品资料欢迎下载-名师精
5、心整理-第 6 页,共 17 页 -图 6 设置控制变量 点击下一步,完成创建工作。控制变量是用户归档中很重要的概念,简单介绍如下:利用这四个控制变量,可以触发用户归档。要触发用户归档,必须为“ID”和“Job”变量或“Job”、“Field”和“Value”变量提供相应的值。图 7 控制变量的功能 (说明:图中的读和写是站在用户归档的角度讲的,就是把变量的数据读到用户归档写到控制系统变量。从用户归档中把数据删除。)IA&DT Service&Support Page 7-17名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 17 页 -图 8 控制变量的组合(说明:该图中ID=-
6、1,job=6的操作是把变量的值写入用户归档。ID=-1 job=7的操作是把用户归档的数据写入变量中。)控制变量提供了两种访问用户归档的方法:通过输入控制变量“ID”和“Job”,可以写入或读取或删除数据记录中的目标值。可以使用控制变量“Field”和“Value”代替控制变量“ID”来搜索数据记录。通过控制变量“Job”,可以写入或读取或删除通过该方法选择的数据记录。例如,如果必须将数据记录从表格中删除然后将其再添加到表格末尾,则可以使用该数据选择类型。“值”域必须唯一,否则将采用域中满足该条件值的第一条数据记录。更详细的信息请参见WinCC的帮助系统 选项 用户归档。三结合用户归档实现报
7、表 针对论坛中提到的报表问题,可以结合用户归档实现。下面以下图的报表为例作一个说明:IA&DT Service&Support Page 8-17名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 17 页 -图 9 报表样例 该报表主要功能是小时量的记录和班平均值的计算。下面分步介绍如果使用用户归档和 WinCC自带的报表编辑器实现这样的报表。1数据的存储 首先创建一个用户归档。选择该归档,在右侧空白处单击鼠标右键选择插入新域。如下图:图 10 创建域 IA&DT Service&Support Page 9-17名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 17
8、页 -图 11 创建域名 图 12 和 WinCC变量建立连接 点击下一步,按照提示完成操作。最后对应要记录的每一个变量都创建一个域与之相对应。同时为了统计方便创建日期和时间域分别对应在WinCC中创建的字符串变量。创建的结果如下图:IA&DT Service&Support Page 10-17名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 17 页 -图 13 创建好的归档 在变量管理?SYSTEM INFO下创建变量用于取得系统小时值。如下图:图 14 创建触发变量 创建写入动作:在 WinCC的全局脚本中创建一个动作,通过变量MyID1的变化来触发。脚本如下:Dim r
9、iqi Dim riqijiu Set riqijiu=HMIRuntime.Tags(riqijiu)Dim MyID1 IA&DT Service&Support Page 11-17名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 17 页 -IA&DT Service&Support Page 12-17Set MyID1=HMIRuntime.Tags(MyID1)Dim flag Set flag=HMIRuntime.Tags(flag)MyID1.Read flag.Read If flag.Value=1 Then riqi=CStr(Year(Now)&-&C
10、Str(Month(Now)&-&CStr(Day(Now)riqijiu.Read riqijiu.Write&riqi&Dim UA_jiu_ID Set UA_jiu_ID=HMIRuntime.Tags(UA_jiu_ID)Dim UA_jiu_Job Set UA_jiu_Job=HMIRuntime.Tags(UA_jiu_Job)UA_jiu_ID.Read UA_jiu_ID.Write-1 UA_jiu_Job.Read UA_jiu_Job.Write 6 End if 这样 一旦小时发生变化我们就完成了写入的动作。注意:一般刚激活WinCC时,会触发一次变量变化。为了避免
11、写入无效的数据。此处增加了一个flag变量用于判断是否激活 WinCC产生的事件。技巧:在全局脚本增加一个动作,通过flag自身的变化事件把flag置位(供参考)。2报表布局的设计 新建一个页面布局,在布局中作如下设置:名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 17 页 -图 15 布局设置 该布局需要注意的是:在平均处放置的是静态文本,布局中放置了六个ODBC 数据库表控件。分别连接三个班的累计和平均值。ODBC 数据库表控件的参数设置如下图:图 16 ODBC控件属性设置 IA&DT Service&Support Page 13-17名师资料总结-精品资料欢迎下载-
12、名师精心整理-第 13 页,共 17 页 -该设置中需要说明的是:在ODBC 数据源处选择想要连接的数据库,在变量处连接一个文本变量8 位字符集类型的变量。在列数中事先填写上返回的字段数。对于布局列宽的调整可以通过控件的属性窗口设置实现。图 17 修改列宽 至此完成了对页面的设计。3报表输出 创建一个新的打印任务连接新建的布局。IA&DT Service&Support Page 14-17名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 17 页 -图 18 打印任务 创建一个查询界面如下:图 18 操作界面 在查询测试按钮中写入如下脚本:Dim sqlriqijiu Set
13、sqlriqijiu=HMIRuntime.Tags(sqlriqijiu)Dim sqljiua Set sqljiua=HMIRuntime.Tags(sqljiua)Dim sqljiuaavg Set sqljiuaavg=HMIRuntime.Tags(sqljiuaavg)Dim sqljiub Set sqljiub=HMIRuntime.Tags(sqljiub)Dim sqljiubavg Set sqljiubavg=HMIRuntime.Tags(sqljiubavg)Dim sqljiuc Set sqljiuc=HMIRuntime.Tags(sqljiuc)Dim
14、sqljiucavg Set 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 shi
15、jianjiu 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,
16、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 IA&DT Service&Support Page 15-17名师资料总结-精品资料欢迎下载-名师精心整理-第 15 页,共 17 页 -sqljiubavg.Write select avg(var1),avg(var2),avg(var3),avg(v
17、ar4),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 li
18、ke&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
19、 23 其实这三个班的代码都是一样的。所以只要会写一个班的查询语句,其余的修改查询条件就可以了。另外“UA#归档名称”就是对应用户归档里数据库的表名称。在执行打印中调用打印作业。RPTJobPreview(ReportJob);/Return-Type:BOOL 至此:完成了所有的操作。先点击查询然后执行打印任务,那么输出的结果如下图:图 18 输出结果 备注:在使用测试项目时,必须保证系统中24 小时数据的完整性。IA&DT Service&Support Page 16-17名师资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 17 页 -IA&DT Service&Support Page 17-17附录推荐网址 SIMATIC HMI人机界面西门子(中国)有限公司工业自动化与驱动技术集团客户服务与支持中心网站首页:WinCC 下载中心:http:/ 全球技术资源:http:/ 版区:http:/ 版权保留复制、传播或者使用该文件或文件内容必须经过权利人书面明确同意。侵权者将承担权利人的全部损失。权利人保留一切权利,包括复制、发行,以及改编、汇编的权利。西门子(中国)有限公司名师资料总结-精品资料欢迎下载-名师精心整理-第 17 页,共 17 页 -
限制150内