OPC重点知识总结
opc基础学习

only between nodes
OPC基金会
• 管理OPC标准的组织是OPC基金会。其
前身由一个Fisher-Rosemount、 Rockwell Software、Siemens、 Opto22、Intellution和Intuitive Technology等著名大公司组成专门的工 作组,仅仅用了短短的一年时间便开发 出一个基本的可运行的OPC技术规范。 在1996年8月发布了简化的、一步到位 的解决方案。
FB agent PLC
Accessing a server in another node
client application (OPC client) stub DCOM
TCP/IP
DCOM
TCP/IP
TCP/IP
Limitation: does not work over firewalls. Solution: OPC XML (see later)
OPC as a hub
source: Siemens WinCC
OPC connection to databases
Tools allow to build an OPC DA interface to any ODBC equipped database. The database internal structure (exposed through queries) is reflected as a hierarchy of OPC items. This allows to give a unified access to simple items.
OPC server
aspect directory
OPC client
OPC简介与开发总结

背景简介OPC(OLE for Process Control,用于过程控制的OLE)是为过程控制专门设计的OLE 技术,由一些世界上技术占领先地位的自动化系统和硬件、软件公司与微软公司(Microsoft)合作而建立的,并且成立了专门的OPC 基金会来管理,OPC 基金会负责OPC 规范的制定和发布。
OPC 提出了一套统一的标准,采用典型的C/S 模式。
厂商可以开发一个高度优化的、可重用的OPC Server 访问底层的硬件,并将数据以OPC 接口方式提供给任何支持OPC规范的客户端软件,客户就可以按照统一的数据访问标准访问不同厂商的硬件产品。
(IEC61850/MODBUS/DNP) 。
OPC 技术本质是采用了Microsoft 的COM/DCOM(组件对象模型/分布式组件对象模型)技术,COM 主要是为了实现软件复用和互操作,并且为基于WINDOWS的程序提供了统一的、可扩充的、面向对象的通讯协议,DCOM 是COM技术在分布式计算领域的扩展,使COM 可以支持在局域网、广域网甚至Internet 上不同计算机上的对象之间的通讯。
OPC规范简介OPC 规范作为一个工业标准,是开发OPC 服务器与OPC 客户软件之间数据传输的规范,并已形成一个体系。
根据开发软件功能的不同,OPC 制定了以下领域单独规范:➢数据访问规范:定义了OPC 服务器中一组COM 对象及其接口,并规定了客户对服务器程序进行数据存取时需要遵循的标准。
借助Microsoft 的DCOM 技术,OPC 实现了高性能的远程数据访问能力。
➢报警和事件处理规范:该规范提供了一种通知机制,在指定事件或报警条件发生时,OPC 服务器能够主动通知客户程序。
➢历史数据访问规范:该规范提供一种通用历史数据引擎,可以向感兴趣的用户和客户程序提供数据汇总和数据分析等额外的信息。
➢安全性规范:该规范提供了一种专门的机制来保护OPC 服务器中的现场数据,防止未授权的操作误修改这些参数。
原花青素(OPC)知识解析讲解(二)

