版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、毕业论文最终稿-程龙木科生毕业设计(中请学士学位)论文题目基于modbus通信协议的智能仪表0pc服务器的开发作者姓名 程 龙所学专 业名称自动化指导教师汪先兵2012年5月20 口学生:学号:论文答辩口期:扌旨导 教师:2008210263 2012年5月26日(签字)(签字)目录摘要1abstract 11绪论.21. 1课题的选题背景及意义21.2 opc技术国内外发展现状31.3本课题主要研究内容32 modbus总线技术42. 1现场总线技术42. 2 modbus技术历史42. 3 modbus通信协议42. 3. 1 modbus 数据模型42. 3. 2 modbus地址参数表
2、及通信结构52. 3. 3 modbus 兼容分类53 0pc技术规范63. 1 0pc技术丿力史63. 2 opc技术规范63. 3 com 技术73.4 opc服务器数据访问方式83. 4.1同步数据访问83. 4.2异步数据访问94 modbus opc数据访问服务器的实现94. 1 opc服务器要求分析94.1.1 opc服务器结构框架94. 1. 2 opc服务器需要实现的功能114. 2 opc服务器开发步骤124. 3服务器组和项属性实现124. 4.1服务器与客户端异步通报方式传送机制134.4.2服务器与客户端连接点方式传送机制.144. 5 opc对象和接口 155 opc
3、服务器的实验测试15结论18参考文献18附录1 opc组件的部分实现代码19附录2实验设备及运行环境21致谢22滁州学院本科毕业设计基于modbus通信协议的智能仪表0pc服务器的开发摘要:opc (ole for process control)是过程控制软硬件与基于windows平台的应用 程序z间的通信通道,它已经成为现代工业自动化控制领域的标准,被广大厂商和用户所 接modbus通信协议是监控系统h动化设备的通信标准,可将modbus报文信息传输于 internet中。随着modbus技术和opc技术的发展,以及它们在工业领域中发挥的作用h 益增加,研究基于modbus的opc数据访问
4、服务器成为了一个重要课题。本课题在modbus协议和opc规范基础上,详细介绍了基于modbus通信协议的opc服务 器的原理和开发过程。具休论述了 opc技术优点;opc传输的三种方法-一同步访问、异步 访问、订阅实现过程中的关键技术;以及服务器实现过程屮的关键技术。关键词:modbus通信协议;0pc数据服务器;com;智能仪表opc server development of intel 1igent tnstrument based on themodbus communication protocolabstract: opc (ole for process control) is
5、 a process control hardware and software based on windows platform between the applicat ion program and the communication channol, it has become a modern industrial automation and control standards, by the vast number of manufacturers and users to accept the communication protocol of modbus is monit
6、oring system automation equipment, communications standards, the modbus can bo message transmission in internet. with the modbus technology and opc technology dovelopment, as well as in the industrial field play an increasing role, based on the modbus opc data access server becomes an important prob
7、lemthis topic in the modbus agreement and the opc standard foundation, described in detail based on the communication protocol of modbus opc server principle and development process discusses the advantages of opc technology; opc transmission for three methods - synchronous access, asynchronous acce
8、ss, subscribe to realize the key technology in the process of server; and the realization of the key technology.key words: communication protocol of modbus; opc server; com; tntel1igent instrument 1滁州学院木科毕业设计1绪论1.1课题的选题背景及意义计算机在当今工业自动化控制领域中发挥着日益不可替代的作用,工业控制领域中各种 智能仪表都提供了和计算机的通信协议3。微电子技术和计算机技术的不断发展,引
9、 起了仪表结构的根本性变革,以微型计算机(单-片机)为主体,将计算机技术和检测技术有机的结合,组成新一代“智能化仪表”,在测量过程自动化、测量数据处理及功能多样 化方面与传统仪表的常规测量电路和比较,取得了巨大进展。智能仪表不仅能解决传统仪 表不易或不能解决的问题,还能简化仪表电路,提高仪表的可靠性,更容易实现高精度、 高性能、多功能的口的。随着科学技术的进一步发展,仪表的智能化程度将越来越高。智 能仪表和智能传感器一般是用在现场总线系统中,这种仪表和传感器内部嵌入的有通信模 块和控制模块,对以完成数据采集,数据处理和数据通信功能。使计算机控制系统成为最 为方便的自动控制方法。但是在opc出现
10、z前,工业领域小用到的很多现场设备都存在上 层软件和下层硬件不一致性的问题45,对于不同厂商开发的不同设备都必须开发对应 的驱动程序如图1-1,这样造成了极人的资源浪费和设备运用的局限性。而opc岀现之后 的状况则完全改变如图1-2。opc采用客户机-服务器结构,基丁-com和dcom技术为软破 件开发商提供了一套标准的接口。软硬件开发商只用编写一套接口程序就町以满足需要, 人大的节约了成木6飞。因此,opc技术在儿年内飞速发展并得到国际自动化领域厂商的 广泛支持,各种opc相关的产品也研发了出来,而设计一款基于modbus通信协议的opc 服务器这个课题也就应运而生。应用程序a应用程序bop
11、c客户端opc客户端topc服务器opc服务器opc服务器设备a设备b设备c图1-1 opc技术出现之前滁州学院本科毕业设计1.2 opc技术国内外发展现状opc是opc基金会组织制定的一套工业控制领域的开放式标准。它的本质是采用了 microsoft公司的0le/c0m和dcom技术,它包括自动化应用中使川的有一整套接u、属性 和方法的标准9。0pc规范左义了 一个工业标准接口,这个标准使得com技术使用于过程 控制和制造自动化等应用领域。opc建立在ole规范之上,它为工业控制领域捉供了一种 公用的数据访问机制,具有语言无关性、代码重用性和易于集成性等优点10。它使厂商 不必再为不同的应用
12、需求开发不同的驱动程序,避免了控制系统中同一设备的不同驱动程 序同时访问设备时造成的冲突问题。opc规范以ole/dcom为基础,而ole/dcom支持 tcp/ip等网络协议,所以可以将各个子系统分开,分布于网络的不同节点上。opc保证了 软件对客户的透明性,使得用户完全从低层的开发中脱离岀来。不管过程中采用什么软件 或设备,opc为它们提供了公共的接口和以下多种访问机制:(1)客户端和服务器位于同 一台计算机上;(2)客户端和服务器位于不同的计算机上;(3)单个客户端和多个服务 器通信;(4)多个客户端和单个服务器通信;(5)多个客户端和多个服务器通信11。国外opc发展迅速,应用也很广泛
13、,众多的厂家研发生产了种类众多的opc产品,opc 基金会从成立开始会员逐年增加,到冃询为止在全球范围内己有300多家公司加入了这个 国际标准组织。同时由控制设备厂商和控制软件供皿商提供的opc产品也日益增加,li前 已有600种以上的opc服务器产品和0pc应用程序产品出现在由opc基金会发行的0pc产 品冃录上,促成opc成为工业控制过程国际标准的地位。不过在国内opc产品开发冃前儿 乎还是空白,只冇少数口动化软件和大型硕件厂商实现了 opc客户或opc服务器功能,市 场开拓述处于概念宣传阶段。由于欧美的opc服务器价格比较昂贵,国内也只有极少数的 大型自动化工程购买并应用了 opc产品1
14、213。由于0pc标准的技术优势和发展前景, 国内的众多自动化公司已经开始积极探索opc技术的应用开发。1. 3本课题主要研究内容木课题主要研究的是modbus通信i办议和0pc服务器的和关内容。首先详细论述了 modbus协议的主要内容、历史和现场总线技术,介绍了 modbus数据模型、地址参数表、 通信结构及兼容分类。接着分析了 opc的发展现状、com技术、接口技术,讨论了 0pc服 务器的同步数据访问和异步数拯访问方式,在此基础上对基于modbus的0pc服务器的开 发进行了深入的研究。研究重点是棊于modbus的0pc服务器的设计和实现。各章节主要内容如下:笫一章:介绍选题背景和意义
15、以及0pc的发展现状;第二章:modbus通信协议的技术丿丿j史和基本内容;笫三章:0pc服务器的技术规范和数据访问方式;第四章:详细论述基于modbus的0pc服务器的设计实现;笫五章:服务器的实验测试。3滁州学院木科毕业设计2 modbus总线技术2. 1现场总线技术现场总线技术是用于过程自动化、制造自动化等领域的现场智能设备相互通信的网络, 它作为工业数字通信网络基础,沟通了牛产过程现场及控制设备之间及其与更高控制管理 层次z间的联系。它不仅是一个基层网络,而且还是一种开放式、新型全分布控制系统。 这项以智能控制、数字通信等技术为主耍内容的综合技术,已经受到吐界范围的关注,成 为自动化技
16、术发展的焦点,并将导致自动化系统结构与设备的深刻变革。2. 2 modbus技术历史modbus是由modicon公司在1978年发明的,它拉开了工业网络的序幕,是一个跨时 代、里程碑式的网络协议,他是笫一个真正永业工业现场的总线协议,全球冇超过800万 个安装的节点,叮见其普及的程度相当高,已经成为事实上的协议标准。它有以下三点成 功之处:(1)开放性:用户可以放心的免费使用modbus协议,不用缴纳费用,不会构成侵权;(2)支持多种电气接口: rs232, rs422、rs485等,对在双绞线、光缆、无线射频等介 质上传送;(3)简单易懂:其格式帧是最为简单紧凑的协议,厂商开发简单,用户使
17、用也方便。2. 3 modbus通信协议modbus是电了控制器应用上的通用语言,通过此协议控制器z间、控制器通过网络和其 他控制器之间可以通信。它主要针对单主站和多从站之间的通信规则作出约定,规定数据 传输以帧为单位,将报文作为一帧数据,报文是由发送数据、发送地址、控制信息、校验 信息按-定格式组成的数据单元。主站发送报文后,所有从站都会接收到报文,但只有主 站发送的报文屮包含寻址的从站才能执行报文操作,接着将操作结果返冋给主站,如果主 站发送了错误报文,从站会发送错误报告返冋给主站。若主站未收到应答信息或者响应报 文,会再次发送报文给从站。modbus通信协议有两种模式分别为ascii和r
18、tu,数据量小 的常用ascii模式,通信数据量大而口是二进制吋候用rtu规约。2. 3. 1 modbus数据模型modbus的数拯模型主要基于以下四个表:输入开关量单个位,由1/()系统提供,只读;输出开关量中个位,通过应用程序可变,读写;输入寄存器16位量,曲i/o体统捉供,只读;输出寄存器16位量,通过应用程序可变,,”读写。4滁州学院木科毕业设计2. 3. 2 modbus地址参数表及通信结构modbus数据模型的基础是一系列区别不同类型参数的地址参数表,主要由以下四个参数 表:开关量型输入:来自i/o系统的只读型1位布尔型数据,地址范围10001-1ffff; 开关量型输出:应用程
19、序控制变化的可读可写型布尔型数据,地址范围00001-0ffff;输 入寄存器:來自i/o系统的只读型16位数据,地址范围30001-3ffff;输出寄存器:由应川程序控制变化的可读可写型16位数据,地址范围40001-4ffff。 modbus通信结构如图2-1:图2-1 modbus通信结构图2. 3. 3 modbus兼容分类modbus采用兼容分类来避免与已有的系统发生冲突,它定义了 0级和1级类,表示已经 实现的应用的交易模式,达到兼容ii【系统的冃的。2级类代表一些特殊的功能应用,此外 还通过分类来识别一些已经存在但不易解释实现的交易。0级是所有服务器和客户端都必须实现的最小功能集
20、。读多个寄存器(功能03)写多 个寄存器(功能16)1级是常川的附加功能,这些功能被客户端解释为输入输岀的开关量和模拟量。读线圈(功能01)读离散量输入(功能02)读输入寄存器(功能04)写线圈(功能05)5滁州学院木科毕业设计写单个寄存器(功能06)读异常状态(功能07)2级是一组常规应用于人机接口程序和监控程序中的数拯传输功能。写多个线圈(功能15)读文件记录(功能20)写文件记录(功能21)modbus报文格式如图2-2所示。协议数据讥元图2-2 modbus报文格式3 0pc技术规范3. 1 0pc技术历史早期的0pc规范是由5家工业软件制造商组成的0pc小组在1995年开发的,在19
21、96年 8月完成了 0pc数据访问标准版本1. 0o 0pc基金会在1996年9月24日在美国达拉斯举行 了第一次理事会,并在同年10月7日芝加哥的第一次全体人会上宣告成立。现在的0pc 基金会的理事会是曲 fisher-rosement, honeywell, interllution, rockwell, software, national instrument以及欧洲代表的siemens和远东代表的东芝组成的。在 日本为响应以美国屮心的标准活动,于1996年6月开始基金会成立的准备,于1996年10 月17|正式成立了日本的opc基金会。与此同吋欧洲也成立了自己的0pc基金会。中国 也
22、由5家公司作为发起人于2001年12月成立了中国0pc促进会。3. 2 opc技术规范opc基金会制总了各种opc规范,并且不断地进行升级和更新以便于适应h益变化发展 的工业自动化领域。在设计0pc服务器或者相应程序时要按照规范去操作,以保证设备和 程序的相互兼容性。opc规范包含以下几个方面:modbus tcp应用数据单元6滁州学院本科毕业设计(1)0pc数据存取规范即数据访问标准;(2)0pc报警与事件规范即报警和事件的标准;(3)0pc历史数据存取规范即丿力史数据访问标准;(4)0pc批处理规范即批处理的标准;(5)0pc安全规范即安全性的标准;(6)0pc数据交换规范即服务器间数据交
23、换的标准;(7)0pc_xml规范即过程数据的xml标准。3. 3 com技术com是微软公司倡导的一个制处软件的方法,在com的构架下可以开发出各式各样的功 能专一的组件,然后按照需要将他们结合起來,构成复杂的应用系统。它可以随时为系统 升级,只需将原系统中的组件用新的更换掉。一个组件也可以在多个应用系统中重复利 用,述可以很方便的将应用系统至于网络z中。com的体系结构有com的核心、统一数拯传输、智能命名和持久存储。其中com核心包 括服务控制管理员、接口基、接口代理和com库。其定义了 com对彖与客户如何通过二进 制标准接口进行交互的标准。com木身预泄义了一套通用接口,用來建立基于
24、客户服务器 结构的com应用。接口是用于部件对象间作用的二进制标准,每个接口都包含了一系列函 数,这些函数规定实现接口的对象和用户使用这些对象所遵循的协议,包含接口名、函数 名、参数名及具类型。f面简单介绍一下com组件、com对象和com接口。com组件在windows平台上可以是 dll文件或者exe文件,组件为com对彖提供了活动空间,一个组件程序可以包含多个 com对彖,com对彖用接口的方式提供服务,一个com对彖町以拥有多个com接口。com支持的是面向对象的组件模型,com组件提供给客户端的是以对象形式封闭起来的 实体。客户端和com组件程序交换数据的实体是com对象,它无需在乎
25、组件模块的名称和 位置,但要知道和自己交互的com对象是哪个,客户程序通过一个com对象的全局标识符 来创建和初始化对象,并不肓接访问com组件。com接口都是从iunknown接口派生的,com接口实现了二进制的内存结构。客户程序用 指向接口数据结构的指针来调用接口函数,接口指针乂指向另一个指针,这个指针指向虚 函数表,虚函数表里而一项由4个字节长的函数指针组成,每一个接口的viable是确定 的,com接口 vtable的前三个指针是queryinterface、addref > release函数实现的地 址,两数指针和对象的具体实现连接。客户只要扶得了指针就可以调用到对象的实际功
26、 能。图3-1是接口的二进制内存结构:7com规范用128位全局唯一标识符gutd来标识com对象和com接口,标识的com对象为 clsid,标识的com接口为iid。客户程序通过指肚的clsid进行対象的创建和初始化工 作,客户程序要使用com对彖的接口,它必须知道该接口的叮d和接口成员函数。3.4 opc服务器数据访问方式opc数据访问冇两种方式:同步访问和异步访问,下面分别介绍。3. 4.1同步数据访问图3-2同步数拯访问过程3-2所示,opc服务器按照opc客户端的要求把得到的数据访问结果作为方法参数返还 给opc客户端,opc客户端在结果被返还之前必须处于等待状态。小批量的数据访问
27、使用 这个方法比较便捷,对于大批量的数据,就很占用opc客户端的时间。在opc数据存取规 范中,同步数据访问方法是用iopcsyncio接口來实现,iopcsyncio接口有两个函数: read和writeo根拯opc数据访问标准,不同的数据读取方式所需要的数据源有两种:从服务器数据缓冲区读取;二是从换件设备玄接读取。read同步数据读取可以从数据缓冲区 读取或者硬件设备直接读取,从数据缓冲区读取数据时受组和项状态的影响,write同步 写操作是直接向设备写数据。p 2bl巳虚函数表vtablequer8滁州学院木科毕业设计3. 4.2异步数据访问opc服务器图3-3异步数据访问过程异步数据访
28、问过程如图3-3所示,opc服务器接收到opc客户端要求后,检查了参数中 的项的服务器句柄是否有效,然后将方法返回,opc应用程序进行处理。当opc服务器完 成数据访问吋,触发opc应用程序杲步访问的完成,将数据结杲返回给opc应用程序。4 modbus opc数据访问服务器的实现4. 1 opc服务器要求分析本节主要介绍opc服务器设计实现的主要功能和设计环境以及总体框架,初步构建起 0pc服务器设计的基础。4.1.1 opc服务器结构框架基于modbus的智能仪表0pc服务器可以实现向下和modbus从设备的通信,向上可以将 实时数据传输到0pc客户端。其结构如f图4-1所示:9滁州学院本
29、科毕业设计图4-1 0pc服务器结构框架从现场设备读取凹來的数据通过modbus协议工业以太网以数据帧的形式传到0pc服务 器,经过服务器的处理再通过0pc接口上传到0pc客户端,这样就完成了远程监控现场设 备运作状态的过程。现在简介一下0pc服务器关键模块管理模块的设计理念。管理模块主要处理通道的定 义、标签组、标签和逻辑设备的定义、物理设备向通道和逻辑设备的映射、物理设备数据 点与opc item的映射关系等方面的设备和数据点的管理功能。0pc服务器接口接收到客户 端的请求后也必须利用管理模块捉供请求的opc item 应的物理设备数据点的信息。其 数据点监视功能使通信模块在客户端界面上实
30、现対设备数据点的读写。如图4-2所示,它包含通道定义、modbus从设备映射、数据点映射、模拟变量变换和数 据点在线监视五个模块。modbusopc服务器modbus 从设备现场设备plc滁州学院本科毕业设计图4-2管理模块结构通道泄义模块是-与远程modbus服务器的连接属性的设置。通道由ip地址、ip端口和连 接超时值组成。对于每一个ip地址、tp端口必须定义唯一一个通道,这样连接到网络上 的设备就可以利用这些信息连接到确定的唯一-的opc服务器的物理设备。modbus从设备映射模块主要功能是将物理设备的信息映射到相应的逻辑设备和通道之 中。数据点映射模块将设备数据点亡接映射为管理模块的标
31、签,而标签包含有的信息 有:设备数据点具体的地址、储存区类型、数据类型和读取权限。0pc项代表了到数据源 的连接,和当于一个指针,指向它所对应的标签,通过标签的信息完成连接。物理设备中的模拟变量是以整数或者浮点数的形式读出的,对是这些值只是存储区内的 一个相对量,模拟变量模块可以将它们经过比例变换成为有意义的物理值,还需要定义物 理单位、死区、上溢下溢范围等信息。数据点在线监视模块提供了设备数据点的读取功能,让服务器用户界面可以实现数据点 数值的在线读取和写入。4. 1.2 0pc服务器需要实现的功能在0pc规范中可以总结出0pc服务器应该实现的儿项基本功能,0pc服务器要与客户端 实现连接,
32、数据传输必须要有这些功能。首先0pc服务器要在客户端需要的吋候提供本地 连接,以便于客户端需要连接0pc服务器的时候,0pc服务器能够被找到,能够给客户端 提供必要的接口。同时需要0pc服务器支持modbus通信协议,不需要任何额外的驱动程 序,在和modbus从设备通信的时候不需要为每个通信设备提供不同的驱动程序;然后0pc 服务器需要提供 iopcserver> iopcitemmgt、iopccgroupstatemgt> iopcsyncio等接口的 实现,只有实现了这些接口,客户端才能够通过该接口实现添加删除服务器的组对彖,对 组对象进行管理。而且无论是木机还是远程客户端
33、都能访问服务器,支持了远程启动,即 使服务器不在运行状态,只要有客户端访问服务器,服务器能够自行启动。11滁州学院本科毕业设计下面是opc服务器的几个:基本概念:(1)设备:指连接到opc服务器的硬件设施(如plc),对于modbus opc服务器来 说,设备是指mod icon或者具他笫三方modbus兼容换件。设备包含事务处理超时时间、 连接类型等信息;(2)通道:通道为opc服务器提供连接到硕件设备的物理连接的信息;(3)标签组:提供一种将标签成组的方法,用于生成地址空间的。标签组可以让浏览 标签的客户端分层次的仔细查看标签;(4)标签:标签用于在0pc服务器中映射廿标硬件数据点。它的名
34、称可以取代plc的 以数字表示的寄存器。4.2 0pc服务器开发步骤(1)定义opc数拯服务器的名称和类标识,然后根据规范对各个接口 id进行定义;(2)实现opc数据服务器类厂对象,创建0pc服务器对象;(3)设计0pc对象。首先通过继承iunknown类派生出opcserver, opcgroup和opcitem 3个类,分别对应opc服务器对象,组对象和项对象,并重载iunknown类屮的接 口查询和引川计数函数。然后将opc基金会网站上提供的相应的头文件添加到工程中,通 过继承这些接口派生出新的接口类实现每个接口的成员函数。在opcserver和opcgroup 类中增加指向相应接口类
35、的指针成员变量,接着修改接口查询函数。当客户程序查询某一 接口时,实例化接口类,并返回接口指针变量,客户程序再通过该接口指针进一步调用接 口成员函数;(4)数据存储区的设计。由于opc服务器要对底层硬件进行读写操作,又要通过opc 接口一与客戸程序进行交互,所以对数据存储区的操作需要采用多线程模型,以保证数据存 取的效率。为避免不同线程同时对数据区中的数据进行操作,须考虑对临界区的互斥控 制;(5)界而设计。对以设计类似windows中资源管理器的用户界而,将各数据项用树型 结构表示然后设计数据项和换件的设置界面,并与数据存储区和駛件接口联系起來,实现 相应的组态功能。在opc服务器程序关闭时
36、,需要将数据项的屈性以及硬件设置参数作为 组态文件保存起來,而在程序运行吋能自动调入组态文件完成初始设置;(6)根据硕件的种类和特性,自行开发驱动程序,或者调用硕件厂商提供的i/odll实 现对现场设备进行设置以及数据存取的功能;(7)获取opc标准组件并在服务器上注册,然后利川opc客户端程序连接opc服务器 进行测试。4. 3服务器组和项属性实现每个组冇两个i/o接口:同步和异步接口。每个接口有读、写两种函数。同步函数在执 行i/o操作吋,会阻塞当前进程。同步读函数可以指主是读缓存还是读设备,过程如下: 读缓存用于服务器立即得到最近的数据,而不执行一个较慢的i/o操作。如果项是不活动 的,
37、则返冋一个坏的品质。读设备强迫服务器从所连的设备读取数据。因为这种方法较 慢,它通常作诊断用。12滁州学院木科毕业设计同步写函数总是把数据写到设备上,返凹完成状态给opc客户。同步读写函数独立于数 据连接通知。异步函数包括读、写、刷新和取消。像同步读写函数一样,异步读写函数也 可以操作多个项不同的是异步函数请求动作,并且立即返回。一个独立的线程按照先后顺 序处理这些操作,操作结果按请求登记顺序通过连接点通知opc客户。读函数引起所冇的 请求数据返回,这个两数是独立于变化驳动通知的。异步写函数通过连接点返凹给opc客 户的是t/0函数操作完后的状态。杲步刷新函数仅仅影响变化驱动通知,刷新函数本质
38、上 强行更新指定项,而不管最近的改变是否通知了 opc客户。返回给opc客户的是最近的 值。品质是opc数据必要的选项,服务器用品质來表示数据不对靠或坏的。句柄是组和项的一个属性。组和项都有客户句柄和服务器句柄,客户句柄被opc客户分 配与一个对象关联,服务器在相关操作中返回这个句柄,通过句柄來识别这个对象。例 如,当数据返回时,纽的句柄在结构的头部,项的句柄与数据相关。opc客户通过这种风 格来分配句柄使自己工作更有效率。句柄是一个普通的数据结构、一个索引或偏移量,服 务器通过句柄來联系项。opc客户在任何操作中,通过传送句柄來向服务器表示项。服务 器也采用opc客户一样的方法来分配句柄。4
39、.4服务器与客户端传送机制opc规范发展到l1前为止,针对服务器与客户端的数据传送共提岀了两种方法,分别是 异步数据通报和连接点方式。其中异步数据通报方式应用于符介opc规范1. 0版本要求的 服务器屮,连接点方式用于符合opc规范2.0版本要求的服务器中。opc服务器与客户端 数据传送机制是整个opc服务器开发过程屮的关键技术,下面对这两种数据传递方式分别 进行讨论。4. 4. 1服务器-与客户端异步通报方式传送机制通过异步通报方式传送数据时,客户端需耍实现iadvisesink接口,服务器端需耍实现 idataobject 接口。iadvisesink 接口和 idataobject 接口
40、都由 com 库定义。iadvisesink接口川于接收异步通报。异步报有3种类型:复合文档、数据变化和视区 变化iadvisesink的实现者可以根据实际需要il: tadviesink接收一种或多种类型的异步 通报,ladviesink的每一种方法是对应于一种特左通报的冋函数。当触发异步通报发送的 条件满足后,发送报的程序调用合适的iadvisesink方法。idataobjcct接口它用于处理 数据变化通报,因而只实现了 idataobject的dadvise方法和dl'nadvise方法。dadvise 函数用于建立双向通信机制,客户程序调用此函数,以便在客户程序的通报接收器和
41、对象 z间建立一个通报连接,以后当对象屮的据发生变化时,它可以通知客户程序的接收器 dunadvise函数用于取消通报连接。下而简单介绍下一步操作流程:在opc中,数据传输是以组为单位进行的在实现异步操 作前,客户和服务器z间必须以组为单位建立连接,这个连接是由客户调用服务器的 idataobject接口中的dadvise函数建立的。建立好后,在服务器方将保存客户的 iadvisesink接口当需要传输数据时,就使用客户方的tadvisesin接口向客户传输数据。 具体的连接流程:(1) opc客户调用cocreatelnstance函数创建服务器对象,获得其接口指针,客户就 对以利用该指针直
42、接调用接口成员函数。在服务器端为客户生成一个opcserver对彖;13滁州学院木科毕业设计(2) 用户调用服务器实现的iopcsorver: : ad2dgroup ()函数添加组;(3) 客户调用服务器实现的iopcscever:ad2dltcm()函数添加项;(4) 客户生成一个iadvisesink对象;(5) 客户调用服务器端实现的dadvise函数,-与服务器建立连接。服务器在opcgroup 对象中保存客户的iadvisesink对象和数据格式;(6) 客户调用服务器iopcasynci0发出读/写操作,服务器给相应组和项做异步读/写 标记;(7) 服务器向通道发送命令,等待命令
43、返回;(8) 服务器接收通道的读/写结果,给-与通道对应的opc项置读/写完成标记;(9) 服务器中建有定时器,该定时器定时扫描opc项的异步操作标记当发现标记为完 成时,调用iopcdataobject中保存的客户的iadvisesink对象的ondatachange函数,把 项的数据传输给客户,然后给项的标记复位客户在ondatachange函数屮,按照约定的数 据格式,获得异步操作的结果。4. 4.2服务器与客户端连接点方式传送机制一般情况下,服务器组件提供的接口都是入接口,即组件处于被动状态,等待客户的请 求、然后做出相应的反应。这样的结构常常不能满足实际的要求,组件对象也要主动的与
44、客户进行通信,所以这就要求对象能够提供出接口。如果一个com对象支持一个或者多个 出接口,我们就称这样的对象为可连接对象。可连接対象管理所冇的出接口。对应每一个 出接口,可连接对象管理了一个称为连接点的对象,客户通过连接点对象建立接收器与可 连接对象的连接。图4-3就是连接点机制的具体描述:图4-3连接点机制结构描述如果客f要使用连接点,接收器对象中就必须实现iunknown接口和服务器的输出接 口。客户程序开始运行后,通过可连接对象接口杳询自己的接ii指针,若opc服务器提供 了该接口的实现,那么客户就调用该接口的advise方法,把在接收器中实现的iunknown 接口指针传送给服务器。服
45、务器接着秋得输出接口的指针。所以服务器需要向客户端发送 数据的时候就可以调用输岀接口的方法。iunknown14滁州学院本科毕业设计4.5 opc对象和接口opc对象是opc服务器程序与客户程序进行交互的部分,需要与数据存储区和駛件驱动 部分相联系,以便获取数据区中的数据或直接访问硬件设备。实施步骤分为以下几个部 分:(1) 继承opc规范中定义的opcserver类opcgroup类和opcitem类,实现其接口成员 函数。首先从opc基金会定义的纽对象接口派生出新的接口类并实现其成员函数的功能,然后增加指针成员变量指向这些接口类。最后在组对象的接口杳询函数中增加实例化接口 类的代码。opc
46、项表示了与数据源的连接,数据源可以是程序数据区中的数据项,也可以 是某个硬件设备中的数据。opc项没有自己的接口,无需实现任何接口功能,只需增加相 应的功能函数(如根据opc项的名称与数据源进行连接、读/写数据源等)o opc客户程序将 通过opc组对象的接口换数来间接调用opc项的这些成员函数;(2)定义opc数据服务器的名称和类标识。由于服务器对象是一个由客户程序调用的 com对象,因此需要定义一个类标识。类标识可用vc程序自动产生,这样能够保证生成的 类标识是唯一的。然后根据观范对各个接口 id进行定义;(3)实现opc数据服务器类厂对象。在com规范中,客户程序是通过类厂创建com对
47、象并返凹其接口指针的,因此需耍为cmyserver类设计和应的类厂。具体实现时先从 iclassfactory 基类派生岀 nopcclassfactory 类,然后重载 create2instance 0 成员函 数,通过该函数创建cmyserver服务器对象;(4)将opc对象设计的头文件和实现文件添加到工程屮。接着在应用程序类的初始化 函数中完成com库初始化、类厂注册等功能。当客户程序建立连接时,通过类厂注册服务 器程序并实例化一个服务器对象传递给客户程序。5 opc服务器的实验测试(1)同步实例界面,实现了启动、停止服务器,同步读写操作,并回复操作结果,如 图5-1所示。滁州学院木科
48、毕业设计图5-1同步实例界面(2)服务器界面,主窗口是opc服务器程序的起点,主耍完成opc服务器的初始化。 主窗口是所有界面元素的组织容器,主要包含设备地址、设备树形列表、标签列表。测试 中成功将数据转换为模拟量tag_i0-tag_19,它们分别对应了不同的数值但拥有相同的质 量如图5-2所示。a opc daje 务 as文件关于设备地址寄存器地址dxxxx/功能吗儿os1xxxx/功能玛022xxxx/功能玛0$ 063xxxx/功能谒04哥存酣数量鬲寄存器的值fopc dab务器标识1值|品质1吋间戳1l複拟量tagj019203/05/1215:36:21tagj119203/05
49、/1215:36:21tag 1219203/05/1215:36 21tagh5019203/05/1215:38 21tag 14519203/05/1215:36:21tag 15219203/05/1215:36:21tag 16019203/05/1215:36:21tag 172219203/05/1215 36 21tag 182019203/0s/1215:36 21tag 195519203/05/1215:36:21iopc数摇访月je务圈客户議文件opc服务器帮助1时间戳欖拟豊tagjk)i1922012-03-0515 36 21tagje131922012-03-05
50、15 36 21模拟垦.tag工01922012-03-0515 36 21模拟量.tag.i3501922012-03-0515 36 21模拟民tag51922012-03-0515 3621模拟星.tagje521922012-03-0515 36 21模拟量,tag601922012-03-05153621模拟蚤tag.i7221922012-03-0515 36 21模拟垦tag.i8201922012-03-0515 3621根拟虽.tagjl9551922012-03-0515 36 21图5-2服务器界血(3)设备属性,可以设置具体到一台设备的相关参数,如ip地址、端口号、设备
51、号、 网关设备、超时时间、消息周期等等,如图5-3所示。滁州学院本科毕业设计图5-3设备属性(4)添加组,在图5-4所示的指定的服务器里谢添加分组并将其命名的操作。组名称|groupl|确定|取消|图5-4添加组(5)标签属性,在图5-5所示设定指定标签的名称、描述、地址、寄存器及数据类型 等和关操作。确定取消图5-5标签属性17滁州学院木科毕业设计结论本文所开发的opc服务器,实现了与客户端的连接,并且可以实现添加或者删除组和项 的操作,经过测试基木拥有了 opc服务器作为工业通用数据访问服务器的功能,实现了 opc规范屮所规定的访问机制和modbus/tcp标准规范屮的功能。但测试小发现以
52、下儿个问 题:(1)频繁的启动停止服务器时,偶尔出现不能打开的情况;(2)在数据量过人时候转换不出模拟量;(3)时间戳部分偶尔出现时间错误。由于现场设备和本人水平有限,对于以上儿点缺陷没有进行有效的开发,有待以后的研 究。通过木次毕业设计,我感到自c应用皋础知识及专业知识解决问题的能力有了很人的 提高,并且这次毕业设计的选题,是一个很实际的课题,因此,在我即将工作之前,它是 一次重要演练。我想,通过这次毕业设计,到了工作单位后,我将能够更快的适应工作岗 位和工作耍求。我対口己充满信心。参考文献1蒋近,毛六平,戴瑜兴.基于modbus协议的opc服务器的yf发与研究j.湖南 丁程学院学报,200
53、5, 6(1) : 56-58.2 马增良,兰斌.opc数据访问服务器实现机制研究j计算机工程与应用,2003, 39(21) : 65-67.3 李勤,党选举,向荣.基于com的opc技术的研究和实现j.微计算机信息, 2002, 22(16):18-22.4 林跃.opc数据服务器开发工具研究与实现j.自动化仪表,2001, 22(9): 7-13.5 郭红晓,莫徳举.opc技术及其软件的开发j.北京化工大学学报(自然科学版), 2002, 29 (3) : 72-73, 7&6 冯波,陈子明,王伟杰,等.opc技术及其在工业过程控制中的作用j.中山大学 学报,2002,22(3)
54、: 169-171.7 殷卫兵,等.opc数据服务器分析及程序开发j.化工口动化及仪表,2003, 30(5) : 41-45.8 潘洪跃.基于modbus协议通信的设计与实现j 计量技术,2002, 33 (4): 35-36.9 vincent. interface between opc server and opc application program j. industrial automation, 2005,14(7): 21-26.10 martin, control, 2001,the role of opc in industrial automationj intell
55、igent 8(7) : 11-13.11 马龙华,段建民.()pc数据存取规范的研究和应用j.化工白动化及仪表,2002, 29(1) : 43-45.12 傅春霞,段建民.opc服务器的研究及在ca、总线系统中的实现j.微计算机信 息(测控自动化),2003, 19(11): 8-10.13 张国忠,等.电力监控模块opc驱动程序的实现j.武汉大学学报,2002, 35(2) :54-5&滁州学院木科毕业设计附录1 opc组件的部分实现代码/声明工具包的函数extern hmodule hlibrary;extern createserver createserver;extern freeserver freeserver;extern setserverstate setserverstate;extern setversioninfo setversionlnfo;extern activecode activecode;extern shutdown shu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 联名推广协议书
- 砂石提成协议书
- 京喜协议书价
- 特色小镇 协议书
- 商标注册委托代理协议书
- 光伏地块投资协议书
- 临床医学专业医学影像学习题集
- 2025年短视频打赏合同协议
- 2025餐饮技术入股合同协议书协议合同协议书书
- 2025年短视频MCN机构合同协议(内容制作)
- 2025年余杭招聘面试题库及答案
- 数据资产化价值分配模型-洞察及研究
- 共聚焦显微内镜技术在消化道早癌精准诊断中的应用
- 2024-2030全球ARM云手机行业调研及趋势分析报告
- 板框过滤机考试题及答案
- 2025长春金融高等专科学校教师招聘考试试题
- 解析MCN公司的商业模式及其优化路径
- 呼气末二氧化碳监测技术专题报告
- 测绘单位奖惩管理制度
- 内镜下早癌检出护理配合
- 2025年月嫂合同协议书
评论
0/150
提交评论