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中静态文本的显示属性,具体如下:我在画面上放置了一个静态文本,名称是text1,我需要实现当内部变量"x"的值为0时,t…

    SIMATIC WinCC 2019年6月11日
  • WINCC 7.0版本中画面模板的C动作!

    我这有个6.2版本的C动作,用7.0打开可以正常使用,但是新建一个项目的时候,用同样一个C动作,就没法实现。请问怎么办?就是鼠标点一下电机图标,弹出一个公共的电机控制画面,自动更改…

    SIMATIC WinCC 2017年12月9日
  • 博途v14弹出画面问题

    在博途v14 Professional版本中,编辑HMI画面时,画面管理中的弹出画面选项怎么没有了?别人的v13版本是具有这个功能,那如何在v14中实现弹出用自定义的提示…

    SIMATIC WinCC 2017年5月28日
  • 保存趋势图设置

    在画面运行时修改了趋势图和报表的设置,一旦切换画面,对趋势图和报表的设置就会自动恢复。如何在不退出运行模式的情况下,保存住对趋势图或者报表的设置?谢谢!~ 最佳答案 1、离线组态中…

    SIMATIC WinCC 2019年6月11日
  • 目前正在学习WINCC,谁能提供一份wincc的程序供学习参考?谢谢

    目前正在学习WINCC,谁能提供一份wincc的程序供学习参考?谢谢 最佳答案 《WinCC跟我学》https://www.ad.siemens.com.cn/Service/el…

    SIMATIC WinCC 2021年7月5日
  • Wincc6能否直接读s7-400挂的从站数据?

    请问:400d的PLC下面挂2个从站,wincc不通过主站转,能否直接读到数据, 问题补充:补充一下:主站是s7-400组成的以太环网,从站是315-2,DP通讯的。计算机是普通网…

    SIMATIC WinCC 2019年6月11日
  • WINCC归档数据的查询

    1)点击下拉框中会列出该项目的所有归档名,点击选择需要的归档名。2)根据所选的A归档名,列出该归档内所有的变量名,并可选择需要的变量(可多选)。3)设置需要变量数据的时间范围,格式…

    SIMATIC WinCC 2019年6月11日
  • RSLinx与WINCC的OPC通讯

    实现两台PC间的OPC通讯,装有RSLinx的PC作为OPC服务器,装有WINCC的PC作为客户机,怎么对RSLinx和WINCC进行配置 问题补充:各位提供的资料是在单机上实现R…

    SIMATIC WinCC 2019年6月11日
  • 如何添加OMRON的驱动程序

    就是我想用WICC实现与OMRON PLC的通讯或与三菱PLC的通讯,但是WICC变量管理内没有上述的通讯驱动程序,只有西门子的,如何添加?谢谢 问题补充:各位师傅能否具…

    SIMATIC WinCC 2019年6月11日
  • wincc历史趋势不显示

    有个wincc上位机运行每隔1月历史趋势就会不显示,重启电脑后又正常了,不知道是什么原因,打400问过说要装个纯净的xp系统,ghost版的不好。 最佳答案 西门子软件对系统要求还…

    SIMATIC WinCC 2019年6月11日

发表回复

登录后才能评论