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 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 初出茅庐的小李第86篇博客之Modbus协议总结 -> 正文阅读

[嵌入式]初出茅庐的小李第86篇博客之Modbus协议总结

Modbus协议来源

Modbus协议的由来
Mod,取自英文单词” Modicon”,Modicon 中文翻译为莫迪康,是美国一家自动化公司的名字,现在这家公司被法国的施耐德电气(Schneider Electric)收购。

Bus,作为名词有两个意思,一个是公共汽车;另一个是总线(计算机系统的),我们知道在自动化系统中有很多种现场总线,比如CAN Bus是CAN 总线、LIN Bus 总线、ProfiBus 总线等等,一个经常用到的词Field Bus 现场总线。

协议,英文叫做Protocol,是通信各方事前约定的通信规则,通信约定。协议有时候也叫规约,举例TCP/IP协议,HTTP协议等等。

我们把以上三部分联合起来,Modbus 协议就是Modicon公司发表的一种总线协议,发表于1979年,当时是用于可编程逻辑控制器(PLC)之间通信的。
————————————————
版权声明:本文为CSDN博主「xuxg2005」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xuxg2005/article/details/104215147

如何理解协议

协议就是一种规约,所谓规约就是规定和约定,协议规定了电平信号传输介质和数据帧格式,这里可以类比人类交流是所用的语言,中文、英文、法文这些都是约定如果一个会说中文的人给一个能听懂中文的人说话 那么这个信息就能够传递,试想如果一个说中文的甲和一个只能听懂英文的乙那么二者就无法交流。

Modbus协议分类

就好比同样是中文一样 有好多种方言 Modbus协议有不止一种
Modbus-RTU
Modbus-ASCII
Modbus-TCP
Modbus-Plus
这些都是Modbus协议

Modbus中关于通信的几个概念

通信的本质是读写 读写的对象有

  1. 线圈
  2. 寄存器

线圈分类

输出线圈 用 0表示
输入线圈 用1表示

寄存器分类

输入寄存器 用3表示
输出寄存器 用4表示

如果把通信的过程比作写信 那么线圈 和寄存器 就好比信箱能够装信息
只不过这里线圈只能装一封信也就是一个bit,而寄存器能装的就比较多它能装16封信
这里就是常说的一个寄存器占两个字节一个字节是8位,既然是信箱那么信箱就不可能无限多一定有个范围这个范围就叫寄存器或者线圈的地址。

地址的范围描述

标准地址
0 0001- 0 9999 0表示输出线圈
1 0001- 1 9999 1表示输入线圈
3 0001- 3 9999 3表示输入寄存器
4 0001- 4 9999 4表示输出寄存器
扩展地址
0 00001 - 0 65536 0表示输出线圈
1 00001- 1 65536 1表示输入线圈
3 00001- 3 65536 3表示输入寄存器
4 00001- 4 65536 4表示输出寄存器

对线圈和寄存器的操作有

读写的对象有四种 :
输入线圈 0
输出线圈 1
输入寄存器 3
输出寄存器 4

输入能读 不能写 输出可读也可写

所以方法一共有6种:
读输出线圈 编号 01
读输入线圈 编号 02
读输出寄存器 编号 03
读输入寄存器 编号 04

写输出线圈 编号 05
写输出寄存器 编号 06

每个功能有个编号 或者称其为代号 这个代号的官方称呼就是:功能码
特别的对于写线圈和寄存器还有写入多个的情况就是

写多个线圈 编号 15 单个是05
写多个寄存器 编号 16 单个是06

Modbus报文格式

从站地址 又叫设备编号
功能码 又叫操作方法的编号
数据 内容 读的内容 或者写的内容 抽象的
校验 检查数据和功能码以及从站地址的信息

数据:写和读的数据是不一样的 但是都叫数据 方便写统一的公式进行了一次抽象。

Modbus读报文格式

地址:读谁
功能码:读线圈 还是读寄存器? 干什么
数据:具体干什么 读的细节信息
校验: 以上信息的检查是否合适

Modbus读报文格式

地址:写谁
功能码:写线圈 还是写寄存器 写一个 还是多个? 干什么?
数据:具体干什么 写的细节信息
校验: 以上信息的检查是否合适

Modbus校验方法

CRC-16

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

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/9 1:53:08-

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