西门子(中国)有限公司(SLC)

注册 登录

  签到   每日登录:+1西币 +1经验值我的支持中心

信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。

技术论坛


编辑推荐: 关闭

请填写推广理由:

WINCC 一起学-VBS读取变量归档-一

作者 主题
版主

经验值: 38871
发帖数: 5476
精华帖: 47
主题:【分享】WINCC 一起学-VBS读取变量归档-一
精华帖精华帖星级3级 推荐帖 推荐帖


只看楼主 只看精华 楼主 2017-01-19 08:21:25

WINCC 一起学-VBS读取变量归档

 

题记:

前段时间,看论坛里面有人在问关于VBS读取变量归档的问题,主要是数据库连接和操作方面的问题,我也试着帮忙解决了几个问题,也算学习了一下,现在就是一起做一个项目,通过脚本把变量归档里面的数据读出来,后期再导入EXCEL或者控件里面,或有其他的功能,后面想到再做打算吧。本文从新建项目开始,一步一步来,想到哪里写到哪里,为了减少工作量,就以温度(T),压力(P)和流量(L)3个变量为例进行读写操作。

软件基础:虚拟机WIN7 SP1 64位旗舰版和WINCC 7.3 SE+UPD9+OFFICE2003为基础,未安装连通性软件包。

目的:使用VBS脚本,读取WINCC变量归档数据,然后导出到EXCEL文件或者ListView控件中。

1、 参考资料

先把一些参考资料放出来,大家一起学习,本文中的资料来自以下文档、手册和WINCC帮助内容,一些朋友问关于报表的问题,我给发的基本上都是这些手册。

A、在WinCC中如何使用VBS读取变量归档数据到EXCEL

https://support.industry.siemens.com/cs/cn/zh/view/77940055

B、通过VBS脚本在ListView控件中显示WinCC的变量记录

https://support.industry.siemens.com/cs/cn/zh/view/74932765

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

https://support.industry.siemens.com/cs/cn/zh/view/71676391

D、WinCC数据报表实现方法介绍

https://support.industry.siemens.com/cs/cn/zh/view/78668993

E、WinCC V7.4:组态 系统手册

https://support.industry.siemens.com/cs/cn/zh/view/109736224

F、WinCC V7.4:使用 WinCC 系统手册

https://support.industry.siemens.com/cs/cn/zh/view/109736220

部分资料来自

http://www.w3school.com.cn

2、 准备工作

2.1 新建项目

在D盘目录下新建名为TAGREAD的项目

2.2 建立变量

在内部变量下,新建分组“TR”,在分组下面,新建名分别为为“P”、“T”、“L”的变量,类型均为:32-位浮点数 IEEE 754。


图1

同时变量在全局脚本里面进行周期性赋值

T:画幅值是10周期10秒的正弦波

T:0-10的随机数

P:T/100进行累加

脚本如下:


图2

触发方式:周期->250ms

2.3 变量归档

     新建名为:TAGR的过程值归档,为减少数据库的大小,采样和归档时间我设置成1S,其他设置默认。如图,前三个,下面的请忽略

      

图3

2.4 设计画面

       本人的审美不咋的,就随便做一个画面用来测试。

       画面内容:

       3个IO域,显示3个变量的实际值;1个在线趋势控件,显示变量趋势;标尺控件方便查看历史值,Listview控件:方便后面导出显示;应用程序:脚本诊断,用于输出脚本是否正常。最右一个按钮,名为测试。运行后如图

图4


1楼还有

附上2的链接


WINCC一起学-VBS读取变量归档-二

WINCC一起学-VBS读取变量归档-三

http://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1383766&b_id=5


WINCC一起学-VBS读取变量归档--四 实现简单报表

http://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1450612&b_id=5




Q 187272190 Q 群:6141014
推荐帖推荐理由: 很有参考价值,值得推荐! (推荐人:月雨风云)
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:http://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1364128&b_id=5&b_sid=0&s_id=0&num=36

