已阅读5页,还剩61页未读, 继续免费阅读
(计算机应用技术专业论文)基于opc技术的水处理控制系统的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
沈阳理工大学硕士学位论文 摘 要 随着科学技术的迅速发展,传统的计算机控制系统已不能满足发展的需要。这是因 为不同厂家所提供的现场设备的通讯机制并不相同, 计算机控制系统软件需要开发的设 备通信驱动程序也就越来越多,系统的升级和移植都不方便。而基于 com 技术的 opc 技术的产生和应用彻底改变了这种状况, 它为过程控制和工业自动化领域提供了一套标 准的接口、属性和方法,opc 为自动化系统中的各种不同应用之间提供了一种标准的数 据交换、访问机制,给厂商和使用者带来了方便、快捷及更好的经济效益。 opc(ole for proeess control)是在微软公司的对象链接和嵌入技术在过程控制方面 的应用,为工业自动化软件提供了一种标准的数据访问机制。使得现场设备不管以何种 形式存在,客户都以统一的方式去访问,从而保证软件对客户的透明性。 本文以 opc 技术为核心, 以自来水厂水处理系统为研究背景, 在深入研究 com 技 术和 opc 数据访问规范的基础上,对 opc 服务器对象和客户端实现的方法作了开发研 究,对基于 opc 技术的水厂控制系统软件进行了设计和开发。所设计的基于 opc 技术 的监控软件可以与多种 opc 服务器进行连接, 并能对 opc 服务器的数据进行读写操作, 从而实现了监控软件与多种现场控制设备的数据传输。 关键词:opc,水处理,服务器 沈阳理工大学硕士学位论文 abstract with the rapid development of science technology,traditional computer monitoring and control system has not been suitable for the requirements of the development.this is because different equipment manufacturers in the field of communication mechanism is not same,computer monitoring software need to develop communication driver device also more and more, the system upgrades and migration are not easy. the com-based technology generation and application of opc technology, completely changed this situation, it is for process control and industrial automation provides a set of standard interfaces, properties and methods, opc for the automation system between the various different applications provides a standard data exchange, access mechanism, to manufacturers and users to bring convenient, fast and better value for money. opc (ole for proeess control) is microsofts object linking and embedding technology in process control applications for industrial automation software provides a standard data access mechanism. makes the field device in whatever form, customers in a uniform way to access in order to ensure the transparency of the software to customers. in this paper, opc technology as the core, to water plants water treatment system to study the background, in-depth study of com technology and opc data access specification, based on the right opc server object and the client to achieve the means to research and development, based on opc technology the water monitoring software design and development. designed monitoring software based on opc technology, opc server with a variety of connection, and can read and write data from opc servers operate, enabling the monitoring software with a variety of on-site control equipment, data transmission. keywords: opc,water treatment,servers 沈阳理工大学 硕士学位论文原创性声明 本人郑重声明:本论文的所有工作,是在导师的指导下,由作者本人独立完成的。 有关观点、方法、数据和文献的引用已在文中指出,并与参考文献相对应。除文中已注 明引用的内容外,本论文不包含任何其他个人或集体已经公开发表的作品成果。对本文 的研究做出重要贡献的个人和集体,均己在文中以明确方式标明。本人完全意识到本声 明的法律结果由本人承担。 作者(签字) : 日 期 : 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解沈阳理工大学有关保留、使用学位论文的规定,即:沈阳 理工大学有权保留并向国家有关部门或机构送交学位论文的复印件和磁盘, 允许论文被 查阅和借阅。 本人授权沈阳理工大学可以将学位论文的全部或部分内容编入有关数据库 进行检索,可以采用影印、缩印或其它复制手段保存、汇编学位论文。 (保密的学位论文在解密后适用本授权书) 学位论文作者签名: 指导教师签名: 日 期: 日 期: 第 1 章 绪论 -1- 第 1 章 绪论 1.1 课题研究的背景和意义 在我国经济建设取得飞速发展的今天,综合国力一天一天增强,这就使我国各行各 业必须以最快的速度与国际接轨。对我国城市自来水公司而言,采用现代电子信息技术 及综合自动化技术来改造生产各个部门和进行企业管理是极其重要的, 这是改变目前我 国城市自来水企业被动局面的最有效的办法之一。在自来水厂中采用自动控制系统, 不 仅可以提高系统的性能、生产率、可靠性, 而且还可以增加系统的稳定性、降低操作成 本、加快系统的启动过程等。因此开展水厂自动控制系统的研究,在计算机信息技术、 控制技术等先进工业技术的基础上,设计高水平的水处理控制方案,对于我国环境保护 事业,乃至全国人民的健康生活和社会经济发展都有积极深远的意义。 1.2 水厂自动控制的现状及发展趋势 从我国国内自来水厂的自动控制系统的现状来看, 已经广泛采用了集散式计算机监 控系统, 应用了自动化程度较高的检测仪表, 大型自来水公司采用国外整套工艺和设备, 各种新工艺、新设备也大量出现并得到应用,在系统运行和工艺过程控制等方面都已经 达到了相当高的水准但是就全国范围的现状来看,即使在自动化程度较高的水厂也仍 然存在着许多问题。综合来看,我国自来水厂自动控制系统有以下特点和不足之处 1 20 : (1) 各种新的水处理工艺不断出现, 单元控制系统已经逐渐开始采用自动控制方式, 控制理论也开始得到广泛应用。 (2) 各种不同类型、不同等级的控制系统和控制方式一起并存。大部分的新建水厂 已经开始采用计算机集散控制系统,但是在现有的自来水厂中,还有很大一部分水厂的 控制系统仍然延续着传统的人工方式。 (3) 为了进一步提高自来水厂的自动控制水平,已经开始大量采用可靠性高、维护 简便的各种进口检测仪表和在线水质分析仪表。 但是国内水厂目前使用的设备大多是进 沈阳理工大学硕士学位论文 -2- 口仪器和仪表,在使用和维护方面存在许多问题。许多控制系统的设计和实际工艺不相 符,软件的汉化比较差,给系统正常运行造成了一定的难度。 (4) 水厂控制系统的监控、通讯功能在硬件和软件开发利用方面存在极大不足,妨 碍了处理过程的高效运行。国产自控系统、仪表、设备的成套、质量和系列化急需进一 步提高,特别是国内一些复杂高效新工艺的出现,对相应的自动控制设备提出了更高的 要求。 对于国内的所有自来水厂而言,为了满足对生产过程的调度和指挥,全都需要一个 可靠的自动化系统。这个系统一般是由管理层的控制中心、监控分站、现场控制站点等 组成。这个系统具有的功能一般包括:数据采集和控制功能,数据传输功能,实时报警 功能,实时数据显示功能,数据报表功能,显示设备状态功能,历史报警功能,历史数 据的存储和查询功能等。因此,在吸收国内外先进的经验和技术,充分了解工艺过程的 基础上,设计和开发出适合我国国情的、具有较高性价比的自来水厂计算机自动控制系 统是非常有必要的。 1.3 opc 技术的发展历史 opc(ole for process control,用于过程控制的 ole)是由一些全球知名的自动化软 硬件供应商与微软公司合作制定的一种工业标准。负责制定opc标准的组织为opc基金 会,opc基金会的前身是由 fisher-rosemount,rockwellsoftware,opto 22,intellution 和 intuitive technology等公司成立的opc特别工作小组。这个特别工作小组历时一年时 间, 于1996年8月推出了opc数据访问规范 1.0版本 2。 1996年10月7日, opc基金会 (opc foundation, opc-f) 在美国芝加哥正式成立了。 opc基金会的理事会由fisher-rosemont, intellution, honeywell, rockwell software, national instrument 以及欧洲代表的 siemens 和远东代表的东芝所组成。 现有分会包括1996年10月成立的日本opc协会(opc-j)、 1997 年底成立的欧洲opc协会(opc-e)和2000成立的opc中国促进会(opc-c)。 opc基金会宗 旨是开发一个开放的、柔性的、即插即用的标准,最终使得用户在系统集成的时侯有更 多的选择,同时能够大幅度降低硬件和软件供应商维护和开发的成本。opc基金会从成 立开始会员逐年增加,目前在全球范围内已有近300家公司加入了这个国际标准组织, 几乎包括了全球范围内的所有主要控制系统、设备和过程控制系统的供应商。同时由控 制设备厂商和控制软件供应商提供的opc产品也日益增加,目前已有600种以上的opc 第 1 章 绪论 -3- 服务器和应用程序产品出现在由opc基金会发行的opc产品目录上 7。 opc 定义了一个开放的接口标准,opc 是基于 windows 的 ole、 com 和 dcom 技术基础上的, 允许在自动化控制应用、 现场设备和商业/办公室应用之间进行简明的标 准化的数据交换。opc 技术就是简化了来自不同供应商的现场设备和 pc 应用软件之 间的通讯接口。opc 的技术核心 5 7:com(组件对象模型)是 dcom activex 和 ole 技术的核心,它提供了标准的接口和内部组件通信。应用程序可以通过 com 访问其它 应用程序或动态链接库 dll 的数据和函数,还可以允许软件组件的升级而不影响整体 运行;dcom(分布式 com)将 com 应用扩展到远程对象。dcom 的出现使得处理 远程对象就如同处理本地对象一样简单;ole(对象链接和嵌入)的出现为应用程序提 供了高度的兼容性。ole 是基于 com 技术,允许开发者开发多个应用程序之间可以重 复使用的、即插即用的对象。它还提供了可重复使用的,基于组件的软件开发;ole automation-ole 自动化技术,允许客户程序使用组件。这种模式可以完全满足过程控 制工业的需求, 硬件供应商用 c 或 c+开发软件组件来处理对设备数据的访问, 客户采 用简便易用的程序语言调用组件完成数据采集; activex-ole 控件发展并重新命名的一 项技术。基于对象的 activex 技术的出现,使开发者可以开发出用于网络的简便的、可 交互的应用程序。 opc 技术在硬件供应商和软件开发者之间搭上了一座桥梁,opc 不但提供了一种 数据源,而且以一个标准的方式将这些数据传送到任意客户端应用程序的机制。设备供 应商现在可以开发一个可重用、高度优化的服务器与数据源通信,并且能够高效地从数 据源或智能设备存取数据。opc 技术规范了接口函数,无论现场设备以何种形式存在, 客户程序都以统一的方式集中去访问,从而实现系统的开放性,并且与其它系统的接口 易于实现连接。这个原理是因为 opc 按照面向对象的原则,将一个 opc 服务器作为一 个对象封装起来, 只将接口方法暴露在外面, 客户程序以统一的方式去调用这个方法 21。 换句话说客户程序的开发者可以使用相同的 opc 客户端程序代码,操作不同的硬件装 置,实现软件重用和软件的即插即用。利用 opc 使接口标准化可以构成如图 l.1 所示的 系统 3。 沈阳理工大学硕士学位论文 -4- 图 1.1 利用 opc 技术的数据访问方式 fig1.1 using opc technology data accessing way 1.4 本文主要工作 对我国现在的自来水厂而言,除了具有完备的工艺和合理的系统结构之外,还需要 具有可靠完备的控制功能,这是保证水处理过程准确性、可靠性的必要手段。结合我国 的具体国情,应用先进的计算机控制技术及一些优秀的控制策略,开展水厂控制系统研 究及相关的理论研究,对于提高我国自来水行业的自控水平具有十分重要的作用。 文章对 opc 技术规范和 com 技术进行了详细的分析, 介绍了自来水厂的工艺流程和 总体结构, 对 opc 数据服务器程序的实现和客户端数据访问程序的开发进行了细致的研 究,分析了传统控制系统的不足,提出了基于 opc 技术的控制系统设计方法,详细分析 了控制系统的实现方案并给出了系统实现的主要部分。本文共分为五章,除了第一章绪 论外,其余各章节安排如下: 第二章 opc 技术规范与 com 技术。 本章共包括四个小节, 前面主要介绍了 opc 技术 规范,后面两个小节详细研究了 opc 的核心技术 com 技术。 第三章 水厂控制系统的总体设计。本章共分为四个小节,首先详细介绍了自来水 厂的工艺流程,出了水厂对控制系统的具体要求,最后给出了详细的设计方案。 第四章 opc 技术实现的开发研究。本章共分为六个小节,首先对 opc 数据访问服务器的 opc 客户机 a opc 客户机 b opc 客户机 c opc 服务器 a opc 服务器 b opc 服务器 c 第 1 章 绪论 -5- 接口和数据访问方式进行了对比和分析,然后重点讨论了opc数据服务器和opc数据客户 端的开发研究。 第五章 水厂控制系统的实现。本章共分为四个小节,首先对控制系统站点组成和各个 站点的功能作了详细的介绍。 然后给出了利用 opc 技术解决监控系统问题的方法。 结合 生产工艺的要求对控制系统进行了设计。 沈阳理工大学硕士学位论文 -6- 第 2 章 opc 技术规范与 com 技术 2.1 opc 技术规范 opc 是 ole for process control 的缩写,意思是面向过程控制的 ole。opc 服务器 实现了一套标准的 opc 接口, 并以 opc 规范规定的方式通过 opc 接口提供给客户程序访 问。任何一个 opc 客户都可以连接到 opc 服务器上,只要符合 opc 规范,不需要做任何 修改就能访问所有的 opc 服务器实现的硬件驱动程序。 opc 基金会制定了以下规范: opc 数据存取(data access)规范、opc 报警与事件 (alarms and events) 规范、opc 历史 数据存取(historical data access)规范、opc 批量过程规范、opc 安全性规范、opc 复杂数据规范、opc xml 规范等。而在这中数据存取规范是最早发布的规范,是其它数 据规范应用的基础。 下面将重点介绍 opc 数据存取规范, 并对其它常用规范作简要介绍。 2.1.1 opc数据存取规范 opc 数据存取规范是 opc 基金会最早制定的一个工业标准,是对现场设备数据进 行存取。数据存取规范分为定制接口规范和自动化接口规范两个部分。 一个 opc 数据存取服务器主要由以下几类对象组成:opc 服务器(server)对象、 opc 组(group)对象和 opc 项(item)对象 26。opc 服务器对象维护有关服务器的信息并 作为 opc 组对象的包容器,可以动态的创建或者释放 opc 组对象;而 opc 组对象除 了维护有关其自身的信息,还提供了包容 opc 项的机制,逻辑上管理 opc 项;opc 项 则标识了与 opc 服务器中数据的连接。从 opc 接口的角度来看,opc 项不是由 opc 客户直接操作的对象,因此 o p c 项没有定义外部的接口,所有对 opc 项的操作都是 通过包容该项的 opc 组对象进行的。opc 服务器对象和组对象是聚合关系,即 opc 服 务器对象产生 opc 组对象后,将组对象的指针传递给客户,再由客户之间操作对象, 提高了数据的存取速度 4。 2.1.2 opc报警与事件规范 opc 报警与事件规范(opc alarms 如果客户要使用 com 对象的某个接口,则它必须知道接口的 iid 和接口所能提供的方 法 9。 com 规范在采用 osf(open soft ware foundation 开放软件基金会)的 dce(distributed computing environment 分布式计算环境)规范描述远程调用接口 idg(interface description language 接口描述语言)的基础上,进行扩展形成了 com 接口的描述语言。接口描述语言 提供了一种不依赖于任何语言的接口描述方法,成为组件和客户程序之间的共同语言。 com 规范使用的 idl 接口描述语言不仅可用于定义 com 接口,并且还定义了一些常 用的数据类型,也可用于描述自定义的数据类型。使用 visual c+提供的 midl 工具, pvtable vtable 接口指针 指针 指针函数 1 指针函数 2 指针函数 3 对象实现 沈阳理工大学硕士学位论文 -12- 可以把 idl 接口描述语言编译成与 c/c+兼容的接口描述头文件(.h 文件) 。opc 规范 中用接口描述语言定义了所有 opc 接口,使用 midl 可把这些接口描述编译成接口定 义头文件。 com 接口特性为: 二进制特性, com 接口规范不是建立在任何编程语言的基础上, 而是规定了二进制一级的标准。任何语言只要有足够的表达能力,就可以对接口进行描 述,从而可以用于与组件程序有关的应用开发;接口不变性,接口是客户程序和组件程 序之间的桥梁具有不变性,只要客户程序和组件程序都按照既定的接口设计进行开发, 则可以保证两者独立开发结束后它们的协作能力能达到预期的效果;继承性,接口可以 继承发展,但接口继承只说明继承,即派生的接口只继承了基接口的成员函数说明,并 没有继承基接口的实现。因为接口定义不包含函数的实现部分,而且接口的继承只允许 单继承,不允许多重继承。根据 com 规范,所有的接口都必须从 iunkown 接口派生。 可以是直接派生, 也可以是间接派生, 事实上大多数接口都是直接派生于 iunkown 接口, 而并没有使用自定义接口继承特性,com 并不提倡自定义接口继承,除非在发展接口 时无论从功能上还是语义上都应采用自定义接口继承,才会使用接口的继承特性;多态 性, 多态性(运行过程中的多态性)是面向对象系统的重要特性, com 对象的多态性是通 过 com 接口体现的。多态性使客户程序可以用统一的方法处理不同的对象,甚至是不 同类型的对象,只要它们实现了同样的接口。如果几个不同的 com 对象一起实现了同 一个接口,则客户程序可以用同样的代码调用这些 com 对象。com 规范允许一个对 象实现多个接口,因此,com 对象的多态性可以在每个接口上体现。正是由于 com 的 多态性,我们才可以用 com 规范建立组件系统,应用程序可以使用统一的方法处理每 一个插件 10。 iunknown 接口 com 规定每个接口都必须从 iunknown 接口中继承过来,这样的原因在于 iunknown 接口提供了两个非常重要的特性:生存期控制和接口查询。客户程序只能通 过该接口与 com 对象进行通信,虽然客户程序可以不管对象内部的实现细节,但是它 要控制对象的存在与否。如果客户还要继续对对象进行操作,则它必须保证对象能够一 直存在于内存中;如果客户对对象的操作已经完成,以后也不再需要该对象,则它必须 及时地把对象释放掉,以提高资源的利用率。iunknown 引入了“引用计数”(reference 第 2 章 opc 技术规范与 com 技术 -13- counting)方法,可以有效地控制对象的生存周期。 如果一个 com 对象实现了多个接口,在初始时刻,客户程序不可能得到该对象的 所有接口指针,只会拥有一个接口指针。如果客户程序还需要其它的接口指针,可利用 iunknown 的“接口查询”方法来完成接口之间的跳转。 iunknown 的定义接口: interface iunknown hresult queryinterface(in refiid iid,out void*ppv); / in表示输入参数,out表示输出参数。 ulong addref(void); ulong release(void); iunknown 包含了三个成员函数:queryinterface、addref、release。queryinterface 函数用于查询 com 对象的其它接口指针, 函数 addref 和 release 用于对引用计数进行 操作 9。 上面介绍了 com 组件、com 对象和 com 接口,这三者之间的关系如下图 2.2 所 示: com组件 com对象1com对象2 接口1接口2接口3接口4 图 2.2 com 组件、com 对象和 com 接口关系 fig2.2 com components、com objects and com interfaces relations 沈阳理工大学硕士学位论文 -14- 2.2.3 com组件 com 不仅提供了组件程序和客户程序之间交互的协议细节,同时还提供了全面的 实现细节。com 的实现与操作系统平台密切相关,由于 com 最初是源于 windows 平 台的,因此 com 的实现部分很多地方都用到了 windows 的一些特性,比如注册表,动 态链接库等。实际上 com 是一个与平台无关的组件软件模型,我们在 windows 上使用 com 标准只是 com 的一个具体实现。com 组件分为进程内组件和进程外组件。 进程是一个正在运行的程序,它具有单独的内存地址空间,拥有自己的一些系统资 源。如果我们以动态连接库的形式实现组件程序,客户程序调用组件程序的服务时,会 把组件程序装入到自己的进程空间中, 这个时侯客户程序和组件程序运行在同一个进程 空间中,我们也把这种组件程序成为进程内组件;实现组件程序的另一种形式是 exe 程序,这种组件程序在被调用的时侯有自己的进程空间,它运行在与客户程序同一个机 器上或者在远程机器上的另外一个进程空间内, 所以客户程序和组件程序运行在不同的 进程空间中,我们把这种组件程序称为进程外组件 8。 com 对象有着不同的进程模型,但这种区别对于客户程序来说是透明的,因此客 户程序在使用组件对象时可以不管这种区别的存在,只需按照 com 规范即可。进程内 模型的优点是效率高,但组件不稳定会引起客户进程崩溃。进程外模型的优点是稳定性 好,组件进程不会危及客户程序,但进程外组件开销大,而且调用效率相对低一些。用 户可以根据自己的需要来选择进程模型。 对于进程外组件需要注意的问题是进程之间如 何进行通信的,com 采用了本地过程调用(lpc)和远过程调用(rpc)的方法进行进程之 间的通信。本地过程调用用于同一机器上的进程之间的通信,远过程调用用于不同机器 上的进程间的通信,这两种机理相同,但是 rpc 要通过网络传递信息,因此要比 lpc 复杂。 客户程序和进程外组件的调用关系如图 2.3 所示。客户程序只与同一进程中的代理 (proxy)对象打交道,组件程序只与同一进程中的存根 dll 打交道,lpc 调用只在代理 对象与存根 dll 之间进行,当客户程序需要调用组件提供的功能服务的时侯,它需要 执行图中六个步骤才能可完成一个函数调用。因此,进程外组件的运行效率要比进程内 组件的效率低,但组件程序的严重错误不会使客户进程崩溃,这是其优于进程内组件的 第 2 章 opc 技术规范与 com 技术 -15- 地方。 图 2.3 客户程序和进程外组件的调用关系图 fig2.3 client program and the process component call graph 代理 dll 和存根 dll 除了完成 lpc 调用之外, 还要对参数和返回值进行翻译和传 递。客户程序调用的参数,首先要经过代理 dll 的处理,再把参数以及其它的调用信 息组装成一个数据包传递给组件进程,这个过程称为参数列集(marshaling)。组件程序接 收到数据包后,需要进行解包操作,把参数信息提取出来,这个过程被称为散集 (unmarshaling),最后再进行实际的接口调用。函数的返回值和输出参数在返回的过程中 还要进行列集和散集操作, 只是在存根 dll 一端进行列集、 在代理 dll 一端进行散集, 最后把散集后的结果值返回给客户程序,完成一次功能调用。 所有这些特性的实现可以建立在操作系统提供的 lpc 和 rpc 模块基础上,不需要 应用系统开发人员来考虑这些底层的细节技术问题。要实现进程外组件,除了实现组件 程序外, 还应该实现代理 dll 和存根 dll 两个程序模块。 如果我们使用自定义的 com 接口,则应建立自己的 dll 程序,如果我们使用已定义的标准接口或者 ole 接口,则 可直接使用系统提供的 dll, com 库会为我们来处理这些细节的 9。 2.2.4 com库与类厂 com 除了定义了组件程序和客户程序交互的规范以外,也提供了 com 的实现部 分即 com 库,使得这些规范能真正地应用起来。客户程序在创建组件对象时,并不直 接与组件程序的引出函数打交道,而是通过 com 库的函数来进行组件对象的创建以及 其它操作。com 库通过注册表中的信息来创建组件对象。com 库中定义了很多函数, 代理对象通过 lpc调用组件存根 存根 dll 代理 dll 中代理对象 组件对象 组件程序 (组件进程) 客户程序 (客户进程) 代理对 象返回最 终结果 客户调 用接口成 员函数 调用组 件对象成 员函数 服 务 完 成 后 返回 存根 dll 通过 lpc 返回结果 沈阳理工大学硕士学位论文 -16- 常用的如表 2.1 所示: 表 2.1 com 库中常用函数 table2.1 com library of commonly used functions 函数名 功能 coinitialize com 库初始化,在调用 com 库中函数之前必须初始化 com 库 couninitialize com 库功能服务终止,用于释放系统资源 clsidfromprogid 将字符串形式的对象标识符转化成 clsid 结构形式 stringfromclsid 将 clsid 结构形式转化成字符串形式 cogetclassobject 获取对象类厂 cocreateinstance 创建 com 对象 coregisterclassobject 注册一个对象,以便其它对象连接到此对象,用于进程外组件 的注册 除了上面列出的几个常用的函数外,com 库中还提供了很多完成各种各样功能的 函数。com 库中还给出了许多标准接口的定义,例如 iunknown、iclassfactory、 iconnectionpointercontainer 标准接口等,这些接口全部都是 opc 规范中要实现的接口。 类厂是 com 对象的生产基地,每一个 com 类都有一个类厂与它相对应,用于创 建该 com 类的对象,若一个 com 组件程序包含多个 com 对象类,则可以有多个类 厂。类厂本身也是一个 com 对象,它支持一个特殊的接口 iclassfactory,定义如下 8: class iclassfactory:public iunknown virtual hresult _stdcall createinstance(iunknown *punknownouter, const iid virtual hresult _stdcall lockserver(bool block)=0; ; createlnstance 方法用于创建指定组件类的实例并返回该实例所请求的接口。 lockserver 为客户提供了一个可以在内存里锁定服务器的途径。通过在内存里锁定服务 器,即使当该服务器里没有出现已实现的组件,客户程序也可以在今后使用它。 类厂本身是由 dllgetclassobject 引出函数创建的。 组件程序实现的引出函数的原型 如下:hresult dllgetclassobject(constclsidvb;plc 1 引言引言 工业过程控制系统的上位机监控程序部分常采用组态软件来开发, 组态软件往往只 提供了主流控制通信设备的驱动程序, 对于没有驱动的板卡, 只有找相应厂家进行开发, 这种方式费用很高且技术支持很难满足要求。opc(ole for process control)技术的应 用为我们解决了这个问题, 组态软件都很好地提供了对 opc 的支持, 通过组态软件的 opc 接口, 只要给相应通信设备开发出 opc 服务器, 就可以让组态软件与硬件进行数据通信。 本文介绍一种利用 opc 标准驱动方式在 vb6.0 环境中实现 pc 与 slemens s7-200 plc 实时通信的方法,从而实现良好的人机界面与可靠的系统控制。 2 opc 技术技术 opc(ole for process contro1)是基于 windows nt 技术的 ole,comdcom 接口的 扩展,其本质是 opc client 用一种开放的、标准化的通讯方式与 opc server 进行通 讯。opc 规范定义的标准接口,使得不同厂家之间软硬件的集成易于实现。使用第三方 硬件时,只要硬件开发商提供 opc server,软件开发人员无需编写底层的驱动程序,通 过用户软件的 opc client 即可与之进行数据交互。 opc 服务器程序功能模块划分如图 1 所示: 沈阳理工大学硕士学位论文 - 59 - 图 1 opc 服务器程序功能模块图 opc 通常支持两种类型的访问接口:opc 定制接口和 ole 自动化接口。定制接口效 率高,客能够发挥 opc 服务器的最佳性能,采用 c+语言的客户一般采用此方案。自动 化接口使解释性语言和宏语言访问 opc 服务器成为可能。采用 vb 等语言的客户一般采 用自动化接口。 opc 数据访问方式主要有同步和异步两种。 同步方式是指客户向服务器发 出读写请 求,然后等待服务器返回信息。异步方式是指客户向服务器发出读写请 求后,服务器 立刻返回信息表示请求已接受,客户可以进行其他处理,当服务器完成写操作后,主动 把采集结果通知客户方。相比较而言,同步数据传输简单可靠,但效率不高,当客户数 据较少而且同服务器交互的数据量比较少的时候可以采用这种方式。 而异步数据传输可 以提高程序的效率,避免了程序的空等待。opc 的异步数据传输方式又分为两种方法 : 异步读写方式和订阅方式。订阅方式是指客户提出一次订阅请求,服务器将周期性地采 集数据, 然后周期性地通客户, 直到客户取消订阅为止 如果客户想一直监视某些变量, 则使用订阅方式的效率更高。 3 通信方案及其实现通信方案及其实现 3.1 软硬件配置软硬件配置 visual basic 6.0 用于上位机编程,slmatlc net 用于通迅组态并配置 opc server, step 7 用于对 siemens s7-200 plc 进行编程。 ,计算机与 plc 之间采用以太网通信方 式,因此 s7200 plc 配置中选用了以太网通信处理器 cp2431 智能模块,用于 s7200 系统与 pc 的通信连接由于计算机需连接多个 plc,因此配置了一个以太网交换机。 硬件组态包括 s7200 站和 pc 站两个部分 s7200 站硬件组态用 step 7 micro win32软件, 在向导程序中将cp2431配置为server, 设置好 cp2431模块的地址 , 包括 ip 地址 ,子网掩码,网关地址。在“本地属性(服务器)”中填写 client 端的 ip 地址。然后在向导中直接调用向导生成用于启动和初始化 cp2431 模块的子程序 ehtx ctrl pc 站硬件组态用 step 7 v5 3 软件, 设置 pgpc 接口, 配置一个 other station 和这个站与 opc server 之间的连接。用 configuration console 配置 pc 站最后用 station configuration editor 配置 pc 站。在“components”栏中添加 opc server 和 ie general 3.2 实时通信的实现实时通信的实现 在操作系统将增加一个 opc 服务器 服务器的名字是 “opcsimaticnet” 用 vb 编写 opc 客户端 程序与 opc 服务器通信打开 vb,在“引用”中加 入 siemens opc daautomation 20 客户程 序(如组 态软件) 具体 硬件 opc 服务器 opc 接口部分 变量组与硬件通信程序部 分 沈阳理工大学硕士学位论文 - 60 - 下面介绍在 vb 开发环境下编写 opc 客户端程序的过程。 例程中利用 vb 实时读写和 显示 s7200plc 某个地址区的变量值。在 vb 环境下,利用标签和文本框,来显示和输 入 plc 的 qo0 一 qo3 值。 1)opc 客户连接到 opc 服务器 ,建立 opc group 和 opc item /声 明部分 option base 1 private w ithevents m yopcserver as opcserver private w ithevents m yopcgroups as opcgroups private w ithevents m yopcgroup as opcgroup dim servername as string/服务器名 dim groupname as string/组名 dim m yopcitems as opcitem s dim itemids()as string/添加的标签名 dim itemnumb as long/添加的标签数量 dim myserverhandles()as long/服务器标签句柄,必须为任意长 dim myclienthandles()as long/客户端标签句柄 dim errors()as longopc 返回错误 与 opc 连接程序如下 public sub 0pcconnect() itemnumb=4 set myopcserver=new opcserver/生成 opcerver 对象 servername=”opcsimaticnet”/连 接 opcerver set myopcgroups=myopcserveropcgroups /生成组集合对象 set myopcgroup =myopcgroupsadd( groupne”)/添加组名为 group one 的组 对象 myopcgroupsdefaultgroupupdaterate=100/定义 myopcgroups 的 refresh rate set myopcitems=myopcgroupopcitems redim itemids(itemnumb) redim myclienthandles(itemnumb) itemids(1) =”s7 :s7 connection_1q0.0.1” itemids(2) =”s7 :s7 connection_1q0.1.1” itemids(3) =”s7 :s7 connection_1q0.2.1” itemids(4) =”s7 :s7 connection_1q0.3.1” dim i as integer for i=1 to item numb myclienthandles(i)=i next i myopcitemsadditems itemnumb,itemids, myclienthandles, m yserverhandles, errors my-opcitemsadditems- itemnumb,_/提供标签数量 itemids,_/提供标签值 myclienthandles,_/提供客户句柄 myserverhandles,_/返回服务器句柄 errors/返回服务器报错 myopcgroup.isactive=true/准备收发数据 沈阳理工大学硕士学位论文 - 6
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年教学能手评选班级管理冲刺卷
- 2026年选调生考试言语理解与表达真题卷
- 2027年农村信用社招聘个人贷款全真模拟卷
- 绩效管理实践之KPI研讨
- 磨金相04.半自动和全自动制样设备
- 药理学第一章绪论
- 《水务行业智能化改造方案》
- 光储充一体化产业发展现状与趋势研究
- 绩效考核方案-质量工程师团队
- 某国有企业集团集团人力资源战略
- 老旧小区加装电梯施工监理实施细则
- 2026届天津市和平区高三一模高考英语模拟试卷(含答案详解)
- 2027兴业银行校园招聘笔试参考题库及答案详解
- 电缆敷设安装施工方案与技术措施
- GB 1589-2026汽车、挂车及汽车列车外廓尺寸、轴荷及质量限值
- 2026年海南发展控股公司招聘试题及答案
- 2026年医院行风建设专题培训课件
- 2026年济宁普法考试试题及答案
- 喷涂工序低温烘干控制规范
- 网络社交情感表达-深度研究
- 数学竞赛空间解析几何部分课件
评论
0/150
提交评论