Modbus-RTU协议讲解与实战

news/2024/9/22 21:30:42/

1、背景

工作需要,需要使用Modbus-RTU实现RS485通行,于是简单学习并实践了一下。

2、参考资料

一文看懂Modbus协议

3、协议说明

3.1、协议类型

当前设备采用Modbus-RTU协议,采用CRC-16_Modbus校验算法,数据链路层私用标准串口协议,物理层采用RS485进行数据传输。

3.2、帧结构

帧结构说明
地址码(1)指定待通信的设备地址,可以是广播地址、单设备地址或多设备地址。地址码占1字节,有效值范围是1~247。
功能码 (1)指令类型,详细说明程序执行的操作是读取、写入还是查询串口通信协议。功能码占1字节,有效值范围是1~255
起始地址(2)寄存器地址,2个字节
数据(N)根据执行的命令指令来封装数据内容,数据长度为多字节

http://www.ppmy.cn/news/1235441.html

相关文章

如何将ONLYOFFICE与Python应用程序集成

ONLYOFFICE是一项功能强大的开源文档编辑器,可以将文本文档、电子表格和演示文稿、电子表单编辑功能集成至任何编程语言编写的 Web 应用程序中。最新的7.5版本编辑器可以支持编辑PDF文件(批注、绘图等)。在本文中,我们会带你了解如…

来聊聊JVM中的类加载过程以及双亲委派模型(学习Java必知内容)

文章目录 1. 类加载过程加载验证准备解析初始化 2. 双亲委派模型一个类的加载流程双亲委派模型的优点 总结 1. 类加载过程 在整个 JVM 执行过程中, 和我们程序员关系最密切的就是类加载的过程, 所以接下来我们来看下类加载的执行流程. 对于一个类来说, 它的生命周期是这样的:…

组件库篇 | EUI | 按钮

组件库篇 | EUI | 按钮 前言 从本章开始,我将会一一演示所有组件所有函数的调用代码,以方便读者掌握组件的具体用法。但这并不意味着在实际使用中要用到所有的函数,请读者按需取用。 基本介绍 EUI提供了三种类型的按钮,如下: 常规按钮 Button文字按钮 TextButton图标按钮…

linux删除oracle数据库:如何在Linux系统中删除Oracle数据库

停止Oracle数据库服务:# su - oracle 1. 停止Oracle数据库服务: # su - oracle $ sqlplus / as sysdba SQL> SHUTDOWN IMMEDIATE; 2. 删除oracle安装目录: # rm -rf /u01/app/oracle 3. 删除oracle用户和组: # userdel…

安全牛《数据分类分级自动化建设指南》发布|美创入选代表厂商,分享智能化探索

近日,安全牛发布《数据分类分级自动化建设指南》研究报告,对数据分类分级的主要技术、实施要点、选型指导、发展趋势等展开深入探讨,为各行业数据分类分级自动化工作落地提供帮助与指引。 美创科技被列为代表推荐厂商,落地案例—农…

QT控件之QButtonGroup的使用(按钮组)

参考博客:【Qt控件之QButtonGroup】概述及使用_qt中qbuttongroup-CSDN博客 QButtonGroup *buttonGroup new QButtonGroup();QPushButton *button1 new QPushButton("Button 1"); QPushButton *button2 new QPushButton("Button 2"); QPushBu…

STM32-SPI协议详解及CubeMX+HAL函数配置分析

1 SPI协议 SPI(Serial Peripheral interface)串行外围设备接口是同步全双工的通信总线,在芯片的管脚上只占用四根线。 1.1 物理层 SS/NSS/CS:从设备选择信号线(片选信号线)。由主设备控制,选择指定的从设备。 当主机要选择从设备时,把该从设备的SS信号线设置为低电平…

qt按照不同编码格式读取文字(UTF-16LE,UTF-8,UTF-8BOM,UTF-16BE)

enum class EncodingFormat : int {ANSI 0,//GBKUTF16LE,UTF16BE,UTF8,UTF8BOM, }; EncodingFormat VideoPlayer::FileCharacterEncoding(const QString &fileName) {//假定默认编码utf8EncodingFormat code EncodingFormat::UTF8;QFile file(fileName);if (file.open(QI…