技术论坛

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

返回主题列表
作者 主题
菜鸟工控
侠圣

经验值: 2210
发帖数: 263
精华帖: 6
楼主    2019-12-20 15:05:04
主题:WinCC做报表能否用标准T-SQL语言来查询变量记录 精华帖 

提问如标题,我回答可以:

对于报表我始终提倡一种宗旨,那就是将更多的数据处理工作让数据库本身去完成,VBS只负责读取和显示。目的只有一个,简化脚本提高执行效率。

WinCC的变量记录在归档中使用很方便而且归档的种类和速度都比自己建立的数据库表要好很多。但是我们在用脚本向外部读取的时候,会遇到一个很棘手的问题,就是他的表格结构并不是我们常见的标准表格结构,而且读取语句也不是标准的T-SQL语言。如下:

TAG:R,('ProcessValueArchive\NewTag';'ProcessValueArchive\NewTag1'),'2019-12-19 8:00:00','2019-12-20 8:00:00'

因此导致我们的读取只能是先读取一列,填充完毕后再读取下一列,如此循环下去。或者用vbs统一读出来再进行拆分。数据量小还好说数据量大的时候相当慢。

其实WinCC的帮助文件里已经为我们做好了接口:


具体怎么的脚本思路如下(详细解释请参考更新视频)。

有三个变量,一次查询出每一个变量的所有数据,利用标准的SQL语言来进行拼接,并在这个过程中将时间的转换和小数点的位数一起处理完毕。

通过上述脚本可以直接查询出变量记录的所有实际值,并且记录集是我们常见的时间加数值的格式。

那么将上述脚本直接做成存储过程,再VBS中只需要一句SQL字符串就将所有的数据按照我们想要的格式显示出来了。测试项目是217条数据,一秒到账!

本帖只提供思路,因为每个项目的实际情况均不同,因此没有粘贴全部脚本,鼓励大家自主学习,看帮助文件。


wincc报表全套教材书+视频教程+实例:2606352062
菜鸟工控
侠圣

经验值: 2210
发帖数: 263
精华帖: 6
1楼    2019-12-20 15:09:36
主题:回复:WinCC做报表能否用标准T-SQL语言来查询变量记录

忘记说了,以上测试请在WinCC项目处于运行状态下的进行,关闭状态下是无法查询的!

wincc报表全套教材书+视频教程+实例:2606352062
RENHQ
至圣

经验值: 68945
发帖数: 12231
精华帖: 59
2楼    2019-12-20 18:30:49
主题:回复:WinCC做报表能否用标准T-SQL语言来查询变量记录

啊,不错,那我以前做的报表,以这种方式的话,不至于刷新时间很长了呢

不知道如果时间跨度比较长的话,读取速度怎么样

Q群:https://jq.qq.com/?k=9BDuEgf6
菜鸟工控
侠圣

经验值: 2210
发帖数: 263
精华帖: 6
3楼    2019-12-20 20:23:36
主题:回复:WinCC做报表能否用标准T-SQL语言来查询变量记录

 目前我这个测试是3个变量,一共217条,测试从按钮按下到全部显示完大概是1秒不到。可能是数据库内部执行脚本需要时间了,研究下还能优化。另外再加上时间的参数说不定也会影响执行效率,但是肯定要必一列一列的读写要快很多很多的。

wincc报表全套教材书+视频教程+实例:2606352062
不断攀登
至圣

经验值: 12543
发帖数: 1843
精华帖: 0
4楼    2019-12-21 08:15:07
主题:回复:WinCC做报表能否用标准T-SQL语言来查询变量记录

不错 感谢分享。

邮箱 yongquancun@126.com
天芯
至圣

经验值: 18845
发帖数: 2106
精华帖: 0
5楼    2019-12-21 11:21:39
主题:回复:WinCC做报表能否用标准T-SQL语言来查询变量记录


真心不错保存了

黑猫警长W
至圣

经验值: 18389
发帖数: 2409
精华帖: 1
6楼    2019-12-21 11:49:41
主题:回复:WinCC做报表能否用标准T-SQL语言来查询变量记录

思路可以借鉴

CoolCool的猪
至圣

经验值: 16717
发帖数: 1307
精华帖: 2
7楼    2019-12-21 13:22:40
主题:回复:WinCC做报表能否用标准T-SQL语言来查询变量记录

不错不错很好

同一个问题ID下,已经先回答此问题的人,如再参考我答案而修改自己答案的,就是王八蛋!
yecao2006
至圣

经验值: 18031
发帖数: 1524
精华帖: 2
8楼    2019-12-21 17:37:41
主题:回复:WinCC做报表能否用标准T-SQL语言来查询变量记录

变量多的时候数据处理时间应该很慢吧。

我回来了!继续努力!
菜鸟工控
侠圣

经验值: 2210
发帖数: 263
精华帖: 6
9楼    2019-12-21 19:58:02
主题:回复:WinCC做报表能否用标准T-SQL语言来查询变量记录

变量的多少影响不大的,因为只有一列时间需要处理,后边的都是一样的根据时间来合并的。因此后边再多的变量也不会再处理时间了。这个有时间可以做一个大概15个变量的归档来测试一下,就按一分钟归档一次,一天1440个数据来测试就差不多能够有说服力了

wincc报表全套教材书+视频教程+实例:2606352062
Ready_OK
至圣

经验值: 15530
发帖数: 1735
精华帖: 0
10楼    2019-12-22 09:12:05
主题:回复:WinCC做报表能否用标准T-SQL语言来查询变量记录

 楼主威武!不错!

海纳百川,厚德务实!
城外之人
至圣

经验值: 17281
发帖数: 8464
精华帖: 18
11楼    2019-12-23 08:41:25
主题:回复:WinCC做报表能否用标准T-SQL语言来查询变量记录


理论上,一次多变量查询,变量个数不要超过20个,实际最大数量可以达到31个。

无论成与败,无论甜与苦,我还是我。
城外之人
至圣

经验值: 17281
发帖数: 8464
精华帖: 18
12楼    2019-12-23 09:48:19
主题:回复:WinCC做报表能否用标准T-SQL语言来查询变量记录

另外,从WinCC V7.4 SP1版本开始,通过WinCC OLE DB查询的记录集,实时值字段名已经不是“RealValue”了,而是“VariantValue”。

无论成与败,无论甜与苦,我还是我。
菜鸟工控
侠圣

经验值: 2210
发帖数: 263
精华帖: 6
15楼    2019-12-23 12:54:00
主题:回复:WinCC做报表能否用标准T-SQL语言来查询变量记录
确实,WinCC的帮助文件里说了,高版本数据结构可能会有所变化。
wincc报表全套教材书+视频教程+实例:2606352062
万泉河
至圣

经验值: 28649
发帖数: 10889
精华帖: 131
16楼    2019-12-23 21:01:16
主题:回复:WinCC做报表能否用标准T-SQL语言来查询变量记录

openquery语句把时间参数放在了里面,导致每次生成查询条件的时候都要重新来生成过程, 还是比较恶心的. 


微信公众号:PLC标准化编程,ZHO6371995
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。