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最新中文版啊,麻烦发个地址过来1058105295@qq.com一定要好用啊,曾经安装的版本费了很大的事才安装上 最佳答案 我建议你在分享网(电驴)上找,那里有好多的…

    SIMATIC WinCC 2019年6月11日
  • WINCC7.0与S7200 EM277通讯问题

    小弟最近用WINCC7.0通过EM277与S7200CPU用PROFIBUS通讯,通讯什么都没有问题,但是现在遇到一个新问题,每次WINCC启动后原先设定的参数就都归零,我在200…

    SIMATIC WinCC 2017年10月24日
  • wincc c/s

    现有一套系统  用的两个WINCC 单站结构上位机现在想再加一台电脑不配CP1613卡,将以前的那两个单站的一个转换成服务器,其中操作站转为服务器不知…

    SIMATIC WinCC 2017年12月9日
  • 关于在Windows Server2003 下面安装WinCC

    在Windows Server2003下如何安装WinCC?哪位有经验的谈谈。1、SQL怎么解决?(我试过从光盘里面运行安装向导,可以安装,但是装好后不是WinCC的版本…

    SIMATIC WinCC 2019年6月11日
  • WINCC不带SIMATIC NET 软件

    原来买的WINCC 7.0亚洲版安装的时候是有SIMATIC NET 软件的,现在WINCC 7.3怎么安装时没有看到SIMATIC&nbs…

    SIMATIC WinCC 2017年6月12日
  • wincc中用vb查询数据库

    想生成月报表,在图片编辑器中组态了两个输出域,定义两个内部变量年和月, data17=HMIRuntime.tags("年").readdata16=…

    SIMATIC WinCC 2018年12月14日
  • wicc的c/s模式创建

    wicc的c/s模式创建 问题补充:客户机是通过IP地址浏览服务器吗?客户机上不用装WINCC是怎么说法? 最佳答案 组态服务器/客户机项目需要注意以下几点: 1.&nb…

    SIMATIC WinCC 2019年6月11日
  • wincc画面批量大小调整

    我有一个WinccV6.2项目,原来的画面是15寸的显示器,现在要换成19寸的显示器,由于画面比较多,大概有700幅,每幅画面里的内容很多,想请问有没有好的方法来调整画面大小呢,比…

    SIMATIC WinCC 2019年6月11日
  • 关于点击阀门、点击弹出对话框的问题

    现在制作画面里有很多WINCC库里的阀门、点击,甲方要求在画面激活后监控的时候可以单独点击每个阀门来操作关闭和开启,普通方法是做画面窗口来实现,可是现在的问题是阀门和电机加起来上万…

    SIMATIC WinCC 2019年6月11日
  • wincc 库元件

    请教各位,如下图是在wincc库里能找到的还是要自己做组合起来 图片说明:    最佳答案 没有见过这样的图形和控件,这个是WINLC控制器界面。 提问者对于答…

    2018年12月6日