版主

经验值: 38871
发帖数: 5476
精华帖: 47
回复:WINCC 一起学-VBS读取变量归档
推荐帖


只看楼主 只看精华 楼主 1楼 2017-01-19 08:24:31

3、 连接变量归档数据库

3.1  ADO Connection 对象

3.1.1 简介

ADO Connection 对象用于创建一个到达某个数据源的开放连接。通过此连接,您可以对一个数据库进行访问和操作。

如果需要多次访问某个数据库,您应当使用 Connection 对象来建立一个连接。您也可以经由一个 Command 或 Recordset 对象传递一个连接字符串来创建某个连接。不过,此类连接仅仅适合一次具体的简单的查询。

以下属性、方法、事件、集合资料来自http://www.w3school.com.cn,由于W3School里面的资料好像主要针对网页开发的,可能部分属性(方法等)不适合VBS,能测试的,我尽量测试一下,不能测试,可能我也不会的就不再测试,请见谅。

3.1.2 属性


表格1

使用State属性可以查看数据源连接的状态。返回值如下:


表格2

唉悲剧了,从网上看到使用State属性可以看到数据库连接是不是已经打开,可是我不管怎么测试,只要用了open方法,该属性就等于1,应该是使用WinCCOLEDBProvider的原因,等待以后再测试连接SQL的吧….


图5

图中看出只设置了Provider属性,其他的都是空,State属性值竟然也等于1,跳过…..

ADO Connection测试如下:



图6

测试图可以看出State属性目前等于1,就是连接已经打开

3.1.3方法


表格3

一般用到的方法Open Close Execute这三个,其他的的具体作用我也不是很了解了。

3.1.4 事件

这个功能临时也用不到,只做参考

表格4

3.1.5 集合

表格5

该集合的使用方法暂时不会…

3.2 数据库连接方法

3.2.1 创建对象

Dim conn

Set conn = CreateObject("ADODB.Connection")

3.2.2 设置ConnectionString属性

ConnectionString 属性可设置或返回用于建立到数据源的连接的信息。

ConnectionString 属性w3school和手册上的不太一样,以手册为准,其实通过图6也能看出来他完整的参数:

注释:您不能同时使用 Provider 和 File Name 参数。

在WinCC V7.4:使用 WinCC 系统手册 49页也有相关介绍

3.2 连接归档数据库

脚本参考手册里面的脚本,完整脚本如下:


图7

这一步连接数据库的脚本还是比较简单的,而且上方的脚本可以直接拿来就用


还是不是很熟练做帖子,写了好几天,先发出来,好有动力写完他


未完,待续......



Q 187272190 Q 群:6141014
以下网友喜欢您的帖子:

  
版主

经验值: 20280
发帖数: 9747
精华帖: 107
回复:WINCC 一起学-VBS读取变量归档-一
推荐帖


只看楼主 只看精华 2楼 2017-01-19 09:19:59

这样的文章通常是出力不讨好。 

写起来费劲,读的人也费劲。 

读完了,即便都读懂了, 实战中也照样还是不会。 


都不如我一个现成的例子来劲。 


《万泉河《WINCC完美报表之日报表月报表专用版》V1.04》

http://user.qzone.qq.com/178616417/blog/1329120254


这个例子搞出来5年了,我从此不再需要费尽口舌来回答相关问题。 无数人从中受益,其中也包括你本人。 




微信放开可加:178616417
以下网友喜欢您的帖子:

  
侠圣

经验值: 2810
发帖数: 187
精华帖: 0
回复:WINCC 一起学-VBS读取变量归档-一
推荐帖


只看楼主 只看精华 3楼 2017-01-19 10:22:31

 

感谢分享


不要太任性,不要让将来的你讨厌现在的自己
以下网友喜欢您的帖子:

  
版主

经验值: 38871
发帖数: 5476
精华帖: 47
回复:WINCC 一起学-VBS读取变量归档-一
推荐帖


