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

图片

之前104协议相关文章,经常有朋友让发一些104报文共学习分析,经常没有时间逐一回复,最近索性开发一个104报文分析小程序,以便有需要的朋友使用和学习,小程序还未正式上线,今天发布一个体验版,欢迎扫码体验。

图片

小程序名称:104调试及进制转换

图片

功能模块:

 1. 104报文解析 

- 功能描述 :解析IEC 60870-5-104协议报文

- 支持多种类型标识(TI)解析

- 遥信报文解析(TI=1,3,30,31)

- 遥测报文解析(TI=9,11,13)

- 遥控命令解析(TI=45,46)

- 故障事件信息解析(TI=42)

- 文件服务解析(TI=210)

- 电能量召唤命令解析(TI=101)

- 电能量数据报文解析(TI=206,207)

- 远程参数读写解析(TI=200,201,202,203)

- 软件升级解析(TI=211)

- 小端模式数据解析

- SQ位支持(单对象/多对象)

- 品质描述词解析

- 协议标识符显示

2. 进制转换 

- 功能描述 :不同进制之间的数值转换

- 主要特性 :

  - 二进制、八进制、十进制、十六进制互转

  - 支持整数和小数转换

  - 实时计算显示结果 

图片

3. 日期转换 

- 功能描述 :日期格式转换

- 主要特性 :

  - 公历日期转换

  - 农历日期转换

  - 时间戳转换

图片

4. 数据类型转换 

- 功能描述 :不同数据类型之间的转换

- 主要特性 :

  - 字节序转换(大端/小端)

  - 数据类型转换(int、float、string等)

  - 十六进制数据解析

  - 位操作工具 

图片

5. 问题反馈 

- 功能描述 :用户反馈问题和建议,欢迎点赞

图片

报文解析功能

报文

68 8F 06 00 02 00 0D 9A 14 00 01 00 01 40 00 00 00 71 43 00 CD CC CC 40 00 CD CC CC 40 00 CD CC A0 42 00 00 00 00 00 00 00 00 

00 00 00 00 00 00 00 00 00 00 00 00 00 85 EB 47 42 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3F 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 20 40 00 66 

66 66 42 00 33 33 71 42 00 00 00 00 00 00 00 00 00 00 00

解析结果:

I帧(信息传输帧)这是一个104 I帧,用于传输信息数据字段含义:

- 启动字符: 68 - 104协议启动字符

- APDU长度: 143 - APDU数据单元长度

- 控制域: 06000200 - 控制信息

- 帧类型: I帧 - 信息传输帧

- 发送序列号(SN): 3 - 发送序列号

- 接收序列号(RN): 1 - 接收序列号

- 类型标识(TI): 13 - 测量值,短浮点数 (M_ME_NC_1)

- 可变结构限定词(VSQ): 9A - 顺序信息元素集合,数目: 26

- - 数量(number): 26 - 信息对象数目: 26

- - 单个/顺序(SQ): 1 - 顺序信息元素集合

- 传输原因(COA): 1400 - 响应站召唤 introgen - 遥信报文常用

- - 原因序号(Cause): 20 - 响应站召唤 introgen - 遥信报文常用

- - 肯定/否定(P/N): 0 - 否定确认

- - 试验标志(T): 0 - 未试验

- 应用服务数据单元公共地址: 0100 - 公共地址值: 1 (0x0001)

- 遥测对象1 - 信息对象地址(IOA): 014000 - 地址值: 16385 (0x004001)

- 遥测对象1 - 测量值: 00007143 - 短浮点数: 241.000000

- 遥测对象1 - 品质描述词(QDS): 00 - 未溢出, 未封锁, 未取代, 当前值, 有效

- 遥测对象2 - 信息对象地址(IOA): (递增) - 地址值: 16386

- 遥测对象2 - 测量值: CDCCCC40 - 短浮点数: 6.400000

- 遥测对象2 - 品质描述词(QDS): 00 - 未溢出, 未封锁, 未取代, 当前值, 有效

- 遥测对象3 - 信息对象地址(IOA): (递增) - 地址值: 16387

- 遥测对象3 - 测量值: CDCCCC40 - 短浮点数: 6.400000

- 遥测对象3 - 品质描述词(QDS): 00 - 未溢出, 未封锁, 未取代, 当前值, 有效

- 遥测对象4 - 信息对象地址(IOA): (递增) - 地址值: 16388

