变量记录归档读取到Excel 第十行CreateObject总是说子程序和函数为定义 请高手指点

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=J1YOORGD4LDJVTJ.\WinCC"
    sCon = sPro & sDsn & sSer
    Set conn = CreateObiect("ADODB.Command")
    conn.ConnectionString = sCon
    conn.CursorLocation = 3
    conn.Open
    Set oRs = CreateObject("ADOB.Recordset")
    Set oCom = CreateObject("ADOB.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 = DataAdd("h", -8, CDate(sStart))
    sStop = DataAdd("h", -8, CDate(sStop))
    '读取1#泵电流
    sSql = "Tag:R,('ProcessValueArchive\1#分站1#泵_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
      i = i + 1
      Loop
      oRs.Close
    End If
    Private Sub DTPicker1_Chanfe()
    get_wincc_data
End Sub

问题补充:
单改的第十行可以啦但是Dateadd那有报子程序和函数未定义

最佳答案

spro = "Provider=WinCCOLEDBProvider.1;"
 sdsn = "Catalog=CC_upzjg_11_12_15_14_45_14R;"
 sser = "Data Source=.\WinCC"
 scon = spro + sdsn + sser
 ssql = "Tag:R,(''test\testdata''),''2011-12-15 7:27:00'',''2011-12-15 8:27:00''"
   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=ocm.Execute 

/////////////////////////
你的第十行的指令“Set conn = CreateObiect("ADODB.Command")”应该是  “Set conn = CreateObject("ADODB.Connection")”

提问者对于答案的评价:
谢谢,脚本改好啦!

最佳答案作者回复:
sStart = DataAdd("h", -8, CDate(sStart))
    sStop = DataAdd("h", -8, CDate(sStop))
这两个的data应该是date
http://www.52plc.net/read.php?tid=4268
评论字数太少了,你看看这个,是我做的完整的脚本。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年12月9日 下午11:40
下一篇 2017年12月9日 下午11:40

相关推荐

  • wincc的解包操作

    在plc300中建立了如下图的DB1数据块,plc与wincc建立通讯,将DB1的数据传送到wincc中建立的原始数据类型变量中(原始类型变量设置如下图),然后通过编写全局动作(周…

    2021年7月5日
  • 客户机用户权限

    请教各位,我在两台电脑上组态了服务器,客户机,在服务器电脑上运行正常,可是在客户机电脑上,从网上邻居找到工程打开时却提示,用户没有执行该操作的权限,不知为什么。 最佳答案 1。在“…

    SIMATIC WinCC 2019年6月11日
  • WinCC和WinCC之间数据交互什么方式最好?

    全面解析WinCC数据交互 课程编号:V2283 WinCC &…. 点击这里,打开新窗口观看完整视频 该视频下的所有用户提问列表 WinCC和Win…

    2021年7月5日
  • wincc说明

    大家好,请问WINCC里创建按钮的C动作时的标准函数和内部函数有没有中文意思的说明啊,麻烦给发一份。我的邮箱是286255456@QQ.COM 最佳答案 WinCC脚本的手册如下,…

    SIMATIC WinCC 2019年6月11日
  • 不同尺寸屏画面互转

    我想把tp900转为tp1200,有什么办法只要改变屏的型号而不需要任何重新编辑画面的方法吗?请高手指教!谢谢! 最佳答案 1.博途软件中选型菜单-设置-可视化-调整画面大小-适应…

    SIMATIC WinCC 2021年7月5日
  • 昨晚放到C盘安装出错:Error-2147023829 installing.NET Framewok2.0 意外终止程序

    昨晚放到C盘安装出错:Error-2147023829 installing.NET Framewok2.0 意外终止程序 问题补充:没有中文,我放在…

    SIMATIC WinCC 2019年6月11日
  • 关于wincc flexible报警的设置

    在wincc flexible 2008中进行报警设置,报警视图——常规——显示中的报警类别怎么只有错误,警告,系统这三个选项,为什么有的会有错误,警告,系统,…

    2021年7月5日
  • 请问为什么报警一直存在为什么还能确认呢?

    请问为什么报警一直存在为什么还能确认呢?确认完后消息列表没有显示了,但是归档列表状态还是对的,请问如何在消息列表中一直显示没有被复位的报警,而不能被确认?谢谢! 最佳答案 报警一直…

    SIMATIC WinCC 2020年11月1日
  • wincc/datamonitor安装问题

    本人在西门子网站按问题ID:87764的提示下载了datamonitor,但在安装过程中出现错误,如图1,请问有甚么解决方法? 图片说明:    最佳答案 Da…

    2017年11月23日
  • WINCC风机动态效果的脚本如何编写

    目前做法是新建了以内部变量temp,利用风机状态=1时,进行+1除10,生成的temp 0~10循环,风机是做了0~10个画面,风机就循环旋转了;这样的做法只能是一个页面…

    SIMATIC WinCC 2019年6月11日