WinCC和EXCEL數(shù)據(jù)傳遞_第1頁
WinCC和EXCEL數(shù)據(jù)傳遞_第2頁
WinCC和EXCEL數(shù)據(jù)傳遞_第3頁
WinCC和EXCEL數(shù)據(jù)傳遞_第4頁
WinCC和EXCEL數(shù)據(jù)傳遞_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1、DDE簡介動態(tài)數(shù)據(jù)交換(DDE)是基于Windows的消息機制,兩個Windows應(yīng)用程序通過相互之間傳遞消息進行“對話”,這兩個程序被分別稱為“服務(wù)器”和“客戶”。DDE服務(wù)器是一個維護著其他Windows程序可能使用的數(shù)據(jù)程序,而DDE客戶則是從服務(wù)器獲得這些數(shù)據(jù)的程序。DDE對話是由客戶程序發(fā)動的??蛻舫绦?qū)⒁粭l稱為WM_DDE_INTITIATE的消息發(fā)給當前運行的所有Windows程序,這條消息指明了客戶程序所需要的數(shù)據(jù)類別,擁有這些數(shù)據(jù)的DDE服務(wù)器可以響應(yīng)這條消息,這樣一個對話就開始了。DDE的對話方式有3種: 服務(wù)器數(shù)據(jù)變化時,直接把數(shù)據(jù)送給客戶,由客戶對這些數(shù)據(jù)進行處理,

2、這類對話方式稱為熱鏈;服務(wù)器的數(shù)據(jù)變化時,服務(wù)器通知客戶,再由客戶取數(shù)據(jù),這種方式稱為溫鏈; 由客戶申請數(shù)據(jù)、服務(wù)器發(fā)送數(shù)據(jù)的方式稱為冷鏈。 一、Wincc作為DDE的客戶端,Excel作為DDE服務(wù)器(本地) 1、在變量管理上按鼠標右鍵添加新的驅(qū)動程序選“windows dde.chn”                         

3、    圖1 2、在DDE上按鼠標右鍵新驅(qū)動程序連接點屬性,在其連接屬性中:“計算機名稱”為空;“應(yīng)用程序”為excel;“主題”為工作表名,比如DDE.xlssheet1。圖23、在DDEexcel下建變量,在變量屬性中選擇地址,條目名稱填:r行數(shù)c列數(shù),比如r1c1(表示第一行第一列的單元格),重復(fù)步驟3可以加入更多的DDE變量                   

4、;      圖34、Excel程序 圖4Wincc程序圖5完成 用OPC做比較省事。WinCC做OPC Server,Excel做OPC Client。這種情況下,WinCC端不需要做任何設(shè)置,只要在Excel 里用少量的代碼就能實現(xiàn)雙方的通訊。對于WINCC與S7-300的通訊,首先要確定PLC的通訊口類型,PLC一般都集成了MPI/DP口,還可以安裝通訊模塊。計算機(PC)上安裝適當?shù)耐ㄓ嵖ǎú煌耐ㄓ嵖ㄖС值耐ㄓ崊f(xié)議不同)。看你需要啦!其次是WINCC軟件里的通訊協(xié)議要與PC機對應(yīng)。WI

5、NCC提供了SIMATIC S7 PROTOCOL SUITE 通訊驅(qū)動程序,包含了多種通訊協(xié)議!最終還有自己親自實際操作了才有深刻的了解的!Sub X6309X94AE9X0000X6539_OnClick(Byval Item)    Dim fso,myfileSet fso = CreateObject("scripting.FileSystemObject")Set MyFile = fso.GetFile("d:Excelcode.xls")Dim ObjExcelAppS

6、et objExcelApp = CreateObject("Excel.Application")'objExcelApp.Visible = TrueobjExcelApp.Workbooks.Open MyFile'上面的程序段是為了打開d盤下叫Excelcode.xls名字的excel文件objExcelApp.worksheets ("sheet1").Cells(1, 1).VAlue = HMIRuntime.Tags("usercodenew1").readobjExcelApp.ActiveWorkb

