




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1、DDE簡介動態數據交換(DDE)是基于Windows的消息機制,兩個Windows應用程序通過相互之間傳遞消息進行“對話”,這兩個程序被分別稱為“服務器”和“客戶”。DDE服務器是一個維護著其他Windows程序可能使用的數據程序,而DDE客戶則是從服務器獲得這些數據的程序。DDE對話是由客戶程序發動的。客戶程序將一條稱為WM_DDE_INTITIATE的消息發給當前運行的所有Windows程序,這條消息指明了客戶程序所需要的數據類別,擁有這些數據的DDE服務器可以響應這條消息,這樣一個對話就開始了。DDE的對話方式有3種: 服務器數據變化時,直接把數據送給客戶,由客戶對這些數據進行處理,
2、這類對話方式稱為熱鏈;服務器的數據變化時,服務器通知客戶,再由客戶取數據,這種方式稱為溫鏈; 由客戶申請數據、服務器發送數據的方式稱為冷鏈。 一、Wincc作為DDE的客戶端,Excel作為DDE服務器(本地) 1、在變量管理上按鼠標右鍵添加新的驅動程序選“windows dde.chn”
3、 圖1 2、在DDE上按鼠標右鍵新驅動程序連接點屬性,在其連接屬性中:“計算機名稱”為空;“應用程序”為excel;“主題”為工作表名,比如DDE.xlssheet1。圖23、在DDEexcel下建變量,在變量屬性中選擇地址,條目名稱填:r行數c列數,比如r1c1(表示第一行第一列的單元格),重復步驟3可以加入更多的DDE變量
4、; 圖34、Excel程序 圖4Wincc程序圖5完成 用OPC做比較省事。WinCC做OPC Server,Excel做OPC Client。這種情況下,WinCC端不需要做任何設置,只要在Excel 里用少量的代碼就能實現雙方的通訊。對于WINCC與S7-300的通訊,首先要確定PLC的通訊口類型,PLC一般都集成了MPI/DP口,還可以安裝通訊模塊。計算機(PC)上安裝適當的通訊卡(不同的通訊卡支持的通訊協議不同)。看你需要啦!其次是WINCC軟件里的通訊協議要與PC機對應。WI
5、NCC提供了SIMATIC S7 PROTOCOL SUITE 通訊驅動程序,包含了多種通訊協議!最終還有自己親自實際操作了才有深刻的了解的!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表格中的數據重新讀回wincc,存到"usercodeold1"變量中,當然現在其實并沒有存
8、入"usercodeold1"變量,只是存在了叫coldold的臨時變量里面objExcelApp.Workbooks.CloseobjExcelApp.QuitSet ObjEXceLapp = Nothing'到這里為止,我們可以通過上面的語句關閉剛才打開的excel程序了coldold.Write '最后是把讀到的excel值從臨時變量coldold中寫入它對應的"usercodeold1"變量中End Sub 上面這個例子已經調試通過。網上有很多wincc值寫入excel中的例子,一直找不到從excel中讀取
9、數據到wincc中的例子,結合網上朋友的一些經驗,這里給出個小例子,供大家參考。估計考慮到后些天要用到EXCEL與WINCC的通訊,我看了些書,在西門子的論壇上看到了一個現場做好的通訊成功例子.通過自己來做,通訊成功. 例子地址:http:/www.s7- d=53940&s_id=0&num=49#anch 現總結一下: 1 WINCC作為OPC服務器,勿需添加OPC通道.在例子中,只在內部變量中,建立6個內部變量,內部變量為有符號的16位數,名稱分別為,a,b,c,d,e,f.(當然如果身邊有PLC在,可以建立過程變量,為了方便運行,建立內部變量),分別在a,b,c,d,e
10、,f中的限制/報表中,設置其開始值,為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的代碼窗口,然后將程序(程序代碼在頁面的最后)復制到代碼窗口. 5 在EXCEL的上分別對應
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,創建組和添加條目 '- - 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服務器的實例 Set MyOPCServer = New OPCS
15、erver MyOPCServer.Connect ServerName, NodeName Set MyOPCGroupColl = MyOPCServer.OPCGroups '- 為添加組設置缺省的激活狀態 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() ' 目的:從服務器釋放對象并且斷開連接 '- - Sub StopClie
17、nt() '- 釋放組和服務器對象 MyOPCGroupColl.RemoveAll '- 與服務器斷開連接并且清除 MyOPCServer.Disconnect Set MyOPCItemColl = Nothing Set MyOPCGroup = Nothing Set MyOPCGroupColl = Nothing Set MyOPCServer = Nothing End Sub '- - ' Sub MyOPCGroup_DataChange() ' 目的:組中的數值、質量或時間標志改變時,該事件激活 '- - '- 如果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) '- 設置數據表單元值為數值讀 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編輯器創建一個OPC DA客戶機。OPC DA客戶機讀取WinCC OPC DA服務器的WinCC項目中的一個WinCC變量,并將值寫入單元格中。如果在單元格中輸入一個新值,該
20、值將會被傳送到WinCC OPC DA服務器。需要一臺上面同時安裝了WinCC和Microsoft Excel的計算機來設置連接。 組態步驟在Microsoft Excel中需要進行下列組態:1. 在Microsoft Excel的Visual Basic編輯器中創建一個OPC DA客戶機引言要將Microsoft Excel用作OPC DA客戶機,必須在Microsoft Excel的Visual Basic編輯器中創建相應的腳本。要求如何在Microsoft Excel中使用Visual Basic編輯器的基本知識。步驟 步
21、驟1打開Microsoft Excel,將出現新的工作簿。2在“工具”菜單中,選擇“宏”“Visual Basic編輯器”。這將啟動Microsoft Excel的Visual Basic編輯器。3在“Visual Basic編輯器”的“工具”菜單中選擇“引用.”。出現標題為“引用 - VBAProject”的對話框。在可用參考的列表中找到條目“Siemens OPC DAAutomation 2.0”。標記相應的復選框。單擊“確定”。4單擊此處。 復制腳本。該腳本僅在在線幫助中可用。 5雙擊Visual Basic編輯器項目窗口中的“Sheet1”,打開新的代碼窗口。6將腳本粘貼到代碼窗口中。7從“文件”菜單中選擇“保存”。從“文件”菜單中選擇“關閉并返回到
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 按摩枕的智能化程度分析考核試卷
- 塑料廢料的分類與處理技術考核試卷
- 醫療設備手柄材料成本分析考核試卷
- 綠色化學在礦提取中的應用考核試卷
- 成本控制流程再造考核試卷
- 寄宿生管理制度
- 公司員工打架檢討書
- 機器學習與深度學習在自動駕駛中的應用
- 毽子舞比賽活動方案
- 河水檢測活動方案
- 公文寫作技能題庫及答案
- 遼寧省“三支一扶”招募考試真題2024
- 多能工培訓方案
- 學生自信心培養的教育心理學研究
- 2025中國內地薪酬指南-kos高奧士國際-202506
- 2025年中國嬰兒搖鈴玩具行業市場發展前景及發展趨勢與投資戰略研究報告
- 2024年包頭職業技術學院招聘筆試真題
- 核設施老化管理-洞察及研究
- 2025至2030年中國碳化硅陶瓷行業市場發展規模及市場分析預測報告
- 2025重大火災隱患判定規則解讀
- 外賣小哥培訓道路安全管理
評論
0/150
提交評論