工业控制领域的新标准:opc

opc简介


  随着现代工业的发展,工业现场可以采用的仪器仪表种类十分丰富,工业控制过程越来越复杂,同时控制系统也逐渐和商业系统结合到一起。我们可以将整个控制系统的信息模型划分为如下三个部分:

  现场设备管理:随着智能仪表的使用,关于设备的状态、组态信息等大量的信息可以提供给用户,这在以前是不可能的,并且这些信息能够以一致的方式提供给用户。

  控制过程管理:用以监视和控制生产过程的dcs和scada系统的使用,将以往由人工采集的数据变为自动采集。

  商业管理:将现场的数据进行进一步的分析和整理,为与之相关的各种经营销售提供数据。

  因此这就需要一种能够有效地进行数据访问和管理的开放标准,能在工业控制计算环境中的各个数据源(包括从场地级到控制室以及上层管理)之间灵活地进行通讯。

  但是目前的情况却是,不同的厂商已经提供了大量的独立的硬件和与之配套的客户端软件。为了达到不同硬件和软件之间的兼容,通常的做法是针对不同的硬件开发不同的driver,但由于客户端使用的协议不同,想要开发一个兼容所有客户软件的高效的driver是不可能的。这会导致以下的问题:

  重复开发:必须针对不同的硬件重复开发driver;

  不同driver之间的差异:针对同一个硬件的不同的driver功能不同;

  升级错误:硬件的升级有可能导致某些driver产生错误。

  opc(ole for process control)作为硬件和软件之间的一个中间件解决了以上的问题,它为工业计算环境提供了这样一种标准,使不同的客户软件能够访问任意的数据源。开发商可以开发一个高度优化的、可重用的opc server访问底层的硬件,并将数据以opc接口方式提供给任何的客户端软件。opc与硬件和客户端软件的关系见图1。

 
  图1

  采用opc标准也给客户端软件的开发带来益处。由于opc是基于ole/com技术的,所以可以用c或c++开发出可被不同语言重用的访问底层数据的组件,然后用vb、delphi等语言开发应用,从而缩短系统开发的周期,取得更大的经济效益。

  总的来说, opc为用户提供了一种访问现场数据的统一的标准。采用opc标准,硬件厂商只需要提供一系列基于opc标准的部件,软件开发商所开发的driver就不必因为硬件功能的改变而重新开发,最终用户在选择硬件和软件时将可以有更大的选择范围。场地控制系统与商业系统的集成将是非常简单的。




  opc的基本结构


  opc标准建立在microsoft的ole/com基础上。opc标准包含服务器和客户两个部分,其中opc服务器用于从网络设备上获取数据,并通过opc接口提供给opc客户。一个opc客户可以同时访问不同的opc服务器,不同的opc客户也可以同时访问一个opc服务器。每个opc服务器都定义了它能够访问的设备和数据。opc服务器主要包括以下三种:数据访问服务器、报警/事件服务器和历史数据服务器。下面分别介绍这三种opc服务器。

  1) opc数据访问服务器

  opc数据访问服务器是opc规范中最重要的部分。opc数据访问服务器用于访问现场设备中的实时数据。opc数据访问服务器包含以下对象:

  opc server:包含服务器的基本信息,并作为opc group对象的容器。

  opc group:包含opc group对象的基本信息,并提供组织和访问opc item的方法。

  opc item:真正与现场数据源相连接。

  opc server对象决定了服务器能够连接哪些数据源,客户通过server对象的接口访问此对象,在server对象中建立管理group对象,并最终获得需要的数据源数据。

  opc group提供组织数据的方法,例如在item和opc客户之间建立连接、opc客户访问哪些item、每个item更新的时间间隔等。opc item不能直接访问,必须通过相应的group访问。每个服务其中通常包含两种opc group,即public和private group,其中public group用于在多个客户之间共享信息,private group是每个客户私有的。

  客户在group中建立一个或多个item, item是opc服务器中与数据源真正的连接点,所有对item的访问都是通过group对象进行的。与每个item相关的属性包括:value、quality和time stamp。必须注意的是item并不是真正的数据源,它只是一个连接。opc group 和opc item的关系如图2所示。

 
  图2

  虽然opc数据访问服务器是用来从网络服务器上获取数据,但也可以用在许多别的地方。在最底层它可以用来从物理设备获取数据,并提交给scada或dcs(集散控制系统),或从scada或dcs获得数据,提交给上层的商业应用系统。

  opc规范还规定了数据访问服务器的一些其他的特性,例如:地址空间、服务器的组态、网络和同步等。

  2)报警/事件服务器

  工业现场中的报警信息可以看作是一种特殊的重要的数据源,报警/事件服务器的作用就是提供一种标准的接口,向报警/事件客户提供报警和事件信息。opc支持两种类型的报警/事件服务器:简单的和复杂的。简单服务器监测报警或事件,并提供给报警/事件客户;复杂服务器从多个数据源处(包括简单服务器)监测报警或事件信息,并向报警/事件客户提供信息。报警/事件客户也分为三类:操作站、报警/事件管理子系统和报警/事件logging组件。

  opc报警/事件服务器包含一系列的对象和接口,这些对象和接口向客户提供报警/事件信息。opc报警/事件服务器中涉及以下几个概念:

  报警(alarm):报警是一种非正常的状态。

  状态(condition):状态是opc 报警/事件服务器定义的,每个状态还可以包含若干个子状态(sub condition),状态最终是和现场数据项联系的(例如,现场的一个设备中的数据项fc001,对应两个属性hialarm和hihialarm,那么对应的opc 报警/事件服务器中就应有两个状态,分别是hialarm和hihialarm)。每一个状态都包含一个或多个子状态、属性和质量等属性。opc报警/事件服务器中定义状态机(state machine)处理相应的状态或子状态之间的变化。

  事件:opc规范中定义了三种事件。其中,状态相关的事件(condition_related event)定义描述了状态的变化,例如上面提到的fc001数据项的hialarm condition的变化就引发一个状态相关的事件;过程相关的事件(tracking_related events)指当客户与opc事件服务器中定义的数据项之间发生交互时引发的事件,例如,客户改变了服务器中定义的一个数据项的设定值;简单事件(simplified events)指除以上两种事件以外的任何事件,例如,服务器中定义的物理系统和设备的错误等。

  iopceventserver接口:任何实现iopceventserver接口的com对象都是opc event server。例如,如果一个opc实时数据服务器提供iopceventserver接口,那么它也是一个opc报警/事件服务器。

  area和opceventareabrowser对象:area是用户定义的,通常是现场设备的组合;opceventareabrowser用于在opc event server中浏览area。

  opceventsubscription对象:opc客户通过此对象订阅报警/事件。

  图3描述了opc event server的实现机制。

 
  图3

  3)历史趋势服务器

  opc定义了两种主要的历史趋势服务器:简单的与复合的历史趋势服务器。其中,简单服务器只完成简单的历史数据的存储,复合服务器除了完成数据的存储外,还提供数据的运算和分析工具。opc历史趋势服务器可以是单独的从opc数据访问服务器,或是从其他数据源中获取并存储数据的服务器,也可以是在现有的非opc历史趋势服务器上封装opc接口形成的。

  opc历史趋势服务器包含以下两个对象:

  iopchdaserver:负责历史数据的读、写;

  iopchdabrowser:用于浏览历史数据服务器的地址空间。

  opc结构中还包括:

  1) opc客户与opc服务器的关系

  客户端通过服务器提供的各种接口与其通讯,每个opc服务器(数据访问、报警/事件和历史趋势)都提供以下两种接口:custom接口和automation接口。其中, custom接口是必须提供的,而automation接口是可选的。c++程序通过custom接口与服务器通讯,vb程序通过automation接口与服务器通讯。

  2)本地与网络节点的选择

  由于opc建立在dcom基础之上,所以当客户访问网络节点时,要提供相应的opc服务器名称、网络节点名称和服务器定义的数据项名称。

  3)opc服务器浏览器

  由于opc服务器在系统中采用的注册方法只允许浏览本机的服务器信息,而不能浏览网络计算机上的服务器信息,所以opc架构中提供了opc服务器浏览器组件(opc server browser),使客户可以通过此组件浏览网络节点的服务器信息。


  开发与应用


  正是由于opc标准的开放性,越来越多的硬件和软件厂商推出了基于opc的产品,例如smar、factorysoft、fisher-rosemount等,并成立了相应的非盈利性的组织opc foundation(www.opcfoundation.org)。国内现在也在进行这方面的工作。到目前为止,我们已经开发出了一系列的服务器和客户端产品。服务器端包括与几大硬件厂商的产品对应的opc server。客户端为基于opc的开发工具,包括基于opc的activex控件(模拟指针仪表、模拟开关、历史数据显示等)、opc服务器浏览器和基于internet浏览器的现场数据显示软件等。用户可以利用这些组件快速高效地开发出自己的监控组态软件,通过opc server与现场设备连接。

  opc作为工业控制领域的一种新的标准,为硬件和软件开发商提供了新的商业机遇,也会进一步促进工业控制系统的发展。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值