7、ook.Save'上面兩行的作用是將wincc變量"usercodenew1"的值寫到Excel表中的A1格子里面,并且保持一下Dim coldoldSet coldold=HMIRuntime.Tags("usercodeold1")coldold.Value = objExcelApp.worksheets ("sheet1").Cells(1, 1).value'上面這兩句的作用是將剛才保持到Excel表格中的數(shù)據(jù)重新讀回wincc,存到"usercodeold1"變量中,當然現(xiàn)在其實并沒有存

8、入"usercodeold1"變量,只是存在了叫coldold的臨時變量里面objExcelApp.Workbooks.CloseobjExcelApp.QuitSet ObjEXceLapp = Nothing'到這里為止,我們可以通過上面的語句關(guān)閉剛才打開的excel程序了coldold.Write '最后是把讀到的excel值從臨時變量coldold中寫入它對應(yīng)的"usercodeold1"變量中End Sub  上面這個例子已經(jīng)調(diào)試通過。網(wǎng)上有很多wincc值寫入excel中的例子,一直找不到從excel中讀取

9、數(shù)據(jù)到wincc中的例子,結(jié)合網(wǎng)上朋友的一些經(jīng)驗,這里給出個小例子,供大家參考。估計考慮到后些天要用到EXCEL與WINCC的通訊,我看了些書,在西門子的論壇上看到了一個現(xiàn)場做好的通訊成功例子.通過自己來做,通訊成功. 例子地址:http:/www.s7- d=53940&s_id=0&num=49#anch 現(xiàn)總結(jié)一下: 1 WINCC作為OPC服務(wù)器,勿需添加OPC通道.在例子中,只在內(nèi)部變量中,建立6個內(nèi)部變量,內(nèi)部變量為有符號的16位數(shù),名稱分別為,a,b,c,d,e,f.(當然如果身邊有PLC在,可以建立過程變量,為了方便運行,建立內(nèi)部變量),分別在a,b,c,d,e

10、,f中的限制/報表中,設(shè)置其開始值,為1,2,3,4,5,6. 注意:計算機->屬性中的計算機名稱要與本計算機名稱一致 在WINCC中建立一頁面,用按鈕來改變a,b,c,d,e,f的值,如果通訊成功,在EXCEL中也會隨之改變. 2 新建立一個EXCEL文件,打開文件,工具->宏->VB編輯器,打開EXCEL的VB編輯器. 3 在VB編輯器里,工具->引用,在彈出窗口中,找Siemens OPC DAAutomation 2.0,勾上 :) 4 雙擊sheet1,打開sheet1的代碼窗口,然后將程序(程序代碼在頁面的最后)復(fù)制到代碼窗口. 5 在EXCEL的上分別對應(yīng)

11、 C2->計算機名 C3->a C4->b C5->c C6->d C7->e C8->f 6 在EXCEL總,工具->宏,選擇sheet1.startclient,啟動 7 完了 代碼: Option Explicit Option Base 1 Const ServerName = "OPCServer.WinCC" Dim WithEvents MyOPCServer As OPCServer Dim WithEvents MyOPCGroup As OPCGroup Dim MyOPCGroupColl As OPCG

12、roups Dim MyOPCItemColl As OPCItems Dim MyOPCItems As OPCItems Dim MyOPCItem As OPCItem Dim ClientHandles(6) As Long Dim ServerHandles() As Long Dim Values(1) As Variant Dim Errors() As Long Dim ItemIDs(6) As String Dim GroupName As String Dim NodeName As String Dim itemv(6) As Variant Dim ii As Int

13、eger '- - ' Sub StartClient() ' 目的:連接至OPC_server,創(chuàng)建組和添加條目 '- - Sub StartClient() ' On Error GoTo ErrorHandler '- 可以自由選擇ClientHandle和GroupName For ii = 1 To 6 ClientHandles(ii) = ii Next ii GroupName = "MyGroup" '- 從單元“A1”得到ItemID NodeName = Range("c2")

14、.Value ItemIDs(1) = Range("c3").Value ItemIDs(2) = Range("c4").Value ItemIDs(3) = Range("c5").Value ItemIDs(4) = Range("c6").Value ItemIDs(5) = Range("c7").Value ItemIDs(6) = Range("c8").Value '- 得到一個OPC服務(wù)器的實例 Set MyOPCServer = New OPCS

