OPC技术


OPC技术

文章插图
OPC技术【OPC技术】OPC(OLE for Process Control)技术是指为了给工业控制系统应用程式之间的通信建立一个接口标準,在工业控制设备与控制软体之间建立统一的数据存取规範 。它给工业控制领域提供了一种标準数据访问机制,将硬体与套用软体有效地分离开来,是一套与厂商无关的软体数据交换标準接口和规程,主要解决过程控制系统与其数据源的数据交换问题,可以在各个套用之间提供透明的数据访问 。
基本介绍中文名:OPC技术
外文名:OLE for Process Control
作用:主要解决过程控制系统与其数据源的数据交换问题
基础技术:OLE/COM技术
套用:线上数据监测、历史数据访问等
所属领域:自动控制技术
简述OPC是OLE for Process Control的缩写,即套用于过程控制的OLE 。OLE原意是对象连线和嵌入,随着OLE2的发行,其範围已远远超出了这个概念 。现在的OLE包含了许多新的特徵,如统一数据传输、结构化存储和自动化,已经成为独立于计算机语言、作业系统甚至硬体平台的一种规範,是面向对象程式设计概念的进一步推广 。OPC建立于OLE规範之上,它为工业控制领域提供了一种标準的数据访问机制 。工业控制领域用到大量的现场设备,在OPC出现以前,软体开发商需要开发大量的驱动程式来连线这些设备 。即使硬体供应商在硬体上做了一些小小改动,应用程式也可能需要重写 。同时,由于不同设备甚至同一设备不同单元的驱动程式也有可能不同,软体开发商很难同时对这些设备进行访问以最佳化操作 。硬体供应商也在尝试解决这个问题,然而由于不同客户有着不同的需要、同时也存在着不同的数据传输协定,因此也一直没有完整的解决方案 。自OPC提出以后,这个问题终于得到解决 。OPC规範包括OPC伺服器和OPC客户两个部分 。其实质是在硬体供应商和软体开发商之间建立一套完整的“规则” 。只要遵循这套规则,数据互动对两者来说都是透明的,硬体供应商只需考虑应用程式的多种需求和传输协定,软体开发商也不必了解硬体的实质和操作过程 。作用OPC诞生以前,硬体的驱动器和与其连线的应用程式之间的接口没有统一的标準 。如在工厂自动化(Factory Automation,FA)领域,连线PLC等控制设备和SCADALVHMI软体需要不同的工业自动化网路系统构成 。OPC是为了不同供应厂商的设备和应用程式之间的软体接口标準化,并使其间的数据交换更加简单化的目的而提出的 。它可以向用户提供不依赖于特定开发语言和开发环境的、可以自由组合使用的过程控制软体组件产品 。OPC系统是由按照应用程式(客户程式)的要求提供数据採集服务的OPC伺服器,使用OPC伺服器所必需的OPC接口,以及接受服务的OPC应用程式所构成 。OPC伺服器是利用各个供应厂商的硬体所开发的,使之可以吸收各个供应厂商硬体和系统的差异,从而实现不依赖于硬体的系统构成 。同时利用一种叫VARIANT的数据类型,可以不依赖于硬体中固有的数据类型,按照应用程式的要求提供数据格式 。工作原理OPC以OLE/COM机製作为应用程式的通信标準,而OLE/COM是一种客户端/伺服器模式,具有语言无关性、代码重用性、易于集成性等优点 。OPC伺服器中的代码确定了伺服器所存取的设备和数据、数据项的命名规则和伺服器存取数据的细节,不管现场设备以何种形式存在,客户都以统一的方式去访问,从而保证软体对客户的透明性,使得用户完全从低层的开发中脱离出来 。客户应用程式仅须使用标準接口和伺服器通信,而并不需要知道底层的实现细节 。通过OPC伺服器,OPC客户既可以直接读写物理VO设备的数据,也可操作SCADA,DCS等系统的连线埠变数(只要该系统提供OPC服务) 。特点OPC是为了解决套用软体与各种设备驱动程式的通信而产生的一项工业技术规範和标準 。它採用客户/伺服器体系,基于Microsoft的OLE/COM技术,为硬体厂商和套用软体开发者提供了一套标準的接口 。综合起来说,OPC有以下三个特点 。①计算机硬体厂商只需要编写一套驱动程式就可以满足不同用户的需要 。硬体供应商只需提供一套符合OPC Server规範的程式组,无需考虑工程人员需求 。②应用程式开发者只需编写一个接口程式便可以连线不同的设备 。软体开发商无需重写大量的设备驱动程式 。③工程人员在设备选型上有了更多的选择 。对于最终用户而言,可以根据实际情况的不同,选择符合实际的设备 。OPC扩展了设备的概念 。只要符合OPC伺服器的规範,OPC客户都可与之进行数据互动,而无需了解设备究竟是PLC还是智慧型仪表,甚至只要在资料库系统上建立了OPC规範,OPC客户就可与之方便地实现数据互动 。OPC把硬体厂商和套用软体开发者分离开来,使得双方的工作效率都有了很大的提高,因此OPC在短时间内取得了飞速的发展 。适用範围开发OPC的最终目标是在工业控制领域建立一套数据传输规範,现有的OPC规範涉及以下五个领域 。①线上数据监测 。OPC实现了应用程式和工业控制设备之间高效、灵活的数据读写 。②报警和事件处理 。OPC提供了OPC伺服器发生异常时以及OPC伺服器设定事件到来时,向OPC客户传送通知的一种机制 。③历史数据访问 。OPC实现了对历史资料库的读取、操作和编辑 。④远程数据访问 。藉助Microsoft的DCOM(Distributed Component Object Model)技术,OPC实现了高性能的远程数据访问能力 。⑤OPC实现的功能还包括安全性、批处理和历史报警事件数据访问等 。OPC伺服器的组成OPC伺服器由三类对象组成,相当于三种层次上的接口:伺服器、组对象和数据项 。①伺服器对象包含伺服器的所有信息,同时也是组对象的容器 。一个伺服器对应于一个OPC伺服器,即一种设备的驱动程式 。在一个伺服器中,可以有若干个组 。②组对象包含本组的所有信息,同时包含并管理OPC数据项 。OPC组对象为客户提供了组织数据的一种方法 。组是应用程式组织数据的一个单位,客户可对其进行读写,还可设定客户端的数据更新速率 。当伺服器缓冲区内数据发生改变时,OPC伺服器将向客户发出通知,客户得到通知后再进行必要的处理,而无需浪费大量的时间进行查询 。OPC规範定义了两种组对象:公共组(或称全局组,public)和局部组(或称局域组、私有组,local) 。公共组由多个客户共有,局域组只隶属于一个OPC客户 。全局组对所有连线在伺服器上的应用程式都有效、而局域组只能对建立它的Client有效 。一般说来,客户和伺服器的一对连线只需要定义一个组对象 。在一个组中,可以有若干个数据项 。③数据项是读写数据的最小逻辑单位,一个数据项与一个具体的位号相连 。数据项不能独立于组存在,必须隶属于某一个组 。在每个组对象中,客户可以加入多个OPC数据项 。OPC数据项是伺服器端定义的对象,通常指向设备的一个暂存器单元 。OPC客户对设备暂存器的操作都是通过其数据项来完成的 。通过定义数据项,OPC规範儘可能地隐藏了设备的特殊信息,也使OPC伺服器的通用性大大增强 。OPC数据项并不提供对外接口,客户不能直接对其进行操作,所有操作都是通过组对象进行的 。应用程式作为OPC接口中的Client方,硬体驱动程式作为OPC接口中的伺服器方,每一个OPC Client应用程式都可以连线若干个OPC伺服器,每一个硬体驱动程式可以为若干个应用程式提供数据 。接口方式OPC规範提供了两套接口方案,即COM接口和自动化接口 。COM接口效率高,通过该接口,客户能够发挥OPC伺服器的最佳性能,採用C++语言的客户一般採用COM接口方案 。自动化接口使解释性语言和宏语言访问OPC伺服器成为可能,採用VB语言的客户一般採用自动化接口 。自动化接口使解释性语言和宏语言编写客户应用程式变得简单,然而自动化客户运行时需进行类型检查,这一点则大大牺牲了程式的运行速度 。OPC伺服器必须实现COM接口,是否实现自动化接口则取决于供应商的主观意愿 。数据访问方式(1)伺服器缓冲区数据和设备数据OPC伺服器本身就是一个可执行程式,该程式以设定的速率不断地同物理设备进行数据互动 。伺服器内有一个数据缓冲区,其中存有最新的数据值、数据质量截和时间戳 。时间戳表明伺服器最近一次从设备读取数据的时间 。伺服器对设备暂存器的读取是不断进行的,时间戳也在不断更新 。即使数据值和质量戳都没有发生变化,时间戳也会进行更新 。客户既可从伺服器缓冲区读取数据,又可直接从设备读取数据,从设备直接读取数据速度会慢一些,一般只有在故障诊断或极特殊的情况下才会採用 。(2)同步和异步OPC客户和OPC伺服器进行数据互动可以有两种不同方式,即同步方式和异步方式 。同步方式实现较为简单,当客户数目较少而且同伺服器互动的数据量也比较少的时候可以採用这种方式;异步方式实现较为複杂,需要在客户程式中实现伺服器回调函式 。然而当有大量客户和大量数据互动时,异步方式的效率更高,能够避免客户数据请求的阻塞,并可以最大限度地节省CPU和网路资源 。