电工学习网

 找回密码
 立即注册
查看: 2297|回复: 0

WinCC做报表能否用标准T-SQL语言来查询变量记录

[复制链接]
发表于 2019-12-21 10:04:02 | 显示全部楼层 |阅读模式
提问如标题,我回答可以:
对于报表我始终提倡一种宗旨,那就是将更多的数据处理工作让数据库本身去完成,VBS只负责读取和显示。目的只有一个,简化脚本提高执行效率。
WinCC的变量记录在归档中使用很方便而且归档的种类和速度都比自己建立的数据库表要好很多。但是我们在用脚本向外部读取的时候,会遇到一个很棘手的问题,就是他的表格结构并不是我们常见的标准表格结构,而且读取语句也不是标准的T-SQL语言。如下:
TAG:R,('ProcessValueArchiveNewTag';'ProcessValueArchiveNewTag1'),'2019-12-19 8:00:00','2019-12-20 8:00:00'
6371244990989646874328711.jpg
因此导致我们的读取只能是先读取一列,填充完毕后再读取下一列,如此循环下去。或者用vbs统一读出来再进行拆分。数据量小还好说数据量大的时候相当慢。
其实WinCC的帮助文件里已经为我们做好了接口:
6371245019856865099371389.jpg

具体怎么的脚本思路如下(详细解释请参考更新视频)。
有三个变量,一次查询出每一个变量的所有数据,利用标准的SQL语言来进行拼接,并在这个过程中将时间的转换和小数点的位数一起处理完毕。
6371245078481967457935379.jpg
通过上述脚本可以直接查询出变量记录的所有实际值,并且记录集是我们常见的时间加数值的格式。
那么将上述脚本直接做成存储过程,再VBS中只需要一句SQL字符串就将所有的数据按照我们想要的格式显示出来了。测试项目是217条数据,一秒到账!
6371245094530425432774308.jpg
6371245096680425434072604.jpg
本帖只提供思路,因为每个项目的实际情况均不同,因此没有粘贴全部脚本,鼓励大家自主学习,看帮助文件。
来源:西门子工业技术论坛

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

电工学习网 ( )

GMT+8, 2024-3-28 21:55

Powered by © 2011-2022 www.diangon.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

快速回复 返回顶部 返回列表