MODBUS

embedded/2024/11/10 13:43:04/

Modbus标准的定义是:

一主多从
主有寄存器
寄存器有四个存储区:

0区:输出线圈(Coils)存储区。它是可读可写的。这个区域用于存储可以写入或读出的布尔量,如IO口的电平高低、灯的开关状态等。
1区:输入线圈(Discrete Inputs)存储区。这个区域主要用于存储只读的状态信息,通常也是布尔量类型。
3区:输入寄存器(Input Registers)存储区。这个区域用于存储只读的数据,如传感器的温度数据等。这些数据通常是16位寄存器类型。
4区:保持寄存器(Holding Registers)存储区。这个区域存储的是可读可写的16位寄存器类型的数据,例如设置的密码等。

作为总线协议却没有忙判定机制
————————————————

modbus的报文格式?
有三种:modbus-RTU、modbus-ASCLL、modbus-TCP

modbus-RTU
从机地址 | 功能码 | 数据… | CRC | CRC |
传十六进制

modbus-ASCLL
起始 | 从机地址 | 功能码 | 数据… | CRC |
传ascll

modbus-TCP
事务处理标识箱* | 协议标识符* | 长度 | 单元标识符* | 功能码 | 数据 |

modbus-TCP一看比较复杂,先放一边,RTU版和ASCLL版差不多一样。

然后,从机地址?没有主机地址?功能码是什么?数据又怎么定义?

只有从机地址,主机和某一从机对话时,都是以从机地址开头
功能码定义:

01H 读取输出线圈
02H 读取输入线圈
03H 读取保持寄存器
04H 读取输入寄存器
05H 写入单线圈
06H 写入单寄存器
0FH 写入多线圈
10H 写入多寄存器

数据段的定义好像没有特别明确,各家各有不同。
以我手里的一份《modbus采集规范应用手册》为例

主问询:00 00 00 0F,前16位是开始地址,后16位是连续问的长度

从响应:03 AA BB CC,前8位表长度(单位是八位,这里是03,就是说后面有3个八位),后面是数据值(不是地址),这里主收到从响应后,根据其询问的地址去改数据值------就是说这里问答必须是一一对应的。


http://www.ppmy.cn/embedded/11412.html

相关文章

【VI/VIM】基本操作备忘录

简介 新建/打开文件 工作模式 常用命令 补全命令 命令模式输入:ctrl p 移动命令 文本选中 撤销、删除 复制粘贴 替换 缩排 查找 替换 插入 分屏 练习

CyclicBarrier(循环屏障)源码解读与使用

🏷️个人主页:牵着猫散步的鼠鼠 🏷️系列专栏:Java全栈-专栏 🏷️个人学习笔记,若有缺误,欢迎评论区指正 目录 1. 前言 2. 什么是CyclicBarrier? 3. CyclicBarrier与CountDownL…

00_Qt概述以及如何创建一个QT新项目

Qt概述 1.Qt概述1.1 什么是Qt1.2 Qt的发展史1.3 支持的平台1.4 Qt版本1.5 Qt的下载与安装1.6 Qt的优点 2.QT新项目创建3.pro文件4.主函数5.代码命名规范和快捷键 1.Qt概述 1.1 什么是Qt Qt是一个跨平台的C图形用户界面应用程序框架。它为应用程序开发者提供建立艺术级图形界面…

OpenHarmony网络协议通信—kcp

kcp 是一种 ARQ 协议,可解决在网络拥堵情况下 tcp 协议的网络速度慢的问题 下载安装 直接在 OpenHarmony-SIG 仓中搜索 kcp 并下载。 使用说明 准备一套完整的 OpenHarmony 3.1 Beta 代码 库代码存放路径:./third_party/kcp 修改添加依赖的编译脚本 在/develo…

项目中的解耦小能手-观察者模式

目录 1.使用场景 2.什么是观察模式 3.观察者模式结构图 4.代码实现案例 4.1 subject代码实现 4.2 Observer类代码实现 5. 回顾总结 1.使用场景 当一个对象的改变需要同事改变其他对象的时候,如:订单中心-下单成功需要通知库存、物流和积分去做相应…

水位传感器优点有哪些

水位传感器是一种用于检测液体水位的重要设备,在各种工业和民用场景中起着至关重要的作用。其中,光学液位传感器作为一种先进的水位检测技术,在市场上备受青睐,其优点主要包括以下几个方面。 光学液位传感器内部所有元器件均经过…

SQLAIchemy 异步DBManager封装-01入门理解

前言 SQLAlchemy 是一个强大的 Python SQL 工具包和对象关系映射(ORM)系统,是业内比较流行的ORM,设计非常优雅。随着其2.0版本的发布,SQLAlchemy 引入了原生的异步支持,这极大地增强了其在处理高并发和异步…

【Linux】学习记录_10_管道

10 管道 数据可以从一个进程流向另一个进程 10.1 匿名管道PIPE 匿名管道有以下的特征: 没有名字,因此不能使用open()函数打开,但可以使用close()函数关闭。 只提供单向通信(半双工),也就是说&#xff0…