VBS实现WINCC的用户归档输出到EXCEL表格的方法和例
(2009-12-30 16:47:45)
VBS实现WINCC的用户归档输出到EXCEL表格的方法和例子程序
求用VBS实现WINCC的用户归档输出到固定格式的EXCEL表格的方法和例子程序!我主要问题在SQL数据库的查询语句不会。
看见论坛里有关用VBS实现EXCEL的数据查询和导出,我现在想要完成如下功能:每分钟将数据归档,用户可以输入任意的时刻时间查询从任意时刻开始的之后每隔1小时的数据(有点像日报里的24个小时)。我现在对于VBS查询数据库的语句不懂,望大大赐教!谢谢 
''SQL查询语句
 Dim strc as string
 strc = "provider=WinCCOLEDBProvider.1;catalog=CC_RebdI_09_06_22_10_38_35R;data source=ComputerName\WinCC" 
        ''这个连接字符串可以在SQl2000中看到
 Dim cc1
 Set cc1=CreateObject("tion")
     cc1.ConnectionString=strc 
     cc1.CursorLocation=3
     cc1.open
 Dim rst As Object
 Set rst = CreateObject("dset")
 dim ssql as string
     ssql = "Tag:R,'Archive_3\DB1DBD0','2009-7-29 00:00:00.0000','2009-7-29 23:59:59.999','timestep=3600,258'"
             ''Archive_3\I_DB1DBD0归档和变量
             ''2009-7-29 00:00:00.0000,2009-7-29 23:59:59.999时间段
             ''timestep=3600,258每阁多少秒拿一个数据(3600=1小时),258表示每个时间段取最后一个数据
 rst.Open ssql, cc1
 ''这样查出来的数据就是一天的每小时的数据
 ''rst记录集处理就可以得到你要的数据
==========================
Function action

Dim objExcelApp

Dim i,TimeM,TimeNow,TimeS

Set TimeM=HMIRuntime.Tags("TimeM")

i=1+TimeM.Read

TimeNow=CStr(Year(Now))&""&CStr(Month(Now))&""&CStr(Day(Now))&""&CStr(Hour(Now))&"-
"&CStr(Minute(Now))&":"&CStr(Second(Now))

TimeS=Second(Now)

Set objExcelApp = CreateObject("Excel.Application")

objExcelApp.Visible = False

objExcelApp.Workbooks.Open"E:\ExcelTest.xls"

objExcelApp.Cells(i, 2).Value =123.47

objExcelApp.Cells(i, 1).Value = TimeNow

objExcelApp.DisplayAlerts = False


objExcelApp.ActiveWorkbook.Save

objExcelApp.Workbooks.Close

objExcelApp.quit

Set objExcelApp =Nothing

End Function

以上代码用于往指定的Excel表格中写数据。该动作每分钟触发一次,依次往表格中写入60个数据,当进入下一个小时后,大概是因为表格中已存在数据所以在写入前会弹出对话框提醒是否覆盖还是另存,加入objExcelApp.DisplayAlerts = False语句后就不存在这个问题了,对此要谢谢谢谢版主:城外之人。
WINCCEXCEL数据交换 hjyhjy,2010-11-09 16:55:28

WINCCEXCEL数据交换
代码
Sub X6309X94AE13X0000X0000_OnLButtonDown(ByVal Item, ByVal Flags, ByVal x, ByVal y)     
Dim objExcelApp
Set objExcelApp=createobject("excel.applcation")
 objExcelApp.Visible=True
 objExcelApp.Workbooks.Open"E:\a.xls"
&lls(4,3).Value=ScreenItems("b").Outputvalue
 objExcelApp.ActiveWorkbook.Save
 objExcelApp.Workbooks.Close
 objExcelApp.Quit
 Set objExcelApp=Nothing
End Sub
getsavefilename谢谢,已经解决,单词写错了
lls(4,3).Value=ScreenItems("b").Outputvalue
这里也有问题

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。