作者:艾军张卫民单位:天津水泥工业设计研究院
摘要:OPC规范是由OPC基金会制定的一个工业标准,它规范了过程控制和生产自动化软件与用OPC服务器实现的硬件驱动程序之间的开放接口.OPC规范得到越来越多的工控领域硬件、软件制造商的承认和支持。本文介绍了OPC标准和它的体系结构、优势,数据存取接口技术规范,及在水泥行业的应用,并讨论了OPC规范客户端的开发。
在现在的DCS与PLC系统中,OPC一词的出现频率正越来广泛的应用。那么OPC是什么呢?他有什么作用,在目前的应用情况又如何。
OPC(OLEForProcessControl,用于过程控制的OLE)是一个工业标准。它由一些世界上占地位的自动化系统和硬件、软件公司与微软(Microsoft)紧密合作而建立的。这个标准定义了应用Microsoft操作系统在基于PC的客户机之间交换自动化实时数据的方法。〔O代表OLE(对象链接和嵌入),P(process过程),C(control控制)。OLE已从面向对象重新定义为基于对象并更名为ActiveX〕。管理OPC标准的组织是OPC基金会。OPC基金会现有会员已超过230家,遍布,包括世界上所有主要的自动化控制系统、仪器仪表及过程控制系统的公司。其前身由一个Fisher-Rosemount、RockwellSoftware、Siemens、Opto22、Inlution和IntuitiveTechnology等大公司组成专门的工作组,仅仅用了短短的一年时间便开发出一个基本的可运行的OPC技术规范。在1996年8月发布了简化的、一步到位的解决方案。
OPC基于微软的OLE(现在的ActiveX)、COM(部件对象模型)和DCOM(分布式部件对象模型)技术。Micosoft是OPC基金会的一个成员,已给予OPC基金会强有力的支持。ActiveX/COM技术定义各种不同的软件部件如何交互使用和分享数据。其宗旨是在MicrosoftCOM、DCOM和ActiveX技术的功能规程基础上开发一个开放的和互操作的接口标准,这个标准的目标是促使自动化/控制应用、现场系统/设备和商业/办公室应用之间具有更强大的互操作能力。概括的说,OPC简化了来自不同供应厂商的自动化部件与PC应用程序(例如可视化化和办公系统)之间的接口。不论过程中采用什么软件或设备,OPC为多种多样的过程控制设备之间进行通信提供了公用的接口。OPC包括一整套接口、属性和方法的标准集,用于过程控制和制造业自动化系统。
OPC提供众多的优点
在过程控制和机械制造等工业领域的“即插即用”
OPC使自动化环境中的即插即用设想成为现实。OPC允许在不同供应商开发的硬件装置和应用软件之间通过共同的接口进行数据交换,Windows技术和OPC接口使之有可能将可编程序控制器(PLC)的硬件和软件组合在一起,而不需要开发大量的通讯接口程序,由此减少了不少人力物力
OPC使从办公室产品到过程数据的访问简单易行而且灵活可靠
OPC和现场总线的标准化
OPC提供现场总线以外的重要的附加功能,现场总线领域标准化主要目标是快速、可靠的数据传输。OPC使标准通讯达到这样的程度,即使任何OPC服务器和应用软件联网运行而不会产生任何问题。
OPC与自动化软件
通常说来,OPC提供了对于不同厂商的设备和软件包的内部连接能力,在OPC诞生以前,企业中的应用程序与设备的I/O驱动软件(SoftwareDriver)之间的关系如图1所示。
在图1中,不同的应用程序和不同的厂商的硬件的驱动程序之间存在着大量的连接问题,需要开发各种特定的通信程序。OPC标准的制定,使得所有的通信连接问题变得简单,它提供了一种软件的总线形式(图2),这样,应用就变得简单、轻巧、更易于使用,应用程序只需知道如何从OPC数据源获取数据(OPCClient),设备的驱动程序只需知道如何以简单的格式提供数据(OPCServer)。
另一方面,虽然OPC解决的问题主要是I/O驱动程序,但在图3中也可以看到它不仅应用在设备和SCADA,SoftPLC和DCS系统之间,同时也应用在SCADA,SoftPLC或DCS内核以及HMI,趋势和报表等需要使用OPC数据的应用程序之间。在这样的结构中,SCADA系统、DCS系统或Softlogic系统,变成了一个“智能”设备。
OPC技术规范
OPC技术规范是以Microsoft的OLE/COM技术为基础,定义了一组接口规范。它包括OPC自动化接口(AutomationInterface)和OPC定制接口(CustomInterface)。另外,OPC技术规范定义的是OPC服务器程序和客户机程序进行通讯的接口或通讯的方法。OPC的技术小组也分为:DataAccess,HistoricalAccess,AlarmsandEvents,Security和Batch。当然目前应用zui多的还仅是DataAccess。OPC基金会其目标是制订一套针对于控制对象和设备的公共接口标准,它可以让任何OPC客户机去请求和获取OPC服务器的数据。这里的OPC客户机和服务器可以是任何厂商的任何产品,通过这种方式,繁杂的各类设备驱动程序问题可以消除,同时也加速了数据的传输。
基于OPC的软件结构如图。
由图可见,应用程序与OPC服务器之间必须有OPC接口,OPC规范提供了两套标准接口:Custom标准接口,OLE自动化标准接口。通常在系统设计中采用OLE自动化标准接口。
OLE自动化标准接口,及采用OLE自动化技术进行调用,其技术为上节所述的OLE自动化技术。OLE自动化标准接口定义了以下三层接口,依次呈包含关系。
OPCServer:OPC启动服务器,获得其他对象和服务的起始类,并用于返回OPCGroup类对象;
OPCGroup:存储由若干OPCItem组成的Group信息,并用于返回OPCItem类对象。
OPCItem:存储具体Item的定义、数据值、状态值等信息。
由于OPC规范基于OLE/COM技术,同时OLE/COM的扩展远程OLE自动化与DCOMTCP/IP等多种网络协议,因此可以将OPC客户、服务器在物理上分开,分布于网络不同节点上。
OPC规范可以应用在许多应用程序中,如它们可以应用于从SCADA或者DCS系统的物理设备中获取原始数据的zui低层,它们同样可以应用于从SCADA或者DCS系统中获取数据到应用程序中。实际上,OPC设计的目的就是从网络上某节点获取数据。
OPC对象与接口:OPC服务器对象提供了对数据源进行存取(读/写)或通讯的方法,而数据源可以是现场的I/O设备,也可以是其它的应用程序。通过接口,OPC客户应用程序可以同时连到由一个或多个厂商提供的OPC服务器上。OPC服务器封装了与I/O控制设备进行通讯和访问数据的类型与名字及进行设备操作的代码。
OPC数据存取(DataAccess)规范:总体来说,OPC数据存取规范包含几个对象:服务器对象(ServerObject)、组对象(GroupObject)、项对象(ItemObject)。OPC服务器对象维护着服务器的信息,同时也是OPC组对象的包容器。OPC组对象维护着它自己的信息并提供包容OPC项的机制,同时管理OPC项。
OPC组提供客户应用程序组织数据的机制,例如:一个组可以包含一个显示面板所有数据的项,并可对数据进行读写。在一些特殊情况下,还可以在组里建立客户应用程序与项的连接,并可以根据需要禁止或允许这种连接。OPC客户应用程序还可以修改OPC服务器向OPC客户应用程序提交数据变化的刷新数率。
OPC项代表了与服务器里数据源的连接。从定制接口(CustomInterface)角度来看,一个OPC项不能被OPC客户程序作为一个对象来进行操作,因此,在OPC项中没有定义外部接口。所有对OPC项的操作都是利用OPC项的包容器(OPC组)或OPC项的定义来进行的。
每个OPC项包含值(Value)、品质(Quality)和时间标签(TimeStamp)。