WinCC ADO连接不上

背景:WinCC 7.3,写一个数据查询的VBs,想通过ADO接口OLEDB连接到变量归档数据库,按起始日期和终止日期查询数据。脚本写在查询按钮上触发。
问题:执行到查询Set objRecord1=objCommand1.Execute时报错,一步步调试,发现在程序中段,Set objCon=Createobject("ADODB.Connection")这句总是连不上,用Msgbox objCon.state发送连接状态,返回0没有连接上,大神们给看一看是什么原因(语句或设置)。
变量:Flow1,Flow2,BeginTime,EndTime
归档:变量归档FlowArch,归档变量名称Flow01,Flow01
控件:MSHGrid控件,名称Grid
VBs如下:
Sub OnClick(ByVal Item)                                                                   
Dim    LocalBeginTime,LocalEndTime,UTCBeginTime,UTCEndTime
Dim    DSN
Dim    DSName,sPro,sDSName,sDS,sCon,objCon
       On Error Resume Next
Set    LocalBeginTime=HMIRuntime.Tags("BeginTime")
Set    LocalEndTime=HMIRuntime.Tags("EndTime")
       LocalBeginTime.read
       LocalEndTime.read
       UTCBeginTime=Dateadd("h",-8,LocalBeginTime.Value)
       UTCEndTime=Dateadd("h",-8,LocalEndTime.Value)
       UTCBeginTime = Year(UTCBeginTime) & "-" & Month(UTCBeginTime) & "-" & Day(UTCBeginTime) & " " & Hour(UTCBeginTime) & ":" & Minute(UTCBeginTime) & ":" & Second(UTCBeginTime)
       UTCEndTime = Year(UTCEndTime) & "-" & Month(UTCEndTime) & "-" & Day(UTCEndTime) & " " & Hour(UTCEndTime) & ":" & Minute(UTCEndTime) & ":" & Second(UTCEndTime)
  
       HMIRuntime.Trace "UTC Begin Time: " & UTCBeginTime & vbCrLf
       HMIRuntime.Trace "UTC end Time: " & UTCEndTime & vbCrLf
       
Set    DSName=HMIRuntime.Tags("@DatasourceNameRT")
       DSName.Read
       sPro="Provider=WinCCOLEDBProvider.1;"
       sDSName="Catalog="&DSName.Value&";"
       sDS="Data Source=.\WinCC"
       sCon=sPro&sDSName&sDS
       HMIRuntime.Trace sCon&vbCRLF

Set    objCon=Createobject("ADODB.Connection")
Msgbox "开始测试连接状态,1=Success,0=Fail"
Msgbox objCon.state
       objCon.ConnectionString=sCon
       objCon.CursorLocation=3 '客户端游标方式
       objCon.Open sCon
Dim    objSQL1,objSQL2
       objSQL1="Tag:R,('FlowArch\Flow01'),'"&UTCBeginTime&"','"&UTCEndTime&"',"&"'order by timestamp ACS','TimeStep=1,1'"
       objSQL2="Tag:R,('FlowArch\Flow02'),'"&UTCBeginTime&"','"&UTCEndTime&"',"&"'order by timestamp ACS','TimeStep=1,1'"
      
Dim    objRecord1,objCommand1,objRecord2,objCommand2
Set    objRecord1=Createobject("ADODB.Recordset")
Set    objCommand1=Createobject("ADODB.Command")
       objCommand1.CommandType=1
Set    objCommand1.ActiveConnection=objCon
       objCommand1.CommandText=objSQL1
Set    objRecord1=objCommand1.Execute
  
Set    objRecord2=Createobject("ADODB.Recordset")
Set    objCommand2=Createobject("ADODB.Command")
       objCommand2.CommandType=1
Set    objCommand2.ActiveConnection=objSQL1
       objCommand2.CommandText=objSQL2
Set    objRecord2=objCommand1.Execute
End Sub

最佳答案

