IEC60870-5-104报文解析(一)

首先
还是得讲点理论知识
首先的首先,IEC60870-5-104是干嘛用的你造吗?简单来说,IEC60870-5-104常用于子站与调度主站通讯,是一种通讯协议。

IEC60870-5-104基本报文格式

偌大个104规约其实组成部分很简单:
APCI+ASDU,APCI的6个字节是固定的,起动字符即是固定同步头,那控制域呢?
IEC60870-5-104三种类型报文控制域
控制域是个什么鬼?
控制域以收发序列号的连续性,确保报文的完整性和连续性,也是104通道问题排查的不二利器。但是帧格式类型不同,控制域定义也不相同。
1
I帧报文控制域——(编号的信息传输格式)

可见在I格式的数据帧中,收发序列号就是控制域的全部内容,而且都是偶数递增:2→4→6→8 因为末位bit为0,不会是奇数。

2
S帧报文控制域——(编号的监视功能格式)

最常见的S帧就是子站上送数据后,主站响应。举个栗子,子站当前发送序列号为1E66,调度应该响应"哦,收到1E66那帧了,下一帧该发1E68了",报文如下:
子站发送:68 xx 66 1E xx xx xx xx……
主站回复: 68 04 01 00 68 1E

3
U帧报文控制域——(编号的监视功能格式)

主站发送STARTDT命令68 04 07 00 00 00,就是在第一个字节的bit1、bit2、bit3置1,所以是07,子站会回复STARTDT确认,同理是在bit1、bit2、bit4置1,因此子站会回复68 04 0B 00 00 00

IEC60870-5-104——ASDU格式

重要的事情说三遍!!
类型标识!!
类型标识!!
类型标识!!
有多重要?好比最让小编头痛的小学语文作业:通读全文,分析本文主旨!
一帧报文是总召、遥信、SOE、遥测、遥脉、遥控、遥调、校时,全看类型标识!

类型标识枚举:
01——单点遥信 03——双点遥信
02、31—单点SOE 04、32—双点SOE
09、11、13、21——遥测(家族庞大)
45、46——遥控(单双点)
48、49、50——遥调(对应不同类型值)
64—总召唤 65—遥脉总召 67—校时
IEC60870-5-104起始地址
IEC60870-5-104规约起始地址如下,目前基本都用2002版IEC60870-5-104。

说了这么多
其实都是
——“废话”!
真正有用的
才刚刚开始…
下面
我们开始“真正的解析”
1/8
初始化过程

2/8
测试报文

3/8
遥信变位上送

4/8-8/8
还有什么?

且等




IEC60870-5-104报文解析(二)

阔别一周,
我小电工又回来啦!

APDU=APCI+ASDU
上一篇咱们说到每一帧104报文可以视为一个APDU,APCI已经详细剖析过(排查问题的佐证)没什么内涵。而ASDU,上周已经剧透,最重要的是类型标识,那其他构成的意义你造吗?

可变结构限定词通常只有2种情况:

  1. 01 (0x01+0x80=0x81)
  2. 上送信号个数(+0x80)
    为了区别上送的信号是顺序上送和非顺序上送,最高位有1和0的区别,所以会出现括号里数值的情况,这里不展开细述了。

传送原因常用的有:
01——周期、循环 03——突变
06——激活 07——激活确认
08——停止激活 09——停止激活确认
0a——激活结束 14——响应总召唤

偌大的电力系统里,一个调度通常会管辖不少的变电子站,每个子站会有一个分配好的唯一的子站地址,公共体地址就是这个“编号”,通常,每个子站只处理调度主站向该子站下发的指令,判别的依据就是这个公共体地址,如果发现命令中该地址的数值与自己的"编号”不符,则会废弃该指令,予以拒绝响应。如果发现调度下发总召、遥控,子站都无响应,小电工肯定会第一时间检查子站地址的设置。

信息体地址则是更为细分的导向。这里也不展开阐述,言而总之,这么规范的编号定义是高效信息交互和的基础和排查问题的基石。

下面,我们还是来看详实的报文范例。

4/8
总召唤
小电工不会告诉你主要是看:
类型标识64! 传送原因06、07、14、0a!

5/8
时间同步命令

6/8
遥控报文

子站响应调度的遥控,传送原因是07,如果是否定应答,传送原因是47。
7/8
SOE报文

8/8
变化遥测报文

K/W机制
IEC-104规定了两个参数K和W,其取值范围为1到32767,其中K表示发送方在有K个I格式报文未得到对方的确认时,将停止数据传送。例如K值为3:

W表示接收方最迟在接收了W个I格式报文后应发出认可。例如W是2:

IEC-104规定K和W的默认值分别为12个APDU和8个APDU。在实际中,K和W的具体取值可以根据TCP连接双方的数据通信量来加以确定,对于子站端来说,每收到一个调度端的I格式报文都应立即进行响应,其W的取值实际上为1,由于子站端可以循环向主站端发送遥信、遥测等信息,因此K的取值与其循环发送的定时周期有关,通常12到20个APDU就足够了;对于主站端,由于不停接收到RTU的数据,因此应及时地给以确认,通常W取小于等于8个APDU的值。
然后 . . .
我们回过头来看,104规约就是APDU报文帧,而APDU=APCI+ASDU,
ASDU=类型标识+可变结构限定词+传送原因+公共地址+信息体地址+内容,传输过程中通过控制域序列号和K/W机制来保障传输的可靠性。
怎样,是不是很简单?!

