查询多个归档变量

Dim sPro 
Dim sDsn 
Dim sSer 
Dim sCon 
Dim sSql 
Dim oRs 
Dim conn 
Dim oCom 
Dim oItem 
Dim m, n, s,i
Dim hourdate 
Dim secdate 
Dim k
Dim oList
Dim objExcelApp
Dim oItem2
Dim dt1,dt2
dt1=DateAdd("H",-8,ScreenItems("控件12").VALUe) ‘查询的起始时间,wincc采用世界标准的格林时间,与咱的时间差8个小时
dt2=DateAdd("H",-8,ScreenItems("控件13").VAlUe) ‘查询的终止时间
‘下面三行代码是查询所需要的提供者数据源等等
sPro = "Provider=WinCCOLEDBProvider.1;"
sDsn = "Catalog=CC_0414_08_04_14_20_46_43R;" ‘改为你的wincc工程的数据库名,
‘打开sql有两个与你工程有关的,选择带R的那个
sSer = "Data Source=.\WinCC"

sCon = sPro + sDsn + sSer’查询链接串

sSql= "TAG:R,'ProcessValueArchive\"&ScreenItems("控件8").ValUe&"','"&dt1&"','"&dt2&"'"
‘上面这一句是查询语句,从SQL for wincc数据库中查询,可以多项查询,详见课本
MsgBox "Open with:" & vbCr & sCon & vbCr & sSql & vbCr
‘下面是ADODB查询,需要用到上面的查询链接串,不需要修改
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 = oCom.Execute’oRS为查询得到的记录集

Set objexcelApp=CreateObject("excel.application")
objexcelApp.visible=True 
objexcelapp.workbooks.open"d:\book.xls"
objExcelApp.Sheets(1).Range("a"&Trim(1)) =oRs.Fields(0).Name ‘以下五行是把字段名写到excel的第一行, ,oRS.Fields(0)为查询得到的记录集的第一个字段
objExcelApp.Sheets(1).Range("b"&Trim(1)) = oRs.Fields(1).Name
objExcelApp.Sheets(1).Range("c"&Trim(1)) = oRs.Fields(2).Name
objExcelApp.Sheets(1).Range("d"&Trim(1)) = oRs.Fields(3).Name
objExcelApp.Sheets(1).Range("e"&Trim(1)) = oRs.Fields(4).Name

For i=1 To oRs.RecordCount ‘做循环查询


objExcelApp.Sheets(1).Range("a"&Trim(i+1)) =oRs.Fields(0).value
objExcelApp.Sheets(1).Range("b"&Trim(i+1)) =DateAdd("H",8,oRs.Fields(1).value) ’格林时间
objExcelApp.Sheets(1).Range("c"&Trim(i+1)) = FormatNumber(oRs.Fields(2).value, 1)
objExcelApp.Sheets(1).Range("d"&Trim(i+1)) = FormatNumber(oRs.Fields(3).value, 1)
objExcelApp.Sheets(1).Range("e"&Trim(i+1)) = FormatNumber(oRs.Fields(4).value, 1)
oRs.MoveNext
Next

oRs.Close’一下为关闭excel,关闭连接等,释放资源
‘objexcelapp.activeworkbooks.save
‘objexcelapp.workbooks.close
‘objexcelapp.quit
Set objexcelapp=nothing
Set oRs = Nothing
conn.Close
Set conn = Nothing
查询单个已经实现了,我看书上查询多个的语句是这么写的TAG:R,('valname1';'valname2'),----
上面那一步照葫芦画瓢能实现,可是继续应该怎么写呢?得到记录集oRs
譬如这两个变量都有四个字段,那么第一个变量对应oRs.Fields(1) oRs.Fields(2)
oRs.Fields(3) oRs.Fields(4)
第二个变量
对应oRs.Fields(5)  oRs.Fields(6)
oRs.Fields(7) oRs.Fields(8) 吗?
如果不是应该怎么写呢 

论坛上 HTLearn说:
第二个变量不是 oRs.Fields(5)  这样排下去,它是字段固定,数据依次向后罗列的!

字段固定和数据依次往后罗列是什么意思啊?


我的也是查询多个变量然后写入到Excel中做报表的

最佳答案

不管查询多少个变量,所获得的数据集oRs只有5个Field,即:
ValueID,TimeStamp,RealValue,Quality,Flags
数据将根据TAG:R,('valname1';'valname2')中的变量名依次罗列,可以用ValueID来进行区分。

提问者对于答案的评价:
谢谢

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日
下一篇 2019年6月11日

相关推荐

  • wincc v6.2安装?

    我的操作系统是sp3的,现在在装SQL2005 FOR WINCC V6。2的时候总是出现这个错误导致安装不下去,提示“ Errors&nb…

    SIMATIC WinCC 2019年6月11日
  • Wincc 通讯中断后无法自动连接

    Wincc 与300plc以太网通讯 通讯中断后无法自动连上 需要重启wincc 通讯才能恢复 问题补充:现在问题是,我新做的wincc&n…

    SIMATIC WinCC 2021年7月5日
  • 如何WINCC画面中增加系统的诊断信息

    我希望在WINCC画面中增加系统的诊断信息,例如网络线是否正常,PLC及其扩展模块是否正常,PROFIBUS是否正常等 问题补充:我是说在WINCC中如何实现 不是PCS…

    SIMATIC WinCC 2019年6月11日
  • smart IE V3 触摸屏

    smart V3 IE 屏是否支持历史曲线功能 最佳答案 支持。Smart V3屏数据记录:http://www.ad.siemens.co…

    SIMATIC WinCC 2020年11月1日
  • 水流动画问题

    我现在做的是一条水平直线的蒸汽(X初始位置90,直线从90到1600)此时,我的X的VB脚本该怎么写? 求详细脚本程序 问题补充:我现在做的就是这样的一个蒸汽管道,我该如…

    2021年7月5日
  • wincc vb脚本编程

    阀前景色,两个BOOL变量控制他,1真2假前景色为绿色,1假2真前景色为红色,两个都为真或都为假 前景色为灰色,用VB 在前景色属性内编程,系统提示重复循环,系…

    SIMATIC WinCC 2019年6月11日
  • WINCC ADVANCED 数据保存按天

    如何实现数据保存按天来,不要覆盖之前的数据记录,每次试验重新开始记录 最佳答案 这叫报表功能,advanced版本做这个功能有点勉强,得配合PLC数据块来做,用wincc&nbsp…

    SIMATIC WinCC 2021年7月5日
  • wincc6.2SP2变量导入导出如何操作?

    变量的导出/导入有哪些选项可供选择?https://support.industry.siemens.com/cs/cn/zh/view/22016422导出会导出之后有三个exc…

    2021年7月5日
  • wincc 报错 unhandled exception was raised

    然后Runtime 直接停止运行。LOG日志如下//===========================================================…

    SIMATIC WinCC 2021年7月5日
  • WINCC C/S架构授权问题

    如题,WINCC Audit选件以及用户归档的授权在服务器端授权之后需要在客户机端安装授权吗? 最佳答案 1、WinCC?Audit?RC?授权通常安装在WinCC服务器…

    SIMATIC WinCC 2021年7月5日