MODBUS协议最简单又是最直白的解释

MODBUS协议最简单又是最直白的解释Modbus 是一种单主站的主 从通信模式 Modbus 网络上只能有一个主站存在 主站在 Modbus 网络上没有地址 从站的地址范围为 0 247 其中 0 为广播地址 从站的实际地址范围为 1 247 Modbus 通信标准协议可以通过各种传输方式传播 如 RS232C RS485 光纤 无线电等 Modbus 具有两种串行传输模式 ASCII 和 RTU 它们定义了数据如何打包 解码的

modbus协议也只是通讯协议的一种,没什么神秘的,通讯协议包括两个方面:

一、通讯格式,即: 波特率,检验方式,数据位,停止位

*参预通讯的双方设定的通讯格式必须一样的!!

二、通讯规范(这个词是我自己定义的,不能引用,会被人笑话的)

1、起始符:

接收到一串字符,总要知道这串字符从哪个地方开始吧,这就是起始符的作用,接收方不管以前收到多少个字符。当接收到起始符时,以前的字符就不再理它了,从起始符开始分析以后的字符! MODBUS的ASCII方式起始符是一个冒号 “:”

2、设备地址:

3、功能代码:

4、数据:

注意:发送的字符都是以十六进制数表示!

控制器返回的字符根据命令的不同而不同,此处不好讲解,在下面具体例子中会有说明!

再说RTU方式:

下面针对某种支持MODBUS协议的控制器,说一下具体的读/写例子

1、 读某控制器的十五个寄存器值,发送的字符串是:(ASCII方式)

“: 0FDD”+ Chr ( 13 ) + C h r (13) + Chr (13)+Chr(10)
起始符“:” + 站号(01) + 读命令(03)+ 起始寄存器通讯地址(1000)+ 字数(15;转换成十六进制000F)+ 校验和(DD)+ 结束符

2、 分别向某控制器两个寄存器写入数值,发送的字符串是:(ASCII方式)

“: 004”+ 写入的数值(8个字符)+ 校验和 + Chr ( 13 ) + C h r (13) + Chr (13)+Chr(10)
起始符“:” + 站号(01) + 写命令(10)+ 起始寄存器通讯地址(1000)+ 字数(2;转换成十六进制0002)+ 字节数(04) + 校验和(因为写入数值是变化的,需要得经过计算得出校验和)+ 结束符

*错误码,当通讯正确时是什么,通讯错误时是什么,具体控制器会有说明

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/201895.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午8:21
下一篇 2026年3月20日 上午8:22


相关推荐

  • ideal2019 30天试用结束了,在线激活码【最新永久激活】

    (ideal2019 30天试用结束了,在线激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html2JTX0APX6F-eyJsa…

    2022年3月30日
    43
  • SQL Server索引超出了数组界限解决方法

    SQL Server索引超出了数组界限解决方法有开发的同事反映远程登录 SQLServer 操作报错 索引超出了数组界限解决方法等 如下图线上数据库版本为 SQLServer201 检查后发现开发人员 SSMS 版本为 2008 版本与服务器不一致 开发人员要求登录数据库服务器操作 果断拒绝了 建议在本地打上 SP3 或者直接安装 2012 的 SSMS 安装好后问题解决

    2026年3月19日
    2
  • dota2已连接协调服务器,正在登陆中的解决办法「建议收藏」

    dota2已连接协调服务器,正在登陆中的解决办法「建议收藏」这两天,家里有亲戚过世,暗恋的小姑娘跟别人出去玩了,心情不好,打开dota2,连了好几次都没连上,按网上的说法清除缓存,重启电脑都试过了,不行,后来发现,我是手机开的热点,这里信号不好,换一个信号好的卡就行了,很多关于网络的问题其实都和网速有关,因为网速不合格和断网基本上是同一个问题,所以一般会引起混淆。…

    2022年5月17日
    143
  • Pycharm 输出中文或打印中文乱码现象的解决办法

    Pycharm 输出中文或打印中文乱码现象的解决办法使用 Pycharm 有时候会在 Console 终端输出乱码 比如下面这样 问题原因 这是什么原因呢 这是因为程序开始部分的编码不一致造成 比如说程序中使用 gbk 编码 coding gbk 但是 Pycharm 中确使用 utf 8 编码 并保存为 utf 8 的格式 解决办法 File setting FileEncoding ID

    2026年3月27日
    2
  • poj2386 Lake Counting(简单DFS)

    poj2386 Lake Counting(简单DFS)

    2022年1月4日
    50
  • subdiscipline_Sublime

    subdiscipline_Sublime部分转载自:使用sublime-snippet来快速做前端页面分析在sublime来中,可以通过submlime-snippet来快速补全代码。举个栗子,如果在sublime的存放submlime-snippet的文件夹下有如下的文件(elem-edge.sublime-snippet文件名不重要)ele

    2025年6月13日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号