• 用******户 使用了工具 Base64编解码
  • 开******发 使用了工具 MD5加密
  • 工******程 使用了工具 时间戳转换
  • 程******序 使用了工具 JSON格式化
  • 设******计 使用了工具 图片压缩
  • 产******品 使用了工具 URL编解码
  • 测******试 使用了工具 正则表达式
  • 运******维 使用了工具 密码生成器

在线Modbus-ASCII报文解析器

编程开发
在线解析Modbus ASCII通信协议报文,支持LRC校验,主站→从站、从站→主站双向解析,详细解读帧起始、地址、功能码、数据、LRC校验
开发工具ModbusASCII工业协议报文解析LRC校验
Modbus ASCII 协议解析 支持 8 种功能码 LRC 校验验证
快捷样例
读保持寄存器主站请求读取从站地址0x006B开始的2个寄存器
写单个寄存器主站请求向从站地址0x0001写入值0x0003
读响应(正常)从站响应读取的2个寄存器数据
错误响应从站返回错误码0x02(非法数据地址)
报文输入
格式:冒号(:) + 地址(2字符) + 功能码(2字符) + 数据(N字符) + LRC(2字符) + CR LF
常用功能码参考
0x01
读线圈寄存器
取得一组逻辑线圈的当前状态(ON/OFF)
数据类型:位
0x02
读离散输入寄存器
取得一组开关输入的当前状态(ON/OFF)
数据类型:位
0x03
读保持寄存器
在一个或多个保持寄存器中取得当前的二进制值
数据类型:整型、浮点型、字符型
0x04
读输入寄存器
在一个或多个输入寄存器中取得当前的二进制值
数据类型:整型、浮点型
0x05
写单个线圈寄存器
强置一个逻辑线圈的通断状态
数据类型:位
0x06
写单个保持寄存器
把具体二进制值装入一个保持寄存器
数据类型:整型、浮点型、字符型
0x15
写多个线圈寄存器
强置一串连续逻辑线圈的通断
数据类型:位
0x16
写多个保持寄存器
把具体的二进制值装入一串连续的保持寄存器
数据类型:整型、浮点型、字符型
工具说明

📖 Modbus ASCII 报文结构

字段长度描述
帧起始符1 字节消息开始,以:(0x3A)开头
地址2 字符节点地址
功能码2 字符主机要求从机执行的操作类型
数据N 字符命令的具体参数,格式取决于功能码
LRC校验2 字符纵向冗余检验码
结束符2 字节报文结束符(CR/LF)

📝 使用说明

输入报文
在输入框中粘贴或输入Modbus ASCII格式报文(以冒号开头)
选择方向
选择报文方向:主站→从站(请求)或从站→主站(响应)
自动解析
系统自动解析报文结构,验证LRC校验
4
查看详情
查看地址、功能码、数据域详情和LRC校验结果

⚠️ 注意事项

❓ 常见问题

Q1: 什么是Modbus ASCII协议?

Modbus ASCII是一种串行通信协议,使用ASCII字符编码传输数据。每个字节用2个十六进制字符表示,以冒号(:)开头,以CR LF结尾,使用LRC校验。相比RTU模式,ASCII模式传输效率较低,但数据可读性强。

Q2: LRC校验是什么?

LRC(Longitudinal Redundancy Check)是纵向冗余校验,计算方法是:将所有字节相加,取低8位,然后求补码(2's complement)。LRC占1字节,在报文中以2个ASCII字符表示。

Q3: Modbus ASCII和RTU有什么区别?

主要区别:1) ASCII使用可读字符,RTU使用二进制;2) ASCII以冒号开头,RTU无起始符;3) ASCII用LRC校验,RTU用CRC16校验;4) ASCII传输效率低但易读,RTU效率高但不可读。

Q4: 报文格式是怎样的?

格式:冒号(:) + 地址(2字符) + 功能码(2字符) + 数据(N字符) + LRC(2字符) + CR LF。每个字节用2个十六进制ASCII字符表示。

Q5: 如何识别错误响应?

错误响应的功能码最高位为1(即功能码+0x80),后面跟1字节的错误码。常见错误码:0x01非法功能码、0x02非法地址、0x03非法数据值等。

💡 使用场景

场景说明
PLC通信调试解析PLC与上位机之间的Modbus ASCII通信报文,排查通信故障
工业控制开发开发和调试工业控制系统时,验证Modbus ASCII报文格式是否正确
串口监控分析分析串口监控工具捕获的Modbus ASCII通信数据
传感器数据采集解析从Modbus ASCII传感器读取的数据报文
教学培训学习Modbus ASCII协议结构,理解各功能码的含义