OPC技术及其在SCADA系统中的应用
2010-07-03李世学王小进余光洪
李世学 王小进 余光洪
(中国船舶重工集团公司七一二研究所,武汉430064)
1 引言[1]
目前,工业控制中的各种仪器、仪表、PLC和单片机系统等都提供了与计算机的通讯协议,为计算机控制系统的设计提供了极大的方便。但是,由于不同的厂商提供的协议不同,甚至同一厂商的不同类型设备和计算机通信的协议也不相同,所以要与这些设备交换数据,编写接口程序就比较复杂。近年来,OPC技术的出现很好地解决了这一难题,OPC技术采用开放式数据交互,能使来自不同公司的软硬件组成一个有机的整体。它传输可靠,速度快,而且适于大批量数据交换,目前已经成为工控行业新的通讯标准,广泛应用在工控行业的各个领域。OPC技术完全支持分布式应用和异构环境下应用程序之间软件的无缝集成和互操作性,给工业控制系统应用程序间的通信建立一套符合工业控制要求的通信接口规范,使控制软件可以高效、稳定地对硬件设备进行数据存取操作,系统应用软件之间也可以灵活地进行信息交互,极大的提高了控制系统的互操作性和适应性。
2 OPC规范及应用[2]
OPC是OLE for Process Control 的缩写,是微软公司的OLE技术在过程控制方面的应用,它以COM和DCOM为基础, 通过COM对象进行交互,每个对象规范了不同的函数.COM 提供了一种二进制的接口标准,使得各软件组件可以用统一的方式进行交互。采用OPC后,现场设备与系统的连接更加简单、灵活、方便,针对硬件的驱动程序不再由软件厂家开发,而是由硬件厂家提供统一的OPC接口,从而避免了软件厂家的重复开发,大大降低了开发费用,图1为基于OPC的软件结构。
图1 OPC 的软件结构
图2 基于OPC 的SCADA系统结构
OPC规范可以应用在许多应用程序中,如它们可以应用于从 SCADA 或者 DCS系统的物理设备中获取原始数据,也可以应用于从 SCADA或者 DCS系统中获取数据到应用程序中。实际上,OPC设计的目的就是从网络上某节点获取数据。
OPC按照面向对象的原则,将一个应用程序作为一个对象封装起来,只将接口方法暴露在外面,客户以统一的方式去调用这个方法,从而保证软件对客户的透明性,使得用户完全从底层的开发中脱离出来。因此可以将OPC客户机、服务器在物理上分开,分布于不同的网络节点上,这为实现分布式SCADA系统提供了一种实现方式。图2为基于OPC的SCADA系统结构。
3 OPC服务器的设计[3]
OPC规范描述了 OPC服务器需要实现的C0M对象及其接口,不管现场设备以何种形式存在,客户都要以统一的形式去访问,从而保证了软件对客户的透明性。按照这种需求,基于OPC技术的SCADA系统可由两部分组成,一部分是OPC服务器,主要负责协议处理与提供标准OPC接口服务;另一部分是SCADA应用程序,通过OPC提供给客户的标准接口访问数据,完成SCADA数据处理、图形分析、报表输出、事故追忆和报警处理等。其中,OPC服务器部分,是建立在COM/DCOM技术基础上,它以COM组件的形式存在,可以分为进程内组件、进程间组件和远程组件三类。
OPC服务器由3类对象组成,相当于3种层次上的接口:服务器(Server)、组(Group)和数据项(Item)。服务器对象(Server)拥有服务器的所有信息,同时也是组对象(Group)的容器,一个服务器对应于一个OPC Server,即一种设备的驱动程序。在一个Server中,可以有若干个组。组对象(Group)拥有本组的所有信息,同时包容并逻辑组织OPC数据项(Item)。项对象是读写数据的最小逻辑单位,一个项与具体的位号相连,通常指向设备的一个寄存器单元。OPC在SCADA中的体系结构如图3所示[5]。
图3 OPC在SCADA中的体系结构
在本系统中,OPC服务器程序为进程间组件。主要实现了三个类对象 CServer,CGroup,和CItem。其中CServer和CGroup类对象是COM对象。CServer对象封装了 IOPC Server接口,IOPC Browse Server Address Space接口,IOPCItemProperties 接口,IOPCCommon 接口,实现对OPC服务器信息的维护,并作为OPC组对象CGroup的包容器,提供组织OPC组对象的方法,并管理OPC组对象。组对象CGroup封装了 IOPCGroupStateMgt接口,IOPCASyncIO2接口,IOPCItemMgt接口,IOPCSyncIO接口。它维护有关自身信息,提供包容 OPC项对象的机制,管理 OPC项对象,提供了对项对象进行读/写和通信的接口方法。CItem类实现OPC项对象,提供对数据源的访问方法,数据源可以是现场I/O设备,也可以是其它软件程序。下面是基于ATL模板的服务器接口、浏览服务器地址空间接口、项属性接口的定义和实现[4]。
4 结束语
利用OPC技术实现通讯可靠性高、速度快,目前已成为自动化系统、现场设备与工厂办公管理应用程序之间的有效通讯方式,使不同系统相互之间的数据交换得以简捷化和标准化,极大地方便了硬件开发商、软件开发商和终端用户。SCADA软件中集成OPC技术可以实现从过程控制到以上级系统间的紧密连接和完全开放,形成了真正意义上的全开放、可互操作的工业控制系统,实现管控一体化。
[1]徐国君, 李成利.OPC技术及其在工业拧制中的应用[J].青岛科技大学学报(自然科学版), 2003.
[2]Http: //www.opcfoundation.org OPC Data Access Custom Specification 2.0.
[3]潘爱民. COM 原理[M]. 北京: 清华大学出版社,2000.
[4]Don Box, 潘爱民译.COM本质论[M]. [s.l.]: 中国电力出版社, 2001.
[5]高翔.基于OPC接口访问过程控制的实现[J].燃料与化工, 2006: 37.