版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、工业控制网络(15)哈工大网络与电气智能化研究所刘勇2013(春)四、Modbus协议 Modbus是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的,目前施耐德公司已将Modbus协议的所有权移交给IDA(Interface for Distributed Automation ,分布式自动化接口)组织,并成立了Modbus-IDA。在 我 国 , M o d b u s 已 经 成 为 国 家 标 准GB/T19582-2008。Modbus的优点:(1)标准、开放,用户可以免费、放心地使用Modbus协议,不需要交纳许可证费,也不会侵犯知识产权。(2)由于Modbus是
2、面向报文的协议,因此它可以支持多种电气接口,如RS232、RS485等,还可以在各种介质上传送,如双绞线、光纤、无线射频等。(3)Modbus的帧格式简单、紧凑,通俗易懂。用户使用容易,厂商开发简单。1、Modbus协议描述 Modbus是OSI模型第7层上的应用层报文传输协议,它在连接至不同类型的总线或网络的设备之间提供客户机/服务器通信。Modbus定义了一个与基础通信层无关的简单协议数据单元(PDU)。在特定总线或网络上,通过在其基础上引入一些附加域,使其成为相应的应用数据单元(ADU)。互联网用户能够使用TCP/IP栈上的保留端口502访问Modbus。 Modbus网络体系结构实例
3、通用Modbus帧介绍基于UART的串行通信时提到的帧的概念在Modbus中对应于字符,或者可以称之为子帧,应与Modbus中的帧区分开来。Modbus的PDU最大长度为253字节,是因为其最初是在串行链路上实现的,受RS485的ADU最大256字节(1字节服务器地址+253字节PDU+2字节差错校验码)限制。Modbus PDU的功能码域用一个字节编码。有效的值是1255。服务器对客户机响应时,若是正常响应,服务器仅复制原始功能码。对于异常响应,服务器将原始功能码的最高有效位设置逻辑1后返回。客户机发往服务器的数据域包括离散量和寄存器地址、处理的项目数量以及域中的实际数据字节数等。服务器使用
4、这些信息执行功能码定义的操作,并将请求的结果返回给客户机。TCP Modbus ADU=253字节+MBAP(7字节)=260字节。(MBAP:Modbus应用协议报文头。)Modbus定义了3种PDU: Modbus请求PDU; Modbus响应PDU; Modbus异常响应PDU。2、数据编码与数据模型 (1)数据编码Modbus使用“大端模式”(Big-Endian)。例如:寄存器大小为16位,寄存器值为0 x1234,发送的第一个字节为0 x12,然后发送0 x34。(2)数据模型 基本表 对象类型 访问类型 注释 离散量输入 单个位 只读 I/O系统可提供这种类型数据 线圈 单个位
5、读写 通过应用程序可改变这种数据类型 输入寄存器 16位字 只读 I/O系统可提供这种类型数据 保持寄存器 16位字 读写 通过应用程序可改变这种数据类型 对于每个基本表,协议允许单个地操作编号为065535的任意一个数据项,而这些数据项的读写操作可以扩展到多个连续数据项直到达到最大数量限制,具体数量限制与功能码有关。操作连续数据项的数量限制的原因是Modbus PDU最大为253字节。Modbus处理的所有数据(位、寄存器)都放置在设备应用存储器中。存储器的物理地址与数据编号不能混淆,具体应用中只需要将数据编号与物理地址链接。Modbus功能码中使用的逻辑编号是以0开始的无符号整数索引。带有
6、独立块的Modbus数据模型仅带有1个块的Modbus数据模型3、寻址模型4、功能码分类与描述三类功能码:(1) 公共功能码。由Modbus-IDA确认。 (2)用户定义的功能码。在十进制6572和100110区域。(3)保留功能码。某些公司在传统产品上现行使用的功能码。5、异常响应 客户机的询问可能导致下列四种事件之一:(1)服务器设备接收到无通信错误的请求,并且可以正常地处理询问,那么服务器设备将返回一个正常的响应。(2)由于通信错误,服务器没有接收到请求,那么不能返回响应。客户机程序将视之为超时。(3)服务器接收到请求,但是检测到一个通信错误(奇偶校验、LRC、CRC等),那么不能返回响
7、应。客户机程序将视之为超时。(4)服务器接收到无通信错误的请求,但不能处理这个请求(例如,请求读一个不存在的寄存器),服务器将返回一个异常响应,通知客户机错误的实际情况。Modbus异常码6、数据链路层 Modbus串行链路协议是一个主从协议,位于OSI模型的第2层数据链路层。在同一时间内,只能将一个主站连接到总线,将至多247个从站连接到相同串行总线,从站地址必须唯一 。从站没有收到来自主站的请求时,将不会发送数据,从站之间不能相互通信。地址0被保留用来识别广播通信。从站对于主站的广播请求没有应答返回。广播请求必须是写命令。Modbus协议与ISO/OSI网络模型 (1) RTU(远程终端单
8、元)传输模式 报文中每个8位字节含有两个4位十六进制字符。起始 12345678校验 停止 RTU模式中的位序列RTU模式中:起始位、校验位、停止位各1位,偶校验,当采用无校验时要求2个停止位。Modbus RTU报文帧中帧间字符间隔和帧内字符间隔必须分别遵守大于等于3.5个字符时间和小于等于1.5个字符时间的规定。 起始 地址 功能码 数据 CRC校验 结束 3.5字符 8位 8位 N8位 16位 3.5字符 RTU模式报文帧格式CRC域作为报文的最后域附加到报文上。首先附加CRC域的低位字节, 然后附加CRC域的高位字节。 (2) ASCII(美国信息交换标准代码)传输模式 用两个ACSI
9、I字符发送报文中的一个8位字节。 ASCII模式中:起始位、校验位、停止位各1位,偶校验,当采用无校验时要求2个停止位。起始 1234567校验 停止 ASCII模式中的位序列 在ASCII模式中,一个报文必须以一个“冒号”(:)字符(ASCII码3A)起始,以“回车换行”(CRLF)(ASCII码 0D、0A)结束。字符间隔应小于1秒。 纵向冗余校验(LRC)是1个字节,包含8位二进制值,但其结果被编码为两个字节的ASCII码。 起始位 设备地址 功能代码 数据 LRC校验 结束位 1个字符 2个字符 2个字符 02252个字符 2个字符 2个字符CR、LF ASCII模式报文帧格式 在Mo
10、dbus串行链路上,所有设备的传输模式(及串行口参数)必须相同。在Modbus串行链路设备实现等级的基本等级中只要求实现RTU模式,常规等级要求实现RTU模式和ASCII模式。默认设置必须为RTU模式。RTU模式的主要优点是在相同的波特率下其较高的字符密度具有比ASCII模式更高的吞吐率。目前主流的微控制器都带有UART模块,支持10位和11位模式,支持奇偶校验方式选择,一般数据位发送顺序也是先最低有效位后最高有效位,可以方便地实现RTU模式和ASCII模式。通用的RS485两线制拓扑结构7、物理层 (1)电气接口通用的RS485四线制拓扑结构 短距离点到点通信时,电气接口还可使用RS232。
11、(2)数据信号传输速率要求实现9600bps和19200bps,其中19200bps是默认值。还可以选择实现:1200bps、2400bps、4800bps、38400bps、56000bps等。(3)线路终端和极性偏置终端电阻可以是150(0.5W)电阻或120(0.25W)电阻与1nF电容(最低10V)的串联。偏置电阻的阻值应在450650之间。四线制RJ45和D型连接器信号线分布(4)机械接口二线制RJ45和D型连接器信号线分布(5)线缆及长度必须使用屏蔽电缆,屏蔽层接保护地。常用的AWG24电缆。对于最高波特率9600bps,AWG26(或更粗)的电缆来说,其最大长度为1000m。8、
12、Modbus关键技术分析 (1)Modbus RTU帧的帧内和帧间字符间隔设定多数微控制器只能检测一个字符的停止位,而无法检测到字符的起始位。这样实际检测到的相邻两个字符之间的时间间隔等于Modbus协议规定的相邻两个字符之间的时间间隔加上传输一个字符需要的时间。实际应用中,若检测到相邻两个字符之间的时间间隔小于等于2.5个字符时间,则认为传输的数据帧是连续的;若检测到相邻两个字符之间的时间间隔大于等于4.5个字符时间,则认为前一帧结束,下一帧开始。常使用一个定时器,定时时间为0.5个字符时间,并设定一个计数器变量为TCOUNT,开始时清零。在中断处理程序中对TCOUNT做加1运算,并判断是否
13、累加到5或9。等于5时,将1.5个字符时间已到标志位T3FLAG置成0 x01,继续计数并判断TCOUNT是否等于9。当等于9时,将3.5个字符时间已到标志位T7FLAG置成0 x01,TCOUNT清零。串口接收中断处理流程图实现RTU接收的驱动程序会隐含着对t1.5和t3.5定时器的大量中断的管理。在较高的通信波特率下,这将导致CPU负担加重。当波特率等于或低于19200bps时,必须严格地遵守这两个定时;波特率大于19200bps的情况下,两个定时器应该使用固定值:建议字符间隔超时时间(t1.5)为750s,帧间的超时时间(t3.5)为1.750ms。(2) Modbus CRC校验码的生成每个字符中只有8个数据位参与生成CRC的计算,起始位、停止位和校验位不参与CRC计算。生成一个CRC的过程:(a)将0 xFFFF(全1)装入一个16位寄存器。将这个寄存器称作CRC寄存器。(b)将报文的第一个8位字节与16位CRC寄存器的低字节异或,将结果放置在CRC寄存器中。 (c)将CRC寄存器右移1位(向LSB方向),MSB填充零。提取并检测LSB。(d)如果LSB为0:重复步骤(c)(进行另一次移位)。如果LSB为1:将CRC寄存器与多项式值0 xA001(1010 0000 0000 0001)异或。(e)重复步骤(c)和(d),直到完成8次移位。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业间融资借款合同范本
- 酒店物资采购销售合同
- 土工材料订购协议模板在线
- 政府单位采购合同中的保密条款
- 快餐配送协议样式
- 瓦工班组分包劳务规定
- 永州市房产买卖协议范例
- 建筑拆除合同样本
- 空调故障及时告知
- 木材供应订购协议
- 《全国较大事故案例》课件
- 2024-2025学年上学期天津初中地理七年级期末模拟卷1
- 病理学知到智慧树章节测试课后答案2024年秋温州医科大学
- 2023年湖北交投智能检测股份有限公司社会招聘笔试真题
- 2024企业所得税培训
- 国开汽车学院《项目管理》形考作业1-4答案
- 歌唱语音智慧树知到期末考试答案章节答案2024年齐鲁师范学院
- 健康膳食解码智慧树知到期末考试答案章节答案2024年佳木斯大学
- 《中国心力衰竭诊断和治疗指南2024》解读
- 2023年肝糖原的提取鉴定与定量实验报告
- 年产10吨功能益生菌冻干粉的工厂设计改
评论
0/150
提交评论