已更新系列文章包括104、61850、modbus 、储能系统等,欢迎关注。

欢迎使用104协议解析小程序:104调试及进制转换
1 “选择文件”功能使用说明

在报文解析页面,通过“选择文件”按钮从聊天会话中选择一个文本文件,小程序会按当前选定的协议自动提取其中的完整报文,点击“开始解析”即可批量解析并分页查看结果。全程在本地完成,不依赖网络和后端。
文件要求
|
文件类型 |
.txt
、.log、.csv、.hex |
|
文件大小 |
不超过 200MB |
|
文件编码 |
UTF-8 文本(带 BOM 自动去除);二进制文件会被拒绝 |
|
选择数量 |
一次一个文件 |
|
报文条数 |
单个文件最多提取 10,000 条完整报文,超出部分截断并提示 |
空文件、无法读取或未提取到完整报文时,无法开始批量解析。
使用步骤
在“协议类型”中选择文件对应的协议(104 / 101 / Modbus TCP / Modbus RTU / DL/T 645-2007 / IEC 103)。
点击“选择文件”,从聊天文件中选取报文日志文件。
等待提取完成,页面显示文件名、完整报文数、未识别片段数,可分页浏览提取到的报文。(支持自动模糊提取对应协议的16进制报文,即报文日志文件可包含其他日志信息,小程序自动提取有效报文)
点击“开始解析”,逐条解析全部报文并显示进度;可随时点击“停止”。
解析完成后分页查看结果;单条报文失败只标记错误,不影响其他报文。
注意事项
- 按单一协议提取
:请确保所选协议与文件内容一致,混合协议内容不会被自动识别;切换协议后可按新协议重新提取同一文件。
- 未识别片段
:日志中无法构成完整报文的内容(如截断的帧、非报文行)会计入未识别片段数,不参与解析。
- 大文件建议拆分
:提取报文和解析结果会保存为本地文件(结果文件体积通常为源文件的数倍),受微信本地存储 200MB 上限约束。文件过大导致存储超限时,请按时间段拆分后分批导入。
- 任务文件自动清理
:每次导入新文件会自动清理上一任务的本地文件,不会长期占用设备存储。
2、解析效果实例:

