OPCServer,介绍主要的使用接口,以及.doc_第1页
OPCServer,介绍主要的使用接口,以及.doc_第2页
OPCServer,介绍主要的使用接口,以及.doc_第3页
OPCServer,介绍主要的使用接口,以及.doc_第4页
OPCServer,介绍主要的使用接口,以及.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

0 引 言 随着计算机技能和数字信号处理技能的发展,人们可以用计算机软件替代传统的硬件实现的一些功能,将计算机硬件和软件有机的融合为一体,这就是所谓的虚拟仪器。近年来,世界各国的虚拟仪器公司开发了不少基于LabVIEW,Matlab,VC+,VB等虚拟仪器开发平台软件,当硬件操作的设备驱动改动时,软件开发人员须要修改大量的驱动程序来连接此设备,因此使得虚拟仪器开发平台开发难度大、通用性差。为此,提出了基于OPC技能的虚拟仪器,它是由硬件供应商和软件开发商之间建立一套完整的“准则”,只要遵循这套准则,数据交互对两者来说都是透明的,硬件供应商无需考虑运用 程序的多种需求和传输协议,软件开发商也无需了解硬件的实质和操作流程。l OPC技能 OPC(OLE Process Contro1)是OPC基金会组织倡导的工业控制和生产自动化领域中运用的硬件和软件的接口标准,以便有效地在运用 和流程控制设备之间读写数据,具体的功能实现要由开发商根据须要自主的执行 研究与开发。换句话说OPC规范是一套公共的软件标准,任何OPC开发人员所开发的OPC软件都要符合这个标准。 OPC技能的特点可概括为如下3个方面:开放性(Openness)、产业性(ProdUCtivity)和“即插即用”的互联性(Connectivity),因此可以说,“OPC=Openness+Productivity+Connectivity”,这也是对OPC优点最概括的描述。因此OPC在短时间内取得了飞速的发展基于Visual C#的OPC客户端实现多图11 OPC服务器的组成 OPC标准采用CS模式,OPC服务器负责向OPC客户端不断的提供数据。OPC服务器包括3类对象(Object):服务器对象(Server)、组对象(Group)和项对象(Item)。3类对象都包括一系列接口,联系如图1所示。13 OPC通信方式 OPC规范规定了两种通信方式:同步通信方式和异步通信方式。 同步通信时,OPC客户程序对OPC服务器执行 读写操作时,OPC客户程序必须等到OPC服务器对应的操作全部完成以后才能返回,在此期间OPC客户程序一直处于等待状态。如果有大量数据执行 操作或者有大量OPC客户程序对OPC服务器执行 读写操作,必然造成OPC客户程序的阻塞现象。因此同步通信适用于OPC客户较少,数据量较小时的场合。 异步通信时,OPC客户程序对服务器执行 读写操作时,OPC客户程序操作后立刻返回,不用等待OPC服务器的操作,可以执行 其他操作。当0PC服务器完成操作后再通知OPC客户程序。因此,相对于同步通信和异步通信的效率更高,适用于多客户访问同一OPC服务器和大量数据的场合。2 OPC客户端程序的设计要领 (1)安装OPC自动化接口服务。在NET环境下,点击“项目”子菜单下,“添加引用”,在弹出的对话框COM中选中“OPC DA Automation Wrapper202”项,点击“确定”按钮,这样才能运用自动化接口的服务。 (2)连接OPC服务器。本例中运用的OPC服务器名为“ICONICSSimulator OPCDA2”。首先声明变量,这样才能触发事件(DataChange)来获取实时数据。连接不同的OPC服务器只要改动其服务器名称和OPC服务器所在的计算机名称即可。 (3)添加组图片看不清楚?请点击这里查看原图(大图)。 (5)OPC数据的读和写。对OPC服务器中的数据项数读可以通过group组的DataChange事件触发来读取。该事件有多个参数:其中:NumItems是指数据项的个数;ltemValues为数据项的数据;Qualities为数据项的品质;TimeStamps为数据项的修改时间;ClientHandles是数据项的标签索引,其所指的OPC标签的值在ItemValues(1)中,只有数据发生变化时才会触发该事件。也只会传输发生了变化的数据,没有变化的数据不会出现在本事件ItemValues中。运用 C#事件处理机制,将DataChange注册到事件,一旦服务器端数据有变化,自动触发此流程,触发函数为:图片看不清楚?请点击这里查看原图(大图)。 (6)断开OPC服务器。OPC客户端连接后占用服务器的资源,所以长时间不须要运用的OPC读写数据,则应及时断开OPC连接以释放资源。图片看不清楚?请点击这里查看原图(大图)。 采用C#开发工具,按照OPC规范来实现OPC客户程序。OPC客户程序实现的功能有:通过OPC标准接口与OPC数据服务器连接,按照OPC服务器提供的Sine,Triangle,R8等波形数据,并取得OPC服务器中有关 OPC点的数据,并对这些数据执行 综合处理,实现各种波形图案,运行程序结果如图2所示。图片看不清楚?请点击这里查看原图(大图)。3 结 语 OPC规范的运用 简化了OPC客户服务器的开发流程,统一了数据存取的接口标准,将硬件供应商与运用 软件开发者分离,使得软件开发者无需了解硬件的实质和操作流程,只要遵循OPC标准执行 开发,就能够访问OPC服务器中的数据,大大简化了过去传输数据的复杂流程。在此介绍了在Visual C#环境下,遵循OPC标准提出了基于OPC技能的系统设计方案及数据接口开发关键代码,以高速、高效地执行 底层数据采集,安全、灵活的数据处理,便捷的图形界面,为虚拟仪器提供了崭新的处理方案,具有较大的运用 价值。新的摘 要:OPC是连接数据源(OPC服务器)和数据的使用者(OPC应用程序)之间的软件接口标准。这里以C#为开发工具,按照OPC技术的规范标准,将OPC技术应用到虚拟仪器显示组件中。具体实现了OPC客户端数据访问服务器的过程,接口步骤及其读写数据的方法,并根据OPC服务器提供的数据,最终在虚拟仪器显示组件中生成了虚拟的正弦波、方波、锯齿波、三角波等。 关键词:OPC;OPC接口;OPC服务器;C# 0 引 言 随着计算机技术和数字信号处理技术的发展,人们可以用计算机软件替代传统的硬件实现的一些功能,将计算机硬件和软件有机的融合为一体,这就是所谓的虚拟仪器。近年来,世界各国的虚拟仪器公司开发了不少基于LabVIEW,Matlab,VC+,VB等虚拟仪器开发平台软件,当硬件操作的设备驱动改变时,软件开发人员需要修改大量的驱动程序来连接此设备,因此使得虚拟仪器开发平台开发难度大、通用性差。为此,提出了基于OPC技术的虚拟仪器,它是由硬件供应商和软件开发商之间建立一套完整的“规则”,只要遵循这套规则,数据交互对两者来说都是透明的,硬件供应商无需考虑应用程序的多种需求和传输协议,软件开发商也无需了解硬件的实质和操作过程1。 1 OPC 技术 OPC(OLE Process Control )是OPC基金会组织倡导的工业控制和生产自动化领域中使用的硬件和软件的接口标准,以便有效地在应用和过程控制设备之间读写数据,具体的功能实现要由开发商根据需要自主的进行研究与开发。换句话说OPC规范是一套公共的软件标准,任何OPC开发人员所开发的OPC软件都要符合这个标准。 OPC技术的特点可概括为如下3个方面:开放性(Openness)、产业性(Productivity)和“即插即用”的互联性(Connectivity),因此可以说,“OPC= Openness+ Productivity+Connectivity”,这也是对OPC优点最概括的描述。因此OPC在短时间内取得了飞速的发展。1.1 OPC服务器的组成 OPC标准采用C/S模式,OPC服务器负责向OPC客户端不断的提供数据。OPC服务器包括3类对象(Object) :服务器对象(Server) 、组对象(roup)和项对象(Item)。3类对象都包括一系列接口,关系如图1所示。 OPC服务器对象维护有关服务器信息,并作为OPC组对象的包容器,它提供了对数据源进行读/写和通信的接口方法,可以动态地创建或释放组对象。 OPC组对象由客户端定义和维护,它维护有关其自身的信息,提供包容OPC项对象的机制,从逻辑上实现对OPC项的管理。 OPC项对象包含在OPC组中,可由客户端定义和维护。项代表了与数据源的连接,所有的OPC项的操作都是通过包容此项的OPC组对象完成的。 1.2 OPC的接口方式 OPC服务器通常支持两种类型的访问接口:自定义接口(The OPC Custom Interfaces)和自动化接口(The OPC Automation Interfaces),它们分别为不同的编程语言环境提供访问机制。 自定义接口是任何OPC服务器所必须实现的接口,它描述了OPC组件对象的接口和其实现的方法,适合C+语言设计,并可实现最佳运行性能的客户应用程序。 自动化接口是可选接口(Optional Interface),它提供了自动配置和存取过程控制数据的接口,方便了Visual Basic,Delphi,C#及其他可以使用自动化服务器应用程序接口的高级商业软件使用。自动化接口实际上是定制接口上的自动化封装,OPC规范通过提供一套标准的自动化接口包装器来实现这一功。 1.3 OPC通信方式 OPC规范规定了两种通信方式:同步通信方式和异步通信方式。 同步通信时,OPC客户程序对OPC服务器进行读写操作时,OPC客户程序必须等到OPC服务器对应的操作全部完成以后才能返回,在此期间OPC客户程序一直处于等待状态。如果有大量数据进行操作或者有大量OPC客户程序对OPC服务器进行读写操作,必然造成OPC客户程序的阻塞现象。因此同步通信适用于OPC客户较少,数据量较小时的场合。 异步通信时,OPC客户程序对服务器进行读写操作时,OPC客户程序操作后立刻返回,不用等待OPC服务器的操作,可以进行其他操作。当OPC服务器完成操作后再通知OPC客户程序。因此,相对于同步通信和异步通信的效率更高,适用于多客户访问同一OPC服务器和大量数据的场合。 2 OPC客户端程序的设计方法 (1) 安装OPC自动化接口服务。 在.NET环境下,点击“项目”子菜单下,“添加引用”,在弹出的对话框COM中选中“OPC DA Automation Wrapper2.02”项,点击“确定”按钮,这样才能使用自动化接口的服务。 (2) 连接OPC服务器。 本例中使用的OPC服务器名为“ICONICS.Simulator OPCDA.2”。首先声明变量,这样才能触发事件(DataChange)来获取实时数据。 public OPCServerClass tOpcServer; 连接OPC服务器,生成一个OPC 服务器的实例 OPCServerClass.Connect(ICONICS.SimulatorOPCDA.2,obj1); browse = OPCServerClass.CreateBrowser();/浏览服务器 连接不同的OPC 服务器只要改变其服务器名称和OPC 服务器所在的计算机名称即可。 (3) 添加组 /增加一个名称为 group的组 tOpcGroup=(OPCGroupClass) OPCServerClass.OPCGroups.Add(group); /激活该组,准备收发数据。 tOpcGroup.IsActive = true; /设置组的刷新频率,单位为ms,本例中使用的刷新频率最小为1 ms tOpcGroup.UpdateRate = 1; (4) 添加数据项 private OPCItem item1; /启动数据订阅功能,否则DataChange事件不能触发 tOpcGroup.IsSubscribed = true;(5) OPC数据的读和写。 对OPC服务器中的数据项数读可以通过group组的DataChange 事件触发来读取。该事件有多个参数:其中:NumItems 是指数据项的个数;ItemValues为数据项的数据;Qualities为数据项的品质;TimeStamps为数据项的更改时间;ClientHandles 是数据项的标签索引,其所指的OPC 标签的值在ItemValues (1) 中,只有数据发生变化时才会触发该事件。也只会传输发生了变化的数据,没有变化的数据不会出现在本事件ItemValues 中。使用C#事件处理机制,将DataChange注册到事件,一旦服务器端数据有变化,自动触发此过程,触发函数为: void tOpcGroup_DataChange(int TransactionID,int NumItems,ref Array ClientHandles,ref Array ItemValues,ref Array Qualities,ref Array TimeStamps) tOpcGroup.DataChange += new DIOPCGroupEvent_DataChangeEventHandler(tOpcGroup_DataChange); (6) 断开OPC 服务器。 OPC客户端连接后占用服务器的资源,所以长时间不需要使用的OPC读写数据,则应及时断开OPC连接以释放资源。 /删除所有的数据项 OPCItem l.RemoveAll OPCServerClass.Disconnect(); opc1.ServerShutDown+=new DIOPCServerEvent_ServerShutDownEventHandler(opc1_ServerShutDown); 采用C#开发工具,按照OPC规范来实现OPC客户程序。OPC客户程序实现的功能有:通过OPC标准接口与OPC数据服务器连接,按照OPC服务器提供的Sine,Triangle,R8等波形数据,并取得O

温馨提示

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

评论

0/150

提交评论