MODBUS通讯协议详解(基于485)

参考:灵育科技Modbus课程总结
作者:Naunyang
时间:2020-11-23 13:51:58
网址:https://blog.csdn.net/Naunyang/article/details/108740456?spm=1001.2014.3001.5502

参考:MODBUS用于单片机通讯
作者:hillchina
发布时间:2017-02-22 08:25:11
网址:https://www.bilibili.com/video/BV1Bx411y7N5

参考:Modbus协议解析(Modbus-RTU、Modbus-TCP、Modbus-PLUS)
作者:panda@Code 发布时间:2019-07-01 23:44:03
网址:https://blog.csdn.net/panda5_csdn/article/details/94332166?spm=1001.2014.3001.5502

完整视频及资料下载链接: https://pan.baidu.com/s/1AZQKnipbGF63UW2a5TdFZA
提取码: wzy7

更多干货推荐可以去牛客网看看,他们现在的IT题库内容很丰富,属于国内做的很好的了,而且是课程+刷题+面经+求职+讨论区分享,一站式求职学习网站,最最最重要的里面的资源全部免费!!!点击进入--------------》跳转接口
在这里插入图片描述

更多干货推荐可以去牛客网看看,他们现在的IT题库内容很丰富,属于国内做的很好的了,而且是课程+刷题+面经+求职+讨论区分享,一站式求职学习网站,最最最重要的里面的资源全部免费!!!点击进入--------------》跳转接口
在这里插入图片描述

目录

  • 什么是Modbus
  • 通讯的硬件层协议机制,主从模式的建立
  • 硬件层半双工通讯方式的实现
  • 基于485通讯(硬件层协议)的MODBUS协议(软件层协议),确定主机寻地址帧格式
    • RTU(2进制方式)的机制及数据传输实现方式
    • ASC(字符方式)的机制及数据传输实现方式
  • MODBUS从设备回应数据包格式
  • MODBUS从机协议实现
  • STM32编程实现一个MODBUS从机协议
    • MODBUS通讯的硬件层及底层通讯准备

什么是Modbus

顾名思义,他是一个bus,即总线协议,如果你接触到这种协议,相信你所处的行业很可能是工业方面或者你的产品用于工业。
在这里插入图片描述

Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气 Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。Modbus已经成为工业领域通信协议的业界标准(De facto),并且现在是工业电子设备之间常用的连接方式。

通讯的硬件层协议机制,主从模式的建立

协议分类:硬件层协议、软件层协议

硬件层:RS232、RS485 、CAN等 。主要解决硬件传输问题,解决如何传输0与1的问题(物理上以什么样的电平、多少伏电压传输,仪表可以测到这个电压,还有以双绞线还是什么线传输)。交通道路

软件层协议:传输的目的,为什么要传,传数据要干啥。Modbus、TCP/IP……交通规则

在这里插入图片描述

  • 单工模式:只能从一方发送数据到另一方,而不能反过来发。

  • 半双工模式:可以A发送给B,也可以B发送给A,但是不能同时发

  • 主从模式:
    (1)在这样一个系统中,只能有一个主机,其他的都是从机。
    (2)系统中的从机都不能主动发信息给主机。

硬件层半双工通讯方式的实现

主从模式:
(3)系统上电之后,默认状态,主机,从机都是在监听状态;
(4)主机与从机之间的通信,只能由主机发起;

主机要建立起一次通信,要满足以下要求:
(1)主机要将自己置为发送状态;
(2)主机要按照预先约定好的格式(比如MODBUS协议格式)发送寻址数据帧,发完之后立刻把自己转回接收状态;
(3)寻址完成之后,目标从机要返回给我消息,才能算这次通信成功;

基于485通讯(硬件层协议)的MODBUS协议(软件层协议),确定主机寻地址帧格式

1、MODBUS是主从模式:
整个系统只能有一个主机,每个从机都有唯一的地址(0-247),0号地址是广播地址,发送给所有的从机。0号地址寻址,所有从机不回应(相互会冲突嘛);

2、MODBUS主机寻址帧格式:

  • (1)RTU方式:也叫16进制方式,或者2进制方式
    比如:0x03: 0000 0011
  • (2)ASC方式:字符方式(方便调试)
    比如:0x03–> 转换成字符’0’与字符’3’再发送出去;那么就会发
    字符’0’(ASCII码是0x30)的2进制0011 0000 + 字符’3’(ASCII码0x33)的2进制 0011 0011,最终发送的就是:0011 0000 0011 0011

