Modbus RTU在线工具教程

Modbus RTU在线工具用于生成和解析RTU通信报文,并提供CRC-16的计算和验证。此页面有请求生成、响应生成、报文解析、CRC校验这4个功能区域,适合在设备联调、协议故障排查或检查报文字段时设置从站地址、功能码、数据类型和字节序。

2026年11月11日 05:43:12 1 次阅读 约 2,356 字 约 6 分钟

可批量 浏览器执行
Modbus RTU在线工具工具图标

Modbus RTU在线工具

Modbus RTU报文生成、解析与CRC校验工具,支持多种数据类型和字节序配置。

开始使用
在线计算器 1,708

主要功能

  1. 请求命令生成:设置从站地址、功能码、起始地址以及读取数量或写入值,生成带有校验码的Modbus RTU请求帧,校验码为CRC。
  2. 响应报文生成:根据功能码构建正常响应、写入确认或异常响应,并设置寄存器读取响应的数据类型和字节序。
  3. 完整报文的解析:识别从站地址、功能码、数据区及CRC字段在RTU报文中的位置,并显示校验状态。
  4. 寄存器值的解析:通过自定义规则指定名称、起始字节、数据类型、字节序和数量,解析寄存器值。
  5. CRC的计算和验证:计算CRC-16,计算对象为不含CRC的数据帧,或验证完整报文末尾的校验码。
  6. 批量处理:请求生成、响应生成、CRC计算均提供逐行批量处理的入口。
  7. 本地设置的保存:常用的从站地址、数据类型、字节序和解析起始位置可以通过“保存设置”保留。

操作前的准备

  • 生成请求命令时,准备从站地址、功能码、起始地址以及读取数量或对应的写入值。
  • 生成响应报文时,准备从站地址、响应功能码、响应类型和寄存器返回值。对于寄存器读取响应,还需要确认数据类型和字节序。
  • 解析报文时,输入完整的RTU十六进制报文,包括CRC字段。此页面支持使用空格、连字符、冒号或逗号分隔。
  • 计算CRC时,输入不含CRC的数据帧。验证CRC时,输入已包含末尾CRC字段的完整报文。
  • 此页面注明,数据在浏览器内处理,常用设置保存在本地。

操作步骤

  1. 进入操作区域并选择功能

    打开工具后,向下滚动找到“工具使用”区域。页面上部有“请求生成、响应生成、报文解析、CRC校验”4个选项卡,可以根据当前工作直接切换。首次使用时可以从“请求生成”开始。如果需要重复使用常用参数,请在确认设置后点击右上角的“保存设置”,如果需要恢复页面的初始设置,请使用“恢复默认”。

    具有4个功能选项卡和保存设置按钮的Modbus RTU在线工具
    图1:在工具使用区域选择请求生成、响应生成、报文解析或CRC校验
  2. 设置参数并生成请求命令

    进入“请求生成”后,首先选择“单个生成”或“批量生成”。在单个模式下,依次输入从站地址、功能码、起始地址和读取数量。将功能码切换为写入命令后,页面会根据对应模式显示写入数据的设置。确认参数后,点击“生成请求命令”,右侧的“生成结果”区域用于显示完整报文、字段说明和CRC。如果需要继续检查报文,可以使用“发送到解析器”或“下一步:响应生成”。

    设置从站地址、功能码、起始地址和读取数量,生成Modbus RTU请求命令
    图2:选择生成模式并输入请求参数,然后检查右侧的报文和CRC字段
  3. 设置并生成响应报文

    点击“响应生成”选项卡,首先选择单个模式或批量模式,然后设置从站地址、功能码和响应类型。对于寄存器读取响应,还需要选择UINT16、INT16、UINT32、INT32或FLOAT32数据类型,并根据设备协议选择ABCD、DCBA、BADC或CDAB字节序。在文本框中输入寄存器返回值后,点击“生成响应报文”,页面右侧用于显示响应帧、字段说明和CRC。

    设置响应功能码、响应类型、数据类型、字节序和寄存器返回值
    图3:完成响应参数和返回值的设置后,查看页面提供的响应报文区域
  4. 输入完整报文并解析字段

    进入“报文解析”,将包含CRC的十六进制报文输入“完整RTU报文”文本框。然后,设置默认数据类型、默认字节序和数据起始字节。页面说明,起始位置按照完整报文的字节编号从0开始计算。如果需要按业务字段拆分数值,请使用“添加规则”设置规则名称、起始字节、类型、字节序和数量。点击“解析报文”后,页面的解析结果区域用于显示CRC状态、功能码、数据区和解析出的寄存器值。

    输入完整的Modbus RTU报文,设置自定义规则以解析字段和寄存器值
    图4:输入完整报文,设置默认参数或自定义规则,然后解析字段
  5. 计算或验证CRC校验码

    进入“CRC校验”后,可以在“不含CRC的数据帧”中输入原始字节并点击“计算CRC”。页面会按照Modbus RTU CRC-16规则,显示低字节在前的校验码和完整报文。如果已有完整报文,请将其放入“完整报文验证”,点击“验证CRC”。可以将多个不含校验码的数据帧在CRC批量区域中每行放置一个,使用“批量计算”进行处理。

    计算单个或批量的Modbus RTU CRC,并验证完整报文的校验码
    图5:根据数据帧是否包含CRC,选择计算或验证入口

