和利时OPC基础应用知识.ppt_第1页
和利时OPC基础应用知识.ppt_第2页
和利时OPC基础应用知识.ppt_第3页
和利时OPC基础应用知识.ppt_第4页
和利时OPC基础应用知识.ppt_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

2019/11/21,1,OPC基础应用知识,员工内部培训系列之三,工业自动化事业部SmartPro技术支持组,主讲人:熊辉,2019/11/21,2,概述,OPC的基本定义OPC的概要OPC的数据访问对象模型自动化接口开发OPC应用程序的基本步骤RDK开发OPC服务器的基本步骤OPC的配置OPC在SmartPro系统中的应用组态,2019/11/21,3,词汇,OPC:OLEForProcessControlFA:FactoryAutomationPA:ProcessAutomationCOM:ComponentObjectModelDCOM:DistributeedComponentObjectModelDDE:DynamicDataExchangeDLL:DynamicLinkLibrary,2019/11/21,4,OPC的基本定义,2019/11/21,5,OPC的基本定义,监视应用程序,趋势应用程序,报表应用程序,设备A,驱动器A,设备B,驱动器B,设备C,驱动器C,设备D,驱动器D,1、各设备厂商接口不统一,则应用开发花费多2、系统共存驱动太多,导致系统维护困难。,2019/11/21,6,OPC的基本定义,监视应用程序,趋势应用程序,报表应用程序,设备A,OPC,设备B,OPC,设备C,OPC,设备D,OPC,OPC,OPC,OPC,1、OPC是为了不同供应厂商的设备和应用程序之间的软件接口标准化,使其数据交换更加简单化的目的而提出的;从而可以向用户提供不依靠于特定开发语言和开发环境的可以任意组合使用的过程控制软件组件产品。2、OPC系统是由提供数据采集服务的OPC服务器、OPC接口,以及OPC应用程序所构成。3、OPC服务器按照硬件厂商提供的硬件所开发,使之不依赖于硬件产品;同时利用VARIANT数据类型,可以不依存于硬件要求的数据类型,2019/11/21,7,OPC的基本定义,基于COM技术的OPCCOM是一种软件组件之间相互数据交换的有效方法。它不是一种计算机语言,而是于运行计算机、操作系统以及软件开发语言无关的,任意软件组件之间可以相互通信的二进制和网络通信标准DCOM:可以使COM组件分布在不同计算机上,并通过网络互相连接并互相交换数据。作为工业标准定义的COM接口,优点:1、设备开发者:使设备驱动器开发唯一2、应用程序开发:使用通用工具,不必开发特定的接口。3、用户:可以自由选择各种商业软件包,使系统成本大大降低,2019/11/21,8,OPC标准,2019/11/21,9,OPC使用范围,HMI/SCADAOPC应用程序,历史数据库,批处理OPC应用程序,OPC服务器,OPC服务器,OPC服务器,OPC服务器,设备A,设备B,PLC,设备C,设备D,1、与现场I/O数据的连接;2、与应用程序之间的连接,2019/11/21,10,OPC的概要-组成,OPC服务器:由硬件提供商或独立软件供应商提供,主要是提供过程数据。OPC代理-占位DLL:利用操作系统提供的通信功能进行数据交换,以实现应用程序和服务器之间的格式变换。OPC自动化包装DLL:将OPC定制接口变换成OPC自动化接口,从而更方便地实现对OPC服务器的访问。OPC应用程序:对OPC服务器提供的数据源进行访问,实现用户特定目的而开发的应用程序。,2019/11/21,11,OPC的概要-组成,OPC应用程序,包装DLL,代理-占位DLL,代理-占位DLL,OPC服务器,OPC自动化接口,OPC定制接口,计算机过程边界,OPC定制接口,OPC应用程序,包装DLL,代理-占位DLL,代理-占位DLL,OPC服务器,OPC自动化接口,OPC定制接口,计算机过程边界,OPC定制接口,本地访问,远程访问,2019/11/21,12,OPC的体系结构,2019/11/21,13,OPCServer对象接口,1、开发者必须完成非选项的接口实现!2、OPC标准仅仅提供接口的定义!3、客户端调用这些接口完成与OPCServer的连接!,2019/11/21,14,OPCGroup对象接口,2019/11/21,15,OPC的访问方式-同步访问,OPC应用程序,OPC服务器,调用开始,等待状态,调用同步访问方法,调用结束,时间,时间,1、读取指定OPC标签,应用程序一直等待到读取完成为止!2、写入指定OPC标签,应用程序一直等待到写入完成为止!3、开发简单,但是大批量数据处理则访问性能影响大!,2019/11/21,16,OPC的访问方式-异步访问,OPC应用程序,OPC服务器,调用开始,其他处理,调用异步访问方法,调用结束,时间,时间,异步访问完成事件,通信,事件结束,事件发生,1、读取/写入指定OPC标签,应用程序发出更新请求后立即返回,更新数据完成后发生数据变化事件!2、发出请求与访问完成事件处理是独立完成,因此需要使用事务管理,开发较难!,2019/11/21,17,OPC的访问方式-订阅方式,OPC应用程序,OPC服务器,事件发生,其他处理,数据变化事件,事件处理结束,时间,时间,数据变化事件,通知,事件结束,事件发生,通知,1、服务器定时更新OPC服务器的数据缓冲区。如果数据超出敏感区DeadBand则发生数据变化事件!2、降低数据精度!,2019/11/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,2019/11/21,19,OPC数据访问对象模型,2019/11/21,20,开发OPC应用程序的几种模式,第三方HMI软件自动化接口(VB、Delphi、Pb、Bc)第三方提供的RDK定制接口(VC)FacView支持OPC.H文件OPC_I.C文件,1、对于OPC服务器而言,其应该提供定制接口,自动化接口则可选2、FacView中的OPCServer只支持定制接口,2019/11/21,21,VB开发OPC应用程序的基本步骤,连接OPC服务器和建立OPC组添加OPC标签同步读写数据断开OPC服务器连接,2019/11/21,22,连接OPC服务器和建立OPC组,变量声明OptionExplicitOptionBase1opc对象的申明DimWithEventsMyOPCServerAsOPCServerDimMyOPCGroupsAsOPCGroupsDimMyOPCTestgrpAsOPCGroupDimMyOPCItemsAsOPCItemsDimMyOPCItemAsOPCItemDimiServerhandles()AsLongDimMyOPCBrowseAsOPCBrowserConststrProgID=OPCJ.SAMPLESERVER.1ConststrNode=“xionghui”,2019/11/21,23,连接OPC服务器和建立OPC组,PrivateSubCommand1_Click()IfMyOPCServerIsNothingThenSetMyOPCServer=NewOPCServerEndIfIfMyOPCServer.ServerState=OPCDisconnectedThenMyOPCServer.ConnectstrProgID,strNodeEndIfIfMyOPCGroupsIsNothingThenSetMyOPCGroups=MyOPCServer.OPCGroupsEndIfIfMyOPCTestgrpIsNothingThenSetMyOPCTestgrp=MyOPCGroups.Add(TESTGRP)EndIfEndSub,2019/11/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,2019/11/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),2019/11/21,26,断开与OPC服务器的连接,PrivateSubCommand3_Click()Dimierror()AsLongIfNotMyOPCItemsIsNothingThenMyOPCItems.Remove8,iServerhandles,ierrorEndIfSetMyOPCItems=NothingIfNotMyOPCTestgrpIsNothingThenMyOPCGroups.RemoveAllSetobjTestgrp=NothingEndIfIfNotMyOPCGroupsIsNothingThenSetMyOPCGroups=NothingEndIfIfNotMyOPCServerIsNothingThenIfMyOPCServer.ServerStateOPCDisconnectedThenMyOPCServer.DisconnectEndIfSetMyOPCServer=NothingEndIfEndSub,2019/11/21,27,VB开发OPCClient示例,2019/11/21,28,RDK开发OPC服务器的一般流程,开发包OPCServer封装的核心,VB/VC/DELPHI/CB开发环境通过RDK动态库进行API调用,智能仪表的通讯程序+OPC点的刷新函数,OPC其它客户程序通过OPC接口进行访问数据点,2019/11/21,29,RDK开发OPC服务器函数调用流程,InitOpcServer,设定服务器信息的函数SetServerStateSetMatchCaseSetMajorVersionSetMinorVersion,注册回调函数EnableWriteNotificationEnableDisconnectNotificationEnableDeviceRead,创建建点:CreateTag设定点属性:SetTagProperties,更新点的数据UpdateTag,删除点RemoveTag,结束时调用UnInitOpcServer,2019/11/21,30,VB开发OPCServer示例,2019/11/21,31,OPC的配置-预备,1、远程连接所需的软件(当作为远程OPC服务器使用时),2、OPC专用用户服务器和客户同属一个计算机域:不需要添加。服务器和客户不属于一个计算机域,但是控制系统要求安全性,则需要添加用户服务器和客户同属一个工作组,且控制系统不需要安全性,则不需要添加要求作为OPC服务器的身份标识的指定用户,则需要添加。注意:如果两台计算机上存在用户名和密码相同的用户,则两台计算机可以相互认证!,2019/11/21,32,没有分布式COM安全机制的设置,2019/11/21,33,具有分布式COM安全机制的设置,2019/11/21,34,COM配置实用程序,具有计算机管理员权限的用户登录从菜单“开始”运行“,输入DCOMCNFG.EXE,确定后启动即可!,2019/11/21,35,DCOM设置图-1,2019/11/21,36,DCOM设置图-2,2019/11/21,37,DCOM设置图-3,2019/11/21,38,DCOM设置图-4,2019/11/21,39,DCOM设置图-5,2019/11/21,40,DCOM设置图-6,2019/11/21,41,DCOM设置图-7,2019/11/21,42,DCOM设置图-8,2019/11/21,43,远程OPC在SmartPro系统中的应用,FacView(v3.1PreviousVersion)作为OPCServer特点:DA1.0ProgID:CITECT.OPC或CITECT.OPC.1安装随同FacView一同安装或执行FacViewBinCtOpc32.reg和regsvr32.exeopcproxy.dll设置DCOMCNFG.EXE按照前述内容,根据具体情况设置项名:提供给OPCClient的是本工程中的标签点名,2019/11/21,44,本地OPC在SmartPro系统中的应用,FacView(v3.1PreviousVersion)作为OPCServer特点:DA1.0ProgID:CITECT.OPC或CITECT.OPC.1安装随同FacView一同安装或执行FacViewBinCtOpc32.reg和regsvr32.exeopcproxy.dll项名:提供给OPCClient的是本工程中的标签点名,2019/11/21,45,OPC在SmartPro系统中的应用,FacView作为OPC客户通信设置新建IO服务或挂在某个已存的IO服务下。设置主板主板名称:自定义主板类型:OPC地址:0或500选项:OPCSERVER所在计算机名/本地不填!Thein-process(DLL)server.Thelocal(EXE)serverTheremotecomputerserver.设置端口主板名:见前定义端口名:自定义其他:空设置IO设备设备名:自定义地址:OPCSERVER的ProgID协议:OPC设备号:唯一数字标签数据库地址:直接填写OPCSERVER提供的项格式,2019/11/21,46,如何获取OPCServer的ProgID?,使用标准客户端工具,如OPCCLIENT.EXE,2019/11/21,47,如何获取OPCServer的项格式?,使用标准客户端工具,如OPCCLIENT.EXE,1、如果采用分层结构,则注意格

温馨提示

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

评论

0/150

提交评论