999久久久精品国产消防器材,国产成人久久综合77777,√最新版天堂资源网在线,精品久久久久区二区8888,卡一卡二卡三乱码视频

技成培訓網(wǎng) 技成學習APP 技成工具箱 技成企業(yè)服務

歡迎回到技成培訓網(wǎng)

技成培訓網(wǎng)

電工題庫寶典

技成電工課堂

PLC練習題

技成PLC課堂

變頻器故障查詢

技成PLC學吧

伺服驅(qū)動故障查詢

技成PLC網(wǎng)校

當前位置:技成首頁 > 文章中心 > 技成百科 > 為什么生成的報表每行都是一樣的?

為什么生成的報表每行都是一樣的?

劉玉蓉 發(fā)布于2014-09-04 17:50 65 0 標簽:

全局動作,每隔10分鐘執(zhí)行一次,用wincc自帶的仿真器改變變量的值,腳本如下:
Option Explicit
Function action
Dim objExcelApp,objExcelBook,objExcelSheet 
Dim tagyali1,tagyali2,tagyali3,tagyali4 
Dim tagliuliang1,tagliuliang2
Dim tago2 
Dim tagshijian,sheetname 
Dim i,j 
Dim msg 

"聲明
Set tagyali1=HMIRuntime.Tags("aa1")
Set tagyali2=HMIRuntime.Tags("aa2")
Msg="ok" 
sheetname="sheet1" 


On Error Resume Next 
Dim ExcelApp,ExcelBook 
Set ExcelApp=GetObject(,"Excel.Application") 
If TypeName(ExcelApp)="Application" Then 
 For Each ExcelBook In ExcelApp.WorkBooks 
  If ExcelBook.FullName="E: empeeiao.xls" Then 
    ExcelApp.ActiveWorkbook.Save 
    ExcelApp.Workbooks.Close 
    ExcelApp.Quit 
    Set ExcelApp=Nothing
    Exit For 
  End If 
 Next 
End If 

Set objExcelApp=CreateObject("Excel.Application") 
objExcelApp.Visible=True 
objExcelApp.Workbooks.Open"E: empeeiao.xls" 
objExcelApp.Worksheets(sheetname).Activate  

"清除模版數(shù)據(jù)
With objExcelApp.Worksheets(sheetname) 
For i=5 To 25 
For j=1 To 8 
.cells(i,j)=Null 
Next 
Next 
For i=26 To 26 
For j=1 To 7 
.cells(i,j)=Null 
Next 
Next 
End With 


"實時數(shù)據(jù)寫入
tagshijian=Now 
objExcelApp.Worksheets(sheetname).cells(2,2).value=tagshijian 
For i=5 To 25 
With objExcelApp.Worksheets(sheetname)
.cells(i,1).value=tagshijian 
tagyali1.Read
.cells(i,2).value=tagyali1.value
tagyali2.Read
.cells(i,3).value=tagyali2.value 
End With 
Next
MsgBox   
"關(guān)閉保存
Dim patch,filename 
filename=CStr(Month(Now))&CStr(Day(Now))+CStr(Hour(Now))&CStr(Minute(Now)) 
patch="E: empee"&filename&".xls" 
objExcelApp.ActiveWorkbook.SaveAs patch 
objExcelApp.Workbooks.Close 
objExcelApp.Quit 
Set objExcelApp=Nothing

End Function
問題:第5行到第25行的數(shù)據(jù)都是一樣的,為什么不發(fā)生變化?能不能第5行采集某一時刻第1秒的值,第6行采集第2秒的值。。。?

問題補充:
我想實現(xiàn)這樣的功能:
1.每個整點對變量進行讀值,比如:10:00將變量a1讀到單元格里cells(5,1);11:00將變量a1讀到單元格里cells(6,1)。。。
2.當讀到整點00:00時進行保存,保存的文件名為當天的日期。請問該怎么改這段程序。

佳答案

把tagshijian=Now寫在循環(huán)里。
你這樣寫,tagshijian在進入循環(huán)前取得了時間值,進入循環(huán)后,tagshijian并沒變呀,當然你每次的時間都是一樣的呀。
同理,變量的值也要在循環(huán)里寫。

如果你想每秒記錄,那沒必要寫循環(huán),一個是時間不好控制,或者控制不準,再是腳本,不宜執(zhí)行時間過長。
你再創(chuàng)建一個全局動作,假設叫action1,把觸發(fā)器設置為按秒觸發(fā)。
原來的這個動作里只有判斷是不是開始記錄數(shù)據(jù)就可以,如果可以,置某變量為1,不可以時置為0,假設變量為ok。

那么action1里面
if HMIRuntime.Tags("ok") = 1 then
""獲得當前時間
‘獲得各變量的值
""寫一條數(shù)據(jù)
……

end if

若有收獲,就點個贊吧!

文章來源于網(wǎng)絡及文獻如有侵權(quán)請聯(lián)系站長
分享到:

微信掃一掃分享

閱讀與本文標簽相同的文章

相關(guān)推薦

最新文章 熱門文章
最新課程 免費課程
PLC資料下載 電工電氣資料下載
應用新秀
變頻器故障代碼查詢APP
伺服故障代碼查詢APP
技成
手機APP
熱門標簽