3、那什么是OPC?
OPC定义了一个开放的接口,在这个接口上,基于PC的软件组件能交换数据。它是基于Windows的OLE--对象链接和嵌入、COM--部件对象模型和DCOM--分布式COM技术。因而,OPC为自动化层的典型现场设备连接工业应用程序和办公室程序提供了一个理想的方法。
Windows程序的标准接口的引入,使得硬件制造商为其部件所开发的接口程序的数量减少到一个,只需要开发一个针对OPC服务器的接口程序,同样,软件制造商也只需要开发唯一的通讯接口程序--OPC客户机接口。这不但对制造商有利,而且对最终客户也有利用。
值此应对上述基于COM技术的OPC作具体分折。
3.1基于COM技术的OPC
微软公司为了提供商业应用程序和特定用途的软件包间的相互连接性,开发了所谓的部件(组件)对象模型技术。COM是一种软件组件间相互数据交换的有效方法。是一个二进制和网络的标准。也是DCOM、ActiveX(Active X是对广泛使用的OLE控件技术的更新和升级。它依赖于COM技术,是OLE控件技术的更名和重构)和OLE技术的核心。而COM技术具有以下特长:
* 所谓COM并不是一种计算机语言,与运行的机器、机器的操作系统(只要支持COM)以及软件开发语言均无关,是任意的两个软件组件之间都可以相互通信的二进制和网络的标准。
* COM服务器是根据COM客户的要求提供COM的服务的执行可能的程序,可以作为Win32服务器上可执行的文件发布。
* COM客户程序和COM服务器可以用完全不同的语言开发。这样使利用C++,Visual Basic,以及Excel中作为宏使用的应用程序的Visual Basic等不同语言所开发的程序可以相互连接。
* COM组件可以以二进制的形式发布给用户。
* 与过去DLL(动态链数据库)的版本管理非常困难的问题相比,COM技术可以提供不同版本的COM服务器和COM客户程序之间的最大的兼容性。
* 作为COM技术扩展的分布式COM技术,更可以使COM组件分布在不同的计算机上,并通过网络互相连接并互相交换数据。所以对于COM客户程序来说,同样像连接本地计算机上的COM服务器一样,去连接远程计算机上的COM服务器,当然通信的速度不太一样,但是重要的是不必对服务器程序进行修正就可以在网络上自由构成如图2那样的利用COM和DCOM(分布式COM)达成的组件的互相连接。

COM技术的出现使简单地实现控制设备和控制管理系统之间的数据交换提供了技术基础。但是如果不提供一个工业标准化的COM接口,各个控制设备厂家开发的COM组件之间的相互连接仍然是不可能的。这样的工业标准的提供乃是OPC的目的所在。总而言之,OPC是作为工业标准定义的特殊的COM接口。
3.2 OPC与DDE的比较
在OPC技术出现以前,DDE(动态数据交换)技术曾经对过程控制作出巨大贡献。但是DDE是基于Windows信息传递而建立的技术,所以DDE技术存在以下问题:
* 数据的传送速度较慢
* 没有安全性管理机制
* 开发困难
* 功能缺乏柔软性
* 可靠性也难以令人满意
所以基于先进的COM技术的OPC技术将逐渐取代现在在过程控制中广泛使用的DDE的位置乃是顺理成章的事情。随着OPC技术的导入,和过去的DDE技术相比,在以下方面显示出它的优越性:
* 高速的数据传送性能
* 基于分布式COM的安全性管理机制
* 开发成本的降低
* 实现具有高度柔软性功能的系统
* 实现具有高可靠性的系统

图3是分别利 用OPC和DDE进行数据传送性能的实验结果的例子。从这里也可以看出OPC技术在传送速度上的优越性。