欢迎来到天天文库
浏览记录
ID:27585607
大小:122.49 KB
页数:7页
时间:2018-12-03
《opc自动化接口的浅析》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、OPC自动化接口的浅析未知米源供稿2004-10-817:38:00【字体:大中小】1引言OPC全称是OLEforProcessControl,直译为过程控制中的对象连接嵌入技术。在当今过程控制领域,是一种非常流行的数据交换技术。其实质上是将微软的Activex(控件)技术应W于过程控制领域。也就是说在过程控制系统屮,硬件服务商或软件提供者提供的数据源,在设计数据接口方面就采川了微软的OLE技术,并提供相应的控件、动态链接库,即支持OPC接口技术;当监控系统需要与数据源进行数据交换吋,其开发的基于Windows的应用程序仅需将数据源提供的控件引入或者遵循OL
2、E技术,就可以与数据源进行通讯,而无需开发数据源硬件驱动或与服务商软件通讯接口,大大地节省了开发费用,使应用程序和现场过程控制建立了桥梁,相互之间进行数据交换更加方便、灵活。OPC服务器通常支持两种类型的访问接口,它们分别为不同的编程语言环境提供访问机制。这两种接口是:自动化接口(Automationinterface);自定义接口(Custominterface),如阁1所示。向动化接口通常足为基丁•脚本编程•言而定义的准接口,可以使用VisualBasic、DelphiPowerBuilder等编程语言开发OPC服务器的各户应用。而自定义接口是专门为C+
3、+等高级编程语言而制定的标准接口。制造商或软件提供服务代码OPC通川接口c#等商级语言OPC自定义接口PVBA等脚本语dOPC自动化接U1OLE客户端数据存取用户图1OPC的两种通用接口方式OPC现己成为工业界系统互联的缺街方案,给工业监控编程带来了便利,用户不用为通讯协议的难题而苦恼。2OPC服务器数据访问过程OPC数据访问提供从数据源读収和写入特定数据的手段,一个OPC对象具有一个作力子对象的OPC组集合对象(OPCGROUPS)。在这个OPC组集合对象里可以添加多个的OPC组。每个组对象都具有一个作为子对象的OPC标签集合对象(OPCITEMS)在这个
4、OPC标签集合对象里可以添加多个OPC对象。假定现有一个由DCS、I/O驱动器或独立的软件供应商用C++开发的OPC服务器,其服务名称为OPC—JsampleSERVER,白动化接口组件为:OPCDAAUTO.DLL,以下是用V巳访问OPC服务器数据的过程。2.1注册OPC组件利用VB开发OPC应用程序时,因为VB应用程序是运行在与OPC服务器不同的计算机空间,不能直接调用OPC服务器的接口进行数据交换,耑要通动态链接库并利用操作系统提供的通信能力进行数据交换,所以必须注册OPC自动化接LI组件OPCDAAUTO.DLL(—个动态连接库),这样就能够引用该组
5、件建立OPC各种对象以便于OPC服务器连接。在批命令中运行语句°/。闩6937「32卩的(1%RegSvr32/sopcdaauto.dll进行注册。注册完后引用该组件。2.2引用OPC组件如阁2所示液引用对话框屮,将OPCAutomation2.0加入。这样在对象浏览器屮将看到OPC的各种属性和方法,供编程时使用。部件授件I设计器IC插入对象IHodeMgr1.0TypeLibraryoleprn1.0TypeLibraryOPCAutomation2□OPC-JOPCBarControl□OPC-JOPCTrendControlOptsKold1.0Ty
6、peLibraryOPCAutomation2.0定位:E:HHD0WSiystem32 PCDAA»to.dU图2引川对话框2.3建立OPC服务器对象在申明服务器对象后,通过SET语句建立服务器对象:首先用“NEW”关键词创建生成一个用于连接数据服务的OPC服务器,然后建立该服务器的OPC组集合,在该组集合添加一个OPC组,建立OPC项集合,生成项标识符,添加OPC标签。这种结构使得应用程序可以像使用OPC对象文持的数裾和功能。OPC应用程序可以取得OPC服务器支持属性的执行状态,调用OPC服务器支持的方法和服务器连接。2.4数据读取OPC客户与服务
7、器进行数据交互4以有2种不同方式,即同步方式和异步方式。异步方式比同步方法实现较为复杂,耑要在客户程序中实现服务器冋调函数。然而当有大量客户和大量数据交互时,异步力式的效率更高,能够避免客户数据请求的阻塞,并可以最大限度地节省CPU和网络资源。具体在OPC对象声明屮,ObjTestGRP对象带有“WithEvents”语句,同吋增加异步方式访问使用的新定义的变量,即車务标识符(LtransID等)用于读取和写入。以下是数据同步读取主程序:SubConnect(strProglDAsString,OptionalstrNodeAsString)SetobjSe
8、rver=NewOPCServer’建立一个OPC服
此文档下载收益归作者所有