竞赛:| 全国大学生数模竞赛 | 全国研究生数模竞赛 | 全国大学生电工数模竞赛 | 美国"MCM/ICM" 竞赛 |
 资讯:| 数学理论 | 交叉学科 | 基础教育 | 考研数学 | 学术动态 | 编程交流 | 网络安全 | 经验技巧 |
 下载:| 数 学 篇 | 算 法 篇 | 建 模 篇 | 编 程 篇 | 数 据 篇 | 软 件 篇 | 考 研 篇 | 交叉学科 |
 视频:| 大学数学 | 大学英语 | 计 算 机 | 法律课程 | 政治课程 | 经济管理 | 数学建模 | 高考数学 |
 功能:| 矩阵论坛 | 学校协会 | 挑 战 赛 | 人才招聘 | 数学问吧 | "MC"理工浏览器 | "MCQ"即时通讯 |

 
会员中心
社区论坛
加入收藏
联系我们
您现在的位置: 数学中国 >> 资讯无限 >> 计算机技术 >> 编程交流 >> 正文
【字体:           ★★
 
OPC规范简介
作者:babyblue…    文章来源:本站原创    点击数:    更新时间:2006-10-29

OPC规范简介

 

OPC Task Force制定的OPC(OLE for Process Control)规范于19968月正式诞生了,随着19972Microsoft公司推出Windows95支持的DCOM技术,19979月新成立的OPC FoundationOPC规范进行修改,增加了数据访问等一些标准,OPC规范得到了进一步的完善。

OPC 基于Microsoft公司的 Distributed interNet Application (DNA) 构架和 Component Object Model (COM) 技术的,根据易于扩展性而设计的。OPC规范定义了一个工业标准接口,这个标准使得COM技术适用于过程控制和制造自动化等应用领域。”OPC 基础委员会主席Dave Rehbein是这样描述的

OPC是以OLE/COM机制作为应用程序的通讯标准。OLE/COM是一种客户/服务器模式,具有语言无关性、代码重用性、易于集成性等优点。OPC规范了接口函数,不管现场设备以何种形式存在,客户都以统一的方式去访问,从而保证软件对客户的透明性,使得用户完全从低层的开发中脱离出来。

基于OPC的软件结构如图

由图可见,应用程序与OPC服务器之间必须有OPC接口,OPC规范提供了两套标准接口:Custom标准接口,OLE自动化标准接口。通常在系统设计中采用OLE自动化标准接口。

OLE自动化标准接口,及采用OLE自动化技术进行调用,其技术为上节所述的OLE自动化技术。OLE自动化标准接口定义了以下三层接口,依次呈包含关系。

OPC ServerOPC启动服务器,获得其他对象和服务的起始类,并用于返回OPC Group类对象;

OPC Group:存储由若干OPC Item组成的Group信息,并用于返回OPC Item类对象。

OPC Item:存储具体Item 的定义、数据值、状态值等信息。

由于OPC规范基于OLE/COM技术,同时OLE/COM的扩展远程OLE自动化与DCOM技术支持TCP/IP等多种网络协议,因此可以将OPC客户、服务器在物理上分开,分布于网络不同节点上。

OPC规范可以应用在许多应用程序中,如它们可以应用于从SCADA 或者DCS系统的物理设备中获取原始数据的最低层,它们同样可以应用于从SCADA 或者DCS系统中获取数据到应用程序中。实际上,OPC设计的目的就是从网络上某节点获取数据。图4.2.2OPC的客户/服务器关系图同样描述了OPCSCADA系统的应用。

采用OPC规范设计系统的好处

在进行新型微机远动系统的研制中,各个计算机以及各个模块的数据交换应该按照OPC规范进行。这样做有以下好处:
OPC
规范以OLE/DCOM为技术基础,而OLE/DCOM支持TCP/IP等网络协议,因此可以将各个子系统从物理上分开,分布于网络的不同节点上。
OPC
按照面向对象的原则,将一个应用程序(OPC服务器)作为一个对象封装起来,只将接口方法暴露在外面,客户以统一的方式去调用这个方法,从而保证软件对客户的透明性,使得用户完全从低层的开发中脱离出来。
OPC
实现了远程调用,使得应用程序的分布与系统硬件的分布无关,便于系统硬件配置以及,使得系统的应用范围更广。
采用OPC规范,便于系统的组态化,将系统复杂性大大简化,可以大大缩短软件开发周期,提高软件运行的可靠性和稳定性,便于系统的升级与维护。
OPC
规范了接口函数,不管现场设备以何种形式存在,客户都以统一的方式去访问,从而实现系统的开放性,易于实现与其它系统的接口。

 

 

 

 

 

 

 

 

 

 

 

