最簡單地訪問OPC服務(wù)器方法_第1頁
最簡單地訪問OPC服務(wù)器方法_第2頁
最簡單地訪問OPC服務(wù)器方法_第3頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、WORD格式最簡單的訪問 OPC 效勞器在網(wǎng)上搜了很多關(guān)于 VB.NET 編寫客戶端訪問 OPC 效勞器的資料,同時也根據(jù) KEPWARE 提供的案例源代碼,同時進展研究,最后花了一個星期的時間進展研究,才粗略有了一點頭緒,現(xiàn)共享出來,希望后來的初學(xué)者有所幫助。一要建一個 OPC 效勞器1安裝 OPC 效勞器軟件, KEPware 是大家比較常用的,我使用的是 Kepware OPC V4.54。如圖,添加 CHANNEL, 添加 TAG.把 Plc 的點位添加進去,我建了 6 個變量 item。具體添加的方法需要自行去學(xué)習(xí)。我添加的三菱 Q 系列的 PLC,PLC 采用以太網(wǎng)通訊的方式,在局

2、部網(wǎng)就可以訪問了。2設(shè)置 DCOM, 這個步驟很重要,具體的設(shè)置方法,網(wǎng)上很多資料,按步驟設(shè)置就可以。我原來按照組態(tài)王提供的方法,總是不成功,后來上了微軟,按微軟提供的方法設(shè)置肯定可以成功。完成了以上兩步,你的電腦就變成OPC 效勞器了。二訪問效勞器1.利用組態(tài)軟件訪問OPC 效勞器。如果用組態(tài)王訪問,那就太簡單了,左邊列表,選 opc 效勞器,點擊添加效勞器,就會彈出一個窗口,把本機的 OPC 效勞器列成清單。在清單里面就可以發(fā)現(xiàn) KEPSERVER 的名稱:KEPware.KEPserverEx.V4,選擇,然后按確定,就完成了添加效勞器。專業(yè)資料整理WORD格式在組態(tài)王的數(shù)據(jù)詞典,新建變

3、量, I/O 變量,連接設(shè)備選擇 OPC 效勞器,存放器可以看到 KEPserver 的變量 item,建立之后,就可以利用組網(wǎng)王,開發(fā)監(jiān)控應(yīng)用,組態(tài)軟件的使用在此就不贅述了,總之,利用組態(tài)軟件訪問 OPC 是最簡單的。2.用 VB.NET 開發(fā)客戶端訪問訪問 opc 效勞器,必須使用OPC 基金會提供的 OPCdaauto.dll。學(xué)習(xí)過程,最好下載說明書,OPC_20_Automation_Interface,網(wǎng)上可以下載。專業(yè)資料整理WORD格式1) 注冊 OPCdaauto.dll。這個動態(tài)連接庫文件可以網(wǎng)上下載??截惖?C:WINDOWSSYSTEM32 目錄, 翻開運行輸入框,輸入

4、: regsvr32 C:WINDOWSSYSTEM32OPCDAAUTO.DLL如果是 64 位 windows,那么拷貝在syswow64 。輸入:syswow64 OPCDAAUTO.DLL 。2) VS2021 ,新建一個工程。在工程 -點擊“添加引用,使用瀏覽,在 COM ,可以找到 opc da automation 的選項,點擊確認,及完成添加。添加成功,那么資源管理器,應(yīng)用,可以看到OPCautomation的工程。專業(yè)資料整理WORD格式3編寫程序的過程最簡單的一個案例,如以下圖,實現(xiàn)搜索效勞器,連接效勞器后,獲取ITEM 的實時值。A) 查找效勞器OPC 效勞器。如果填寫另

5、一臺點擊“查找效勞器按鈕,地址不填,那么列出本機的效勞器地址,那么列出另一臺電腦的效勞器清單如何知道計算機名?看網(wǎng)絡(luò)鄰居,至少你應(yīng)該知道那臺電腦裝了OPC 效勞器。專業(yè)資料整理WORD格式Public Class Form1專業(yè)資料整理WORD格式Inherits System.Windows.Forms.FormDim WithEvents AnOPCServer As OPCAutomation. OPCServer 用于搜索效勞器 ,連接效勞器 Dim WithEvents ConnectedGroup As OPCAutomation. OPCGroup 對應(yīng)后面添加組和項Privat

6、e Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.LoadEnd Sub以下程序:搜索 OPC效勞器,顯示在列表框上面Private Sub Button1_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CONNET.Click Try專業(yè)資料整理WORD格式AnOPCServer = New OPCAutomation.OPCServerListBox1.Items.Clear()Dim AllOPCServ

