已阅读5页,还剩54页未读, 继续免费阅读
(控制理论与控制工程专业论文)基于以太网的网络控制系统的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 中文摘要 在工业控制领域中,随着控制系统规模的不断增大,集中控制系统已经不能 满足要求,控制网络已经广泛应用到工业控制中。现场总线就是顺应这一形式发 展起来的技术,并在一定程度上解决了这一问题。但是,现场总线的开放性是有 条件的,是不彻底的。当现场总线的发展遇到阻碍时,以太网技术却得到了迅猛 发展。如果能将以太网技术成功地用于工业控制底层网络,就可以打破传统的工 业控制网络体系,实现办公自动化与工业自动化的无缝结合。 将以太网应用于网络控制系统具有许多优势,但同时也存在一定问题,主要 包括传输的不确定性、以太网的可靠性问题以及缺乏统一的应用层协议。 本课题主要从两个方面对基于以太网的网络控制系统进行研究。首先是关于 应用层协议方面:研究实现当前应用最为广泛的m o d b u s t c p 协议,并通过网络 测试程序检验了实现的正确性。其次针对基于以太网的网络控制系统具有不确定 时延的特性,提出了将广义预测控制应用于网络控制系统的思想。同时,为了克 服建模误差和系统不确定性影响,采用b p 结构神经网络对系统进行误差补偿, 进一步改善控制品质。 最后,本文设计了基于以太网的网络控制系统,将m o d b u s t c p 协议嵌入客 户机和服务器程序中,进行了仿真实验研究。通过比较普通的g p c 和基于神经 网络误差补偿g p c 的系统响应曲线,表明了此控制方法的有效性。 关键词:工业以太网,网络控制系统,m o d b u s t c p ,广义预测控制,神经网络 a b s t r a c t a b s t r a c t w i t ht h e u n c e a s i n g l ye x p a n d i n go ft h e s c a l eo fi n d u s t r i a lc o n t r o l s y s t e m , c e n t r a lc o n t r o l s t r a t e g y h a sb e e nu n a b l et om e e tt h er e l a t i v ec o n t r o ld e m a n d , n e t w o r k e dc o n t r o ls y s t e mh a sb e e nw i d e l ya p p l i e di ni n d u s t r i a lc o n t r 0 1 f i e l db u si sa t e c h n o l o g yt om e e tt h i sd e m a n d i ts o l v e st h i sp r o b l e mi nac e r t a i ns e n s e b u tf i e l d b u si sn o tt h o r o u g h l yo p e n w h e nt h ed e v e l o p m e n to f f i e l db u sr u n si n t oi m p e d i m e n t , e t h e r n e t d e v e l o p sr a p i d l y i fe t h e m e t c a nb e i m p l i e d i n f a c t o r y f l o o rn e t w o r k s u c c e s s f u l l y , w ec a nb r e a kt h et r a d i t i o n a is t r u c t u r eo f c o n t r o ls y s t e ma n dr e a l i z et h e s e a m l e s si n t e g r a t i o no f o m c ea u t o m a t i o na n di n d u s t r i a la u t o m a t i o n 1 1 1 e a p p l i c a t i o n o fe t h e m e ti nn e t w o r kc o n t r o ls y s t e m ( n c s ) h a sm a n y a d v a n t a g e s ,b u ti ta l s ob 五n gs o m ep r o b l e m s ,i n c l u d i n g t h et r a n s m i s s i o ni n d e t e r m i n a c y , t h er e l i a b i l i t yo f e t h e m e ta n dt h el a c ko f u n i f i e d a p p l i c a t i o nl a y e rp r o t o c 0 1 t h ep a p e rr e s e a r c h e sn e t w o r kc o n t r o l s y s t e mb a s e do ne t h e m e tf r o mt w o a s p e c t s f i r s t t h ep a p e rs t u d i e sa n di m p l e m e n t st h em o d b u s t c pa p p l i c a t i o nl a y e r p r o t o c o l ,w h i c hi sw i d e l yu s e d i ni n d u s t r i a le t h e m e t i na d d i t i o nan e t w o r kt e s t p r o g r a mn a m e dc i pa l y z e 3 0i su s e dt oa n a i y z et h ea c c o m p l i s h e dc o m m u n i c a t i o n p r o g r a m s e c o n d l y ,w i t hr e g a r d s t ot h ec h a r a c t e r i s t i c so f u n c e r t a i n d e l a yo f n e t w o r k e d c o n t r o ls y s t e m ,t h i sp a p e rp u t sf o r w a r da l li d e ao fu s i n gg e n e r a l i z e dp r e d i c t i v e c o n t r o l ( g p c ) i nt h en e t w o r k e dc o n t r o ls y s t e m t oo v e r c o m et h e i n f l u e n c eo f m o d e l i n ge r r o ra n du n c e r t a i n t yo fas y s t e m ,w ec o m p e n s a t ee r r o ro f t h es y s t e mb y a d o p t i n gb p n e u r a ln e t w o r k t h ep a p e rl a s t d e s i g n sa l ln c sb a s e do ne t h e m e ta n de m b e d sm o d b u s t c p p r o t o c o l i nc l i e n tp r o g r a ma n ds e r v e rp r o g r a m i nt h ee x p e r i m e n t a lr e s e a r c h ,t h e r e s p o n s ec u r v e so ft h et r a d i t i o n a lg p cc o n t r o l l e ra n dt h ei m p r o v e dg p c c o n t r o l l e r a r ec o m p a r e d t h er e s u l ts h o w st h ee f f e c t i v e n e s so f t h es c h e m e k e yw o r d s :i n d u s t r i a le t h e m e t ,n e t w o r k e dc o n t r o ls y s t e m ,m o d b u s t c p , g p c , n e u r a ln e t w o r k l i 独创性声明 球人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的 i w 成粜,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表 “刊摧写过的研究成果,也不包含为获得苤盗盘鲎一或其他教育机构的学位或旺 刚史用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中 化j 明确的说明并表示了谢意。 7 阻论文作者签名:襞覆 签字同期: 矗w 毕年f 月r | 二1 学位论文版权使用授权书 本学位论文作者完全了解苤注盘堂有关保留、使用学位论文的舰定。 。受权墨盗盘堂可以将学位论文的全部或部分内容编入有关数据库进行榆 。j 采川影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校 1 1 i i i 家柏关部r j 或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) | - 澎论文作者签名:,i 曼也 :。:二,:t 期:0 a 叫年f 月r r 导师签名: 嚣鼠 签字r 期:夕一舛月厂| = 1 第一章绪论 第一章绪论 1 1 网络控制系统简介【2 】【3 l 网络控制系统( n e t w o r kc o n t r o ls y s t e m ,n c s ) 又称为控制网络,这个名词 于1 9 9 8 年出现在马里兰大学g cw a l s h 等人的论著中,但并没有给出确切的定 义,只是用图说明了网络控制系统的结构( 如图1 1 ) 。在该系统中,控制器与传 感器通过网络形成闭环。网络控制系统有狭义和广义之分。狭义的网络控制系统 是指在某个区域内一些现场检测、控制及操作设备和通信线路的集成,用以提供 设备之间的数据传输,使该区域内不同地点的设备和用户实现资源共享和协调操 作。广义的网络控制系统包括狭义的网络控制系统,还包括通过企业信息网络对 工厂车间、生产线甚至现场设备的监控调度、优化等。 图卜1 网络控制系统的结构 网络控制系统的突出特点:由于控制网络中传送的数据包通常较短、发送 接收频率高,因此有限的网络带宽就使数据传输过程中不可避免地存在着延迟, 而且随着网络协议、网络负载等诸多延时因素的影响,该延迟会随机变化。这就 容易导致较大的超调量和较长的调节时间,严重影响生产过程的控制品质而且会 大大降低系统的稳定性。 分布式控制系统( d c s ) 、现场总线控制系统( f c s ) 和工业以太网都属于 网络控制系统,它们的出现标志着控制系统正向着网络化、集成化、分布化和节 点智能化的方向发展。 1 - 2 现场总线控制系统的发展现状1 4 分布式控制系统曾经在网络控制系统中占主导地位,它的核心思想是分散控 第一章绪论 制、集中操作、分级管理。虽然它在一定程度上克服了集中式数字控制系统对控 制器处理能力和可靠性要求高的缺陷,但其一对一的结构导致布线量大、布线种 类多、工期周期长、安装费用高和维护困难等问题。此外,由于采用单项模拟信 号传输,因此可靠性差,有时会使现场设备处于失控状态。而采用现场总线控制 系统可以很好的解决分布式控制系统存在的上述问题。 现场总线将当今网络通信和管理的概念带入工业控制领域。从本质上讲,它 是一种数字通信协议,是连接智能现场设备和自动化系统的数字式、全分散、双 向传输、多分支结构的通信网络,是控制技术、仪表工业技术和计算机网络技术 三者的结合,代表了工业控制结构的一种方向。现场总线出现以后,网络化、集 成化、智能化便成为控制系统发展的一种必然趋势。现场总线发展迅速,目前已 有4 0 多种,其中最有影响力的有5 种:f f 、p r o f i b u s 、h a r t 、c a n 和l o n w o r k s 。 尽管现场总线获得了巨大的成功,但是,现场总线的开放性是有条件的,是 不彻底的。多种现场总线并存已成定局,难以沿开放的方向发展。当现场总线的 发展遇到阻碍时,以太网技术却得到了迅猛发展。 1 3 以太网在网络控制系统中的应用与发展 网络控制系统要求用于控制领域的现场总线是具有高网络性能的数字式互 连网络,具有互操作性和开放性。互操作性要求采用统一的标准和协议来实现。 开放性指技术公开且被广泛应用。目前,许多公司已经将以太网引入到工业控制 网络中。 l 3 1 以太网的优势f 5 】【6 低成本,易于组网,技术支持广泛。以太网已被使用多年,具有大量的软、 硬件资源和开发设计经验。应用于以太网上层的t c p i p 协议也比较成熟。 绝大多数网络产品均提供以太网接口,许多计算机操作系统也配备了t c p 1 p 协议。因此,以太网产品价格相对较低,有丰富的软、硬件支持,有大量从 事开发和维护的技术人员。 具有相当高的数据传输速率,可以提供足够的带宽。以太网已经从1 0 m b p s 、 1 0 0 m b p s 发展到千兆以太网。1 9 9 9 年以来,i e e e 8 0 2 3h s s g ( h i g hs p e e d s t u d yg r o u p ) 开始专门研究1 0 g 标准8 0 2 3 a e 。由于高速以太网的帧格 式不变,使之向下兼容,升级成本低,因此以太网是高性能的网络载体。 第一章绪论 实现网络的无缝连接。在以太网上使用t c p f i p ,其开放性可以使测控网和信 息网统一起来。现场信号可以在企业的i n t r a n e t 上及时发布和共享,还可以 在i n t e m e t q n t r a n e t 的任何位置对现场智能设备进行在线控制、功能组态以及 远程诊断等,实现网络控制系统真正意义上的开放性和互操作性。 1 3 2将以太网应用于工业现场存在的问题 传输的不确定性问题( 传输延迟的不确定性) :e t h e m e t 采用带有冲突检测的 载波侦听多路访问协议( c s m a c d ) 以及二进制指数退避算法,因此被认 为是一种非确定性的网络系统。对于响应时间要求严格的控制过程会存在产 生冲突的可能性,造成响应时间不确定,使信息不能按要求正常传递。这是 阻碍以太网应用于工业现场设备层的关键问题。 不符合工业标准。以太网所使用的按插件、集线器、交换机和电缆是为办公 环境而设计的,不符合工业现场恶劣环境的要求,在工厂环境中,以太网抗 干扰能力差。若用于危险场合,它不具备本安特性,也不具备通过信号线向 现场仪表供电的性能。 安全性不高。与i n t e m e t i n t r a n e t 连接虽然可以实现控制网络与数据信息网络 的结合,大大降低企业成本,但信息网络的故障很可能会导致工业控制i 网络 也不能正常工作,增大故障率,而且面临互联网类似的安全问题( 病毒、黑 客、软件b u g ) 。 在应用层没有统一的标准。以太网标准仅仅定义了o s i 参考模型的物理层和 数据链路层,即使再加上t c p i p 协议也只是在以太网上面提供了网络层和 传输层的功能。两个设备要想正常通信必须使用想同的语言规则,也就是说 必须有统一的应用层协议。 1 3 3以上闻题现有的解决方法 针对传输延迟的不确定性:一种方法是用交换式以太网代替共享式以太网口l 。 据估算,在共享型以太网中,当负载在1 0 以下时,网络可以保持确定性, 这个数据对应于1 0 m 和1 0 0 m 的网络分别意味着1 2 0 k b s 和1 2 0 0 k b s 的传输 速度。而采用交换式以太网后,负载可以上升到5 0 ,传输速度可以到 6 0 0 k b s 和6 0 0 0 k b s 。交换式以太网有效避免了碰撞域,从而显著提高了传输 效率。另一种方法是在以太网的协议中加入实时功能。这种方法涉及到对以 第一章绪论 太网协议的改进,目前主要有两种思想:一种是基于优先级的思想 ( p r i o r i t y b a s e d ) 【8 【9 1 【1 0 】;另一种是基于可调节流量平滑器的思想( a d a p t i v e t r a f f i cs m o o t h i n g ) i l l 。但这两种方法还只局限于小型网络。 为了解决在不间断的工业应用领域,在极端条件下网络也能稳定的工作的问 题,美国s y n e r g e t i c 微系统公司和德国h i r s c h m a n 公司专门开发和生产了导 轨式收发器,集线器和交换机系列产品,安装在标准d i n 导轨上,并有冗余 电源供电,接插件采用牢固的d b 一9 结构。 对于网络安全问题,可以提供多神安全机制:防火墙、用户密码、数掘加密 等。 应用层方面的进展:为适应市场趋势,全球主要自动化厂商和组织加强了工 业e t h e m e t 实现。法国施耐德公司于1 9 9 8 年推出m o d b u s t c p 协议,它具有 良好的开放性,易于实现,已经得到了广泛的应用。施耐德公司m e m e t u m 系列p l c 、台湾巨腾的o p e np l c 以及霍尼韦尔公司的部分产品等均支持 该协议。m o d b u s t c p 是目前工业以太网事实的标准,并促进以太网在传感 器和设备级的应用。美国洛克维尔自动化公司2 0 0 0 年发布e t h e r n e t i p 1 2 l 。 e t h e r n e f f l p 在应用层采用开放的c i p ( c o n t r o la n di n f o r m a t i o np r o t o c 0 1 ) 协议 ( 这与c o n t r o l n e t 和d e v i c e n e t 是相同的,三者都是面向对象的结构,共享 相同的应用程序对象库) ,而用标准的以太网和t c p i p 技术传输c i p 通讯数 据包。因而,它的总体结构是完全开放的。基金会现场总线2 0 0 0 年工业以 太网规范称为h s e 。德国西门子公司1 9 9 8 年发布p r o f i n e t 。 1 4 本课题研究内容 本课题主要从两个方面对基于以太网的网络控制系统进行研究。首先是关于 应用协议方面:研究并实现当前应用最为广泛的m o d b u s t c p 协议。其次是关于 传输不确定性问题:从控制领域解决传输不确定性问题对于生产过程的影响。通 过仿真实验对基于以太网的网络控制系统存在的时延进行了分析。在控制器的设 计过程中,首次提出了采用基于神经网络误差补偿的广义预测控制方案来改善网 络控制系统的性能。通过对典型控制对象的实验验证了以上方案的正确性。 具体研究内容如下: 用p c 机构建基于以太网的网络控制系统:一台p c 机作为控制器,另一台 第一章绪论 作为传感器执行器,通过以太网通讯连接。 控制算法的实现( 基于b p 神经网络的广义预测控制) m o d b u s t c p 协议的完整实现 实现控制器端程序和传感器执行器程序,嵌入控制算法,将m o d b u s t c p 协 议的部分代码移植到该程序中。 构建典型控制对象,验证方案的正确性。 第二章m o d b u s t c p 协议的研究与实现 第二章m o d b u s t c p 协议的研究与实现 2 ,1 协议简介【1 3 【1 4 1 m o d u s 协议是工业控制控制领域中的一种应用层协议,具有开放性和透明 性。尽几年来,随着m o d b u s 协议不断扩展,已经将串行链路、高速令牌传递网 络、t c p i p 等关键技术引入到m o d b u s 应用协议解决方案中,形成了m o d u s 应 用防议族,基于m o d b u s 应用协议族的工业以太网解决方案已经逐渐应用于各种 现场级测控领域。 m o d b u s 与以太网t c p i p 结合成为m o d b u s t c p ,该协议采用客户服务器的 通讯模式,以一种非常简单的方式将m o d b u s 帧嵌入到t c p 帧中,使其成为工 业以太网应用层协议。利用t c p f l p 协议,通过网页的形式可以使用户界面更加 友好。利用网络浏览器就可以查看企业网内部的设备运行情况。s c h n e i d e r 公司 已经为m o d b u s t c p 注册了5 0 2 端口,这样就可以将实时数据嵌入到网页中。通 过在设备中嵌入w e b 服务器,就可以将w e b 浏览器作为设备的操作终端。 2 1 1 协议体系结构 m o d b u s t c p 协议体系结构如图2 1 所示: 臣巫习 至至 二至二 ! 二王e r h e m 显e tii 蔓e e e8 0 二23 i 、 图2 1m o d b u s t c p 协议体系结构 2 1 2m o d b u s t c p 通讯结构 一个m o d b u st c p 1 p 通讯系统可能包含不同类型的器件设备: 连接到t c p i p 网络上的m o d b u st c p i p 客户端和服务器端设备。 6 第二章m o d b u s t c p 伽议的研究与实现 用于连接t c p i p 网络和其他类型网络( 如串行线网络) 的设备,如:网 桥、路由器和网关。 图2 2 所表示的是m o d b u st c p i p 通讯结构: 图2 2m o d u st c p i p 通讯结构 2 1 3m o d b u s t c p 的应用数据单元( a d u ) m o d b u s 协议定义了一个与基础通信层无关的简单协议数据单元( p d u ) 。为 了在特定总线或网络上进行m o d b u s 协议映射,在应用数据单元( a d u ) 上引入 一些附加域,如图2 3 为m o d b u s t c p 的应用数据单元,最大长度为2 5 6 字节。 m o d b u s 应用协议建立客户机启动的请求格式。客户机启动m o d b u s 事务处 理,并创建m o d b u s 应用数据单元。功能码向服务器指示将执行哪种操作。用一 个字节编码m o d b u s 数据单元的功能码域。有效的码字范围是十进制1 - - 2 5 5 ( 1 8 8 - - 2 5 5 为异常响应保留) 。当从客户机向服务器设备发送报文时,功能码域通知 m o d b u st c p i pa d u p d u 图2 3m o d b u s 仃c p 协议数据单元 了 第二章m o d b u s i t c p 协议的训究与实现 服务器执行哪种操作。向一些功能码加入子功能码来定义多项操作。从客户机向 服务器设备发送的报文数据域包括附加信息,服务器使用这个信息执行功能码定 义的操作,这个域还包括离散量或寄存器地址、处理的项目数量以及域中的实际 数据节数。 如果在一个正确接收的m o d b u sa d u 中,不出现与请求m o d b u s 功能码有关 的差错,那么服务器至客户机的响应数据域包括请求数据。如果出现与请求 m o d b u s 功能码有关的差错,那么响应数据域包括一个异常码,客户机应能通过 这个异常码确定下一步所执行的操作。 m b a p h e a d e r ( m o d b u s t c p 协议头) 包含如下字段: 区域长度描述客户端服务器端 m o d b u s 请求应答事服务器端复制收到的请求 事务标识2 字节由客户端发起 务标识内容 服务器端复制收到的请求 协议标识2 字节0 = m o d b t t s 协议由客户端发起 内容 由客户端发起服务器端复制收到的请求 长度2 字节 后面内容字节数 ( 请求)内容( 应答) 与串行线或其他总服务器端复制收到的请求 单元标识1 字节由客户端发起 线连接标识 内容 协议头共有7 字节长,各部分功能如下: 事务标识:用于表明配套的事务,服务器端复制收到的请求内容。 协议标识:用于标明使用何种协议,m o d b u s 协议的值被标定为0 。 长度:该区域表明后面内容的字节数,其中包括单元标识和数据段。 单元标识:该区域用于不同网络之间的路由之用,典型的,通过设置在以太网和 m o d b u s 串行线网络之间的网关,使用该单元标识可以实现两种网络之间的通 讯。该区域的值由客户端在发起请求时设定,服务器在回应时必须返回同样的值。 2 1 4m o d b u s 数据模型 m o d b u s 数据模型基于有不同特征的一系列数据表。四种基本数据表格为 第二章m o d b u s t c p 协议的讲究与实现 主表对象类型访问类型内容 离散量 单个比特只读 i 0 系统提供这 输入种类型的数据 通过应用程序改 线圈单个比特 读写 变这种类型数据 输入寄 r 0 系统提供这 存器 1 6 - 比特字只读 种类型的数据 保持寄 1 6 一比特字读写 通过应用程序改 存器变这种类型数据 上述表格中任何一项,协议都允许单个地选择6 5 5 3 6 个数据项,而且读写操 作可以包括多个连续数据项直到a d u 字节限制。很显然,必须将通过m o d b u s 处理的所有数据放景在设备应用存储器中。但是,存储器的物理地址不应与数据 参考地址相混淆。要在数据参考地址与物理地址之间建立映射关系。 对于m o d b u s 数据模型实现来说,在设备中有两种构造数据的方法,每个设 备根据其应用都有自己的数据结构。 图2 4 表示带有4 个独立块的设备中的数据结构,这个设备含有数字量和 模拟量,输入量和输出量。由于不同块中的数据不相关,每个块是相互独立的, 可按不同的m o d b u s 功能码访问每个块。图2 5 表示带有单个独立块的设备中 的数据结构,设备仅有1 个数据块。通过不同的m o d b u s 功能码能得到一个相同 数值。 图2 4 带有独立块的m o d b u s 数据模型 9 求 第二章m o d b u s t c p 机议的研究与实现 图2 5 仅带有一个块的m o d b u s 数据模型 2 1 5 m o d b u s 功能码 如m o d b u sa d u 所示,客户所请求的服务和服务器所提供的服务均通过功 能码( f u n c t i o nc o d e ) 标识。有三种m o d b u s 功能码,即公共功能码、用户自定 义功能码和保留功能码,如图2 6 所示。 1 2 7 1 1 0 1 0 0 7 2 6 5 公共功能码 用户定义功能码 公共功能码 用户定义功能码 公共功能码 图2 - 6l d o d b u s 功能码分类 公共功能码是已定义的功能码,保证其唯一性,包含现存已定义的公共指配 功能码和未来使用的未指配保留功能码。现存已定义的公共指配功能码如下表所 示: 第二章m o d b u s y r c p 协泌的研究与实现 功能代码 代码子代码十六进制 离散输入读输入离散量 0 20 2 按饭访内部位寄存器 读多个线圈 o lo l 刚 或线圈 离散输写单个线圈 0 50 5 写多个线圈 1 5o f 数 输入寄存器 读输入寄存器 0 40 4 据 读多个寄存器 0 30 3 访 按字 写单个寄存器 0 60 6 ( 1 6 位)内部寄存器或输 1 0 问 写多个寄存器 1 6 访问出寄存器 读写多个寄存器 2 31 7 根据掩码写寄存器 2 21 6 读文件记录 2 061 4 访问文件记录 写文件记录 2 l61 5 封装接口读设备标识 4 31 42 b 用户定义功能码有两个定义范围,即6 5 至7 2 和十进制1 0 0 至1 1 0 。用户没 有m o d b u s 组织的任何批准就可以选择和实现一个功能码。如果用户要重新设置 功能作为一个公共功能码,那么用户必须启动r f c ( r e q u e s tf o rc o m m e n t s ,请 求注解,i n t e m e t 标准草案) ,以便将改变引入公共分类中,并且指配一个新的公 共功能码。保留功能码是些公司对传统产品通常使用的功能码,并且对公共使 用是无效的功能码。 2 1 6m o d b u s 异常处理 当客户端向服务器端发送请求时,希望得到正确的应答。服务器端收到请求, 般分为四种情况: 服务器端收到了请求,没有发生通讯错误,经校验无错误,按照正常情况处 理请求,返回应答。 由于通讯故障服务器端没有收到请求,客户端发生超时,进行超时处理。 服务器端收到了请求,但经过校验有错误,不进行任何处理,客户端超时后 自行处理。 服务器端收到了请求,经过校验没有错误,但处理请求时发生错误,返回异 常应答。 异常应答包含两部分: 功能码:为请求功能码加上0 x 8 0 。 数据段:预定义的异常代码。 第二章m o d b u s t c p 协议的研究与实现 2 _ 2 协议实现的总体思想 客户服务器模式:由于m o d b u s f r c p 协议采用客户服务器的通讯模式,因 此协议实现时分为客户端程序和服务器端程序。服务器端程序同一时刻能够 处理来自多个客户端程序的通讯要求。 套接字编程 ”1 1 6 :在w i n d o w s 操作系统上利用v i s u a lc + + 6 0 及w i n s o c k 技 术进行网络编程。w i n s o c k ( w i n d o w s 套接字) 是w i n d o w s 下得到广泛应用 的、开放的、支持多种协议的网络编程接口。它是基于u n i x 上的b e r k e l e y s o f t - w a r ed i s t r i b u t i o n ( b s d ) 版本的套接字,并为w i n d o w s 进行了专门的扩 展。w i n s o c k 的实现一般由两部分组成:开发组件和运行组件。开发组件是 供程序员开发应用程序使用的,它包括w i n s o c k 实现的文档、w i n s o c k 应用 程序接口引入库和一些头文件。运行组件是w i n s o c k 应用程序接口的动态链 接库,文件名为w 1 n s o c k d l l 。应用程序在执行时通过装入它来实现网络 通信功能。目前w i n d o w s 操作系统下的网络通讯软件都是基于w i n s o c k 开发 的。w i n s o c k 是面向客户服务器模型的,客户随时申请一个套接字,系统为 之分配一个套接字号,服务器拥有全局公认的套接字号,任何客户可以向它 发出连接请求及信息请求。w i n s o c k 定义了三类套接字:流式套接字、数据 报套接字和原始套接字。流式套接字采用的是t c 田协议,它提供了双向、 有序、无重复且无记录边界的数据流服务,其特点是通信可靠,对数据有校 验和重发机制,适合大量数据传输。由于m o d b u s t c p 协议在数据层采用t c p 协议,因此在实现时采用流式套接字。 阻塞方式:在网络通讯中,由于网络拥挤或一次发送的数据量过大等原因, 经常会发生交换的数据在短时间内不能传送完,收发数据的函数因此不能返 回,这种现象叫做阻塞。w i n s o e k 对有可能阻塞的函数提供了两种处理方式: 阻塞和非阻塞方式。在阻塞方式( 也称同步方式) 下,收发数据的函数在被 调用后一直要到传送完毕或者出错才能返回。对于非阻塞方式( 也称异步方 式) ,函数被调用后立即返回,当传送完成后w i n s o c k 给程序发一个事先约 定好的消息。在协议的实现过程中采用阻塞套接字,用多线程技术避免函数 阻塞带来的问题。 多线程编程:3 2 位w i n d o w s 环境下的w i n 3 2 a p i 提供了开发多线程应用程序 第二章m o d b u s t c p 协议的研究与实现 的接口函数,并且v c + + 6 0 提供的标准c 也可以开发多线程应用程序,但 是更为经常的是使用m f c 类库进行多线程编程。m f c 执行两种类型的线程, 一种是工作线程,另一种是用户界面线程。这两种类型都使用同一w i n 3 2 a p i 调用机制,而且v c 6 0 的m f c 库提供的c w i n t h r e a d 类是进行多线程编程 的基础。 模块化设计方法:采用面向对象的编程技术,为了加快程序开发速度,应用 了m f c ( 微软基础类库) 中的部分类。服务器程序和客户程序在逻辑上都 基本分为用户界面模块、编解码模块和通讯模块。用户界面模块为了发起通 讯以及通讯结果的显示;编解码模块负责协议数据的分析、组装或分解;通 讯模块负责数据的传输和接收。每个模块都有相应的若干c + 十类组成,方便 了编解码模块和通讯模块的复用。 掷议中涉及的数据类型,例如:离散输入、线圈( 内部位寄存器或离散输出) 、 输入寄存器、内部寄存器或输出寄存器、文件记录。在通讯的演示过程中均 由相应类型的c + + 数组表示。 2 3 协议的具体实现 2 3 1 服务器程序的编写 通常情况下要求服务器端程序同一时刻能够处理来自多个客户端程序的通 讯要求,因此采用多线程并发t c p 服务器。w i n d o w s 的多任务调度技术使得服 务器可以给每个已连接的客户机创建一个线程,独立地处理请求和应答,这样开 发复杂地并发式t c p 服务器程序就变得容易了。一个处理客户机请求的线程在 收到完整的请求前能够一直保持阻塞状态,而不必担心会妨碍对其他客户机请求 的处理。在收到请求后阻塞调用返回,线程接着分析请求,将应答发送回客户机, 并在数据发送上保持阻塞。应答发送完毕后,线程或者继续接收下一个请求或者 关闭连接直接退出。图2 7 给出了多线程并发t c p 服务器和客户机交互的程序 结构。 第二审m o d b u s t t c p 协议的研究与实现 多个客户机服务器 通信线程 分配通信资源 绑定地址和端口 连接指定i p 地址 服务器的知名端 口( 阻塞) 发送请求( 阻塞) 接收应答( 阻塞) 处理线程a守候连接的线程 连接请求和应答 处理线程b 连接请求 j 处理请求 _ _ _ _ _ _ _ _ _ _ _ - 。_ - _ _ _ _ j 1 一 回送响应 分配通信资源 绑定地址和端口 接收连接( 阻塞) 为连接创建独立 的处理线程 图2 7 多线程并发t c p , 服务器和客户机交互的程序结构 本服务器程序可同时连接1 0 个客户,当客户断开连接时,为其创建的线程 将自动终止。 每一个请求的处理过程可以用图2 8 表示。 图2 8 程序中客户请求的处理流程 上- - d 节提到用相应类型的c + + 数组来表示协议中涉及的数据类型,也就是 1 4 第二章m o d b u s t c p 协议的研究与实现 客户j 星序的各种请求被解释为对服务器中各种类型数组的操作。由于服务器同一 时刻要处理来自多个客户端的请求,因此存在多个线程在同一时刻访问同一数组 元素的可能性,为了避免数据访问发生错误,要求线程之间同步。通常的做法是 由主线程完成其他各个线程的调度,但本服务器程序将线程同步的代码放在数组 中,声明一个线程安全的数组模板。这样同一时刻只能有一个线程读写数组中的 数据,主线程不再负责线程的通信与同步,从而显著简化程序代码模块之间的耦 合关系。 2 _ 3 2 服务器程序关键代码 线程安全的数组模板: 声明部分 t e m p l a t e c l a s sc t h r e a d s a f e a r r a y p r i v a t e : tm d a t a n s i z e ; c c r i t i c a l s e c t i o nm _ c r i f i c a l s e c f i o n ;i i l t 缶界区对象,保证线程安全 p u b l i c : i n tr e a d ( t d a t a n s i z e ,i n tn s t a r t ,i n tc o u n t ) ;读数据 i n tw r i t e ( t d a t a n s i z e ,i n tn s t a r t ,i n tc o u n t ) ;写数据 n 实现部分 t e m p l a t e i n tc t h r e a d s a f e a r r a y :r e a d ( t d a t a n s i z e ,i n tn s t a r t ,i n tc o u n t ) m _ c r i t i c a l s e c t i o n l o c k ( ) ; f o r ( i n ti = n s t a r t ;i s e t s o c k o p t ( t c p o d e l a y , p n o d e l a y , 4 ,i p p r o t o j c p ) ; i i p 拿递s o c k e t 句柄 s o c k e t s o c k e t h a n d l e = p s o c k e t 一 m _ h s o c k e t ; a f x b e g i n t h r e a d ( c l i e n t t h r e a d p r o c ,( l p v o i d ) s o c k e t h a n d l e ,t h r e a dp r i o r i t ya b o v en o r m a l ) ; ) 类c c l i e n t s o c k e t 负责对接收到的请求进行校验 客户线程负责处理各种请求。 第二章m o d b u s d t c p 协泌的研究与实现 u i n tc l i e n t t h r e a d p r o c ( l p v o i dl p p a r a m ) ,接收句柄并生成c c l i e n t s o c k e t s o c k e t s o c k e t h a n d l e = ( s o c k e t ) l p p a r a m ; c c l i e n t s o c k e t + p s o c k e t = n e wc c l i e n t s o c k e t ; p s o c k e t 一 a t t a c h ( s o c k e t h a n d l e ) ; w h i l e ( 1 1 无限循环 r e t u r n v a l u e = p s o c k e t 一 r e c e i v e ( r e c e i v e b u f , 2 5 6 ) ; i f ( r e t u m v a l u e - 一- o ) 客户已退出,关闭本地s o c k e t 结束线程 p p a r e n t - c l o s e s o c k e t ( p s o c k e t ) ; r e t u r n0 ; ) 处理请求 2 3 3 客户程序的编写 m o d b u s t c p 协议使得客户端的设计很简单,图2 9 就展示了客户是如何 发送m o d b u s 请求,如何处理m o d b u s t c p 服务器返回的回应信息的。 1 7 第二章m o d b u s t c p 协议的研究j 实现 图2 - - 9m o d b u s t c p 客户端处理流程 m o d b u s 客户端可以接收三种类型的事件: 用户发出的创建新请求的命令。 t c p i p 协议栈发出的回应信息。 服务器的应答。 2 4 遵循m o d b u s t c p 应用层协议的客户程序和服务器程序的通讯实验 服务器的i p 地址为1 9 2 1 6 8 0 4 0 ,客户机的地址为1 9 2 1 6 8 0 6 。客户机向 服务器发送读多个线圈的请求,收到服务器的应答后显示。与此同时,服务器程 序所在的计算机上运行网络数据包检测程序c i p a l y z e 3 0 ( 它是由施耐德官方网 站提供的检测程序,能够检测出多种协议的数据包,其中包括m o d b u s 厂r c p ) , 以检测协议实现的正确性。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 核物探工班组考核强化考核试卷含答案
- 油气管道保护工改进知识考核试卷含答案
- 工艺品雕刻工达标能力考核试卷含答案
- 热带作物初制工安全培训知识考核试卷含答案
- 司磅工创新意识水平考核试卷含答案
- 石英玻璃冷加工工岗前保密意识考核试卷含答案
- 果树栽培工岗前认证考核试卷含答案
- 混合集成电路装调工岗前安全知识考核试卷含答案
- 黄酒发酵工安全技能强化考核试卷含答案
- 木地板成型工诚信品质模拟考核试卷含答案
- 2026年秋浙美版新教材小学美术五年级上册教学计划及进度表
- 高一数学 开学第一课 课件-2026-2027学年高一上学期数学人教A版必修第一册
- 2026年安徽矾花源景区运营管理有限公司(筹) 招聘14人考试备考题库及答案详解
- 新版部编人教版六年级上册道德与法治(课件)第1课 法律是什么
- 《代谢性疾病》课件
- 面瘫的中西医护理讲课
- 部编版九年级语文上册教科书(课本全册)课后习题参考答案
- 《团队协作与沟通技巧》课件
- 粮食买卖合同范本
- 眼镜片材料的选择-眼镜片材料
- 《户外运动安全知识》课件
评论
0/150
提交评论