OPC(OLE for Process Control),用于过程控制的OLE,是一个工业标准,管理这个标准的国际组织是OPC基金会,OPC基金会现有会员已超过220家。遍布全球,包括世界上所有主要的自动化控制系统、仪器仪表及过程控制系统的公司。基于微软的OLE(现在的Active X)、COM(部件对象模型)和DCOM(分布式部件对象模型)技术。OPC包括一整套接口、属性和方法的标准集,用于过程控制和制造业自动化系统。

中文名

对象链接与嵌入的过程控制

外文名

OLE for Process Control

特点

高效性、可靠性、开放性

应用平台

Windows

所属学科

工业自动化

类别

协议

别名

OPC,OPC DA,OPC UA

发布时间

1996年

发展历史

OPC是一项应用于自动化行业及其他行业的数据安全交换可互操作性标准。它独立于平台,并确保来自多个厂商的设备之间信息的无缝传输,OPC基金会负责该标准的开发和维护。

OPC标准是由行业供应商、终端用户和软件开发者共同制定的一系列规范。这些规范定义了客户端与服务器之间以及服务器与服务器之间的接口,比如访问实时数据、监控报警和事件、访问历史数据和其他应用程序等,都需要OPC标准的协调。

OPC标准于1996年首次发布,其目的是把PLC特定的协议(如Modbus,Profibus等)抽象成为标准化的接口,作为“中间人”的角色把通用的OPC“读写”请求转换成具体的设备协议来与HMI/SCADA系统直接对接,反之亦然。就此出现了一个完整的产品行业,终端用户可以借助其来最优化产品,通过OPC协议来实现系统的无缝交互。

最初,OPC标准仅限于Windows操作系统。因此,OPC是OLE for Process Control的缩写(中文意思:用于过程控制的OLE)。我们所熟知的OPC规范一般是指OPC Classic,被广泛应用于各个行业,包括制造业,楼宇自动化,石油和天然气,可再生能源和公用事业等领域。

随着在制造系统以服务为导向架构的引入,如何重新定义架构来确保数据的安全性?这给OPC带来了新的挑战,也促使OPC基金会创立了新的架构----OPC UA,以满足这些需求。与此同时,OPC UA也为将来的开发和拓展提供了一个功能丰富的开放式技术平台。

OPC基金会历史
1990s-1995微软操作系统统治了整个工业自动化领域。自动化供应商开始在其产品中使用微软的COM和DCOM技术。
1995-1996自动化供应商Fisher-Rosemount、Intellution、Opto22和Rockwell Software形成了一个工作组,负责开发基于COM和DCOM的数据访问标准,称之为OPC,即用于过程控制的OLE(Microsoft Object Linking&Embedding)的缩写。
1996-1998该工作组成立的首年8月份就发布了用于数据访问(DA)的简化的OPC规范1.0版本。其它的软硬件供应商也开始使用OPC作为其互操作性的机制。但随着时间的推移,人们越来越清晰地意识到行业内需要一个可提供合规性和互操作性的标准检验及认证的正式组织。因此,OPC基金会于9月在芝加哥ISA展会上成立。
1998-1999OPC基金会开始将其现有规范放到网上为更多的企业服务。
1999-2001OPC报警和事件(OPC AE)规范发布。
展开表格

定义解释

OPC全称是Object Linking and Embedding(OLE) for Process Control,它的出现为基于Windows的应用程序和现场过程控制应用建立了桥梁。在过去,为了存取现场设备的数据信息,每一个应用软件开发商都需要编写专用的接口函数。由于现场设备的种类繁多,且产品的不断升级,往往给用户和软件开发商带来了巨大的工作负担。通常这样也不能满足工作的实际需要,系统集成商和开发商急切需要一种具有高效性、可靠性、开放性、可互操作性的即插即用的设备驱动程序。在这种情况下,OPC标准应运而生。OPC标准以微软公司的OLE技术为基础,它的制定是通过提供一套标准的OLE/COM接口完成的,在OPC技术中使用的是OLE2技术,OLE标准允许多台微机之间交换文档、图形等对象。

COM是Component Object Model的缩写,是所有OLE机制的基础。COM是一种为了实现与编程语言无关的对象而制定的标准,该标准将Windows下的对象定义为独立单元,可不受程序限制地访问这些单元。这种标准可以使两个应用程序通过对象化接口通讯,而不需要知道对方是如何创建的。例如,用户可以使用C++语言创建一个Windows对象,它支持一个接口,通过该接口,用户可以访问该对象提供的各种功能,用户可以使用Visual Basic,C,Pascal,Smalltalk或其它语言编写对象访问程序。在Windows NT4.0操作系统下,COM规范扩展到可访问本机以外的其它对象,一个应用程序所使用的对象可分布在网络上,COM的这个扩展被称为DCOM(Distributed COM)。

通过DCOM技术和OPC标准,完全可以创建一个开放的、可互操作的控制系统软件。OPC采用客户/服务器模式,把开发访问接口的任务放在硬件生产厂家或第三方厂家,以OPC服务器的形式提供给用户,解决了软、硬件厂商的矛盾,完成了系统的集成,提高了系统的开放性和可互操作性。

