OPC技术在监控系统中的应用(司纪刚 徐洁)

** 0 引言 **

随着计算机科学技术、工业控制等方面的新技术的迅速发展,计算机监控系统由早期的集中式监控向全分布式的方向发展,计算机监控系统软件也从早期面向功能的系统,随着面向对象技术、分布式对象计算、多层次 Client/Server 技术的成熟,发展为面向具体现场设备为特征的面向对象的计算机监控系统。

同时,计算机监控系统规模越来越大,不同厂家生产的现场设备的种类在不断的增加,由于不同厂家所提供的现场设备的通讯机制并不相同,计算机监控系统软件需要开发的设备通信驱动程序也就越来越多,而基于 COM/DCOM 技术的 OPC 技术,提供了一个统一的标准,不同厂商只要遵循 OPC 技术标准就可以实现软硬件的互操作性。

** 1 ** ** OPC简介 **

** 1 ** ** . 1 OPC ** ** 的概念及技术优势 **

OPC(OLE for Process Control)是为过程控制设计的OLE技术,由一些世界上占领先地位的自动化系统和硬件、软件公司与微软(Microsoft)紧密合作而建立的, OPC 基金会负责 OPC 规范的制定和发布。 OPC 提出了一套统一的标准,采用 CLIENT/SERVER 模式,针对硬件设备的驱动程序由硬件厂商或专门的公司完成,提供具有统一 OPC 接口的 SERVER 程序,软件厂商按照 OPC 标准访问 SERVER 程序,即可实现与硬件设备的通信。

与传统的方式相比, OPC 技术具有以下优势:

a. 硬件厂商熟悉自己的硬件设备,因而设备驱动程序性能更可靠、效率更高。

b. 软件厂商可以减少复杂的设备驱动程序的开发周期,只需一套遵循 OPC 标准的程序就可以实现与硬件设备的通信,并可以把人力、物力资源投入到系统功能的完善中。

c. 可以实现软硬件的互操作性。

OPC 把软硬件厂商区分开来,使得双方的工作效率有了很大的提高,因此

OPC 技术得到了广大软硬件厂商的支持,并迅速发展。 国家电力公司电力自动化研究院自动控制所开发的 EC2000 计算机监控系统软件对提供 OPC Server 的设备全面支持。

** 1 ** ** . 2 OPC ** ** 技术的本质—— COM/DCOM **

随着计算机网络技术的发展,计算机监控系统也普遍的采用了分布式结构,因而系统的异构性是一个非常显著的特点。 OPC 技术本质是采用了 Microsoft 的 COM/DCOM (组件对象模型 / 分布式组件对象模型) 技术, COM主要是为了实现软件复用和互操作,并且为基于WINDOWS的程序提供了统一的、可扩充的、面向对象的通讯协议,DCOM是COM技术在分布式计算领域的扩展, 使 COM 支持在局域网、广域网甚至 Internet 上不同计算机的对象之间的通讯 。

1 ** . 3 OPC ** ** 规范 ** ** **

基于 COM/DCOM 技术的 OPC 采用客户 / 服务器结构,为各厂家提供了一个公用的数据交换标准和规范,各个硬件设备厂家为其设备提供一个符合 OPC 规范接口的服务器,其他应用程序通过 OPC 接口对 OPC 服务器的访问实现对硬件设备的读写,由此软件开发者只需要开发一套 OPC CLIENT 程序,而不需要了解各硬件设备的通讯协议,也不需要为市场上几百种的硬件设备写专门的驱动程

序。

OPC 规范主要包括 OPC 服务器( SERVER )和 OPC 应用程序( CLIENT )两部分。其中一个 OPC CLIENT 可以连接一个或多个 OPC 服务器,而多个 OPC CLIENT 也可以同时连接一个 OPC 服务器,如图 1 所示。

