IEC60870-5-104报文解析

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

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

偌大个104规约其实组成部分很简单:
APCI+ASDU,APCI的6个字节是固定的,起动字符即是固定同步头,那控制域呢?
IEC60870-5-104三种类型报文控制域
控制域是个什么鬼?
控制域以收发***的连续性,确保报文的完整性和连续性,也是104通道问题排查的不二利器。但是帧格式类型不同,控制域定义也不相同。
1
I帧报文控制域——(编号的信息传输格式)
IEC60870-5-104报文解析
可见在I格式的数据帧中,收发***就是控制域的全部内容,而且都是偶数递增:2→4→6→8 因为末位bit为0,不会是奇数。

2
S帧报文控制域——(编号的监视功能格式)
IEC60870-5-104报文解析
最常见的S帧就是子站上送数据后,主站响应。举个栗子,子站当前发送***为1E66,调度应该响应"哦,收到1E66那帧了,下一帧该发1E68了",报文如下:
子站发送:68 xx 66 1E xx xx xx xx……
主站回复: 68 04 01 00 68 1E

3
U帧报文控制域——(编号的监视功能格式)
IEC60870-5-104报文解析
主站发送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格式
IEC60870-5-104报文解析
重要的事情说三遍!!
类型标识!!
类型标识!!
类型标识!!
有多重要?好比最让小编头痛的小学语文作业:通读全文,分析本文主旨!
一帧报文是总召、遥信、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。
IEC60870-5-104报文解析

说了这么多
其实都是
——“废话”!
真正有用的
才刚刚开始…
下面
我们开始“真正的解析”
1/8
初始化过程
IEC60870-5-104报文解析
2/8
测试报文
IEC60870-5-104报文解析
3/8
遥信变位上送
IEC60870-5-104报文解析
4/8-8/8
还有什么?

且等




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

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

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

可变结构限定词通常只有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!
IEC60870-5-104报文解析
IEC60870-5-104报文解析

5/8
时间同步命令
IEC60870-5-104报文解析

6/8
遥控报文
IEC60870-5-104报文解析

子站响应调度的遥控,传送原因是07,如果是否定应答,传送原因是47。
7/8
SOE报文
IEC60870-5-104报文解析
8/8
变化遥测报文
IEC60870-5-104报文解析
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就介绍到这里,有宝贵的建议可以私信小电工哦!
如果觉得赞请记得分享哟!拜了个拜~

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