原花青素(OPC)知识解析讲解(二)若干年后,马斯魁勒偶然读了一本有关Jacquer Carter美洲探险的书,了解到发生在400多年前的那件事。
他脑中闪过一个念头是:挽救了船员们的松树皮中除了含有维生素C外,很可能还含有原花青素(OPC)。
花生仁包衣中的原花青素(OPC)可保护花生仁中的油脂不被氧化腐烂,松树中也有大量的松脂,从这一点看,每一棵松树就是一粒“巨大的花生”。
激动不已的马斯魁勒亲自去了加拿大魁北克地区进行研究。
结果证实了他的推想:松树皮提取物除含有维生素C之外,确实还有“维生素C伴随剂-原花青素(OPC)”它们二者协同对付坏血病,原花青素(OPC)的作用之一就是保护维生素C在到达起效部位之前不被氧化失活。
这就是有人也将原花青素(OPC)称为维生素C增效剂的原因。
此后不久,马斯魁勒又发现法国海岸的树皮中也含有大量的原花青素(OPC)。
这一发现的意义在于找到了大量提取原花青素(OPC)的新资源。
此时是50年代。
不久,松树皮提取物(其中含有约85%的原花青素(OPC))在法国被注册为药物,其商品名为Pycnogenol,用于提高血管的抵抗力,降低毛细血管的脆性和通透性。
这是原花青素(OPC)的第一个明确适应症。
在随后的实际应用中,欧洲的医生们从他们的病人所反馈的信息中获得,原花青素(OPC)的功能并不仅仅局限于血管系统疾病,它对诸如花粉过敏、关节炎、胃溃疡等疾病同样也具有明显的疗效。
20世纪70年代,马斯魁勒又发现了获得原花青素(OPC)另一个更好的资源-葡萄籽。
用葡萄籽提取的原花青素(OPC)含量高达95%,并且,他还用葡萄籽中的原花青素(OPC)系统地做了一系列实验,如生物利用度试验、毒性实验、三致实验(致畸、致癌、致突变)等,这一切都是为了将原花青素(OPC)打入美国市场。
80年代,自由基对健康的影响日益为人们所认识。
由于原花青素(OPC)具有强烈的抗氧化作用,而自由基也是通过氧化损伤来危害健康,马斯魁勒做了原花青素(OPC)的自由基除活性实验,实验结果证明原花青素(OPC)是迄今为止所发现的最强效的自由基清除剂,其抗自由基氧化能力是维生素C的20倍,维生素E的50倍,尤其是其体内活性,更是其他抗氧化剂无法比拟的。
OPC技术介绍

OPC技术介绍OPC(OLE for Process Control)是一种应用于自动化领域的通信技术,它允许不同的硬件和软件系统之间进行实时的数据交换和通信。
OPC技术的引入大大简化了自动化系统中的数据传输和集成问题,提高了系统的可靠性和性能。
OPC技术的基本原理是通过使用标准化的接口和协议来实现数据通信。
它建立在微软的OLE(Object Linking and Embedding)技术之上,利用了OLE的功能来连接各种自动化设备和软件系统。
OPC技术的核心是OPC服务器,它可以连接到各种设备(如PLC、DCS、传感器等),并提供统一的接口和协议来进行数据交换。
1.开放性:OPC技术采用了开放的标准接口和协议,可以与各种不同的设备和系统进行通信。
这使得不同厂商的设备和软件可以轻松地进行集成和交互。
2.可靠性:OPC技术使用了高效的通信协议,可以实现实时的数据传输和通信。
它还提供了数据质量检查和错误处理机制,确保数据的可靠性和一致性。
3.灵活性:OPC技术提供了灵活的配置和管理功能,可以根据不同的应用需求进行定制和扩展。
它支持不同的数据类型和通信方式,可以适应不同的工业环境和设备要求。
4.易用性:OPC技术提供了友好的用户界面和操作接口,使得用户可以方便地进行配置和管理。
它还提供了丰富的工具和函数库,支持开发人员进行应用程序的开发和测试。
OPC技术的应用领域非常广泛,包括工业自动化、能源管理、建筑自动化、物联网等。
在工业自动化领域,OPC技术可以用于实时监控和控制系统,实现设备之间的数据交换和协调。
它还可以与其他系统(如MES、ERP等)进行集成,实现生产过程的优化和管理。
在能源管理领域,OPC 技术可以用于实时监测和控制能源消耗,提高能效和减少排放。
在建筑自动化领域,OPC技术可以用于楼宇管理系统,实现设备的自动控制和状态监测。
在物联网领域,OPC技术可以用于设备的远程监控和管理,实现实时的数据采集和分析。
OPC应用总结归纳技术简介