7、ers As ObjectAllOPCServers = AnOPCServer.GetOPCServers(TextBox1.Text) 以括號用文本框輸入,確定OPC效勞器的路徑,空白專業(yè)資料整理WORD格式表示搜索本機,如果搜索內(nèi)部網(wǎng)其他電腦,那么寫電腦的名稱,例如:電腦名稱專業(yè)資料整理WORD格式Dim i As ShortFor i = LBound(AllOPCServers) To UBound(AllOPCServers)ListBox1.Items.Add(AllOPCServers(i)Next iCatch ex As ExceptionMessageBox.Show(L

8、ist OPC servers failed with exception: + ex.Message, SimpleOPCInterface Exception ,MessageBoxButtons.OK)用于顯示執(zhí)行結(jié)果,如果失敗,那么可以顯示失敗的原因。End TryEnd SubB) 連接效勞器、添加項和組代碼如下:Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click以下程序連接效勞器連接TryAnOPCServer.Connect(ListBox1.Text, TextB

9、ox1.Text)第一個是參數(shù)是 opc效勞器名稱,第二個是電腦名稱。直接填寫也可以,例如: AnOPCServer.Connect( “ KEPware.KEPserverEx.V4 ,“newPI )Catch ex As ExceptionMessageBox.Show(OPC server 連接失敗: + ex.Message, OPCSample, MessageBoxButtons.OK)End Try專業(yè)資料整理WORD格式以下程序添加group和 item專業(yè)資料整理WORD格式TryAnOPCServer.OPCGroups.DefaultGroupIsActive = Tr

10、ue使其活動,照抄就行。AnOPCServer.OPCGroups.DefaultGroupDeadband = 0照抄就行。ConnectedGroup = AnOPCServer.OPCGroups.Add(GROUP1 )添加 GROUP,名稱自己隨便填。ConnectedGroup.UpdateRate = 100 更新速率,我實驗過,值越小,獲取ITEM 值越靈敏。ConnectedGroup.IsSubscribed =True采用訂閱的方式,后面用DATACHANGE 的事件獲取 item值,與此對應(yīng)。ConnectedGroup.OPCItems.AddItem(CHANNEL

11、2.DEVICE1. 綠燈 , 1)ConnectedGroup.OPCItems.AddItem(CHANNEL2.DEVICE1. 產(chǎn)量 , 2)ConnectedGroup.OPCItems.AddItem(CHANNEL2.DEVICE1. 黃燈 , 3)ConnectedGroup.OPCItems.AddItem(CHANNEL2.DEVICE1. 省電 , 4)ConnectedGroup.OPCItems.AddItem(CHANNEL2.DEVICE1. 產(chǎn)量 1, 5)ConnectedGroup.OPCItems.AddItem(CHANNEL2.DEVICE2.6)專業(yè)

12、資料整理WORD格式ADDITEM和ADDITEMS,兩種命令的格式不同,這里僅用最簡單的additem命令,用最土的方法添加了6個ITEM ,專業(yè)資料整理WORD格式兩個參數(shù),第一個是 item名稱,必須和 KEPSERVER 建立的 ITEM 完全一致,第二個參數(shù)是 CLIENTHANDLES, 句柄。 6個ITEM, 我給的是 1-6,隨便數(shù)字都可以,不重復(fù)即可。這個跟后面獲取值有直接關(guān)系!Catch ex As ExceptionMessageBox.Show(添加組和項失敗: + ex.Message, OPCSample, MessageBoxButtons.OK)End TryE

13、nd SubC)獲取前面提到的 訂閱的方式,是OPC效勞器主動的方式,把有變化的ITEM ,發(fā)送給客戶端。需要使用 DataChange的事件來獲取 item值,OPC_20_Automation_Interface58頁。假設(shè)兩個 OPC效勞器有 2個item發(fā)生改變 綠燈,產(chǎn)量 ,那么會返回 2個 ITEMS, 返回的, 其中 ITEMVALUES 是返回的 ITEM 實際值, ClientHandles是返回的句柄值,句柄值和添加 ITEM 時定義的句柄對應(yīng)。前面添加的 CHANNEL2.DEVICE2. 產(chǎn)量 ,我定義的 ClientHandles是6。如果數(shù)值發(fā)生變化,那么效勞器返回

14、的的值也是6。實際返回值:NumItems=2專業(yè)資料整理WORD格式ClientHandles(1)= 1 ,ITEMVALUES ClientHandles(2)= 6 ,ITEMVALUES1=true2= 65ItemValues1=trueItemValues2=65專業(yè)資料整理WORD格式因為返回的是數(shù)組,那么需要定義一個字符串的數(shù)組去承受ITEM值。專業(yè)資料整理WORD格式添加事件的方法:源代碼如下:Private Sub ConnectedGroup_DataChange(TransactionID As Integer, NumItems As Integer, ByRef

15、ClientHandles As Array, ByRef ItemValues As Array, ByRef Qualities As Array , ByRef TimeStamps As Array) Handles ConnectedGroup.DataChange專業(yè)資料整理WORD格式Dim val(10) As String用于接收 ITEM 值Dim I As Integer用于循環(huán)Dim k As Integer用于循環(huán)的方式給 TEXTBOX賦值,如果是textbox2-TEXTBOX7,有規(guī)律。就可以實現(xiàn)專業(yè)資料整理WORD格式For I = 1 To NumItemsk = 1

溫馨提示

  • 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

提交評論