OPC重点知识总结
- 格式:doc
- 大小:895.50 KB
- 文档页数:21
背景简介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)知识解析讲解(二)若干年后,马斯魁勒偶然读了一本有关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(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是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专栏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类库学习: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方法可以在任何地方移动到顶层.在任何地方,分叉和叶都能浏览到。
OPC技术总结1.初步介绍OPC Server 共分为三层:分别是OPCServer, OPCGroup, OPCItem首先,要调用OPC组件,再创建JOpc对象,第一个参数是IP地址,第二个参数是COM 组件名称,第三个参数是OPC Server名称,三个参数都从OpcConfig.xml中获取JOpc.coInitialize ();JOpc jopc = new JEasyOpc( "localhost", "OPC.SimaticNET", "PC456" );其次,创建OpcGroup对象,参数为group名称,从OpcItemModels.xml中获取OpcGroup group = new OpcGroup( "group1", true, 500, 0.0f);最后,创建OpcItem对象,DB1是块,W是字段类型,0是地址,参数分别从OpcConfig.xml、OpcItemModels.xml中获取,并把对象添加到OpcGroup对象里;JOpc对象添加OpcGroup,建立连接并完成注册OpcItem item = new OpcItem( "S7:[S7 connection_1]DB1,W0", true, "");group.addItem(item1);jopc.addGroup(group);jopc.connect();jopc.registerGroups();1.1. 加载配置文件1.2. 连接OPC服务器1.3. Read和Write1.4. 代码示例try {OpcConfiguration.initOpc("./config/OpcConfig.xml");} catch (FileNotFoundException e1) {e1.printStackTrace();} catch (DocumentException e1) {e1.printStackTrace();}try {OpcConfiguration.initOpcItem("./config/OpcItemModels.xml");} catch (FileNotFoundException e1) {e1.printStackTrace();} catch (DocumentException e1) {e1.printStackTrace();}try {OpcConfiguration.prepare();//BaseOpcItemBean bean = (BaseOpcItemBean)o.deviceItem.get("0103").get("boxArrive");//System.out.println(bean.getResultType());int r = OpcConfiguration.read("0301","stopBox1");int r2 = OpcConfiguration.read("0301","stopBox2");int r3 = OpcConfiguration.read("0110","ngNum");int r4 = OpcConfiguration.read("0110","requestNgMeter");int r5 = OpcConfiguration.read("0110","catchNgMeter");//System.out.println(r);//System.out.println(r2);System.out.println(r3);System.out.println(r4);System.out.println(r5);OpcConfiguration.close();} catch (ConnectivityException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (UnableAddGroupException e) {// TODO Auto-generated catch blocke.printStackTrace();2.原理关键类:OpcConfiguration.java1.加载xml文件配置信息●读取OPC服务器配置:OpcConfig.xml通过initOpc(String xmlPath)方法,将OpcConfig.xml信息,放入Map<String, Opc> opcMap 中。
原花青素(OPC)知识解析讲解(五)九.服用量治疗剂量:每次补充原花青素(OPC)200毫克,每天两次;保健剂量:每次补充原花青素(OPC)100毫克,每天一次。
十.典型案例1.许**:某省人大副主任,有多年糖尿病史、高血压史、心脏病史,在省医大附属医院专家的建议下,从2012年开始服用“杞爱”原花青素胶囊进行辅助治疗,每次两粒、每天两次。
坚持服用一个月后,自觉症状有明显改善,复查,各项指标恢复到正常水平,困扰多年的吃饭忌口现象也得到显著改善。
2.张**:某省省委书记,工作劳累导致神经官能症,睡眠和精神不佳。
在省医大附属医院专家的建议下,从2012年底开始服用“杞爱”原花青素胶囊,每次一粒、每天两次。
坚持服用一周后症状得到显著改善。
目前,张书记正在以更加饱满的热情和精力为党和人民辛勤工作着。
3.王**:女,34岁,宁夏人。
婚后身体一直孱弱,消瘦、浑身无力、脸白无光、精神不佳。
系统检查结果显示并无典型病变,属亚健康状态。
服用“杞爱”原花青素胶囊仅一个月后状况得到了显著改善,食欲增加、脸色红润、精力充沛,体重从41公斤增加到54公斤。
4.张**:男,70岁,山东潍坊人。
2010年10月检查,肺癌晚期,已经不能手术治疗。
2010年10月至2011年1月之间在山东齐鲁医院进行化疗五次,化疗前开始服用“杞爱”原花青素胶囊,每次3粒,每天两次。
化疗过程中及化疗后,没有其他化疗患者的消瘦、脱发等各种不良损伤现象,体重反而增加。
目前,一年有余,身体、精神状况均良好,复查,瘤体显著缩小。
5.杨**:退休干部,患冠心病多年,心肌缺血、心绞痛。
在专家的建议下,2010年开始坚持服用“杞爱”原花青素胶囊。
2011年体检过程中,心脏彩超显示:心脏功能异常良好。
6.黄**:女,43岁。
脸部妊娠斑十几年,曾采用多种治疗途径效果不佳。
偶然间服用“杞爱”原花青素胶囊仅一个月后,妊娠斑颜色就开始明显变浅,以后每天服用“杞爱”原花青素胶囊,现在除去妊娠斑完全消失以外,女同志常见的月经前种种不适、睡眠、精神、皱纹等都得到改善。
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。