工具地址:打开Modbus ASCII在线工具
主要功能
- 请求命令生成:根据从站地址、功能码、起始地址、数量或写入数据生成标准的Modbus ASCII请求帧,并自动计算LRC。
- 响应报文生成:支持正常响应和异常响应,可以按照功能码、数据类型、字节序整理响应数据。
- 报文结构解析:输入完整的ASCII报文后,验证LRC,并显示从站地址、功能码、数据区、接收的LRC、计算的LRC。
- 自定义数据解析:可以按数据区偏移量设置名称、类型、字节序,解析寄存器中的指定数据。
- LRC的计算与验证:支持输入HEX字节或ASCII报文,页面显示LRC的十六进制值、十进制值、累加和的低8位、完整的ASCII帧。
- 批处理:支持粘贴多行文本,或选择TXT和CSV文件,可以批量执行命令生成、报文解析、LRC计算。
操作前的准备
- 生成请求时,准备从站地址、功能码、起始地址、数量或写入值。
- 生成响应时,根据设备数据准备响应类型、数据类型、字节序、响应数据。
- 解析报文时,准备以冒号开头的完整Modbus ASCII帧。页面中可以选择自动识别、请求帧、响应帧。
- 单独计算LRC时,可以准备HEX字节序列或完整的ASCII报文,并确认最后1字节是否为原LRC。
- 批处理时,可以直接粘贴多行文本,或选择页面明确支持的TXT或CSV文件。
完整操作步骤
-
设置参数并生成请求命令
进入“请求生成”选项卡,在左侧依次输入从站地址、选择功能码、设置起始地址。读取功能还需要数量,页面显示寄存器读取范围为1到125。使用写入功能时,按照页面显示的写入选项输入线圈或寄存器数据。如果需要在帧末尾显示回车和换行,则保留“显示CRLF帧尾”,确认后点击“生成命令”。
页面右侧的生成结果区用于显示ASCII报文、原始HEX、LRC、长度、字段说明,并提供“复制报文”和“复制HEX”按钮。
图1:选择请求生成,设置地址和功能码后执行生成 -
设置并生成响应报文
切换到“响应生成”,首先在“响应类型”中选择正常响应或异常响应。正常响应时,接着设置从站地址、功能码、数据类型、字节序,并用换行、逗号或空格分隔“响应数据”中的数据。异常响应时,从页面提供的异常码选项中选择。确认内容后,点击“生成响应”。
生成区根据所选场景显示ASCII报文、原始HEX、LRC、字段结构,便于确认响应帧的组成。
图2:选择响应类型、数据格式、响应数据 -
解析ASCII报文和寄存器数据
打开“报文解析”选项卡,选择报文方向、默认数据类型、默认字节序,然后将完整的ASCII帧放入“ASCII报文”输入区。如果需要提取指定的寄存器值,可以在“自定义解析规则”中设置名称、偏移量、类型、字节序,也可以点击“添加规则”来添加更多解析项。
确认输入和规则后,点击“解析报文”。页面的解析结果区显示LRC验证信息、帧字段、数据区内容、自定义规则对应的解析值。
图3:输入完整的ASCII帧,并根据需要设置解析规则 -
计算或确认LRC校验和
切换到“LRC验证”,首先选择“HEX字节”或“ASCII报文”的输入格式。如果输入内容的最后1字节为原LRC,可以勾选“最后1字节为原LRC”。如果需要显示帧尾,则勾选“显示CRLF帧尾”。将要验证的内容放入“输入数据”,点击“计算LRC”。
页面显示LRC HEX、LRC DEC、累加和的低8位、完整的ASCII帧,并在下方列出逐字节的累加过程。如果需要使用完整帧,可以点击“复制完整帧”。
图4:选择输入格式后计算LRC,并确认累加过程 -
批量处理多行文本或本地文件
进入“批处理”,在“处理模式”中选择批量命令生成、批量报文解析、批量LRC计算,并根据模式设置默认数据类型和默认字节序。可以在“批量文本”中粘贴多行,或从“批量文件”中选择TXT或CSV文件。页面说明,界面仅显示前20个文件,但处理时会处理所有选中的文件。
命令模式下,每行一个任务,按“从站,功能码,地址,数量/值,写入数据”的格式输入内容。确认格式后,点击“开始处理”,完成后在右侧表格中确认来源、输入、结果,并可以使用“复制摘要”。
图5:选择批量模式,通过多行文本或TXT和CSV文件添加任务
主要参数说明
| 参数 | 页面选项或功能 | 使用建议 |
|---|---|---|
| 功能码 | 01、02、03、04、05、06、0F、10 | 根据设备需要读取或写入的线圈、离散输入、保持寄存器、输入寄存器进行选择。 |
| 响应类型 | 正常响应、异常响应 | 正常通信时选择正常响应。模拟协议异常时,选择页面提供的异常码。 |
| 数据类型 | UINT16、INT16、UINT32、INT32、FLOAT32;部分场景还提供HEX字节 | 需要与设备的寄存器定义一致,以免将有符号数或浮点数解释为错误的类型。 |
| 字节序 | ABCD大端、DCBA小端、BADC字节交换、CDAB字交换 | 主要按照设备的通信文档进行选择。解析结果异常时,确认数据类型和字节序是否一致。 |
| 报文方向 | 自动识别、请求帧、响应帧 | 不确定时可以选择自动识别。来源明确时直接指定方向,有助于按照正确的结构解析。 |
| 自定义解析规则 | 名称、偏移量、类型、字节序 | 偏移量从有效数据区开始,按照目标数据实际占用的字节位置设置。 |
| LRC输入格式 | HEX字节、ASCII报文 | 输入完整帧时,确认是否包含原LRC,并正确设置“最后1字节为原LRC”。 |
| 显示CRLF帧尾 | 控制是否在完整的ASCII帧中显示回车和换行结尾 | 需要复制完整通信帧时保留。仅确认主体字节时,可以根据需要取消选择。 |
| 批处理模式 | 批量命令生成、批量报文解析、批量LRC计算 | 首先选择模式,按照页面提示准备每行的文本格式。 |
结果的显示与保存
请求和响应结果区提供“复制报文”和“复制HEX”。LRC结果区提供“复制完整帧”。批量结果区在处理完成后可以使用“复制摘要”。复制前,首先确认从站地址、功能码、数据区、LRC是否与目标设备的设置一致。
页面顶部的“保存设置”可以保存常用的从站地址、功能码、数据类型、字节序、解析规则,便于下次继续使用。如果需要恢复初始设置,可以使用顶部的“重置”按钮。
常见问题与使用建议
Modbus ASCII报文包含哪些部分?
页面的解析表按起始字符、从站地址、功能码、数据区、LRC、CR LF帧尾显示结构。输入以进行解析时,需要保留完整的ASCII帧。
LRC校验和是如何获取的?
页面显示逐字节累加值的低8位,并给出和的低8位及作为二进制补码的LRC。在“LRC验证”页面,可以同时确认十六进制和十进制结果。
功能码0F和10的写入数据应该如何输入?
页面说明,0F的多个线圈可以接受0、1或ON、OFF。10的多个寄存器可以选择UINT16、INT16、UINT32、INT32、FLOAT32或HEX字节,并设置对应的字节序。
ABCD、DCBA、BADC、CDAB应该如何选择?
页面分别显示为大端、小端、字节交换、字交换。需要以设备的寄存器和通信文档为准,对同一数据类型使用错误的字节序,会使解析值与预期不同。
解析中提示LRC不一致时应该怎么办?
首先确认输入是完整的ASCII报文,然后确认开头的冒号、数据区、原LRC、帧尾。也可以将主体字节放入“LRC验证”页面,根据实际情况设置“最后1字节为原LRC”后重新计算。
批量命令生成的文本格式是什么?
页面给出的格式为“从站,功能码,地址,数量/值,写入数据”,例如读取命令可以写成如下形式1,03,0,10。每个任务各占一行。首先使用页面的“示例”确认结构,然后替换为自己的内容。