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

下載本文檔

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

文檔簡介

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

2、、自-S2-=1| AddrviHJ廠Ecan£ Ealing劭EIMNcfWtMriDIkhr1IMN&h#ijracF寫hs1DCrtiu100Nfl*#UVDQlilRixiwIUaiwfiag %e I& 5PC i>i.-ktf+nr-T=H,F(xiàn)lu Edb(H ft fc 史,*JDme1 Tiel*Ud口Hah UfKEFSffVWti0J31G-35-07LZ3:5amult Ui«rME 因Erfl網(wǎng)翼MP口Eau片 Uw*XE 書O h r* piLUlTllTDriiuh Umh尊畤"Kp:的1+QFI14W;H口eW

3、UwqE招ee?EO ” . iLlrfWDrtuhr Um*sCEiSerwwgO2019HHhM:L4d3:lKlDeiuh UserCt*5er¥erB0 翻1HM*IK5 dHi口 1川上|JkfRMcefEQ 1msnqnL4.«rtM口Tu" U2Mr5ub-'sH 1OzoiE-as KL4C3:90口W-utt User虹呻brefH。叩1弟旗MDtluk UkKWStrwfi'B醫(yī)由當(dāng)U5 做5.| 如mHB W <EFBrt-fiEPSiMWFi.V4 Datal-ogr 5yst«7iChmtl立即配tlQ|

4、CkflnnlZOnn l._Snlwi _J C*ianr±l22*nr:e2Qj亡詢,11121E3_:曰/EIfcm心C'il» Type06尤-&£ 口xri =ShtFt991©Ch一色工口 zcel產(chǎn)貴i務(wù)ort羽口 E2.q -,產(chǎn)總4 TlW3口介燈中£ DemlWCBodnarQddhel 工口 eRielJ|JCHdoedri口價1 電務(wù)11CM14TrtfQqm50與加1H4) ZD19-QMI514£Etl5012Mg-好的。通亨仍加O 2DlS-D5-aD1UJQ3 5HfcrntAMrI f

5、WV XMnwIJ.OipMfvj1 49 1KE hwrv 4EW Adofd L3 9 giQup 'EhanneLIZeid.jSfSeaf.Addpd 1 *uey 即gdj。"Qbnd上 口門52:qrMp 1apwanp K.f P$# rwif id ¥1 , Addfid 4 ii*ME g ggup 匚口比L%igar .ll»L2 )設(shè)置DCOMg個步驟很重要,具體的設(shè)置方法,網(wǎng)上很多資料,按步驟設(shè)置就可以。我原來按照組態(tài)王提供的方法,總是不成功,后來上了微軟網(wǎng)站,按微軟提供的方法設(shè)置肯定可以成功。完成了以上兩步,你的電腦就變成 OPC

6、R務(wù)器了。二.訪問服務(wù)器1 .利用組態(tài)軟件訪問OPCR務(wù)器如果用組態(tài)王訪問,那就太簡單了,左邊列表,選 opc服務(wù)器,點(diǎn)擊添加服務(wù)器,就會彈出一個窗口,把本機(jī)的 OPC!務(wù)器列成清單。在清單里面就可以發(fā)現(xiàn)KEPSERVER名稱:OPCOPC本機(jī)新建KEPv;白KEPware.KEPserverEx.V4,選擇,然后按確定,就完成了添加服務(wù)器。ICinVi Vi 1PCA.ut a. OFCServerKEF ware KEPS erverEK. Y4national Inztr'imsnts. BIOFCSei-vt-z. V5方斗的IHMav卡晶亞tLH.亍-宜仁 同到底! * 忸*

7、 f配H10曜弓重 :白m4懺率w =與 S!E9lg*)L-= JOV1 COM2 I i-3 DDE teic+ n j ” h> 我 幽冏宓訊一 余金f七?=- f.;.-國一訪 H 三 ms=:-口子£5位麗 3;百位 - C弟二至三 .> 訂Erg e方 式llitt售電戛)去些瑾/ 次日加_J wMaUta-吟訐2 0-Na3一鼻 WHSI* COM li尊U當(dāng)日對由Q*嘴”3 川口,DOE事上& 對3餐必 KMefi啻好PS*a m口忌走回gx電五TU!: -$fcJS“Eei-步弓QLK曰8H »*Biratf改口三 口 Webl3* m

