OPC接口技术规范
- 格式:doc
- 大小:45.50 KB
- 文档页数:9
OPC UA(OPC Unified Architecture,OPC统一体系架构)1. OPC UA 简介OPC UA(Unified Architecture)标准是OPC基金会2006年推出的一个新的工业软件应用接口规范,是企业软件架构的一个全新方向。
OPC UA的主要目标是建立更丰富的数据模型与平台的独立性,以及提高工厂底层和企业系统之间的集成支持。
2. OPC UA 产生现有OPC 规范的不足:1) 缺少跨平台通用性。
由于COM/DCOM对Microsoft平台的依赖性,使得OPC-COM接口很难被应用到其它平台上。
2) 较难与Intemet应用程序集成。
由于网络防火墙会过滤掉大多数基于COM传输的数据,因此OPC-COM不能与Intemet应用程序进行交互。
DCOM 不适用于Internet 环境,它不支持通过Internet访问对象;3) COM 产生的传输报文复杂,并且由于防火墙的存在,在Internet 上发送COM 报文非常困难。
4) 较难与企业应用程序连接。
企业应用程序需要实时的工业现场数据,这些数据通常来自具有OPC-COM接口的服务器。
但是这些上层应用程序大多没有与OPC-C0M服务器交互的OPC-COM接口,因而不能进行连接。
促使OPC UA 出现的主要因素:1)工业应用软件正转向;2)客户端软件需要一个集成的API 集成现有OPC规范及各自独立的API;3)客户端软件需要对数据语义进行识别;4)客户对服务器安全性、可靠性等性能方面更高的要求。
针对上述因素和现有OPC 的不足,新规范OPC UA 主要通过以下方法来解决:1) OPC UA 的消息采用WSDL 定义,实现了规范的平台无关性;2) OPC UA 定义了一套集成的服务,解决了现有OPC 规范在应用时服务重叠的问题;3) OPC UA 采用了集成的地址空间,增加对象语义识别功能,并实现了对信息模型的支持;4) 另外,OPC UA 采用冗余技术、安全模型等一系列机制,提高了安全性、可靠性等方面的性能。
DCOM配置规范在使用了OP C技术,并有网络数据访问的应用系统中,不可避免地要进行OP C DCOM权限配置。
DCOM配置与windows操作系统的安全体系结合在一起,而各版本的操作系统(9x、NT、2000、XP、2003等)的安全体系又或多或少地有所区别;同时,OP C服务器运行的方式也不尽相同(进程内、进程外、系统服务、有无界面……);而且,不同的应用系统对安全的要求也不同。
总之,要想根据具体情况尽量合理地完成OP C DCOM配置并不是一件很轻松的事。
本章节根据XP的DCOM配置来讲述如何进行OP C DCOM配置。
其他操作系统的DCOM配置大体相似,要想做好DCOM配置,必须对OP C安全机制和操作系统安全机制有所了解,要根据不同情况来采取相应的措施。
对于2000、2003等操作系统下对DCOM配置,本文会陆续增加。
准备工作首先要配置好DCOM取得一些必要的信息是不可避免的。
如果已经开始配置DCOM了,请检查是否有如下信息:DCOM连接使用的用户名密码(最好是系统管理员因为可以方便配置)OPC SERVER的IP地址分配给我们的IP地址和子网掩码OPC SERVER的服务名称了解对方OPC SE RV E R的DCOM配置情况。
Windows XP操作系统下对服务器端的配置。
在服务器端配置DCOM服务的时候可以参考对XP系统客户端配置。
Windows XP操作系统下对OP C客户端配置。
1、客户端必须能访问服务器端共享。
来确认客户端和服务器端之间建立IPC管道没有问题。
2、 RPC服务必须运行。
因为OP CENUM服务是依赖于RP C服务的。
所以要先检查RP C服务是否运行:系统的DCOM服务“DCOM Server P rocess Launcher”也要启动。
3、客户端的配置请运行DCOMCNFG命令来打开组件服务,或者从管理工具文件夹打开组件服务。
检查组件服务下计算机里的“我的电脑”属性,确认是否配置正常,请根据下面接图来对比本机是否正常在此截图里,请确认以下用户是否有相应的权利。
opc技术规范是以microsoft的ole/com技术为基础,定义了一组接口规范。
它包括opc自动化接口(automation interface)和opc定制接口(custom interface)。
另外,opc技术规范定义的是opc服务器程序和客户机程序进行通讯的接口或通讯的方法。
1 opc对象与接口:opc服务器对象提供了对数据源进行存取(读/写)或通讯的方法,而数据源可以是现场的i/o设备,也可以是其它的应用程序。
通过接口,opc客户应用程序可以同时连到由一个或多个厂商提供的opc服务器上。
如图1所示。
opc服务器封装了与i/o控制设备进行通讯和访问数据的类型与名字及进行设备操作的代码。
2 opc数据存取(data access)规范:总体来说,opc数据存取规范包含几个对象:服务器对象(server object)、组对象(group object)、项对象(item object)。
opc服务器对象维护着服务器的信息,同时也是opc组对象的包容器。
opc组对象维护着它自己的信息并提供包容opc项的机制,同时管理opc项。
opc组提供客户应用程序组织数据的机制,例如:一个组可以包含一个显示面板所有数据的项,并可对数据进行读写。
在一些特殊情况下,还可以在组里建立客户应用程序与项的连接,并可以根据需要禁止或允许这种连接。
opc客户应用程序还可以修改opc服务器向opc 客户应用程序提交数据变化的刷新数率。
opc组有两种类型:公共组(public)和局部组(local or private)。
公共组可以为多个客户程序共享,而局部组只为某一个客户程序所有。
在每个组里,客户程序可以定义多个opc 项。
如图2所示。
opc项代表了与服务器里数据源的连接。
从定制接口(custom interface)角度来看,一个opc 项不能被opc客户程序作为一个对象来进行操作,因此,在opc项中没有定义外部接口。
OPC(OLE for Process Control, 用于过程控制的OLE)是一个工业标准,管理这个标准国际组织是OPC基金会,OPC基金会现有会员已超过220家。
遍布全球,包括世界上所有主要的自动化控制系统、仪器仪表及过程控制系统的公司。
基于微软的OLE(现在的Active X)、COM (部件对象模型)和DCOM (分布式部件对象模型)技术。
OPC包括一整套接口、属性和方法的标准集,用于过程控制和制造业自动化系统。
OPC全称是OLE for Process Control,它的出现为基于Windows的应用程序和现场过程控制应用建立了桥梁。
在过去,为了存取现场设备的数据信息,每一个应用软件开发商都需要编写专用的接口函数。
由于现场设备的种类繁多,且产品的不断升级,往往给用户和软件开发商带来了巨大的工作负担。
通常这样也不能满足工作的实际需要,系统集成商和开发商急切需要一种具有高效性、可靠性、开放性、可互操作性的即插即用的设备驱动程序。
在这种情况下,OPC标准应运而生。
OPC标准以微软公司的OLE 技术为基础,它的制定是通过提供一套标准的OLE/COM接口完成的,在OPC 技术中使用的是OLE 2技术,OLE标准允许多台微机之间交换文档、图形等对象。
COM是Component Object Model的缩写,是所有OLE机制的基础。
COM 是一种为了实现与编程语言无关的对象而制定的标准,该标准将Windows下的对象定义为独立单元,可不受程序限制地访问这些单元。
这种标准可以使两个应用程序通过对象化接口通讯,而不需要知道对方是如何创建的。
例如,用户可以使用C++语言创建一个Windows对象,它支持一个接口,通过该接口,用户可以访问该对象提供的各种功能,用户可以使用Visual Basic,C,Pascal,Smalltalk或其它语言编写对象访问程序。
在Windows NT4.0操作系统下,COM规范扩展到可访问本机以外的其它对象,一个应用程序所使用的对象可分布在网络上,COM的这个扩展被称为DCOM (Distributed COM)。
工厂自动化系统集成中OPC技术的应用随着科学技术的发展,自动化技术在现实生活中得到广泛的应用,而OPC 技术的产生,是为了保证自动化系统中,各种应用软件、设备驱动程序可以稳定、安全的运行。
OPC技术属于一种规范、标准技术,在自动化系统中的应用,提升了系统的安全性,并促进系统的简化,同时帮助自动化系统解决相关的问题。
标签:工厂;自动化系统集成;OPC技术引言在工厂自动化系统集成中,应用OPC技术,可以实现不同控制设备产生的信息,在计算机集成控制系统中的交流,提高系统的安全性和运行效率。
所以我们针对OPC技术相关的内容,以及OPC技术在工厂自动化系统集成中的应用进行分析研究。
1 OPC技术介绍1.1 OPC系统的结构组成POC技术是当前产生的为了应用软件、设备驱动程序的通讯而产生的一种技术规范。
OPC技术在应用的过程中产生了标准的接口,将接口函数规范,进而使得现场设备不管在任何形势下,都可以使用,并保证软件对客户的透明性[1]。
OPC技术是当前产生的一种硬件、软件即插即用的组件,作为一种微软技术,OPC技术主要有客户机、服务器两个部分组成,OPC技术,服务器程序主要是安装在系统的服务器上,而客户端的应用程序则主要是安装在系统服务器上[2]。
OPC技术的服务器,是由不同的供应商提供的,其中每一个服务器都可以连接到很多的客户机。
OPC系统,其服务器提供接入的对象和接口,在其服务器上的应用系统,会对OPC系统的对象和接口提供开放服务,应用程序可以同时连接到多个服务器。
OPC技术的应用,使得其很容易完成自动化系统的生成,实现系统的集成。
1.2 OPC技术的特点OPC技术在应用的过程中,其中使用到的客户端的应用程序,可以对服务器数据的访问,采用标准的接口方式,所以在工业生产中被广泛的应用[3]。
OPC 技术的硬件系统只要有一套软件组成就可以实现运行,在硬件设备的驱动下,OPC技术不需要进行驱动程序的重新編写。
OPC接口技术规范 (上)周爱华汪仁智周爱华先生,重庆工业自动化仪表研究所公用自控事业部副部长;汪仁智先生,副部长。
关键词:OPC COM/DCOM数据信息技术规范服务器客户应用程序一OPC基本原理OPC是基于Microsoft公司OLE/COM和DCOM技术的。
1. OPC概述OPC数据信息访问技术规范通过OPC服务器描述了OPC COM部件对象和接口的运行情况。
通过一个或者多个软件供应商所提供的OPC驱动程序,一个OPC客户应用程序能够连接到OPC服务器,OPC客户应用程序如图1所示。
不同的软件供应商都能够提供相应的OPC服务器。
软件供应商提供的程序代码决定了每个服务器所能够访问的过程控制设备和数据信息,以及服务器怎样访问物理控制设备数据信息的详细内容和数据名称。
OPC技术规范有关命名习惯在后续的介绍中会详细涉及到。
OPC客户与服务器的关系如图2所示。
在应用过程中,OPC服务器通常包括服务器、组和项目等几个对象。
OPC 服务器对象维持着有关服务器和适合于OPC组对象并作为一个容器服务器的数据信息。
而OPC组对象则维持着其自身的数据信息,并为容器和逻辑OPC项目提供运行机制。
OPC组为客户组织数据信息提供了一种方式。
例如,在一个特殊操作显示或者报表中,组可以表征项目,数据信息也能够进行读取和写入操作。
此外,在一个组中,客户和项目之间也能够很容易地建立起连接关系,而且当需要的时候还能够及时激活和取消。
一个OPC客户应用程序可以组态数据信息的变化速率,一个OPC服务器应该将变化的数据信息提供给OPC客户应用程序。
OPC组有两种类型的组别,即公共和本地(或者私有)组。
公共组的数据信息可以允许多个客户应用程序共享访问,而私有组的数据信息仅供本地化客户应用程序共享访问。
更详细的内容在后面还将会涉及到。
对于公共组还有更加特殊的可选择接口内容。
在每个组中,客户能够定义一个或者多个OPC项目。
如图3所示。
OPC项目表征了在服务器内部数据信息来源的连接情况。
从习惯性接口的一面来观察,一个OPC项目是不大可能直接访问一个由OPC客户应用程序所建立的对象。
因此,对于一个OPC项目,必须要有一个已经定义好的外部接口来完成这项工作。
对于OPC项目的所有访问则是依靠一个包含有OPC项目的OPC组对象来实现的,或者只需要对OPC项目进行简单的定义即可。
与每个OPC项目相关联的内容则是数值、品质和时间标志。
数值是以一个变量的形式表现出来,而品质则类似于通过现场总线所指定的功能特性。
应该更加注意的是,OPC项目不是数据信息的来源,OPC项目仅仅是用于连接数据信息来源的。
2. OPC适合于什么地方OPC技术最初的设计是用于从网络服务器访问数据信息,OPC接口能被应用于程序中的许多地方。
如图4所示,最低限度OPC服务器接口能从相应的物理设备获得数据信息,并将其传输到一个SCADA系统或者DCS中去;另一方面,也可以将SCADA系统或者DCS的数据信息传送到应用程序中去。
这种结构体系和设计的运行机制使得有可能建立一个OPC服务器,且允许一个OPC 客户应用程序访问来自于其他许多OPC服务器所提供的数据信息,当然,这些不同的OPC服务器程序则需要来自于许多不同的OPC服务器软件供应商,并且是依靠单个对象运行于不同的节点。
3. 一般OPC结构体系和组成OPC是一种为两组接口提供了预定义的技术规范,这两种接口是OPC常规接口和OPC自动化接口。
一个经过修改以后的自动化接口在2.0版本的OPC技术规范中得到了体现。
OPC接口如图5所示。
OPC数据信息访问技术规范详细指定了COM接口(即接口是什么),而不是接口的执行(即并非怎样执行)。
另外,还指定了接口被希望提供到客户应用程序并进行使用的行为举止。
OPC数据信息访问技术规范内藏了对结构体系和接口的恰当的详细描述。
像所有COM部件的执行一样,OPC是一种客户/服务器结构模式,OPC服务器部件为OPC对象及其管理工作提供了一个接口。
在一个OPC服务器的执行过程中,有几个独特的事项需要考虑。
主要问题是通过非共享通信路径到相应的物理设备的数据信息传输频率。
因此,我们希望OPC服务器既可以进行本地服务,也能够进行远程传输,其EXE文件所包含的代码对于物理设备进行直接性数据信息的采集是完全可靠和完善的。
一个OPC客户应用程序与一个OPC服务器之间通过指定的OPC常规和自动化接口进行通信处理。
OPC服务器必须首先执行常规接口,然后就可以随意地执行自动化接口。
一个inproc(OPC处理器)部件可以被应用于配置接口和提供额外的OPC自动化接口所需要的项目级功能特性。
典型OPC结构体系如图6所示。
OPC服务器通过各种各样的客户应用程序进行巩固和优化数据信息访问方式也是人们所期望的,这样可以促进与物理设备的有效通信性能。
在输入(读)方面,通过物理设备所返回的数据信息对于异步分发或者通过不同OPC客户应用程序的同步采集将得到进一步缓冲;在输出(写)方面,OPC服务器代表OPC 客户应用程序刷新物理设备的数据信息。
4. 对象和接口OPC服务器对象为一组数据信息源进行访问(读/写)或者通信提供了一种方式。
源变量的类型是一套服务器执行的功能函数。
通过OPC接口部件,一个OPC客户应用程序能连接到OPC服务器,而且可以与OPC服务器进行通信,并处理相应的数据信息。
OPC服务器对象为OPC 客户应用程序建立和利用OPC组对象提供了相应的功能特性。
这种组对象允许客户应用程序将它们所希望访问的数据信息有效地组织起来。
当一个组对象被作为一个单元单独处理时,能被激活和被解除激活状态。
组对象为客户应用程序项目能够预订列表数据信息也提供了一种方式,所以只要当OPC服务器上的数据信息改变时,它也能及时得到通告。
值得注意的是,所有COM对象都是通过接口部件进行存取的。
客户应用程序仅仅只能了解接口部件。
因此,这里的对象描述是采用了本地化的表示方式,而不是服务器内部的执行。
如图7、8和9分别展示了标准OPC服务器、组和项目对象,其中[]内的一些接口部件是可选择性的内容。
5. 必需的接口定义OPC服务器驱动程序的开发商必须执行必需性接口的全部功能特性。
一个OPC客户应用程序通过从OPC必需的接口部件调用功能函数来实现与OPC服务器数据信息的通信处理工作。
6. 可选择性的接口定义OPC服务器驱动程序的开发商可以执行选择性接口的功能特性。
可选择性接口部件是一种开发商可以选择性执行的OPC服务器驱动程序。
当一个OPC服务器支持一种可选择性接口部件时,即使该功能正好返回E_NOTIMPL代码,在可选择性接口部件内部的所有功能也必须被执行。
希望使用可选择性接口功能特性的OPC客户应用程序将会对可选择性接口部件询问相应的OPC服务器。
而OPC客户应用程序必须被设计成不允许这种可选择性接口部件的存在。
7. 客户应用程序应该使用的接口一般而言,所建立的OPC客户应用程序通常利用脚本程序设计语言,而且还将使用到自动化接口部件。
采用C++程序设计语言所建立的OPC客户应用程序最容易找到,利用常规接口部件就能够最大限度地完成所需要的功能特性。
8. 地址空间和服务器的配置OPC数据信息访问技术规范已明确规定,一个OPC服务器组态地址空间利用IpersistFile对象接口可进行管理和持续性的存储,其中,只有OPC服务器中带有细节性的数据信息,可进行持续性的存储。
所有OPC客户应用程序组态数据信息(组和项目定义)必须通过各自的客户应用程序进行持续性的存储。
在系统中已定义的所有处理工作不能确保客户与服务器之间的会谈具有相同的数值。
能够区别OPC服务器的地址空间是非常重要的,也就是人们所熟悉的OPC 服务器组态工作,由于这种地址空间是一种小型化子集的原因,一些特殊的客户应用程序可能会对详细的内容感兴趣,其详细内容也就是组和项目对象。
在OPC数据信息访问技术规范中,详细论述了OPC客户应用程序所涉及到的特殊组对象的相关内容,组对象的持续性存储性能是各个OPC客户应用程序的职责范围。
OPC服务器地址空间的怎样定义和组态等详细内容在OPC数据信息访问技术规范中特意采取了未明确的方式来处理的。
例如,OPC服务器地址空间可以是如下的任何一种。
(1)完全固定方式,例如,在一定的刻度(标度)范围内,对于特殊设备需要提供专用接口部件。
(2)在OPC环境以外的所有组态方式,例如,对于一个已经存在的外部DCS 需要一个接口部件。
(3)在启动时,通过一种智能化的服务器进行自动化组态的方式,对于已经安装了硬件或接口部件的现有系统能够直接获得数据信息。
(4)在运行中,通过一种智能化的服务器进行自动化组态的方式,这种基于客户应用程序数据信息项目名称的OPC服务器运行方式是目前最需要的。
OPC服务器地址空间在服务器内部的稳固性和易管理性也是人们所期望的。
OPC客户应用程序定义和管理相关的被称为组的小型化项目。
利用OPCGroup对象接口部件,能为客户应用程序提供容易定义、管理和重新建立相应接口对象部件的能力。
OPC客户应用程序直接指挥OPC服务器建立、管理和删除相应的组对象,组的持续性是OPC客户应用程序的职责范围。
尽管这些分析的可能性存在,借助于公共组对象的使用,OPC服务器能为这种类型的组对象提供持续性存储性能,或者将它们作为已被定义为组对象的服务器来对待。
9. 本地与远程服务器我们希望OPC服务器供应商将至少能够提供下述相对于网络的两种方法中的任何一种:(1)OPC服务器供应商能够进一步表征,将OPC客户应用程序始终连接到一个本地化的OPC服务器上,而且是现有私有化网络计划的应用。
在这种情况下,数据信息的代码可能会作为OPC项目定义特殊化的一部分。
对于OPC服务器供应商来说,谁能将OPC功能特性增加到一个现有的分布式产品系统中去,他就会首先取得这些方法的使用权。
(2)OPC服务器供应商还能够进一步表征,在目标节点上的OPC客户应用程序应该连接到所希望的OPC服务器上,通过DCOM技术的应用,进而提供网络化功能特性。
由于这种原因,应该深入考虑所有“RPC_E_*”返回错误代码,这也有可能从后续的功能特性介绍中得到正确的答案。
10. 应用级服务器和网络节点选择在一个服务器内部,OPC数据信息访问技术规范支持将客户应用程序的需求组织进入组对象的概念。
这样的组对象仅仅能够包含一部分OPC服务器对象对数据信息的需求。
为了能够访问数据信息,一个OPC客户应用程序还将需要指明下列内容:(1)OPC ActiveX服务器的名称,此操作可通过CoCreateInstance和CoCreate InstanceEx接口部件的操作来实现。
(2)OPC ActiveX服务器宿主机器的名称,这种操作可以通过CoCreate InstanceEx接口部件的操作来实现。