- 遥测对象4 - 测量值: CDCCA042 - 短浮点数: 80.400002

- 遥测对象4 - 品质描述词(QDS): 00 - 未溢出, 未封锁, 未取代, 当前值, 有效

- 遥测对象5 - 信息对象地址(IOA): (递增) - 地址值: 16389

- 遥测对象5 - 测量值: 00000000 - 短浮点数: 0.000000

- 遥测对象5 - 品质描述词(QDS): 00 - 未溢出, 未封锁, 未取代, 当前值, 有效

- 遥测对象6 - 信息对象地址(IOA): (递增) - 地址值: 16390

- 遥测对象6 - 测量值: 00000000 - 短浮点数: 0.000000

- 遥测对象6 - 品质描述词(QDS): 00 - 未溢出, 未封锁, 未取代, 当前值, 有效

- 遥测对象7 - 信息对象地址(IOA): (递增) - 地址值: 16391

- 遥测对象7 - 测量值: 00000000 - 短浮点数: 0.000000

- 遥测对象7 - 品质描述词(QDS): 00 - 未溢出, 未封锁, 未取代, 当前值, 有效

- 遥测对象8 - 信息对象地址(IOA): (递增) - 地址值: 16392

- 遥测对象8 - 测量值: 00000000 - 短浮点数: 0.000000

- 遥测对象8 - 品质描述词(QDS): 00 - 未溢出, 未封锁, 未取代, 当前值, 有效

- 遥测对象9 - 信息对象地址(IOA): (递增) - 地址值: 16393

- 遥测对象9 - 测量值: 85EB4742 - 短浮点数: 49.980000

- 遥测对象9 - 品质描述词(QDS): 00 - 未溢出, 未封锁, 未取代, 当前值, 有效

- 遥测对象10 - 信息对象地址(IOA): (递增) - 地址值: 16394

- 遥测对象10 - 测量值: 00000000 - 短浮点数: 0.000000

- 遥测对象10 - 品质描述词(QDS): 00 - 未溢出, 未封锁, 未取代, 当前值, 有效

- 遥测对象11 - 信息对象地址(IOA): (递增) - 地址值: 16395

- 遥测对象11 - 测量值: 00000000 - 短浮点数: 0.000000

- 遥测对象11 - 品质描述词(QDS): 00 - 未溢出, 未封锁, 未取代, 当前值, 有效

- 遥测对象12 - 信息对象地址(IOA): (递增) - 地址值: 16396

- 遥测对象12 - 测量值: 0000803F - 短浮点数: 1.000000

- 遥测对象12 - 品质描述词(QDS): 00 - 未溢出, 未封锁, 未取代, 当前值, 有效

- 遥测对象13 - 信息对象地址(IOA): (递增) - 地址值: 16397

- 遥测对象13 - 测量值: 00000000 - 短浮点数: 0.000000

- 遥测对象13 - 品质描述词(QDS): 00 - 未溢出, 未封锁, 未取代, 当前值, 有效

- 遥测对象14 - 信息对象地址(IOA): (递增) - 地址值: 16398

- 遥测对象14 - 测量值: 00000000 - 短浮点数: 0.000000

- 遥测对象14 - 品质描述词(QDS): 00 - 未溢出, 未封锁, 未取代, 当前值, 有效

- 遥测对象15 - 信息对象地址(IOA): (递增) - 地址值: 16399

- 遥测对象15 - 测量值: 00000000 - 短浮点数: 0.000000

- 遥测对象15 - 品质描述词(QDS): 00 - 未溢出, 未封锁, 未取代, 当前值, 有效

- 遥测对象16 - 信息对象地址(IOA): (递增) - 地址值: 16400

- 遥测对象16 - 测量值: 00000000 - 短浮点数: 0.000000

- 遥测对象16 - 品质描述词(QDS): 00 - 未溢出, 未封锁, 未取代, 当前值, 有效

- 遥测对象17 - 信息对象地址(IOA): (递增) - 地址值: 16401

- 遥测对象17 - 测量值: 00000000 - 短浮点数: 0.000000

- 遥测对象17 - 品质描述词(QDS): 00 - 未溢出, 未封锁, 未取代, 当前值, 有效

- 遥测对象18 - 信息对象地址(IOA): (递增) - 地址值: 16402

- 遥测对象18 - 测量值: 00000000 - 短浮点数: 0.000000

