IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> Modbus_RTU理解笔记 -> 正文阅读

[嵌入式]Modbus_RTU理解笔记

基础信息

1.物理层信息

1.硬件支持:RS485/RS232/RS422
2.字符通信格式:11位(起始位1,数据位8,校验位1,停止位1/2)
3.一个字符11位
4.一帧数据不超过255个字节
5.字节为16进制
6.校验方法:CRC(查表法/计算法)

2.通讯协议数据格式

1.起始符
≥3.5个字符时间(根据硬件通信速率):计算方式3.511位=38.5位,例波特率为9600,1000ms/960038.5≈4ms
2.地址码
8位
3.功能码
8位
4.数据区
N*8位 (N个字节)
5.校验码
16位
6.结束符
≥3.5个字符时间

3.寄存器种类及对应功能码说明

寄存器种类 说明 实际应用 支持功能码
线圈状态: 数字量输出/内部读写位变量---------------->继电器电磁阀控制 01读05写15写单个或多个
离散输入状态:数字量输入/内部只读位变量---------------->按键开关检测 02读
保持寄存器: 内部读写寄存器-------------------------------->模拟量输出设置 03读06写16写单个或多个23同时读写单个或多个
输入寄存器: 内部只读寄存器-------------------------------->模拟量输入采集 04读

03功能码报文格式详解(单路读读写寄存器操作)

例:
----------主站发送------------------(字节高前低后,CRC相反)
从站地址 功能码 寄存器地址 寄存器数量 CRC校验
09 03 00 04(第五路)00 02 84 82
----------从站正确返回------------
从站地址 功能码 字节计数 第一路寄存器数据 第二路寄存器数据 CRC校验
09 03 00 04 00 01 00 12 A3 FB
----------从站异常返回------------
从站地址 功能码 错误代码 CRC校验
09 83(功能码最高位置1) 02(寄存器数量超限) 41 33
----------总结------------------------
总结:主站通过03功能码可发送需要读取的从站ID,读取其相应数量的寄存器地址,从站收到后返回主站需要读取的寄存器内容已确认读取操作成功

具体描述

06功能码报文格式详解(单路写读写寄存器操作)

例:
----------主站发送------------------
从站地址 功能码 寄存器地址 寄存器数据 CRC校验
07 06 00 04 13 88 C5 38
----------从站正确返回------------
从站地址 功能码 字节计数 寄存器数据 CRC校验
07 06 00 04 13 88 C5 38
----------从站异常返回------------
从站地址 功能码 错误代码 CRC校验
07 86(功能码最高位置1) 02(寄存器数量超限) A0
----------总结------------------------
总结:主站通过06功能码可发送需要修改的从站ID,修改其寄存器地址的寄存器数据,从站收到后返回主站修改的数据已确认修改写入操作成功

16功能码报文格式详解(写单个或多个读写寄存器操作)

例:
----------主站发送------------------
从站地址 功能码 寄存器地址 写寄存器数量 字节计数 第一路寄存器数据…第n路寄存器数据 CRC校验
0D 10 00 01 00 07(连续写7路) 0E(7路14个字节) 00 01 00 07 AD 95
----------从站正确返回------------(固定8字节)
从站地址 功能码 寄存器地址 写寄存器数量 CRC校验
0D 10 00 01 00 07 D0 C7
----------从站异常返回------------
从站地址 功能码 错误代码 CRC校验
0D 90(功能码最高位置1) 02(寄存器数量超限) 0D C2
----------总结------------------------
总结:主站通过16功能码可发送需要修改的从站ID,修改的首位寄存器地址及寄存器数量,字节计数,每一路的数据。从站收到后返回主站修改的首位寄存器地址及修改完成的寄存器数量已确认多个修改写入操作成功

23功能码报文格式详解(同时读写单个或多个读写寄存器操作)

例:
----------主站发送------------------
从站地址 功能码 读寄存器地址 读寄存器数量 写寄存器地址 写寄存器数量 写字节计数 第一路寄存器数据…第n路寄存器数据 CRC校验
10 17 00 00 00 04 00 05 00 05 0A 00 11 00 15 1D 68
----------从站正确返回------------(固定8字节)
从站地址 功能码 读字节计数 读第1路寄存器数据…读第n路寄存器数据 CRC校验
10 17 08 00 01 00 04 1D 68
----------从站异常返回------------
从站地址 功能码 错误代码 CRC校验
10 97(功能码最高位置1) 02(寄存器数量超限) 9F F4
----------总结------------------------
总结:主站通过23功能码可同时读写单个或多个从站寄存器地址,发送需要修改的从站ID,修改需要读取的首位寄存器地址及寄存器数量,需要写入的寄存器地址及寄存器数量,写入的字节计数,每一路的数据。从站收到后返回主站读取的字节计数与每一路读取的寄存器内容已确认多个修改写入操作成功

04功能码报文格式详解(读取只读寄存器操作)

例:
----------主站发送------------------
从站地址 功能码 寄存器地址 寄存器数量 CRC校验
06 04 00 02 00 04 51 BE
----------从站正确返回------------
从站地址 功能码 字节计数 第一路寄存器数据…第n路寄存器数据 CRC校验
06 04 08 00 01 00 04 A6 BA
----------从站异常返回------------
从站地址 功能码 错误代码 CRC校验
06 84(功能码最高位置1) 02(寄存器数量超限) 73 00
----------总结------------------------
总结:主站通过04功能码可发送需要读取的从站ID,读取其寄存器地址的寄存器数据,从站收到后返回主站需要读取寄存器的数据已确认读取操作成功,发现04与23的区别在于可以使从站返回需要读取的寄存器内容

注意事项

1.主站发送功能码:01/02/03/04/05/06功能码发送都是8个字节

参考:
推荐,讲的特别清晰Modbus RTU串口通信协议

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-02-16 13:16:43  更:2022-02-16 13:18:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 8:55:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码