查看文章 |
wincc利用脚本访问压缩归档(转)(有待于调试)
2007-04-04 14:19
使用如下脚本可以访问归档变量,具体可以参考相关资料。 Dim sPro Dim sDsn Dim sSer Dim sCon Dim sSql Dim oRs Dim conn Dim oCom Dim oItem Dim m, n, s Dim hourdate Dim secdate Dim k Dim oList //定义变量,VBS使用变体类型,无需指定数据类型,否则编译出错 Set oList = ScreenItems("listview1")//使用Listview控件 oList.View =3 oList.ListItems.Clear //定义控件属性 sPro = "Provider=WinCCOLEDBProvider.1;"//定义服务提供者 sDsn = "Catalog=CC_test_06_03_29_12_38_33R;" sSer = "Data Source=.\WinCC" sCon = sPro + sDsn + sSer //定义连接字符串 sSql = "TAG:R,'ProcessvalueArchive\NewTag','0000-00-00 00:00:00.000','0000-00-01 00:00:00.000'" //访问压缩归档的SQL语句,非压缩归档使用SELECT语句,用法见SQL MsgBox "Open with:" & vbCr & sCon & vbCr & sSql & vbCr //出提示框,也可以不用 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 //标准的ADO访问,下面是输出到Listview的代码 m = oRs.RecordCount With oList .ColumnHeaders.Clear .ColumnHeaders.Add , , CStr(oRs.Fields(1).Name), 780 .ColumnHeaders.Add , , CStr(oRs.Fields(2).Name), 900 .ColumnHeaders.Add , , CStr(oRs.Fields(3).Name), 1050 .ColumnHeaders.Add , , CStr(oRs.Fields(4).Name), 1200 End With If (m > 0) Then oRs.MoveFirst n = 0 Do While Not oRs.EOF n = n + 1 's = Left(CStr(oRs.Fields(1).value), 23) s = CDate(oRs.Fields(1).value) k = DateAdd("h", 8, s) Set oItem = oList.ListItems.Add() oItem.Text = k oItem.SubItems(1) = FormatNumber(oRs.Fields(2).value, 1) oItem.SubItems(2) = Hex(oRs.Fields(3).value) oItem.SubItems(3) = FormatNumber(oRs.Fields(4).value, 1)
此例程摘录自《深入浅出西门子wincc6》一书的P230页 |
最近读者: