OPC基础应用知识.ppt

上传人:b****1 文档编号:1384009 上传时间:2022-10-21 格式:PPT 页数:51 大小:823KB
下载 相关 举报
OPC基础应用知识.ppt_第1页
第1页 / 共51页
OPC基础应用知识.ppt_第2页
第2页 / 共51页
OPC基础应用知识.ppt_第3页
第3页 / 共51页
OPC基础应用知识.ppt_第4页
第4页 / 共51页
OPC基础应用知识.ppt_第5页
第5页 / 共51页
点击查看更多>>
下载资源
资源描述

OPC基础应用知识.ppt

《OPC基础应用知识.ppt》由会员分享,可在线阅读,更多相关《OPC基础应用知识.ppt(51页珍藏版)》请在冰豆网上搜索。

OPC基础应用知识.ppt

2022/10/21,1,OPC基础应用知识,员工内部培训系列之三,工业自动化事业部SmartPro技术支持组,主讲人:

熊辉,2022/10/21,2,概述,OPC的基本定义OPC的概要OPC的数据访问对象模型自动化接口开发OPC应用程序的基本步骤RDK开发OPC服务器的基本步骤OPC的配置OPC在SmartPro系统中的应用组态,2022/10/21,3,词汇,OPC:

OLEForProcessControlFA:

FactoryAutomationPA:

ProcessAutomationCOM:

ComponentObjectModelDCOM:

DistributeedComponentObjectModelDDE:

DynamicDataExchangeDLL:

DynamicLinkLibrary,2022/10/21,4,OPC的基本定义,2022/10/21,5,OPC的基本定义,监视应用程序,趋势应用程序,报表应用程序,设备A,驱动器A,设备B,驱动器B,设备C,驱动器C,设备D,驱动器D,1、各设备厂商接口不统一,则应用开发花费多2、系统共存驱动太多,导致系统维护困难。

2022/10/21,6,OPC的基本定义,监视应用程序,趋势应用程序,报表应用程序,设备A,OPC,设备B,OPC,设备C,OPC,设备D,OPC,OPC,OPC,OPC,1、OPC是为了不同供应厂商的设备和应用程序之间的软件接口标准化,使其数据交换更加简单化的目的而提出的;从而可以向用户提供不依靠于特定开发语言和开发环境的可以任意组合使用的过程控制软件组件产品。

2、OPC系统是由提供数据采集服务的OPC服务器、OPC接口,以及OPC应用程序所构成。

3、OPC服务器按照硬件厂商提供的硬件所开发,使之不依赖于硬件产品;同时利用VARIANT数据类型,可以不依存于硬件要求的数据类型,2022/10/21,7,OPC的基本定义,基于COM技术的OPCCOM是一种软件组件之间相互数据交换的有效方法。

它不是一种计算机语言,而是于运行计算机、操作系统以及软件开发语言无关的,任意软件组件之间可以相互通信的二进制和网络通信标准DCOM:

可以使COM组件分布在不同计算机上,并通过网络互相连接并互相交换数据。

作为工业标准定义的COM接口,优点:

1、设备开发者:

使设备驱动器开发唯一2、应用程序开发:

使用通用工具,不必开发特定的接口。

3、用户:

可以自由选择各种商业软件包,使系统成本大大降低,2022/10/21,8,OPC标准,2022/10/21,9,OPC使用范围,HMI/SCADAOPC应用程序,历史数据库,批处理OPC应用程序,OPC服务器,OPC服务器,OPC服务器,OPC服务器,设备A,设备B,PLC,设备C,设备D,1、与现场I/O数据的连接;2、与应用程序之间的连接,2022/10/21,10,OPC的概要-组成,OPC服务器:

由硬件提供商或独立软件供应商提供,主要是提供过程数据。

OPC代理-占位DLL:

利用操作系统提供的通信功能进行数据交换,以实现应用程序和服务器之间的格式变换。

OPC自动化包装DLL:

将OPC定制接口变换成OPC自动化接口,从而更方便地实现对OPC服务器的访问。

OPC应用程序:

对OPC服务器提供的数据源进行访问,实现用户特定目的而开发的应用程序。

2022/10/21,11,OPC的概要-组成,OPC应用程序,包装DLL,代理-占位DLL,代理-占位DLL,OPC服务器,OPC自动化接口,OPC定制接口,计算机过程边界,OPC定制接口,OPC应用程序,包装DLL,代理-占位DLL,代理-占位DLL,OPC服务器,OPC自动化接口,OPC定制接口,计算机过程边界,OPC定制接口,本地访问,远程访问,2022/10/21,12,OPC的体系结构,2022/10/21,13,OPCServer对象接口,1、开发者必须完成非选项的接口实现!