8、書a廿 v«Enn«修珀王衛(wèi)!Jf 書WF里凈回 女行 修的 胃加 等叼H 七, T-S 知的W 酹3問必 % ifiMFFe*嗡標(biāo)父中 哈 SffWiW 啥牙一p?«3pS2MXE 事'ID'1 上 了日口 KK1J1JI41=1«17在組態(tài)王的數(shù)據(jù)詞典,新建變量,I/O變量,連接設(shè)備選擇 OPC服務(wù)器,寄存器可以看到 KEPserver的變量(item),建立之后,就可以利用組網(wǎng)王,開發(fā)監(jiān)控應(yīng)用,組態(tài)軟件的使用在此就不 贅述了,總之,利用組態(tài)軟件訪問 OPO最簡單的。2 .用VB.NEBF發(fā)客戶端訪問訪問opc服務(wù)器,必須使用OPCS

9、金會提供的OPCdaauto.dll。學(xué)習(xí)過程,最好下載說明書,OPC_20_Automation_Interface »,網(wǎng)上可以下載。OLE for Process ControlData Access Automation Interlace StandardVersion 2.01January, 6, 19991)注冊O(shè)PCdaauto.dll。這個動態(tài)連接庫文件可以網(wǎng)上下載。拷貝到 C:WINDOWSSYSTEM32 目錄,打開運(yùn)行輸入框,輸入:regsvr32 C:WINDOWSSYSTEM32OPCDAAUTO.DLL如果是 64位 windows,則拷貝在syswo

10、w64。輸入:syswow64OPCDAAUTO.D LL 就 k W nd(刖拌審區(qū)抵,啊6人酷名的,為HF7產(chǎn)樽定打程中 文噂器 玄虛力崢口&(黃酉- fJJF(O):fKdHLVhQ.dll-'三用3卸'.瓜4走比1M.的 I。詠2) VS2015,新建一個項目。在項目-點(diǎn)擊“添加引用”,使用瀏覽,在COM可以找到opc da automation的選項,點(diǎn)擊確認(rèn),及完成添加。添加成功,則資源管理器,應(yīng)用,可以看到 OPCautomation的項目ITEM的實時值。3)編寫程序的過程最簡單的一個案例,如下圖,實現(xiàn)搜索服務(wù)器,連接服務(wù)器后,獲取A)查找服務(wù)器點(diǎn)擊“查

11、找服務(wù)器”按鈕,地址不填,則列出本機(jī)的 OPCK務(wù)器。如果填寫另一臺服 務(wù)器地址,則列出另一臺電腦的服務(wù)器清單腿努器地址C他I蛇,如祖址)登攏冊CFC服時器|iMSttU m®納,嘉時at)"meji 口f 匚Ft AuM: 口. UFCSwty打SPw-u?s. E3PS 叁rgrEw. W4rastrunitntx. HICFCStrvsTi.逐揀斷J1隹接斷開如何知道計算機(jī)名?看網(wǎng)絡(luò)鄰居,至少你應(yīng)該知道那臺電腦裝了OPC®務(wù)器Public Class FormlInherits System.Windows.Forms. FormDim WithEvents

12、 AnOPCServer As OPCAutomation. OPCServer '用于搜索服務(wù)器,連接服務(wù)器Dim WithEvents ConnectedGroup As OPCAutomation. OPCGroup '對應(yīng)后面添加組和項Private Sub Form1_Load(sender As Object , e As EventArgs ) Handles MyBaseLoadEnd Sub以下程序:搜索OPC艮務(wù)器,顯示在列表框上面Private Sub Button1_Click( ByVal sender As System. Object , ByVa

13、l e As System. EventArgs) Handles CONNET.Click TryAnOPCServer = NewOPCAutomation. OPCServerListBox1.Items.Clear()Dim AllOPCServers As ObjectAllOPCServers = AnOPCServer.GetOPCServers(TextBox1.Text)'以括號用文本框輸入,確定 OPC艮務(wù)器的路徑,空白表示搜索本機(jī),如果搜索內(nèi)部網(wǎng)其他電腦,則寫電腦的名稱,例如:電腦名稱Dim i As Short For i = LBound(AllOPCServ

14、ers) To UBound(AllOPCServers)ListBox1.Items.Add(AllOPCServers(i) Next i Catch ex As Exception MessageBoxShow("List OPCservers failed with exception: " + ex.Message, "SimpleOPCInterface Exception" MessageBoxButtons.OK)用于顯示執(zhí)行結(jié)果,如果失敗,則可以顯示失敗的原因。End TryEnd SubB)連接服務(wù)器、添加項和組 代碼如下:Priva