精心整理OPC是Object Linking and Embedding(OLE)for Process Control的缩写,它是微软公司的对象链接和嵌入技术在过程控制方面的应用。
由一些世界上占领先地位的自动化系统和硬件、软件公司与微软(Microsoft)紧密合作而建立的,OPC基金会负责OPC规范的制定和发布。
OPC提出了一套统一的标准,采用CLIENT/SERVER模式,针对硬件设备的驱动程序由硬件厂商或专门的公司完成,提供具有统一OPC接口的SERVER程序,软件厂商按照OPC标准访问SERVER程序,即可实现与硬件设备了实现与编程语言无关的对象而制定的标准,该标准将Windows下的对象定义为独立单元,可不受程序限制地访问这些单元。
这种标准可以使两个应用程序通过对象化接口通讯,而不需要知道对方是如何创建的。
例如,用户可以使用C++语言创建一个Windows对象,它支持一个接口,通过该接口,用户可以访问该对象提供的各种功能,用户可以使用Visual Basic,C,Pascal,Smalltalk或其它语言编写对象访问程序。
在Windows NT4.0操作系统下,COM规范扩展到可访问本机以外的其它对象,一个应用程序所使用的对象可分布在网络上,COM的这个扩展被称为DCOM (Distributed COM)。
通过DCOM技术和OPC标准,完全可以创建一个开放的、可互操作的控制系统软件。
OPC采用客户/服务器模式,把开发访问接口的任务放在硬件生产厂家或第三方厂家,以OPCOPC动化接口(Automati on interface);自定义接口(言而定义的标准接口,可以使用VisualBasic、Delphi而自定义接口是专门为C++业监控编程带来了便利,如果它不能全方位地支持OPC,则必将被历史所淘汰。
OPC由规范于1996年8月正式诞生了,随着1997年2月年9月新成立的OPC Foundation对OPC规范进行修Application (DNA) 构架和 Component Object Model (COM) COM技术适用于过Dave Rehbein是这样描述的OPC是一种客户/服务器模式,具有语言无关性、代应用程序与OPC服务器之间必须有OPC接口,OPC规范提供了两套标准接口:Custom标准接口,OLE自动化标准接口。
OPC介绍

OPCITEMSTATE OPCITEMDEF OPCITEMRESULT
OPCITEMSTATE
This structure is used by IOPCSyncIO::Read typedef struct { OPCHANDLE hClient; // the client provided handle for this item FILETIME ftTimeStamp; WORD wQuality; WORD wReserved; VARIANT vDataValue; } OPCITEMSTATE;
OPC是一个工业标准。 OPC由一些世界上居领先地位的自动化系统和硬件、 软件公司与微软(Microsoft)紧密合作而建立的。 OPC定义了应用Microsoft操作系统在基于PC 的客户 机之间交换自动化实时数据的方法。 管理这个标准的国际组织是OPC基金会。
1.2、OPC产生背景
在过去,为了存取现场设备的数据信息,每一个应用 软件开发商都需要编写专用的接口函数。由于现场设备的 种类繁多,且产品的不断升级,往往给用户和软件开发商 带来了巨大的工作负担。通常这样也不能满足工作的实际 需要,系统集成商和开发商急切需要一种具有高效性、可 靠性、开放性、可互操作性的即插即用的设备驱动程序。 在这种情况下,OPC标准应运而生。 OPC是一种软件接口标准。
b、组对象(Group) 组对象维护自身的信息,同时包容并逻辑组织 OPC数据项(Item)。 OPC组对象(Group)提供了客户组织数据的 一种方法,组是应用程序组织数据的一个单位。客 户可对之进行读写,还可通过组对象设置客户端的 数据更新速率以及提供读取OPC Item值的接口。
c、数据项对象 数据项是读写数据的最小逻辑单位,一个项与一 个具体的位号相连。项不能独立于组存在,必须隶属 于某一个组。 OPC数据项是服务器端定义的对象,通常指向设 备的一个寄存器单元。OPC客户对设备寄存器的操作 都是通过其数据项来完成的,通过定义数据项,OPC 规范尽可能的隐藏了设备的特殊信息,也使OPC服务 器的通用性大大增强。 每个数据项都有值(Value)、品质(Quality)、时间 戳(Timestamp)三个属性。
OPC技术介绍一

OPC专栏OPC技术介绍(一)◆基于COM技术的OPC微软公司为了提供商业应用程序和特定用途的软件包间的相互连接性,开发了组件对象模型(Component Object Model, COM)技术。
COM是一种软件组件间相互数据交换的有效方法。
COM技术具有以下特点:• COM并不是一种计算机语言,它与运行的机器(只要互相连接),机器的操作系统(只要支持COM)以及软件开发的语言无关,而是在任意的两个软件组件之间都可以相互通信的二进制和网络的标准。
• COM服务器是根据COM客户的要求提供COM服务的可执行程序,作为Win32上可执行的文件发布。
• COM客户程序和COM服务器可以用完全不同的语言开发。
这样使利用C++,Visual Basic以及Excel所开发的程序可以相互连接。
• COM组件可以以二进制的形式发布给用户。
•与过去DLL版本管理非常困难的问题相比,COM技术可以提供不同版本的COM服务器和COM客户程序之间的最大的兼容性。
作为COM技术扩展的分布式COM(Distributed Component Object Model)技术,更可以使COM组件分布在不同的计算机上,通过网络互连并互相交换数据。
所以对于COM客户程序来说,同样象连接本地计算机上的COM服务器一样,去连接远程计算机上的COM服务器,当然通信的速度不太一样,但是重要的是不必对服务器程序进行修正就可以在网络上自由构成,如图1所示。
图1 利用COM和分布式COM达成的组件间的互相连接COM技术的出现为简单地实现控制设备和控制管理系统之间的数据交换提供了技术基础。
但是如果不提供一个工业标准化的COM接口,各个控制设备厂家开发的COM组件之间的互连仍然是不可能的。
这样的工业标准的提供,乃是OPC 的目的所在。
总而言之,OPC是作为工业标准定义的特殊的COM接口。
OPC是以提供容易移植并具有可以满足大多数设备厂家要求的灵活性和高水平的机能性为目标而开发的,对于制造厂商和用户来说,分别可以从OPC得到以下的实惠:•设备开发者:可以使设备驱动器开发的单一化成为可能。
OPC类库学习笔记

OPC类库学习:1.取得本机主机名和IP地址的方法,返回一个IPHostEntry类型:.Dns.GetHostEntry(Environment.MachineName)return (IPHostEntry)…取得主机名为HostName上所有OPC服务器的名称(ProgID |The ProgID is a string that uniquely identifies the registered real OPC Data AccessServer2.名称返回一个字符串数组。
OPCServer_Instance.GetOPCServers(HostName) return (Arrey)…3.连接OPC服务器。
OPCServer_Instance.Connect(ServerName,ServerIP)连接成功失败状态标志位ServerState:the server’s state, which will be one of the OPCServerState values:·OPC_STATUS_RUNNING ·OPC_STATUS_FAILED ·OPC_STATUS_FAILED ·OPC_STATUS_SUSPENDED ·OPC_STATUS_SUSPENDEDHierarchical 层次化的Filter 过滤器,筛选器Variant 变量Vendor 供应商从客户程序的角度看,访问一个OPC服务器的过程大致是首先创建一个OPCServer对象,然后通过它创建一个OPCGroup,在其中添加想要访问的数据项,之后利用订阅回调机制周期性获取动态数据或通过读写接口直接访问数据项.1.创建一个OPCServer 对象2.初始化3.连接4.创建组5.添加想要访问的数据项6.访问数据OPCServer对象.Properties:z StartTime 服务器开始运行的时间 Datez CurrentTime 服务器当前的时间 Datez LastUpdateTime 最后更新时间 Datez MajorVersion 服务器主要版本 Integerz MinerVersion 服务器次要版本 Integerz BuildNumber 服务器内部版本 Integerz VendorInfo 供应商信息 Stringz ServerState 服务器状态 Longz LocaleID 场所ID Longz BandWidth 带宽 Longz OPCGroups OPC租对象集合 OPCGroupsz PublicGroupName 服务器公共组名称Array of Stringsz ServerName 服务器名称 Stringz ServerNode 服务器节点名称 Stringz ClientName 客户端名称 StringMethods:z Strings[] GetOPCServers(Optional Node) 返回服务器的名称(ProgID)z Connect(string ProgID, Optional Node) 连接到OPC数据访问服务器z Disconnect() 断开连接z GreateBrowser() 创建一个OPCBrowser对象z String GetErrorString(Long ErrorCode) 将错误代码转化为可读的说明字符串z Long[] QueryAvailableLocaleIDs() 返回客户端/服务器会话中可用的语言代码z GetItemProperties(string ItemID,long Count, ref PropertyIDs, ref PropertyValues, ref Errors ) 返回当前数据值的属性列表OPCServer Eventsz ServerShutDown(string reason)OPCBrowser ObjectOPCBrowser对象是服务器中分支和项目名称的集合.在调用像ShowLeafs方法的时候,Filter,DataType,AccessRight属性会影响到集合,这些属性允许客户请求地址空间的子集.如果用户正在浏览项目名称以便写入数据,那么在调用ShowLeafs方法前,访问权限属性应该设置为OPCWritable.服务器有平展似的名称空间或者树形的名称空间,当名称空间是平展的,那么调用ShowLeafs方法将会得到服务器上名称集合的全集.树形空间的浏览分为两步来进行,第一步,用Move方法来设置浏览位置,然后用Show方法来把名称放入集合.调用ShowBranches方法可以在当前位置下将分支填充到集合中.用其中一个分支名调用MoveDown 方法移动到该位置.调用MoveUp方法可以移动到上一级.调用MoveToRoot方法可以在任何地方移动到顶层.在任何地方,分叉和叶都能浏览到。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、OPC的基本原理定义:OPC是用于过程控制的OLE(OLE for Process Control)的首字母缩写词,在今天已经理所然地被自动化组件的制造商逐步发展成一个事实上的新技术标准。
而所谓OLE(Object linking and embedding)含义是对象链接及嵌入,用于过程控制。
OPC 是以 OLE/COM 机制作为应用程序的通讯标准。
OLE/COM 是一种客户/服务器模式,具有语言无关性、代码重用性、易于集成性等优点。
OPC 规范定义了一个工业标准接口,这个标准使得 COM 技术适用于过程控制和制造自动化等应用领域。
COM技术简述:*所谓COM并不是一种计算机语言,与运行的机器、机器的操作系统(只要支持COM)以及软件开发语言均无关,是任意的两个软件组件之间都可以相互通信的二进制和网络的标准。
*COM服务器是根据COM客户的要求提供COM的服务的执行可能的程序,可以作为Win32服务器上可执行的文件发布。
*COM客户程序和COM服务器可以用完全不同的语言开发。
这样使利用C++,Visual Basic,以及Excel中作为宏使用的应用程序的Visual Basic等不同语言所开发的程序可以相互连接。
*COM组件可以以二进制的形式发布给用户。
*与过去DLL(动态链数据库)的版本管理非常困难的问题相比,COM技术可以提供不同版本的COM服务器和COM客户程序之间的最大的兼容性。
*作为COM技术扩展的分布式COM(Distributed Component Object Model,DCOM)技术,更可以使COM组件分布在不同的计算机上,并通过网络互相连接并互相交换数据。
所以对于COM客户程序来说,同样像连接本地计算机上的COM服务器一样,去连接远程计算机上的COM服务器,当然通信的速度不太一样,但是重要的是不必对服务器程序进行修正就可以在网络上自由构成利用COM和DCOM(分布式COM)达成的组件的互相连接。
COM技术的出现使简单地实现控制设备和控制管理系统之间的数据交换提供了技术基础。
但是如果不提供一个工业标准化的COM接口,各个控制设备厂家开发的COM组件之间的相互连接仍然是不可能的。
这样的工业标准的提供乃是OPC的目的所在。
总而言之,OPC是作为工业标准定义的特殊的COM接口。
与传统过程控制系统的区别:1)传统的过程控制系统传统的过程控制系统是一对一的系统,任何一种 HMI 等上位监控软件或其它应用软件(如趋势图软件、数据报表与分析等)在使用某种硬件设备时都需要开发专用的驱动程序。
如图 1所示:系统构建完成后的最终结果是:1. 1 种软件要使用 N类硬件设备需要开发 N个驱动程序;2.M 类软件要使用 N 类硬件设备需要开发M*N 个驱动程序;3.每增加 1 个新的应用软件需要另外开发N 个硬件设备的驱动程序;4.每增加 1 个新的硬件设备需要为M 个软件开发新的设备驱动程序;5.在上图所示的例子中,针对 4种控制设备所完成的 3个应用系统一共需要开发 3*4=12种驱动程序。
新增应用软件或者硬件设备带来的只会是驱动程序种类的迅速增长。
2)基于OPC 技术的过程控制系统结构:基于OPC 技术的过程控制系统则可以完美地解决传统方式种的上述问题。
其基本系统结构如图2所示:任何一种设备只需要提供一种驱动就可以供任何软件系统使用,系统构建完成后的最终结果是:1.M 类软件要使用N 类硬件设备只需要开发N 个驱动。
2.每增加 1个新的应用软件不需要另外开发硬件设备的驱动程序;3.每增加 1个新的硬件设备只需要为开发 1个新设备的驱动程序;在上图所示的例子中,针对 4种控制设备所完成的 3个应用系统一共仅需要开发 4种驱动程序。
新增应用软件或者硬件设备可以轻松的扩展您的系统。
由于 OPC规范基于 OLE/COM技术,同时OLE/COM 的扩展远程OLE 自动化与DCOM 技术支持 TCP/IP等多种网络协议,因此可以将 OPC客户、服务器在物理上分开,分布于网络不同节点上。
OPC 规范可以应用在许多应用程序中,如它们可以应用于从SCADA 或者 DCS系统的物理设备中获取原始数据的最底层,它们同样可以应用于从 SCADA 或者DCS 系统中获取数据到应用程序中。
实际上,OPC设计的目的就是从网络上某节点获取数据。
OPC 的客户/服务器关系图同样描述了 OPC在 SCADA系统的应用。
OPC 规范了接口函数,不管现场设备以何种形式存在,客户都以统一的方式去访问,从而保证软件对客户的透明性,使得用户完全从低层的开发中脱离出来。
2、采用 OPC规范设计系统的好处:采用标准的 Windows体系接口,硬件制造商为其设备提供的接口程序的数量减少到一个,软件制造商也仅需要开发一套通讯接口程序。
即有利于软硬件开发商,更有利于最终用户。
OPC 规范以OLE/DCOM 为技术基础,而OLE/DCOM 支持TCP/IP 等网络协议,因此可以将各个子系统从物理上分开,分布于网络的不同节点上。
OPC 按照面向对象的原则,将一个应用程序(OPC 服务器)作为一个对象封装起来,只将接口方法暴露在外面,客户以统一的方式去调用这个方法,从而保证软件对客户的透明性,使得用户完全从低层的开发中脱离出来。
OPC 实现了远程调用,使得应用程序的分布与系统硬件的分布无关,便于系统硬件配置,使得系统的应用范围更广。
采用 OPC规范,便于系统的组态,将系统复杂性大大简化,可以大大缩短软件开发周期,提高软件运行的可靠性和稳定性,便于系统的升级与维护。
OPC 规范了接口函数,不管现场设备以何种形式存在,客户都以统一的方式去访问,从而实现系统的开放性,易于实现与其它系统的接口。
3、OPC技术中服务端与客户端通信数据是如何进行网络传输的?由于OPC使用的是COM技术,所以我们需要知道DCOM是怎样进行网络数据传输的。
COM是构建交互组件的标准,DCOM是允许COM组件通过网络交互的一个高层次网络协议。
我们认为DCOM是一个高层次网络协议,是因为它建立在几个已存在的协议基础之上。
例如,假设一台计算机有以太网卡,并使用UDP协议,从最底层的以太网帧到最高层的DCOM,整个协议如图1所示,中间加着IP,UDP和RPC。
图1只是许多可能配置中的一种,在RPC之下,可以有多种替代的协议。
在服务器与客户机上,DCOM自动选择它下面的最好的协议。
图1 协议层次以OSI七层网络模型来看看DCOM协议栈。
如图2所示,OSI七层网络模型与本文的例子协议栈并列画出,注意图中是在Window平台下,其它平台实现的层次可能不同。
图2 OSI七层“蛋糕”对协议栈中每层协议,数据在传输时,都包含一个数据头,而后是实际的数据,紧临的更上层协议将把它视为数据的一部分。
例如,IP层包含一个数据头和数据体,IP数据体实际上包含UDP层数据头和该层的数据体,因此,通过网络传输的数据都包含协议栈中的每层协议的数据头和数据体(如图3)。
图3 协议栈从图3中可以看出,DCOM不是一个独立于RPC之上的协议,它使用了RPC的结构体,与RPC 共用了数据头和数据体,因此,为了表明在网络层次上DCOM与RPC的密切关系,DCOM协议经常被成为对象RPC或ORPC。
ORPC高度综合了OSF DEC RPC协议的功能,例如,RPC中的身份认证,授权,信息完整性,加密等特性,在ORPC都有体现。
ORPC在两个方面扩展了标准的RPC:怎样调用远程对象的方法和如何表达、传输和维护对象的引用。
4、OPC接口OPC是OLE for Process Control的缩写,即把OLE应用于工业控制领域。
OPC服务器由三类对象组成,相当于三种层次上的接口:服务器(Server)、组(Group)和数据项(Item)。
1、服务器对象(Server)拥有服务器的所有信息,同时也是组对象(Group)的容器,一个服务器对应于一个OPC Server,即一种设备的驱动程序。
在一个Server中,可以有若干个组。
2. 组对象(Group)拥有本组的所有信息,同时包容并逻辑组织OPC数据项(Item)。
OPC组对象(Group)提供了客户组织数据的一种方法,组是应用程序组织数据的一个单位。
客户可对之进行读写,还可设置客户端的数据更新速率。
当服务器缓冲区内数据发生改变时,OPC将向客户发出通知,客户得到通知后再进行必要的处理,而无需浪费大量的时间进行查询。
OPC规范定义了两种组对象:公共组(或称:全局组,public)和局部组(或称:局域组、私有组,Local)。
公共组由多个客户共有,局部组只隶属于一个OPC客户。
全局组对所有连接在服务器上的应用程序都有效,而局域组只能对建立它的Client有效。
一般说来,客户和服务器的一对连接只需要定义一个组对象。
在一个组中,可以有若干个项。
3、项是读写数据的最小逻辑单位,一个项与一个具体的位号相连。
项不能独立于组存在,必须隶属于某一个组。
在每个组对象中,客户可以加入多个OPC数据项(Item)。
OPC数据项是服务器端定义的对象,通常指向设备的一个寄存器单元。
OPC客户对设备寄存器的操作都是通过其数据项来完成的,通过定义数据项,OPC规范尽可能的隐藏了设备的特殊信息,也使OPC服务器的通用性大大增强。
OPC数据项并不提供对外接口,客户不能直接对之进行操作,所有操作都是通过组对象进行的。
应用程序作为OPC接口中的Client方,硬件驱动程序作为OPC接口中的Server方。
每一个OPC Client应用程序都可以接若干个OPC Server,每一个硬件驱动程序可以为若干个应用程序提供数据。
客户操作数据项的一般步骤为:1)、通过服务器对象接口枚举服务器端定义的所有数据项。
2)、将要操作的数据项加入客户定义的组对象中。
3)、通过组对象对数据项进行读写等操作。
每个数据项的数据结构包括三个成员变量:即数据值、数据质量和时间戳。
数据值是以V ARIANT形式表示的。
可以把数据项看作数据源的地址,即数据源的引用。
OPC数据存取服务器主要有以下几个对象组成,即服务器对象、组对象和项对象。
OPC服务器对象维护有关服务器的信息,并作为OPC组对象的包容器,可以动态的创建或释放组对象。
OPC组对象除了维护有关其自身的信息,还提供了包含OPC项的机制,逻辑上管理OPC项;OPC项则标识了与OPC服务器中数据的连接,如下图所示:OPC技术规范有三种:1、OPC数据存取(DataAccess)规范(DA)2、OPC报警和事件(Alarms and Events)规范(AE)3、OPC历史数据存取(Historical Data Assess)规范(HDA)(DA 2.0)里主要定义了两个对象:OPCServer 和 OPCGroup。