最简单的访问OPC服务器方法_第1页
最简单的访问OPC服务器方法_第2页
最简单的访问OPC服务器方法_第3页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、最简单的访问OPC服务器在网上搜了很多关于 VB.NET编写客户端访问OPC服务器的资料,同时也根据 KEPWARE提供 的案例源代码,同时进行研究,最后花了一个星期的时间进行研究,才粗略有了一点头绪,现共享出 来,希望后来的初学者有所帮助。一要建一个 OPC服务器1)安装OPC服务器软件,KEPware是大家比较常用的,我使用的是 Kepware OPC V4.54。 如图,添加CHANNEL,添加TAG.把Plc的点位添加进去,我建了 6个变量(item)。具体添加的方 法需要自行去学习。我添加的三菱 Q系列的PLC,PLC采用以太网通讯的方式,在局部网就可以 访问了。皿 KEPSeive

2、dEjc - C:'program fil«KEP&mei,iprDjtcts''i.siirnde.DpfJ ;Demo Epire Cll.5l:5DlhZ L二二口戸汇_|口囹 回 e EhrwUfl DvvlcilB Devct2£lwiioaNoimCi*ll*WigShM1WNift*口产WOTOFShorlLOGNoiwamimiABodbh1000Now<3*7W11BBocan1CWNoneMV0019Gbo«1100Naneibt-ECFiption弘 OK Quick Client -无關i «

3、Tig Njiaii- Addrtss DaIa Typ*Ajriv SeilingAleVi*w Tsais Hdp U L G ff *DaUTim*Uur啊am匕1 ScarceO2019»C>5719:1S:SGDefjuk UsftrKEStnrrEO:DiJ.n$-pT3阪If Us*rKE歸ij:1201-05-071 口金矯Ul#rCEPSK*rEO201&-05-D9Deuk UwrKEPSmrg02015-05-09Deffluk UwrKEPSmrE& 2O1&-O5-09DeFuK HrKEPSemrECI2O19-O5-D9De

4、fjiuk U&erK£ 踮 mwE0019 05 D914M15:D0Defjtutt Us#rKEPStmrEW艳切曲1Ul#rKEPSrvvrEO-201&-05-D9Deuk UwrKEPSmrEn】时些匕LB庙屮曲I二| J) 怕L旳供r旳”科门.-泌阳ftCh»n>n4lJLE>ti/ic«l匸 ha nne 12. De辰 el. stemJ Chanr*el2.Dr*Kff2宣 Channel2.Cta«e2._GyiteHiD时T:向402014 05 OS1413505-0914dW:33<20190

5、5-0914cO9:35O201MI5-0914dM:3502O19i-Ci5-iM14dB;35ReddyItem EDQ t 冏 n rwlZc 亡 1T3*OChanrw .叶笛 aChanrwD.Dwcel_*2 JChdniM<L2.iM£t.j«3T OCh»iir*l2.D*Ct.<sr O 匸电&BtaTypeShortShortShortExk时SheriVakie991船991011ETt*rtAdded gr口up1口 KE hvjird.KEKM¥*rEN-V4l,.Added 1 弓 Co grenjp &#

6、39;Ch-jnnrtS.DrflESZ.group '_DjlaLogger' to ,KEPware,1KEPSnwrEj<iV4,i Added 4 flems to group LD-fftaLogger'.ten2)设置DCOM,这个步骤很重要,具体的设置方法,网上很多资料,按步骤设置就可以。我原 来按照组态王提供的方法,总是不成功,后来上了微软网站,按微软提供的方法设置肯定可以成 功。完成了以上两步,你的电脑就变成 OPC服务器了。.访问服务器1利用组态软件访问OPC服务器。如果用组态王访问,那就太简单了,左边列表,选 opc服务器,点击添加服务器,就

7、会 弹出一个窗口,把本机的OPC服务器列成清单。在清单里面就可以发现 KEPSERVER的名称:OPCOPC如黔建KE Pwa re.选择,然后按确定,就完成了添加服务器I KingVi Vi ew. 1FCAuto. OPCServerKEFware. KEPServerEx. V4National Inztiuments NlOPCServei s. V5工世旧hcsisj亘百叩 工具m理帥凹迢醪同醪屜换13亡亠犁営工握丸由小直诈羽PS 运石报答历史 ra* 用户MAKE VIEWbi _i 如蔚画面F HQ非輕最zl夕卿,主G曲诅至 奔撓歩SS COM1& COM2瑙DDE 巳隹

8、占-I娈肆區瞎iS査汙盘廃口握峦配既l?芍圭熬苗C最 网袒亚C用户昭 $打印虽査回S旳1询筑理器<1碇理饭L旨 iSSit s CjOPC翼在组态王的数据词典,新建变量,I/O变量,连接设备选择 OPC服务器,寄存器可以看到KEPserver的变量(item),建立之后,就可以利用组网王,开发监控应用,组态软件的使用在此就不IS21配图ft密工 IlJU HiRtHJ1證闊Tli总3i 3*X"rffl营tffi科FW 馬更MAKIVIEW雳于谨ID心工橙礴如口商冒J曰左津a anEJEJ5Q歩吐鼻 Ei3 5ESJE口*«« 曰富) COML h<O