·OPC Server概述     -|ice 发表于 2005-9-10 0:20:00

 

OPC Server概述

 1.What is OPC?

OPC
OLE for Process Control的缩写。顾名思义,OPC是一种利用微软的COM/DCOM技术来达成自动化控制的协定,根据OPC Specification 的定义,OPC is "a standard mechanism for communicating to numerous data sources, either devices on the factory floor, or a database in a control room."

在现今的工业自动化中,我们需要一套整合的信息系统,由底层的各项装置采集信息 (Field Management),中层的控制系统或图控应用程序进行程序的控制 (Process Management),再由最上层的整合软件将这些信息整合起来以供企业决策或效能提升,如下图所示:



OPC
为硬件制造商与软件开发商提供了一条桥梁,透过硬件厂商提供的 OPC Server 接口,软件开发者不必考虑各项不同硬件间的差异,便可自硬件端取得所需的信息,所以软件开发者仅需专注于程序本身的控制流程的运作。此外,由于 COM/DCOM 实作并隐藏了网络的细节,透过 OPC 可以很容易地达成远程控制的理想。

2.How does OPC work?

在说明 OPC Server/Client 运作方式之前,我们先简单介绍一下 Microsoft 发展的 COM/DCOM 是什么?
COM
是一种发展软件组件的方法,所谓的软件组件,是指一个可以提供应用程序、操作系统、以及其它组件服务的二进制可执行程序。事实上,发展自订的 COM 对象就好象是在建构一套可以动态执行的对象导向 API 一般。你可以在应用程序执行的时期随意拼上或移除所需要的组件。依据 COM 这样的概念,发展应用程序就像是堆积木一样,每一个 COM 组件就是一块积木,你可以利用各式各样不同的积木,拼凑出你所需要的应用程序。

在实作上,COM 透过一组一组的接口 (Interface) 提供服务,所有 COM 组件的使用者,都必须透过这些 Interface 来使用组件提供的功能。OPC 的规格中便定义了许多 OPC Server 应该提供的 Interface,要撰写一个 OPC Server COM 组件,你必须在你的组件中加入这些接口,并提供它们的实作,Client 便可以透过这些接口,操作连接到 OPC Server 的硬件装置,这也就是 OPC Server/Client 运作的方式。以下的图标可以让这样的概念更清晰。



3. OPC Server
架构

如前面所述,OPC Server 透过一组一组的接口提供服务,不过在实作的架构上,OPC Server 共分为三层:分别是 OPCServer, OPCGroup, OPCItem

其中每一个 OPCItem 对应到一个实际的硬件装置上的某一个 channel port;每一个 OPCGroup 则包含了许多的 OPCItem,同时并定义这些 OPCItem 更新的时间、方式,以及提供读取 OPCItem 值的接口;而每一个 OPCServer 则包含若干个 OPCGroup,同时提供操作这些 OPCGroup 的接口。

下图可以较清楚地说明 OPCServer/OPCGroup/OPCItem 间的关系:



4. OPC Custom Interface

接下来的这一节,我们将讨论 OPC Serve 的重点,也就是每一组接口的定义,以及它所提供的功能。
OPCServer
提供的接口:

IOPCCommon
HRESULT SetLocaleID ( dwLcid )
设定位置信息
HRESULT GetLocaleID ( pdwLcid )
取得位置信息
HRESULT QueryAvailableLocaleIDs ( pdwCount, pdwLcid )
查询可用的位置ID
HRESULT GetErrorString ( dwError, ppString)
取得错误信息字符串
HRESULT SetClientName (szName)
设定Clinet的名称


