(一)有三个压力变量,报表要显示五列,第一列是整点时间(24小时),后面三列是这三个变量,最后两列分别是第一个压力与第三个的差,第二个压力与第三个的差
(二)这个报表每天8点钟自动打印前24小时的数据,而且还要能够手动选择日期打印
请问如何在不增加WinCC收费控件的情况下做这个报表呢?看了些以前的问答,好像整点往SQL数据库里存数据,然后再读到表格控件里可以做到,请问还有别的简单些的方法吗?表格控件指的是“在线表格控件”吗?请问哪儿有如何把数据库里的数弄到表格控件里去的说明呢?
我是个新手,问题比较多,谢谢!
最佳答案
做好归档,设置为每10分钟(或其他时间)存储一次,设置好之后,所以数据就存储在wincc自带的数据库中,然后通过程序把数据读到excel表格中,给你一个例子吧:
Dim cnn As String
cnn = "provider=WinCCOLEDBProvider.1;catalog=CC_gz_food_09_07_14_14_54_22R;data source=wincc01\WinCC"
dim cc1 as object
Set cc1 = CreateObject("adodb.connection")
cc1.ConnectionString = cnn
cc1.CursorLocation = 3
cc1.Open
Dim rst As Object
Set rst = CreateObject("adodb.recordset")
Dim fname
fname="e:\baobiao\report.xls"
Dim ObjExcelApp
Set objExcelApp = CreateObject("Excel.Application")
objExcelApp.Workbooks.Open fname
Dim i
i=4
Dim ssql As String
ssql = "TAG:R,''speed1\c_speed1_1'',''2009-09-24 09:19:00.000'',''2009-09-24 09:20:00.000''"
rst.Open ssql, cc1
rst.MoveFirst
objExcelApp.worksheets ("sheet1").Cells(i, 2).VAlue = rst.fields(1).value
objExcelApp.worksheets ("sheet1").Cells(i, 3).VAlue = rst.fields(2).value
objExcelApp.worksheets ("sheet1").Cells(i, 4).VAlue = rst.fields(3).value
cc1.Close
objEXcelApp.ActiveWorkbook.Save
objEXcelApp.workbooks.close
objExcelApp.Quit
Set cc1 = Nothing
Set rst = Nothing
Set objExcelApp = Nothing
你只需要把三个压力的数据读出来,然后2个压力差可以用excel自带的求差功能。
提问者对于答案的评价:
非常感谢,确实可用
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc219958.html