- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VB归档数据课案
在WinCC中如何使用VBS读取变量归档数据到EXCEL1概述介绍如何在WinCC项目中使用VBS脚本读取变量归档值,并把获取的数据保存成新的Excel文件。文中示例代码仅适用于以绝对时间间隔方式访问。2软件环境Windows XP SP3中文版、WinCC7.0 SP2 ASIA、Microsoft office Excel 20073访问原理WinCC变量归档数据是以压缩的形式存储在数据库中,需要通过WinCC连通性软件包提供的OLE-DB接口才能够解压并读取这些数据。关于WinCC连通性软件包的详细信息请参考连接使用 OLE-DB方式访问数据库时关键需要注意连接字符串的写法和查询语句的格式。连接字符串格式为“Provider=WinCCOLEDBProvider.1; Catalog= ***; Data Source= ***;”,其中Catalog为WinCC运行数据库的名称,当修改项目名称或在其它计算机上打开原项目时, Catalog会发生变化。建议使用WinCC内部变量 “@DatasourceNameRT” 获得当前项目的Catalog。Data Source 为服务器名称,格式为“计算机名称\WinCC”。3.1 查询语句格式数据的查询语句的格式要求如下:8 字节长ValueID的请求:TAG_LLVID:R,ValueID或ValueName,TimeBegin,TimeEnd[,SQL_clause][,TimeStep]4 字节长ValueID的请求:TAG:R,ValueID或ValueName,TimeBegin,TimeEnd[,SQL_clause][,TimeStep]其中:ValueID:过程值归档变量的唯一标识符。ValueName:过程值归档变量的名称,格式为“ArchiveName\Value_Name”,可以使用多个名称。TimeBegin,TimeEnd:时间范围,格式 “YYYY-MM-DD hh:mm:ss.msc”。SQL_Clause:SQL 语法中的过滤标准。TimeStep:时间间隔。使用 TimeStep 时,必须将 TimeBegin 指定为绝对时间。禁止使用相对语句“0000-00-00 00:00:00.000”。其中ValueID和ValueName的对应关系如下图所示:图1 ValueID和ValueName的对应关系3.2几种常用的查询需求和语句1)绝对时间间隔2)相对时间间隔请注意,查询不能包含任何空格。习惯上,执行绝对时间查询时需要将查询的时间条件转换成UTC (协调世界时)时间。执行相对时间查询时请一定要注意相对时间的格式。建议使用MsgBox或者HMIRuntime.Trace等方式输出数值以检查格式是否正确。3.3 查询结果查询结果作为记录集返回。过程值归档的记录集结构如下表所示:表1记录集结构注意,WinCC的归档数据是使用UTC(协调世界时)时间保存的。因此在对数据进行查询和显示时,需要对时间进行适当的转换。4组态介绍(以绝对时间间隔为例)4.1准备工作1)创建变量其中:NewTag用于创建过程值归档,strBeginTime和strEndTime用于存储查询条件。sVal是时间间隔参数。如下图所示:图2 变量2)创建过程值归档创建归档周期为一分钟的过程值归档。如下图所示:图3 归档配置3)创建Excel模板在特定的路径下预先创建一个Excel文件作为模板,这样可以很好的控制输出格式。本例中在D:\WinCCWriteExcel下创建一个名称为abc.xlsx的Excel文件。如下图所示:图4 Excel模板4.2组态查询界面画面上新建三个输入/输出域,分别用于输入开始时间、结束时间和间隔时间。按钮中执行用于访问变量归档数据的VBS脚本。图5 查询界面4.3关键脚本介绍1)打开Excel模板以后台方式打开之前创建好的Excel模板。其中sheetname作为变量可以定义Excel中Sheet的名字。Set objExcelApp = CreateObject(Excel.Application)objExcelApp.Visible = FalseobjExcelApp.Workbooks.Open D:\WinCCWriteExcel\abc.xlsxobjExcelApp.Worksheets(sheetname).Activate2)准备查询条件主要是确定和格式化Catalog、UTC开始时间、UTC结束时间、时间间隔等查询条件。因为北京时间和UTC(协调世界时)时间相差8个小时,所以直接在程序中写入固定的时间差值。Set tagDSNName = HMIRuntime.Tags(@DatasourceNameRT)
文档评论(0)