WINCC连接归档数据库官方有脚本的
参考:
在WinCC中如何使用VBS读取报警记录数据到EXCEL
https://support.industry.siemens.com/cs/cn/zh/view/77938393
在WinCC中如何使用VBS读取变量归档数据到EXCEL
https://support.industry.siemens.com/cs/cn/zh/view/77940055
通过VBS脚本在ListView控件中显示WinCC的变量记录
https://support.industry.siemens.com/cs/cn/zh/view/74932765


更多的相关资料参考:
西门子官方资料大全分享之WINCC
http://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1378253&b_id=5

或者参考:
http://mp.weixin.qq.com/mp/homepage?__biz=MzIwNTUyNTIwNg==&hid=4&sn=e1f84810a1c0f90d2a8829be52f126c2&scene=18#wechat_redirect

提问者对于答案的评价:
最后测试成功,还是很感谢大家

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 下午12:38
下一篇 2021年7月5日 下午12:38

相关推荐

  • 高分问题wincc怎么把数据存储到Microsoft Office Access里

    wincc怎么把数据存储到Microsoft Office Access里 我想把一个或多个变量一秒钟一次存到Microsoft Offic…

    SIMATIC WinCC 2018年12月6日
  • 如何在WINCC中保存数据

    我想在WINCC 中设定电机转速警告点,比如设定为500转,如何将其永久记录在WINCC中,直到使用都更改为止。 最佳答案 这个你只要对应PLC里面的一个DB块里面的地址…

    SIMATIC WinCC 2019年6月11日
  • 项目激活启动时运行一段程序

    我想让一个wincc项目启动时,自动运行一段程序。除去在主画面添加“打开画面”C 动作的 方法,请问还有什么其他的方法?如果项目不是从主画面进入,也可以运行这段…

    SIMATIC WinCC 2020年11月1日
  • wincc做报表的具体过程

    一直想学会使用wincc做报表的具体操作过程 最佳答案 WINCC做报表有两种形式——1、用报表布局2、在画面中做报表。   在画面里做报表选“在线表…

    SIMATIC WinCC 2019年6月11日
  • wincc6.0声音报警

    我想做wincc声音报警提醒操作人员,用Hron来做。在内部变量里只建建二进制变量alarm就行吗,还需要建什么变量不。我想不明白做的报警控件报警后通过怎么连接就触发了内部变量中的…

    SIMATIC WinCC 2017年12月8日
  • 打不开WINCC项目

    在刚安装的WINCC上新建立了一个项目,取名sjz,放在D盘上。如果在退出的时候选择“退出WINCC管理器”,就可以多次进入再退出。如果选择“关闭项目并退出WINCC管理器”,再打…

    SIMATIC WinCC 2019年6月11日
  • 关于WINCC中模拟量报警的问题

    在报警记录组件里将模拟量报警设置好后,运行系统,当模拟量数值达到报警点后开始报警,确认后,报警声音消失,但是过上一会又出现报警,这是怎么回事?相当与循环扫描(注:我是在现场遇到这个…

    SIMATIC WinCC 2019年6月11日
  • 用户归档授权WINCC User Archives问题

    我的用户归档授权WINCC User Archives已经安装,为什么在运行一些时间后就会提示软件许可证已过期?? 问题补充:这个授权应该是没有变量归档数量的,…

    SIMATIC WinCC 2021年7月5日
  • 两台S7-224XP CN和WINCC通讯

    两台S7-224XP CN通过CP5611和WINCC通讯PLC这边硬件和WINCC需要怎么设置?谢谢 问题补充:我选择用PC ACCESS这个软件。我想知道在…

    SIMATIC WinCC 2017年12月7日
  • KTP700F Mobile的屏幕无法下载程序

    下载时,跳出下面的界面,而该界面没有系统设置的按钮,无法切换到Transfer 图片说明:    最佳答案 重新给触摸屏断电后上电启动触摸屏,在启动过程中将触摸…

    2021年7月5日

发表回复

登录后才能评论