IEC60870 104 报文实例解析


-------------------------------------------------------------------------------------------------------------------------------------
以公共地址字节数=2,传输原因字节数=2,信息体地址字节数=3 为例对一些常用的报文进行举例分析:

	1)报文中的长度指的是除启动字符与长度字节外的所有字节总数。
	2)长帧报文中的“发送序号”与“接收序号”具有抗报文丢失功能。

8.1. 建立网络连接或启动链路

	主站发送→激活传输启动: 68(启动符)04(长度)07(控制域)00 00 000x07=0000 0111,0x0B=0000 1011】
	从站发送→确认激活传输启动: 68(启动符)04(长度)0B(控制域)00 00 00      
	
8.2. 停止链路

	建立网络连接后,可停止链路,只响应 U 帧测试帧。
	主站发送→停止链路: 68(启动符)04(长度)13(控制域)00 00 000x13=0001 0011,0x23=0010 0011】
	从站发送→确认停止链路: 68(启动符)04(长度)23(控制域)00 00 00
	
8.3. U 帧测试帧

	如果主站超过一定时间没有下发报文或装置也没有上送任何报文,则双方都可以按频率发送 U 帧测试帧:
	主站发送→U 帧测试帧: 68(启动符)04(长度)43(控制域)00 00 000x43=0100 0011,0x83=1000 0011】
	从站发送→应答 U 帧测试帧: 68(启动符)04(长度)83(控制域)00 00 00
	
8.4. S 帧测试帧

	记录接收到的长帧,主站可以按频率发送 S 帧,比如接收 8I 帧回答一帧 S 帧,也可以要求接收1I 帧就应答 1S 帧。
	主站发送→S 帧: 68(启动符)04(长度)01(控制域)00 10 000x01=0000 0001,0x02=0000 0010-------------------------------------------------------------------------------------------------------------------------------------------------------	
