




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 软件包管理与依赖问题试题及答案
- 领导团队的沟通与协作技能试题及答案
- 软件设计师考试知识框架与试题及答案
- 软考网络管理员考试前的准备事项试题及答案
- 公司治理与风险管理的融合试题及答案
- 外国法律在国内诉讼中的适用问题试题及答案
- VB编程基础与应用试题及答案
- 呼吸道护理技术
- 修复与维护软件系统的最佳方法试题及答案
- 财经应用文写作课件:商务应用文
- 心理危机干预培训课件
- 2023年心血管内科学考博真题
- 保温杯生产工艺流程
- GB/T 6482-2007凿岩用螺纹连接钎杆
- 理正深基坑算例
- 公司休假销假单模板
- 《基于杜邦分析法的企业财务分析国内外文献综述》
- 全国高中数学联赛广东省预赛试题及解答
- DB33T 2226-2019 空气负(氧)离子观测与评价技术规范-纯图
- 高中政治教学的经验分享课件
- 办公室事故防范(典型案例分析)
评论
0/150
提交评论