OPC技术在监控系统中的应用_第1页
OPC技术在监控系统中的应用_第2页
OPC技术在监控系统中的应用_第3页
OPC技术在监控系统中的应用_第4页
OPC技术在监控系统中的应用_第5页
已阅读5页,还剩3页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、OPC技术在监控系统中的应用何胜方0、引言随着计算机科学技术、 工业控制等方面的新技术的迅速发展, 计算机监控系统由早期的 集中式监控向全分布式的方向发展, 计算机监控系统软件也从早期面向功能的系统, 随着面 向对象技术、 分布式对象计算、 多层次 Client/Server 技术的成熟, 发展为面向具体现场设 备为特征的面向对象的计算机监控系统。 同时, 计算机监控系统规模越来越大, 不同厂家生 产的现场设备的种类在不断的增加,由于不同厂家所提供的现场设备的通讯机制并不相同, 计算机监控系统软件需要开发的设备通信驱动程序也就越来越多,而基于COM/DCO技术的OPC技术,提供了一个统一的标准

2、,不同厂商只要遵循OP(技术标准就可以实现软硬件的互操作性。正在进行的马钢港务原料总厂三期工程中将采用CIMPLICITY OPC技术实现管控一体化系统。笔者正是基于此背景,结合曾参加的实际工程项目介绍此项技术的应用。1、OPC简介1.1 OPC 的概念及技术优势OPC( OLE for Process Control )是为过程控制设计的 OLE技术,由一些世界上占领先 地位的自动化系统和硬件、软件公司与微软(Microsoft )紧密合作而建立的, OPC基金会负责OPC规范的制定和发布。 OPC提出了一套统一的标准,采用 CLIENT/SERVER模式,针对 硬件设备的驱动程序由硬件厂商

3、或专门的公司完成,提供具有统一OPC接口 SERVER程序,软件厂商按照 OPC标准访问SERVER程序,即可实现与硬件设备的通信。与传统的方式相比,OPC技术具有以下优势: 1)硬件厂商熟悉自己的硬件设备,因而设备驱动程序性能更可靠、效率更高。2)软件厂商可以减少复杂的设备驱动程序的开发周期,只需一套遵循OPC标准的程序就可以实现与硬件设备的通信,并可把人力、物力资源投入到系统功能的完善中。3)可以实现软硬件的互操作性。 OPC把软硬件厂商区分开来,使得双方的工作效率有了很大的提高,因此,OPC技术得到了广大软硬件厂商的支持,并迅速发展。1.2 OPC 技术的本质 COM/DCOM随着计算机

4、网络技术的发展, 计算机监控系统也普遍的采用了分布式结构, 因而系统的 异构性是一个非常显著的特点。 OPC技术本质是采用了 Microsoft的COM/DCOM&件对象模 型/分布式组件对象模型)技术,COM主要是为了实现软件复用和互操作,并且为基于WINDOWS的程序提供了统一的、可扩充的、面向对象的通讯协议,DCOM是 COM技术在分布式计算领域的扩展,使 COM支持在局域网、广域网甚至 In ternet上不同计算机的对象之间的通讯。1.3 OPC规范基于COM/DCO技术的OPC采用客户/服务器结构,为各厂家提供了一个公用的数据交换 标准和规范,各个硬件设备厂家为其设备提供一个符合O

