浅谈OPC技术及其在工业控制领域应用 点击:254 | 回复:7



wxck

    
  • 精华:8帖
  • 求助:0帖
  • 帖子:472帖 | 1740回
  • 年度积分:0
  • 历史总积分:6871
  • 注册:2003年7月14日
发表于:2008-08-05 10:00:51
楼主
1. OPC技术的产生

随着工业生产的不断发展,工业控制软件取得了长足的进步。然而,由于生产规模的扩大和过程复杂程度的

提高,工业控制软件设计面临着巨大的挑战,那就是要集成数量和种类不断增多的现场信息。在传统的控制

系统中,智能设备之间及智能设备与控制系统软件之间的信息共享是通过驱动程序来实现的,不同厂家的设

备又使用不同的驱动程序,迫使工业控制软件中包含了越来越多的底层通信模块。另外,由于相对特定应用

的驱动程序一般不支持硬件特点的变化,这样使得工业控制软硬件的升级和维护极其不便。还有,在同一时

刻,两个客户应用一般不能对同一个设备进行数据读写,因为它们拥有不同的、相互独立的驱动程序,同时

对同一个设备进行操作,可能会引起存取冲突,甚至导致系统崩溃。OPC技术的出现则很好的解决了这些问题



OPC是Object Linking and Embedding(OLE)for Process Control的缩写,它是微软公司的对象链接和嵌

入技术在过程控制方面的应用。OPC以OLE/COM/DCOM技术为基础,采用客户/服务器模式,为工业自动化软件

面向对象的开发提供了统一的标准,这个标准定义了应用Microsoft操作系统在基于PC的客户机之间交换自动

化实时数据的方法。采用这项标准后,硬件开发商将取代软件开发商为自己的硬件产品开发统一的OPC接口程

序,而软件开发者可免除开发驱动程序的工作,充分发挥自己的特长,把更多的精力投入到其核心产品的开

发上。这样不但可避免开发的重复性,也提高了系统的开放性和可互操作性。

2. OPC规范概述
OPC是一个工业标准,它是由一些世界上著名的自动化系统和硬件、软件公司和Microsoft(微软)紧密合作而建立的。OPC包括一整套接口,属性和方法的标准集,提供给用户用于过程控制和工业自动化应用。
OPC是以OLE/COM机制作为应用程序的通讯标准。OLE/COM技术定义了各种不同的软件部件如何交互使用和分享数据,OLE/COM是一种客户/服务器模式,具有语言无关性、代码重用性、易于集成性等优点。OPC规范了接口函数,不管现场设备以何种形式存在,客户都以统一的方式去访问,从而保证软件对客户的透明性,使得用户完全从低层的开发中脱离出来,提供通用的接口用于各种过程控制设备之间的通讯,不论过程中采用什么软件和设备。

OPC技术的实现由两部分组成,OPC服务器和OPC客户应用部分。OPC服务器完成的工作就是收集现场设备的数据信息,然后通过标准的OPC接口传送给OPC客户端应用。OPC客户端则通过标准的OPC接口接收数据信息。在具体的实现过程中,用户可以根据自己的需要挑选相应的规范来使用。
OPC服务器通常支持两种类型的访问接口,它们分别为不同的编程语言环境提供访问机制。
这两种接口是:自动化接口(Automation interface);自定义接口(Custom interface)。通常在系统设计中采用OLE自动化标准接口。自动化接口通常是为基于脚本编程语言而定义的标准接口,可以使用VisualBasic、Delphi、PowerBuilder等编程语言开发OPC服务器的客户应用。而自定义接口是专门为C++等高级编程语言而制定的标准接口。
 OLE自动化标准接口,及采用OLE自动化技术进行调用,其技术为OLE自动化技术。OLE自动化标准接口定义了以下三层接口,依次呈包含关系。

  OPC Server:OPC启动服务器,获得其他对象和服务的起始类,并用于返回OPC Group类对象;

OPC Group:存储由若干OPC Item组成的Group信息,并用于返回OPC Item类对象。

  OPC Item:存储具体Item 的定义、数据值、状态值等信息。
 
由于OPC规范基于OLE/COM技术,同时OLE/COM的扩展远程OLE自动化与DCOM技术支持TCP/IP等多种网络协

议,因此可以将OPC客户、服务器在物理上分开,分布于网络不同节点上。


  OPC规范可以应用在许多应用程序中,如它们可以应用于从SCADA 或者DCS系统的物理设备中获取原始数

据的最低层,它们同样可以应用于从SCADA 或者DCS系统中获取数据到应用程序中。实际上,OPC设计的目的

就是从网络上某节点获取数据。

3 OPC技术的应用

由于OPC技术的采用,使得可以以更简单的系统结构、更长的寿命、更低的价格解决工业控制成为可能。同时现场设备与系统的连接也更加简单、灵活、方便。因此OPC技术在国内的工业控制领域得到了广泛的应用,主要应用领域如下:

1)数据采集技术。OPC技术通常在数据采集软件中广泛应用。现在众多硬件厂商提供的产品均带有标准的OPC接口,OPC实现了应用程序和工业控制设备之间高效、灵活的数据读写,可以编制符合标准OPC接口的客户端应用软件完成数据的采集任务。

2)历史数据访问。OPC提供了读取存储在过程数据存档文件、数据库或远程终端设备中的历史数据以及对其操作、编辑的方法。

3)报警和事件处理。OPC提供了OPC服务器发生异常时,以及OPC服务器设定事件到来时向OPC客户发送通知的一种机制,通过使用OPC技术,能够更好的捕捉控制过程中的各种报警和事件并给予相应的处理。