噢了,就酱,104就介绍到这里,有宝贵的建议可以私信小电工哦!
如果觉得赞请记得分享哟!拜了个拜~

小电工经验尚浅,您的参与及建议将是我们不断进步的源泉!

IEC60870-5-104报文解析相关推荐

  1. 制作IEC101/104报文解析工具

    文章目录 准备 一.IEC101/104协议 二.制作解析工具步骤 1.建立协议族 2.建立协议 3.建立术语 4.建立报文块 5.建立报文解析规则 总结 准备 这里是基于<在线解析二进制报文& ...

  2. 20201217-IP报文解析

    20201215-IP报文解析 {1}报文结构 ![图片.png](https://img-blog.csdnimg.cn/img_convert/718558a49aa5479c6049e1ea7f ...

  3. 基于DPI(深度报文解析)的应用识别

    一.概述 1.DPI(Deep packet inspection,深度报文解析) 所谓"深度"是和普通的报文分析层次相比較而言的,"普通报文检測"仅分析IP包 ...

  4. hj212协议如何和php通讯,HJ212数据传输标准报文解析

    HJ212分为2005年(HJ/T212-2005)和2017年(HJ212-2017)的版本,略有不同. 网上没找到非常官方的渠道下载,在这贴一份2017年版本的下载地址 TCP/IP通讯包组成 名 ...

  5. 双层json报文样例_json报文解析

    1.json字符串报文解析 for (Iterator> iterator = map.entrySet().iterator(); iterator.hasNext(); ) { Map.En ...

  6. 8583 报文解析过程

    一. 全局概述 1. <多渠道平台接入接口规范>这个标准规定了各种接入端(主要包括直联多渠道平台的终端, 包括这里主要关注的POS机)与中国银联多渠道平台之间进行联机交易时使用的报文接口, ...

  7. 第一章 银联8583报文解析

    1报文格式定义 POS终端上送POS中心的消息报文结构包括TPDU.报文头和应用数据三部分: -- TPDU说明:长度为10个字节, 压缩时用BCD码表示为5个字节长度的数值. -- 报文头说明:总长 ...

  8. DPI(Deep packet inspection,深度报文解析)

    DPI(Deep packet inspection,深度报文解析) 正好,有这么一个基于opendpi框架的深度报文分析的工具--ndpi ndpi是在opendpi的基础上编写而来的协议分析工具. ...

  9. 【通信原理】PC上调试MODBUS基本功能(附报文解析)

    目录 一 测试环境配置: 二 MODBUS概述: 三 MODBUS测试步骤: 四 MODBUS协议分析: 一 测试环境配置: 本文用到的测试工具如下: (1)Mthings:MThings是一款基于M ...

最新文章

  1. 基于服务器的AAA作业(第二次)
  2. java守护线程的特性
  3. 【BZOJ3932】[CQOI2015]任务查询系统 主席树
  4. 1-1圆柱体的表面积(算法竞赛入门经典)
  5. python实例方法、类方法@classmethod、静态方法@staticmethod和属性方法@property区别
  6. 12306验证码为什么那么变态?都是这项深度学习应用给逼的
  7. 并查集一般高级应用的理解
  8. SpringBoot总结之浅析自动化配置原理
  9. 剑指 Offer 13. 机器人的运动范围 【重刷】
  10. linux 下安装minio并配置
  11. 第三次握手为什么没有序列号_“三次握手,四次挥手”你真的懂吗?
  12. 2014年07月21日
  13. 易筋SpringBoot 2.1 | 第十一篇:SpringBoot使用actuator
  14. hadoop 虚拟化基础
  15. Java代理模式概述及应用场景
  16. 图片轮播banner实现
  17. [益智]:平面上有 2N + 1 个点,其中无三点共线,也无四点共圆,是否一定存在三个点,经过这三点作一个圆,使得圆内点数等于园外点数?
  18. 机器学习两种参数估计方法:最大似然估计和最小二乘法估计
  19. CAD高版本窗体阵列LISP_[转载]AutoCAD高版本怎么把阵列对话框调出来?
  20. 计量经济学(stata)笔记1 记录每天的进步

热门文章

  1. 小程序怎么搭建?学会这些技巧,开启创业之路
  2. Sklearn标准化和归一化方法汇总(2):Min-Max归一化
  3. Candence PCB Allegro⑤DRC、光绘及其他命令
  4. 移动认证焕新升级 智慧认证赋能数据流通安全保障
  5. 安装python3.10.1教程
  6. 般若波罗密多心经浅说
  7. 《数字语音处理》- 1. 基于MATLAB的语音信号时域特征分析
  8. 再见HTML ! 用纯Python就能写一个漂亮的网页
  9. 企业微信api接口调用-企业微信好友收发消息
  10. 航班数据实时查询技术整理与剖析