《OPC数据访问》PPT课件.ppt_第1页
《OPC数据访问》PPT课件.ppt_第2页
《OPC数据访问》PPT课件.ppt_第3页
《OPC数据访问》PPT课件.ppt_第4页
《OPC数据访问》PPT课件.ppt_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

基于OPC的数据访问技术,?,基于驱动程序的访问,驱动访问的缺陷,问题的提出:如何读取设备中数据工业应用中,由于各应用系统的数据接口不标准,使得专用系统之间不能相互通信的现象相当普遍。由于应用程序提供者仅提供了有限的连接性,因而大大地缩小了过程和工业制造厂商对硬件和软件的选择范围。在缺少任何标准的情况下,设备供应商不得不各自开发自己专用的硬件和软件解决方案。,驱动访问的缺陷,问题的提出:对于开发典型监控程序软件的技术人员来说,有20%-30%的时间用于编写通讯驱动程序。而且每次,一个供应商需要将一个新的控制器投入市场销售时,所有的软件开发人员就不得不重新编写一个新的驱动程序。,应用软件的提供者花费太多的资金开发和维护专用接口,这不仅增加了用户的负担,而且在实际上并不能真正解决不同系统的互操作性。在某种意义上,用户被他们的软件提供者所控制。,OPC的解决方案,概述,OLEforProcessControl(Objectlinkingandembedding)now:OpenProcessControlOpenessProductivityandConectivityOPC(用于过程控制的OLE)是一个工业标准。OPC由一些世界上占领先地位的自动化系统和硬件、软件公司与微软(Microsoft)紧密合作而建立的。OPC定义了应用Microsoft操作系统在基于PC的客户机之间交换自动化实时数据的方法。管理这个标准的国际组织是OPC基金会。,架构实例:BeforeOPC,ABBPLCs,TlmcaniquePLCs,SiemensPLCs,MasterBusMMSdriver,XWAYdriver,Profinetdriver,visualization,historydatabase,架构实例WithOPC:ABBOperatorWorkplaceConnection,ABBAC800M,TlmcaniqueTSX,SiemensS7,AC800MOPCserver,SchneiderOPCserver,SiemensOPCserver,OperatorIT,applicationsoftwareiswrittenindependentlyfromthetypeofcontroller,Historian(InformationManager),MMS,XWAY,ProfiNet,thedriversstillexist,buttheclientsdonotseethemanymore,OPC技术基础,OPC技术基于微软的OLE(现在的ActiveX)、COM(部件对象模型)和DCOM(分布式部件对象模型)技术。OPC包括一整套接口、属性和方法的标准集,用于过程控制和制造业自动化系统。ActiveX/COM技术定义各种不同的软件部件如何交互使用和分享数据。不论过程中采用什么软件或设备,OPC为多种多样的过程控制设备之间进行通信提供了公用的接口。,OPC技术基础构成,onlybetweennodes,OPC技术简介,OPC对象属性服务器(OPCServer)组(OPCGroup)项(OPCItem)OPC变量标签中要体现以上三个属性,如SaabTankradar.Tankserver.1.T-1000.LL.CV,OPC服务器名,OPC组名,数据项名,对象及接口概述,OPC对象OPC对象有三个:服务器(OPCServer)、组(OPCGroup)和项(OPCItem)OPC接口,必需的接口定义,OPC服务器必需的接口有IunknownIOPCServerIOPCCommerIConnectionPointContainer,OPCServer对象接口,1、开发者必须完成非选项的接口实现!2、OPC标准仅仅提供接口的定义!3、客户端调用这些接口完成与OPCServer的连接!,OPCGroup对象接口,OPC的访问方式-同步访问,OPC应用程序,OPC服务器,调用开始,等待状态,调用同步访问方法,调用结束,时间,时间,1、读取指定OPC标签,应用程序一直等待到读取完成为止!2、写入指定OPC标签,应用程序一直等待到写入完成为止!3、开发简单,但是大批量数据处理则访问性能影响大!,OPC的访问方式-异步访问,OPC应用程序,OPC服务器,调用开始,其他处理,调用异步访问方法,调用结束,时间,时间,异步访问完成事件,通信,事件结束,事件发生,1、读取/写入指定OPC标签,应用程序发出更新请求后立即返回,更新数据完成后发生数据变化事件!2、发出请求与访问完成事件处理是独立完成,因此需要使用事务管理,开发较难!,OPC的访问方式-订阅方式,OPC应用程序,OPC服务器,事件发生,其他处理,数据变化事件,事件处理结束,时间,时间,数据变化事件,通知,事件结束,事件发生,通知,1、服务器定时更新OPC服务器的数据缓冲区。如果数据超出敏感区DeadBand则发生数据变化事件!2、降低数据精度!,OPC数据访问对象模型,服务器(OPCServer),组集合(OPCGroups),浏览器(OPCBrowser),OPCGroup,项集合(OPCItems),OPCItem,OPCGroup,组(OPCGroup),OPCItem,项(OPCItem),1、组织管理项2、客户据此决定刷新时间3、激活/禁止OPC4、分为PUBLIC和LOCAL。,1、代表和数据源的连接关系/DCS点在OPCSERVER中的地址。2、必须通过OPCGroup进行访问3、其数据类型为VARIANT4、一般包括Value、TimeStamp、Quality,OPC数据访问对象模型,开发OPC应用程序的几种模式,第三方HMI软件自动化接口(VB、Delphi、Pb、Bc)第三方提供的RDK定制接口(VC)FacView支持OPC.H文件OPC_I.C文件,1、对于OPC服务器而言,其应该提供定制接口,自动化接口则可选2、FacView中的OPCServer只支持定制接口,VB开发OPC应用程序的基本步骤,连接OPC服务器和建立OPC组添加OPC标签同步读写数据断开OPC服务器连接,连接OPC服务器和建立OPC组,变量声明OptionExplicitOptionBase1opc对象的申明DimWithEventsMyOPCServerAsOPCServerDimMyOPCGroupsAsOPCGroupsDimMyOPCTestgrpAsOPCGroupDimMyOPCItemsAsOPCItemsDimMyOPCItemAsOPCItemDimiServerhandles()AsLongDimMyOPCBrowseAsOPCBrowserConststrProgID=OPCJ.SAMPLESERVER.1ConststrNode=“xionghui”,连接OPC服务器和建立OPC组,PrivateSubCommand1_Click()IfMyOPCServerIsNothingThenSetMyOPCServer=NewOPCServerEndIfIfMyOPCServer.ServerState=OPCDisconnectedThenMyOPCServer.ConnectstrProgID,strNodeEndIfIfMyOPCGroupsIsNothingThenSetMyOPCGroups=MyOPCServer.OPCGroupsEndIfIfMyOPCTestgrpIsNothingThenSetMyOPCTestgrp=MyOPCGroups.Add(TESTGRP)EndIfEndSub,添加OPC标签,PrivateSubCommand2_Click()Dimstritemids(8)AsStringDimiclienthandles(8)AsLongDimierror()AsLongDimiAsIntegerIfMyOPCTestgrpIsNothingThenExitSubEndIfIfNotMyOPCItemsIsNothingThenIfMyOPCItems.Count0ThenExitSubEndIfEndIfMyOPCTestgrp.IsSubscribed=FalseMyOPCTestgrp.IsActive=TrueSetMyOPCItems=MyOPCTestgrp.OPCItemsFori=1To8strItemids(i)=MyTAG&iiClienthandles(i)=iNextCallMyOPCItems.AddItems(8,strItemids,iClienthandles,iServerhandles,ierror)EndSub,同步读写数据,/同步读取PrivateSubTimer1_Timer()Dimierrors()AsLongDimVtItemValues()AsVariantobjTestgrp.SyncReadOPCCache,8,iServerhandles,VtItemValues,ierrorsText2.Text=Format(VtItemValues(1),#.000)EndSub,/同步写入Dimierrors()AsLongDimivalue()AsVariantDimiAsIntegerReDimivalue(8)Fori=1To8ivalue(i)=iNextobjtestgrp.SyncWrite1,iserverhandles(),ivalue(),ierrors()Text2.Text=ivalue(5),断开与OPC服务器的连接,PrivateSubCommand3_Click()Dimierror()AsLongIfNotMyOPCItemsIsNothingThenMyOPCItems.Remove8,iServerhandles,ierrorEndIfSetMyOPCItems=NothingIfNotMyOPCTestgrpIsNothingThenMyOPCGroups.Remov

温馨提示

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

评论

0/150

提交评论