WinCC、Excel、VBA、脚本、连通性软件包?

西门子有做个WinCC、Excel、VBA、脚本、连通性软件包的例子,也就是在EXCEL宏指令做日报表,现在测试通了,选择日期会有数据出来,关键是有两个问题:一是WINCC中变量数据是25.6,那么打开EXCEL的数据变成了25.0,EXCEL的单元格式也没错设置成1234.0,EXCEL中总是小数点后面的数据显示不出来是怎么回事?二是假设现在是上午整点10点开始运行WINCC并触发变量记录数据了,但是到EXCEL中变成了00点那一行数据,如图;以下是EXCEL的宏指令代码:
    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()

    '--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=HH\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,('ProcessValueArchive\A'),'" & 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
   

    
   
    
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、脚本、连通性软件包?   

最佳答案

EXCEL中小数点后面的数据显示不出来的问题先检查一下WinCC中写到数据库中的数据、可以用历史趋势控件的表格显示,再就是Excel表格的格式。时间不对应的问题,看脚本中往Excel中写并未根据时间分配行号,而是按读取顺序写入,只读到一条就写到了第一行,不知是不是这个原因。

提问者对于答案的评价:
谢谢

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc157755.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年6月7日 下午7:04
下一篇 2017年6月7日 下午7:04

相关推荐

  • 滑块和棒图怎么实现关联操作

    想使用滑块控制棒图的显示,但是设置完棒图关联DW200后,想再用DW200关联滑块就不可以,想请教一下如何操作,让滑块负责显示和控制,让棒图跟随滑块显示 问题补充:有这方面的教程视…

    2021年7月5日
  • wincc中c动作函数的使用

    wincc中c动作的编辑,除了自己编辑以外,对于标准函数和内部函数中的命令都是什么意义?如何使用?一直没找到这方面的资料,有这方面资料的能否给我一份,我的邮箱是lwcrm@163.…

    SIMATIC WinCC 2019年6月11日
  • WINCC跟CP1H连接求助!

    WINCC 与CP1H的PLC连接中,本人用OPC KEPServerEx V4.0方案,但是 KEPServerEx V4.0中…

    SIMATIC WinCC 2019年6月11日
  • wincc 用C语言做水流动态显示

    我用C语言做了一个动画显示 当变量为1时 里面方块颜色交替显示 当运行的时候 却没有动态 动态的图片显示不出来 我不知道…

    2017年6月19日
  • wincc画面窗口怎样改名字

    wincc新建画面窗口1,改名字提示找不到该对象,无法更改。 问题补充:修改‘画面窗口1’为‘jb01”这个名字,提示找不到对象。 图片说明:    最佳答案…

    2018年3月6日
  • wincc模拟

    在个人计算机上怎样使用S7-PLCSIM进行wincc和s7之间的模拟,应该怎样对wincc进行组态。请讲详细一点。 sippa9wrc406021是wincc的一个什么…

    SIMATIC WinCC 2019年6月11日
  • Wincc 中的QS项目编辑器生产的项目有些按钮不知实现什么功能,望指导。

    如图1、显示错误信息;他是显示什么错误信息呢?例如2、画面向左向右向上向下;是操作哪里的画面呢?在界面上弹出的窗口他也好像操作不了3、存储单个画面;它是干啥用的呢?4、调用保存的画…

    2021年7月5日
  • 执行reset_wincc.vbs指令后,出现错误提示框

    执行reset_wincc.vbs指令后,出现错误提示框,请看附件,请问这个怎么解决,老是跳出来,谢谢! 图片说明:    最佳答案 检查操作系统与WinCC软…

    2020年11月1日
  • 以太网通讯

    PLC选用S414H CP443 但采用单系统应用(CPU,CP443各一块),OS 采用WINCC CP1613和 PLC  以…

    SIMATIC WinCC 2019年6月11日
  • Wincc保存内部变量到文件

    你好,现场使用的是Wincc 6.0, 一些参数设置使用了内部变量,由于V6内部变量不能断电保持。希望关闭Wincc时候能导出保存这些内部变量的值,启动Winc…

    SIMATIC WinCC 2020年11月1日