ASC方式最大的优势就是方便调试(可打印),整个线路上传输的都是ASCII码,都是可打印字符,可以清楚的知道这个线路上传输的是什么,因为ASCII码中可打印字符是32-126,其他显示乱码。

RTU(2进制方式)的机制及数据传输实现方式

ASC方式数据帧格式:

从机地址 + 功能码 + 数据 + 16位CRC校验

不同的功能码对应的紧接于功能码之后的数据是不同的。
比如:03功能码,是要读取从机的数据。那么从机要知道从他的存储器的哪里(哪个地址)开始读,读到哪里结束,读几个地址长度。

还有一个问题就是:从机怎么知道主机发送完了?
从机以接收数据停止之后开始计时,达到3.5个字节以上的时间就认为主机的寻址帧完成,并开始处理。

3.5个字节转化成时间计算:
在这里插入图片描述

ASC(字符方式)的机制及数据传输实现方式

ASC方式数据帧格式:

起始位‘ :’ + 地址(2个字节) + 功能码(2个字节)+ 数据(1、2…n)+校验位(LRC校验)
在这里插入图片描述

这些地址、还有功能码、还有数据为什么是两个字节呢
因为是ASC方式,字符的方式。比如:0x03,要发送就要变成:字符’0’ 与’3’
字符’0’ (0x30)的二进制0011 0000是与’3’(0x33)的二进制是:0011 0011就成2个字节了。
这种方式非常冗长,工作少用。

校验位是从地址开始到数据位的最后结束。

校验位的计算:把所有的值加起来的和对256取余,然后取反加1 ,就是校验位。
在这里插入图片描述

MODBUS从设备回应数据包格式

(1)回应的数据包与主机查询的数据包格式一致;

(2)正常回应是,功能码与主机发送时的功能码一致(1-127);

(3)异常的回应时,功能码要在收到的功能码的基础上加128

MODBUS从机协议实现

(1)硬件上具备串口(485接口)

(2)硬件上需要一个精确的毫秒级别的定时器

STM32编程实现一个MODBUS从机协议

MODBUS通讯的硬件层及底层通讯准备

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/265269.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C\C++与Java中的static关键字

C\C里面的static: 面向过程的static: 在c和c面向过程的设计里,在全局变量前加上static关键字则可将该变量定义为一个静态全局变量,比如: static int a; 那么c和c中的静态全局变量有什么特点呢: 1、 变…

步进电机、伺服电机、舵机、无刷电机、有刷电机区别

更多干货推荐可以去牛客网看看,他们现在的IT题库内容很丰富,属于国内做的很好的了,而且是课程刷题面经求职讨论区分享,一站式求职学习网站,最最最重要的里面的资源全部免费!!!点击进…

56、servlet3.0-与SpringMVC整合分析

56、servlet3.0-与SpringMVC整合分析 web容器在启动的时候,会扫描每个jar包下的META-INF/services/javax.servlet.ServletContainerInitializer加载这个文件指定的类SpringServletContainerInitializerspring的应用一启动会加载感兴趣的WebApplicationInitializer接…

html提交form预处理,HTML5 之图片上传预处理

在开发 H5 应用的时候碰到一个问题,应用只需要一张小的缩略图,而用户用手机上传的确是一张大图,手机摄像机拍的图片好几 M,这可要浪费很多流量。获取图片通过 File API 获取图片。var input document.createElement(input);input…

PID算法实现温控

参考:PID算法 作者:hillchina 发布时间: 2016-09-28 21:48:04 网址:https://www.bilibili.com/video/BV1Ds411t7Hr 以上完整的视频教程在腾讯课堂里有,在腾讯课堂里搜索PID,找到灵育科技,课程对…

React.js

类似于Jquery,主要是操作Dom 特点:1、基于组件开发 2、基于虚拟dom,速度快 用React的所需要引入的三个包: 1、react.min.js (引入React语法) 2、react-dom.min.js (用react操作Dom)…

[Unity3d]多个摄像机叠加效果

今天学习到一个多个摄像机看到的场景在同一个层显示,比如我们做一个类似反光镜的效果,当然反光镜可以直接用Shader来实现,但我就是了实现一个类比这样的一个效果,一个摄像机将看到的图像显示到一个Texture上,然后将Tex…

