wincc 按照时间查询数据

在wincc 想通过时间条件来查询,通过 data time picker控件获取系统时间,或者是通过脚本将系统时间赋值给了一个内部变量。然后想通过数据库查询语言将时间变量值与后天数据库数据时间值比较来查询数据,但是怎么也实现不了,我做的有一下2种方法,请各位大神给我看一下:
1、sql="select * from Table_5 where timer between '"& StartData &"' and '"& StopData &"'
2、TAG:R方式来查询
时建类型为datatime,不知道如何可以实现这种类型的数据比较,各位大神有没有好的建议,谢谢。

最佳答案

查询语句应该是
sql="select * from Table_5 where timer between ''"& StartData &"'' and ''"& StopData &"''ORDER BY timer "
下面是我做的一个类似的时间查询画面
其中查询按钮下面的脚本为
Dim i, n, k, n1, a1, b1, c1,e1, f1,h1,j1
Dim Sql, oCom, conn, sql1, oCom1,oItem
Dim j, b, z
Dim ylp, wdp, llp, ylx, wdx, llx, yld, wdd, lld
Dim zlp, dyp, sdp, zlx, dyx, sdx, zld, dyd, sdd
Dim strcn, cn
Dim a, shi, t, x
Dim oRs, oRs1
Dim  Text2
Dim BeginDate 
Dim EndDate  
Dim By, Bm, Bd
Dim Ny, Nm, Nd, c, e, f
Dim Date1,Date2
Dim t31,y1,m1,d1,s1,y2,m2,d2,s2
Set y1=ScreenItems("控件1")
Set m1=ScreenItems("控件4")
Set d1=ScreenItems("控件6")
Set s1=ScreenItems("控件7")
Set y2=ScreenItems("控件10")
Set m2=ScreenItems("控件11")
Set d2=ScreenItems("控件12")
Set s2=ScreenItems("控件13")


Set dyx = ScreenItems("控件19")
dyx.ListItems.Clear 
By=y1.Text
Bm=m1.Text
Bd=d1.Text
Ny=y2.Text
Nm=m2.Text
Nd=d2.Text

If By > Ny Or By = Ny And Bm > Nm Or By = Ny And Bm = Nm And Bd > Nd Or Bd=Nd And s1.Text>s2.Text  Then
MsgBox "输入的时间不正确", vbOK, "错误的起始时间"
Else

BeginDate = By&"/"&Bm&"/"&Bd&" "&s1.Text&":00:00"
EndDate = Ny&"/"&Nm&"/"&Nd&" "&s2.Text&":59:59"
''CONVERT(char(19),shijian, 20) AS
''建立连接
 Sql = "SELECT * FROM 一楼温度记录  WHERE shijian BETWEEN ''" & BeginDate & "'' and ''" & EndDate & "'' ORDER BY shijian "
 strcn = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist SecurityInfo=False;Initial Catalog=wanda;Data Source=.\wincc"
   Set conn = CreateObject("ADODB.Connection")
    conn.ConnectionString = strcn
    conn.CursorLocation = 3
    conn.Open
''使用命令文本查询
    Set oRs = CreateObject("ADODB.Recordset")    
    Set oCom = CreateObject("ADODB.Command")
    oCom.CommandType = 1
    Set oCom.ActiveConnection = conn
    oCom.CommandText = Sql 
   Set oRs = oCom.Execute
    
   n = oRs.RecordCount

 
  

If n = 0 Then
MsgBox "对不起,没有找到符合条件的数据", vbOK, "没有相关数据"
End If
oRs.Requery


If (n > 0) Then
        oRs.MoveFirst       
        i = 0       
 End If
