如何在Excel中访问WinCC变量归档数据

如何在Excel中访问WinCC变量归档数据,第1张

摘 要 本文通过制作一个日报表的过程,介绍了在本地或远程计算机上如何通过Excel访问WinCC的变量归档数据。

关键词 WinCC、Excel、VBA、脚本、连通性软件包

Key Words WinCC、Excel、VBA、Script、Connectivity Pack

目 录

1 功能说明

2 软件环境

3 WinCC/Connectivity Pack 介绍

3.1 连接字符串

3.2 查询语句

3.3 查询结果

4 本地计算机访问

4.1 WinCC组态

4.1.1 WinCC中创建变量

4.1.2 变量归档组态

4.2 Excel组态

4.2.1 创建Excel模板

4.2.2 在Excel中编写脚本

4.2.3 调用脚本

4.2.4 运行Excel中的脚本

5 远程计算机访问

5.1 OLE-DB接口

5.2 WinCC运行数据库名称的获得

1 功能说明

在Microsoft office Excel中访问WinCC的历史数据,实现如下图所示的报表:

图1: Excel中访问WinCC的历史数据生成报表

选择日期后,可以生成当天的风机参数日报表(报表数据来自WinCC)。

2 软件环境

本地计算机:Windows XP SP3英文版、WinCC7.0 SP2 ASIA、Microsoft office Excel 2003

远程计算机:Windows XP SP3英文版、WinCC7.0 SP2 ASIA、Microsoft office Excel 2003

3 WinCC/Connectivity Pack 介绍

WinCC变量归档数据是以压缩的形式存储在数据库中,需要通过 WinCC/Connectivity Pack提供的OLE-DB接口才能够解压并读取这些数据。

3.1 连接字符串

“Provider=WinCCOLEDBProvider.1Catalog= ***Data Source= ***“

其中:

Catalog:WinCC运行数据库的名称

注意:当修改项目名称或在其它计算机上打开原项目时, Catalog会发生变化。

建议使用WinCC系统变量 “@DatasourceNameRT” 获得当前的Catalog。

Data Source :服务器名称

本地:“.\WinCC” 或者 “<计算机名称>\WinCC”

远程:“<计算机名称>\WinCC”

3.2 查询语句

“TAG:R,<ValueID or ValueName>,<TimeBegin>,<TimeEnd>[,<SQL_clause>][,<TimeStep>]”

其中:

ValueName:格式为“ArchiveName\Value_Name”,可以使用多个名称。

TimeBegin,TimeEnd:时间范围,格式 “YYYY-MM-DD hh:mm:ss.msc”。

SQL_Clause:SQL 语法中的过滤标准。

3.3 查询结果

注意,WinCC的归档数据是使用UTC(协调世界时)时间保存的。

4 本地计算机访问

4.1 WinCC组态

4.1.1WinCC中创建变量

Fan1_T1:进口温度

Fan1_T2:出口温度

Fan1_P1:进口压力

Fan1_P2:出口压力

4.1.2变量归档组态

1)对以上变量进行归档,归档周期为1小时:

图2: 变量归档

2)设置整点归档

选择“1小时”定时器,右键,选择“属性”:

图3:定时器设置

在定时器属性对话框中,设置输入循环起始点为0分0秒:

图4:定时器属性设置

4.2 Excel组态

4.2.1创建Excel模板

创建如下图所示的Excel模板:

图5:Excel模板

其中,每天整点的参数值从WinCC数据库中直接读取,平均值、最大值、最小值由Excel本身的函数实现。

关于如何插入日期控件:

第一步,显示控件工具箱:

图6:显示“控件工具箱”

第二步,在控件工具箱中选择“其它控件”,然后选择“Microsoft Date and Time Picker Control6.0”,把控件放到合适的位置并拖拽到合适大小。

图7:插入日历控件

4.2.2在Excel中编写脚本

1)VBA编辑器

点击“工具”菜单à“宏”à“Visual Basic 编辑器”,打开Excel VBA编辑器:

图8:打开VBA编辑器

2)创建读取WinCC历史数据的VBA子程序get_wincc_data:

图9:get_wincc_data

脚本包括以下几部分:

(1)获得WinCC运行数据库名称

以上脚本只能读取本地WinCC的变量值,并且需要插入“WinCC HMIRuntime 1.0 Type Library”对象:

