您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 国内外标准规范 > 计算机集散控制modbus课程报告
电子与通信工程陈一鸣计算机集散控制基于单片机的MODBUS协议实现学生姓名:陈一鸣学生学号:12015130484指导教师:刘大铭专业名称:电子与通信工程所在学院:物理电气信息学院论文完成日期:2016年3月电子与通信工程陈一鸣计算机集散控制目录第1章目的和要求.....................................................................................................1第2章总体设计........................................................................................................12.1MODBUS协议概述..........................................................................................12.2MODBUS数据单元..........................................................................................22.3MODBUS通信原理..........................................................................................22.4ASCII模式....................................................................................................32.5ASCII帧.......................................................................................................32.6地址域与数据域...........................................................................................42.7字符的连续传输...........................................................................................42.8错误检测方法...............................................................................................52.8.1奇偶校验.............................................................................................52.8.2LRC检测..............................................................................................52.8.3CRC检测..............................................................................................5第3章硬件设计及测试结果......................................................................................6第4章MODBUS协议的软件实现.................................................................................84.1系统程序流程软件设计................................................................................84.2源代码..........................................................................................................8结论与心得.................................................................................................................17电子与通信工程陈一鸣计算机集散控制1第1章目的和要求现场总线(Fieldbus)是近年来迅速发展起来的一种工业数据总线,它主要解决工业现场的智能化仪器仪表、控制器、执行机构等现场设备间的数字通信以及这些现场控制设备和高级控制系统之间的信息传递问题。现场总线具有简单、可靠、经济实用等一系列突出的优点,因而受到了许多标准团体和计算机厂商的高度重视。课题要求是利用单片来实现MODBUS协议,主要以三个4851单片机作为接受方,即slave.c。用keil软件实现代码,形成HEX文件,导入protues仿真图中。用protus实现布线。然后用串口助手,调试串口编号,设置相应的波特率,通过串口助手与protus相连,在串口助手上输入相应指令,接收的单片机在仿真图上有相应的接收到的指令显示。仿真应用的异步串口RS232,RS232与串口助手相连。第2章总体设计2.1MODBUS协议概述MODBUS协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。当在一MODBUS网络上通信时,此协议决定了每个控制器需要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用MODBUS协议发出。在其它网络上,包含了MODBUS协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。MODBUS协议包括ASCII、RTU、TCP等协议,标准的MODBUS采集器使用RS232实现串行通讯。MODBUS的ASCII、RTU协议规定了消息、命令和应答的方式,数据通讯采用Master/Slave方式,Master端发出数据请求消息,Slave端接收到正确消息后就可以发送数据到Master端以响应请求,Master端也可以直接发信息修改Slave端的数据,实现双向读写。MODBUS协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCII模式主要采用LRC校验,RTU模式主要采用16位CRC校验。MODBUS是OSI模型第7层上的应用层报文传输协议,它在连接不同类型网络的设备之间提供数据电子与通信工程陈一鸣计算机集散控制2的通信,如图2-1所示。主/从其他物理层物理层MODBUS+/HDLCMODBUS应用层EIA/TIA-232或EIA/TIA-485MODBUSTCPTCPIPEtherII/802.3Ethernet物理层图2-1MODBUS通信线路目前,可以通过下列三种方式实现MODBUS通信。(1)以太网上的TCP/IP。(2)各种介质上的异步串行传输。(3)MODBUSPLUS,一种高速令牌传递网络。2.2MODBUS数据单元MODBUS协议定义了一个与基础层无关的简单协议数据单元(ProtocolDataUnit,PDU),特定总线或网络上的MODBUS协议映射能够在应用数据单元(AdditionalDataUnit,ADU)上引入一些附加域,通用MODBUS帧如图2-2所示。启动MODBUS事务处理的客户机创建MODBUSPDU,其中的功能码向服务器指示将执行哪种操作,功能码后面是含有请求和响应参数的数据域。附加地址功能码数据差错检验ADUPDU图2-2通用MODBUS帧2.3MODBUS通信原理电子与通信工程陈一鸣计算机集散控制3MODBUS是一种简单的仿“客户机/服务器”型应用协议,其实质就是主/从模式,不过主机是客户机,从机是服务器。其通信遵循以下的过程:(1)客户端准备请求并向服务器发送请求;(2)服务器分析并处理客服端的请求,然后向客户端发送结果;(3)如果出现任何差错,服务器将返回一个异常功能码。在无差错和异常响应下的通信过程分别如图2-3和2-4所示。客户机请求启动服务器执行操作启动相应客户机接收响应发送数据返回数据图2-3MODBUS事务处理(无差错)客户机请求启动服务器检测差错并执行操作客户机接收异常码发送数据返回异常码图2-4MODBUS事务处理(异常响应)2.4ASCII模式当控制器设为在MODBUS网络上以ASCII(美国标准信息交换代码)模式通信,在消息中的每个8Bit字节都作为一个ASCII码(两个十六进制字符)发送。这种方式的主要优点是字符发送的时间间隔可达到1秒而不产生错误。代码系统采取十六进制,ASCII字符0…9,A…F,消息中的每个ASCII字符都是一个十六进制字符组成每个字节的,1个起始位,7个数据位,最小的有效位先发送,1个奇偶校验位,无校验则无停止位(有校验时),2个Bit(无校验时)错误检测域,LRC(纵向冗长检测)。2.5ASCII帧使用ASCII模式,消息以冒号(:)字符(ASCII码3AH)开始,以回车换行符结束(ASCII码0DH,0AH)。其它域可以使用的传输字符是十六电子与通信工程陈一鸣计算机集散控制4进制的0...9,A...F。网络上的设备不断侦测“:”字符,当有一个冒号接收到时,每个设备都解码下个域(地址域)来判断是否发给自己的。消息中字符间发送的时间间隔最长不能超过1秒,否则接收的设备将认为传输错误。其优点是:传输的都是可见的ASCII字符,进行调试时比较直观,LRC校验也比较容易,一个典型ASCII消息帧如表2-1所示。表2-1ASCII消息帧起始位设备地址功能代码数据LRC校验结束符1字符2字符2字符n字符2字符2字符2.6地址域与数据域消息帧的地址域包含两个字符(ASCII)或8Bit(RTU)。可能的从设备地址是0…247(十进制)。单个设备的地址范围是1…247。主设备通过将要联络的从设备的地址放入消息中的地址域来选通从设备。当从设备发送回应消息时,它把自己的地址放入回应的地址域中,以便主设备知道是哪一个设备作出回应。地址0是用作广播地址,以使所有的从设备都能认识。当MODBUS协议用于更高水准的网络,广播可能不允许或以其它方式代替。数据域是由两个十六进制数集合构成的,范围00…FF。根据网络传输模式,这可以是由一对ASCII字符组成或由一RTU字符组成。从主设备发给从设备消息的数据域包含附加的信息:从设备必须用于进行执行由功能代码所定义的所为。这包括了象不连续的寄存器地址,要处理项的数目,域中实际数据字节数。如果主设备写一组从设备的寄存器(功能代码10十六进制),数据域则指明了要写的起始寄存器以及要写的寄存器数量,数据域的数据字节数,要写入寄存器的数据。如果没有错误发生,从设备返回的数据域包含请求的数据。如果有错误发生,此域包含一异议代码,主设备应用程序可以用来判断采取下一步行动。2.7字符的连续传输当消息在标准的MODBUS系列网络传输时,每个字符或字节以如下方式发送(从左到右):最低有效位…最高有效位。1.使用ASCII字符帧时,位的序列是:(1)有奇偶校验位:起始位123456
本文标题:计算机集散控制modbus课程报告
链接地址:https://www.777doc.com/doc-2045749 .html