376.1 规约
Q/GDW 376.1—2009电力用户用电信息采集系统通信协议报文解析示例
帧结构
帧头 [6B]
-
起始字符
起始字符占
1B
,是16进制的 "0x68" -
长度L
长度L占
2B
, 举例:56 00
转换后: 0056→BIN:00000000 01010110最右两位代表规约版本
右第三位起转换成10进制代表用户数据长度,这里为21.
用户数据区
控制域C [1B]
PRM=1时:
PRM=0时:
地址域A [5B]
链路用户数据 [nB]
-
应用层功能码 [1B]
应用功能码 AFN 应用功能定义 00H 确认∕否认 01H 复位 02H 链路接口检测 03H 中继站命令 04H 设置参数 05H 控制命令 06H 身份认证及密钥协商 07H 备用 08H 请求被级联终端主动上报 09H 请求终端配置 0AH 查询参数 0BH 请求任务数据 0CH 请求 1 类数据(实时数据) 0DH 请求 2 类数据(历史数据) 0EH 请求 3 类数据(事件数据) 0FH 文件传输 10H 数据转发 11H~FFH 备用 -
帧序列域 [1B]
-
PSEQ/RSEQ
启动帧序号 PSEQ 取自 1 字节的启动帧计数器 PFC 的低 4 位计数值 0~15。
PFC: 每一对启动站和从动站之间均有 1 个独立的、由 1 字节构成的计数范围为 0~255 的启动帧帧序号计数器 PFC,用于记录当前启动帧的序号。启动站每发送 1 帧报文,该计数器加 1,从 0~255 循环加 1递增;重发帧则不加 1。响应帧序号 RSEQ 以启动报文中的 PSEQ 作为第一个响应帧序号,后续响应帧序号在 RSEQ 的基础上循环加 1 递增,数值范围为 0~15。
帧序号改变规则
- 启动站发送报文后,当一个期待的响应在超时规定的时间内没有被收到,如果允许启动站
重发,则该重发的启动帧序号 PSEQ 不变。重发次数可设置,最多 3 次;重发次数为 0,
则不允许重发。 - 当 TpV=0 时,如果从动站连续收到两个具有相同启动帧序号 PSEQ 的启动报文,通常意味
着报文的响应未被对方站收到。在这种情况下,则重发响应(不必重新处理该报文)。 - 当 TpV=0 时,如果启动站连续收到两个具有相同响应帧序号 RSEQ 的响应帧,则不处理第
二个响应。 - 终端能同时处理多个请求。
- 启动站发送报文后,当一个期待的响应在超时规定的时间内没有被收到,如果允许启动站
-
-
数据单元标识 [4B]
-
信息点DA
当DA1和DA2全为“0”时,表示终端信息点,用p0表示;
当DA1=FFH、DA2=00H时,表示所有有效测量点(不含p0) -
信息类DT
-
表格用法
对于信息类DT,若原始数据为 "01 00":
将数据转换为二进制为 "0000'0001 0000'0000",得到 DT1 的第 0 位为真、DT2 的值为 0:
因此对应表中的信息类为 F1,意为终端版本信息。
-
电力用户用电信息采集系统通信协议报文解析示例
Q/GDW_376.1—2009电力用户用电信息采集系统通信协议报文解析示例
Q/GDW_376.1—2009电力用户用电信息采集系统通信协议报文解析示例
1. 集中器登录主站注册帧报文
该帧为集中器发送给主站的登录注册帧
-
登录帧(终端 -> 主站):
68 32 00 32 00 68 C9 03 44 04 00 00 02 71 00 00 01 00 88 1668 32 00 32 00 68 // 帧头,包含帧起始标志和长度L. C9 // 1100'1001. 控制域C。 // D7=1, (终端发送)上行方向。 // D6=1, 此帧来自启动站。 // D5=0, (上行方向)要求访问位。表示终端无事件数据等待访问。 // D4=0, 保留 // D3~D0=9, 功能码。链路测试 03 44 // 行政区划码 04 00 // 终端地址 00 // 主站地址和组地址标志。终端为单地址。 // 终端启动的发送帧的 MSA 应为 0, 其主站响应帧的 MSA 也应为 0. 02 // 应用层功能码。AFN=2, 链路接口测试 71 // 0111'0001. 帧序列域。无时间标签、单帧、需要确认。 00 00 // 信息点。DA1和DA2全为“0”时,表示终端信息点。 01 00 // 信息类。F9, 终端事件记录配置设置。 88 16 // 帧尾,包含用户区数据校验和和帧结束标志
-
确认帧(主站 -> 终端):
68 32 00 32 00 68 0B 03 44 04 00 00 00 61 00 00 01 00 B8 1668 32 00 32 00 68 0B // 0000'1001. 控制域C。 // (主站发送)下行方向、来自从动站、(下行方向)帧计数位无效; // 功能码=11,当PRM=0时,代表该帧报文的帧类型为请求/响应帧, // 服务功能为链路测试,及使用于AFN=02的应用层功能码。 03 44 // 行政区划码 04 00 // 终端地址 00 // 主站地址和组地址标志。终端为单地址。 // 终端启动的发送帧的 MSA 应为 0, 其主站响应帧的 MSA 也应为 0. 00 // 应用层功能码。AFN=0, 确认/否认 61 // 0110'0001, 帧序列域。无时间标签、单帧、无需确认。 00 00 // 信息点。DA1和DA2全为“0”时,表示终端信息点。 01 00 // 信息类。F9, 终端事件记录配置设置。 B8 16 // 帧尾。
2. 集中器与主站心跳帧帧报文
-
心跳帧(终端 -> 主站):
68 32 00 32 00 68 C9 03 44 04 00 00 02 72 00 00 04 00 8C 1668 32 00 32 00 68 // 帧头 C9 // 1100'1001. 控制域C。 // D7=1, (终端发送)上行方向。 // D6=1, 此帧来自启动站。 // D5=0, (上行方向)要求访问位。表示终端无事件数据等待访问。 // D4=0, 保留 // D3~D0=9, 功能码。链路测试 03 44 04 00 00 02 // 应用层功能码。链路接口测试 72 // 0111'0010. 帧序列域。无时间标签、单帧、需要确认。 00 00 // 信息点。DA1和DA2全为“0”时,表示终端信息点。 04 00 // 信息类。F3, 心跳。 8C 16 // 帧尾
-
确认帧(主站 -> 终端):
68 32 00 32 00 68 0B 03 44 04 00 00 00 62 00 00 01 00 B9 1668 32 00 32 00 68 // 帧头 0B // 0000'1001. 控制域C。 // (主站发送)下行方向、来自从动站、(下行方向)帧计数位无效; // 功能码=11,当PRM=0时,代表该帧报文的帧类型为请求/响应帧, // 服务功能为链路测试,及使用于AFN=02的应用层功能码。 03 44 04 00 00 00 // 应用层功能码。AFN=0, 确认/否认 62 // 0110'0010, 帧序列域。无时间标签、单帧、无需确认。 00 00 // 信息点。DA1和DA2全为“0”时,表示终端信息点。 01 00 // 信息类。F9, 终端事件记录配置设置。 B9 16 // 帧尾
3.[AFN=01]终端复位报文
-
发送内容(主站 -> 终端):
68 8A 00 8A 00 68 41 03 44 07 00 02 01 F1 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 C1 37 58 10 17 00 FC 1668 8A 00 8A 00 68 41 // 0100'0001, 控制域C。 // 下行方向、来自启动站、帧计数位无效、复位命令 03 44 // 行政区划码 07 00 // 终端地址 02 // 单地址、主站启动帧的MSA应为非0. 01 // 应用层功能码AFN. 复位。 F1 // 1111'0001. 帧序列域。带时间标签、单帧、需要确认。 00 00 // 信息点。终端信息点p0. 02 00 // 信息类。F2, 数据区初始化。 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // 消息认证码PW // AFN=01的报文格式中规定必须使用 // 消息认证码字段,长度为16字节。 C1 37 58 10 17 00 // 时间标签Tp FC 16
-
接收内容(终端 -> 主站):
68 4A 00 4A 00 68 80 03 44 07 00 02 00 E1 00 00 01 00 C1 37 58 10 17 00 29 1668 4A 00 4A 00 68 80 // 1000'0000, 控制域C。 // 上行报文、来自从动站、要求访问位ACD=0. // 服务功能为认可 03 44 07 00 02 // 单地址;主站启动帧的MSA应为非0, // 其终端响应帧的 MSA 应与主站发送帧的 MSA 相同 00 // 应用层功能码。AFN=0, 确认/否认 E1 // 1110'0001, 帧序列域。有时间标签、单帧、无需确认 00 00 // 信息点。终端信息点p0. 01 00 // 信息类。F9, 终端事件记录配置设置。 C1 37 58 10 17 00 // 时间标签Tp 29 16
-
时间标签 Tp:
数据名称 数据格式 单 位 字节数 对应值 启动帧帧序号计数器PFC BIN 1 C1 启动帧发送时标 见附录A.16 秒分时日 4 37 58 10 17 允许发送传输延时时间 BIN min 1 0 -
注意事项
-
时间标签Tp由启动站产生,并通过报文传送给从动站,从动站据此判决收到的报文的时序和时效性,如判别有效,从动站发送响应帧,并在响应帧中将时间标签Tp返回启动站。
-
启动帧发送时标:记录启动帧发送的时间。
-
允许发送传输延时时间:指启动帧从开始发送至从动站接收到报文之间启动站所允许的传输延时时间。
-
从动站的时效性判断规则:
- 如从动站的当前时间与Tp中的启动帧发送时标之间的时间差大于Tp中的允许传输延时时间,从动站则舍弃该报文;
- 如时间差不大于Tp中的允许传输延时时间,则做出响应;
- 如Tp中的允许传输延时时间为“0”,则从动站不进行上述两项的判断。
-
4.[AFN=04]设置终端参数
-
发送内容(主站 -> 终端):
68 6A 01 6A 01 68 4A 03 44 07 00 02 04 F4 00 00 02 01 02 00 01 00 01 00 01 02 00 00 00 00 00 00 00 00 00 00 00 00 04 09 01 00 00 00 00 00 00 02 00 02 00 42 01 01 00 00 00 00 00 00 00 00 00 00 00 04 09 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 10 00 09 17 00 34 1668 6A 01 6A 01 68 4A // 01001010. 下行方向、来自启动站、帧计数位无效、 // 请求1级数据。 03 44 07 00 02 // 地址域A. 04 // AFN=4, 设置参数。 F4 // 11110100, 有时间标签、单帧、需要确认 00 00 // 终端信息点p0. 02 01 // F10, 终端电能表/交流采样装置配置参数。 02 00 // !本次电能表/交流采样装置配置数量n 01 00 // 装置序号 01 00 // 测量点号 01 // 通信速率及端口号 02 // 通信协议类型 00 00 00 00 00 00 // 通信地址 00 00 00 00 00 00 // 通信密码 04 // 电能费率个数 09 // 有功电能示值整数位及小数位个数 01 00 00 00 00 00 // 所属采集器通信地址 00 // 用户大类号及用户小类号 02 00 // 装置序号... 02 00 // .......... 42 // .......... 01 // .......... 01 00 00 00 00 00 // .......... 00 00 00 00 00 00 // .......... 04 // .......... 09 // .......... 01 00 00 00 00 00 // .......... 00 // .......... 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // 消息认证码字段PW, // 协议格式中AFN=0x04有硬性规定必须使用消息认证码字段 04 10 00 09 17 00 // 时间标签 34 16
-
接收内容(终端 -> 主站):
68 4A 00 4A 00 68 88 03 44 07 00 02 00 E4 00 00 01 00 04 10 00 09 17 00 F1 16
(全部确认) -
终端电能表/交采装置配置数据单元格式
5.[AFN=0A]读取终端参数
-
发送内容(主站 -> 终端):
68 62 00 62 00 68 4B 03 44 07 00 02 0A E5 00 00 02 01 02 00 01 00 02 00 05 11 00 09 17 00 C8 16 -
接收内容(终端 -> 主站):
68 2A 01 2A 01 68 88 03 44 07 00 02 0A E5 00 00 02 01 02 00 01 00 01 00 01 02 00 00 00 00 00 00 00 00 00 00 00 00 04 09 01 00 00 00 00 00 00 02 00 02 00 42 01 01 00 00 00 00 00 00 00 00 00 00 00 04 09 01 00 00 00 00 00 00 05 11 00 09 17 00 6B 16
6.[AFN=05]下发控制命令 (Fn=31 Pn=0)
-
发送内容(主站 -> 终端):
68 A2 00 A2 00 68 4A 03 44 07 00 02 05 F1 00 00 40 03 37 56 08 17 A6 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 37 56 08 17 00 E3 16 -
接收内容(终端 -> 主站):
68 4A 00 4A 00 68 88 03 44 07 00 02 00 E1 00 00 01 00 01 37 56 08 17 00 67 16
(全部确认)
7.[AFN=0C]读取终端1类数据 (Fn=33 Pn=2)
-
发送内容(主站 -> 终端):
68 4A 00 4A 00 68 4B 03 44 07 00 02 0C E1 02 01 01 04 51 16 19 09 17 00 30 16 -
接收内容(终端 -> 主站):
68 BE 01 BE 01 68 A8 03 44 07 00 02 0C E1 02 01 01 04 19 09 17 06 11 04 00 00 00 80 00 00 00 00 20 00 00 00 00 20 00 00 00 00 20 00 00 00 00 20 00 00 00 40 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 20 00 00 00 05 00 00 00 05 00 00 00 05 00 00 00 05 00 00 00 20 00 00 00 05 00 00 00 05 00 00 00 05 00 00 00 05 00 00 03 51 16 19 09 17 00 CC 16
8.[AFN=0D]读取终端2类数据 (Fn=1 Pn=2 表位号:7)
-
发送内容(主站 -> 终端):
68 56 00 56 00 68 4B 03 44 07 00 02 0D E0 02 01 01 00 10 06 11 80 33 17 10 17 00 A4 16 -
接收内容(终端 -> 主站):
68 C2 01 C2 01 68 88 03 44 07 00 02 0D E0 02 01 01 00 10 06 11 00 00 10 06 11 04 00 00 00 80 00 00 00 00 20 00 00 00 00 20 00 00 00 00 20 00 00 00 00 20 00 00 00 40 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 20 00 00 00 05 00 00 00 05 00 00 00 05 00 00 00 05 00 00 00 20 00 00 00 05 00 00 00 05 00 00 00 05 00 00 00 05 00 80 33 17 10 17 00 F4 16
9.[AFN=0E]读取终端3类数据 (Fn=2 表位号:7)
-
发送内容(主站 -> 终端):
68 52 00 52 00 68 4B 03 44 07 00 02 0E EE 00 00 02 00 00 01 4E 27 13 09 17 00 42 16 -
接收内容(终端 -> 主站):
68 7E 00 7E 00 68 88 03 44 07 00 02 0E EE 00 00 02 00 00 02 00 01 04 07 13 09 17 06 11 03 03 4E 27 13 09 17 00 DC 16