15、erver MyOPCServer.Connect ServerName, NodeName Set MyOPCGroupColl = MyOPCServer.OPCGroups '- 為添加組設(shè)置缺省的激活狀態(tài) MyOPCGroupColl.DefaultGroupIsActive = True '- 添加組至收集 Set MyOPCGroup = MyOPCGroupColl.Add(GroupName) Set MyOPCItemColl = MyOPCGroup.OPCItems '- 添加一個條目、返回ServerHandles MyOPCItemColl.A

16、ddItems 6, ItemIDs(), ClientHandles(), ServerHandles(), Errors '- 用于接受不同的信息組 MyOPCGroup.IsSubscribed = True Exit Sub ErrorHandler: MsgBox "Error: " & Err.Description, vbCritical, "ERROR" End Sub '- - ' Sub StopClient() ' 目的:從服務(wù)器釋放對象并且斷開連接 '- - Sub StopClie

17、nt() '- 釋放組和服務(wù)器對象 MyOPCGroupColl.RemoveAll '- 與服務(wù)器斷開連接并且清除 MyOPCServer.Disconnect Set MyOPCItemColl = Nothing Set MyOPCGroup = Nothing Set MyOPCGroupColl = Nothing Set MyOPCServer = Nothing End Sub '- - ' Sub MyOPCGroup_DataChange() ' 目的:組中的數(shù)值、質(zhì)量或時間標志改變時,該事件激活 '- - '- 如果O

18、PC-DA Automation 2.1被安裝,使用: Private Sub MyOPCGroup_DataChange(ByVal TransactionID As Long, ByVal NumItems As Long, ClientHandles() As Long, itemvalues() As Variant, Qualities() As Long, TimeStamps() As Date) '- 設(shè)置數(shù)據(jù)表單元值為數(shù)值讀 For ii = 1 To NumItems itemv(ClientHandles(ii) = itemvalues(ii) Next ii

19、Range("d3").Value = Range("d4").Value = Range("d5").Value = Range("d6").Value = Range("d7").Value = 注意:excel啟動宏之前先啟動WINCC運行。在本實例中,將在Microsoft Excel中使用Visual Basic編輯器創(chuàng)建一個OPC DA客戶機。OPC DA客戶機讀取WinCC OPC DA服務(wù)器的WinCC項目中的一個WinCC變量,并將值寫入單元格中。如果在單元格中輸入一個新值,該

20、值將會被傳送到WinCC OPC DA服務(wù)器。需要一臺上面同時安裝了WinCC和Microsoft Excel的計算機來設(shè)置連接。 組態(tài)步驟在Microsoft Excel中需要進行下列組態(tài):1.    在Microsoft Excel的Visual Basic編輯器中創(chuàng)建一個OPC DA客戶機引言要將Microsoft Excel用作OPC DA客戶機,必須在Microsoft Excel的Visual Basic編輯器中創(chuàng)建相應(yīng)的腳本。要求如何在Microsoft Excel中使用Visual Basic編輯器的基本知識。步驟 步

21、驟1打開Microsoft Excel,將出現(xiàn)新的工作簿。2在“工具”菜單中,選擇“宏”“Visual Basic編輯器”。這將啟動Microsoft Excel的Visual Basic編輯器。3在“Visual Basic編輯器”的“工具”菜單中選擇“引用.”。出現(xiàn)標題為“引用 - VBAProject”的對話框。在可用參考的列表中找到條目“Siemens OPC DAAutomation 2.0”。標記相應(yīng)的復(fù)選框。單擊“確定”。4單擊此處。 復(fù)制腳本。該腳本僅在在線幫助中可用。  5雙擊Visual Basic編輯器項目窗口中的“Sheet1”,打開新的代碼窗口。6將腳本粘貼到代碼窗口中。7從“文件”菜單中選擇“保存”。從“文件”菜單中選擇“關(guān)閉并返回到

溫馨提示

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

評論

0/150

提交評論