- 遥测对象18 - 品质描述词(QDS): 00 - 未溢出, 未封锁, 未取代, 当前值, 有效

- 遥测对象19 - 信息对象地址(IOA): (递增) - 地址值: 16403

- 遥测对象19 - 测量值: 00000000 - 短浮点数: 0.000000

- 遥测对象19 - 品质描述词(QDS): 00 - 未溢出, 未封锁, 未取代, 当前值, 有效

- 遥测对象20 - 信息对象地址(IOA): (递增) - 地址值: 16404

- 遥测对象20 - 测量值: 00000000 - 短浮点数: 0.000000

- 遥测对象20 - 品质描述词(QDS): 00 - 未溢出, 未封锁, 未取代, 当前值, 有效

- 遥测对象21 - 信息对象地址(IOA): (递增) - 地址值: 16405

- 遥测对象21 - 测量值: 00000000 - 短浮点数: 0.000000

- 遥测对象21 - 品质描述词(QDS): 00 - 未溢出, 未封锁, 未取代, 当前值, 有效

- 遥测对象22 - 信息对象地址(IOA): (递增) - 地址值: 16406

- 遥测对象22 - 测量值: 00002040 - 短浮点数: 2.500000

- 遥测对象22 - 品质描述词(QDS): 00 - 未溢出, 未封锁, 未取代, 当前值, 有效

- 遥测对象23 - 信息对象地址(IOA): (递增) - 地址值: 16407

- 遥测对象23 - 测量值: 66666642 - 短浮点数: 57.599998

- 遥测对象23 - 品质描述词(QDS): 00 - 未溢出, 未封锁, 未取代, 当前值, 有效

- 遥测对象24 - 信息对象地址(IOA): (递增) - 地址值: 16408

- 遥测对象24 - 测量值: 33337142 - 短浮点数: 60.299999

- 遥测对象24 - 品质描述词(QDS): 00 - 未溢出, 未封锁, 未取代, 当前值, 有效

- 遥测对象25 - 信息对象地址(IOA): (递增) - 地址值: 16409

- 遥测对象25 - 测量值: 00000000 - 短浮点数: 0.000000

- 遥测对象25 - 品质描述词(QDS): 00 - 未溢出, 未封锁, 未取代, 当前值, 有效

- 遥测对象26 - 信息对象地址(IOA): (递增) - 地址值: 16410

- 遥测对象26 - 测量值: 00000000 - 短浮点数: 0.000000

- 遥测对象26 - 品质描述词(QDS): 00 - 未溢出, 未封锁, 未取代, 当前值, 有效解析步骤:

1. 检测104协议格式

2. 解析基本字段(启动字符、长度、控制域)

3. 解析控制域各字节

4. 判断帧类型(I帧)

5. 计算序列号

6. 逐字段解析ASDU部分

APDU格式:

- 启动字符(1字节):68H

- APDU长度(1字节):最大253

- 控制域(4字节)

- ASDU部分(可变长度)

控制域解析:

- 控制域八位位组1的第一位 bit0= 0

- 控制域八位位组3的第一位 bit0= 0

- 发送序列号SN = (控制域八位位组2 << 8 + 控制域八位位组1) >> 1

- 接收序列号RN = (控制域八位位组4 << 8 + 控制域八位位组3) >> 1

ASDU部分按字节解析:

- 类型标识(1字节):定义信息对象的结构、类型和格式

- <1..127>:标准定义(兼容范围)

- <128..135>:为路由报文保留(专用范围)

- <136..255>:特殊应用(专用范围)

- 可变结构限定词(1字节):定义信息对象的数量和结构

- bit0-bit6:应用服务数据单元信息元素的数目

- bit7(SQ):表示信息单元元素是单个或者是按照顺序的

- <0>:寻址同一种类型的许多信息对象中单个的信息元素或者信息元素的集合

- <1>:寻址 ASDU 单个信息对象中顺序的单个信息元素的同类集合

- 传输原因(2字节):

- byte2=0

- byte3:

- bit0-bit5:传输原因序号

- bit6:肯定/否定,1表示肯定确认,0表示否定确认

- bit7:试验标志,1表示试验,0表示未试验

- 公共地址(2字节):应用服务数据单元的公共地址

- 信息对象地址(3字节):信息对象的地址

- 信息元素(可变长度):实际的信息数据

小程序名称:104调试及进制转换

图片

欢迎关注

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