OPC服务器通常支持两种类型的访问接口,它们分别为不同的编程语言环境提供访问机制。这两种接口是:自动化接口(Automation interface);自定义接口(Custom interface)。自动化接口通常是为基于脚本编程语言而定义的标准接口,可以使用VisualBasic、Delphi、PowerBuilder等编程语言开发OPC服务器的客户应用。而自定义接口是专门为C++等高级编程语言而制定的标准接口。OPC现已成为工业界系统互联的缺省方案,为工业监控编程带来了便利,用户不用为通讯协议的难题而苦恼。任何一家自动化软件解决方案的提供者,如果它不能全方位地支持OPC,则必将被历史所淘汰。

1、在控制领域中,系统往往由分散的各子系统构成;并且各子系统往往采用不同厂家的设备和方案。用户需要,将这些子系统集成,并架构统一的实时监控系统。

2、这样的实时监控系统需要解决分散子系统间的数据共享,各子系统需要统一协调相应控制指令。

3、再考虑到实时监控系统往往需要升级和调整。

4、就需要各子系统具备统一的开放接口。

5、OPC(OLE for Process Control)规范正是这一思维的产物。

6、OPC基于Microsoft公司的Distributed interNet Application (DNA) 构架和 Component Object Model (COM) 技术的,根据易于扩展性而设计的。OPC规范定义了一个工业标准接口。

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

8、OPC定义了一个开放的接口,在这个接口上,基于PC的软件组件能交换数据。它是基于Windows的OLE——对象链接和嵌入、COM——部件对象模型(Component Object Model)和DCOM——分布式COM(Distributed COM)技术。因而,OPC为自动化层的典型现场设备连接工业应用程序和办公室程序提供了一个理想的方法。

应用领域

1、工控解决方案用户

2、楼控解决方案用户

3、工控解决方案厂商

4、楼控解决方案厂商

5、工控解决方案集成商

6、楼控解决方案集成商

7、所有自动化领域

OPC是为了连接数据源(OPC服务器)和数据的使用者(OPC应用程序)之间的软件接口标准。数据源可以是PLC,DCS,条形码读取器等控制设备。随控制系统构成的不同,作为数据源的OPC服务器既可以是和OPC应用程序在同一台计算机上运行的本地OPC服务器,也可以是在另外的计算机上运行的远程OPC服务器。

OPC接口既适用于通过网络把最下层的控制设备的原始数据提供给作为数据的使用者(OPC应用程序)的HMI(硬件监督接口)/SCADA(监督控制与数据采集),批处理等自动化程序,以至更上层的历史数据库等应用程序,也适用于应用程序和物理设备的直接连接。所以OPC接口是适用于很多系统的具有高厚度柔软性的接口标准。

解决问题

OPC诞生以前,硬件的驱动器和与其连接的应用程序之间的接口并没有统一的标准。例如,在FA(FactoryAutomation)——工厂自动化领域,连接PLC(Programmable Logic Controller)等控制设备和SCADA/HMI软件,需要不同的FA网络系统构成。根据某调查结果,在控制系统软件开发的所需费用中,各种各样机器的应用程序设计占费用的7成,而开发机器设备间的连接接口则占了3成。此外,在PA(Process Automation)——过程自动化领域,当希望把分布式控制系统(DCS——Distributed Control System)中所有的过程数据传送到生产管理系统时,必须按照各个供应厂商的各个机种开发特定的接口,例如,利用C语言DLL(动态链路数据库)连接DDE(动态数据交换)服务器或者利用FTP(文件传送协定)的文本等设计应用程序。如由4种控制设备和与其连接的监视、趋势图以及表报3种应用程序所构成的系统时,必须花费大量时间去开发分别对应设备A,B,C,D的监视,趋势图以及表报应用程序的接口软件共计要用12种驱动器。同时由于系统中共存各种各样的驱动器,也使维护运转环境的稳定性和信赖性更加困难。

而OPC是为了不同供应厂商的设备和应用程序之间的软件接口标准化,使其间的数据交换更加简单化的目的而提出的。作为结果,从而可以向用户提供不依靠于特定开发语言和开发环境的可以自由组合使用的过程控制软件组件产品。

利用OPC的系统,是由按照应用程序(客户程序)的要求提供数据采集服务的OPC服务器,使用OPC服务器所必需的OPC接口,以及接受服务的OPC应用程序所构成。OPC服务器是按照各个供应厂商的硬件所开发的,使之可以吸收各个供应厂商硬件和系统的差异,从而实现不依存于硬件的系统构成。同时利用一种叫做Variant的数据类型,可以不依存于硬件中固有数据类型,按照应用程序的要求提供数据格式。

利用OPC使接口标准化可以不依存于各设备的内部结构及它的供应厂商来选用监视,趋势图以及表报应用程序。

为什么开发自主OPC Server和OPC Gateway?

1、国外原厂商的高价格

2、国外原厂商面对项目的不灵活性

3、国内项目中子系统的多样性难以提供DRIVER

4、自主OPC服务器追求的是稳定、实时、迅速。

5、众多子系统的不规范性

6、总包项目在投标前后可能出现的不一致性

7、价格昂贵的原厂平台服务器软件

8、总包商集成是否投入大量的人力开发

9、平台和子系统的兼容性

10、建立了OPC平台和子系统的互通

11、解决厂商和集成商在项目集成的烦恼

12、解决厂商和集成商分散资源进行二次开发

13、解决项目中子系统厂商的困扰

14、为上下位的数据通讯提供透明的通道