二、两种传输方式
 控制器能设置为两种传输模式(ASCII或RTU)中的任何一种在标准的Modbus网络通信。用户选择想要的模式,包括串口通信参数(波特率、校验方式等),在配置每个控制器的时候,在一个Modbus网络上的所有设备都必须选择相同的传输模式和串口参数。
ASCII模式
: 地址 功能代码 数据数量 数据1 ... 数据n LRC高字节 LRC低字节 回车 换行
RTU模式
地址 功能代码 数据数量 数据1 ... 数据n CRC低字节 CRC高字节
 所选的ASCII或RTU方式仅适用于标准的Modbus网络,它定义了在这些网络上连续传输的消息段的每一位,以及决定怎样将信息打包成消息域和如何解码。
 在其它网络上(象MAP和Modbus Plus)Modbus消息被转成与串行传输无关的帧。
1、ASCII模式
 当控制器设为在Modbus网络上以ASCII(美国标准信息交换代码)模式通信,在消息中的每个8Bit字节都作为两个ASCII字符发送。这种方式的主要优点是字符发送的时间间隔可达到1秒而不产生错误。
 代码系统
• 十六进制,ASCII字符0...9,A...F
• 消息中的每个ASCII字符都是一个十六进制字符组成
每个字节的位
• 1个起始位
• 7个数据位,最小的有效位先发送
• 1个奇偶校验位,无校验则无
• 1个停止位(有校验时),2个Bit(无校验时)
 错误检测域
• LRC(纵向冗长检测)
2、RTU模式
 当控制器设为在Modbus网络上以RTU(远程终端单元)模式通信,在消息中的每个8Bit字节包含两个4Bit的十六进制字符。这种方式的主要优点是:在同样的波特率下,可比ASCII方式传送更多的数据。
代码系统
• 8位二进制,十六进制数0...9,A...F
• 消息中的每个8位域都是一个两个十六进制字符组成
• 每个字节的位
• 1个起始位
• 8个数据位,最小的有效位先发送
• 1个奇偶校验位,无校验则无
• 1个停止位(有校验时),2个Bit(无校验时)
错误检测域
• CRC(循环冗长检测)

下表是MODBUS ASCII协议和RTU协议的比较:

协议 开始标记 结束标记 校验 传输效率 程序处理
ASCII :(冒号) CR,LF LRC 直观,简单,易调试
RTU CRC 稍复杂

  从上表的比较我们可以看到,MODBUS的ASCII协议和RTU协议相比,MODBUS ASCII协议拥有开始和结束标记,而MODBUS RTU却没有,所以ASCII协议的程序中对数据包的处理能更加方便。MODBUS ASCII协议的DATA域传输的都是可见的ASCII字符,因此在调试阶段就显得更加直观,另外它的LRC校验程序也比较容易编写,这些都是MODBUS ASCII的优点。MODBUS ASCII的主要缺点是传输效率低,因为它传输的都是可见的ASCII字符,原来用RTU传输的数据每一个字节,用ASCII的话都要把这个字节拆分两个字节,比如RTU传输一个十六进制数0xF9,ASCII就需要传输字符'F'和字符'9',对应的ASCII码0x46和0x39两个字节,这样它的传输的效率肯定就比RTU低。所以一般来说,如果所需要传输的数据量较小可以考虑使用ASCII协议,如果所需传输的数据量比较大,最好能使用RTU协议。

  另外,由于ASCII协议有开始标志和结束标志,所以一个数据包之间的各字节间的传输间隔时间可以大于1秒,而MODBUS RTU方式下,由于没有规定开始和结束标记,所以协议规定每两个字节之间发送或者接收的时间间隔不能超过3.5倍字符传输时间。如果两个字符时间间隔超过了3.5倍的字符传输时间,就认为一帧数据已经接收,新的一帧数据传输开始,所以RTU方式下两个字节间传输间隔有时间要求。MODBUS 的ASCII和RTU两种协议的这一区别可能决定某些应用场合只能选用其中一种协议。

