wincc查询

我现在要实现一个关于变量记录中历史数据的查询问题,具体的功能是:在变量记录中已经归档一个电度的数据,归档周期为1MIN。在运行画面中制作一个查询按钮,查询的起始时间、终止时间和用电量,在查询中输入起始时间,在终止中输入终止时间,点击查询按钮,则在画面中显示这段时间内的用电量,输出是用I/O。wincc是6.2版本的。请问有那位大侠知道这样的功能如何实现。QQ:458190028

问题补充:
这是我做读取历史归档记录中的一个变量在某一个时间段内的最大数据查询VB脚本,可是在执行时无法得到查询的值。
Dim sPro,sDsn,sSer,sCon,sSql

Dim conn,oRs ,oCom,oList, oItem

Dim V,Max

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=.\WinCC"

sCon= sPro+ sDsn+ sSer

sSql = "TAG:R,'DIANDU\1#KWH','2010-05-01 09:33:00','2010-05-01 09:34:00'"

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

MsgBox n

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

HMIRuntime.Tags("查询电度").Write FormatNumber(Max,2)

Else

HMIRuntime.Trace"selection return nofields" &vbNewLine

End If

End If

conn. Close

Set oRs=Nothing

Set oCom=Nothing

Set conn =Nothing

有哪位大侠帮我看看问题出在哪儿呀?

最佳答案

使用脚本把两个时间的变量值读出来就可以!假设读出的值写入变量tag0,启始时间和结束时间分别是time1,time2,还需要个两个中间时间time3,time4,VB脚本:
dim time1,time2,time3,time4
dim tempa
time3=DateAdd("n", 10, time1)
time4=DateAdd("n", 10, time2)
''time1,time2分别有界面输入筐得到time3为time1后10分钟
Dim cnn As String
    cnn = "provider=WinCCOLEDBProvider.1;catalog=CC_gz_food_09_07_14_14_54_22R;data source=wincc01\WinCC"
dim cc1 as object
Set cc1 = CreateObject("adodb.connection")
       cc1.ConnectionString = cnn
       cc1.CursorLocation = 3
       cc1.Open
Dim rst As Object
Set rst = CreateObject("adodb.recordset")
Dim ssql1 As String
    ssql1 = "TAG:R,'speed1\c_speed1_1',time1,time3"   ''speed1\c_speed1_1分别为归档名称和归档变量
    rst.Open ssql1, cc1     ''读出这10分中内所有的值
    rst.MoveFirst
    tempa=rst.fields(2).value
dim Dim ssql2 As String
    ssql2 = "TAG:R,'speed1\c_speed1_1',time2,time4"
    rst.Open ssql2, cc1
    rst.MoveFirst
    tempa=rst.fields(2).value-tempa
    cc1.close
dim tag0
set tag0=hmiruntime.tags("tag0").read
    tag0.write tempa
set rst=nothing
set cc1=nothing
set tag0=nothing
以上cnn连接字符串可以在Wincc运行以后在数据库中看到

提问者对于答案的评价:
非常谢谢你的帮忙.

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

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

相关推荐

  • 计算机与控制器通讯的问题

    终端两头(数据采集装置和计算机)都是标准的RS232接口,需要传输的距离是100米,有什么方法可以实现100米的有效传输?我可以用两个RS232/485转换器可以吗 最佳答案 可以…

    SIMATIC WinCC 2019年6月11日
  • 动画制作

    如何制作管道内液体的流动效果?如何制作电机,或者泵的旋转效果? 最佳答案 流动效果方法 一、直接调用液体流动控件,效果很好,控件网上可以搜到,  &n…

    SIMATIC WinCC 2019年6月11日
  • WINCC输入输出域可以显示单位吗

    比如,我建立了一个输出域,我想让它显示为5.5℃,或者5.6m3/h。这样可以实现吗?最好别再建立一个静态文本单独实现。 最佳答案 这个功能好像不能直接实现,输入输出域直接显示的是…

    SIMATIC WinCC 2019年6月11日
  • 自动设置复选框

    求助,我的一个复选框里有两个索引,我想根据两个PLC里的二进制的值 分别进行反馈,请问如何。注意我只用一个复选框,含有两个选项。我给obj.Process赋值赋不上。 最…

    SIMATIC WinCC 2019年6月11日
  • 虚拟机,Windows系统,wincc,博图是否是否可以安装在外置硬盘上USB3.0的

    虚拟机,Windows系统,wincc,博图是否是否可以安装在外置硬盘上USB3.0的 问题补充:问题我今天已经解决了,安装是可以的,但是运行会很卡,后来我把安装的数据都移到电脑里…

    SIMATIC WinCC 2021年7月5日
  • 声音报警有条件的产生

    只有在用户登录的状态下声音报警才生效wincc 最佳答案 如何只有在用户成功登陆以后才激活声音报警?https://support.industry.siemens.com/cs/…

    SIMATIC WinCC 2021年7月5日
  • wincc 7.0 simatic security control

    从wincc 6.2开始好像就有这个simatic security control,安装结束后会有一个安全控制的对话框,要么应用,要么保存等,我想问…

    SIMATIC WinCC 2019年6月11日
  • WINCC日期时间如何读取并应用

    看到了以前的贴子,说到如何读取系统日期时间,我在系统信息通道里新建了两个变量,为文本变量8位字符值,也设置了相应的显示格式,那么我如何应用这两个变量,在报表中有日期时间两个列,显示…

    SIMATIC WinCC 2019年6月11日
  • 画面切换问题

    我有一个1280*100的导航pdl文件,想通过它来切换不同的控制画面,导航上的按钮脚本是直接打开另一。pdl文件(控制画面),但是整个画面都只能显示在1280*100的这个导航画…

    SIMATIC WinCC 2019年6月11日
  • PCS、WINCC、WINCC FIEXIBLE请问从哪里可以下载

    PCS、WINCC、WINCC FIEXIBLE请问从哪里可以下载? 问题补充:忘了说了,软件必须是免费的,才行 最佳答案 西门子自动化及驱动软件合集http://www…

    SIMATIC WinCC 2021年7月5日