图10:插入“WinCC HMIRuntime 1.0 Type Library”对象

(2)创建连接字符串:

(3)转换查询时间为UTC时间:

(4)四个参数值的查询(以查询“进口温度”为例):

4.2.3 调用脚本

在时间控件Change事件中调用子程序get_wincc_data :

4.2.4运行Excel中的脚本

首先要设置宏的安全性为“中”或“低”(不建议使用):

图11:“宏”安全性设置1

图12:“宏”安全性设置2

若宏的安全性为 “低”,脚本将直接运行,没有任何提示;若宏的安全性为 “中”,则打开Excel时将有如下提示:

图13 安全提示

此时,通过日期控件选择日期后,Excel读取WinCC的数据并写入到不同的单元格中:

图14:运行结果

DEMO程序请参考附件中的report_demo_local.xls 文件。

5 远程计算机访问

Excel访问远程计算机WinCC的历史数据,需要注意:

5.1 OLE-DB接口

如果客户端计算机没有安装WinCC或者DataMonitor软件,则需要安装Connectivity Pack软件来提供OLE-DB接口。

5.2 WinCC运行数据库名称的获得

可以通过以下两种方法在Excel中中读取远程WinCC运行数据库的名称:

1)编写OPC客户端脚本

WinCC激活后将作为一个标准的OPC服务器,可以在Excel中编写OPC 客户端脚本读取变量“@DatasourceNameRT”的值。请参考文档《如何在Excel中访问WinCC变量归档数据》:

http://www.ad.siemens.com.cn/download/searchResult.aspx?searchText=A0554

注意,访问远程OPC服务器,需要设置DCOM,请参考《如何配置OPC DCOM》:

http://www.ad.siemens.com.cn/download/searchResult.aspx?searchText=A0265

2)使用以下脚本也可以获得远程WinCC运行数据库的名称:

使用以上脚本时需要注意:

(1)在Excel计算机用户管理下注册WinCC计算机的(可以登录WinCC/SQL)用户名和密码。

(2)修改Excel计算机Windows的hosts文件:

DEMO程序请参考附件中的report_demo_remote.xls文件。

如果您对该文档有任何建议,请将您的宝贵建议提交至下载中心留言板。

该文档的文档编号:A0567

附录-推荐网址

SIMATIC HMI人机界面

西门子(中国)有限公司

工业自动化与驱动技术与楼宇科技集团 客户服务与支持中心

网站首页:www.4008104288.com.cn

WinCC下载中心:http://www.ad.siemens.com.cn/download/DocList.aspx?TypeId=0&CatFirst=1&CatSecond=9&CatThird=-1

HMI全球技术资源:http://support.automation.siemens.com/CN/view/zh/10805548/130000

“找答案”WinCC版区:http://www.ad.siemens.com.cn/service/answer/category.asp?cid=1032

注意事项

应用示例与所示电路、设备及任何可能结果没有必然联系,并不完全相关。应用示例不表示客户的具体解决方案。它们仅对典型应用提供支持。用户负责确保所述产品的正确使用。这些应用示例不能免除用户在确保安全、专业使用、安装、 *** 作和维护设备方面的责任。当使用这些应用示例时,应意识到西门子不对在所述责任条款范围之外的任何损坏/索赔承担责任。我们保留随时修改这些应用示例的权利,恕不另行通知。如果这些应用示例与其它西门子出版物(例如,目录)给出的建议不同,则以其它文档的内容为准。

声明

我们已核对过本手册的内容与所描述的硬件和软件相符。由于差错难以完全避免,我们不能保证完全一致。我们会经常对手册中的数据进行检查,并在后续的版本中进行必要的更正。欢迎您提出宝贵意见。

版权© 西门子(中国)有限公司2001-2011 版权保留

复制、传播或者使用该文件或文件内容必须经过权利人书面明确同意。侵权者将承担权利人的全部损失。权利人保留一切权利,包括复制、发行,以及改编、汇编的权利。

WINCC中使用VB脚本是可以连接数据库的,我已经试过了,而且用的就是普通SQL语句,比如insertinto,updata,select.使用的ODBC连接的.但是在做读取数据库中的归档时是不能用直接用上面的语句的.WINCC它有自己的方式.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9949276.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存