使用VBS讀取報(bào)警記錄數(shù)據(jù)到EXCEL_第1頁(yè)
使用VBS讀取報(bào)警記錄數(shù)據(jù)到EXCEL_第2頁(yè)
使用VBS讀取報(bào)警記錄數(shù)據(jù)到EXCEL_第3頁(yè)
使用VBS讀取報(bào)警記錄數(shù)據(jù)到EXCEL_第4頁(yè)
使用VBS讀取報(bào)警記錄數(shù)據(jù)到EXCEL_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)專心-專注-專業(yè)精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)【W(wǎng)inCC】使用VBS讀取報(bào)警記錄數(shù)據(jù)到EXCEL1概述介紹如何在WinCC項(xiàng)目中使用VBS腳本讀取報(bào)警記錄歸檔數(shù)據(jù),并把獲取的數(shù)據(jù)保存成新的Excel文件。2軟件環(huán)境Windows XP SP3中文版、WinCC7.0 SP2 ASIA、Microsoft office Excel 20073訪問原理WinCC報(bào)警記錄數(shù)據(jù)是以壓縮的形式存儲(chǔ)在數(shù)據(jù)庫(kù)中,需要通過 WinCC連通性軟件包提供的OLE-DB接口才能夠解壓并讀取這些數(shù)據(jù)。當(dāng)使用 OLE-DB方式訪問數(shù)據(jù)庫(kù)時(shí)

2、關(guān)鍵需要注意連接字符串的寫法和查詢語(yǔ)句的格式。連接字符串格式為“Provider=WinCCOLEDBProvider.1; Catalog= *; Data Source= *;”,其中:Catalog為WinCC運(yùn)行數(shù)據(jù)庫(kù)的名稱, 當(dāng)修改項(xiàng)目名稱或在其它計(jì)算機(jī)上打開原項(xiàng)目時(shí), Catalog會(huì)發(fā)生變化。建議使用WinCC內(nèi)部變量 “DatasourceNameRT” 獲得當(dāng)前項(xiàng)目的Catalog。Data Source 為服務(wù)器名稱,格式為“WinCC”。31 查詢語(yǔ)句格式查詢語(yǔ)句的格式要求如下:AlARMVIEW:SELECT * FROM WHEREoptional 其中參數(shù)信息如下所

3、示:ViewName:數(shù)據(jù)庫(kù)表名。必須用需要的語(yǔ)言指定該表。比如:中文字符表名為:ALGVIEWCHT,英文字符表明為:ALGVIEWENU等。Condition:為過濾標(biāo)準(zhǔn)。詳細(xì)說明請(qǐng)參見下表:表查詢參數(shù)表查詢結(jié)果查詢結(jié)果作為記錄集返回??梢愿鶕?jù)需要有選擇的返回特定的數(shù)據(jù)集。例如:oRs.Fields(0).Value 返回的是消息的編號(hào);oRs.Fields(2).Value 返回的是消息的時(shí)間戳;oRs.Fields(37).Value返回的是消息文本的內(nèi)容。記錄集的結(jié)構(gòu)如下表所示:表記錄集結(jié)構(gòu)表3記錄集結(jié)構(gòu) (續(xù)表)注意:WinCC的歸檔數(shù)據(jù)是使用UTC(協(xié)調(diào)世界時(shí))時(shí)間保存的。本例中

4、所采用的時(shí)間均為UTC時(shí)間,如果需要實(shí)現(xiàn)在本地時(shí)間和UTC時(shí)間之間的轉(zhuǎn)換,請(qǐng)參考下列連接:如何計(jì)算本地時(shí)間和 UTC 時(shí)間的時(shí)間差,如何轉(zhuǎn)換 UTC 時(shí)間成 SQL 語(yǔ)句格式?如何將本地計(jì)算機(jī)時(shí)間的時(shí)間戳(日期時(shí)間)轉(zhuǎn)換成協(xié)調(diào)世界時(shí) (UTC)?組態(tài)介紹準(zhǔn)備工作)創(chuàng)建變量其中AlmTagA、AlmTagB和AlmTagC用于組態(tài)報(bào)警,MySqlStr用于動(dòng)態(tài)化查詢條件。如下圖所示:圖變量)組態(tài)報(bào)警在報(bào)警記錄中組態(tài)如下報(bào)警:圖2報(bào)警信息圖3單個(gè)消息組態(tài)界面3)創(chuàng)建Excel模板在特定的路徑下預(yù)先創(chuàng)建一個(gè)Excel文件作為模板,這樣可以很好的控制輸出格式。本例中在D:WinCCWriteExcel

