当前位置: 首页 > news >正文

认识Modbus通信协议(笔记)

Modbus 莫迪康 1979年

PLC 1969年

什么是modbus?

它是一个Bus,即总线协议。比如串口协议、IIC协议、SPI都是通信协议。

协议,顾名思义是一种规定和约束

Modbus协议是一种引用层的报文传输协议,RTU、ASCLL、TCP,都属于Modbus协议。

大部分的设备都是Modbus-RTU协议的。

2.Modbus用来干什么?

大佬概括:通信

通信:其实就是读写

modbus RTU通信协议为例:

存储区:

输出线圈 0

00001-09999

000001-065536

输入线圈 1

10001-19999

100001-165536

输出寄存器 4

40001-49999

400001-465536

输入寄存器 3

30001-39999

300001-365536

存储区范围:5位6位标准地址 扩展地址

Modbus如何进行通信?

通过读和写的功能,进行通信, 通过功能码进行操作。

读和写            功能码
读输出线圈       01

读输入线圈        02

读输出寄存器      03

读输入寄存器        04

写单个输出线圈              05

写单个输出寄存器            06

写多个输出线圈              15

写多个输出寄存器            16

Modbus-RTU协议

协议就是要求和规定、约束,大家一起遵循这个要求通过这个规定的交流模式下进行交流!列如(中国人都说中文,通过中文交流,如果我们用中文和老外交流就无法进行交流)

帧结构

帧结构 = 地址 + 功能码+ 数据 + 校验

  • 地址: 占用一个字节,范围0-255,其中有效范围是1-247,其他有特殊用途,比如255是广播地址(广播地址就是应答所有地址,正常的需要两个设备的地址一样才能进行查询和回复)。就是设备地址。

  • 功能码:占用一个字节,功能码的意义就是,知道这个指令是干啥的,比如你可以查询从机的数据,也可以修改数据,所以不同功能码对应不同功能。列如:03就是读取单个寄存器、01是读出线圈。

  • 数据:根据功能码不同,有不同结构,在下面的实例中有说明。

  • 校验:为了保证数据不错误,增加这个,然后再把前面的数据进行计算看数据是否一致,如果一致,就说明这帧数据是正确的,我再回复;如果不一样,说明你这个数据在传输的时候出了问题,数据不对的,所以就抛弃了

报文格式:从站地址(设备编号)+功能码+数据+校验

对于读取来说:

从站地址(设备编号)          找谁?

功能码                              干嘛

数据                          具体干嘛的细节

校验                              验证

对于写入来说:

从站地址(设备编号)            找谁?

功能码                                   干嘛

数据                        具体干嘛的细节((更多,多了个写入的具体数值)

校验                                       验证


 

http://www.lryc.cn/news/233840.html

相关文章:

  • 【算法】距离(最近公共祖先节点)
  • 基于SpringBoot的SSMP整合案例(消息一致性处理与表现层开发)
  • c#之反射详解
  • synchronized jvm实现思考
  • 【hive基础】hive常见操作速查
  • 2024年山东省职业院校技能大赛中职组“网络安全”赛项竞赛试题-A
  • 基于51单片机电子钟温度计数码显示设计( proteus仿真+程序+设计报告+讲解视频)
  • jenkins+centos7上传发布net6+gitlab
  • python趣味编程-5分钟实现一个F1 赛车公路游戏(含源码、步骤讲解)
  • Kafka快速入门
  • 基于Pytorch的从零开始的目标检测
  • interview review
  • layui表头多出一列(已解决)
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • Java源码分析:Guava之不可变集合ImmutableMap的源码分析
  • 详解自动化测试之 Selenium
  • vue监听对象属性值变化
  • Unicode编码的emoji表情如何在前端页面展示(未完成)
  • 基于SSM的设备配件管理和设备检修系统
  • 鸿蒙开发|鸿蒙系统项目开发前的准备工作
  • Evil靶场
  • 第77题. 组合
  • 读书笔记:彼得·德鲁克《认识管理》第21章 企业与政府
  • C/C++疫情集中隔离 2021年12月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析
  • 052-第三代软件开发-系统监测
  • 向量矩阵范数pytorch
  • NVIDIA Jetson OTA升级
  • 【算法】算法题-20231118
  • 某60区块链安全之整数溢出漏洞实战学习记录
  • 图数据库Neo4J 中文分词查询及全文检索(建立全文索引)