第 1 条 · 成功 · Modbus RTU报文
原始报文:01 04 81 E3 00 5A A9 FB
报文类型: Modbus RTU报文
这是一个Modbus RTU报文
字段含义:
– 从站地址: 01 – 地址值: 1
– 功能码: 04 – 读输入寄存器 (Read Input Registers)
– 起始地址: 81E3 – 地址: 33251 (寄存器号: 33252)
– 数量: 005A – 读取数量: 90 个寄存器
– CRC校验: A9FB – 校验正确
==================================================
第 2 条 · 成功 · Modbus RTU报文
原始报文:01 04 B4 09 33 01 3F 09 34 01 23 09 31 01 2F FF FF FE F9 FF FF FF 40 FF FF FF 7E FF FF FD B7 00 00 00 D3 00 00 00 21 00 00 00 22 00 00 01 16 00 00 02 E9 00 00 02 A9 00 00 02 C3 00 00 08 55 FF DD 13 89 00 05 EE 6B 00 04 0F 37 00 03 00 00 AA 55 00 00 00 00 00 00 00 22 00 00 00 04 00 00 00 00 00 14 00 C8 01 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 BC 45
报文类型: Modbus RTU报文
这是一个Modbus RTU报文
字段含义:
– 从站地址: 01 – 地址值: 1
– 功能码: 04 – 读输入寄存器 (Read Input Registers)
– 字节数: B4 – 返回字节数: 180
寄存器数据: 0933013F093401230931012FFFFFFEF9FFFFFF40FFFFFF7EFFFFFDB7000000D3000000210000002200000116000002E9000002A9000002C300000855FFDD13890005EE6B00040F3700030000AA5500000000000000220000000400000000001400C801050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 – 90个寄存器值
– – 寄存器1(33251,81E3): 0933 – 值: 2355
– – 寄存器2(33252,81E4): 013F – 值: 319
– – 寄存器3(33253,81E5): 0934 – 值: 2356
– – 寄存器4(33254,81E6): 0123 – 值: 291
– – 寄存器5(33255,81E7): 0931 – 值: 2353
– – 寄存器6(33256,81E8): 012F – 值: 303
– – 寄存器7(33257,81E9): FFFF – 值: 65535
– – 寄存器8(33258,81EA): FEF9 – 值: 65273
– – 寄存器9(33259,81EB): FFFF – 值: 65535
– – 寄存器10(33260,81EC): FF40 – 值: 65344
– – 寄存器11(33261,81ED): FFFF – 值: 65535
– – 寄存器12(33262,81EE): FF7E – 值: 65406
– – 寄存器13(33263,81EF): FFFF – 值: 65535
– – 寄存器14(33264,81F0): FDB7 – 值: 64951
– – 寄存器15(33265,81F1): 0000 – 值: 0
– – 寄存器16(33266,81F2): 00D3 – 值: 211
– – 寄存器17(33267,81F3): 0000 – 值: 0
– – 寄存器18(33268,81F4): 0021 – 值: 33
– – 寄存器19(33269,81F5): 0000 – 值: 0
– – 寄存器20(33270,81F6): 0022 – 值: 34
– – 寄存器21(33271,81F7): 0000 – 值: 0
– – 寄存器22(33272,81F8): 0116 – 值: 278
– – 寄存器23(33273,81F9): 0000 – 值: 0
– – 寄存器24(33274,81FA): 02E9 – 值: 745
– – 寄存器25(33275,81FB): 0000 – 值: 0
– – 寄存器26(33276,81FC): 02A9 – 值: 681
– – 寄存器27(33277,81FD): 0000 – 值: 0
– – 寄存器28(33278,81FE): 02C3 – 值: 707
– – 寄存器29(33279,81FF): 0000 – 值: 0
– – 寄存器30(33280,8200): 0855 – 值: 2133
– – 寄存器31(33281,8201): FFDD – 值: 65501
– – 寄存器32(33282,8202): 1389 – 值: 5001
– – 寄存器33(33283,8203): 0005 – 值: 5
– – 寄存器34(33284,8204): EE6B – 值: 61035
– – 寄存器35(33285,8205): 0004 – 值: 4
– – 寄存器36(33286,8206): 0F37 – 值: 3895
– – 寄存器37(33287,8207): 0003 – 值: 3
– – 寄存器38(33288,8208): 0000 – 值: 0
– – 寄存器39(33289,8209): AA55 – 值: 43605
– – 寄存器40(33290,820A): 0000 – 值: 0
– – 寄存器41(33291,820B): 0000 – 值: 0
– – 寄存器42(33292,820C): 0000 – 值: 0
– – 寄存器43(33293,820D): 0022 – 值: 34
– – 寄存器44(33294,820E): 0000 – 值: 0
– – 寄存器45(33295,820F): 0004 – 值: 4
– – 寄存器46(33296,8210): 0000 – 值: 0
– – 寄存器47(33297,8211): 0000 – 值: 0
– – 寄存器48(33298,8212): 0014 – 值: 20
– – 寄存器49(33299,8213): 00C8 – 值: 200
– – 寄存器50(33300,8214): 0105 – 值: 261
– – 寄存器51(33301,8215): 0000 – 值: 0
– – 寄存器52(33302,8216): 0000 – 值: 0
– – 寄存器53(33303,8217): 0000 – 值: 0
– – 寄存器54(33304,8218): 0000 – 值: 0
– – 寄存器55(33305,8219): 0000 – 值: 0
– – 寄存器56(33306,821A): 0000 – 值: 0
– – 寄存器57(33307,821B): 0000 – 值: 0
– – 寄存器58(33308,821C): 0000 – 值: 0
– – 寄存器59(33309,821D): 0000 – 值: 0
– – 寄存器60(33310,821E): 0000 – 值: 0
– – 寄存器61(33311,821F): 0000 – 值: 0
– – 寄存器62(33312,8220): 0000 – 值: 0
– – 寄存器63(33313,8221): 0000 – 值: 0
– – 寄存器64(33314,8222): 0000 – 值: 0
– – 寄存器65(33315,8223): 0000 – 值: 0
– – 寄存器66(33316,8224): 0000 – 值: 0
– – 寄存器67(33317,8225): 0000 – 值: 0
– – 寄存器68(33318,8226): 0000 – 值: 0
– – 寄存器69(33319,8227): 0000 – 值: 0
– – 寄存器70(33320,8228): 0000 – 值: 0
– – 寄存器71(33321,8229): 0000 – 值: 0
– – 寄存器72(33322,822A): 0000 – 值: 0
– – 寄存器73(33323,822B): 0000 – 值: 0
– – 寄存器74(33324,822C): 0000 – 值: 0
– – 寄存器75(33325,822D): 0000 – 值: 0
– – 寄存器76(33326,822E): 0000 – 值: 0
– – 寄存器77(33327,822F): 0000 – 值: 0
– – 寄存器78(33328,8230): 0000 – 值: 0
– – 寄存器79(33329,8231): 0000 – 值: 0
– – 寄存器80(33330,8232): 0000 – 值: 0
– – 寄存器81(33331,8233): 0000 – 值: 0
– – 寄存器82(33332,8234): 0000 – 值: 0
– – 寄存器83(33333,8235): 0000 – 值: 0
– – 寄存器84(33334,8236): 0000 – 值: 0
– – 寄存器85(33335,8237): 0000 – 值: 0
– – 寄存器86(33336,8238): 0000 – 值: 0
– – 寄存器87(33337,8239): 0000 – 值: 0
– – 寄存器88(33338,823A): 0000 – 值: 0
– – 寄存器89(33339,823B): 0000 – 值: 0
– – 寄存器90(33340,823C): 0000 – 值: 0
– CRC校验: BC45 – 校验正确
欢迎使用104协议解析小程序:104调试及进制转换
欢迎关注

往期文章推荐:
网路基础-路由表
储能系统-系统架构
Modbus协议及常用工具
单片机-Cortex-M3(1) 汇编基础知识
IEC61850实现方案和测试-1
101、104协议调试工具
版本管理工具-Git or SVN




