WinCC、Excel、VBA、脚本、连通性软件包 脚本为何不执行

已锁定

messi

  • 帖子

    33
  • 精华

    0
  • 被关注

    0

论坛等级:侠客

注册时间:2011-07-14

普通 普通 如何晋级?

WinCC、Excel、VBA、脚本、连通性软件包 脚本为何不执行

592

2

2018-09-11 22:20:32

《WinCC、Excel、VBA、脚本、连通性软件包》 文档中的脚本测试时为何不执行?

代码如下:

Sub get_wincc_data()


    '--Get Database DSN name-----------------------------------

    Set DSNName = CreateObject("CCHMIRuntime.HMIRuntime")

    sDsn = DSNName.Tags("@DatasourceNameRT").Read

    

    '--build connection string-----------------------------------

    sPro = "Provider=WinCCOLEDBProvider.1;"

    sDsn = "Catalog=" & sDsn & ";"

    sSer = "Data Source=WIN-3Q1JIVTE04V\WINCC"

    sCon = sPro & sDsn & sSer

    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

    

    '查询启止时间

    sStart = Year(DTPicker1.Value) & "-" & Month(DTPicker1.Value) & "-" & Day(DTPicker1.Value) & " 00:00:00"

    sStop = Year(DTPicker1.Value) & "-" & Month(DTPicker1.Value) & "-" & Day(DTPicker1.Value) & " 23:00:00"

    

    '转为UTC时间

     sStart = DateAdd("h", -8, CDate(sStart))

     sStop = DateAdd("h", -8, CDate(sStop))

     

    '读取Fan1_T1

     sSql = "Tag:R,('TT\TEST1'),'" & sStart & "','" & sStop & "' order by datetime"

     oCom.CommandText = sSql

    Set oRs = oCom.Execute

    If (oRs.EOF) Then

       oRs.Close

    Else

        oRs.MoveFirst

        i = 0

        Do While Not oRs.EOF

        Sheet1.Cells(i + 4, 2) = oRs.Fields("RealValue").Value

        oRs.MoveNext

        i = i + 1

        Loop

        oRs.Close

    End If

   

 '读取Fan1_T2

    sSql = "Tag:R,('TT\TEST2'),'" & sStart & "','" & sStop & "' order by datetime"

    oCom.CommandText = sSql

    Set oRs = oCom.Execute

    If (oRs.EOF) Then

       oRs.Close

    Else

        oRs.MoveFirst

        i = 0

        Do While Not oRs.EOF

        Sheet1.Cells(i + 4, 3) = oRs.Fields("RealValue").Value

        oRs.MoveNext

        i = i + 1

        Loop

        oRs.Close

    End If

 '读取Fan1_P1

    sSql = "Tag:R,('TT\TEST3'),'" & sStart & "','" & sStop & "' order by datetime"

    oCom.CommandText = sSql

    Set oRs = oCom.Execute

    If (oRs.EOF) Then

        oRs.Close

    Else

        oRs.MoveFirst

        i = 0

        Do While Not oRs.EOF

        Sheet1.Cells(i + 4, 4) = oRs.Fields("RealValue").Value

        oRs.MoveNext

        i = i + 1

        Loop

        oRs.Close

    End If

    

     '读取Fan1_P2

    sSql = "Tag:R,('TT\TEST4 '),'" & sStart & "','" & sStop & "' order by datetime"

    oCom.CommandText = sSql

    Set oRs = oCom.Execute

   

    If (oRs.EOF) Then

       oRs.Close

    Else

        oRs.MoveFirst

        i = 0

        Do While Not oRs.EOF

        Sheet1.Cells(i + 4, 5) = oRs.Fields("RealValue").Value

        oRs.MoveNext

        i = i + 1

        Loop

        oRs.Close

    End If

    

Set oRs = Nothing

Set conn = Nothing

End Sub



Private Sub DTPicker1_Change()

clear_cell '清除已经填充的数据

get_wincc_data '读取WinCC历史数据


End Sub


 Sub clear_cell()

 For i = 4 To 27

  For j = 2 To 5

  Cells(i, j) = ""

  Next j

Next i

 End Sub


WinCC、Excel、VBA、脚本、连通性软件包 脚本为何不执行 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有32774条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。