9、kQ 审WE时ISOKUJHiqf|.3iKa- -怦 MEI3(£fca.tTfiH岂羽昨I !B印尸現 军i扌苫IE E) 律厉诞用權 »nW6B 2J We«0 atN砒 rw9 H*=?EjSff«R71R2E2«4>Heraffl j飞.场却厂期氓e F曲SHI小 WHilTA-i-JHfttl fARMLI' KF; («#*? a沁口河CTP罵吕nmlj.DwEBi卞占叶或G.Dei锻LJ4靜圧 :h9nrlj.>eMil._$1r<n :h rr> 12. Dwi i: L"

10、>ari*eli.&eMWl 产1 卜"EDnk.LFfl;!:h 占 zelL Dwi oe L tT JiiNU.IMraiJHtT.;m.齐| JLrFFJ JTZrJli磁WWW污融厂畀力 换I厂的iffi询赘述了,总之,利用组态软件访问 OPC是最简单的2用VB.NET开发客户端访问访问opc服务器,必须使用OPC基金会提供的OPCdaauto.dll。学习过程,最好下载说明书,OPC_20_Automationnterface,网上可以下载。OLE for Process ContpolData Access Automation Interface Stf

11、indirdVersion 2*01Januitrfr 6, 19991)注册OPCdaauto.dll。这个动态连接库文件可以网上下载。拷贝到C:WINDOWSSYSTEM32 目录,打开运行输入框,输入:regsvr32 C:WINDOWSSYSTEM32OPCDAAUTO.DLL如果是64位windows,则拷贝在syswow64。输入:syswow64 OPCDAAUTO.DLL 。2) VS2015,新建一个项目。在项目-点击“添加引用”,使用浏览,在COM,可以找到opc daautomation的选项,点击确认,及完成添加。TimFgMYftl-v 卡 X Frml11£

12、;COM幸ifl引瞅鬧_勘映粳8阖屮擁圈駅同饰J良3曲则餉却存1S須戴叭btoRftiShik+Wl*AS4DMR口hJ rr:inhrtA«wwOMRON 如M T (ilMwry OMRONL6 T” UbrwrrOmAQN JCmvIsQviBbaM 3-d T歼 iRiEry DMR口百 Xmwb<p<iib«fufr JjQi 巧戸 卄険叮 CNt0fnC4ilH«MUw ID Typt Ubf码 OmFDri_CA_5lHr««l|irtFdKin L0 Tx UbrMY Omi <,i_Cxnw_Mad|iJn_

13、 !护1 vrnli b r* rj|-_£frta-_ 0mf«M4JIJrafdwf |# 1加 咸ID 展屮&MFHDtPCKc«Hpa«r iJ» T尸 Libw DrrwornAwwMInlwfasv-l Lb F|q>» Lrary 3# T时 Ub<*O IDQ OK. CuA Jkriofltiar! Wrapper 2.02 dpefnam L-l r)(p* Lifcrif 即护M前叶*締P«£k*f|4r md DvphrmTrf Wli md DvpIainwTTl Pt

14、KrHiSlwwGui :*£tw«X Satnol RK* 2# Type % 巧 PCFRlrr LQ盲)rp* Ub> 寸 PDftYBvHrHlb- Ld< T|fp« Lihraqi PPFMmI jQ T屮為鼻jyTULDLDULDLDL1ULDL0 :LdU10Ulien WripptrLDI Ui nOnwwi CammvdehMwari'AWWOmrcn EbcDTKH LEdL卑±M4:m黒决方空贾薄昏里器+半M金也H匕劭向严亠摆索解决方实贸慕巷理器忙胡十:)P *尸 My ProjectJ -引用s=分折as-

15、OPCAutomation* System SystefnCo-reSystemDats Sysiem.Data. Dat-aSctExtensio ns Systern-Deploynnent SysterrLDrawingi- System.Net. Http|h> stem.Wiindcws. Formst Sy&tefn-Xml System.XmLUnqQ App.unfigb 国 FormlibITEM的实时值。3)编写程序的过程最简单的一个案例,如下图,实现搜索服务器,连接服务器后,获取船爵融1址I、电蛔名或9地lb连歿断开A)查找服务器点击“查找服务器”按钮,地址

16、不填,则列出本机的OPC服务器。如果填写另一台服务器地址,贝例出另一台电脑的服务器清单朋劳器地址貞电脑宕,或切地业)KingView. ¥i w. 1PC#iUt*> OPCSsrverKEPwai-e. ISFServerEx. V4HtUontl Innru*<ni. NIQFCStrvtri. V5断开如何知道计算机名?看网络邻居,至少你应该知道那台电脑装了OPC服务器PubIic CIass FormlInherits System.Windows.Forms. FormDim WithEvents AnOPCServer As OPCAutomation. OP

17、CServer '用于搜索服务器,连接服务器Dim WithEvents ConnectedGroup As OPCAutomation. OPCGroup '对应后面添加组和项Private SubForm1_Load(sender As Object , e As EventArgs ) HandIes MyBaseLoadEnd Sub'以下程序:搜索OPC艮务器,显示在列表框上面Private SubButt on 1 Click(ByVai sen der As System. Object, ByVai e As System. Eve ntArgs ) H