Modbus RTU ASCII相关推荐

  1. 如何利用CommMonitor串口监控,抓取串口Modbus RTU数据包

    今天来分享一下,如何抓取串口Modbus RTU数据包. 首先,下载CommMonitor的最新版v12.0,才支持Modbus RTU/ASCII协议分析功能, 同ModbusMonitor RTU ...

  2. modbus协议和串口服务器,Modbus RTU通信模式与Modbus ASCII通信模式的异同点

    Modbus基于串行通信存在两种模式:Modbus RTU与Modbus ASCII模式,不管是RTU模式还是ASCII模式,Modbus信息都以帧的方式传输,每个信息帧有确定的起始点和结束点,使接收 ...

  3. modbus rtu 调试软件_一文最全解读Modbus 的RTU、ASCII、TCP

    导 读 ( 小库 ) 多年来没少调试施耐德PLC,因此Modbus-RTU.Modbus-TCP等协议都经常接触,但一直都没有认真总结一下,借这篇文章总结一下. 01 术语解读 1 word =2 b ...

  4. 详细解读Modbus RTU、Modbus ASCII、Modbus TCP的区别

    Modbus 是Modicon公司于1979年开发的串行通信协议.它最初设计用于公司的可编程逻辑控制器(PLC). Modbus是一种开放式协议,支持使用RS232/RS485/RS422协议的串行设 ...

  5. Modbus RTU 通信工具设计

    Modbus 是一个工业上常用的通讯协议.一种通讯约定. ModBus 协议是应用层报文传输协议(OSI 模型第7层),它定义了一个与通信层无关的协议数据单元(PDU),即PDU=功能码+数据域. M ...

  6. Modbus协议栈实现Modbus RTU多主站支持

    前面我们已经详细讲解过Modbus协议栈的开发过程,并且利用协议栈封装了Modbus RTU主站和从站,Modbus TCP服务器与客户端,Modbus ASCII主站与从站应用.但在使用过程中,我们 ...

  7. 单片机modbus rtu通讯_【原创】永宏PLC系列RS485通讯方式

    实现的功能,及应用的场合 本项目为弯管机设备改造工程,在不破坏设备原有的功能的情况下通过只更换设备原来的永宏PLC,使弯管机能够与埃斯顿机器人进行信号交互,通过机器人对弯管机进行上料.下料动作,即节约 ...

  8. 一文看懂Modbus, Rtu, Rs485等名词的联系

    Modbus rtu和Modbus tcp两个协议的本质都是MODBUS协议,都是靠MODBUS寄存器地址来交换数据:但所用的硬件接口不一样,Modbus RTU一般采用串口RS232C或RS485/ ...

  9. 【逗老师带你学IT】PRTG监控通过Python+Modbus RTU获取温湿度传感器数据

    前文[逗老师带你学IT]PRTG监控通过Python+TCP Modbus获取温湿度传感器数据中我们讲了如何通过Python读取支持TCP Modbus的传感器数据.本章我们讲解下如何读取Modbus ...

最新文章

  1. Android 生成keystore,两种方式(转载)
  2. mysql1045_win10系统登录mysql时报错1045的解决方案
  3. java参数传入泛型类型_Java 5.0 泛型之 使用泛型统一传入的参数类型
  4. 使用外置tomcat部署spring boot程序需添加servlet-api
  5. Unity3D4.* NGUI制作动态字库
  6. Pycharm使用之设置代码字体大小和颜色主题
  7. qml 信号槽第二次才响应_QML中各种代理的用法
  8. day19-URL+视图+模板+ORM
  9. java 可重入锁 clh_Java并发编程系列-(4) 显式锁与AQS
  10. Rejected request from RFC1918 IP to public server address
  11. C语言—黑客数字雨特效
  12. 东北大学数理统计 2019-2020 年试题答案
  13. syslinux制作U盘启动器
  14. MATLAB一元微积分实验
  15. MyEclipse2015破解安装与使用
  16. C语言笔记 隐藏光标函数 带注释(详细)
  17. Java原始数据类型
  18. MBR分区和GPT分区(系统安装注意)简介及互相转换的方法
  19. ProxmoxVE 6.4-13(PVE) 开启SR-IOV INTEL I350-T4 手把手教程
  20. 深入剖析智能仓储管理(WMS)应用价值与应用场景

热门文章

  1. 详解Java算法之冒泡排序(Bubble Sorting)
  2. 【每日一练】146—一个漂亮的旅游网站模板
  3. 2018VR行业前瞻:“新科技 新商业·2017全球虚拟现实产业创新者峰会”正式举办...
  4. 《游戏大师Chris Crawford谈互动叙事》一22.4 本章小结
  5. python机器学习相关的操作 numpy,GridSearchCV(网格搜索)等
  6. Tekla-InpEditor inp文件编辑器
  7. C51单片机实现双机通讯
  8. 一般计算机电源都在多少压力,PC组装问题。 HD6770的一般功耗是多少?
  9. pub格式的文件打开报错:Publisher无法打开文件 解决办法
  10. 新乡学院计算机类能考教师吗,2021年这5类人不能考教师!当老师没希望了?