** ![](http://dev.csdn.net/article/59/C:/Documents and Settings\sijigang\My Documents\My Pictures\未命名.JPG)
图 1 ** ** : OPC CLIENT/OPC SERVER ** ** 关系 **

** 2 OPC服务器组成 **

OPC服务器由3类对象组成:服务器(SERVER)、组(GROUP)、和数据项(ITEM)。

服务器对象保存服务器和服务器作为 OPC组对象容器的所有信息。

OPC组对象保存组对象的信息,并提供组织OPC数据项的机制。OPC组对象为客户提供了组织数据的一种方法。例如,一个组可能代表一个特殊设备的数据项。OPC CLIENT可以通过组对象来读写数据,并可以设定OPC服务器应该提供给OPC CLIENT的数据更新速率。 OPC 规范定义了 2 种组对象:公共组和私有组。公共组由多个客户共享,局部组只隶属于一 OPC 客户。全局组对所有连接在服务器的应用程序都有效,而私有组只能对建立他的 CLIENT 有效。 在一个 SERVER中,可以有若干个组。

OPC 数据项代表到 OPC 服务器的数据源连接,并不是数据源,数据项是读写数据的最小逻辑单位(在实际应用中,可能是物理设备的寄存器或寄存器的某一位),数据项不提供对外接口,不能作为单独的对象供 OPC CLIENT 访问,必须隶属于某一个组,所有对 OPC 数据项的访问必须经过包含 OPC 数据项的组对象,即必须通过组对象才可以访问到 OPC 数据项。在一个组对象中,客户可以加入多个 OPC 数据项。每个数据项包括 3 个变量:值( Value )、品质 (Quality) 和时间戳( Time Stamp )。数据值是以 VARIANT 形式表示的。

** ![](http://dev.csdn.net/article/59/C:/Documents and Settings\sijigang\My Documents\My Pictures\未命名1.JPG)
图 2 ** ** : Server/Group/Item ** ** 关系 ** ** **

** 3 OPC CLIENT 应用程序 **

3.1 OPC接口

OPC规范有两种接口方式:自定义接口(Custom Interface)和自动化接口

( Automation Interface)。自定义接口是一组COM接口,主要用于采用C++语言的的应用程序开发;自动化接口是自动化的OLE接口,主要用于采用VB,DELPHI等 基于脚本编程语言 的应用程序开发。

** 图 3 ** ** :两种接口的 OPC ** ** 服务器通信方式 **


自动化接口


自定义接口


C++

客户程序


VB

客户程序


OPC 服务器(本地、进程内、远程)


![](http://dev.csdn.net/article/59/C:/Documents and Settings\sijigang\My Documents\My Pictures\未命名2.JPG)
图3 ** 两种接口的 OPC 服务器通信方式 **
对于客户端应用程序的开发,采用自定义接口的方式运行效率高,但开发难度大;采用自动化接口的方式运行效率低,但开发简单。利用这两种接口与OPC服务器的通信见图3。

对于分布式的对象上的OPC客户程序的开发,OPC标准采用DCOM技术实现服务器和客户程序的通讯。

3.2访问OPC服务器进行数据交互

由图 2可以看出,OPC服务器可分为三层结构,SERVER,GROUP和ITEM。

在实际访问 OPC 服务器时,第一步要完成 COM 库的初始化,然后创建一个服务器对象,建立与服务器的连接,获得服务器对象的接口;第二步要添加组对象,

并设定数据刷新速率,死区等参数;第三步添加数据项对象,数据项对象有只读,只写等属性,可以根据实际需要设置属性。

OPC 客户和 OPC 服务器进行数据交互有 2 种访问方式:同步和异步方式。

同步方式实现较为简单,客户向服务器发出读写请求,然后等待服务器返回信息,当客户数据较少而且同服务器交互的数据量比较少的时候可以采用这种方式,然而当网络堵塞或大量客户访问时,会造成系统的性能效率下降。

异步方式实现较为复杂,客户向服务器发出读写请求后,服务器立刻返回信息表示请求已接受,客户可以进行其他处理,当服务器完成读写操作后,通过调用回调函数,通知客户程序操作完成,并传递相应的信息,因此异步方式的效率更高,能够避免多客户大数据请求的阻塞,并可以最大限度地节省 CPU 和网络资源。另外一种异步方式是服务器周期性的扫描缓冲区的数据,发现数据变化范围超过死区后,立刻通知客户程序,传递相应信息。

3.3 应用实例

以太网


串口


SLC500


工控机


RSLinx OPC Server


硬件驱动程序


数据缓冲区


OPC 接口



OPC 客户程序


EC2000 现地软件


上位机系统


** 图 ** ** 4 ** ** :基于 ** ** OPC ** ** 技术的 ** ** SLC500 ** ** 通讯系统结构 ** ** **


浙江长潭水电站计算机监控系统采用国家电力公司电力自动化研究院自动控制所研制的的 EC2000 计算机监控系统,由上位机系统、三套机组 LCU 和一套公用 LCU 通过以太网连接组成,上位机系统采用 EC2000 监控软件,机组 LCU 和公用 LCU 均采用工控机 +PLC 的模式, PLC 采用 罗克韦尔 (RockWell) 公司的 SLC500 (串口)型 PLC ,并采用 罗克韦尔 公司的 RSLINX 通讯软件。

RSLINX 通讯软件支持最新的 OPC 技术,提供符合 OPC 规范的 OPC 服务器 (RSLinx OPC Server) ,经过简单配置后实现与 SLC500 的连接。现地工控机监控软件采用 OPC 技术(自定义接口和异步方式),通过 OPC 客户程序访问 RSLINX 内含的 OPC 服务器( RSLinx OPC Server ),实现与 SLC500 的通讯。系统结构如图 4 所示。

![](http://dev.csdn.net/article/59/C:/Documents and Settings\sijigang\My Documents\My Pictures\未命名3.JPG)

在其他工程中先后采用 OPC 技术实现了同 罗克韦尔 公司的 SLC500 (以太网) PLC , CONTROL LOGIX 系列 PLC (以太网), SIMENS 公司的 S7 系列 PLC (以太网, Profibus )通讯,并成功的应用于云南大寨电厂、湖南洪江电厂闸门等计算机监控系统中。

** 4 ** ** 结束语 **

目前,已有 270 多家公司加入了 OPC 基金会, OPC 技术在短时间内取得了飞速发展,现在国内外自动化领域的软硬件产品都在做这方面的开发工作,逐步实现了软硬件之间的标准化。

参考文献:

1. OPC Foundation , OPC Data Access Custom Interface Specification , Http:www.opcfoundation.org

2. David J , Kruglinski , Visual C++ 技术内幕 [M] ,北京:清华大学出版社, 1999

3. 马国华,监控组态技术及其应用,北京:清华大学出版社, 2001

Published At
Categories with Web编程
Tagged with
comments powered by Disqus