最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

excel怎么读取wincc归档数据库

来源:动视网 责编:小OO 时间:2025-10-03 00:45:57
文档

excel怎么读取wincc归档数据库

虽然这例子在西门子官方文档上已经有过例子,但作为刚刚接触这块的新手拿到官方的remote-xls还是有些摸不着头脑,不断报错自动化错误8000005,看了网上的例子可以通过WINCCOLEDB来完成,最后终于搞出来了,给大家分享一下,我使用的wincc7.0Sp3的软件第一步归档变量设置 归档变量设为1分钟,可以按你需要的设,不影响请注意一点要在wincc启动当中选择变量记录否则会报错invalidobjectnamedbo.Achive第二步在excel当中设置创建模板 日历控件通过插入控件
推荐度:
导读虽然这例子在西门子官方文档上已经有过例子,但作为刚刚接触这块的新手拿到官方的remote-xls还是有些摸不着头脑,不断报错自动化错误8000005,看了网上的例子可以通过WINCCOLEDB来完成,最后终于搞出来了,给大家分享一下,我使用的wincc7.0Sp3的软件第一步归档变量设置 归档变量设为1分钟,可以按你需要的设,不影响请注意一点要在wincc启动当中选择变量记录否则会报错invalidobjectnamedbo.Achive第二步在excel当中设置创建模板 日历控件通过插入控件
虽然这例子在西门子官方文档上已经有过例子,但作为刚刚接触这块的新手拿到官方的remote-xls还是有些摸不着头脑,不断报错自动化错误8000005,看了网上的例子可以通过WINCCOLEDB来完成,最后终于搞出来了,给大家分享一下,我使用的wincc 7.0 Sp3的软件

第一步归档变量设置

 归档变量设为1分钟,可以按你需要的设,不影响

请注意一点要在wincc启动当中选择变量记录否则会报错invalid object name dbo.Achive

第二步在excel当中设置

创建模板

 

日历控件通过插入控件 Microsoft Date and picker 来完成的,注意某些office 没有工具箱控件,需要在文件下的选项中插入开发工具来完成

 

在开发工具下的Visual Basic编辑器中sheet1插入以下脚本

Dim sPro, sDsn, sSer, sCon, sSql

    Dim conn, oRs, oCom

    Dim DSNName

    Dim i As Integer

    Dim sStart, sStop As String

    '---声明

Sub get_wincc_data()

   Set DSNName = CreateObject("CCHMIRuntime.HMIRuntime")

   sDsn = DSNName.Tags("@DatasourceNameRT").Read'读取当前使用数据库,一定要加两句脚本,官方文档就没有

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

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

    sPro = "Provider=WinCCOLEDBProvider.1;" '安装connectivity pack后使用wincc OLE-DB进行连接数据

   sDsn = "Catalog=" & sDsn & ";"   '从sdsn为前面获取的数据库

    

    sSer = "Data Source=.WinCC"   '本地计算机为.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

    

    '查询启止时间 ,由于本地添加了Date time picker控件,所以下面调用控件函数,0和23不需要改

    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))

     

    '读取归档变量

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

     oCom.CommandText = sSql  '把text值放入需要通信的包中

    Set oRs = oCom.Execute  ’执行通信包

    If (oRs.EOF) Then    '如果检测到空行,则oRs关闭

       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  ' do while  ... 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 '清空第4行到27行,因为1天24小时,后面28行到30行设为最大值最小值,平均值

  For j = 2 To 5  '清空第二列到第五列

  Cells(i, j) = ""

  Next j

Next i

 End Sub

 

在workbook页中添加脚本

Private Sub workbook_Open()

Sheet1.DTPicker1.Height = 16

Sheet1.DTPicker1.Width = 120

Sheet1.DTPicker1.Value = Now

End Sub

注意一点

因为前面引用函数HMIRuntime

“Set DSNName = CreateObject("CCHMIRuntime.HMIRuntime")

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

必须在VB编辑器中引用HMIRuntime库控件

 结果如下

 以上是步骤流程,希望大家能派上用场,有什么不明白的大家一起交流学习,wincc用上sql server东西太多了,需要在该领域不断探究学习

文档

excel怎么读取wincc归档数据库

虽然这例子在西门子官方文档上已经有过例子,但作为刚刚接触这块的新手拿到官方的remote-xls还是有些摸不着头脑,不断报错自动化错误8000005,看了网上的例子可以通过WINCCOLEDB来完成,最后终于搞出来了,给大家分享一下,我使用的wincc7.0Sp3的软件第一步归档变量设置 归档变量设为1分钟,可以按你需要的设,不影响请注意一点要在wincc启动当中选择变量记录否则会报错invalidobjectnamedbo.Achive第二步在excel当中设置创建模板 日历控件通过插入控件
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top