只看楼主 只看精华 楼主 4楼 2017-01-19 11:30:08
以下是引用万泉河在2017-01-19 09:19:59的发言 >2楼

这样的文章通常是出力不讨好。 

写起来费劲,读的人也费劲。 

读完了,即便都读懂了, 实战中也照样还是不会。 


都不如我一个现成的例子来劲。 


《万泉河《WINCC完美报表之日报表月报表专用版》V1.04》

http://user.qzone.qq.com/178616417/blog/1329120254


这个例子搞出来5年了,我从此不再需要费尽口舌来回答相关问题。 无数人从中受益,其中也包括你本人。 



那就给看了能会的人~

不过看了能会的人,好像不用看这个帖子,从上面的那几个文档里面就能学会了

发发帖子,让板块里面也热闹热闹~


Q 187272190 Q 群:6141014
以下网友喜欢您的帖子:

  
游侠

经验值: 383
发帖数: 53
精华帖: 1
回复:WINCC 一起学-VBS读取变量归档-一


只看楼主 只看精华 5楼 2017-01-19 12:02:13

还是很不错的,知识不管新旧,有人能系统写出来给大家鉴赏学习非常好.


 
以下网友喜欢您的帖子:

  
奇侠

经验值: 7114
发帖数: 682
精华帖: 4
回复:WINCC 一起学-VBS读取变量归档-一


只看楼主 只看精华 6楼 2017-01-19 12:38:31


感谢介绍,最近正学到归档了,


good good study,day day up
以下网友喜欢您的帖子:

  
侠客

经验值: 762
发帖数: 327
精华帖: 0
回复:WINCC 一起学-VBS读取变量归档-一


只看楼主 只看精华 7楼 2017-01-19 20:52:40

 

最近在学习感谢分享


如果有什么需要明天做的事,最好现在就开始
以下网友喜欢您的帖子:

  
奇侠

经验值: 9856
发帖数: 2320
精华帖: 10
回复:WINCC 一起学-VBS读取变量归档-一


只看楼主 只看精华 8楼 2017-01-19 22:25:32

虽然不能跟万总的相提并论,但还是挺有意义的,楼主分享的有价值,再接再厉吧!


学无止境
以下网友喜欢您的帖子:

  
侠圣

经验值: 2177
发帖数: 328
精华帖: 2
回复:WINCC 一起学-VBS读取变量归档-一


只看楼主 只看精华 9楼 2017-01-20 08:45:42

感谢楼主分享,仔细拜读。


做喜欢做的事
以下网友喜欢您的帖子:

  
侠客

经验值: 936
发帖数: 268
精华帖: 0
回复:WINCC 一起学-VBS读取变量归档-一


只看楼主 只看精华 10楼 2017-01-20 09:38:41

感谢楼主,学习了


借鉴昨天!驾驭今天!成就明天!
以下网友喜欢您的帖子:

  
版主

经验值: 38871
发帖数: 5476
精华帖: 47
回复:WINCC 一起学-VBS读取变量归档-一
推荐帖


只看楼主 只看精华 楼主 11楼 2017-01-20 10:10:42
以下是引用暗殇在2017-01-20 09:38:41的发言 >

感谢楼主,学习了

感谢各位支持

我尽量慢慢更新,一步一步慢慢向万总靠近吧~

试试用变量归档做个报表


Q 187272190 Q 群:6141014
以下网友喜欢您的帖子:

  
游侠

经验值: 482
发帖数: 28
精华帖: 2
回复:WINCC 一起学-VBS读取变量归档-一
推荐帖


只看楼主 只看精华 12楼 2017-01-20 12:05:07

不错,如果做报表参考我的帖子吧,重要代码已上传,人气不够后面懒得更新了!

http://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1351559&b_id=5&s_id=17&num=8#anch


 
以下网友喜欢您的帖子:

  
版主

经验值: 38871
发帖数: 5476
精华帖: 47
回复:WINCC 一起学-VBS读取变量归档-一