IOPCServer
HRESULT AddGroup(szName, bActive, dwRequestedUpdateRate, hClientGroup, pTimeBias, pPercentDeadband, dwLCID, phServerGroup, pRevisedUpdateRate, riid, ppUnk)
新增一个 OPCGroup
HRESULT GetErrorString(dwError, dwLocale, ppString)
取得错误信息字符串
HRESULT GetGroupByName(szName, riid, ppUnk)
依据名称取得OPCGroup 的介面
HRESULT GetStatus(ppServerStatus)
取得 OPCServer的状态信息
HRESULT SetClientName (szName)
设定Clinet的名称RemoveGroup(hServerGroup, bForce)移除一个OPCGroup
HRESULT CreateGroupEnumerator(dwScope, riid, ppUnk)
产生一个OPCGroup 列举器


IConnectionPointContainer
HRESULT EnumConnectionPoints( IEnumConnectionPoints ppEnum)
列举所有的 Connection Points
HRESULT FindConnectionPoint( REFIID riid, IConnectionPoint ppCP)
找出一个 Connection Point


IOPCItemProperties
HRESULT QueryAvailableProperties(szItemID, pdwCount,ppPropertyIDs, ppDescriptions, ppvtDataTypes );
查询可用的 OPCItem属性
HRESULT GetItemProperties (szItemID, dwCount, pdwPropertyIDs,ppvData, ppErrors )
取得 OPCItem 的属性
HRESULT LookupItemIDs( szItemID, dwCount, pdwPropertyIDs,ppszNewItemIDs, ppErrors )
使用名称查询OPCItem ID


IOPCBrowseServerAddressSpace (optional)
HRESULT QueryOrganization(pNameSpaceType )
查询组织名称
HRESULT ChangeBrowsePosition(dwBrowseDirection, szString )
变更浏览的位置
HRESULT BrowseOPCItemIDs( dwBrowseFilterType, szFilterCriteria, vtDataTypeFilter, dwAccessRightsFilter, ppIEnumString )
浏览 OPCServer 內所有定义的 OPCItem
HRESULT GetItemID( szItemDataID, szItemID )
取得 OPCItem ID
HRESULT BrowseAccessPaths( szItemID, ppIEnumString )
浏览存取OPCItem 的路径

OPCGroup Object
提供的介面

IOPCGroupStateMgt
HRESULT GetState(pUpdateRate, pActive, ppName, pTimeBias, pPercentDeadband, pLCID, phClientGroup, phServerGroup)
取得OPCGroup的状态即设定信息
HRESULT SetState(pRequestedUpdateRate, pRevisedUpdateRate, pActive, pTimeBias, pPercentDeadband, pLCID, phClientGroup)
设定OPCGroup 的状态信息
HRESULT SetName(szName)
设定OPCGroup的名称
HRESULT CloneGroup(szName, riid, ppUnk)
复制一个OPCGroup


IOPCSyncIO

HRESULT Read(dwSource, dwCount, phServer, ppItemValues, ppErrors);
以同步方式读取OPCGroup内的OPCItem(s) 的值
HRESULT GetItemProperties (szItemID, dwCount, pdwPropertyIDs,ppvData, ppErrors )
取得 OPCItem 的属性
HRESULT Write(dwCount, phServer, pItemValues, ppErrors)
以同步方式将值写入OPCGroup 內的 OPCItem(s)


IOPCAsyncIO2

HRESULT Read(dwCount, phServer, dwTransactionID, pdwCancelID, ppErrors,)
以非同步方式读取OPCGroup内的OPCItem(s)的值,值会在读取硬件的动作结束后以callback的形式传回
HRESULT SetState(pRequestedUpdateRate, pRevisedUpdateRate, pActive, pTimeBias, pPercentDeadband, pLCID, phClientGroup)
设定OPCGroup的状态信息
HRESULT Write(dwCount, phServer, pItemValues, dwTransactionID, pdwCancelID, ppErrors)
以非同步方式将值写入OPCGroup内的OPCItem(s)
HRESULT Cancel2 (dwCancelID)
取消前一次的非同步讀取/寫入
HRESULT Refresh2(dwSource, dwTransactionID, pdwCancelID)
更新 OPCGroup OPCItem(s) 的值
HRESULT SetEnable(bEnable)
OPCGroup 設為 Enable
HRESULT GetEnable(pbEnable)
傳回 OPCGroup 是否為 Enable


IOPCItemMgt

