两个问题
1、WINCC生成的报表是按照时间保存的,我想在画面上做个查询,输入时间(日期),能自动打开对应名称的EXCEL文件
2、每半个小时将画面上所显示的几个输入输出域的显示值写入EXCEL对应的格内,也就是没半个小时归档一次变量,然后写入。
求这两个问题的VB程序,谢谢!
问题补充:
还有一个就是我在计算机中勾选了全局脚本,当激活项目后全局脚本中的程序会自动运行吗?如果不会,怎么让全局脚本在激活项目时自动运行编好的程序
最佳答案
1、WINCC生成的报表是按照时间保存的,我想在画面上做个查询,输入时间(日期),能自动打开对应名称的EXCEL文件
转帖:
我工程中的一个例子,按输入的日期查询Excel表中的相应的行,然后从该行开始(共20行)读入到WinCC中的显示表中。
''inquiry the Row No. according to the required date
Dim objExcelApp,oWorkBook
Dim oFindRowNo,vDate,oVar,i,j
On Error Resume Next
Set objExcelApp=CreateObject("Excel.Application")
objExcelApp.Visible=False
Set oWorkBook=objExcelApp.Workbooks.Open("d:\GuangXi_001\OwnWork\DATA_Table_V1201.xls")
vDate=ScreenItems("Acquisition_Date").OutputValue
oFindRowNo=oWorkBook.ActiveSheet.Columns(13).Find("*"&vDate).Row
''according to excel date format, prefix"*" needed
If CStr(oFindRowNo)="" Then
MsgBox("Not find? please try another date again!!!")
Else
''MsgBox("Continue ?Row No.="&oFindRowNo)
ScreenItems("Excel_TableBeginRowNo").OutputValue=oFindRowNo
''read data from Excel and write to WinCC Screen I/O fields
For i=1 To 20
For j=1 To 14
oVar="Production_Data_Table_Row"&CStr(i)&".Column_"&CStr(j)
HMIRuntime.SmartTags(oVar).value=objExcelApp.Cells(oFindRowNo+i-1,j).Value
Next
Next
ScreenItems("Excel_TableCurrentRowNo").OutputValue=oFindRowNo+19
End If
objExcelApp.Workbooks.Close
objExcelApp.Quit
Set objExcelApp=Nothing
Set oWorkBook=Nothing
提问者对于答案的评价:
谢谢
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc264341.html