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

相关推荐

  • 控制窗口中静态文本脚本赋值

    在工艺流程图中通过点击按钮来弹出电机控制窗口,在电机控制窗口中有静态文本对象,用脚本如何实现静态文本显示如"M11电机"文本信息呀,我是多台电机调用同一控制窗口…

    SIMATIC WinCC 2019年6月11日
  • 怎么实现远程的视频监控,

    我想实现在电脑上可以监控千里之外的厂区运行情况,视频监控,就是看看他们运行的怎么样了,怎么才能实现呢? 钻石用户推荐最佳答案 WinCC 如何实现网络摄像头的视频显示ht…

    SIMATIC WinCC 2021年7月5日
  • Wincc出现CCArchiveManager.exe遇到错误需要关闭

    我做了个趋势图,在计算机属性start up选了变量归档,之后激活项目就出现这种情况,无法激活,自动又退出了,如果不选那项可以激活,但导致趋势图一直是No &n…

    SIMATIC WinCC 2019年6月11日
  • 关于horn报警器的变量

    在wincc里的horn报警器组态了一个变量alarm,alarm为1时报警,0时没动作。我如何将报警信息记录下来,可以历史查询..只查询为1时的时间信息,也就是只查报警。 最佳答…

    SIMATIC WinCC 2019年6月11日
  • WINCC 开关量历史曲线问题

    WINCC 开关量历史曲线问为什么变化为斜线? 最佳答案 因为通讯延时可能有的点不能被准确的用曲线表示出来,开关量即使能做曲线也是就两中值:0或1 提问者对于答案的评价:

    SIMATIC WinCC 2021年7月5日
  • wincc 图中的对象属性高度不能从下往上变

    我用wincc画了一个竖着的杆子,希望它能根据变量的值进行从下往上伸长和收缩,运行后杆子却是从上往下伸缩?这是为什么?是不是我哪里没有设定?请帮一下忙呀! 最佳答案 你想反方向伸缩…

    SIMATIC WinCC 2019年6月11日
  • TP900触摸屏数据记录展示问题

    TP900触摸屏BOOL的数据记录,怎么像趋势图那样展示出来 最佳答案 历史记录要放到U盘或是SD卡才能在触摸屏上显示。你在程序里面将BOOL型的值传送到字或是双字后再通过触摸屏历…

    SIMATIC WinCC 2021年7月5日
  • 400冗余系统CP443通讯问题

    412H与单站WINCC通讯。主CPU带的CP443可与操作员通讯,备用CPU带的CP443与操作员通讯不上。备用CP443通讯应该没有问题,可以通过工程师站对备用CPU进行下装。…

    2019年6月10日
  • wincc7.0趋势曲线里的数据后面有个i是什么含义?

    wincc7.0 SP3做的项目,趋势曲线里的归档的模拟量数值后面的英文小写字母i 是什么含义?能去掉吗?看着有点不舒服。见附件里图。 图片说明:  …

    2021年7月5日
  • wincc7.0移植到7.3,组态数据库的移植失败

    试了多次,wincc7.3,用项目移植器移植7.0项目,出现下图失败提示;将7.0wincc项目特地用项目复制器,复制过来后,再移植,也出现下图失败提示,特别注明,7.0和7.3分…

    2021年7月5日