使用用户归档实现报表文档格式.doc
- 文档编号:13164317
- 上传时间:2022-10-07
- 格式:DOC
- 页数:17
- 大小:1.97MB
使用用户归档实现报表文档格式.doc
《使用用户归档实现报表文档格式.doc》由会员分享,可在线阅读,更多相关《使用用户归档实现报表文档格式.doc(17页珍藏版)》请在冰豆网上搜索。
如果必要,数据可以配方或设定值的形式从控制器读出。
用户归档编辑器提供两种数据库表格:
用户归档:
用户归档是用户可在其中创建自己的数据域的数据库表格。
用户归档用于存储数据,并根据SQL数据库规则提供对这些数据的标准化访问。
视图:
视图接收来自用户归档的数据并用于数据的相加,例如,为获得有关产品组的概述。
其在WinCC默认情况下是不会被安装的。
可以通过以下步骤安装。
插入WinCC安装光盘,选择安装SIMATICWinCC,弹出界面(图1),选择安装或者卸载的组件,在弹出的选择组件界面中左侧选择选项,右侧选中用户归档,点击下一步开始安装。
图1安装卸载
图2选择组件
安装好后打开WinCC项目编辑器在项目的树状结构里会看到用户归档选项。
如下图:
图3用户归档
至此用户归档安装完毕。
二.用户归档的使用
双击用户归档,打开如下界面:
图4用户归档操作界面
右击归档弹出插入新归档菜单,点击就会打开新建归档的界面。
按照提示步骤依次输入归档名称和控制变量。
图5创建用户归档
图6设置控制变量
点击下一步,完成创建工作。
控制变量是用户归档中很重要的概念,简单介绍如下:
利用这四个控制变量,可以触发用户归档。
要触发用户归档,必须为“ID”和“Job”变量或“Job”、“Field”和“Value”变量提供相应的值。
图7控制变量的功能
(说明:
图中的读和写是站在用户归档的角度讲的,就是把变量的数据读到用户归档写到控制系统变量。
从用户归档中把数据删除。
)
图8控制变量的组合
该图中ID=-1,job=6的操作是把变量的值写入用户归档。
ID=-1job=7的操作是把用户归档的数据写入变量中。
控制变量提供了两种访问用户归档的方法:
通过输入控制变量“ID”和“Job”,可以写入或读取或删除数据记录中的目标值。
可以使用控制变量“Field”和“Value”代替控制变量“ID”来搜索数据记录。
通过控制变量“Job”,可以写入或读取或删除通过该方法选择的数据记录。
例如,如果必须将数据记录从表格中删除然后将其再添加到表格末尾,则可以使用该数据选择类型。
“值”域必须唯一,否则将采用域中满足该条件值的第一条数据记录。
更详细的信息请参见WinCC的帮助系统—>
选项—>
用户归档。
三.结合用户归档实现报表
针对论坛中提到的报表问题,可以结合用户归档实现。
下面以下图的报表为例作一个说明:
图9报表样例
该报表主要功能是小时量的记录和班平均值的计算。
下面分步介绍如果使用用户归档和WinCC自带的报表编辑器实现这样的报表。
1.数据的存储
首先创建一个用户归档。
选择该归档,在右侧空白处单击鼠标右键选择插入新域。
图10创建域
图11创建域名
图12和WinCC变量建立连接
点击下一步,按照提示完成操作。
最后对应要记录的每一个变量都创建一个域与之相对应。
同时为了统计方便创建日期和时间域分别对应在WinCC中创建的字符串变量。
创建的结果如下图:
图13创建好的归档
在变量管理à
SYSTEMINFO下创建变量用于取得系统小时值。
图14创建触发变量
创建写入动作:
在WinCC的全局脚本中创建一个动作,通过变量MyID1的变化来触发。
脚本如下:
Dimriqi
Dimriqijiu
Setriqijiu=HMIRuntime.Tags("
riqijiu"
DimMyID1
SetMyID1=HMIRuntime.Tags("
MyID1"
Dimflag
Setflag=HMIRuntime.Tags("
flag"
MyID1.Read
flag.Read
Ifflag.Value=1Then
riqi=CStr(Year(Now))&
"
-"
&
CStr(Month(Now))&
CStr(Day(Now))
riqijiu.Read
riqijiu.Write"
riqi&
DimUA_jiu_ID
SetUA_jiu_ID=HMIRuntime.Tags("
@UA_jiu_ID"
DimUA_jiu_Job
SetUA_jiu_Job=HMIRuntime.Tags("
@UA_jiu_Job"
UA_jiu_ID.Read
UA_jiu_ID.Write-1
UA_jiu_Job.Read
UA_jiu_Job.Write6
Endif
这样一旦小时发生变化我们就完成了写入的动作。
注意:
一般刚激活WinCC时,会触发一次变量变化。
为了避免写入无效的数据。
此处增加了一个flag变量用于判断是否激活WinCC产生的事件。
技巧:
在全局脚本增加一个动作,通过flag自身的变化事件把flag置位(供参考)。
2.报表布局的设计
新建一个页面布局,在布局中作如下设置:
图15布局设置
该布局需要注意的是:
在平均处放置的是静态文本,布局中放置了六个ODBC数据库表控件。
分别连接三个班的累计和平均值。
ODBC数据库表控件的参数设置如下图:
图16ODBC控件属性设置
该设置中需要说明的是:
在ODBC数据源处选择想要连接的数据库,在变量处连接一个文本变量8位字符集类型的变量。
在列数中事先填写上返回的字段数。
对于布局列宽的调整可以通过控件的属性窗口设置实现。
图17修改列宽
至此完成了对页面的设计。
3.报表输出
创建一个新的打印任务连接新建的布局。
图18打印任务
创建一个查询界面如下:
图18操作界面
在查询测试按钮中写入如下脚本:
Dimsqlriqijiu
Setsqlriqijiu=HMIRuntime.Tags("
sqlriqijiu"
Dimsqljiua
Setsqljiua=HMIRuntime.Tags("
sqljiua"
Dimsqljiuaavg
Setsqljiuaavg=HMIRuntime.Tags("
sqljiuaavg"
Dimsqljiub
Setsqljiub=HMIRuntime.Tags("
sqljiub"
Dimsqljiubavg
Setsqljiubavg=HMIRuntime.Tags("
sqljiubavg"
Dimsqljiuc
Setsqljiuc=HMIRuntime.Tags("
sqljiuc"
Dimsqljiucavg
Setsqljiucavg=HMIRuntime.Tags("
sqljiucavg"
sqlriqijiu.Read‘得到查询条件某一天如“2009-3-11”
sqljiua.Read
‘返回A班的统计值和平均值
sqljiua.Write"
selectshijianjiu,var1,var2,var3,var4,var5,var6,var7,var8,var9,var10fromUA#DailyReportwhereriqijiulike'
sqlriqijiu.Value&
%'
andshijianjiubetween0and7orderbyshijianjiu"
sqljiuaavg.Read
sqljiuaavg.Write"
selectavg(var1),avg(var2),avg(var3),avg(var4),avg(var5),avg(var6),avg(var7),avg(var8),avg(var9),avg(var10)fromUA#DailyReportwhereriqijiulike'
andshijianjiubetween0and7"
‘返回B班的统计值和平均值
sqljiub.Read
sqljiub.Write"
andshijianjiubetween8and15orderbyshijianjiu"
sqljiubavg.Read
sqljiubavg.Write"
andshijianjiubetween8and15"
‘返回C班的统计值和平均值
sqljiuc.Read
sqljiuc.Write"
andshijianjiubetween16and23orderbyshijianjiu"
sqljiucavg.Read
sqljiucavg.Write"
andshijianjiubetween16and23"
其实这三个班的代码都是一样的。
所以只要会写一个班的查询语句,其余的修改查询条件就可以了。
另外“UA#归档名称”就是对应用户归档里数据库的表名称。
在执行打印中调用打印作业。
RPTJobP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 使用 用户 归档 实现 报表