技术论坛

wincc 读取归档变量问题

作者 主题
游士

经验值: 176
发帖数: 29
精华帖: 0
主题:【求助】wincc 读取归档变量问题


只看楼主 楼主 2017-02-21 21:56:42

各位好,本人设置一个归档,通过online trend查看历史归档都是有数据的,通过如下脚本定时去生成xlsx文件时,总是说没有数据,怎么破?

Option Explicit

Function action

'此为查询按钮中的代码

'变量定义和初始化                                                                                                                                                                                                                                                                  

Dim sPro,sDsn,sSer,sCon,conn,sSql,oRs,oCom

Dim tagDSNName

Dim m,i

Dim LocalBeginTime, LocalEndTime,UTCBeginTime, UTCEndTime,sVal ,UTCTime ,Localtime

Dim objExcelApp,objExcelBook,objExcelSheet,sheetname

On Error Resume Next 

sheetname="Sheet1"

'打开Excel模板

Set objExcelApp = CreateObject("Excel.Application")

objExcelApp.Visible = False

objExcelApp.Workbooks.Open "C:\abc.xlsx"

objExcelApp.Worksheets(sheetname).Activate

'准备查询条件 Catalog、UTC开始时间、UTC结束时间、时间间隔

Set tagDSNName = HMIRuntime.Tags("@DatasourceNameRT")

tagDSNName.Read 


UTCBeginTime = CStr(Year(Now)) & "-" & CStr(Month(Now)) & "-" & CStr(Day(Now)-2) & " 16:00:00"

UTCEndTime = CStr(Year(Now)) & "-" & CStr(Month(Now)) & "-" & CStr(Day(Now)-1) & " 15:59:59"

'创建数据库联接

sPro = "Provider=WinCCOLEDBProvider.1;"

sDsn = "Catalog=" &tagDSNName.Value& ";"

sSer = "Data Source=CDD-PC\WinCC"

sCon = sPro + sDsn + sSer

Set conn = CreateObject("ADODB.Connection")

conn.ConnectionString = sCon

conn.CursorLocation = 3

conn.Open

'定义查询的命令文本 SQL

    sSql = "Tag:R,('PVArchive\a'),'" & UTCBeginTime & "','" & UTCEndTime & "',"

    sSql=sSql+"'order by Timestamp ASC'"

MsgBox sSql

Set oRs = CreateObject("ADODB.Recordset")

Set oCom = CreateObject("ADODB.Command")

oCom.CommandType = 1

Set oCom.ActiveConnection = conn

oCom.CommandText = sSql

'填充数据NewPdl0NewPdl0NewPdl0NewPdl0NewPdl0到Excel中

Set oRs = oCom.Execute 

m = oRs.RecordCount

If (m > 0) Then

objExcelApp.Worksheets(sheetname).cells(2,1).value=oRs.Fields(1).Name

objExcelApp.Worksheets(sheetname).cells(2,2).value=oRs.Fields(2).Name

   oRs.MoveFirst  

   i=3  

   Do While Not oRs.EOF                       '是否到记录末尾,循环填写表格   

       objExcelApp.Worksheets(sheetname).cells(i,1).value= GetLocalDate(oRs.Fields(1).Value) 

       objExcelApp.Worksheets(sheetname).cells(i,2).value= oRs.Fields(2).Value

       oRs.MoveNext

       i=i+1

   Loop

   oRs.Close

Else

   MsgBox "没有所需数据……"

   Set oRs = Nothing

conn.Close

   Set conn = Nothing

   objExcelApp.Workbooks.Close

   objExcelApp.Quit

   Set objExcelApp= Nothing

   Exit Function

End If

'释放资源

Set oRs = Nothing

conn.Close

Set conn = Nothing

'生成新的文件,关闭Excel

Dim patch,filename

filename=CStr(Year(Now))&CStr(Month(Now))&CStr(Day(Now))&CStr(Hour(Now))&CStr(Minute(Now))&CStr(Second(Now))