8.5. 总召唤 

	召唤 YCYX(可变长 I 帧),初始化后定时发送总召唤,每次总召唤的间隔时间一般设为 15 分钟召唤一次,不同的主站系统设置不同。 
	主站发送→总召唤:68 0E 00 00 00 00 64 01 06 00 01 00 00 00 00 14,	
		68(启动符)0E(长度)00 00I 帧,发送序号)00 00(接收序号)64(类型标示100:总召唤)01(可变结构限定词。sq=0,信息对象地址不连续。)
		06 00(传输原因:激活,下行)01 00(公共地址即装置地址)00 00 00(信息体地址)14(区分是总召唤还是分组召唤,2002 年修改后的规约中没有分组召唤)。
	从站发送→总召唤确认(发送帧的镜像,除传送原因不同):
		68(启动符)0E(长度)00 00(发送序号)00 00(接收序号)64(类型标示100:总召唤)01(可变结构限定词)   
		07 00(传输原因:激活确认) 01 00(公共地址即装置地址)00 00 00(信息体地址)14(同上).
	从站发送→YC 帧(类型标示符 09 带品质描述的遥测,传输原因:14 响应总召唤):
		68(启动符)13(长度)06 00(发送序号)02 00(接收序号)09(类型标示:带品质描述的遥测,规一化遥测值,不带时标)821000 0010】(可变结构限定词,SQ = 1:信息对象的地址连续,2个连续遥测上送,信息对象的个数是214 00(传输原因20	:响应总召唤)01 00(公共地址)01 40 00(信息体地址,从 0X4001 开始第 0 号遥测)A1 10(遥测值 10A1)00(品质描述)89 15(遥测值 158900(品质描述,IV = 0 状态有效,NT=0 刷新成功,SB=0 未被取代,BL=0 未被封锁,RES: 保留位3位,OV=0 未溢出)
	从站发送→YX 帧(类型标示符为 01 的单点遥信,传输原因:14 响应总召唤):
		68(启动符)1A(长度)02 00(发送序号)02 00(接收序号)01(类型标示:单点遥信,带品质描述,不带时标)04(sq=0,不连续;可变结构限定词,有 4 个遥信上送)14 00(传输原因:响应总召唤)
		01 00(公共地址即装置地址)01 00 00(信息体基地址)00(第 1 号遥信,分)01(第 2 号遥信,合)00(第 3 号遥信,分)00(第4 号遥信,分)
	从站发送→结束总召唤帧(主站发送总召唤命令,从站才对应发送结束总召唤帧):
		68(启动符)0E(长度)08 00(发送序号)02 00(接收序号)64(类型标示:总召唤)01(可变结构限定词)0A 00(传输原因10:激活结束)01 00(公共地址)
		00 00 00(信息体地址)14(区分是总召唤还是分组召唤,02 年修改后的规约中没有分组召唤)
	主站发送→S 帧:
		68 04 01 00 0A 00S帧,0A=00001010,接收序列号10】 0A 01 02 02  0A 01 0C 02
-------------------------------------------------------------------------------------------------------------------------------------------------------			
8.6. 对时

	主站发送→对时命令:
		68(启动符)14(长度:2002 00(发送序号,I 帧,C_CS_NA_1)0A 00(接收序号,1067(类型标示:时钟同步,10301(可变结构限定词,SQ = 0 :信息对象的地址不连续;信息对象的个数为106 00(传输原因:激活)01 00(公共地址)00 00 00(信息体地址)01(毫秒低位)02(毫秒高位)03(分钟)04(时)81(日与星期)09(月)10(年)
	从站发送→对时确认:
		68(启动符)14(长度:20)0A 00(发送序号)02 00(接收序号)67(类型标示:时钟同步,10301(可变结构限定词,SQ = 0 :信息对象的地址不连续;信息对象的个数为107 00(传输原因:激活确认)01 00(公共地址)00 00 00(信息体地址)01(毫秒低位)02(毫秒高位)03(分钟)04(时)81(日与星期)09(月)10(年)
	主站发送→S 帧:
		68 04 01 00 0E 00 
		
	2022-07-29 16:57:12:242	时钟同步命令(激活)	 68 14 02 00 0C 00  67 01 06 00 01 00 00 00 00      
		D2(十进制:2102F(47)(1101 0010,0010 1111) 39(0011 1001 分钟) 10(0001 0000 小时) BD(1011 1101 周、日) 07(0000 0111) 16(0001 0110) 
		毫秒=0010 1111 1101 0010=12242
		分钟=(iv是0,时标有效)111001=57
		小时=10000=16=101=5=11101=29=0111=7=0010110=22
		iv=0,时标有效
	

		
8.7. 全遥测

	从站发送→YC 帧(以类型标示符 09 为例):68 13 06 00 02 00 09 82 01 00 01 00 01 40 00 A1 10 00 89 15 00
		68(启动符)13(长度 1906 00(发送序号)02 00(接收序号)09(类型标示9:带品质描述的遥测)82(可变结构限定词,有 2 个连续遥测上送)01 00(传输原因:周期、循环)
		01 00(公共地址)01 40 00(信息体地址,从 0X4001 开始第 0 号遥测)A1 10(遥测值 10A1)00(品质描述)89 15(遥测值 158900(品质描述)
	主站发送→S 帧(从站发送周期循环数据时,主站发送 S 帧):
		68 04 01 00 04 00
		
	68 13 06 00 02 00 09 82 01 00 01 00 01 40 00 A1 10 00 89 15 00
	68 10 52 00 04 00 0B 01 01 00 01 00 6E 00 00 22 00 00		

8.8. 全遥信

	从站发送→YX 帧(以类型标示符为 01 的单点遥信为例):
		68(启动符)1A(长度)02 00(发送序号)02 00(接收序号)01(类型标示1:单点遥信)04(可变结构限定词,有 4 个遥信上送)01 00(传输原因:周期、循环)01 00(公共地址即装置地址)01 00 00(信息体基地址)00(第 1 号遥信,分)01(第 2 号遥信,合)00(第 3 号遥信,分)00(第4 号遥信,分)
	主站发送→S 帧(从站发送周期循环数据时,主站发送 S 帧):
		68 04 01 00 04 00
	从站发送→YX 帧(以类型标示符为 03 的双点遥信为例):
		68(启动符)1C(长度)04 00(发送序号)02 00(接收序号)03(类型标示3:双点遥信)04(可变结构限定词,有 4 个遥信上送)01 00(传输原因:周期、循环) 01 00(公共地址)01 00 00(信息体基地址)01(第 1 号遥信,分)02(第 2 号遥信,合)01(第 3 号遥信,分)01(第 4 号遥信,分)
	主站发送→S 帧(从站发送周期循环数据时,主站发送 S 帧):
		68 04 01 00 04 00
	
	
8.9. 变化遥信

	如果有变化数据产生,装置会主动上送至主站,主动上送的变位遥信如下:
	从站发送→变位遥信(以类型标示符为 01 的单点遥信为例):
		68(启动符)0E(长度)16(0001 0110,I) 00(发送序号)06 00(接收序号)01(类型标示1:单点遥信,带品质描述,不带时标)01(可变结构限定词,有 1 个变位遥信上送,sq=0表信息对象地址不连续)
		03 00(传输原因:表突发事件)01 00(公共地址即装置地址)03 00 00(信息体地址,第 3 号遥信)00(遥信分???应该是3个字节地址编号和一个字节遥信信息体数据??????)
	主站发送→S 帧:
		68 04 01(s帧) 00 18(0001 1000 接收序列号24) 00
	从站发送→变位遥信(以类型标示符为 03 的单点遥信为例):
		68(启动符)0E(长度)18 00(发送序号)06 00(接收序号)03(类型标示3:双点遥信)01(可变结构限定词,有 1 个变位遥信上送)03 00(传输原因:表突发事件)
		01 00(公共地址即装置地址)03 00 00(信息体地址,第 3 号遥信)01(遥信分)
	主站发送→S 帧:
		68 04 01 00 1a 00
		
8.10. SOE.SOE 生成时,装置会主动上送至主站。
	从站发送→SOE(以类型标示符为 1e 的单点遥信为例)::
		68(启动符)15(长度)1a 00(发送序号)06 00(接收序号)1e(类型标示30:单点遥信的 SOE01(可变结构限定词,有 1SOE03 00(传输原因:表突发事件)01 00(公共地址即装置地址)03 00 00(信息体地址,第 3 号遥信)00(遥信分)ad(毫秒低位)39(毫秒高位)1c(分钟)10(时)7a(日与星期)09(月)10(年)
	主站发送→S 帧:
		68 04 01 00 1c 00
	从站发送→SOE(以类型标示符为 1f 的双点遥信为例)::
		68(启动符)15(长度)1c 00(发送序号)06 00(接收序号)1f(类型标示31:双点遥信的 SOE01(可变结构限定词,有 1SOE03 00(传输原因:表突发事件)01 00(公共地址即装置地址)03 00 00(信息体地址,第 3 遥信)01(遥信分)ad(毫秒低位)39(毫秒高位)1c(分钟)10(时)7a(日与星期)09(月)10(年)
	主站发送→S 帧:
		68 04 01 00 1c 00
	
8.11. 遥控

(1)以类型标示为 2d 不带时标的单点遥控为例:
	主站发送→遥控选择:68 0E 06 00 0A 00 2D 01 06 00 01 00 02 60 00 81
		68(启动符)0e(长度)06 00(发送序号)0a 00(接收序号)2d(类型标示45:不带时标的单点遥控)01(可变结构限定词)06 00(传输原因:激活)01 00(公共地址即装置地址)02 60 00(信息体地址,遥控号=0x0602-0x0601=181(控合)
	从站发送→遥控返校:
		68(启动符)0e(长度)0a 00(发送序号)06 00(接收序号)2d(类型标示45:不带时标的单点遥控)01(可变结构限定词)07 00(传输原因:激活确认)01 00(公共地址即装置地址)02 60 00(信息体地址,遥控号=0x0602-0x0601=181(控合)
	主站发送→遥控执行:
		68(启动符)0e(长度)08 00(发送序号)0c 00(接收序号)2d(类型标示45:不带时标的单点遥控)01(可变结构限定词)06 00(传输原因:激活)01 00(公共地址即装置地址)02 60 00(信息体地址,遥控号=0x0602-0x0601=101(控合)
	从站发送→执行确认:
		68(启动符)0e(长度)0c 00(发送序号)08 00(接收序号)2d(类型标示45:不带时标的单点遥控)01(可变结构限定词)07 00(传输原因:激活确认)01 00(公共地址即装置地址)02 60 00(信息体地址,遥控号=0x0602-0x0601=101(控合)
	主站发送→遥控撤消:
		68(启动符)0e(长度)04 00(发送序号)0e 00(接收序号)2d(类型标示45:不带时标的单点遥控)01(可变结构限定词)08 00(传输原因:停止激活)01 00(公共地址即装置地址)02 60 00(信息体地址,遥控号=0x0602-0x0601=101(控合)
	从站发送→撤消确认:
		68(启动符)0e(长度)0e 00(发送序号)08 00(接收序号)2d(类型标示45:不带时标的单点遥控)01(可变结构限定词)09 00(传输原因:停止激活确认)01 00(公共地址即装置地址)02 60 00(信息体地址,遥控号=0x0602-0x0601=101(控合)遥控选择时,如果遥控点号超范围或者遥控命令与类型标示符不符时,装置发送激活结束:
	从站发送→激活结束:
		68(启动符)0e(长度)0e 00(发送序号)08 00(接收序号)2d(类型标示45:不带时标的单点遥控)01(可变结构限定词)0a 00(传输原因10:激活结束)01 00(公共地址即装置地址)02 60 00(信息体地址,遥控号=0x0602-0x0601=181(控合)
(2)以类型标示为 3b 带 7 字节长时标的双点遥控为例:
	主站发送→遥控选择:
		68(启动符)15(长度)02 00(发送序号)06 00(接收序号)3b(类型标示59:带 7 字节长时标的双点遥控)01(可变结构限定词)06 00(传输原因:激活)01 00(公共地址即装置地址)01 06 00(信息体地址,遥控号=0x06001-0x6001=081(控分) f2(ms 低位) 79(ms 高位) 1a(分钟) 0b(小时) 02(星期加日) 09(月) 10(年)
	从站发送→遥控返校:
		68(启动符)15(长度)06 00(发送序号)02 00(接收序号)3b(类型标示59: 带 7 字节长时标的双点遥控)01(可变结构限定词)07 00(传输原因:激活确认)01 00(公共地址即装置地址)01 06 00(信息体地址,遥控号=0x06001-0x6001=081(控分) f2(ms 低位) 79(ms 高位) 1a(分钟) 0b(小时) 02(星期加日) 09(月) 10(年)
	主站发送→遥控执行:
		68(启动符)15(长度)04 00(发送序号)08 00(接收序号)3b(类型标示59:带 7 字节长时标的双点遥控)01(可变结构限定词)06 00(传输原因:激活)01 00(公共地址即装置地址)01 06 00(信息体地址,遥控号=0x06001-0x6001=001(控分) f2(ms 低位) 79(ms 高位) 1a(分钟) 0b(小时) 02(星期加日) 09(月) 10(年)
	从站发送→执行确认:
		68(启动符)15(长度)08 00(发送序号)04 00(接收序号)3b(类型标示59:带 7 字节长时标的双点遥控)01(可变结构限定词)07 00(传输原因:激活确认)01 00(公共地址即装置地址)01 06 00(信息体地址,遥控号=0x06001-0x6001=001(控分) f2(ms 低位) 79(ms 高位) 1a(分钟) 0b(小时) 02(星期加日) 09 
	主站发送→遥控撤消:
		68(启动符)15(长度)06 00(发送序号)0a 00(接收序号)3b(类型标示59:带 7 字节长时标的双点遥控)01(可变结构限定词)08 00(传输原因:停止激活)01 00(公共地址即装置地址)01 06 00(信息体地址,遥控号=0x06001-0x6001=001(控分) f2(ms 低位) 79(ms 高位) 1a(分钟) 0b(小时) 02(星期加日) 09(月) 10(年)
	从站发送→撤消确认:
		68(启动符)15(长度)0a 00(发送序号)06 00(接收序号)3b(类型标示59:带 7 字节长时标的双点遥控)01(可变结构限定词)09 00(传输原因:停止激活确认)01 00(公共地址即装置地址)01 06 00(信息体地址,遥控号=0x06001-0x6001=001(控分) f2(ms 低位) 79(ms 高位) 1a(分钟) 0b(小时) 02(星期加日) 09(月) 10(年)遥控选择时,如果遥控点号超范围或者遥控命令与类型标示符不符时,装置发送激活结束:
	从站发送→激活结束:
		68(启动符)15(长度)0e 00(发送序号)08 00(接收序号)3b(类型标示59:带 7 字节长时标的双点遥控)01(可变结构限定词)0a 00(传输原因10:激活结束)01 00(公共地址即装置地址)01 60 00(信息体地址,遥控号=0x0601-0x0601=081(控分)f2(ms 低位) 79(ms 高位) 1a(分钟)0b(小时) 02(星期加日) 09(月) 10(年)

8.12. 电度总召唤

	电度可以在对时之前发送。通过设置参数中”全数据扫描间隔”,单位是分钟,一般是 15 分钟召唤一次电度,如果不需要召唤电度一定要将参数中的电度个数设为 0。如果没有电度此步骤可以省略。
	主站发送→召唤电度:68 0E 04 00 0c 00 65 01 06 00 01 00 00 00 00 45
		68(启动符)0E(长度1404 00(发送序号I)0c 00(接收序号I1265(类型标示101:召唤全电度)01(可变结构限定词)06 00(传输原因:激活)01 00(公共地址即装置地址)00 00 00(信息体地址)45QCC从站发送→召唤确认(发送帧的镜像,除传送原因不同)68(启动符)0E(长度) 0c 00(发送序号)04 00(接收序号)65(类型标示101:召唤全电度)01(可变结构限定词)07 00(传输原因:激活确认)01 00(公共地址即装置地址)00 00 00(信息体地址)45QCC)
	主站发送→S 帧:
		68 04 01 00 12 00
	从站发送→电度数据:
		68(启动符)1A(长度)0e 00(发送序号)06 00(接收序号)0F(类型标示15:不带时标的电能量,每个电能量占 5 个字节)02(可变结构限定词,有两个电度量上送)05 00(传输原因:请求或被请求)01 00(公共地址即装置地址)01 64 00(信息体地址,从 0X6401 开始第 0 号电度)00 00 00 00(电度值)00(描述信息)02 64 00(信息体地址,从 0X6402 开始第 1 号电度)00 00 00 00(电度值)01(描述信息)
	主站发送→S 帧:
		68 04 01 00 14 00
	从站发送→结束总召唤帧:
		68(启动符)0E(长度)14 00(发送序号)06 00(接收序号)65(类型标示示101:召唤全电度)01(可变结构限定词)0A 00(传输原因10:激活结束)01 00(公共地址即装置地址)00 00 00(信息体地址)45QCC)
	主站发送→S 帧:
		68 04 01 00 16 00

8.12. 循环数据的主动上送测试 68 10 52 00 04 00 0B 01 01 00 01 00 6E 00 00 22 00 00
	68 10(长度1652(发送序号8200 04 00(接收序号4) 0B(类型标识11,标度化遥测值) 01(可变结构限定词,sq=0信息对象的地址不连续,信息对象最大个数是101 00(传送原因1,周期循环) 01 00(公共地址1) 
	6E 00 00(信息题地址) 22 00(循环值) 00(品质描述)

	68 13 06 00 02 00 09 82 01 00 01 00 01 40 00 A1 10 00 89 15 00
	68 10 52 00 04 00 0B 01 01 00 01 00 6E 00 00 22 00 00

发送报文代码:

//printf("SingleCommand_create ==================\n");

 CS101_ASDU newAsdu1 = CS101_ASDU_create(alParameters, false, CS101_COT_PERIODIC, 0, 1, false, false);
 InformationObject io1 = (InformationObject)SingleCommand_create(NULL, 5000, true, false, 0);


 CS101_ASDU_addInformationObject(newAsdu, io1);

 InformationObject_destroy(io1);

 CS101_Slave_enqueueUserDataClass2(slave, newAsdu1);

 CS101_ASDU_destroy(newAsdu1);

C 打印时间:

#include <time.h>
#pragma warning(disable:4996)



void formatDebugTime() {
    time_t t;
    time(&t);
    struct tm* myt = localtime(&t);
    printf("[TIME INFO] %d-%d-%d %d:%d:%d : ", myt->tm_year + 1900, myt->tm_mon + 1, myt->tm_mday, myt->tm_hour, myt->tm_min, myt->tm_sec);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值