HRESULT AddItems(dwCount, pItemArray, ppAddResults, ppErrors);
OPCGroup内新增OPCItem(s)
HRESULT ValidateItems(dwCount, pItemArray, bBlobUpdate, ppValidationResults, ppErrors)
检查OPCItem(s)的名称是否可用
HRESULT RemoveItems(dwCount, phServer, ppErrors)
移除OPCGroup 內的 OPCItem(s)
HRESULT SetActiveState(dwCount, phServer, bActive, ppErrors)
高定 OPCItem(s)是否为Avtive
HRESULT SetClientHandles(dwCount, phServer, phClient, ppErrors)
设定 OPCItem(s) handle
HRESULT SetDatatypes(dwCount, phServer, pRequestedDatatypes, ppErrors)
设定OPCItem(s)的数据类型
HRESULT CreateEnumerator(riid, ppUnk)
产生OPCItems的列举器


IConnectionPointContainer

HRESULT EnumConnectionPoints( IEnumConnectionPoints ppEnum)
列举所有的 Connection Points
HRESULT FindConnectionPoint( REFIID riid, IConnectionPoint ppCP)
找出一个Connection Point

5.
结论
OPC Server/Client
是一套利用微软的 COM/DCOM 技术达成工业自动化资料取得的架构。OPC Server 提供了许多的接口,Client 端透过这些接口,可以取得与 OPC Server 相连的硬件装置的信息,而无须了解这些硬件装置的细节信息。也就是说,程序设计者可以使用相同的程序代码,操作不同的硬件装置,充分达成 software reuse 的理想。同时,由于 COM/DCOM 已实作了网络部分的细节,也使得 Client OPC Server 进行远程访问非常容易,使程序设计者很容易地达成远程控制的目标。

 

 

 

 

 

 

 

OPC——现代工业控制软件互操作标准

王双庆 邢建春

【摘要】简要介绍了OPC规范的基本内容、制定的背景和OPC的发展,阐述了OPC在工控领域带来的巨大好处,目的是引起国内工控软硬件制造商的重视。
关键词:OPCCOM,工业控制,规范

OPC:The Specification for the Industry Control Software Interoperability

Abstract:The main points of the OPC specification,its background and development are introduced.Also,the great advantages brought by the OPC are described.The main aim is to attract the attention of domestic hardware vendors and software developers in this field.
Key words:OPC,COM,industry control,specification

  OPC规范的第一个版本是1996年秋颁布的,在短短的3年时间里,得到越来越多工控领域硬件、软件制造商的承认和支持。它实际上已经成为工业控制软件公认的标准。世界上一些著名的工业控制硬件、软件制造公司,对其产品都提供了OPC的支持。从而形成了工控领域的一个共识:不提供OPC支持,必将限制其市场。本文主要叙述OPC的内容及其给工业控制带来的巨大便利,旨在引起国内工业自动化领域研究机构和厂家的注意和思考,使产品更有生命力。

1 OPC介绍
  OPCOLE for process control)规范是OPC基金组织倡导的,工业控制和生产自动化领域中使用的硬件和软件的接口标准。它是由全世界范围内自动化领域中处于领导地位的硬件和软件开发商,在Microsoft的合作下协作制定的,并且已经得到越来越多客户和硬软件制造商的认可。
  OPC规范在短短的几年里发展如此之快,得益于OPC技术内涵。它基于MicrosoftOLE/COMDCOM技术,包括了自动化应用中使用的一整套的接口、属性和方法的标准。MicrosoftOPC基金组织的发起成员之一,他把他的OLE/COM等新技术带给了OPC基金组织。这些技术为工控领域里最重要的数据交换环节提供了技术保证。COM/DCOM技术定义了分布式系统中软组件如何交互和共享数据,这已被证明:在WindowsNT)环境中,应用程序间数据交换的最有效最先进的技术。借助这些Microsoft的技术,OPC规定了与不同过程控制设备交互的统一的接口,而不用考虑过程中使用的控制软件和设备。
  接口,简言之即提供给客户应用程序的功能的使用方法。OPC规范通常包括两套接口:定制接口和自动接口。规范详细说明了这些COM接口,但并没有提供接口的实现细节,OPC服务器具体实现接口的功能。服务器具体确定了可以存取的设备和数据,数据单元(data item)以何种方式命名以及对具体物理设备存取数据的细节,并且通过OPC标准接口开放给外部程序。像所有的COM实现一样,OPC的结构是客户机-服务器模式。各个OPC客户程序通过OPC标准接口对各OPC服务器管理的设备进行操作,而不需关心服务器的实现细节及设备内部的具体细节。服务器组件提供并管理那些到OPC对象的接口。图1所示为OPC接口、OPC服务器及OPC客户应用的联系。


