wincc如何通过VB脚本读取报警数据库归档内容

刚接触wincc,下面脚本是根据帮助文档VB实例修改,但读取不到归档内容,系统内置报警控件中能读到数据,请大神指点。
' 1.1 Create connection string for ADO access
Dim ProviderName
Dim CatalogName
Dim DataSourceName
Dim ConnectionString
Dim CommandString
Dim snam1,Rtname
Dim ServerName1
Set ServerName1 = HMIRuntime.Tags("@ServerName")          
      ServerName1.Read 
Dim DatasourceNameRT
Set DatasourceNameRT = HMIRuntime.Tags("@DatasourceNameRT")
      DatasourceNameRT.Read 
      Rtname=DatasourceNameRT.Value 
      snam1=ServerName1.Value
ConnectionString = "provider=WinCCOLEDBProvider.1;catalog=" & Rtname & ";data source=" & snam1 & "\WinCC"       
' 1.2 Define command string for access (relative time range, last 10 minutes)
CommandString = "ALARMVIEW:Select * from algviewcht WHERE DateTime > '2017-11-30 00:00:00.000' " 
Dim DBConnection
Dim DBCommand
Dim DBRecordset
' 2.1 Open connection
'HMIRuntime.Trace "before open connection" & vbNewLine 
Set DBConnection = CreateObject("ADODB.Connection")
DBConnection.ConnectionString = ConnectionString
DBConnection.CursorLocation = 3             
DBConnection.open 
Set DBRecordset = CreateObject("ADODB.Recordset")
' 2.2 Execute command
'HMIRuntime.Trace "before execute command" & vbNewLine 
Set DBCommand = CreateObject("ADODB.Command")
DBCommand.CommandType = 1
DBCommand.ActiveConnection = DBConnection
DBCommand.CommandText = CommandString
Set DBRecordset = DBCommand.Execute
Dim lngCount                                  
Dim lngValue,aa
' 2.3 Record structure and first record data (test)
lngCount = DBRecordset.Fields.Count 
aa = DBRecordset.RecordCount 
HMIRuntime.Trace "RecordSet.Field.Count=" & lngCount & vbNewLine 
HMIRuntime.Trace "RecordSet.RecordCount=" & aa & vbNewLine 
If (aa>0) Then 
    DBRecordset.movefirst  
Else
    HMIRuntime.Trace "Selection returned no fields" & vbNewLine 
End If
' 4.1 Clean up
DBRecordset.Close
Set DBRecordset = Nothing
Set DBCommand = Nothing
DBConnection.Close
Set DBConnection = Nothing
HMIRuntime.Trace "Connection closed again" & vbNewLine

问题补充:
数据库已经连接上,脚本调试输出如图,显示库中无数据。

图片说明:

wincc如何通过VB脚本读取报警数据库归档内容    wincc如何通过VB脚本读取报警数据库归档内容   

最佳答案

Rtname=DatasourceNameRT.Value 
 snam1=ServerName1.Value
改成
Rtname=DatasourceNameRT.Read
 snam1=ServerName1.Read
试试

详细参考:
WinCC数据开放性
https://support.industry.siemens.com/cs/cn/zh/view/78682604
在WinCC中如何使用VBS读取报警记录数据到EXCEL
https://support.industry.siemens.com/cs/cn/zh/view/77938393
WinCC、Excel、VBA、脚本、连通性软件包
https://support.industry.siemens.com/cs/cn/zh/view/71676391
WinCC/连通性软件包 V7.4 SP1
https://support.industry.siemens.com/cs/cn/zh/view/109746336
补充:
按我的方法试过了吗?
另外您可以先把WHERE去掉,直接查询所有的,试试,如果能查询到了,再加上条件

提问者对于答案的评价:
谢谢你的回答,找到问题出在哪儿了,软件语言是中文简体,查询的是繁体的归档数据库表,ALGVIEWEXCHT改为ALGVIEWEXCHS就可以了。

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

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

相关推荐

  • wincc7.5sp1打开项目一激活就自动取消激活

    wincc7.5sp1打开项目一激活就自动取消激活,什么问题? 问题补充:忘了上图 最佳答案 1、把项目复制到别的电脑看是否能正常运行,排除项目问题2、检查软件与系统是否兼容,系统…

    SIMATIC WinCC 2021年7月5日
  • 实现wincc调用STEP的变量

    Wincc+7.0+SP3   STEP7 V5.5 sp2 CN   这是两款软件,安装…

    2017年11月23日
  • WinCC flexible SMART V3 下载时报错“无法找到传送工具”?

    错误如图;HMI的型号是SMART 700IE,系统已经升到最新版本,和软件内设备版本一致;软件今天才装,也是最新版本;下载步骤包括HMI的配置严格遵守教程,可就是反复提…

    2020年11月1日
  • wincc6.0画面中的联锁问题

    现有一个操作画面,有三个库,当启动一个库下的设备时,另外两个库设备不能启动,我想在此画面上做一个选择按钮,按下时,只能启动一个设备,另一台设备被屏蔽,不能进行任何操作。想请教一下,…

    SIMATIC WinCC 2017年11月19日
  • winlogon和win7账号互通,在那里添加账号阿

    如题,winlogon和win7账号互通,在那里添加账号阿 最佳答案 win7-控制面板-管理工具-计算机管理-本地用户和组-用户,这样就随便添加用户跟logon通用 提问者对于答…

    SIMATIC WinCC 2021年7月5日
  • 1000LE V3

    去年我们公司一次购买了几套PLC及触摸屏,其中一台1000LE V3触摸屏上电就黑屏了,返厂维修后,用半月后又黑屏了,那就再次返厂。维修回来后就没有用了,一直放在仓库,最…

    SIMATIC WinCC 2021年7月5日
  • WINCC启动慢

    为什么我的在线工控机WINCC画面启动加载到Tag Logging Run Time到80%,加载组态数据到25%就卡住呢?程序提示正在运行,也不死机…

    SIMATIC WinCC 2019年6月11日
  • wincc归档数据采集周期是否全部同步,没有时间差?

    Wincc归档变量中变量A,B,C;A=15;B=30;C=B-A(PLC里处理B-A)归档结果A-15,B-30没问题,但C的归档值偶尔并不是B-A的值,AB值是压力传感器值,变…

    SIMATIC WinCC 2020年11月1日
  • wincc 如何让选项组(单选框)可以横向排列

    选项组现在默认的是纵向排列的,我想让其横向排列,请问应该怎么改属性呢,如果需要脚本更改,那么用vbs怎么修改呢,感谢各位 最佳答案 直接组态没有先关设置,不过可以使用多个来实现,把…

    SIMATIC WinCC 2021年7月5日
  • 画面控制变频器

    我想从WINCC画面的输入输出域里输入数值(经常变化),传给PLC的DB块来实现变频器调速.这个过程想用C动作来实现,我只想用C动作来实现. 请大大们给我举个例子写出来,…

    SIMATIC WinCC 2019年6月11日

发表回复

登录后才能评论