patch= "c:\elecRecord_"&filename&".xlsx"

objExcelApp.ActiveWorkbook.SaveAs patch

objExcelApp.Workbooks.Close

objExcelApp.Quit

Set objExcelApp= Nothing

MsgBox "成功生成数据文件!"

End Function




 
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1372982&b_id=5&s_id=0&num=9

版主

经验值: 17336
发帖数: 8475
精华帖: 18
回复:wincc 读取归档变量问题


只看楼主 1楼 2017-02-22 08:19:19

WinCC归档数据的时间是UTC时间,与北京时间相差8小时。查询前,系统当前时间要减去8小时。


无论成与败,无论甜与苦,我还是我。
以下网友喜欢您的帖子:

  
版主

经验值: 69061
发帖数: 12270
精华帖: 59
回复:wincc 读取归档变量问题


只看楼主 2楼 2017-02-22 09:31:09

用TRACE 或则msgbox把ssql和scon看一下对不对


Q群:https://jq.qq.com/?k=9BDuEgf6
以下网友喜欢您的帖子:

  
游士

经验值: 176
发帖数: 29
精华帖: 0
回复:wincc 读取归档变量问题


只看楼主 楼主 3楼 2017-02-22 10:33:02



s输出应该没问题啊,历史记录都查询到有数据,系统一直在跑的


 
以下网友喜欢您的帖子:

  
版主

经验值: 69061
发帖数: 12270
精华帖: 59
回复:wincc 读取归档变量问题


只看楼主 4楼 2017-02-22 11:29:41

好用了就行

正序排,我看着不用ASC也行~再慢慢试试吧


Q群:https://jq.qq.com/?k=9BDuEgf6
以下网友喜欢您的帖子:

  
游士

经验值: 257
发帖数: 34
精华帖: 0
回复:wincc 读取归档变量问题


只看楼主 5楼 2017-02-22 11:30:16

时间后面加毫秒试试


 
以下网友喜欢您的帖子:

  
侠圣

经验值: 2210
发帖数: 263
精华帖: 6
回复:wincc 读取归档变量问题


只看楼主 6楼 2017-02-22 13:05:03
如果是弹出框说没有所需数据,那么说明你没有查询到记录,也就是说m等于0,所以检查这句之前的脚本,重点检查时间格式,但是可以判断m之前的脚本是没有语法问题的。
wincc报表全套教材书+视频教程+实例:2606352062
以下网友喜欢您的帖子:

  
侠圣

经验值: 2210
发帖数: 263
精华帖: 6
回复:wincc 读取归档变量问题


只看楼主 7楼 2017-02-22 13:11:54
如果不是在弹出框说没有数据,而是程序执行了没反应,那就可能是前边的语法错误,重点看excel部分,是不是能操作高版本的excel,时间转换是不是执行了,数据源是不是正确,看你这意思,脚本是从别处复制的,是不是有其它引用函数没有复制过来。2606352062,欢迎一起交流。
wincc报表全套教材书+视频教程+实例:2606352062
以下网友喜欢您的帖子:

  
侠圣

经验值: 2210
发帖数: 263
精华帖: 6
回复:wincc 读取归档变量问题


只看楼主 8楼 2017-02-22 13:14:44
还有你的时间问题很大,你直接用天数的增加减少会出bug的,假如今天3月1日,你的day(now-2)怎么算。
wincc报表全套教材书+视频教程+实例:2606352062
以下网友喜欢您的帖子:

  
版主

经验值: 17336
发帖数: 8475
精华帖: 18
回复:wincc 读取归档变量问题


只看楼主 9楼 2017-02-23 08:41:47

在这里帖一下,通过WinCC OLE DB的“TAG:R”查询归档的记录集数据结构:


另外,查询多个归档变量时,最大数目是20。就是说最多可以同时查询20个归档变量值。


无论成与败,无论甜与苦,我还是我。
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
wincc 读取归档变量问题
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。