1. OPC技术简介 OPC (OLE for Process Control——用于过程控制的OLE)是基于Microsoft公司的DNA(Distributed Internet Application)构架和COM(Component Object Model)技术的一个工业标准接口,是根据易于扩展性而设计的。 工业控制领域用到大量的现场设备,在OPC出现以前软件开发商需要开发大量的驱动程序来连接这些设备。即使硬件供应商在硬件上做了一些小小改动,应用程序就可能需要重写:同时,由于不同设备甚至同一设备不同单元的驱动程序也有可能不同,软件开发商很难同时对这些设备进行访问以优化操作。硬件供应商也在尝试解决这个问题,然而由于不同客户有着不同的需要,同时也存在着不同的数据传输协议,因此一直没有完整的解决方案。自OPC提出以后,这个问题终于得到解决。 OPC主要适用于过程控制和制造自动化等应用领域。 OPC是以OLE/COM机制作为应用程序的通讯标准。OLE/COM是一种客户/服务器模式,具有语言无关性、代码重用性、易于集成性等优点。OPC规范了接口函数,不管现场设备以何种形式存在,客户都以统一的方式去访问,从而保证软件对客户的透明性,使得用户完全从低层的开发中脱离出来。 OPC规范包括OPC服务器和OPC客户两个部分,其实质是在硬件供应商和软件开发商之间建立了一套完整的规则,只要遵循这套规则,数据交换对两者来说都是透明的,硬件供应商无需考虑。OPC接口数据交换示意图如下图所示。 OPC技术的实现包括两个组成部分,OPC服务器部分及OPC客户部分。OPC服务器是一个现场数据源程序,它收集现场设备数据信息,通过标准的OPC接口传送给客户端软件(SCADA)等。OPC客户端应用软件通过OPC标准接口与OPC服务器通信,获取OPC服务器的各种信息。符合OPC标准的客户应用可以访问来自任何生产厂商的OPCMC务器程序。 OPC服务器由三类对象组成:服务器(Server)、组(Group),数据项(Item)。服务器对象 (Server)拥有服务器的所有信息,同时也是组对象 (Group)的容器。组对象 (Group)拥有本组的所有信息,同时包容并逻辑组织OPC数据项 (Item)。一般说来,客户和服务器的一对连接只需要定义一个组对象。在每个组对象中,客户可以加入多个OPC数据项 (Item)。OPC数据项是服务器端定义的对象,通常指向设备的一个寄存器单元。OPC客户对设备寄存器的操作都是通过其数据项来完成的,通过定义数据项,OPC规范尽可能的隐藏了设备的特殊信息,也使OPC服务器的通用性大大增强。OPC数据项并不提供对外接口,客户不能直接对之进行操作,所有操作都是通过组对象进行的。OPC服务器、组对象与数据项关系如下图所示。 每个数据项的数据结构包括三个成员变量:即数据值、数据质量和时间戳。数据值是以VARIANT形式表示的。应当注意,数据项表示同数据源的连接而不等同于数据源,无论客户是否定义数据项,数据源都是客观存在的。可以把数据项看作数据源的地址,即数据源的引用,而不应看作数据源本身。 目前,许多PC上运行的组态软件都支持OPC客户端,如组态王、力控等等。当然,要自己写支持OPC客户端的软件也很容易。在OPC基金会的官方网站上有OPC的最新知识和下载相关资料,网址是 http://www.ip138.com/ 2. OPC技术和LEVI HMI的结合 维控的LEVIStudio可提供一个OPC服务器程序,组态软件只要实现OPC客户端即可通过OPC与LEVI HMI进行通信,进而可通过HMI读入或修改连接在HMI上设备的各个寄存器。 通过OPC,组态软件可以把其下的所有LEVI HMI管理起来,可以实时的监测或修改各HMI上的当前状态,方便的实现集中管理。通过地址映射等方式,亦可以实时的监测或修改连接在HMI上的PLC、仪表、变频器等设备,而无须操作人员一台一台机器的去设定和修改。