单片机程序跑飞原因

参考:单片机程序又跑飞? 作者:嵌入式ARM 网址:https://mp.weixin.qq.com/s/a22zVdSfCqWjSmlBxK2R1Q 目录数组越界/溢出中断服务程序缺失看门狗复位单片机中有看门狗,长时间不喂狗,程序就会复位。为什么长时…

html5大赛是什么,IE9开发大赛为HTML5打了一针兴奋剂

尽管HTML5是一种新的网页浏览标准,目前仅有苹果和微软的IE9支持该标准。客观地说,HTML5还是小众用户的标准。对于IE9来说,如果HTML5标准无法普及,IE9的硬件加速和性能优势就无从体现。加之Adobe一直力挺Flash,这对HTML…

apicloud手机查看效果

1.wifi全量同步 2.本地编译 需要在同一个WiFi中,WiFi全量同步,手机才会接受文件当代码改动时,需要本地编译后进行下载 如果是在海马模拟器上看效果,直接选择云编译自定义apploader-编译-下载apk文件-直接把apk文件拖进海马模拟器 …

Java关键字final使用详解

2019独角兽企业重金招聘Python工程师标准>>> http://docs.oracle.com/javase/tutorial/java/IandI/final.htmlWriting Final Classes and MethodsYou can declare some or all of a classs methods final. You use the final keyword in a method declaration to in…

一行代码揭开CPU执行原理

参考:一行代码,揭开CPU执行原理! 作者:嵌入式ARM 网址:https://mp.weixin.qq.com/s/qFnKhWqBGRCFAnp_KC1dmw 目录1、高级语言2、编译链接3、机器指令4、指令格式5、执行指令拓展总结很多刚刚入坑的小白可能对此完全没有…

html链接txt文件,怎么在TXT文件中建立超链接

参考方法如下:1、在桌面鼠标依次右键——新建——文本文档;2、在记事本中输入命令:echo off echo 正在清除系统垃圾文件,请稍等...... del /f /s /q %systemdrive%\*.tmp del /f /s /q %systemdrive%\*._mp del /f /s /q %systemd…

spark 2.4安装

1、spark 官网选择对应Hadoop的版本,之前安装的Hadoop版本为hadoop-3.0.2,获取下载包:wget http://mirrors.hust.edu.cn/apache/spark/spark-2.4.0/spark-2.4.0-bin-hadoop2.7.tgz2、解压缩安装包,创建软连接:tar -zxv…

redhat 挂载 iso文件 提示 mount :not a directory

redhat 挂载 iso文件 提示 mount :not a directory posted on 2013-12-28 22:26 秦瑞It行程实录 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/ruiy/p/errors.html

C语言常见编译错误及分析

更多干货推荐可以去牛客网看看,他们现在的IT题库内容很丰富,属于国内做的很好的了,而且是课程刷题面经求职讨论区分享,一站式求职学习网站,最最最重要的里面的资源全部免费!!!点击进…

计算机组成原理实验 组装实验报告,计算机组成原理实验一实验报告..doc

计算机组成原理实验一实验报告.实验一 运算器实验算术逻辑运算器实验目的:掌握算术逻辑运算器单元ALU(74LS181)的工作原理掌握简单运算器的数据传送通道验算由74LS181等组合逻辑电路组成的运算功能发生器运算功能按给定数据,完成实验指定的算术/逻辑运算…

FIS.js前端开发的使用说明文档

文档结构什么是FIS部署FISFIS基本使用模块定义加载方式调用Tangram 2.0一.什么是FIS FIS提供了一套贯穿开发流程的开发体系和集成开发环境,为产品线提供前端开发底层架构,这能帮助工程师提高开发效率,沟通协作效率,快速实现需求并…

典型用户和用户场景描述

场 景 / 故 事 / Story 版权信息 :大浪淘沙 版本信息 :Beta Version(测试版) 维护人信息:热心市民隔壁老王 版本记录:目前版本为第一期测试版 1.背景: (一)典…

面经——嵌入式常见面试题总结100题(上)

更多干货推荐可以去牛客网看看,他们现在的IT题库内容很丰富,属于国内做的很好的了,而且是课程刷题面经求职讨论区分享,一站式求职学习网站,最最最重要的里面的资源全部免费!!!点击进…