1、1OPC 技术在工业自动化控制系统中的应用研究摘要:介绍了 OPC 技术原理及特点,阐述了服务器的优点和我国在工业自动化相关方面的应用,包括服务器的注册及实践程序以及各种规范研究。通过程序的调协设置,验证了 OPC 软件的开放性。最后指出了OPC 技术应用及发展前景。 关键词:OPC 技术;技术规范;工业控制系统 中图分类号:TP274+.5 文献标识码: A 文章编号: OPC 技术的原理及特点 OPC 是一个工业标准,采用客户服务器模式,以微软的组件对象模型(COMDCMCOM)技术为基础,为工业控制软件定义了一套标准的对象、接口和属性,通过这些对象接口,应用软件之间能够无缝地集成在一起,
2、实现了应用程序间数据交换方式的标准化。OPC 客户是数据的使用方,处理 OPC 服务器提供的数据;OPC 服务器又是数据的供应方,负责为 OPC 客户提供所需的数据。OPC 已成为一种工业技术标准,应用此技术可以方便地把不同供应商提供的驱动程序与应用程序集成在一起。 OPC 的优越性及特点: 1)在过程控制和机器制造工业领域的“即插即用” ; 2)允许在不同供应商开发的硬件装置和应用软件之间通过共同的接口进行数据交换,Windows 技术和 OPC 接口使之有可能将可编程控制端的2硬件和软件组合在一起而不需要开发大量专用的通讯接口程序,由此节省了人、财、物; 3)使从办公室产品到过程数据的访问
3、简单易行而且灵活可靠; 4)OPC 客户可与所有接受 OPC 服务器的软件进行数据交换,并在数据库系统上建立了 OPC 规范,OPC 客户也可与之实现数据交互。 2 服务器的功能及优点 0PC 服务器对象为一组数据信息源进行访问(读/写)或者通信提供了一种方式。源变量的类型是一套服务器执行的功能函数。通过 OPC 接口部件,一个 OPC 客户应用程序能连接到 OPC 服务器,而且可以与 OPC 服务器进行通信,并处理相应的数据信息。OPC 服务器对象为 OPC 客户应用程序建立和利用 OPC 组对象提供了相应的功能特性。这种组对象允许客户应用程序将它们所希望访问的数据信息有效地组织起来。 利用
4、 OPC 技术可以对现场设备及驱动程序进行封装,形成 OPC 服务器,OPC 服务器向下对设备数据进行采集,向上与 OPC 客户应用程序通信完成数据交换。OPC 服务器屏蔽了现场层的设备驱动程序,控制系统的趋势之一就是网络化,控制系统内部采用网络技术,控制系统与控制系统之间也网络连接,组成更大的系统,而且整个控制系统与企业的管理系统也网络连接,控制系统只是整个企业网的一个子网。在实现这样的企业网络过程中,OPC 发挥了重要作用。在企业的信息集成包括现场设场设备与监控系统之间、监控系统内部各组件之间、监控系统与企业管理系统之间、以及监控系统与 Internet 之间的信息集成。OPC 作为连接件
5、,按一套标准的 COM 对象、方法和属性,提供了方便的信息流通和交换。3无论是管理系统还是控制系统,无论是 PLC?可编程控制器,还是 DCS 或者是 FCS 现场总线控制系统,都可以通过 OPC 快速可靠的彼此交换信息。换句话说,OPC 是整个企业网络的数据接口规范。所以,OPC 服务器提升了控制系统的功能,增强了网络的功能,提高了工业自动化及企业管理水平。 3 OPC 技术在工业自动化控制系统中的应用 随着工业生产的不断发展,由于生产规模的扩大和过程复杂程度的提高,工业自动化控制软件设计面临巨大挑战,即要集成数量和种类不断增多的现场信息。在传统的控制系统中,智能设备之间及智能设备与控制系统
6、软件之间的信息共享是通过驱动程序实现的,不同厂家的设备使用不同的驱动程序,迫使工业控制软件中包含越来越多的底层通信模块;另外,由于相对特定应用的驱动程序一般不支持硬件的变化,使得工业自动化控制软硬件的升级和维护极其不便。同时,在同一时刻,两个客户不能对同一个设备进行数据读写,因为拥有不同的、相互独立的驱动程序,同时对同一个设备进行操作,可能会引起存取冲突,甚至导致系统崩溃。OPC 技术的出现很好地解决了这些问题。OPC 以OLECOMDCOM 技术为基础,采用客户服务器模式,为工业自动化软件面向对象的开发提供了统一的标准,标准定义了应用 Microsoft 操作系统在基于 PC 的客户机之间交
7、换自动化实时数据的方法。采用这项标准后,硬件开发商将取代软件开发商为自己的硬件产品开发统一的 OPC 接口程序,而软件开发者可免除开发驱动程序的工作,把更多的精力投入到其核心产品的开发上。这样不但可避免开发的重复性,也提高了系统4的开放性和互操作性。但在应用过程中必须注意服务器测试、设备驱动程序开发中的异构等相关问题的处理。 3.1 服务器测试 OPC 服务器必须经过 OPC 基金会的测试,需要加入 OPC 基金会,成为其会员,然后从 OPC 基金会下载测试软件,进行详细的兼容性测试,只有成功通过,这个服务器才可得到 OPC 基金会的认可的产品,OPC 基金会会在网上公布其产品。 3.2 设备
8、驱动程序开发中的异构问题 随着计算机技术的不断发展,用户需求的不断提高,以 DCS(集散控制系统)为主体的工业控制系统功能日趋强大,结构日益复杂,规模也越来越大,一套工业控制系统往往选用了几家甚至十几家不同公司的控制设备或系统集成一个大的系统,但由于缺乏统一的标准,开发商必须对系统的每一种设备都编写相应的驱动程序,而且,当硬件设备升级、修改时,驱动程序也必须跟随修改。同时,一个系统中如果运行不同公司的控制软件,也存在着互冲突的风险。 3.2.1 现场总线系统中异构网段之间的数据交换 由于现场总线系统存在多种总线并存的局面,因此系统集成和异构控制网段之间的数据交换面临许多困难。有了 OPC 作为
9、异构网段集成的中间件,只要每个总线段提供各自的 OPC 服务器,任一 OPC 客户端软件都可以通过一致的 OPC 接口访问这些 OPC 服务器,从而获取各个总线段的数据,并可以很好地实现异构总线段之间的数据交互。而且,当其中某个总线的协议版本做了升级,也只需对相对应总线的程序作升级修改。53.2.2 可作为访问专有数据库的中间件 在实际应用中,许多控制软件都采用专有的实时数据库或历史数据库,这些数据库由控制软件的开发商自主开发。对这类数据库的访问不像访问通用数据库那么容易,只能通过调用开发商提供的 API 函数或其它特殊的方式。然而不同开发商提供的 API 函数是不一样的,这就带来和硬件驱动器
10、开发类似的问题。要访问不同监控软件的专有数据库,必须编写不同的代码,这样显然十分繁琐。采用 OPC 则能有效解决这个问题,只要专有数据库的开发商在提供数据库的同时也能提供一个访问该数据库的 OPC 服务器,那么当用户要访问时只需按照 OPC 规范的要求编写 OPC 客户端程序而无需了解该专有数据库特定的接口要求。 3.2.3 便于集成不同的数据 OPC 便于集成不同的数据,为控制系统向管理系统升级提供了方便。当前控制系统的趋势之一就是网络化,控制系统内部采用网络技术,控制系统与控制系统之间也网络连接,组成更大的系统,而且,整个控制系统与企业的管理系统也网络连接,控制系统只是整个企业网的一个子网
11、。在实现企业网络过程中,OPC 技术发挥了重要作用。 3.2.4 使控制软件能够与硬件分别设计 OPC 使控制软件能够与硬件分别设计、生产和发展,并有利于独立的第三方软件供应商产生与发展,从而形成新的社会分工,有更多的竞争机制,为社会提供更多更好的产品。OPC 作为一项逐渐成型的技术已得到国内外厂商的高度重视,许多公司都在原来产品的基础上增加了对 OPC6的支持。由于统一了数据访问的接口,使控制系统进一步走向开放,实现信息的集成和共享,用户能够得到更多的方便。OPC 技术改变了原有的控制系统模式,给国内系统生产厂商提出了一个发展的机遇和挑战,符合 OPC 规范的软、硬件也已被广泛应用,给工业自
12、动化领域带来了勃勃生机。 3.2.5 数据的刷新及断开连接 先在“引用”将近 Siemens OPC DAAutomation 2.0 加入,然后开始定义全局变量。在本程序中,使用了两个 OPC 组进行 OPC 访问,所以定义了全局变量。首先要定义 OPC 服务类型与计算机结点名。定义 OPC 组与 OPC 标签组。并定义 OPC 的标签数组与值数,注意,值数组一定要设为 Variant。 OPC 处理:只对 WINCC Const ServerName = “OPCServer.WinCC“ OPC 的类型 Const NodeName = “GUK“ 结点名,即计算机名 Dim NodeN
13、ame As String Dim WithEvents MyOPCServer As OPCServer OPC 服务 Dim MyOPCGroupColl As OPCGroups Dim WithEvents MyOPCGroupOut As OPCGroup OPC 组,本程序用两个组进行 OPC 连接 Dim WithEvents MyOPCGroupIn As OPCGroup Dim MyOPCItemCollIn As OPCItems OPC 标签组 Dim MyOPCItemCollOut As OPCItems 7Dim ServerHandlesIn() As Long
14、 句柄 Dim ServerHandlesOut() As Long Dim ErrorsIn() As Long 错误句柄 Dim ErrorsOut() As Long Dim WatchDataReadItem(100) As String 记录 OPC 的标签 Dim WatchDataReadValue(100) As Variant 存放 OPC 的值 Dim WatchDataWriteItem(100) As String 记录 OPC 的标签 Dim WatchDataWriteValue(100) As Variant 存放 OPC 的值 在定义所有变量后,要进行 OPC
15、连接,先要配置要访问的 OPC 标签名,在 WatchDataReadItem、WatchDataWriteItem 中加入相应的标签名,注意:这两个数组必须由 1 开始,不能由 0 开始。 配置好标签后就要进行 OPC 连接了。如下面子程序: 1)ClientHandles1 先配置名柄索引,这将在读取 OPC 标签的值时可要用到 2)生成 OPC 对象, 3)进行 OPC 标签连接。 4 OPC 技术应用及发展前景 随着基于 OPC 标准的控制组件的推广与普及,不仅使控制组件的增设和组件的置换更加简单,而且使过程数据的访问也变得容易。比如过程控制程序可以直接和数据分析软件包或电子表格应用程
16、序连接,从而达成高度的工厂控制系统的信息化。当今软件在自动化领域内使用的重要性与日俱增,无论项目是否涉及到操作、可视化、数据存档或控制向8纯粹的、基于 PC 的软件解决方案的发展趋势是不可阻挡的。因此,随着Internet 技术的广泛应用与发展,OPC 技术及标准将应用于更加广泛的领域,OPC 技术必将赋予现代工业自动化控制软件更强的生命活力,前景十分广阔。 参考文献 1汪辉.OPC 技术的实现与应用.合肥:合肥工业大学出版社,2003 2马云鹏.OPC 通用接口与 OPC 服务器的注册.工业控制机算机,2010,(13) 作者简介:李先文(1959) ,男,副教授、高级实验师。1982 年毕业于山东工业大学电子系无线电技术专业,现山东理工大学电气学院从事实验教学工作。主要研究方向:电工电子、电气自动化、电算化会计。发表专业学术论文 7 篇。