1 OPC客户与OPC服务器

  现在成熟并发布的OPC规范主要包括数据存取规范、报警和事件处理规范以及历史数据存取规范。广义而言,数据存取服务器包括三种对象:服务器、组和数据单元。OPC服务器对象负责维护服务器的信息,而且是OPC组对象的容器。组对象维护自己的信息并提供容纳和逻辑上组织OPC数据单元的架构。数据单元(对象)提供与数据源的连接。与数据单元相对应的是一个值(value)、品质(quality)和时间标签(time stamp)。关于报警和事件处理规范,它明确了特定事件和报警条件下通知OPC客户应用的机制。它为OPC客户提供的功能有:确定OPC服务器支持的事件类型,得到特定事件的发生信息;还有OPC服务器实现的存取和操作条件。历史数据存取规范所支持的服务器类型主要有:简单的趋势数据服务器,复杂的数据压缩和分析服务器。
  OPC的设计目的最重要的是即插即用,也就是采用标准方式配置硬件和软件接口。一个设备可以很容易地加入现有系统并立即投入使用,不需要复杂的配置,且不会影响现有的系统。系统中的信息也可以很方便地分散至众多支持OPC的软件应用当中,如维护、监督、操作显示和文档管理等应用。

2 OPC规范的制定背景
  没有规矩,不成方圆。事物之间必须有一个标准,才能相互交流。像早期不同的计算机制造商的产品不能相互通信迫使产生了一系列的硬件软件制作规范一样,现代的工控领域所遇到的问题也迫切需要制定一个规范。
  微处理机在工业控制和生产自动化领域的应用,已经得到了巨大的发展。然而现在面临的情况是,不同厂商提供的过程控制设备和商业应用软件不能相互自由地通信。因为没有标准可依,一个具体硬件制造商的产品必需一个专门的驱动程序与具体的一种应用软件进行交流,而且这个驱动程序一般并不适用于其他的应用软件。这样一来,硬件厂商不得不再为另一个应用开发一个驱动程序,从而造成重复劳动。这就好比家庭中,每一种家电都有自己独特的插座口,彩电的插头只能插在彩电的专用插座上,而不能插在冰箱的插座上。这样的一种境况,使得在自动化系统的设计和实现中,困难重重。尤其在今天,在市场决定一切的经营模式下,企业要面对激烈的竞争,客观要求企业的MIS(管理信息系统)和决策层要同生产一线的数据保持实时的不间断的联系,实现企业范围内数据的无缝开放交流。这个简单的要求对以前的自控系统已经近于苛刻。
  除此之外,相对特定应用的驱动程序一般并不支持硬件特点的变化,而事实是,硬件产品在不停地更新换代。还有,在同一个时刻,两个客户应用一般不能对同一个设备进行数据读写。因为它们拥有不同的相互独立的驱动程序,同时对同一个设备操作,可以引起存取冲突,甚至导致系统的崩溃。
  这些问题的解决,要求控制过程中使用的硬件设备和软件产品可以方便地组合应用。标准必须制定,OPC规范应运而生。

3 OPC带来的巨大好处
  像用于字处理的标准打印机驱动和用于数据库存取的ODBC给各自的领域带来深远影响一样,OPC标准的制定为工控领域带来了变革。不仅是用户,连同硬件制造商和软件开发商都可从中得到巨大的利益。以前的过程监控中硬件和软件的设置情况如图2所示。


