Modbus RTU ASCII
二、两种传输方式
控制器能设置为两种传输模式(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相关推荐
- 如何利用CommMonitor串口监控,抓取串口Modbus RTU数据包
今天来分享一下,如何抓取串口Modbus RTU数据包. 首先,下载CommMonitor的最新版v12.0,才支持Modbus RTU/ASCII协议分析功能, 同ModbusMonitor RTU ...
- modbus协议和串口服务器,Modbus RTU通信模式与Modbus ASCII通信模式的异同点
Modbus基于串行通信存在两种模式:Modbus RTU与Modbus ASCII模式,不管是RTU模式还是ASCII模式,Modbus信息都以帧的方式传输,每个信息帧有确定的起始点和结束点,使接收 ...
- modbus rtu 调试软件_一文最全解读Modbus 的RTU、ASCII、TCP
导 读 ( 小库 ) 多年来没少调试施耐德PLC,因此Modbus-RTU.Modbus-TCP等协议都经常接触,但一直都没有认真总结一下,借这篇文章总结一下. 01 术语解读 1 word =2 b ...
- 详细解读Modbus RTU、Modbus ASCII、Modbus TCP的区别
Modbus 是Modicon公司于1979年开发的串行通信协议.它最初设计用于公司的可编程逻辑控制器(PLC). Modbus是一种开放式协议,支持使用RS232/RS485/RS422协议的串行设 ...
- Modbus RTU 通信工具设计
Modbus 是一个工业上常用的通讯协议.一种通讯约定. ModBus 协议是应用层报文传输协议(OSI 模型第7层),它定义了一个与通信层无关的协议数据单元(PDU),即PDU=功能码+数据域. M ...
- Modbus协议栈实现Modbus RTU多主站支持
前面我们已经详细讲解过Modbus协议栈的开发过程,并且利用协议栈封装了Modbus RTU主站和从站,Modbus TCP服务器与客户端,Modbus ASCII主站与从站应用.但在使用过程中,我们 ...
- 单片机modbus rtu通讯_【原创】永宏PLC系列RS485通讯方式
实现的功能,及应用的场合 本项目为弯管机设备改造工程,在不破坏设备原有的功能的情况下通过只更换设备原来的永宏PLC,使弯管机能够与埃斯顿机器人进行信号交互,通过机器人对弯管机进行上料.下料动作,即节约 ...
- 一文看懂Modbus, Rtu, Rs485等名词的联系
Modbus rtu和Modbus tcp两个协议的本质都是MODBUS协议,都是靠MODBUS寄存器地址来交换数据:但所用的硬件接口不一样,Modbus RTU一般采用串口RS232C或RS485/ ...
- 【逗老师带你学IT】PRTG监控通过Python+Modbus RTU获取温湿度传感器数据
前文[逗老师带你学IT]PRTG监控通过Python+TCP Modbus获取温湿度传感器数据中我们讲了如何通过Python读取支持TCP Modbus的传感器数据.本章我们讲解下如何读取Modbus ...
最新文章
- Android 生成keystore,两种方式(转载)
- mysql1045_win10系统登录mysql时报错1045的解决方案
- java参数传入泛型类型_Java 5.0 泛型之 使用泛型统一传入的参数类型
- 使用外置tomcat部署spring boot程序需添加servlet-api
- Unity3D4.* NGUI制作动态字库
- Pycharm使用之设置代码字体大小和颜色主题
- qml 信号槽第二次才响应_QML中各种代理的用法
- day19-URL+视图+模板+ORM
- java 可重入锁 clh_Java并发编程系列-(4) 显式锁与AQS
- Rejected request from RFC1918 IP to public server address
- C语言—黑客数字雨特效
- 东北大学数理统计 2019-2020 年试题答案
- syslinux制作U盘启动器
- MATLAB一元微积分实验
- MyEclipse2015破解安装与使用
- C语言笔记 隐藏光标函数 带注释(详细)
- Java原始数据类型
- MBR分区和GPT分区(系统安装注意)简介及互相转换的方法
- ProxmoxVE 6.4-13(PVE) 开启SR-IOV INTEL I350-T4 手把手教程
- 深入剖析智能仓储管理(WMS)应用价值与应用场景
热门文章
- 详解Java算法之冒泡排序(Bubble Sorting)
- 【每日一练】146—一个漂亮的旅游网站模板
- 2018VR行业前瞻:“新科技 新商业·2017全球虚拟现实产业创新者峰会”正式举办...
- 《游戏大师Chris Crawford谈互动叙事》一22.4 本章小结
- python机器学习相关的操作 numpy,GridSearchCV(网格搜索)等
- Tekla-InpEditor inp文件编辑器
- C51单片机实现双机通讯
- 一般计算机电源都在多少压力,PC组装问题。 HD6770的一般功耗是多少?
- pub格式的文件打开报错:Publisher无法打开文件 解决办法
- 新乡学院计算机类能考教师吗,2021年这5类人不能考教师!当老师没希望了?