VB查询历史数据某一时间段内的最大值

现在要通过一个查询按钮查询一段时间内历史归档数据的最大值,并将最大值输出到画面中显示,我用VB脚本实现,脚本程序如下所示:
Sub OnClick(Byval Item)                                                    

Dim sPro,sDsn,sSer,sCon,sSql

Dim conn,oRs ,oCom,oList, oItem

Dim V,Max,tem

Dim m,n,s,nRec

Dim BiginTime,EndTime

Set BiginTime=HMIRuntime.tags("BeginTime")

Set EndTime =HMIRuntime.tags("EndTime")

sPro="Provider=WinCCOLEDBProvider.1;"

sDsn=" Catalog=CC_ART_10_04_30_23_55_43R;"

sSer ="Data Source=wangkou.\WinCC"

sCon= sPro+ sDsn+ sSer

sSql = "TAG:R,'DIANDU\1#KWH','2010-05-02 08:38:00.000','2010-05-02 08:42:00.000'"

Set conn=CreateObject("adodb.connection")

conn.connectionstring=sCon

conn.Cursorlocation=3

conn.open

Set oRs=CreateObject("adodb.recordset")

Set oCom=CreateObject("ADODB.Command")

oCom.CommandType=1

Set oCom.ActiveConnection=conn

oCom.CommandText=sSql

Set oRs=oCom.execute

n= oRs.RecordCount

If (n>0) Then

oRs.movefirst

n=0

Max= oRs.Fields(2).Value

Do While Not oRs.EOF

n=n+1

V= oRs.Fields(2).Value

If V>Max Then Max=V

oRs.MoveNext

Loop

oRs.Close

If(n>1) Then

Set tem=HMIRuntime.tags("tag0").read

    max.write tem

Else

HMIRuntime.Trace"selection return nofields" &vbNewLine

End If

End If

conn. Close
Set oRs=Nothing
Set oCom=Nothing
Set conn =Nothing

End Sub
现在的问题是在画面显示中没有数据显示。
说明:
查询的时间为:2010-05-02  16:38:00.000至2010-05-02 16:42:00.000'"
tag0为wincc画面中要查看的变量。

归档名称:diandu 归档数据为:1#kwh
有哪位大侠知道以上脚本问题出在哪儿呀?

最佳答案

1) 语句中有3个if,但只有两个end if
2) max.write tem应该是 tem.write max
3) 你可以加上msgbox看脚本执行到哪里停了,再逐个排查。
Set oRs=oCom.execute以下的语句改成:
n= oRs.RecordCount
max=0
If (n>0) Then
oRs.movefirst

Do While Not oRs.EOF

If oRs.Fields(2).Value>Max Then 
   Max=oRs.Fields(2).Value
end if
oRs.MoveNext
Loop
Else
HMIRuntime.Trace"selection return nofields" &vbNewLine
end if
oRs.Close
'dim tem
Set tem=HMIRuntime.tags("tag0").read
    tem.write max
oRs.Close
set tem=nothing
Set oRs=Nothing
Set oCom=Nothing
Set conn =Nothing
End Sub

提问者对于答案的评价:
非常谢谢你的帮忙,不过主要问题不是出在这儿,而是n没有数据输出,始终输出为-1,后来增加了一条指令,就可以了。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日 上午6:45
下一篇 2019年6月11日 上午6:46

相关推荐

  • WinCC系统问题

    在WinCC中,服务器(sever)是否是唯一的?客户机(client)会有多个。      在WinCC的多用户项目中…

    SIMATIC WinCC 2019年6月11日
  • 该怎么把wincc前几天 或者某个时间段的报警查询出来啊?

    该怎么把wincc前几天 或者某个时间段的报警查询出来啊? 问题补充:我想查询的 是 比如说 从 1号 到 2…

    SIMATIC WinCC 2019年6月11日
  • 关于:WINCC6.0SP3 的安装问题

    安装WINCC6.0SP3 ,需要先安装SQL2000SP3a,我如此安装,但WINCC检测不到SQL的安装,提示SQL末安装。请问这是什么原因,如何解决?我的WINCC…

    SIMATIC WinCC 2019年6月11日
  • wincc 6.0 sp3+hotfix2

    这个版本的WINCC需要安装哪些版本的软件,还有一个是7.3.0.1,这两种直接用7.3版本的为什么打开不了,谢谢! 最佳答案 wincc 6.0 sp3-V7…

    SIMATIC WinCC 2020年11月1日
  • WINCC7.2怎么添加阴影

    WINCC7.2怎么添加阴影 最佳答案 在WinCC Explorer中右键点击项目名称–属性–用户界面和设计–激活设计–编辑–添加新设计–勾选阴影 提问者对…

    SIMATIC WinCC 2017年8月26日
  • wincc趋势图显示问题

    请问我用模拟器模拟WINCC中的外部变量在趋势图控件上有显示有显示,为什么在现场就显示不了呢? 最佳答案 外部变量连接的不对,或者你的WINCC安装的有问题。你的电脑里有暴风影音吗…

    SIMATIC WinCC 2019年6月11日
  • wincc6.0 软件许可证期满

    我自己新建一个项目,运行时没有报软件许可证期满,可运行我们公司里人家编好的画面之后,就会告诉我许可证期满 ,这是什么原因呢? 问题补充:1、装RC授权也不行2、如果归档多…

    SIMATIC WinCC 2019年6月11日
  • 利用WinCC做的報表在打印時第一頁是空白的

    请教一个问题,我在利用WinCC做报表时,不管是消息顺序报表、变量记录报表还是打印外部数据库中的数据报表,报表的第一页都是空白的,请高手赐教! 问题补充:请问表头在哪里设置? 最佳…

    SIMATIC WinCC 2019年6月11日
  • 还是WEBNAVIGATOR页面发布的问题,求救

    请教高人,所有的设置都按照手册中的完成了,但是就是页面发布的时候,左侧页面选择框里什么也没有,没有可以发布的页面,求教怎么回事啊 问题补充:项目已经正常运行了,当然有图片.所以不知…

    SIMATIC WinCC 2019年6月11日
  • wincc自定义菜单栏工具栏的的VBS属性

    如何在运行中显示或隐藏菜单栏跟工具栏呢???以及运行中如何对它进行操作呢? 问题补充:就是这个. 图片说明:       最佳答案 如果是想…

    2021年7月5日