18、an dies CONNET.CIickTryAnOPCServer =NewOPCAutomation. OPCServerDimAIIOPCServers As ObjectAIIOPCServers = AnOPCServer.GetOPCServers(TextBoxl.Text)'以括号用文本框输入,确定 OPC艮务器的路径,空白表示搜索本机,如果搜索内部网其他电脑,则写电脑的名称,例如:电脑名称Dimi As ShortFor i = LBou nd(AIIOPCServers) To UBou nd(AIIOPCServers)Next iCatch ex As Exce

19、ptionMessageBoxShow("List OPCservers faiIed with exception: " + ex.Message, "SimpIeOPCInterface Exception" MessageBoxButtons.OK)'用于显示执行结果,如果失败,则可以显示失败的原因。End TryEnd SubB) 连接服务器、添加项和组代码如下:Private SubButton1_CIick_1(sender As Object, e As EventArgs) HandIes Buttonl.CIick'以下

20、程序连接服务器连接TryAnOPCServer.Connect(ListBox1.Text, TextBoxl.Text)'第一个是参数是 opc服务器名称,第二个是电脑名称。直接填写也可以,例如:AnOPCServer.Connect( “ ”,“WnewPI ” )Catch ex As ExceptionMessageBoxShow("OPC server 连接失败:"+ ex.Message, "OPCSampIe" MessageBoxButtons.OK)End Try以下程序添加group和item使其活动,照抄就行。'照抄

21、就行。"'添加GROUP名称自己随便填。ConnectedGroup.UpdateRate = 100'更新速率,我实验过,值越小,获取ITEM值越灵敏。ConnectedGroup.lsSubscribed =True'采用订阅的方式,后面用 DATACHANG!事件获取item值,与此对应Co nn ectedGroup.OPCItems.Addltem("CHANNEL2.DEVICE 绿灯",1)Co nn ectedGroup.OPCItems.Addltem("CHANNEL2.DEVICE产量",2)Co

22、nn ectedGroup.OPCItems.Addltem("CHANNEL2.DEVICE黄 灯",3)Co nn ectedGroup.OPCItems.Addltem("CHANNEL2.DEVICE省电",4)Co nn ectedGroup.OPCItems.AddItem("CHANNEL2.DEVICE产量 1", 5)产量",6)'ADDITEM和ADDITEMS两种命令的格式不同,这里仅用最简单的 additem命令,用最土的办法添加了 6个ITEM,两个 参数,第一个是item名称,必须和KEP

23、SERVER立的ITEM完全一致,第二个参数是 CLIENTHANDLE句柄。6个ITEM,我给的是1-6, 随便数字都可以,不重复即可。这个跟后面获取值有直接关系! !r OPC Quick Client -无题 File Edit View Tools Help21曲R匚汕脸窗需电昱X爲 KEre. KEPServerEx.V4Item IData TypeValue口 _DatJaLoggerO 匚ha nn el 2.De<celgShort98L 鏈.SystemQ匚也welZDevgl-产冒1Short341 二J Cha nnel2B_SystemCChanntl2.Dei

24、icelJ?:Eg2She fl9S_J Channell.DcvicclQ Cha nn s 2,Devi'relBoolean0L 爾 Cha nnelZrDevi celr_SystemCChann elBoolean1O Cha nnel2.Devi ce2a Cha nn el 2rDevfcel-Short11Qj Cha nnel2tDevi ce2u_SysternCatch ex As ExceptionMessageBoxShow("添加组和项失败:"+ ex.Message, "OPCSample" MessageBoxBu

25、ttons.OK)End TryEnd SubC)获取前面提到的订阅的方式,是OP服务器主动的方式,把有变化的ITEM,发送给客户端。需要使用DataChange的事件来获取item 值,0PC_20_Automationnterface58页。I- 58假设两个OP服务器有2个item发生改变(绿灯,产量),那么会返回2个ITEMS,返回的, 其中ITEMVALUE是返回的ITEM实际值, ClientHandles是返回的句柄值,句柄值和添加ITEM时定义的句柄对应。前面添加的"CHANNEL2.DEVICEF量",我定义的 ClientHandles是6。如果数值发生

26、变化,那么服务器返回的的值也是6。实际返回值:NumItems=2Clie ntHa ndles(1)= 1,ITEMVALUE(1)=trueItemValues(1)=trueClie ntHa ndles (2)= 6,ITEMVALUE( 2)= 65ItemValues(2) =65因为返回的是数组,那么需要定义一个字符串的数组去接受ITEM值添加事件的方法:Xgt. Sit: |h比十07住.口 眸匕【EruMT 2 ftnQPCStiveE-Bucffinwcc 11F.TMrrtlTEKl HatKI ”3?k* DjitiOhi'ij*fr JMncCincfi&mphW ¥ Afnc R e«d£ o»pirt»* MffrtWriwa 冊站宙f DMuChiHt-源代码如下:Private

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论