论文部分内容阅读
摘 要:随着自动控制领域信息技术的不断发展,自动化系统对大范围信息共享的需求愈加强烈,因而对工业控制系统的开放性提出了越来越高的要求。本文介绍了控制过程中新的软件技术规范0PC(OLE for Process Control)产生的背景及发展趋势,并对自动化系统中的现场设备之间的标准化、高可靠的数据交换进行了分析,讨论了OPC程序结构体系和OPC客户/服务器程序之间的接口。
关键词:OPC技术;数据交换;程序结构。
1、引言
1.1背景
随着自动控制和计算机技术的进一步融合,计算机在自动控制中日益发挥着不可替代的作用。但是,应用软件需要为不同的设备编写大量的驱动程序, 而计算机硬件厂家要为不同的应用软件编写不同的驱动程序这种程序可复用程度低, 不符合软件工程的发展趋势。正是在这种背景下,OPC技术应运而生【1】。
1.2 OPC定义
OPC (OLE for process control) 规范的出现为现场设备与过程管理级之间的数据交换提供了更强的互操作性。它以OLE/COM机制作为应用程序级的通信标准,采用Client/Server模式,将硬件供应商和软件开发商有效地分离开来。硬件生产厂商负责开发设备数据的访问接口,并以服务器的形式提供给客户端,而由客户端来负责创建服务器的对象及访问服务器所支持的接口。客户端和服务器通过标准的OPC接口无缝地结合起来。
1.3OPC的特点
总的来说, OPC 具有以下优点:
(1)硬件厂商只需编写一套接口程序就可以满足不同用户的要求。
(2)应用程序开发商只需编写一个接口程序就可以连接不同的设备。
(3)最终用户可以根据实际情况选择合适的设备, 具有更大的选择性[2]。
1.4OPC新技术
然而,随着信息技术在控制领域的进一步发展,OPC规范难于掌握的缺点日益显露出来。OPC采用客户端/服务器模式,OPC服务器开发的任务落到了设备生产商的头上。这对很多小型乃至中型的硬件供应商而言,开发一个可靠的OPC服务器依然是一个技术难关;此外,由于所有的OPC服务器都遵循同一标准,因而在实现上都有很大的相似之处,而目前几乎所有的OPC服务器都只能支持一种或某几种现场设备,这就意味着,每个设备生产商都需要为其设备开发一个或多个OPC服务器,这无疑是一种冗余劳动。
于是,在普通OPC服务器的基础上,出现了通用OPC服务器,通用OPC服务器。不仅继承了普通OPC与客户应用程序的接口规范,而且规范了服务器与设备的接口。大大简化了OPC规范,从而使得设备供应商从繁重的OPC服务器开发中解脱出来,降低了开发成本。同时,由于服务器与设备的接口也变得规范化,服务器即可与任意设备进行连接,在同时访问多个设备的情况下,通用OPC服务器将系统中的OPC服务器减少到一个,因而重用性更高,更加易于维护和扩展[3]。
2、OPC程序结构
应用程序作为OPC接口中的Client方, 硬件驱动程序作为OPC接口中的Server方。每一个OPC Client应用程序都可以接若干个OPC Server, 每一个硬件驱动程序可以为若干个应用程序提供数据。其结构如图所示:
OPC为应用程序和驱动程序提供了三种层次上的接口:服务器(Server)、组(Group)、项(Item)一个服务器对应于一个OPC Server, 即一种设备的驱动程序在一个Server中, 可以有若干个组, 组可以是全局(Public)或局域(Local)的, 组是应用程序组织数据的一个单位。全局组对所有连接在服务器上的应用程序都有效, 而局域组只能对建立它的Client有效。在一个组中, 可以有若干个项。项是读写数据的最小逻辑单位, 一个项与一个具体的位号相连。项不能独立于组存在, 必须隶属于某一个组[4]。
OPC规范是一种硬件和软件的接口标准。接口则是指提供给用户应用程序功能的使用方法。OPC 规范通常包括两套接口: 定制接口和自动接口, 如图4 所示。一般来说, 使用脚本语言如VBA 开发的客户程序会使用自动接口,用开发的客户应用程序使用客户接口更容易而且会得到最佳性能。OPC 规范详细说明了这些COM 接口, 但没有提供实现接口的细节, 由OPC 服务器具体实现接口的功能。服务器具体确定了可以存取的设备和数据、数据单元(data item) 的命名方式以及对具体设备存取数据的细节,并且通过OPC 标准接口开放给外部接口程序。各个OPC客户程序通过OPC 标准接口对各OPC 服务器管理的设备进行操作, 而无需关心服务器实现的细节和设备内部的具体细节。服务器组件提供并管理那些OPC 对象的接口。应用程序作为OPC 接口的客户方, 硬件驱动程序作为OPC 接口中的服务器方。每个OPC 客户程序都可接若干个OPC服务器, 每个硬件驱动程序可以给若干个应用程序提供数据。
OPC 另外一个重要特点就是实现即插即用, 即采用标准方式配置硬件和软件接口。系统中的信息也可以很方便地分散到众多支持OPC 的软件应用当中, 如维护、监督、操作显示和文档管理等应用。
3. OPC程序接口
3.1OPC Server提供的标准接口
对一个OPC 服务器而言, 一般需要提供下列接口:
(1)IUnknown:COM标准接口。
(2)IOPCServer:OPC服务器的一个接口,通过它可以管理服务器的组。这一接口是必需的,而且它的函数必需都能够实现。使用该接口可以增加或删除一个组以及其他的管理信息。
(3)IOPCServerPublicGroups(可选):全局组的管理接口。
(4)IOPCBrowseServerAddressSpace(可选):通过它们可以得到该服务器下项的ID。
(5)IPersist File (可选):标准OL E 接口。该接口可以使客户端保存或打开服务器的配置文件。
(6)IOPCServerDisp:自动接口,可以管理下面的组。其方法有增加组、删除组、保存配置文件等。
(7)IOPCServerPublicGroupsDisp(可选):自动接口,管理全局组。
(8)IOPCBrowseServerAddressSpaceDisp(可选):自动接口, 可以得到服务器项的ID[5]。
3.2组(Group)的接口
组是管理应用程序和驱动程序通讯的数据组织单位, 它提供以下接口:
(1) IUnknown: COM标准接口。
(2) IOPCItemMgt: 在组中可以利用它增加、删除以及对项的其他操作。
(3)IOPCGroupStateMgt: 可以利用它对组的状态进行管理, 如改变数据更新速度、活动状态等。
(4)IOPCPublicGroupStateMgt (可选) : 可以利用全局组的状态进行管理, 可以把一个局域组变成全局组。
(5)IOPCSyncIO: 同步读写操作。
(6)IOPCAsyncIO: 异步读写操作, 必须在客户端有IAd2viseSink 接口, 重载其OnDataChange () 函数。
(7)IDataObject: 通过该接口可以用异步方式传送数据。
(8)IOPCItemMgtDisp: 自动接口, 相当于OPCItemMgt,在组中可以利用它进行增加、删除以及对象的其他操作。
(9)IOPCGroupStateMgtDisp:自动接口,相当于IOPC2GroupStateMgt,可以利用它对组的状态进行管理,如改变数据更新速度和活动状态。
(10)IOPCSyncIODisp:自动接口,相当于IOPCSyncIO,同步读写操作。
(11)IOPCAsyncIODisp:自动接口,相当于IOPCAsyn2cIO, 异步读写操作。
(12)IOPCPublicGroupStateMgtDisp(可选):自动接口,相当于IOPCPublicGroupStateMgt,可以利用全局组的状态进行管理,可以把一个局域组变成全局组。
3.3项(Item)的接口
项是应用程序和驱动程序之间通讯的最小逻辑单位, 其接口如下:
(1)Iunknown:COM标准接口。
(2)IOPCItemDisp:通过该接口可以得到项的有关参数,如ID、句柄等。
4.OPC技术的最新发展
(1)Data Access 2.03,数据访问版本2.03
这个最新推出的版本,使得在名称空间(Name Space)内的节点具有属性。它能在名称空间内非常有效地印象复杂的设备和应用,一个节点能代表一个IEC 61131-3功能块。例如,静态变量由节点的属性表示,它们并不出现在名称空间中,动态变量(过程变量,输入,输出)可以在节点内部进行表达,并具有描述其本身特征的属性。
(2)Alarm and Event 1.01(报警和事件版本1.01)
数据访问服务器只能向客户机通报在一定时间段内已有一定量的数值变化,而报警和事件服务器向客户机通报个参数已超过上限值或低于下限值或特定的事件。为此,它提供和条件有关的事件,和单元故障有关的信息由第一种类型表示,有关过程由人工干预信息(如现场中的人工纠错作用)由第二种类型表示。在事件空间中组织事件的表达,有多种方法可以使客户机影响服务器的行为特性,例如启动、禁止和确认与条件有关的事件。
(3)OPC与Windows DNA-M
Windows DNA-M(Windows Distributed Internet Architecture for Manufacturing)是微软公司接近推出的用于自动控制的系统软件,OPC是其中操作的部分。DNA-M的体系结构基于微软公司的产品(如操作系统,应用服务器,编程环境)和技术(如DCOM,Active X,XML)以及Internet等,其设计思想是为了自动化应用的集成(如ERP,DCS,SCADA,HMI,PLC和基于PC的控制)。
这些技术之一是Biztalk,它用于数据交换的Microsoft环境:可以实现基于XML(Extensible Markup Language,是用于描述数据结构的语言,为此可以使用按照要求而定义的标签)结构应用之间的数据交换以及当前和未来工业标准之间的数据交换。应用Biztalk将增强OPC在DNA-M体系结构中的重要性,因为有可能在I/O区域外应用OPC,从而扩大OPC的应用范围。OPC国际基金会新成立了一个"OPC和XML"工作组,这个工作组将定义适用于描述自动化技术中的单元、系统和应用各个不同方面的模型。
直到现在,只有简单数据类型和字段的处理得到OPCData Access Specification 的最大化支持。最新发布的OPC Data Access Specification 版本2.03尚不能处理复杂数据类型(域)或装载大容量数据等。OPC已成立一个关于处理复杂数据类型的工作组,将会弥补这个缺陷,这也是OPC技术的一个跃进。
随着计算机控制的发展, 计算机与外围设备的接口变得越来越复杂, 因此, 一个统一的接口十分必要。OPC为计算机与外部设备通讯提供了一个统一的标准, 极大地方便了硬件开发商、软件开发商以及最终用户。它将成为自动化系统、现场设备与工厂办公管理应用程序之间的有效联络工具, 相互之间的数据交换得以简捷化和标准化, 极大地方便了硬件开发商、软件开发商和最终用户, 必将在目前的DCS系统和将来的FCS系统中发挥极大的作用。
参考文献:
[1] 向冬、王润孝、秦现生:基于OPC的多层过程控制系统设计及实现[J].计算机应用,2003.
[2] 石林锁、王涛、刘顺波:基于OPC规范的客户应用程序实现闭.微计算机信息,2003,19(5):68-70.
[3] 何江海:OPC客户端关键技术的实现闭.微计算机信息,2003,19(7):76-78.
[4] 李勤:党选举.基于COM的OPC技术研究及其接口实现闭.电子技术应用,2003,(2):28-30+34.
[5] 孙增圻、 张再兴、 邓志东: 智能控制理论与技术[M] . 北京: 清华大学出版社, 1997.
关键词:OPC技术;数据交换;程序结构。
1、引言
1.1背景
随着自动控制和计算机技术的进一步融合,计算机在自动控制中日益发挥着不可替代的作用。但是,应用软件需要为不同的设备编写大量的驱动程序, 而计算机硬件厂家要为不同的应用软件编写不同的驱动程序这种程序可复用程度低, 不符合软件工程的发展趋势。正是在这种背景下,OPC技术应运而生【1】。
1.2 OPC定义
OPC (OLE for process control) 规范的出现为现场设备与过程管理级之间的数据交换提供了更强的互操作性。它以OLE/COM机制作为应用程序级的通信标准,采用Client/Server模式,将硬件供应商和软件开发商有效地分离开来。硬件生产厂商负责开发设备数据的访问接口,并以服务器的形式提供给客户端,而由客户端来负责创建服务器的对象及访问服务器所支持的接口。客户端和服务器通过标准的OPC接口无缝地结合起来。
1.3OPC的特点
总的来说, OPC 具有以下优点:
(1)硬件厂商只需编写一套接口程序就可以满足不同用户的要求。
(2)应用程序开发商只需编写一个接口程序就可以连接不同的设备。
(3)最终用户可以根据实际情况选择合适的设备, 具有更大的选择性[2]。
1.4OPC新技术
然而,随着信息技术在控制领域的进一步发展,OPC规范难于掌握的缺点日益显露出来。OPC采用客户端/服务器模式,OPC服务器开发的任务落到了设备生产商的头上。这对很多小型乃至中型的硬件供应商而言,开发一个可靠的OPC服务器依然是一个技术难关;此外,由于所有的OPC服务器都遵循同一标准,因而在实现上都有很大的相似之处,而目前几乎所有的OPC服务器都只能支持一种或某几种现场设备,这就意味着,每个设备生产商都需要为其设备开发一个或多个OPC服务器,这无疑是一种冗余劳动。
于是,在普通OPC服务器的基础上,出现了通用OPC服务器,通用OPC服务器。不仅继承了普通OPC与客户应用程序的接口规范,而且规范了服务器与设备的接口。大大简化了OPC规范,从而使得设备供应商从繁重的OPC服务器开发中解脱出来,降低了开发成本。同时,由于服务器与设备的接口也变得规范化,服务器即可与任意设备进行连接,在同时访问多个设备的情况下,通用OPC服务器将系统中的OPC服务器减少到一个,因而重用性更高,更加易于维护和扩展[3]。
2、OPC程序结构
应用程序作为OPC接口中的Client方, 硬件驱动程序作为OPC接口中的Server方。每一个OPC Client应用程序都可以接若干个OPC Server, 每一个硬件驱动程序可以为若干个应用程序提供数据。其结构如图所示:
OPC为应用程序和驱动程序提供了三种层次上的接口:服务器(Server)、组(Group)、项(Item)一个服务器对应于一个OPC Server, 即一种设备的驱动程序在一个Server中, 可以有若干个组, 组可以是全局(Public)或局域(Local)的, 组是应用程序组织数据的一个单位。全局组对所有连接在服务器上的应用程序都有效, 而局域组只能对建立它的Client有效。在一个组中, 可以有若干个项。项是读写数据的最小逻辑单位, 一个项与一个具体的位号相连。项不能独立于组存在, 必须隶属于某一个组[4]。
OPC规范是一种硬件和软件的接口标准。接口则是指提供给用户应用程序功能的使用方法。OPC 规范通常包括两套接口: 定制接口和自动接口, 如图4 所示。一般来说, 使用脚本语言如VBA 开发的客户程序会使用自动接口,用开发的客户应用程序使用客户接口更容易而且会得到最佳性能。OPC 规范详细说明了这些COM 接口, 但没有提供实现接口的细节, 由OPC 服务器具体实现接口的功能。服务器具体确定了可以存取的设备和数据、数据单元(data item) 的命名方式以及对具体设备存取数据的细节,并且通过OPC 标准接口开放给外部接口程序。各个OPC客户程序通过OPC 标准接口对各OPC 服务器管理的设备进行操作, 而无需关心服务器实现的细节和设备内部的具体细节。服务器组件提供并管理那些OPC 对象的接口。应用程序作为OPC 接口的客户方, 硬件驱动程序作为OPC 接口中的服务器方。每个OPC 客户程序都可接若干个OPC服务器, 每个硬件驱动程序可以给若干个应用程序提供数据。
OPC 另外一个重要特点就是实现即插即用, 即采用标准方式配置硬件和软件接口。系统中的信息也可以很方便地分散到众多支持OPC 的软件应用当中, 如维护、监督、操作显示和文档管理等应用。
3. OPC程序接口
3.1OPC Server提供的标准接口
对一个OPC 服务器而言, 一般需要提供下列接口:
(1)IUnknown:COM标准接口。
(2)IOPCServer:OPC服务器的一个接口,通过它可以管理服务器的组。这一接口是必需的,而且它的函数必需都能够实现。使用该接口可以增加或删除一个组以及其他的管理信息。
(3)IOPCServerPublicGroups(可选):全局组的管理接口。
(4)IOPCBrowseServerAddressSpace(可选):通过它们可以得到该服务器下项的ID。
(5)IPersist File (可选):标准OL E 接口。该接口可以使客户端保存或打开服务器的配置文件。
(6)IOPCServerDisp:自动接口,可以管理下面的组。其方法有增加组、删除组、保存配置文件等。
(7)IOPCServerPublicGroupsDisp(可选):自动接口,管理全局组。
(8)IOPCBrowseServerAddressSpaceDisp(可选):自动接口, 可以得到服务器项的ID[5]。
3.2组(Group)的接口
组是管理应用程序和驱动程序通讯的数据组织单位, 它提供以下接口:
(1) IUnknown: COM标准接口。
(2) IOPCItemMgt: 在组中可以利用它增加、删除以及对项的其他操作。
(3)IOPCGroupStateMgt: 可以利用它对组的状态进行管理, 如改变数据更新速度、活动状态等。
(4)IOPCPublicGroupStateMgt (可选) : 可以利用全局组的状态进行管理, 可以把一个局域组变成全局组。
(5)IOPCSyncIO: 同步读写操作。
(6)IOPCAsyncIO: 异步读写操作, 必须在客户端有IAd2viseSink 接口, 重载其OnDataChange () 函数。
(7)IDataObject: 通过该接口可以用异步方式传送数据。
(8)IOPCItemMgtDisp: 自动接口, 相当于OPCItemMgt,在组中可以利用它进行增加、删除以及对象的其他操作。
(9)IOPCGroupStateMgtDisp:自动接口,相当于IOPC2GroupStateMgt,可以利用它对组的状态进行管理,如改变数据更新速度和活动状态。
(10)IOPCSyncIODisp:自动接口,相当于IOPCSyncIO,同步读写操作。
(11)IOPCAsyncIODisp:自动接口,相当于IOPCAsyn2cIO, 异步读写操作。
(12)IOPCPublicGroupStateMgtDisp(可选):自动接口,相当于IOPCPublicGroupStateMgt,可以利用全局组的状态进行管理,可以把一个局域组变成全局组。
3.3项(Item)的接口
项是应用程序和驱动程序之间通讯的最小逻辑单位, 其接口如下:
(1)Iunknown:COM标准接口。
(2)IOPCItemDisp:通过该接口可以得到项的有关参数,如ID、句柄等。
4.OPC技术的最新发展
(1)Data Access 2.03,数据访问版本2.03
这个最新推出的版本,使得在名称空间(Name Space)内的节点具有属性。它能在名称空间内非常有效地印象复杂的设备和应用,一个节点能代表一个IEC 61131-3功能块。例如,静态变量由节点的属性表示,它们并不出现在名称空间中,动态变量(过程变量,输入,输出)可以在节点内部进行表达,并具有描述其本身特征的属性。
(2)Alarm and Event 1.01(报警和事件版本1.01)
数据访问服务器只能向客户机通报在一定时间段内已有一定量的数值变化,而报警和事件服务器向客户机通报个参数已超过上限值或低于下限值或特定的事件。为此,它提供和条件有关的事件,和单元故障有关的信息由第一种类型表示,有关过程由人工干预信息(如现场中的人工纠错作用)由第二种类型表示。在事件空间中组织事件的表达,有多种方法可以使客户机影响服务器的行为特性,例如启动、禁止和确认与条件有关的事件。
(3)OPC与Windows DNA-M
Windows DNA-M(Windows Distributed Internet Architecture for Manufacturing)是微软公司接近推出的用于自动控制的系统软件,OPC是其中操作的部分。DNA-M的体系结构基于微软公司的产品(如操作系统,应用服务器,编程环境)和技术(如DCOM,Active X,XML)以及Internet等,其设计思想是为了自动化应用的集成(如ERP,DCS,SCADA,HMI,PLC和基于PC的控制)。
这些技术之一是Biztalk,它用于数据交换的Microsoft环境:可以实现基于XML(Extensible Markup Language,是用于描述数据结构的语言,为此可以使用按照要求而定义的标签)结构应用之间的数据交换以及当前和未来工业标准之间的数据交换。应用Biztalk将增强OPC在DNA-M体系结构中的重要性,因为有可能在I/O区域外应用OPC,从而扩大OPC的应用范围。OPC国际基金会新成立了一个"OPC和XML"工作组,这个工作组将定义适用于描述自动化技术中的单元、系统和应用各个不同方面的模型。
直到现在,只有简单数据类型和字段的处理得到OPCData Access Specification 的最大化支持。最新发布的OPC Data Access Specification 版本2.03尚不能处理复杂数据类型(域)或装载大容量数据等。OPC已成立一个关于处理复杂数据类型的工作组,将会弥补这个缺陷,这也是OPC技术的一个跃进。
随着计算机控制的发展, 计算机与外围设备的接口变得越来越复杂, 因此, 一个统一的接口十分必要。OPC为计算机与外部设备通讯提供了一个统一的标准, 极大地方便了硬件开发商、软件开发商以及最终用户。它将成为自动化系统、现场设备与工厂办公管理应用程序之间的有效联络工具, 相互之间的数据交换得以简捷化和标准化, 极大地方便了硬件开发商、软件开发商和最终用户, 必将在目前的DCS系统和将来的FCS系统中发挥极大的作用。
参考文献:
[1] 向冬、王润孝、秦现生:基于OPC的多层过程控制系统设计及实现[J].计算机应用,2003.
[2] 石林锁、王涛、刘顺波:基于OPC规范的客户应用程序实现闭.微计算机信息,2003,19(5):68-70.
[3] 何江海:OPC客户端关键技术的实现闭.微计算机信息,2003,19(7):76-78.
[4] 李勤:党选举.基于COM的OPC技术研究及其接口实现闭.电子技术应用,2003,(2):28-30+34.
[5] 孙增圻、 张再兴、 邓志东: 智能控制理论与技术[M] . 北京: 清华大学出版社, 1997.