主要参数说明

参数用途建议
从站地址指定Modbus从站编号。页面注明,0是广播地址,普通设备主要使用1-247输入实际设备地址,仅在明确需要广播时使用0
功能码请求支持01、02、03、04、05、06、15、16,对应线圈读取、输入读取、寄存器读取和写入操作根据设备的寄存器类型和读写对象进行选择
起始地址指定请求或解析开始的位置在请求页面输入报文地址。页面注明,通常从0开始
读取数量设置一次读取的线圈或寄存器数量读取寄存器时,输入页面显示的1-125范围内的值
响应类型切换正常响应和异常响应根据需要模拟的设备返回状态进行选择
数据类型支持UINT16、INT16、UINT32、INT32、FLOAT32与设备手册中的寄存器数据定义保持一致
字节序将32位数据的排列控制为ABCD、DCBA、BADC或CDAB优先使用设备文档中明确指定的顺序
数据起始字节指定解析寄存器值时从完整报文的哪个字节开始按照页面规则从0开始计数,避开地址和功能码等非数据字段
批量模式逐行处理多个请求、响应或CRC数据帧每行仅放置一个符合当前功能要求的输入

结果的查看和保存

请求生成页面和响应生成页面右侧的结果区域会列出完整报文、CRC和相关字段。报文解析页面会显示接收到的CRC值、校验状态、数据区和按自定义规则解析出的值。CRC页面会显示低字节在前的校验码、寄存器值和完整报文。如果需要进一步处理,可以使用页面提供的“复制结果”或“发送到解析器”。常用的从站地址、数据类型、字节序和解析起始位置可以通过点击上部的“保存设置”保留在本地。

常见问题和使用建议

CRC校验码的字节序是什么?

页面说明,CRC-16的结果在Modbus RTU中使用低字节在前、高字节在后的顺序。例如,当CRC寄存器值为0xCDC5时,报文末尾写为C5 CD。

功能码03和04有什么区别?

03用于读取保持寄存器,一般用于参数、设定值或可读写的数据。04用于读取输入寄存器,一般用于传感器测量值等只读数据。

如何选择ABCD、DCBA、BADC、CDAB?

这些选项用于32位数据的字节排列。首先确认设备手册中的字节序定义。如果文档未指定,可以在解析器中切换,检查数值是否与现场的测量范围一致。

为什么FLOAT32占用两个寄存器?

Modbus的寄存器宽度为16位,而FLOAT32是32位浮点数,因此需要两个连续寄存器,即4个数据字节。

通常,CRC校验失败是什么原因造成的?

页面列出的常见原因包括报文输入错误、缺少字节或多余字节、CRC字节序颠倒、通信干扰或设备使用非标准校验方法。可以先使用CRC功能重新计算,并比较最后两个字节。

批量请求生成的输入格式是什么?

读取和单个写入的格式为“从站,功能码,地址,数量或值”,例如1,03,0,10。多个寄存器写入的格式为“从站,16,地址,类型,字节序,值...”,例如1,16,0,FLOAT32,ABCD,3.14。