4)数据冗余技术。工控软件开发中,冗余技术是一项最为重要的技术,它是系统长期稳定工作的保障。OPC技术的使用可以更加方便的实现软件冗余,而且具有较好的开放性和可互操作性。

5)远程数据访问。借助Microsoft的DCOM(分散式组件对象模型)技术,OPC实现了高性能的远程数据访问能力,从而使得工业控制软件之间的数据交换更加方便。

4 . OPC技术在工业控制领域应用中的作用

OPC技术对工业控制系统影响和应用是基础性和革命性的,简单地说,它的作用主要表现在一下几个方面:

首先,OPC解决了设备驱动程序开发中的异构问题。随着计算机技术的不断发展,用户需求的不断提高,以DCS(集散控制系统)为主体的工业控制系统功能日趋强大,结构日益复杂,规模也越来越大,一套工业控制系统往往选用了几家甚至十几家不同公司的控制设备或系统集成一个大的系统,但由于缺乏统一的标准,开发商必须对系统的每一种设备都编写相应的驱动程序,而且,当硬件设备升级、修改时,驱动程序也必须跟随修改。同时,一个系统中如果运行不同公司的控制软件,也存在着互冲突的风险。

有了OPC后,由于有了统一的接口标准,硬件厂商只需提供一套符合OPC技术的程序,软件开发人员也只需编写一个接口,而用户可以方便地进行设备的选型和功能的扩充,只要它们提供了OPC支持。所有的数据交换都通过OPC接口进行,而不论连接的控制系统或设备是哪个具体厂商提供。

其次,OPC解决了现场总线系统中异构网段之间数据交换的问题。现场总线系统仍然存在多种总线并存的局面,因此系统集成和异构控制网段之间的数据交换面临许多困难。有了OPC作为异构网段集成的中间件,只要每个总线段提供各自的OPC服务器,任一OPC客户端软件都可以通过一致的OPC接口访问这些OPC服务器,从而获取各个总线段的数据;并可以很好地实现异构总线段之间的数据交互。而且,当其中某个总线的协议版本做了升级,也只需对相对应总线的程序作升级修改。

第三,OPC可作为访问专有数据库的中间件。实际应用中,许多控制软件都采用专有的实时数据库或历史数据库,这些数据库由控制软件的开发商自主开发。对这类数据库的访问不像访问通用数据库那么容易,只能通过调用开发商提供的API函数或其它特殊的方式。然而不同开发商提供的API函数是不一样的,这就带来和硬件驱动器开发类似的问题:要访问不同监控软件的专有数据库,必须编写不同的代码,这样显然十分繁琐。采用OPC则能有效解决这个问题,只要专有数据库的开发商在提供数据库的同时也能提供一个访问该数据库的OPC服务器,那么当以用户要访问时只需按照OPC规范的要求编写OPC客户端程序而无需了解该专有数据库特定的接口要求。

第四,OPC便于集成不同的数据,为控制系统向管理系统升级提供了方便。当


楼主最近还看过



二十四桥明月夜

  • 精华:3帖
  • 求助:0帖
  • 帖子:114帖 | 3593回
  • 年度积分:0
  • 历史总积分:7688
  • 注册:2008年3月16日
发表于:2008-08-05 18:57:23
1楼

使用现成的OPC接口很方便的,

OPC可悲的是,没几个人会用它开发或编程,难度太大;

ye_sheng

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 19回
  • 年度积分:0
  • 历史总积分:20
  • 注册:2003年9月12日
发表于:2008-08-06 14:08:51
2楼
.net 平台下的OPC更加麻烦。

东北风

  • 精华:6帖
  • 求助:0帖
  • 帖子:95帖 | 520回
  • 年度积分:0
  • 历史总积分:1407
  • 注册:2006年8月07日
发表于:2008-08-06 15:18:13
3楼

.net 平台下的OPC更加麻烦。

 

同感同感!!

沙漠的风雨

  • 精华:0帖
  • 求助:0帖
  • 帖子:24帖 | 461回
  • 年度积分:0
  • 历史总积分:1069
  • 注册:2003年10月23日
发表于:2008-08-07 08:09:04
4楼

OPC只是提供了一种接口方式,对于不同的工程师,应用是不一样的!

tcs

  • 精华:0帖
  • 求助:0帖
  • 帖子:68帖 | 526回
  • 年度积分:0
  • 历史总积分:768
  • 注册:2004年8月25日
发表于:2008-08-11 15:19:45
5楼
开发OPC Server绝对不是困难的事情,有OPC开发工具卖的,但是人们总是想不用花钱就可以得到,使用这些OPC开发工具是可以很快地把OPC Server开发成功,所以不要说很困难!

二十四桥明月夜

  • 精华:3帖
  • 求助:0帖
  • 帖子:114帖 | 3593回
  • 年度积分:0
  • 历史总积分:7688
  • 注册:2008年3月16日
发表于:2008-08-11 15:49:54
6楼

同意楼上,如果领导逼急了就这么办,花点钱也没关系,

但学技术时,就不会这么办了;

 

二十四桥明月夜

  • 精华:3帖
  • 求助:0帖
  • 帖子:114帖 | 3593回
  • 年度积分:0
  • 历史总积分:7688
  • 注册:2008年3月16日
发表于:2008-08-11 15:50:52
7楼
今天收获不了,搜到了不少用C++开发OPC客户端的文章

热门招聘
相关主题

官方公众号

智造工程师