5、下創(chuàng)建一個(gè)名稱為abc.xlsx的Excel文件。如下圖所示:圖EXCEL模板42組態(tài)查詢界面畫面上新建五個(gè)按鈕,上面的四個(gè)按鈕分別用于設(shè)置不同的查詢條件。按鈕下方的靜態(tài)文本用于顯示查詢條件。最下方的按鈕用于執(zhí)行查詢報(bào)警記錄的VBS腳本。其中查詢條件的設(shè)定是通過按鈕的直接連接方式實(shí)現(xiàn)。圖5 查詢界面在按鈕屬性對(duì)話框的鼠標(biāo)動(dòng)作中選擇直接連接打開如下界面,配置查詢條件。其中來源部分為查詢字符串,目標(biāo)部分為存儲(chǔ)查詢條件的變量。圖6按鈕直接連接配置43詳細(xì)腳本介紹1)打開Excel模板以后臺(tái)方式打開之前創(chuàng)建好的Excel模板。其中sheetname作為變量可以定義Excel中Sheet的名字。需要注意

6、模板文件的存儲(chǔ)路徑。Set objExcelApp = CreateObject(Excel.Application)objExcelApp.Visible = FalseobjExcelApp.Workbooks.Open D:WinCCWriteExcelabc.xlsxobjExcelApp.Worksheets(sheetname).Activate2)準(zhǔn)備查詢條件主要是確定和格式化Catalog和查詢條件。關(guān)鍵腳本如下:準(zhǔn)備查詢條件 CatalogSet tagDSNName = HMIRuntime.Tags(DatasourceNameRT)tagDSNName.Read拼接查詢

7、條件MySqlStr.ReadsSql = ALARMVIEW:Select * FROM AlgViewCHT &MySqlStr.Value其中MySqlStr為定義的內(nèi)部字符串類型的變量,當(dāng)點(diǎn)擊查詢條件中的按鈕時(shí) ,就會(huì)把相應(yīng)的查詢條件字符串傳給該變量(需要根據(jù)項(xiàng)目的實(shí)際情況調(diào)整查詢條件)。本例中的四條查詢條件的完整語(yǔ)句如下圖所示:圖7查詢條件3)完整的代碼變量定義和初始化Dim sPro,sDsn,sSer,sCon,conn,sSql,oRs,oComDim tagDSNNameDim m,iDim objExcelApp,objExcelBook,objExcelSheet,she

8、etnameDim MySqlStrSet MySqlStr = HMIRuntime.Tags(MySqlStr)item.Enabled = FalseOn Error Resume Nextsheetname=Sheet1打開Excel模板Set objExcelApp = CreateObject(Excel.Application)objExcelApp.Visible = FalseobjExcelApp.Workbooks.Open D:WinCCWriteExcelabc.xlsxobjExcelApp.Worksheets(sheetname).Activate準(zhǔn)備查詢條件

9、CatalogSet tagDSNName = HMIRuntime.Tags(DatasourceNameRT)tagDSNName.Read創(chuàng)建數(shù)據(jù)庫(kù)聯(lián)接sPro = Provider=WinCCOLEDBProvider.1;sDsn = Catalog= &tagDSNName.Value& ;sSer = Data Source=.WinCCsCon = sPro + sDsn + sSerSet conn = CreateObject(ADODB.Connection)conn.ConnectionString = sConconn.CursorLocation = 3conn.O

10、pen定義查詢的命令文本 SQLMySqlStr.ReadsSql = ALARMVIEW:Select * FROM AlgViewCHT &MySqlStr.ValueHMIRuntime.Trace Sql is: & sSql & vbCrLfSet oRs = CreateObject(ADODB.Recordset)Set oCom = CreateObject(ADODB.Command)oCom.CommandType = 1Set oCom.ActiveConnection = connoCom.CommandText = sSql填充數(shù)據(jù)到Excel中Set oRs = o

11、Com.Executem = oRs.RecordCountIf (m 0) ThenoRs.MoveFirsti=3Do While Not oRs.EOF 是否到記錄末尾,循環(huán)填寫表格objExcelApp.Worksheets(sheetname).cells(i,1).value= CStr(oRs.Fields(0).Value)objExcelApp.Worksheets(sheetname).cells(i,2).value= CStr(oRs.Fields(1).Value)objExcelApp.Worksheets(sheetname).cells(i,3).value=

12、CStr(oRs.Fields(2).Value)objExcelApp.Worksheets(sheetname).cells(i,4).value= CStr(oRs.Fields(37).Value)oRs.MoveNexti=i+1LoopoRs.CloseElseMsgBox 沒有所需數(shù)據(jù)item.Enabled = TrueSet oRs = Nothingconn.CloseSet conn = NothingobjExcelApp.Workbooks.CloseobjExcelApp.QuitSet objExcelApp= NothingExit SubEnd If釋放資源S

13、et oRs = Nothingconn.CloseSet conn = Nothing生成新的文件,關(guān)閉ExcelDim patch,filenamefilename=CStr(Year(Now)&CStr(Month(Now)&CStr(Day(Now)&CStr(Hour(Now)+CStr(Minute(Now)&CStr(Second(Now)patch= d:&filename&demo.xlsxobjExcelApp.ActiveWorkbook.SaveAs patchobjExcelApp.Workbooks.CloseobjExcelApp.QuitSet objExcelApp= NothingMsgBox 成功生成數(shù)據(jù)文件!item.Enabled = True5結(jié)果和建議下圖為程序

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論