只看楼主 只看精华 楼主 13楼 2017-01-20 13:38:57
以下是引用W.M.J在2017-01-20 12:05:07的发言 >12楼

不错,如果做报表参考我的帖子吧,重要代码已上传,人气不够后面懒得更新了!

http://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1351559&b_id=5&s_id=17&num=8#anch

嗯,很好

你脚本上传的有点晚了~

我是没事,一步一步的教初学者怎么做吧,哪里需要注意之类的~

加上论坛里面没有这种帖子,活跃一下气氛

顺便赚点西币~


Q 187272190 Q 群:6141014
以下网友喜欢您的帖子:

  
新手

经验值: 36
发帖数: 8
精华帖: 0
回复:WINCC 一起学-VBS读取变量归档-一


只看楼主 只看精华 14楼 2017-01-21 12:16:07

还是很不错的,知识不管新旧,有人能系统写出来给大家鉴赏学习非常好


你是我的
以下网友喜欢您的帖子:

  
侠士

经验值: 1498
发帖数: 307
精华帖: 0
回复:WINCC 一起学-VBS读取变量归档-一


只看楼主 只看精华 15楼 2017-01-22 09:52:45

 

 谢谢分享


改善设计无处不在
以下网友喜欢您的帖子:

  
至圣

经验值: 25907
发帖数: 3741
精华帖: 25
回复:WINCC 一起学-VBS读取变量归档-一


只看楼主 只看精华 16楼 2017-01-22 09:59:09

 感谢分享!


学无止境!!!
以下网友喜欢您的帖子:

  
侠士

经验值: 1129
发帖数: 232
精华帖: 0
回复:WINCC 一起学-VBS读取变量归档-一


只看楼主 只看精华 17楼 2017-01-26 17:39:02

楼主辛苦了!

VBS哪有资料学习啊  请教一下:1. T_T这个变量是不是也该像 T P L这三个变量一样先定义?

2. HMIRUNTIME.Tags("L").Write  HMIRUNTIME.Tags("L").Read +  HMIRUNTIME.Tags("P").Read/100 这句麻烦讲解一下好吗?  (结合图列:T=3.090; P=2.190; L=2484.5)感谢

 


雨过分洼种瓜,旱时饮水浇麻。
以下网友喜欢您的帖子:

  
至圣

经验值: 14558
发帖数: 3414
精华帖: 4
回复:WINCC 一起学-VBS读取变量归档-一


只看楼主 只看精华 18楼 2017-01-29 10:14:22

 楼主好心态,膜拜!


谨慎低调
以下网友喜欢您的帖子:

  
版主

经验值: 38871
发帖数: 5476
精华帖: 47
回复:WINCC 一起学-VBS读取变量归档-一


只看楼主 只看精华 楼主 19楼 2017-02-08 22:40:34
以下是引用幸福的方向在2017-01-26 17:39:02的发言 >17楼

楼主辛苦了!

VBS哪有资料学习啊  请教一下:1. T_T这个变量是不是也该像 T P L这三个变量一样先定义?

2. HMIRUNTIME.Tags("L").Write  HMIRUNTIME.Tags("L").Read +  HMIRUNTIME.Tags("P").Read/100 这句麻烦讲解一下好吗?  (结合图列:T=3.090; P=2.190; L=2484.5)感谢

 


VBS资料:

链接:http://pan.baidu.com/s/1eS7PL9C 密码:u55h

1、是的,需要先定义,定义为内部变量,我定义的是无符号32位

HMIRUNTIME.Tags("L").Write  HMIRUNTIME.Tags("L").Read +  HMIRUNTIME.Tags("P").Read/100

这句话的意思,就是L的上一个值加上P的值除以100,做一个累加的~

就是Lt= L(t-1) + P/100

图例里面的L的上一个值看不出来,不好计算了~


Q 187272190 Q 群:6141014
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
扫描打开手机版
您收到0封站内信:
×
×