2、OPC标准仅仅提供接口的定义!

3、客户端调用这些接口完成与OPCServer的连接!

2022/10/21,14,OPCGroup对象接口,2022/10/21,15,OPC的访问方式-同步访问,OPC应用程序,OPC服务器,调用开始,等待状态,调用同步访问方法,调用结束,时间,时间,1、读取指定OPC标签,应用程序一直等待到读取完成为止!

2、写入指定OPC标签,应用程序一直等待到写入完成为止!

3、开发简单,但是大批量数据处理则访问性能影响大!

2022/10/21,16,OPC的访问方式-异步访问,OPC应用程序,OPC服务器,调用开始,其他处理,调用异步访问方法,调用结束,时间,时间,异步访问完成事件,通信,事件结束,事件发生,1、读取/写入指定OPC标签,应用程序发出更新请求后立即返回,更新数据完成后发生数据变化事件!

2、发出请求与访问完成事件处理是独立完成,因此需要使用事务管理,开发较难!

2022/10/21,17,OPC的访问方式-订阅方式,OPC应用程序,OPC服务器,事件发生,其他处理,数据变化事件,事件处理结束,时间,时间,数据变化事件,通知,事件结束,事件发生,通知,1、服务器定时更新OPC服务器的数据缓冲区。

如果数据超出敏感区DeadBand则发生数据变化事件!

2、降低数据精度!

2022/10/21,18,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,2022/10/21,19,OPC数据访问对象模型,2022/10/21,20,开发OPC应用程序的几种模式,第三方HMI软件自动化接口(VB、Delphi、Pb、Bc)第三方提供的RDK定制接口(VC)FacView支持OPC.H文件OPC_I.C文件,1、对于OPC服务器而言,其应该提供定制接口,自动化接口则可选2、FacView中的OPCServer只支持定制接口,2022/10/21,21,VB开发OPC应用程序的基本步骤,连接OPC服务器和建立OPC组添加OPC标签同步读写数据断开OPC服务器连接,2022/10/21,22,连接OPC服务器和建立OPC组,变量声明OptionExplicitOptionBase1opc对象的申明DimWithEventsMyOPCServerAsOPCServerDimMyOPCGroupsAsOPCGroupsDimMyOPCTestgrpAsOPCGroupDimMyOPCItemsAsOPCItemsDimMyOPCItemAsOPCItemDimiServerhandles()AsLongDimMyOPCBrowseAsOPCBrowserConststrProgID=OPCJ.SAMPLESERVER.1ConststrNode=“xionghui”,2022/10/21,23,连接OPC服务器和建立OPC组,PrivateSubCommand1_Click()IfMyOPCServerIsNothingThenSetMyOPCServer=NewOPCServerEndIfIfMyOPCServer.ServerState=OPCDisconnectedThenMyOPCServer.ConnectstrProgID,strNodeEndIfIfMyOPCGroupsIsNothingThenSetMyOPCGroups=MyOPCServer.OPCGroupsEndIfIfMyOPCTestgrpIsNothingThenSetMyOPCTestgrp=MyOPCGroups.Add(TESTGRP)EndIfEndSub,2022/10/21,24,添加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,2022/10/21,25,同步读写数据,/同步读取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),2022/10/21,26,断开与OPC服务器的连接,PrivateSubCommand3_Click()Dimierror()AsLongIfNotMyOPCItemsIsNothingThenMyOPCItems.Remove8,iServerhandles,ierrorEndIfSetMyOPCItems=NothingIfNotMyOPCTestgrpIsNothingThenMyOPCGroups.RemoveAllSetobjTestgrp=NothingEndIfIfNotMyOPCGroupsIsNothingThenSetMyOPCGroups=NothingEndIfIfNotMyOPCServerIsNothingThenIfMyOPCServer.ServerStateOPCDisconnectedThenMyOPCServer.DisconnectEndIfSetMyOPCServer=NothingEndIfEndSub,2022/10/21,27,VB开发OPCClient示例,2022/10/21,28,RDK开发OPC服务器的一般流程,开发包OPCServer封装的核心,VB/VC/DELPHI/CB开发环境通过RDK动态库进行API调用,智能仪表的通讯程序+OPC点的刷新函数,OPC其它

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 畜牧兽医

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1