15、te Sub Button1_Click_1(sender As Object, e As EventArgs ) Handles Buttonl.Click 以下程序連接服務(wù)器連接 TryAnOPCServer.Connect(ListBox1.Text, TextBoxl.Text)'第一個是參數(shù)是 opc服務(wù)器名稱,第二個是電腦名稱。直接填寫也可以,例如: AnOPCServer.Connect( "KEPware.KEPserverEx.V4 ", "newPI ")Catch ex As ExceptionMessageBoxShow(

16、"OPC server 連接失?。?quot;+ ex.Message, "OPCSample" MessageBoxButtons .OK) End Try '以下程序添加group和item Try AnOPCServer.OPCGroups.DefaultGrouplsActive =True'使其活動,照抄就行。AnOPCServer.OPCGroups.DefaultGroupDeadband = 0'照抄就行。ConnectedGroup = AnOPCServer.OPCGroups.Add("GROUP。"

17、;'添加GROUP,稱自己隨便填。ConnectedGroup.UpdateRate = 100'更新速率,我實驗過,值越小,獲取 ITEMItt越靈敏。ConnectedGroup.IsSubscribed =True '采用訂閱的方式,后面用 DATACHANGEl獲取 item 值,與此對應(yīng)。ConnectedGroup.OPCItems.AddItem("CHANNEL2.DEVICE1剝,1)ConnectedGroup.OPCItems.AddItem("CHANNEL2.DEVICEf”, 2)ConnectedGroup.OPCIte

18、ms.AddItem("CHANNEL2.DEVICE篋燈”,3)ConnectedGroup.OPCItems.AddItem("CHANNEL2.DEVICE 借電",4)ConnectedGroup.OPCItems.AddItem("CHANNEL2.DEVICE產(chǎn)量 1", 5)ConnectedGroup.OPCItems.AddItem("CHANNEL2.DEVICE2”, 6)'ADDITEMf口ADDITEMS兩種命令的格式不同,這里僅用最簡單的 additem命令,用最士的辦法添加了 6個ITEM,兩個

19、參數(shù),第一個是item名稱,必須和KEPSERVERi的ITEMS全一致,第二個參數(shù)是 CLIENTHANDLES,柄。6個ITEM,我給的是1-6 , 隨便數(shù)字都可以,不重復(fù)即可。這個跟后面獲取值有直接關(guān)系! ! ! !L OPC Quifk Clknc -元碌Hl " File Edit View Tgk Hdp口盲口。詈Gm1:- 嘀 Kb Pwa re, <LPSer7e"Ex.tern IDData TypeValu«=|J JDstaLtagg&rCiChann D evirel,產(chǎn)量Short9日:白 SystemC Channel,

20、Devicel,產(chǎn)阜 LShort34;Q Charne-12, SalternQ ChanneG.D evicel.rfiShort9&:_j Channcl2,Dcvi»l1 fhann NN 口 pvifp-,到TBonFiSn0:LJ Char ne 12 .c e l._Sycte<n電1 Cha nn聒口 oviccl,制(TBodenI: 口 Qhsrnel 2 £1 ei re2h a r»n f117Gd,才尸i.百中,Shortu二一 Charnel 2re 2 ,_SyTtennCatch ex As ExceptionMess

21、ageBoxShow("添力口組和項失敗:"+ ex.Message, "OPCSample" MessageBoxButtons.OK) End TryEnd SubC)獲取前面提到的訂閱的方式, 是OPC(務(wù)器主動的方式,把有變化的ITEM,發(fā)送給客戶端。 需要使用DataChange的事件來獲取tem 值,OPC_20_Automation_Interface » 58頁。4.4.5 OPCGioiip Evems+5左4.4.6 *1DfUa Change* 58假設(shè)兩個OP飆務(wù)器有2個item發(fā)生改變(綠燈,產(chǎn)量),那么會返回2個IT

22、EMS,返回的, 其中ITEMVALUES返回的ITEM實際值, ClientHandles是返回的句柄值,句柄值和添加ITEM寸定義的句柄對應(yīng)。前面添加的"CHANNEL2.DEVICE殍量",我定義的 ClientHandles是6。如果數(shù)值發(fā)生變化,那么服務(wù)器返回的的值也是6。實際返回值:NumItems=2ClientHandles(1)= 1, ITEMVALUES1) =trueItemValues(1) =trueClientHandles(2)= 6, ITEMVALUES2) = 65ItemValues(2) =65因為返回的是數(shù)組,那么需要定義一個字符串的數(shù)組去接受ITEM值。添加事件的方法:其 Fufmldb ;»:"EMiMrii源代碼如下:Private SubConnectedGroup DataChange(TransactionID As Integer , Numitems As Integer , ByRef ClientHandles As Array , ByRef ItemValues As Array , ByRef Qualities As Array , ByRef TimeStamps As Array )

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論