IEC104-报文解析
IEC104-报文解析
一、四遥简要说明
在电力系统中,通常我们说的四遥是指:遥信、遥测、遥控、遥调(通过通信协议远距离传输给设备或者调度)。有时候会加上遥脉(可以看成是一种特殊的遥测),说明如下:
名称 | 简单解释 | 类型 | 方向 | 详细解释 | 举例 |
---|---|---|---|---|---|
遥信YX | 远程信号 | 开关量 | 输入 | 将被监视厂站设备状态信号远距离传送给调度 | 开关位置信号 |
遥测YC | 远程测量 | 模拟量 | 输入 | 将被监视厂站的参数变量远距离传送给调度 | 功率、电压、电流 |
遥控YK | 远程控制 | 开关量 | 输出 | 从调度发出命令以实现远方操作和切换。通常只取两种状态指令 | 开关的分、合 |
遥调YT | 远程信号 | 模拟量 | 输出 | 从调度发出命令以实现对远方设备进行调整操作 | 发电机的输出功率 |
遥脉YM | 远程累加 | 累积量 | 输入 | 对远程装置发出的脉冲信号进行周期累计,其值递增 | 电表度数 |
二、四遥信息体基地址范围
104调度规约有1997年和2002年两个版本,在流程上没有什么变化,02版只是在97版上扩展了遥测、遥信等信息体基体址,区别如下:
类别 | 1997版基地址 | 2002版基地址 |
---|---|---|
遥信 | 1H——400H | 1H——4000H |
遥测 | 701H——900H | 4001H——5000H |
遥控 | B01H——B80H | 6001H——6100H |
遥调 | B81H——C00H | 6201H——6400H |
遥脉 | C01H——C80H | 6401H——6600H |
三、报文字节数设置
此配置要主站和子站协商,有的主站可能设为1,1,2,双方要一致
类别 | 配置方式 |
---|---|
公共地址字节数 | 2 |
传输原因字节数 | 2 |
信息体地址字节数 | 3 |
四、报文分析
以公共地址字节数=2,传输原因字节数=2,信息体地址字节数=3为例对一些基本的报文分析
1、首次建立连接(U帧)
- 发送→激活传输启动:
1 | 68(启动符)04(APDU长度,这个长度不包括启动字符和APDU长度字符)07(控制域)00 00 00->报文总长度=APDU长度+2 |
- 接收→确认激活传输启动:
1 | 68(启动符)04(长度)0B(控制域)00 00 00 |
2、总召唤(可变长I帧)
召唤YC、YX(可变长I帧)初始化后定时发送总召唤,每次总召唤的间隔时间一般设为15分钟召唤一次,不同的主站系统设置不同。
发送→总召唤 :
1
2
3
4
5
6
7
8
9
1068 0E 00 00 00 00 64 01 06 00 01 00 00 00 00 14
68(启动符)0E(长度)
00 00(发送序号)00 00(接收序号)
64(类型标示)
01(可变结构限定词)
06 00(传输原因)
01 00(公共地址即RTU地址)
00 00 00(信息体地址)
14(区分是总召唤还是分组召唤,02年修改后的规约中没有分组召唤,目前都是响应总召唤)接收→S帧 :
1
2注意:记录接收到的长帧,双方可以按频率发送,比如接收8帧I帧回答一帧S帧,也可以要求接收1帧I帧就应答1帧S帧。
68 04 01 00 02 00接收→总召唤确认(发送帧的镜像,除传送原因不同):
1
2
3
4
5
6
7
8
9
1068 0E 00 00 00 00 64 01 07 00 01 00 00 00 00 14(召唤限定词)
68(启动符)0E(长度)
00 00(发送序号)00 00(接收序号)
64(类型标示)
01(可变结构限定词)
07 00(传输原因)
01 00(公共地址即RTU地址)
00 00 00(信息体地址)
14(同上)发送→S帧 :
1
2注意:记录接收到的长帧,双方可以按频率发送,比如接收8帧I帧回答一帧S帧,也可以要求接收1帧I帧就应答1帧S帧。
68 04 01 00 02 00接收→YX帧(以类型标识1为例):
1
2
3
4
5
6
7
8
968 1A 02 00 02 00 01 04 14 00 01 00 03 00 00 00(遥信的分合状态)
68(启动符)1A(长度)
02 00(发送序号)02 00(接收序号)
01(类型标示,单点遥信)
04(可变结构限定词)
14 00(传输原因,响应总召唤)
01 00(公共地址即RTU地址)
03 00 00(信息体地址,第3号遥信)00(遥信分)发送→S帧 :
1
68 04 01 00 04 00
接收→YX帧(以类型标识3为例):
1
2
3
4
5
6
7
8
9
10
11
1268 1E 04 00 02 00 03 05 14 00 01 00 01 00 00 02 06 00 00 02 0A 00 00 01 0B 00 00 02 0C 00 00 01
68(启动符)1E(长度)
04 00(发送序号)02 00(接收序号)
03(类型标示,双点遥信)
05(可变结构限定词)
14 00(传输原因,响应总召唤)
01 00(公共地址)
01 00 00(信息体地址,第1号遥信)02(遥信合)
06 00 00(信息体地址,第6号遥信)02(遥信合)
0A 00 00(信息体地址,第10号遥信)01(遥信分)
0B 00 00(信息体地址,第11号遥信)02(遥信合)
0C 00 00(信息体地址,第12号遥信)01(遥信分)发送→S帧 :
1
68 04 01 00 06 00
接收→YC帧(以类型标识9为例):
1
2
3
4
5
6
7
8
9
10
1168 13 06 00 02 00 09 82 14 00 01 00 01 07 00 A1 10 00 89 15 00
68(启动符)13(长度)
06 00(发送序号)02 00(接收序号)
09(类型标示,带品质描述的遥测)
82(可变结构限定词,有2个连续遥测上送,1000 0010)
14 00(传输原因,响应总召唤)
01 00(公共地址)
01 07 00(信息体地址,从0X0701开始第0号遥测)
A1 10(遥测值10A1)00(品质描述)
89 15(遥测值1589)00(品质描述)发送→S帧 :
1
68 04 01 00 08 00
接收→结束总召唤帧 :
1
2
3
4
5
6
7
8
968 0E 08 02 00 64 01 0A 00 01 00 00 00 00 14
68(启动符)0E(长度)
08 00(发送序号)02 00(接收序号)
64(类型标示)
01(可变结构限定词)
0A00(传输原因)
01 00(公共地址)
00 00 00(信息体地址)14(区分是总召唤还是分组召唤,02年修改后的规约中没有分组召唤)发送→S帧 :
1
68 04 01 00 0A 00
3、发送对时报文
(通过设置RTU参数表中的”对时间隔”,单位是分钟,一般是20分钟)
发送→对时命令 :
1
2
3
4
5
6
7
8
968 14 02 00 0A 00 67 01 06 00 01 00 00 00 00 01 02 03 04 81 09 05
68(启动符)14(长度)
02 00(发送序号)0A00(接收序号)
67(类型标示)
01(可变结构限定词)
06 00(传输原因)
01 00(公共地址)
00 00 00(信息体地址)01(毫秒低位)02(毫秒高位)03(分钟)04(时)81(日与星期)09(月)05(年)接收→对时确认
1
2
3
4
5
6
7
8
968 14 0C 00 02 00 67 01 07 00 01 00 00 00 00 ** ** ** 04 81 09 05
68(启动符)14(长度)
0C 00(发送序号)02 00(接收序号)
67(类型标示)
01(可变结构限定词)
07 00(传输原因)
01 00(公共地址)
00 00 00(信息体地址)**(毫秒低位)**(毫秒高位)**(分钟)04(时)81(日与星期)09(月)05(年)发送→S帧 :
1
68 04 01 00 0E 00
4、电度总召唤(遥脉)
(如果没有电度此步骤可以省略且可以在对时之前以送.通过设置参数中”全数据扫描间隔”,单位是分钟一般是15分钟召唤一交,如果不需要召唤电度一定要将参数中的电度个数设为0)
发送→召唤电度:
1
2
3
4
5
6
7
8
968 0E 04 00 0E 00 65 01 06 00 01 00 00 00 00 45
68(启动符)0E(长度)
04 00(发送序号)0E 00(接收序号)
65(类型标示)
01(可变结构限定词)
06 00(传输原因)
01 00(公共地址)
00 00 00(信息体地址)45(QCC)接收→召唤确认(发送帧的镜像,除传送原因不同) :
1
2
3
4
5
6
7
8
968 0E 10 00 06 00 65 01 07 00 01 00 00 00 00 45
68(启动符)0E(长度)
10 00(发送序号)06 00(接收序号)
65(类型标示)
01(可变结构限定词)
07 00(传输原因)
01 00(公共地址)
00 00 00(信息体地址)45(QCC)发送→S帧:
1
68 04 01 00 12 00
接收→电度数据:
1
2
3
4
5
6
7
8
9
1068 1A 12 00 06 00 0F 02 05 00 01 00 01 0C 00 00 00 00 00 00 02 0C 00 00 00 00 00 01
68(启动符)1A(长度)
12 00(发送序号)06 00(接收序号)
0F(类型标示)
02(可变结构限定词,有两个电度量上送)
05 00(传输原因)
01 00(公共地址)
01 0C 00(信息体地址,从0X0C01开始第0号电度)00 00 00 00(电度值)00(描述信息)
02 0C 00(信息体地址,从0X0C01开始第1号电度)00 00 00 00(电度值)01(描述信息)发送→S帧 :
1
68 04 01 00 14 00
接收→结束总召唤帧 :
1
2
3
4
5
6
7
8
968 0E 14 00 06 00 65 01 0A 00 01 00 00 00 00 45
68(启动符)0E(长度)
14 00(发送序号)06 00(接收序号)
65(类型标示)
01(可变结构限定词)
0A00(传输原因)
01 00(公共地址)
00 00 00(信息体地址)45(QCC)发送→S帧 :
1
68 04 01 00 16 00
5、如果RTU有变化数据主动上送
主动上送变位遥信,类型标识为1或3
接收→变位遥信 :
1
2
3
4
5
6
7
8
968 0E 16 00 06 00 01 01 03 00 01 00 03 00 00 00
68(启动符)0E(长度)
16 00(发送序号)06 00(接收序号)
01(类型标示,单点遥信)
01(可变结构限定词,有1个变位遥信上送)
03 00(传输原因,表突发事件)
01 00(公共地址即RTU地址)
03 00 00(信息体地址,第3号遥信)00(遥信分)发送→S帧 :
1
68 04 01 00 18 00
接收→变位遥信 :
1
2
3
4
5
6
7
8
968 0E 18 00 06 00 03 01 03 00 01 00 06 00 00 01
68(启动符)0E(长度)
18 00(发送序号)06 00(接收序号)
03(类型标示,双点遥信)
01(可变结构限定词,有1个变位遥信上送)
03 00(传输原因,表突发事件)
01 00(公共地址即RTU地址)
06 00 00(信息体地址,第6号遥信)01(遥信分)发送→S帧 :
1
68 04 01 00 1a 00
6、主动上送SOE,类型标识为0x1e或0x1f
接收→SOE
1
2
3
4
5
6
7
8
9
1068 15 1A 00 06 00 1E 01 03 00 01 00 08 00 00 00 AD 39 1C 10 7A 0B 05
68(启动符)15(长度)
1a 00(发送序号)06 00(接收序号)
1e(类型标示,单点遥信)
01(可变结构限定词,有1个SOE)
03 00(传输原因,表突发事件)
01 00(公共地址,即RTU地址)
08 00 00(信息体地址,第8号遥信)00(遥信分)
ad(毫秒低位)39(毫秒高位)1c(分钟)10(时)7a(日与星期)0b(月)05(年)发送→S帧
1
68 04 01 00 1c 00
**接收→SOE **
1
2
3
4
5
6
7
8
9
1068 15 1C 00 06 00 IF 01 03 00 01 00 0A 00 00 01 2F 40 1C 10 7A 0B 05
68(启动符)15(长度)
1c 00(发送序号)06 00(接收序号)
1f(类型标示,双点遥信)
01(可变结构限定词,有1个SOE)
03 00(传输原因,表突发事件)
01 00(公共地址即RTU地址)
0a 00 00(信息体地址,第10遥信)01(遥信分)
2f(毫秒低位)40(毫秒高位)1c(分钟)10(时)7a(日与星期)0b(月)05(年)
7、确认连接状态
如果主站超过一定时间没有下发报文或RTU也没有上送任何报文则双方都可以按频率发送U帧,测试帧
发送→U帧
1
68 04 43 00 00 00
接收→应答
1 | 68 04 83 00 00 00 |
8、遥控
发送→遥控预置
1
2
3
4
5
6
7
8
968 0E 20 00 06 00 2E 01 06 00 01 00 05 0B 00 82
68(启动符)0e(长度)
20 00(发送序号)06 00(接收序号)
2e(类型标示)
01(可变结构限定词)
06 00(传输原因)
01 00(公共地址即RTU地址)
05 0b 00(信息体地址,遥控号=0xb05-0xb01=4)82(控合)接收→遥控返校
1
2
3
4
5
6
7
8
968 0E 06 00 22 00 2E 01 07 00 01 00 05 0B 00 82
68(启动符)0e(长度)
06 00(发送序号)22 00(接收序号)
2e(类型标示)
01(可变结构限定词)
07 00(传输原因)
01 00(公共地址即RTU地址)
05 0b 00(信息体地址,遥控号=0xb05-0xb01=4)82(控合)发送→遥控执行
1
2
3
4
5
6
7
8
968 0E 22 00 08 00 2E 01 06 00 01 00 05 0B 00 02
68(启动符)0e(长度)
22 00(发送序号)08 00(接收序号)
2e(类型标示)
01(可变结构限定词)
06 00(传输原因)
01 00(公共地址即RTU地址)
05 0b 00(信息体地址,遥控号=0xb05-0xb01=4)02(控合)接收→执行确认
1
2
3
4
5
6
7
8
968 0E 08 00 24 00 2E 01 07 00 01 00 05 0B 00 02
68(启动符)0e(长度)
08 00(发送序号)24 00(接收序号)
2e(类型标示)
01(可变结构限定词)
07 00(传输原因)
01 00(公共地址即RTU地址)
05 0b 00(信息体地址,遥控号=0xb05-0xb01=4)02(控合)发送→遥控撤消
1
2
3
4
5
6
7
8
968 0E 04 00 18 00 2E 01 08 00 01 00 05 0B 00 02
68(启动符)0e(长度)
04 00(发送序号)18 00(接收序号)
2e(类型标示)
01(可变结构限定词)
08 00(传输原因)
01 00(公共地址即RTU地址)
05 0b 00(信息体地址,遥控号=0xb05-0xb01=4)02(控合)**接收→撤消确认 **
1
2
3
4
5
6
7
8
968 0E 12 00 08 00 2E 01 09 00 01 00 05 0B 00 02
68(启动符)0e(长度)
12 00(发送序号)08 00(接收序号)
2e(类型标示)
01(可变结构限定词)
09 00(传输原因)
01 00(公共地址即RTU地址)
05 0b 00(信息体地址,遥控号=0xb05-0xb01=4)02(控合)
补充说明:
1、报文中的长度指的是除启动字符与长度字节的所有字节
2、注意长帧报文中的“发送序号”与“接收序号”具有抗报文丢失功能
五、参考文档
1、IEC104规约(一)协议结构阐述 - 卷毛七号 - 博客园 (cnblogs.com)
2、IEC104规约(二)协议报文解析 - 卷毛七号 - 博客园 (cnblogs.com)
3、南方电网DL634.5.104-2002远动协议实施细则
4、广东电网公司企业标准-广东电网公司104实施细则