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

相关推荐

  • Wincc结构变量无法删除

    在wincc中,我导入的结构变量不小心导错了, 却无法删除,提示“选择的对象是只读的或包含只读对象”,删除动作停止!请问怎么解决? 最佳答案 参考链接: htt…

    SIMATIC WinCC 2019年6月11日
  • wincc WebNavigator 做web发布后外网无法访问

    按官方视频教程来做web发布,发现在同一个局域网可以通过IE登陆浏览画面,但是通过外网访问的时候输入IP地址就找不到登陆界面了,这个只能局域网内使用吗?或者还有什么参数要设置?谢谢…

    SIMATIC WinCC 2021年7月5日
  • wincc flexible smart模拟

    我的软件,为什么同意个软件,不同的程序,有的程序可以模拟,有的不能模拟呢,都有中文字符,为什么呢,求解? 问题补充:还有从哪里可以看到编译的结果信息呢?不知道是不以编译错误? 最佳…

    SIMATIC WinCC 2021年7月5日
  • wincc advanced 数据记录和格式问题

    用wincc advanced 做的触摸屏,归档数据中每次都是要按同一时间将所有变量值记录下来,然后再记录下一个时间,能否实现同一个变量不同时间段的全部排在一起…

    SIMATIC WinCC 2021年7月5日
  • WINCC7.2与S7-200采用MODBUS通讯问题

    我现在用WINCC7.2与S7-200采用MODBUS通讯问题(采用MODBUS/TCPIP网关),采用调用标标准从站库指令,如何向S7-200写位的数据,比如,我在S7-200里…

    SIMATIC WinCC 2017年7月25日
  • 如何掉以前的归档

    1.在wincc中如何调用已经归档的报警记录和变量记录。 2.如何打印报警记录和变量记录,他们上面的打印机是虚的无法点击。 最佳答案 Dim sPro&nbsp…

    SIMATIC WinCC 2019年6月11日
  • WinCC 7.4 SP1内部变量保持的问题

    如题,WinCC 7.4 SP1内部变量字符串,我在变量属性里勾选了"运行系统保持",但是当电脑突然断电的时候再重新上电开机,发现字符串的值…

    SIMATIC WinCC 2021年7月5日
  • wincc中vbs脚本自动将excel转换成pdf文件保存

    我想在wincc中,用vbs脚本自动将excel转换成pdf文件保存,但是保存时一直出现语法错误,请专家指点。说明:我已经在电脑中安装了office2007的ExportaAsFx…

    2021年7月5日
  • Wincc 添加GIF图形

    如题,能添加吗?  我以前都是用图形对象添加不会动的图形。现在想添加一个图形,运行时不用连变量,他自己就会动作。 最佳答案 不可以你可以参考下面的资料:http…

    SIMATIC WinCC 2019年6月11日
  • siemens 触摸屏 simatic flexible 好难学啊

    我创建了一个起始画面,并用工具栏菜单在画面上创建了一个按钮,我想让这个按钮对应的点是 M2.5,但我怎么操作就是不行,变量我设置了,我也连接了啊,手册我也看了几遍但就是搞…

    SIMATIC WinCC 2019年6月11日