《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的解决方案,概述,OLE for Process Control (Object linking and embedding) now: Open Process Control Openess Productivity and Conectivity OPC(用于过程控制的OLE)是一个工业标准。 OPC由一些世界上占领先地位的自动化系统和硬件、软件公司与微软(Microsoft)紧密合作而建立的。 OPC定义了应用Microsoft操作系统在基于PC 的客户机之间交换自动化实时数据的方法。 管理这个标准的国际组织是OPC基金会。,架构实例:Before OPC,ABB PLCs,Tlmcanique PLCs,Siemens PLCs,MasterBus MMS driver,XWAY driver,Profinet driver,visualization,history data base,架构实例With OPC: ABB Operator Workplace Connection,ABB AC800M,Tlmcanique TSX,Siemens S7,AC800M OPC server,Schneider OPC server,Siemens OPC server,OperatorIT,application software is written independently from the type of controller,Historian (Information Manager),MMS,XWAY,ProfiNet,the drivers still exist, but the clients do not see them anymore,OPC技术基础,OPC技术基于微软的OLE (现在的Active X)、COM (部件对象模型)和DCOM (分布式部件对象模型)技术。 OPC包括一整套接口、属性和方法的标准集,用于过程控制和制造业自动化系统。 Active X/COM技术定义各种不同的软件部件如何交互使用和分享数据。 不论过程中采用什么软件或设备,OPC为多种多样的过程控制设备之间进行通信提供了公用的接口。,OPC技术基础构成,only between nodes,OPC技术简介,OPC对象属性 服务器(OPC Server) 组(OPC Group) 项(OPC Item) OPC变量标签中要体现以上三个属性,如 SaabTankradar.Tankserver.1. T-1000. LL.CV,OPC服务器名,OPC组名,数据项名,对象及接口概述,OPC对象 OPC对象有三个:服务器(OPC Server)、组(OPC Group)和项(OPC Item) OPC接口,必需的接口定义,OPC服务器必需的接口有 Iunknown IOPCServer IOPCCommer IConnectionPointContainer,OPC Server对象接口,1、开发者必须完成非选项的接口实现! 2、OPC标准仅仅提供接口的定义! 3、客户端调用这些接口完成与OPC Server的连接!,OPC Group对象接口,OPC的访问方式-同步访问,OPC应用程序,OPC服务器,调用开始,等待状态,调用同步访问方法,调用结束,时间,时间,1、读取指定OPC标签,应用程序一直等待到读取完成为止! 2、写入指定OPC标签,应用程序一直等待到写入完成为止! 3、开发简单,但是大批量数据处理则访问性能影响大!,OPC的访问方式-异步访问,OPC应用程序,OPC服务器,调用开始,其他处理,调用异步访问方法,调用结束,时间,时间,异步访问完成事件,通信,事件结束,事件发生,1、读取/写入指定OPC标签,应用程序发出更新请求后立即返回,更新数据完成后发生 数据变化事件! 2、发出请求与访问完成事件处理是独立完成,因此需要使用事务管理,开发较难!,OPC的访问方式-订阅方式,OPC应用程序,OPC服务器,事件发生,其他处理,数据变化事件,事件处理结束,时间,时间,数据变化事件,通知,事件结束,事件发生,通知,1、服务器定时更新OPC服务器的数据缓冲区。如果数据超出敏感区DeadBand则 发生数据变化事件! 2、降低数据精度!,OPC数据访问对象模型,服务器(OPC Server),组集合(OPC Groups),浏览器(OPC Browser),OPC Group,项集合(OPC Items),OPC Item,OPC Group,组(OPC Group),OPC Item,项(OPC Item),1、组织管理项 2、客户据此决定刷新时间 3、激活/禁止OPC 4、分为PUBLIC和LOCAL。,1、代表和数据源的连接关系/DCS点在OPC SERVER中的地址。 2、必须通过OPC Group进行访问 3、其数据类型为VARIANT 4、一般包括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组,变量声明 Option Explicit Option Base 1 opc对象的申明 Dim WithEvents MyOPCServer As OPCServer Dim MyOPCGroups As OPCGroups Dim MyOPCTestgrp As OPCGroup Dim MyOPCItems As OPCItems Dim MyOPCItem As OPCItem Dim iServerhandles() As Long Dim MyOPCBrowse As OPCBrowser Const strProgID = “OPCJ.SAMPLESERVER.1“ Const strNode = “xionghui”,连接OPC服务器和建立OPC组,Private Sub Command1_Click() If MyOPCServer Is Nothing Then Set MyOPCServer = New OPCServer End If If MyOPCServer.ServerState = OPCDisconnected Then MyOPCServer.Connect strProgID, strNode End If If MyOPCGroups Is Nothing Then Set MyOPCGroups = MyOPCServer.OPCGroups End If If MyOPCTestgrp Is Nothing Then Set MyOPCTestgrp = MyOPCGroups.Add(“TESTGRP“) End If End Sub,添加OPC标签,Private Sub Command2_Click() Dim stritemids(8) As String Dim iclienthandles(8) As Long Dim ierror() As Long Dim i As Integer If MyOPCTestgrp Is Nothing Then Exit Sub End If If Not MyOPCItems Is Nothing Then If MyOPCItems.Count 0 Then Exit Sub End If End If MyOPCTestgrp.IsSubscribed = False MyOPCTestgrp.IsActive = True Set MyOPCItems = MyOPCTestgrp.OPCItems For i = 1 To 8 strItemids(i) = “MyTAG“ & i iClienthandles(i) = i Next Call MyOPCItems.AddItems(8, strItemids, iClienthandles, iServerhandles, ierror) End Sub,同步读写数据,/同步读取 Private Sub Timer1_Timer() Dim ierrors() As Long Dim VtItemValues() As Variant objTestgrp.SyncRead OPCCache, 8, iServerhandles, VtItemValues, ierrors Text2.Text = Format(VtItemValues(1), “#.000“) End Sub,/同步写入 Dim ierrors() As Long Dim ivalue() As Variant Dim i As Integer ReDim ivalue(8) For i = 1 To 8 ivalue(i) = i Next objtestgrp.SyncWrite 1, iserverhandles(), ivalue(), ierrors() Text2.Text = ivalue(5),断开与OPC服务器的连接,Private Sub Command3_Click() Dim ierror() As Long If Not MyOPCItems Is Nothing Then MyOPCItems.Remove 8, iServerhandles, ierror End If Set MyOPCItems = Nothing If Not MyOPCTestgrp Is Nothing Then MyOPCGroups.RemoveAll Set objTestg

温馨提示

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

评论

0/150

提交评论