5、PC规范接口的服务器, 其他应用程序通过OPC接口对OPC服务器的访问实现对硬件设备的读写,由此软件开发者只需要开发一套OPC CLIENT程序,而不需要了解各硬件设备的通讯协议,也不需要为市场上几百种的硬 件设备写专门的驱动程序。OPC规范主要包括 OPC服务器(SERVER和OPC应用程序(CLIENT)两部分。其中一个 OPC CLIENT可以连接一个或多个 OPC服务器,而多个 OPC CLIENT也可以同时连接一个 OPC 服务器,如图1所示。图 1: OPC CLIENT/OPC SERVE关系2、OPC服务器组成OPC服务器由3类对象组成:服务器(SERVER)、组(GROUP

6、)、和数据项(ITEM )。 服务器对象保存服务器和服务器作为OPC组对象容器的所有信息。OPC组对象保存组对象的信息,并提供组织OPC数据项的机制。OPC组对象为客户提供了组织数据的一种方法。例如,一个组可能代表一个特殊设备的数据项。OPC CLIENT可以通过组对象来读写数据,并可以设定OPC服务器应该提供给 OPC CLIENT的数据更新 速率。OPC规范定义了 2种组对象:公共组和私有组。公共组由多个客户共享,局部组只 隶属于一 OPC客户。全局组对所有连接在服务器的应用程序都有效,而私有组只能对建立 他的CLIENT有效。在一个 SERVER中,可以有若干个组。OPC数据项代表到 O

7、PC服务器的数据源连接,并不是数据源,数据项是读写数据的 最小逻辑单位(在实际应用中,可能是物理设备的寄存器或寄存器的某一位),数据项不提供对外接口,不能作为单独的对象供OPC Client访问,必须隶属于某一个组,所有对 OPCOF服务器本地、 进程内、远程数据项的访问必须经过包含 OPC数据项的组对象,即必须通过组对象才可访问到OPC数据项。在一个组对象中,客户可加入多个OPC数据项。每个数据项包括3个变量:值(Value )、品质(Quality) 和时间戳(Time Stamp )。数据值是以 Variant形式表示的。图 2: Group/ltem 关系3、OPC CLIENT应用程

8、序3.1 OPC 接口OPC规范有两种接口方式:自定义接口(Custom In terface)和自动化接口( Automation In terface)。自定义接口是一组 COM接 口,主要用于采用C+语言的的应用程序开发;自动化接口是自动化的OLE接口,主要用于采用 VB, DELPHI等基于脚本编程语言的应用程序开发。图3:两种接口的 OPC服务器通信方式对于客户端应用程序的开发,采用自定义接口的方式运行效率高,但开发难度大;采用自动化接口的方式运行效率低,但开发简单。利用这两种接口与OPC服务器的通信见图 3。对于分布式的对象上的 OPC客户程序的开发,OPC标准采用DCOM技术实现

9、服务器和客户 程序的通讯。3.2访问OPC服务器进行数据交互由图2可以看出,OPC服务器可分为三层结构,SERVER,GROUP和ITEM。在实际访问OPC服务器时,第一步要完成 COM库的初始化,然后创建一个服务器对象,建立与服务器的连接,获得服务器对象的接口;第二步要添加组对象,并设定数据刷新速率,死区等参数;第三步添加数据项对象,数据项对象有只读,只写等属 性,可以根据实际需要设置属性。OPC客户和OPC服务器进行数据交互有 2种访问方式:同步和异步方式。同步方式实现较为简单,客户向服务器发出读写请求,然后等待服务器返回信息,当客 户数据较少而且同服务器交互的数据量比较少的时候可以采用这

10、种方式,然而当网络堵塞或大量客户访问时,会造成系统的性能效率下降。异步方式实现较为复杂, 客户向服务器发出读写请求后,服务器立刻返回信息表示请求已接受,客户可以进行其他处理,当服务器完成读写操作后,通过调用回调函数,通知客户 程序操作完成,并传递相应的信息,因此异步方式的效率更高,能够避免多客户大数据请求的阻塞,并可以最大限度地节省CPU和网络资源。另外一种异步方式是服务器周期性的扫描缓冲区的数据,发现数据变化范围超过死区后,立刻通知客户程序,传递相应信息。4、应用实例下面以笔者曾经参加的合钢 2#高炉控制系统设计与调试工作,以数据访问OPC服务器为例介绍OPC技术的实际应用。合钢2#高炉控制

11、系统采用的是西门子SIMATIC NET系列产品,根据 SIMATIC产品在合钢的应用情况,我们采用了SIMATIC NET的OPC服务器同下位PLC进行通讯,并改用最新的S7总线协议,经过一段时间的运行,通讯良好,系统稳定,达到预期效果。整个系 统结构如下:图4:合钢2#高炉控制系统结构图以下为与SIMA TIC ET的OPC服务器进行连接通讯的具体产现(本程序由VC6.0编写)。程序的目的是通过创建连接 OPC服务器,以取得对 PLC内存单元的读写访问,从而达到通 过PLC来控制高炉的上料过程的目的。4.1创建COM服务器CblruTjuliziCblruTjulizi Nll-LiNll

12、-Li: :KKSerwrKKSerwr * *(M1J(M1J WMATKlWMATKl只滋皿 M.LLM.LL (lXX(lXX UUCALCAL 曲热HDHD IKSwwr.IKSwwr. (Td(Td 4.2添加 Group首先在服务器里使用 OPCServer对象lOPCServer接口的AddGroup函数创建一个 group, 并返回OPCGoup对象的lOPCItemMgt接口,该接口提供了增加,删除和控制一个组内的 Item 的功能。AddGroup定义了许多重要属性,如Group的名字,Group的激活状态,客户方定义的最快数据更新率,最小数据变化分辨率等,同时返回给客户如

13、下数据:服务器产生的Group句柄;服务器返回的合适的数据更新率。MKSMKSHWHW - - MtriuupMtriuup (L”(L”TRUE.TRUE. 0,0, 0 0+ + 0,0,QadBand,QadBand, 0,0, AihScnxiGrap.AihScnxiGrap.鮎 UDUD KKhERKKhER(witd(witd b b】:4.3添加 Item为了使用lOPCItemMgt接口的AddItem函数增加实际需要访问的数据项,必须首先定 义需要通讯的 PLC内存单元的 OPC服务器内对应的Item ID号。OPC服务器里可以访问的Item由它的Id号唯一标准,这些Id号

14、是由OPC服务器提供 厂商定义好的,客户方可以通过lOPCBrowseServerAddressSpace接口或OPC供应商的相关手册获得。在 SIMATIC NET的OPC服务器中,“ MB9,2”表示从第九字节开始的两个字 节大小的内存单元,在本程序中表示现场的PLC控制器的内存控制单元;AddItems函数可以同时添加多个Item,每个Item的属性由一个 OPCITEMDEFF结构的变量设置,服务器返 回添加的结果,结果信息包含在一个 OPCITEMRESULT 结构的变量中。结构OPCITEMDEF 包括了 item的唯一标准符ID,客户方期望的Item数据类型以及 Blob信息等与

15、Item相关的属性设置。Blob是由服务器产生的与 Item相关的内部地址数据,由客户保存,用来加速对 Item数据的访问,可为空。伽n的宦义和添加邢例如下:CFCnEVUJidtlO:CFCnEVUJidtlO:= =M sdiunlDsdiunlD二CMDFCMDF;賞解释见上航用来将心字符转换为LhimleLhimle字符idid 0101. .: :AAE E两知h h - -idWhbVtivtidWhbVtivt TRLTRL- - 100;/100;/激活状态为 IKEIKE窑户旬柄为KK迪。】曲BlobBlob屉i i二0 0;沏卩冷魁此bULbUL无MJ36MJ36逊0 0

16、h h vtRtqUL-suJiiLilMM-vtRtqUL-suJiiLilMM- -VT-VT R4R4;打浮点刑StSt据kA .* 4-tFCimMS”tFCimMS” /ddlcare/ddlcare( 10,10, ididh h&jHr&jHr(&pH&pH); ;4.4对PLC内存单元进行异步读写访问以上工作完成后,就可以开始和 PLC的内存单元进行通讯了。OPC服务器提供了两种数据读写方式:同步方式和异步方式。lOPCSyncio接口提供了同步方式的数据访问,lOPCAsynclO2接口(在1.0版本里是lOPCAsynclO接口)提供了异步 方式的数据访问。同步方式比较简单

17、,在访问的数据量比较少或不太在意访问效率的情况下, 可以使用同步方式;异步方式实现起来相对比较复杂,但在数据量比较大和要求较高访问效率的情况下必须使用异步方式,本例介绍异步方式的实现。异步方式时,服务器提供可连接对象,客户方必须实现接收器接口的相关函数(有关连接点一接收器的内容请参考相关COM书籍)。调用异步读写操作函数后,函数马上返回,客户程序可以处理其他事务。当操作完成时,OPC服务器通过接受器的相关函数,通知客户程序进行处理。OPC规定定义的客户方接收器 lOPCDataCallback接口包含如下四个函数:OnDataChange函数在服务器方数据发生变化时,由服务器方调用;OnRea

18、dComplete函数在异步读操作完成时,由服务器方调用;OnWriteComplete函数在异步写操作完成后,由服务器方调用;OnCancelComplete函数在取消操作(取消某一个异步读或写操作)完成后,由服务器 方调 用。客户方可以在这四个函数里添加自定义的处理代码。实现好客户方接收器接口,并调用连接点对象的Advise函数激活连接后,就可以使用lOPCAsy nclO2 接口来进行异步读写操作了。lOPCAs yn clO2 接口函数包括: Read,Write,Ca ncel1,Refresh2,SetE nable,这些函数提供了强大而灵活的异步数据访问功 能。(1)异步读写操作

19、ptpt 1.1.“ RendRend t t 11 & & t t iiii LOJ*LOJ* J-herwrJ-herwr) L L&dM4inoe!ljdRefid&dM4inoe!ljdRefid+ +&pER&pER) ) iv.vl-Vr_R4;v.vl-Vr_R4; V V.G.GI IV VA A-类型浮点型,值为1 1 1111 Wriie(lWriie(lt t A(ir0.A(ir0. H HHETHET 昇 g 2.2.站QuiceEIflWrite,QuiceEIflWrite,h h当异步读事件完成后,OnReaComplete函数会被服务器调用来通知客户,客户可以

20、通过OnReadComplete函数来取得读取得数据以及相关信息。由于可能同时存在多个异 步读操作,可以根据DwTransactionID来判断是哪个读操作完成。类似,当异步写完成时 OnWriteComplete函数被激发。(2)异步数据自动更新当服务器方有数据变化,且满足一定的条件(由AddGroup的相关参数决定)时,OnDataChange函数被激发,客户可以取得变化的数据以及相关信息。客户还可以调用Refresh2函数来主动强制服务器调用一次 On DataCha nge向客户发送一 次最新数据。如果客户暂时不需要 OnDataChange功能,可以调用 SetEnable函数暂时停

21、止 On DataCha nge数据更新功能。(3)异步取消操作在 On ReadComplete, On WriteComplete, On DataCha nge 函数响应前,客户可以使用 IOPCAsynclO2 接口的Cancel2函数来取消本次异 步读操作。当 取消操作完成时, OnCancelComplete 函数被激发。4.5删除ltems,Group,关闭OPC服务器调用连接点对象的 Un Advise函数断开连接,调用lOPCItemMgt的Reno veltems函数删 除所有 Item。,调用 lOPCServer 的 RemoveGroup 函数删除 Group,释放 lOPCServer 接口, 关闭OPC服务器。最后释放所有内存和接口,并调用CoUninitialize函数完成关闭COM库, 释放相关资源,

温馨提示

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

评论

0/150

提交评论