Do While Not oRs.EOF

 Set oItem = dyx.ListItems.Add()''添加新行
 oItem.Text=CStr(oRs.Fields(0).Value)
 oItem.SubItems(1)=CStr(oRs.Fields(1).Value)
 oItem.SubItems(2)=CStr(oRs.Fields(2).Value)
 oItem.SubItems(3)=Formatnumber((oRs.Fields(3).Value),2)
 oItem.SubItems(4)=Formatnumber((oRs.Fields(4).Value),2)
 oItem.SubItems(5)=Formatnumber((oRs.Fields(5).Value),2)
 oItem.SubItems(6)=CStr(oRs.Fields(6).Value)
 oItem.SubItems(7)=CStr(oRs.Fields(7).Value)

  
oRs.MoveNext   
 Loop
 End If 
   oRs.close''这是后加的,退出程序前,关闭与数据库,记录集的连接
  ''ors1.close''这是后加的
  conn.close''这是后加的

希望对你有所帮助

图片说明:

wincc 按照时间查询数据  wincc 按照时间查询数据  

提问者对于答案的评价:
对于时间查询,我选择data timepicker 将系统时间赋值给内部变量,时间值为字符串,用数据库语句就可以实现了,不需要TAG:R的方式来实现查询。谢谢各位的答复,谢谢。

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

(1)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 下午12:01
下一篇 2021年7月5日 下午12:01

相关推荐

  • 有关wincc vbs脚本问题。

    Sub X8F93X5165X8F93X51FAX57DF9X0000209J_X8F93X5165X8F93X51FAX57DF9X0000X0000X0000X000…

    SIMATIC WinCC 2021年7月5日
  • wincc5.0升级到6.0

    原来的系统配置是plc300和wincc5.0。 现在要换成wincc6.0,该如何换,谢谢 最佳答案 首先安装Sybase数据库,安装时会提示你插入Wincc5.1的光…

    SIMATIC WinCC 2019年6月11日
  • wincc flexible变量表

    flexible能否创建变量表格,如S7内的数据块一样,如:第一列变量名,第二列变量数值,等等。。并且可以通过变量名搜索变量。 如何实现? 最佳答案 你可以在wincc&…

    2017年6月29日
  • 谁有中文版的WINCC V7.0使用手册

    我目前在学习WINCC V7.0,但没有中文版的使用手册,谁有中文版电子文档给俺一份,在下将不胜感激! 问题补充:下载中心的WinCC V7.0 使用…

    SIMATIC WinCC 2019年6月11日
  • 安装wincc的问题

    1.在xp sp3版本下能安装wincc6.2 sp3吗? 2.我在西门子网站上下载了一个wincc6.2 sp3可是没有microso&n…

    SIMATIC WinCC 2019年6月11日
  • WINCC报警声音误报

    系统架构是经典WINCC+SETP7,共有5台OS(其中1台为ES/OS)。我组态了一个报警变量,定义了专用的消息类别,关联到声音文件(文件是正常的),组态步骤如图,经程序模拟测试…

    2020年11月1日
  • VB代码编写,获取PLC变量qq的值

    请问如何编写一段获取PLC变量的值来判断要处理程序如何编写,dim a set a=smarttags("qq")if …

    SIMATIC WinCC 2021年7月5日
  • 怎样删除WINCC画面的历史数据

    最近我在查看WINCC画面历史数据时电脑CPU运行为100%,不能查看历史数据,哪位高人可以告诉我是怎么回事,谢谢! 最佳答案 缩短查询时间间隔  减少同时查询…

    SIMATIC WinCC 2019年6月11日
  • wincc报警不删除,只禁用怎么做?

    各位老师好,是这样的,wincc上做了很多报警,但甲方表示只需要一部分报警,但我又不想把那些不需要的删除,免得以后甲方又让我添加就麻烦了,有没有什么方法能禁用我想禁用的报警呢? 最…

    SIMATIC WinCC 2021年7月5日
  • opc里的变量的建立

    想问一下在opc服务器中建立的是200里头的变量,如何转换? 比如:就200里面的q0.0,0.1,0.2能否建立, 以及模拟量的输出vd2 vd6 …

    SIMATIC WinCC 2019年6月11日

发表回复

登录后才能评论