2 传统过程控制中软件硬件设置

  各种应用软件都必须提供这三种设备的驱动程序,即需要12个驱动程序维持系统的正常运行。而且各软件间不能相互通信。因为各个软件来自不同的开发商,具有不同的相互独立的对同一设备的驱动程序,所以多个软件也不能同时对同一个设备存取数据,否则可能造成系统的瘫痪。同时,某一个设备的升级要求该设备的所有驱动程序升级,否则隐患无穷。这样的一个系统要想长期维护,工作量可想而知。
  OPC规范的引入,使得过程控制的硬件软件配置可以由图3表示。硬件制造商只用开发出符合OPC规范的驱动程序,即图中的服务器,就可以一劳永逸,因为这个服务器为所有支持OPC标准的OPC客户软件所用。这个系统可以很方便地进行修改和升级,增加一个设备(当然提供了OPC服务器),所有的软件都可以与其进行数据交互。


3 OPC系统中软件硬件设置

  以前,用户在设计一个自动控制系统时,选择硬件软件,限制因素太多,考虑因素也多。找到真正满足需要的设备后,可能因为自己的软件不支持而倍感苦恼,或者放弃选择,用一个并不太合适的设备来代替,或者请软件开发商开发出这种设备的驱动程序。而现在用户可以不受限制地选择硬件和软件,选择真正满足自我要求的设备。
  各个厂商提供的OPC服务器,都以同一种方式工作,这使得用户只要学会一种服务器的使用,便掌握了所有的使用。以往,用户在学会所选软件程序的定制工具箱后,要改用另一种软件,必须重新学习这种特定软件的工具箱。这不仅浪费了用户的时间,也增加了用户的培训费用开支。
  对于一个工业现场,如果测点和控制点增加或改变,对原来的系统来说,所需的工作量很大。而符合OPC规范的控制系统则很容易实现。尤其是大的工业现场,对系统进行长期地监控、配置优化以及节省维护费用的优势更为突出。
  对于软件开发商而言,不再费神于开发各种硬件设备的驱动程序,而是把精力和时间集中在增加和完善软件的功能上,使自己的软件更易被用户接受和使用。对于硬件设备制造商,再也不必担心自己的产品因为没有为某些软件提供驱动程序而被用户所忽视或放弃。一次编写的驱动程序(OPC服务器),可以被所有的应用软件所用。不仅节省了各种I/O驱动程序的开发费用,而且可以让制造商集中精力生产更易于用户使用的、功能完善的硬件。

4 OPC的发展
  OPC规范的第一个版本是在1996年秋颁布的,几年里OPC规范得到了巨大的发展和补充。OPC基金组织成员也由开始的5个扩大到现在的212个(至19999月),而且世界上主要的自动化系统和仪表的生产商像SunIntellution都在其中。组织成立的初衷就是要开发一个开放的、易实现的、即插即用的标准,这些目标已部分实现。Microsoft不仅是这个组织的参与者和技术后盾,每年还在Microsoft的总部召开一次OPC基金组织年会,该组织的成员可以预阅OLE/COM和其他Microsoft技术的新发展。最终用户也被鼓励加入OPC组织,一些用户也的确参加了规范制定和技术上的复查过程。这些都促进了OPC规范的发展和完善。OPC规范制定的主要目标是将规范尽快地应用于工业实际。在此指导思想下,多数开发商关心的区域首先开始了规范的制定。目前发布的3个规范为:数据存取规范、报警和事件处理规范以及历史数据存取规范。其他的像安全性、批量控制以及报警和事件的历史数据存取,这些功能的标准正在酝酿和制定中,相信在不久的将来就会发布。

5 结论
  基于COM技术的OPC技术规范在短短几年内获得了极大的发展,并得到了国际上自动化领域领先厂商的广泛支持。采用OPC技术规范的产品实现了工业自动化系统中软件之间的互操作和无缝集成,以及现场监测、控制设备的即插即用,为该领域的硬件、软件厂商及最终用户带来了直接和明显的经济利益。符合OPC规范的硬件、软件产品开始大量地开发并得到广泛应用,支持OPC技术开发的各种开发工具正在不断地得到完善,OPC前景一片光明。目前工控产品的OPC支持性能,已经成为其综合性能的一个重要方面。国内的工控硬软件制造商要抓住时机,抓紧跟上世界先进技术的发展,开发符合OPC规范的产品,保证产品市场的生命力。

文章录入:babybluema    责任编辑:madio  
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    推 荐 文 章
    更多内容
     
    热 门 文 章  
    更多内容
     

    费马小定理
    相 关 文 章
    更多内容
     
    没有相关文章
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 管理登录 |