王者荣耀持续输出最高输出最高是谁

3159人阅读
转载请注明:http://write.blog.csdn.net/postedit/
1 任务描述
1.1 报表生成时间
1.2 打印时间
打印机自动打印
1.3 报表格式
标记说明:
(1)AVE:每时DATA的平均值
(2)MAX:每时DATA的最大值
(3)MIN:每时DATA的最小值
(4)每时:每整点的瞬时值
TAG COMMENT
Total Flow
2 运行环境
Windows XP Sp3 英文版;WinCC Runtime V7.0 Sp2;&Excel 2003
3 结构说明
WinCC的OnlineTableControl负责数据采集和导出,Excel负责处理格式和计算,VBS负责自动化。
4.1 自动定时导出数据,得到csv文件
不难发现Bill Gates超喜欢Basic。
Tag的归档周期设为1h,OnlineTableControl的时间范围选2 - Number of measurement points填8个点。控件中Export标签的“Show Dialogue Window”去掉,不然自动过程会被弹出框打断。
WinCC中写下如下VBS全局脚本,Tigger设定为Cyclic 1s:
Option Explicit
Function action
If Hour(Now)= 13 And Minute(Now)= 10 Then
Dim objScrWindow
Dim objTable
'shift to wanTest.pdl
If Second(Now)= 0 Then
Set objScrWindow = HMIRuntime.Screens(&main&).ScreenItems(&workspace&)
objScrWindow.ScreenName= &wanTest&
'export to csv
If Second(Now)= 5 Then
Set objTable= HMIRuntime.Screens(&main.workspace:wanTest&).ScreenItems(&Control1&)
objTable.ExportFilename= Year(Now)&&-&&Month(Now)&&-&&Day(Now)
objTable.Export()
'realse OnlineTableControl stop button
If Second(Now)= 10 Then
Set objTable= HMIRuntime.Screens(&main.workspace:wanTest&).ScreenItems(&Control1&)
objTable.StartStopUpdate()
If Second(Now)= 12 Then
Dim objWScript
Set objWScript = CreateObject(&WScript.Shell&)
objWScript.Run &C:\Export\OnlineTableControl\excelVbs.vbs&
End IfEnd Function
实际应用后,定时自动切画面这个功能新奇但略显诡异,于是将OnlineTableControl控件窗口缩小到指甲壳大小,藏在main画面的另一个控件之后,实现完全的后台运行,由于脚本并没有调用.Activate方法,所以画面的正常操作与报表后台打印之间并不影响,实际测试也验证了这一点。
4.1.1 VBS切换WinCC画面
切换WinCC画面:HMIRuntime.BaseScreenName = &Newpdl&
切换WinCC画面中某窗口画面:HMIRuntime.Screens(BaseScreenName.ScreenWindow:ScreenName).ScreenName =&&Newpdl&
4.1.2 VBS时间
Now: 21:47:39
Hour(Now):21 &Minute(Now):47 ...
4.1.3 VBS操作WinCC控件
’wanTest中OnlineTableControl的名称为Control1
'WinCC的VBS函数和方法可以从其自带的帮助文档中查到
导出数据:Control1.Export()
更改导出文件名称:Control.ExportFilename = &string&
'在导出操作时,stop按钮会自动按钮,若不松开切画面不切换,下次导出的数据仍是老的数据
启停:Control.StartStopUpdate()
4.2 VBS操作Excel,不同文件间剪切数据,自动分列,自动打印
文件间的动作通过VBS来实现,单个文件内的动作通过VBS调用VBA宏来实现。
录制宏真是一个了不起的创意。其实程序粗浅来理解,不就是人的一连串动作的实现及其自动化吗?
Excel文件,工具-选项-安全性-个人信息选项:保存时从文件属性中删除个人信息,勾选去掉,不然自动化过程会被弹框打断。VBA使用MS Office中的“VBA项目数字证书”(推荐)或将宏安全级别设为低,不然宏不能执行。
Sub Macro3()
' Macro3 Macro
' Macro recorded 28-10-2013 by admin
Sheets(&Sheet1&).Select
Columns(&B:F&).Select
Selection.ClearContents
Columns(&A:A&).Select
Application.CutCopyMode = False
Selection.TextToColumns Destination:=Range(&A1&), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1)), _
TrailingMinusNumbers:=True
Sub Macro6()
' Macro6 Macro
' Macro recorded 28-10-2013 by admin
Sheets(&Sheet2&).Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sheets(&Sheet1&).Select
ActiveWorkbook.Save
dim csvPath,csvName
csvPath = &C:\Export\OnlineTableControl\&
csvName = Year(now) & &-& & Month(now) & &-& & Day(now) & &.csv&
'copy data from csv
Dim objExcel
Set objExcel = CreateObject(&Excel.Application&)
objExcel.WorkBooks.Open(csvPath + csvName)
objExcel.Windows(csvName).Activate
objExcel.Range(&A1 : A9&).Select
objExcel.Selection.Copy
objExcel.ActiveWindow.Close
'paste to xls, TextToColumns, print out, save
objExcel.WorkBooks.Open(csvPath + &wan.xls&)
objExcel.Windows(&wan.xls&).Activate
objExcel.Sheets(&Sheet1&).Select
objExcel.Range(&A1 : A9&).Select
objExcel.ActiveSheet.Paste
objExcel.Run &Macro3&
WScript.Sleep 1000
objExcel.Sheets(&Sheet2&).Select
objExcel.Run &Macro6&
objExcel.ActiveWindow.Close
objExcel.WorkBooks.Close
分列TextToColumns在VBS下做了几次都不成功,干脆放到excel宏里面做,这样层次也很清晰。
分列后,wan.csv的sheet1得到便于处理的数据,sheet2中可以任意编辑报表格式,框的大小、字体等等,数据格
link到sheet1的指定位置,例如:sheet2某个格子需要取sheet1中B2的数据,则填=Sheet1!B2。若link其他excel的格子则:='new.csv'!$B$2。
最大值的计算对于excel更是轻松了,如=MAX(B4:B11),稍微研究一下,就发现自己以前完全没有真正认识到excel的威力。
各自做各自擅长的事:WinCC采集原始数据,定时触发,导出到文件;VBS协调一切,在WinCC全局脚本、Windows、Excel中都有其身影;Excel完成各种格式要求、简单的运算、打印;自动定时打印报表就这么实现了。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:9274次
排名:千里之外基于数据库查询的WINCC报表制作步骤
我的图书馆
基于数据库查询的WINCC报表制作步骤
一、报表优点:
& & 1、数据写入SQL数据表,数据不容易丢失,保存时间长,数据库容量大;
& & 2、数据从数据库里面查询和统计,冗余少,速度快,具有直接性、可靠性和稳定性。
& & 3、查询方便灵活,依靠SQL强大的查询和统计功能,想怎么查询就怎么查询,并依靠MSFlexGrid控件做显示,做出来的不仅报表美观大方。而且还可根据做出很复杂的报表。
二、报表制作流程
& & 1、创建SQL数据库,打开Microsoft SQL Server2005,选择SQL Server Manage Studio,点击Connect
& & 2、在Databases,右键选择New Database,在Database Name处输入数据库名称,如SQL-Report
& & 3、点击Databases,此时可以看到刚才新建的数据库SQL-Report,点击该数据库,右击Tables,选择New Table,在Column Name、Data Type处输入变量名称并选择数据类型,输入完成后,保存并输入表格名称。
& & 4、在WINCC的全局脚本中编写用于写入SQL报表的脚本程序,脚本正常运行后,打开Databases---SQL-Report---Tables---Report会看到记录的数据
二、 WINCC报表画面组态& &
& & 在组态报表画面时,需要用到MSFlexGrid控件、DT Picker控件。选定ActiveX Controls,右键选择Add/Remove,从弹出菜单中选择Microsoft FLexGrid Control,Version 6.0和Microsoft Date and Time Picker Control 6.0(SP4)控件。
& & 从ActiveX Controls中将这两个控件拖到日报表画面,可以在其属性中更改控件的名称,设置MSFlexGrid控件属性。
& & 注意:通常情况下,直接选择Microsoft FLexGrid Control,Version 6.0控件时,需要注册。如果电脑上安装有Microsoft Visual Basic V6 这个软件时,就可以直接选择该控件。或者下载该控件,拷贝到C:\WINDOWS\system32这个文件里面,然后在Windows目录的system子目录下,点击Windows的“开始→运行”菜单,在对话框中输入regsvr32 MSFLXGRD.OCX 注册MSFLXGRD.OCX控件(输入regsvr32 /u MSFLXGRD.OCX 取消MSFLXGRD.OCX控件的注册)。
三、VBS脚本程序编写
& & 1、编写日报表画面的脚本
& & 该脚本主要用于显示DTPicker控件中所出现的年月日
& & 2、“查询”按钮鼠标单击的脚本
& & 该脚本用于执行查询变量记录,即,将SQL数据库表格中的数据读到MSFlexGrid控件中
& & 3、“打印”按钮鼠标单击的脚本
& & 该脚本用于执行打印查询到的变量记录,即,将MSFlexGrid控件中的数据转存到EXCEL并进行打印。
TA的最新馆藏[转]&[转]&[转]&每日登录:+1西币&+1积分
&下次自动登录
绑定第三方账号登录 & & &
扫描二维码登录支持中心移动端
获取动态密码
售前文档售后文档热门视频系列热门版区售后服务概述自助服务帮助信息
You are here:
wincc如何自动打印报表
热点活动:
wincc如何自动打印报表 - 已解决问题
现场多个设备循环工作,每个设备工作完毕后会将部分数据存储到DB中,接着下一个设备接着工作,然后再将数据存到同一个DB中。为了保留这些数据供日后分析。现在想当一个设备工作完毕后wincc自动将这些数据对应的报表打印出来。请问如何设置触发条件?以前用组态王的时候,在事件发生命令语言中可以做相关触发打印脚本,wincc如何实现?另外打印出PDF和制版文件,两者同时进行。请问怎么设置让打印机直接打印制版文件,而不是人工点击确认?同理PDF如何自动打印并存储?
问题补充:我在全局脚本中定义了动作脚本,里面设置了触发条件,就是当PLC的变量变化时,就触发动作脚本中的打印函数,现在问题是这样的,当wincc关闭再启动后就自动打印一次,请问为什么啊?
产品版区:
悬赏分:5 | 解决时间: 13:41:16 | 提问者:& - 学长&nbsp&nbsp第2级
问题ID:67713
1、可以通过事件触发打印或者定时打印报表。2、PDF&的打印可以在&PDF&虚拟打印机中设置默认路径和命名规则,这样就不需要点击确认保存&PDF&文件。《WinCC&数据报表实现方法介绍》
高级工程师&nbsp&nbsp第11级&
以下网友赞了您的问题:
填写您的评论...
提问者对于答案的评价:呵呵,谢谢你的回答,但是我的那个问题还是没人回答啊,就是运行winnc后自动打印,哪位大侠懂的话给我发邮件吧。.cn
可以在脚本中作一个判断,满足条件时再进行打印。
置评专家:西门子人机界面产品支持& 18:03:02
更多相关问题
本版精华问答
等待您来回答
作者/最新回复
最后回复时间
1、你需要自己写脚本来处理了,脚本把winc链接的变量的当前值保存到excel并打印输出。脚本的触发就是设备工作结束后的标志位如果在下位机中设备工作结束置位一个标志位,脚本中执行完打印作业后复位这个标志位。
- 高级顾问&nbsp&nbsp第14级
& 21:57:03
上一页1下一页&
扫描打开手机版
20秒帮我们优化支持中心!
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
欢迎您来到找答案
在“找答案”,已有超过7万个被解决的技术问题供您参考!
西门子技术专家亲自把关!常规的,简单的问题,在这里您都可以找到答案!
遇到了问题,就来“找答案”提问。
点击搜索框右侧的提问按钮,只需2步就能成功提交问题!分分钟就有无数大侠前来帮你。
在“找答案”每天都有大量的新问题。
别犹豫,只需要点击问题下方的“我要回答”就能参与。答题不光有积分相送,也会给您积攒大侠人气。
“找答案”定期开展各种有奖活动期待您的参与。
更有机会参加西门子高端用户峰会。领略西门子的博大精深!WINCC如何创建报表画面
WinCC允许直接从运行时画面中管理和打印报表。
生成一个过程画面,在该画面中操作员可直接管理和打印报表;在WinCC
Explorer中生成一个.pdl图形文件,在图形设计编辑器中打开它。
在图形编辑器中,从对象选项框中的标准栏内,选择&Application
Window&(应用窗口)对象。拖放到画面上并调整大小。
从弹出的窗口选择对话框中,选择&Print Jobs&(打印作业)。
从弹出的样板选择对话框中,选择&Ajl Jobs-Context
Menu&。然后按OK按钮,以.pdl格式保存为Reports.pdl文件。
如果需要,可在导航画面中添加报表按钮,按键显示report.pdl文件。
运行时,操作员可打开report.pdl文件,选择单个的报表,确认打印作业也可手动打印。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。西门子WinCC数据报表实现方法介绍
在电子工程世界为您找到如下关于“西门子WinCC数据报表实现方法介绍”的新闻
西门子WinCC数据报表实现方法介绍资料下载
&&&&&&&&西门子WinCC数据报表实现方法介绍...
西门子WinCC数据报表实现方法介绍相关帖子
西门子WinCC数据报表实现方法介绍视频
西门子WinCC数据报表实现方法介绍创意
你可能感兴趣的标签
热门资源推荐

我要回帖

更多关于 王者荣耀持续输出最高 的文章

 

随机推荐