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

n

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

WinCC、Excel、VBA、脚本、连通性软件包
图1: Excel中访问WinCC的历史数据生成报表n

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

2 软件环境
本地计算机:Windows XP SP3英文版、WinCC7.0 SP2 ASIA、Microsoft office Excel 2003
远程计算机:Windows XP SP3英文版、WinCC7.0 SP2 ASIA、Microsoft office Excel 2003n

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

3.1 连接字符串
“Provider=WinCCOLEDBProvider.1; Catalog= ***; Data Source= ***;“
其中:
Catalog:WinCC运行数据库的名称
注意:当修改项目名称或在其它计算机上打开原项目时, Catalog会发生变化。
建议使用WinCC系统变量 “@DatasourceNameRT” 获得当前的Catalog。
Data Source :服务器名称
本地:“.WinCC” 或者 “<计算机名称>WinCC”
远程:“<计算机名称>WinCC”n

3.2 查询语句
“TAG:R,<ValueID or ValueName>,<TimeBegin>,<TimeEnd>[,<SQL_clause>][,<TimeStep>]”
其中:
ValueName:格式为“ArchiveNameValue_Name”,可以使用多个名称。
TimeBegin,TimeEnd:时间范围,格式 “YYYY-MM-DD hh:mm:ss.msc”。
SQL_Clause:SQL 语法中的过滤标准。n

3.3 查询结果

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

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

4 本地计算机访问

4.1 WinCC组态

4.1.1 WinCC中创建变量
Fan1_T1:进口温度
Fan1_T2:出口温度
Fan1_P1:进口压力
Fan1_P2:出口压力n

4.1.2 变量归档组态

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

WinCC、Excel、VBA、脚本、连通性软件包
图2: 变量归档n

2)设置整点归档
选择“1小时”定时器,右键,选择“属性”:n

WinCC、Excel、VBA、脚本、连通性软件包
图3:定时器设置n

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

WinCC、Excel、VBA、脚本、连通性软件包
图4:定时器属性设置n

4.2 Excel组态

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

WinCC、Excel、VBA、脚本、连通性软件包
图5:Excel模板n

其中,每天整点的参数值从WinCC数据库中直接读取,平均值、最大值、最小值由Excel本身的函数实现。
关于如何插入日期控件:n

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

WinCC、Excel、VBA、脚本、连通性软件包
图6:显示“控件工具箱”n

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

WinCC、Excel、VBA、脚本、连通性软件包
图7:插入日历控件n

4.2.2 在Excel中编写脚本

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

WinCC、Excel、VBA、脚本、连通性软件包
图8:打开VBA编辑器n

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

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

图9:get_wincc_datan

脚本包括以下几部分:
(1)获得WinCC运行数据库名称n

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

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

WinCC、Excel、VBA、脚本、连通性软件包
图10:插入“WinCC HMIRuntime 1.0 Type Library”对象n

(2)创建连接字符串:n

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

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

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

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

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

4.2.3 调用脚本
在时间控件Change事件中调用子程序get_wincc_data :n

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

4.2.4 运行Excel中的脚本
首先要设置宏的安全性为“中”或“低”(不建议使用):n

WinCC、Excel、VBA、脚本、连通性软件包
图11:“宏”安全性设置1n

WinCC、Excel、VBA、脚本、连通性软件包
图12:“宏”安全性设置2n

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

WinCC、Excel、VBA、脚本、连通性软件包
图13 安全提示n

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

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

图14:运行结果n

DEMO程序请参考附件中的 report_demo_local.xls ( 31 KB ) 文件。n

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

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

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

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

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

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

使用以上脚本时需要注意:
(1)在Excel计算机用户管理下注册WinCC计算机的(可以登录WinCC/SQL)用户名和密码。
(2)修改Excel计算机Windows的hosts文件:

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

DEMO程序请参考附件中的 report_demo_remote.xls ( 32 KB ) 文件。

关键词

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc326174.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日 下午12:03
下一篇 2021年4月12日 上午12:00

相关推荐

发表回复

登录后才能评论