冷轧清洗线控制系统设计——用c和opc设计二级控制系统(编辑修改稿)内容摘要:
为它是一种 Windows 应用程序相互交换数据的通用规范。 OPC 的现状和发展 OPC 技术的发展,源于 OPC 基金会及其 300多家公司成员的共同努力。 世界领先的工业自动化软硬件厂商,作为 OPC 基金会的成员,为 OPC 技术的发展做出着重要的贡献。 目前现存的和正在开发的 OPC 标准如表。 表 OPC 标准 标准 最新版本 内容 OPC Data Access OPC Alarms amp。 Events 数据访问标准 报警和事件标准 OPC Batch 批处理标准 OPC Data Exchange 服务器间数据交换标准 OPC Historical Data Access 历史数据访问标准 OPC Security OPC XMLDA 安全性标准 XML 数据访问标准 OPC Commands 命令标准 OPC Complex Data 复杂数据访问标准 鞍山科技大学本科生毕业设计(论文) 第 6 页 冷轧清洗线控制系统设计 —— 用 C++和 OPC 设计二级控制系统 2 OPC技术的基础 —COM技术 COM技术简介 COM概念 COM( Component Object Model,组件对象模型)是由 Microsoft 提出的组件标准,是 OLE、 ActiveX、 DCOM 技术的基础,它不仅定义了组件程序之间进行交互的标准,并且也提供了组件程序运行所需的环境。 该模型的定义是为了实现语言无关、厂商无关、位置透明以及减少版本问题,从而使得来自不同厂商的、不同语言编写和运行在不同平台上的 COM 对象能够彼此协调地运行,共同实现某一任务 [3]。 鞍山科技大学本科生毕业设计(论文) 第 7 页 冷轧清洗线控制系统设计 —— 用 C++和 OPC 设计二级控制系统 COM对象 COM 提供的是面向对象的组件模型, COM 组件提供给客户的是以对象形式封装起来的实体。 客户程序与 COM 组件程序进行交互的实体是 COM 对象,它并不关心组件模块的名称和位置(位置透明性),但必须知道自己在与哪个 COM 对象交互。 类似于 C++语言中类( Class)的概念, COM 对象也包含属性(也称状态)和方法(也称操作),对象的状态反映了对象的存在,也是区别于其它对象的要素;而对象所提供的方法就是对象提供给外界的接口,客户必须通过接口才能获得对象的服务。 对于COM 对象来说,接口是它与外界进行 交互的唯一途径,因此,封装特性是 COM 对象的基本特征。 COM 对象不同于像 C++等面向对象语言中对象的概念, COM 对象是建立在二进制可执行代码级的基础上,而 C++等语言中的对象是建立在源代码级基础上的,因此 COM对象是语言无关的,这一特性使用不同编程语言开发组件对象进行成为可能。 COM 对象也具有可重用性,它表现在 COM 对象的包容和聚合,一个对象可以完全使用另一个对象的所有功能。 并且 COM 对象的重用是动态的,即被包容或被聚合对象的版本更新或功能增强后,包容或聚合对象根本不需要重新编译或者重新设置。 COM接口 ——IUnknown 接口 COM 定义的每一个接口都必须从 IUnknown 继承过来,其原因在于 IUnknown 接口提供了两个非常重要的特性:生存期控制和接口查询。 客户程序只能通过接口与 COM 对象进行通信,虽然客户程序可以不管对象内部的实现细节,但它要控制对象的存在与否。 如果客户还要继续对对象进行操作,则它必须保证对象能一直存在于内存中;如果客户对对象的操作已经完成,以后也不再需要该对象了则它必须及时地把对象释放掉,以提高资源的利用率。 IUnknown 引入了 “ 引用计数 ” 方法,可以有效地控制对象的 生存周期。 IUnknown 包含了 三个成员函 数: QueryInterface 、 AddRef、 Release。 函数 QueryInterface 用于 供客户端查询对象是否支持某个特定的接口 ,函数 AddRef 和 Release 用于 完成对象的生存期控制。 鞍山科技大学本科生毕业设计(论文) 第 8 页 冷轧清洗线控制系统设计 —— 用 C++和 OPC 设计二级控制系统 COM扩展 ——分布式 COM( DCOM) DCOM 是 COM 的扩展,它可以支持不同计算机上组件对象与客户程序之间或者组件对象之间的相互通信,这些计算机可以在局域网内也可以在广域网上,甚至通过Inter 进行连接。 对于客户程序而言,组件程序所处的位置是透明 的,我们不必编写任何处理远程调用的代码,因此, DCOM 也是 COM 的无缝扩展。 由于 COM 是一项应用广泛、成熟的组件技术,所以我们可以充分利用基于 COM 的应用、组件、开发工具以及知识,并把它们转移到分布式计算的应用领域中来。 因为 DCOM 已经为我们处理了底层网络协议的所有细节,所以我们可把重点放在应用的业务逻辑上,而不必再为底层处理费时费力。 典型的分布式应用系统是,在各个服务器上运行一些 DCOM 组件对象,客户程序调用这些组件对象,由它们完成实际的功能操作,比如访问数据库或进行一些复杂的数据处理,客户程序只 负责接受用户的输入并把服务器的响应结果反馈给用户。 3 OPC技术 介绍 COM技术的 OPC OPC 是以 OLE/COM 机制作为应用程序的通讯标准。 OLE/COM 是一种客户 /服务器模式,具有语言无关性、代码重用性、易于集成性等优点。 OPC 规范了接口函数,不管现场设备以何种形式存在,客户都以统一的方式去访问,从而保证软件对客户的透明性,使得用户完全从低层的开发中脱离出来 [4]。 微软公司为了提供商业应用程序和特定用途的软件包间的相互连接性,开发了所谓的组件对象模型( Component Object Model, COM)技术。 COM 是一种软件组件间相互数据交换的有效方法。 COM 技术具有以下特长 [5]: 所谓 COM 并不是一种计算机语言,而是于运行的机器(只要互相连接),机器 鞍山科技大学本科生毕业设计(论文) 第 9 页 冷轧清洗线控制系统设计 —— 用 C++和 OPC 设计二级控制系统 的操作系统(只要支持 COM),以及软件开发的语言无关,任意的两个软件组件之间都可以相互通信的二进制和网络的标准。 COM 客户程序和 COM 服务器可以用完全不同的语言开发。 这样使利用 C++,Visual Basic,以及 Excel 中作为宏使用的应用程序的 Visual Basic 等不同语言所开发的程序可以相互连接。 作为 COM 技术扩展的分布式 COM( Distributed Component Object Model, 分布式 COM)技术,更可以使 COM 组件分布在不同的计算机上,并通过网络互相连接并互相交换数据。 所以对于 COM 客户程序来说,同样像连接本地计算机上的 COM 服务器一样,去连接远程计算机上的 COM 服务器,当然通信的速度不太一样,但是重要的是不必对服务器程序进行修正就可以在网络上自由构成(图 )。 COM 技术的出现使简单地实现控制设备和控制管理系统之间的数据交换提供了技术基础。 但是如果不提供一个工业标准化的 COM 接口,各个控制设备厂家开发的 COM组件之间的相互连接仍然是不可能的。 这样的工业标准的提供,乃是 OPC 的目的所在。 总而言之, OPC 是作为工业标准定义的特殊的 COM 接口。 OPC 是以提供移植容易并具有可以满足大多数设备厂家要求的灵活性和高水平的机能性为目标而开发的,对于制造厂商和用户来说,分别可以从 OPC 得到以下的实惠: 设备开发者:可以使设备驱动器开发的单一化成为可能。 应用程序软件开发者:可以使用通用的开发工具。 不必开发特别的接口,使得 图 利用 COM 和分布式 COM 达成的组件间的互相连接 设备接口的开发更为简单易行。 鞍山科技大学本科生毕业设计(论文) 第 10 页 冷轧清洗线控制系统设计 —— 用 C++和 OPC 设计二级控制系统 用户:可以选用各种各样的商业软件包,使得系统构成的成本大为降低。 同时可以更加容易地实现由不同供应厂商提供的设备所混合构成的工业控制系统。 随着基于 OPC 标准的控制组件的推广和普及,不仅使控制系统的增设和组件的置换更加简单,而且使过程数据的访问也变得容易。 OPC 数据访问规范 OPC 规范定义了两套接口标准,包括自动化标准 (Automation Interface Standard)和自定义接口标准 (Custom Interface Standard)。 自动化接口是为 了向 VB 之类的脚本语言编写的客户程序提供服务,而自定义接口适用于 C 和 C++应用程序,它比自动化接口更高效,功能更强大(图 ) [6]。 OPC 数据访问规范描述了由 OPC 服务器实现的 OPC /COM 对象及相应接口。 规范指出一个 OPC 客户程序可以连接到一个或多个由不同厂家提供的 OPC 服务器程序 , 而多个 OPC 客户程序也可以连接到一个 OPC 服务器程序上,服务器所要访问的设备、数据源、数据名及服务器程序如何进行数据的访问由厂商提供的代码决定。 其 OPC 客户与 OPC 服务器的关系见图 , 这是 COM 中典型的客户 /服务 器模型。 OPC 数据访问服务器的对象 OPC 数据访问服务器在 COM 基础上建立了符合 OPC 规范的 COM 接口和对象 [7]。 图 OPC 服务器与不同类型的 OPC 客户连接 鞍山科技大学本科生毕业设计(论文) 第 11 页 冷轧清洗线控制系统设计 —— 用 C++和 OPC 设计二级控制系统 图 OPC 客户与 OPC 服务器的关系 OPC 逻辑对象模型包括三类对象: OPC 服务器对象、 OPC 组对象、 OPC 项对象,每类对象都包括一系列接口。 OPC 组对象包含在 OPC 服务器对象中,并由客户端定义和维护,每个服务器可以包含多个组对象。 OPC 组对象可以增加或删除 OPC 项对象,OPC 项对象包含在 OPC 组对象中,一个组对象可以 包含多个项对象,同样由客户端定义和维护。 OPC 客户端与 OPC 服务器连接并通过接口与 OPC 服务器通信, OPC 服务器对象向 OPC 客户端提供创建和操作 OPC 组对象的功能。 这些组允许 OPC 客户对它们要访问的数据进行组织。 一组可以作为一个单元被激活或失活。 一组也可以提供一种方法允许客户 “ 订阅 (Subscription)” 项目列表,以便在数据项变化时它能得到通知。 每个数据项对象包含一个 ID 标识 (即用字符串表示的数据位号 )、一个数值、一个质量值 (表示数据的可信度 )、一个时间标签 (表示最新数据变动时间 )。 对数据项可进 行读写操作并可根据需要使其激活或失活。 数据项不能被 OPC 客户作为对象进行操作,所有对 OPC 数据项的操作都是通过组对象来进行的。 OPC 数据访问服务器所定义的三个对象中只有两个标准的 COM 对象,即 OPC Server 和 OPC Group 对象。 OPC Server 对象是客户端与服务器交互的首要对象。 客户端访问 OPC Server 对象的接口函数组织管理 OPC Group 对象。 OPC Group 对象用于组织管理服务器内部的实时数据信息。 在 OPC 规范中,使用项对象描述实时数据。 项对象是非 COM 对象,也是客户 端不可见的对象。 鞍山科技大学本科生毕业设计(论文) 第 12 页 冷轧清洗线控制系统设计 —— 用 C++和 OPC 设计二级控制系统 OPC Server 对象功能主要表现为:创建和管理 OPC Group 对象;管理服务器内部的状态信息;浏览服务器内部地址空间的数据组织结构。 从 OPC Server 对象的功能可以看出, OPC Server 对象面向 OPC 服务器的技术细节,基本独立于实时数据源,可以统一实现。 其中,数据的组织结构和数据源属性与具体数据源有关,需要从用户处获取信息。 OPC Group 对象的主要功能表现为:管理 OPC Group 对象的内部状态信息;创建和管理项对象; OPC 服务器内部的实时数据存取服务 (同步与异步方式 )。 从 OPC Group对象的功能可以看出,该对象面向 OPC 服务器中的数据存取信息,对实时数据源依赖性很强,需要。冷轧清洗线控制系统设计——用c和opc设计二级控制系统(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。