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日
下一篇 2021年7月5日

相关推荐

  • 结构变量的地址问题

    请问一下,结构变量创建好后,创建外部变量时选择结构变量的类型,但是怎么将外部变量的地址和STEP7的地址一致呢 最佳答案 建结构变量时先考虑好STEP7的地址,地址要有规律。结构变…

    SIMATIC WinCC 2019年6月11日
  • 如何更改C动作中的变量?

    项目中原有的转换开关见图1,C动作语句见图2,现在我公司要改造这个项目,在画面中增加了几个这样的转换开关,分别连接到不同的变量,大家看到的这个开关是连接DB11.DBX1.2,我想…

    2017年6月18日
  • 求WINCC历史报表的实例

    求WINCC的历史报表实例,可按时间段来查询历史数据,查询后的变量历史数据并可以导出EXCEL表格保存,急啊!!求高工们给予帮助 最佳答案 参考《WinCC数据报表实现方法介绍》:…

    SIMATIC WinCC 2019年6月11日
  • 计算机的普通网卡可以实现冗余切换吗?

    我一台计算机上安装两张普通的网卡,分别和两个CP343-1 LEAN连接,不知道普通网卡可不可以实现冗余,WINCC里面该怎么设置? 最佳答案 1、在冗余PLC发生切换时…

    SIMATIC WinCC 2018年12月6日
  • 项目文件夹共享问题

    我现在做的是别人留下来的工程,属于共享文件夹,现在做完了就想备份以下,提示在共享状态不能复制,然后取消共享,出来个提示框没注意,直接点确定,结果还是不能复制,结果打开项目后,我做的…

    SIMATIC WinCC 2019年6月11日
  • 如何让WinCC调用STEP7里面将PQW或PIW?

    如题,知道请告诉声,谢谢! 问题补充:能不能说的清楚点,我在网上找到的也是这么说的。谢谢! 最佳答案 我来解释下,楼上说的就是通过STEP7里面的MOVE指令,把PQW或者PIW的…

    SIMATIC WinCC 2019年6月11日
  • wincc中多次执行全局脚本Script.exe会死掉?

    我定义了一个全局VB脚本,脚本内容是读取数据库的,执行触发是靠变量变化来实现,现在问题是变量变化过快时(约为每秒点7次),有时会出现Script.exe突然卡死并报错,之后所有定义…

    SIMATIC WinCC 2017年11月18日
  • 谁wincc的语言代码

    我想问一下wincc6.0sp3的几种语言在C语言脚本中代码是多少 ? 最佳答案 参见WinCC在线帮助:LANG_ARABIC 0x0401 &nb…

    SIMATIC WinCC 2019年6月11日
  • tia wincc如何关闭Visual stuiod实时调试器

    编写了一个脚本每分钟发送一次数据,可能是网络等延时问题,过几分钟就会跳出脚本调试器,一跳出这个调试器就会关闭下一次的脚本触发了,都是手动关闭后,脚本又可以正常了,大神帮帮忙看如何把…

    2020年11月1日
  • 如何更改保存数据路径

    我厂的工控机突然不好使了(WINCC V6.0),点任何按钮设备都没有反应,经过检查是C盘已经满了,(前两天工控机总是提示虚拟内存不足)好像是保存数据路径在C盘,我该如何…

    SIMATIC WinCC 2019年6月11日

发表回复

登录后才能评论