




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 最簡(jiǎn)單的訪問(wèn)OPC服務(wù)器 在網(wǎng)上搜了很多關(guān)于VB.NET編寫客戶端訪問(wèn)OPC服務(wù)器的資料,同時(shí)也根據(jù)KEPWARE提供的案例源代碼,同時(shí)進(jìn)行研究,最后花了一個(gè)星期的時(shí)間進(jìn)行研究,才粗略有了一點(diǎn)頭緒,現(xiàn)共享出來(lái),希望后來(lái)的初學(xué)者有所幫助。一 要建一個(gè)OPC服務(wù)器1)安裝OPC服務(wù)器軟件,KEPware是大家比較常用的,我使用的是Kepware OPC V4.54。如圖,添加CHANNEL,添加TAG.把Plc的點(diǎn)位添加進(jìn)去,我建了6個(gè)變量(item)。具體添加的方法需要自行去學(xué)習(xí)。我添加的三菱Q系列的PLC,PLC采用以太網(wǎng)通訊的方式,在局部網(wǎng)就可以訪問(wèn)了。 2)設(shè)置DCOM,這個(gè)步驟很重要,
2、具體的設(shè)置方法,網(wǎng)上很多資料,按步驟設(shè)置就可以。我原來(lái)按照組態(tài)王提供的方法,總是不成功,后來(lái)上了微軟網(wǎng)站,按微軟提供的方法設(shè)置肯定可以成功。 完成了以上兩步,你的電腦就變成OPC服務(wù)器了。二 訪問(wèn)服務(wù)器1.利用組態(tài)軟件訪問(wèn)OPC服務(wù)器。如果用組態(tài)王訪問(wèn),那就太簡(jiǎn)單了,左邊列表,選opc服務(wù)器,點(diǎn)擊添加服務(wù)器,就會(huì)彈出一個(gè)窗口,把本機(jī)的OPC服務(wù)器列成清單。在清單里面就可以發(fā)現(xiàn)KEPSERVER的名稱:KEPware.KEPserverEx.V4,選擇,然后按確定,就完成了添加服務(wù)器。 在組態(tài)王的數(shù)據(jù)詞典,新建變量,I/O變量,連接設(shè)備選擇OPC服務(wù)器,寄存器可以看到KEPserver的變量(i
3、tem),建立之后,就可以利用組網(wǎng)王,開發(fā)監(jiān)控應(yīng)用,組態(tài)軟件的使用在此就不贅述了,總之,利用組態(tài)軟件訪問(wèn)OPC是最簡(jiǎn)單的。2.用VB.NET開發(fā)客戶端訪問(wèn) 訪問(wèn)opc服務(wù)器,必須使用OPC基金會(huì)提供的OPCdaauto.dll。 學(xué)習(xí)過(guò)程,最好下載說(shuō)明書,OPC_20_Automation_Interface,網(wǎng)上可以下載。1) 注冊(cè)O(shè)PCdaauto.dll。 這個(gè)動(dòng)態(tài)連接庫(kù)文件可以網(wǎng)上下載。拷貝到C:WINDOWSSYSTEM32目錄, 打開運(yùn)行輸入框,輸入:regsvr32 C:WINDOWSSYSTEM32OPCDAAUTO.DLL如果是64位windows,則拷貝在C:WINDOWS
4、 syswow64。輸入: regsvr32 C:WINDOWS syswow64OPCDAAUTO.DLL。2) VS2015,新建一個(gè)項(xiàng)目。在項(xiàng)目-點(diǎn)擊“添加引用”,使用瀏覽,在COM,可以找到opc da automation的選項(xiàng),點(diǎn)擊確認(rèn),及完成添加。 添加成功,則資源管理器,應(yīng)用,可以看到OPCautomation的項(xiàng)目。3)編寫程序的過(guò)程 最簡(jiǎn)單的一個(gè)案例,如下圖,實(shí)現(xiàn)搜索服務(wù)器,連接服務(wù)器后,獲取ITEM的實(shí)時(shí)值。A) 查找服務(wù)器點(diǎn)擊“查找服務(wù)器”按鈕,地址不填,則列出本機(jī)的OPC服務(wù)器。如果填寫另一臺(tái)服務(wù)器地址,則列出另一臺(tái)電腦的服務(wù)器清單 如何知道計(jì)算機(jī)名?看網(wǎng)絡(luò)鄰居,至少
5、你應(yīng)該知道那臺(tái)電腦裝了OPC服務(wù)器。 Public Class Form1 Inherits System.Windows.Forms.Form Dim WithEvents AnOPCServer As OPCAutomation.OPCServer '用于搜索服務(wù)器,連接服務(wù)器 Dim WithEvents ConnectedGroup As OPCAutomation.OPCGroup '對(duì)應(yīng)后面添加組和項(xiàng) Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load End Su
6、b '以下程序:搜索OPC服務(wù)器,顯示在列表框上面 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CONNET.Click Try AnOPCServer = New OPCAutomation.OPCServer ListBox1.Items.Clear() Dim AllOPCServers As Object AllOPCServers = AnOPCServer.GetOPCServers(TextBox1.Text) '以括號(hào)用
7、文本框輸入,確定OPC服務(wù)器的路徑,空白表示搜索本機(jī),如果搜索內(nèi)部網(wǎng)其他電腦,則寫電腦的名稱,例如:電腦名稱 Dim i As Short For i = LBound(AllOPCServers) To UBound(AllOPCServers) ListBox1.Items.Add(AllOPCServers(i) Next i Catch ex As Exception MessageBox.Show("List OPC servers failed with exception: " + ex.Message, "SimpleOPCInterface Ex
8、ception", MessageBoxButtons.OK) '用于顯示執(zhí)行結(jié)果,如果失敗,則可以顯示失敗的原因。 End Try End SubB) 連接服務(wù)器、添加項(xiàng)和組 代碼如下: Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click '以下程序連接服務(wù)器連接 Try AnOPCServer.Connect(ListBox1.Text, TextBox1.Text) '第一個(gè)是參數(shù)是opc服務(wù)器名稱,第二個(gè)是電腦名稱。直接填寫也可以,例如:
9、AnOPCServer.Connect(“KEPware.KEPserverEx.V4”,“newPI”) Catch ex As Exception MessageBox.Show("OPC server 連接失敗 : " + ex.Message, "OPCSample", MessageBoxButtons.OK) End Try '以下程序添加group和item Try AnOPCServer.OPCGroups.DefaultGroupIsActive = True '使其活動(dòng),照抄就行。 AnOPCServer.OPCGro
10、ups.DefaultGroupDeadband = 0 '照抄就行。 ConnectedGroup = AnOPCServer.OPCGroups.Add("GROUP1") '添加GROUP,名稱自己隨便填。 ConnectedGroup.UpdateRate = 100 '更新速率,我實(shí)驗(yàn)過(guò),值越小,獲取ITEM值越靈敏。 ConnectedGroup.IsSubscribed = True '采用訂閱的方式,后面用DATACHANGE的事件獲取item值,與此對(duì)應(yīng)。 ConnectedGroup.OPCItems.AddItem(&q
11、uot;CHANNEL2.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&quo
12、t;, 5) ConnectedGroup.OPCItems.AddItem("CHANNEL2.DEVICE2.產(chǎn)量", 6) 'ADDITEM和ADDITEMS,兩種命令的格式不同,這里僅用最簡(jiǎn)單的additem命令,用最土的辦法添加了6個(gè)ITEM,兩個(gè)參數(shù),第一個(gè)是item名稱,必須和KEPSERVER建立的ITEM完全一致,第二個(gè)參數(shù)是CLIENTHANDLES,句柄。6個(gè)ITEM,我給的是1-6,隨便數(shù)字都可以,不重復(fù)即可。這個(gè)跟后面獲取值有直接關(guān)系! Catch ex As Exception MessageBox.Show("添加組和項(xiàng)失敗
13、: " + ex.Message, "OPCSample", MessageBoxButtons.OK) End Try End SubC)獲取 前面提到的訂閱的方式, 是OPC服務(wù)器主動(dòng)的方式,把有變化的ITEM,發(fā)送給客戶端。 需要使用DataChange的事件來(lái)獲取item值,OPC_20_Automation_Interface58頁(yè)。 假設(shè)兩個(gè)OPC服務(wù)器有2個(gè)item發(fā)生改變(綠燈,產(chǎn)量),那么會(huì)返回2個(gè)ITEMS, 返回的, 其中ITEMVALUES是返回的ITEM實(shí)際值,ClientHandles是返回的句柄值,句柄值和添加ITEM時(shí)定義的句柄對(duì)應(yīng)
14、。前面添加的"CHANNEL2.DEVICE2.產(chǎn)量",我定義的ClientHandles是6。如果數(shù)值發(fā)生變化,那么服務(wù)器返回的的值也是6。 實(shí)際返回值: NumItems=2ClientHandles(1)= 1,ITEMVALUES(1)=true ItemValues(1)=trueClientHandles(2)= 6,ITEMVALUES(2)= 65 ItemValues(2)=65 因?yàn)榉祷氐氖菙?shù)組,那么需要定義一個(gè)字符串的數(shù)組去接受ITEM值。 添加事件的方法: 源代碼如下: Private Sub ConnectedGroup_DataChange(Tr
15、ansactionID As Integer, NumItems As Integer, ByRef ClientHandles As Array, ByRef ItemValues As Array, ByRef Qualities As Array, ByRef TimeStamps As Array) Handles ConnectedGroup.DataChange Dim val(10) As String '用于接收ITEM值 Dim I As Integer '用于循環(huán) Dim k As Integer '用于循環(huán)的方式給TEXTBOX賦值,如果是textbox2-TEXTBOX7,有規(guī)律。就可以實(shí)現(xiàn) F
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《機(jī)械設(shè)計(jì)基礎(chǔ)》課件-第3章 平面連桿機(jī)構(gòu)
- 項(xiàng)鏈課件教學(xué)課件
- 農(nóng)村電商培訓(xùn):助力鄉(xiāng)村振興與農(nóng)業(yè)轉(zhuǎn)型
- 《旅行社經(jīng)營(yíng)管理》課件-第一章 概 述
- xx河流排水防澇設(shè)施建設(shè)項(xiàng)目風(fēng)險(xiǎn)管理方案(范文模板)
- 2025年新型全液壓鉆機(jī)項(xiàng)目合作計(jì)劃書
- 2025年自動(dòng)酸雨采樣器及測(cè)定儀項(xiàng)目發(fā)展計(jì)劃
- 健康飲食產(chǎn)業(yè)園項(xiàng)目資金申請(qǐng)報(bào)告(范文模板)
- xx河流排水防澇設(shè)施建設(shè)項(xiàng)目招商引資報(bào)告
- 2025年解熱鎮(zhèn)痛類藥物項(xiàng)目發(fā)展計(jì)劃
- T/CQAP 3014-2024研究者發(fā)起的抗腫瘤體細(xì)胞臨床研究細(xì)胞制劑制備和質(zhì)量控制規(guī)范
- 初中體育教學(xué)中德育教育的現(xiàn)狀、問(wèn)題與突破路徑探究
- 基層供銷社管理制度
- 農(nóng)業(yè)供應(yīng)鏈管理考試試題及答案
- 人行雨棚施工方案
- 2025-2030中國(guó)晶圓鍵合系統(tǒng)行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略分析研究報(bào)告
- 從校園到職場(chǎng):新員工角色轉(zhuǎn)換與職業(yè)化塑造
- 奶茶服務(wù)協(xié)議合同
- 學(xué)生食堂維修改造工程施工組織設(shè)計(jì)
- 2025年章魚小丸子項(xiàng)目可行性研究報(bào)告
- “中小學(xué)生每天至少2小時(shí)體育活動(dòng)”的價(jià)值追求與實(shí)現(xiàn)路徑研究
評(píng)論
0/150
提交評(píng)論