OPC全称是OLE for Process Control,即用于过程控制的OLE,是针对现场控制系统的一个工业标准接口,是工业控制和生产自动化领域中使用的硬件和软件的接口标准。基于微软的OLE(现在的Active X)、COM (部件对象模型)和DCOM (分布式部件对象模型)技术,OPC包括自动化应用中使用的一整套接口、属性和方法的标准集,用于过程控制和制造业自动化系统。提供工业自动化系统中独立单元之间标准化的互联互通,顺应了自动化系统向开放、互操作、网络化、标准化方向发展的趋势。
OPC规范
OPC规范包括数据访问服务器接口规范、历史数据访问服务器接口规范、事件与报警服务器接口规范、批处理服务器接口规范、OPCDA 服务器接口规范和XML DA服务器接口规范等一系列标准规范。现在成熟并发布的OPC规范主要包括数据存取规范、报警和事件处理规范以及历史数据存取规范。
OPC的设计目的
1、在控制领域中,系统往往由分散的各子系统构成;并且各子系统往往采用不同厂家的设备和方案。用户需要,将这些子系统集成,并架构统一的实时监控系统。
2、这样的实时监控系统需要解决分散子系统间的数据共享,各子系统需要统一协调相应控制指令。
3、再考虑到实时监控系统往往需要升级和调整。
4、就需要各子系统具备统一的开放接口。
OPC就是为了不同供应厂商的设备和应用程序之间的接口标准化,使其间的数据交换更加简单化的目的而提出的。作为结果,从而可以向用户提供不依靠于特定开发语言和开发环境的可以自由组合使用的过程控制软件组件产品。OPC的设计目的最重要的是即插即用,也就是采用标准方式配置硬件和软件接口。一个设备可以很容易地加入现有系统并立即投入使用,不需要复杂的配置,且不会影响现有的系统。
OPC的优点和不足
与早期的现场设备接口相比, OPC 具有如下几个优点:
( 1) 减少了重复开发;
( 2) 降低了数据设备间的不兼容;
( 3) 降低了系统集成商的开发成本;
( 4) 改善性能。
OPC 存在的不足
虽然OPC 接口具有种种优势, 但是如果直接通过OPC 连接实时数据库依然存在一些问题: ( 1) 虽然OPC 标准中包含了OPC History 标准, 但是多数OPC 服务器并未给予支持, 所以难以为实时数据库提供数据缓存功能。
( 2) OPC 服务器无法提供一些常用的计算功能, 如累计、滤波和几个位号相加的综合计算功能, 增加了实时数据库的负担, 影响了实时数据库的稳定性和鲁棒性。
( 3) OPC 基于微软的COM/DCOM体系, 在分布式应用中其所用的RPC 方式常常与企业级的防火墙发生冲突。不能通过防火墙。
OPC体系结构
图1所示为OPC接口、 OPC服务器及OPC客户应用的联系。
像所有的COM实现一样,OPC的结构是客户机服务器模式。各个OPC客户程序通过OPC标准接口对各OPC服务器管理的设备进行操作,而不需关心服务器的实现细节及设备内部的具体细节。OPC把开发访问接口的任务放在硬件生产厂家或第三方厂家,以OPC服务器的形式提供给用户,解决了软、硬件厂商的矛盾,完成了系统的集成,提高了系统的开放性和可互操作性。
以前的过程监控中硬件和软件的设置情况如图2 所示。各种应用软件都必须提供这三种设备的驱动程序,即需要12个驱动程序维持系统的正常运行,而且各软件间不能相互通信。因为各个软件来自不同的开发商,具有不同的相互独立的对同一设备的驱动程序,所以多个软件也不能同时对同一个设备存取数据,否则可能造成系统的瘫痪。同时,某一个设备的升级要求该设备的所有驱动程序升级,否则隐患无穷。这样的一个系统要想长期维护,工作量可想而知。OPC规范的引入,使得过程控制的硬件软件配置可以由图3 表示。
OPC规范了接口函数,不管现场设备以何种形式存在,客户都以统一的方式去访问,从而保证软件对客户的透明性,使得用户完全从低层的开发中脱离出来。对于软件开发商而言,不再费神于开发各种硬件设备的驱动程序,而是把精力和时间集中在增加和完善软件的功能上,使自己的软件更易被用户接受和使用。对于硬件设备制造商,再也不必担心自己的产品因为没有为某些软件提供驱动程序而被用户所忽视或放弃。一次编写的驱动程序(OPC服务器),可以被所有的应用软件所用。不仅节省了各种I/O驱动程序的开发费用,而且可以让制造商集中精力生产更易于用户使用的、功能完善的硬件。
OLE(Active X)/COM
Active X/COM技术定义各种不同的软件部件如何交互使用和分享数据。OLE/COM是一种
客户/服务器模式,具有语言无关性、代码重用性、易于集成性等优点。