电力用户用电信息采集系统通信协议报文解析示例

电力用户用电信息采集系统通信协议报文解析示例

本文解析实例和见附录参考 均来自 《国家电网公司企业标准 Q / GDW 1376.1 — 2012 电力用户用电信息采集系统通信协议 第1部分:主站与采集终端通信协议》
参考文献链接 (Q / GDW 376.1—2009电力用户用电信息采集系统通信协议报文解析示例)[https://blog.csdn.net/wuyu92877/article/details/78715876]

字节格式

帧的基本单元为 8 位字节。链路层 传输顺序为 低位在前,高位在后;低字节在前,高字节在后

英文名词含义:

  • BIN 码 : BIN 就是二进制编码。比如 十进制 数的 11, 用 BIN码 表示就是 1011
    • 二进制 1011 转十进制后 数值就是 11
  • BCD 码(别称 8421码):BCD 码就是用 四位二进制数 表示 一位十进制数 的编码,比如 **十进制数 11 **用 BCD码 表示就是 00010001
    • 二进制 00010001 转十六进制后 数值就是 11

帧格式

帧格式定义结构

起始字符(68H)

固定长度的报文头

长度 L
长度 L
起始字符(68H)
控制域 C 控制域 用户数据区
地址域 A 地址域
链路用户数据 链路用户数据 (应用层)
校验和 CS 帧校验和
结束字符(16H)  

传输规则

  • 线路空闲状态为二进制 1
  • 帧的字符之间无线路空闲间隔;两帧之间的线路空闲间隔最少需 33 位
  • 如按 e) 检出了差错,两帧之间的线路空闲间隔最少需 33 位
  • 帧校验和(CS)是用户数据区的八位位组的算术和,不考虑进位位
  • 接收方校验
    • 对于每个字符:校验起动位、停止位、偶校验位
    • ​ 对于每帧
      • 检验帧的固定报文头中的开头和结束所规定的字符以及协议.标识位
      • 识别 2 个长度 L
      • 每帧接收的字符数为用户数据长度 L1+8
      • 帧校验和
      • 结束字符
      • 校验出一个差错时,校验按 c)的线路空闲间隔
    • 若这些校验有一个失败,舍弃此帧;若无差错,则此帧数据有效

链路层

长度L

长度 L 包括 协议.标识 和 用户数据长度 ,由2字节组成,如下表格所示:

D7 D6 D5 D4 D3 D2 D1 D0
D15 D14 D13 D12 D11 D10 D9 D8

协议标识由图2中D0~D1两位编码表示,定义如下:

  • D0=0、D1=0:为禁用;
  • D0=1、D1=0:为《Q/GDW 130—2005电力负荷管理系统数据传输规约》使用;
  • D0=0、D1=1:为本协议使用;
  • D0=1、D1=1,为保留。
  • 用户数据长度L1:由D2~D15组成,采用BIN编码,是控制域、地址域、链路用户数据(应用层)的字节总数
  • 采用专用无线数传信道,长度L1不大于255;
  • 采用网络传输,长度L1不大于16383。

控制域C

控制域C表示报文传输方向和所提供的传输服务类型的信息,定义如下表格所示:

  D7 D6 D5 D4 D3~D0
上行方向 传输方向位 DIR 启动标志位 PRM 帧计数位 FCB 帧计数有效位 FCV 功能码
下行方向 要求访问位 ACD 保留

应用层

应用层格式

应用层(链路用户数据)格式定义 如下表所示

应用层功能码AFN
帧序列域SEQ
数据单元标识1
数据单元1
……
数据单元标识n
数据单元n
附加信息域AUX

应用层功能码

应用层功能码AFN由 一字节 组成,采用二进制编码表示,具体定义如下表所示

应用功能码 AFN应用功能定义
00H确认∕否认
01H复位
02H链路接口检测
03H中继站命令
04H设置参数
05H控制命令
06H身份认证及密钥协商
07H备用
08H请求被级联终端主动上报
09H请求终端配置
0AH查询参数
0BH请求任务数据
0CH请求 1 类数据(实时数据)
0DH请求 2 类数据(历史数据)
0EH请求 3 类数据(事件数据)
0FH文件传输
10H数据转发
11H~FFH备用

报文解析示例

登录帧(终端 -> 主站)

该帧为集中器发送给主站的登录注册帧

帧报文格式
68H
L
L
68H
C
A
AFN=03H
SEQ
数据单元标识(DA=0)
数据单元
CS
16H

链路接口检测报文格式

登录帧解析
  • 登录帧:68 32 00 32 00 68 C9 03 44 04 00 00 02 71 00 00 01 00 88 16

    68 起始字符(68H)
    32 00 长度 L 数据长度 2 字节,数据类型排列顺序为 低位在前 高位在后,正序数值为 0x0032 ,转换为二进制为 0b0000000000110010
    D1~D0 为协议类型。其 0b10 代表为 1376.1 协议使用标志
    D15~D2 为长度,为报文的用户数据区长度,对应的二进制值为 0b1100,转换为十进制为12,即原始报文的红色部分
    32 00 长度 L 内容解释同上,使用 2 个长度表示长度确认比对
    68 起始字符(68H)
    C9 控制域 C 控制域C,二进制数值为 0b11001001 ,对应 D7~D0位

     

    D7

    D6

    D5

    D4

    D3~D0

    上行方向

    传输方向位 DIR

    启动标志位 PRM

    要求访问位 ACD

    保留

    功能码

     

    1

    1

    0

    0

    1001


    D7:传输方向位DIR,D7 位的数值为1,代表此帧报文是由终端发出的 上行报文
    D6:启动标志位PRM,D6 位的数值为1,代表此帧报文来自启动站
    D5:要求访问位,D5 位的数值为0,ACD=1表示终端有重要事件等待访问,则附加信息域中带有事件计数器EC(EC见本部分4.3.4.6.3);ACD=0表示终端无事件数据等待访问
    D4:保留
    D3~D0:功能码,对应值为9,当 启动标志位PRM=1 时,代表该帧报文的帧类型为请求/响应帧,服务功能为链路测试,及使用于 AFN=02 的应用层功能码
    功能码定义(PRM=1

    功能码

    帧 类 型

    服务功能

    0

    备用

    1

    发送∕确认

    复位命令

    2~3

    备用

    4

    发送∕无回答

    用户数据

    5~8

    备用

    9

    请求∕响应帧

    链路测试

    10

    请求∕响应帧

    请求1级数据

    11

    请求∕响应帧

    请求2级数据

    12~15

    备用

    03 44 04 00 00 地址域 地址域分为三部分,03 44 | 04 00 | 00
    地址域由 行政区划码A1、终端地址A2、主站地址和组地址标志A3 组成,格式见如下表所示

    地址域

    数据格式

    字节数

    对应数值

    行政区划码A1

    BCD

    2

    03 44

    终端地址A2

    BIN

    2

    04 00

    主站地址和组地址标志A3

    BIN

    1

    00


    第一部分为 行政区划码A1 ,行政区划码按GB 2260—91的规定执行,数据格式为 两字节BCD码 : 03 44,字节顺序为低位在前高位在后,实际数值应为 4403
    第二部分为 终端地址A2 ,终端地址A2选址范围为1~65535。A2=0000H 为无效地址,A2=FFFFH 且A3 的 D0 位为“1”时表示系统广播地址,数据格式为 两字节BIN码 : 04 00,字节顺序为低位在前高位在后,实际数值应为 0004
    第三部分为 主站地址和组地址标志A3,A3 的 D0 位为终端组地址标志,D0=0 表示终端地址 A2 为单地址;D0=1 表示终端地址 A2 为组地址;A3 的 D1~D7 组成 0~127 个主站地址 MSA。主站启动的发送帧的 MSA 应为非零值,其终端响应帧的 MSA 应与主站发送帧的 MSA 相同。终端启动发送帧的 MSA 应为零,其主站响应帧的 MSA 也应为零。数据格式为 一字节BIN码 : 00,A3 的 D0 位为终端组地址标志,D0=0 表示终端地址 A2 为单地址, D7~D1 为主站地址 MSA,另外该帧是由终端发起的上行报文,终端启动发送帧的 MSA 应为 0,其主站的响应帧也应为 0,这是硬性规定,如果不是 0,则一定是错误的
    02 应用层功能码 AFN 应用层功能码由 一字节组成,采用二进制编码表示,对应数值为 02H ,代表应用功能为链路接口检测
    71 帧序列域 SEQ 帧序列域长度为 1 字节,0x71 转换为二进制为 0b01110001,对应相关标志如下表所示

    D7

    D6

    D5

    D4

    D3~D0

    TpV

    FIR

    FIN

    CON

    PSEQ ∕ RSEQ

    0

    1

    1

    1

    0001


    TpV: 帧时间标签有效位,TpV=0,表示在附加信息域中无时间标签Tp;TpV=1,表示在附加信息域中带有时间标签 Tp
    首帧标志 FIR: 值为 “1”,报文的第一帧
    末帧标志 FIN: 值为 “1”,报文的最后一帧
    FIR、FIN 组合状态所表示的含义见下表

    FIR

    FIN

    应用说明

    0

    0

    多帧:中间帧

    0

    1

    多帧:结束帧

    1

    0

    多帧:第1帧,有后续帧。

    1

    1

    单帧


    请求确认标志位 CON: 在所收到的报文中,CON 为值 “1”,表示需要对该帧报文进行确认;值为“0”,表示不需要对该帧报文进行确认
    启动帧序号 PSEQ: 取自 1字节启动帧计数器 PFC 的低 4 位计数值 0~15

    启动帧计数器 PFC:,每一对 启动站从动站之间均有 1 个独立的、由 1 字节构成的计数范围为 0~255 的 启动帧帧序号计数器PFC,用于记录当前启动帧的序号。启动站每发送 1 帧报文,该计数器加1,从 0~255 循环加1递增;重发帧则不加 1。目前该值为 0b0001

    响应帧序号 RSEQ:响应帧序号 RSEQ 以启动报文中的 PSEQ 作为第一个响应帧序号,后续响应帧序号在 RSEQ 的基础上循环加 1 递增,数值范围为 0~15

    帧序号改变规则
      1. 启动站发送报文后,当一个期待的响应在超时规定的时间内没有被收到,如果允许启动站 重发,则该重发的启动帧序号 PSEQ 不变。重发次数可设置,最多 3 次;重发次数为 0, 则不允许重发
      2. 当 TpV=0 时,如果从动站连续收到两个具有相同启动帧序号 PSEQ 的启动报文,通常意味 着报文的响应未被对方站收到。在这种情况下,则重发响应(不必重新处理该报文)
      3. 当 TpV=0 时,如果启动站连续收到两个具有相同响应帧序号 RSEQ 的响应帧,则不处理第 二个响应
      4. 终端能同时处理多个请求
    00 00 信息点DA 信息点DA 由 信息点单元DA1信息点组DA2 两个字节构成。DA2 采用二进制编码方式表示信息点组,低位在前高位在后,DA1 对位表示某一信息点组的1~8个信息点,以此共同构成信息点标识pn(n=1~2040),当DA1和DA2全为“0”时,表示终端信息点,用 p0 表示;运算规则为 (DA2-1)*8+DA1 对应位的值就是信息点标识 pn ,格式如下表所示

    信息点组DA2

    信息点元DA1

    D7~D0

    D7

    D6

    D5

    D4

    D3

    D2

    D1

    D0

    1

    p8

    p7

    p6

    p5

    p4

    p3

    p2

    p1

    2

    p16

    p15

    p14

    p13

    p12

    p11

    p10

    p9

    3

    p24

    p23

    p22

    p21

    p20

    p19

    p18

    p17

    255

    P2040

    P2039

    P2038

    P2037

    P2036

    P2035

    P2034

    P2033

    01 00 信息类DT 信息类DT 由信息类元DT1 和 信息类组DT2 两个字节 构成。DT2 采用二进制编码方式表示信息类组,DT1对位表示某一信息类组的1~8种信息类型,以此共同构成信息类标识Fn(n=1~248),运算规则为 DT2*8+DT1 对应位的值(8421码) 就是信息类标识Fn,格式如下表所示

    信息类组DT2

    信息类元DT1

    D7~D0

    D7

    D6

    D5

    D4

    D3

    D2

    D1

    D0

    0

    F8

    F7

    F6

    F5

    F4

    F3

    F2

    F1

    1

    F16

    F15

    F14

    F13

    F12

    F11

    F10

    F9

    2

    F24

    F23

    F22

    F21

    F20

    F19

    F18

    F17

    30

    F248

    F247

    F246

    F245

    F244

    F243

    F242

    F241

    未定义

    88 帧校验和(CS) 帧校验和(CS)是用户数据区的8位位组的算术和,不考虑进位位
    16 结束字符(16H) 帧结束符

确认帧(主站 -> 终端)

帧报文格式
68H
L
L
68H
C
A
AFN=00H
SEQ
数据单元标识
数据单元
EC(见《Q/GDW 1376.1—2012 电力用户用电信息采集系统通信协议》 部分4.3.4.6.3)
Tp(见《Q/GDW 1376.1—2012 电力用户用电信息采集系统通信协议》 部分4.3.4.6.4)
CS
16H

确认/否认报文格式

确认帧解析
  • 确认帧:68 32 00 32 00 68 0B 03 44 04 00 00 00 61 00 00 01 00 B8 16

    68 起始字符(68H)
    32 00 长度 L 数据长度 2 字节,数据类型排列顺序为 低位在前 高位在后,正序数值为 0x0032 ,转换为二进制为 0b0000000000110010
    D1~D0 为协议类型。其 0b10 代表为 1376.1 协议使用标志
    D15~D2 为长度,为报文的用户数据区长度,对应的二进制值为 0b1100,转换为十进制为12,即原始报文的红色部分
    32 00 长度 L 内容解释同上,使用 2 个长度表示长度确认比对
    68 起始字符(68H)
    0B 控制域 C 控制域C,二进制数值为0b00001011,对应d7~d0位

     

    D7

    D6

    D5

    D4

    D3~D0

    下行方向

    传输方向位 DIR

    启动标志位 PRM

    帧计数位 FCB

    帧计数有效位 FCV

    功能码

     

    0

    0

    0

    0

    1011

    D7:传输方向位 DIR,D7 位的数值为 0,代表此帧报文是由主站发出的下行报文
    D6:启动标志位 PRM,D6 位的数值为 0,代表此帧报文来自从动站
    D5:帧计数位 FCB,D5 位的数值为 0,由于帧计数有效位的值为 0,帧计数位无效
    D4:帧计数有效位 FCV,D4 位的数值为 0,代表帧计数位 FCB 位无效
    D3~D0:功能码,对应值为 11,当启动标志位 PRM=0 时,代表该帧报文的帧类型为请求/响应帧 。服务功能为链路测试,及使用于 AFN=02 的应用层功能码
    功能码定义(PRM=0)

    功能码

    帧类型

    服务功能

    0

    确认

    认可

    1~7

    备用

    8

    响应帧

    用户数据

    9

    响应帧

    否认:无所召唤的数据

    10

    备用

    11

    响应帧

    链路状态

    12~15

    备用

    03 44 04 00 00 地址域 地址域分为三部分,03 44 | 04 00 | 00
    地址域由 行政区划码A1、终端地址A2、主站地址和组地址标志A3 组成,格式见如下表所示

    地址域

    数据格式

    字节数

    对应数值

    行政区划码A1

    BCD

    2

    03 44

    终端地址A2

    BIN

    2

    04 00

    主站地址和组地址标志A3

    BIN

    1

    00


    第一部分为 行政区划码A1 ,行政区划码按GB 2260—91的规定执行,数据格式为 两字节BCD码 : 03 44,字节顺序为低位在前高位在后,实际数值应为 4403
    第二部分为 终端地址A2 ,终端地址A2选址范围为1~65535。A2=0000H 为无效地址,A2=FFFFH 且A3 的 D0 位为“1”时表示系统广播地址,数据格式为 两字节BIN码 : 04 00,字节顺序为低位在前高位在后,实际数值应为 0004
    第三部分为 主站地址和组地址标志A3,A3 的 D0 位为终端组地址标志,D0=0 表示终端地址 A2 为单地址;D0=1 表示终端地址 A2 为组地址;A3 的 D1~D7 组成 0~127 个主站地址 MSA。主站启动的发送帧的 MSA 应为非零值,其终端响应帧的 MSA 应与主站发送帧的 MSA 相同。终端启动发送帧的 MSA 应为零,其主站响应帧的 MSA 也应为零。数据格式为 一字节BIN码 : 00,A3 的 D0 位为终端组地址标志,D0=0 表示终端地址 A2 为单地址, D7~D1 为主站地址 MSA,另外该帧是由终端发起的上行报文,终端启动发送帧的 MSA 应为 0,其主站的响应帧也应为 0,这是硬性规定,如果不是 0,则一定是错误的
    00 应用层功能码 AFN 应用层功能码由一字节组成,采用二进制编码表示,对应数值为 00H确认∕否认报文 是对接收报文中需要被确认(CON=1)的回答,以及终端对所请求的数据不具备响应条件的否认回答。该报文为单帧报文,帧序列域的标志位 FIR=1,FIN=1,CON=0
    61 帧序列域SEQ 帧序列域长度为 1字节0x61转换为二进制为 0b01100001,相关标志对应如下表所示

    D7

    D6

    D5

    D4

    D3~D0

    TpV

    FIR

    FIN

    CON

    PSEQ/RSEQ

    0

    1

    1

    0

    0001

    TpV:帧时间标签有效位,TpV=0,表示在附加信息域中无时间标签TpTpV=1,表示在附加信息域中带有时间标签Tp
    首帧标志 FIR: 值为 “1”,报文的第一帧
    末帧标志 FIN: 值为 “1”,报文的最后一帧
    FIR、FIN 组合状态所表示的含义见下表

    FIR

    FIN

    应用说明

    0

    0

    多帧:中间帧

    0

    1

    多帧:结束帧

    1

    0

    多帧:第1帧,有后续帧。

    1

    1

    单帧


    请求确认标志位 CON: 在所收到的报文中,CON 值为 “1”,表示需要对该帧报文进行确认值为 “0”,表示不需要对该帧报文进行确认
    启动帧序号 PSEQ: 取自 1字节启动帧计数器 PFC 的低 4 位计数值 0~15

    启动帧计数器 PFC:,每一对 启动站从动站之间均有 1 个独立的、由 1 字节构成的计数范围为 0~255 的 启动帧帧序号计数器PFC,用于记录当前启动帧的序号。启动站每发送 1 帧报文,该计数器加1,从 0~255 循环加1递增;重发帧则不加 1。目前该值为 0b0001

    响应帧序号 RSEQ:响应帧序号 RSEQ 以启动报文中的 PSEQ 作为第一个响应帧序号,后续响应帧序号在 RSEQ 的基础上循环加 1 递增,数值范围为 0~15

    帧序号改变规则
      1. 启动站发送报文后,当一个期待的响应在超时规定的时间内没有被收到,如果允许启动站 重发,则该重发的启动帧序号 PSEQ 不变。重发次数可设置,最多 3 次;重发次数为 0, 则不允许重发
      2. 当 TpV=0 时,如果从动站连续收到两个具有相同启动帧序号 PSEQ 的启动报文,通常意味 着报文的响应未被对方站收到。在这种情况下,则重发响应(不必重新处理该报文)
      3. 当 TpV=0 时,如果启动站连续收到两个具有相同响应帧序号 RSEQ 的响应帧,则不处理第 二个响应
      4. 终端能同时处理多个请求
    00 00 数据单元标识中的 pn 信息点DA由信息点元DA1和信息点组DA2两个字节构成。当DA1和DA2全为“0”时,表示终端信息点,用p0表示;
    01 00 数据单元标识中的 Fn 信息类DT 由信息类元 DT1 和信息类组 DT2 两个字节构成。转换成正序之后为 0x0001,表示 F1 — 全部确认,该确认没有数据体
    B8 帧校验和 帧校验和,红色醒目确认帧 十六进制数值 相加 取后两位值
    16 帧结束符

心跳帧(终端 -> 主站)

心跳数据格式
数据内容数据格式字 节 数
终端时钟见附录A.16
帧报文格式
68H
L
L
68H
C
A
AFN=03H
SEQ
数据单元标识(DA=0)
数据单元
CS
16H

链路接口检测报文格式

心跳帧解析
  • 心跳帧: 68 32 00 32 00 68 C9 03 44 04 00 00 02 72 00 00 04 00 8C 16

    68 帧起始符
    32 00 长度L
    32 00 长度L
    68 帧起始符
    C9 控制域C
    03 44 04 00 00 地址域A
    02 应用层功能码 AFN=02
    72 帧序列域SEQ
    00 00 04 00 数据单元标识 pn=0,Fn=3
    8C 帧校验和CS是用户数据区的8位位组的算术和,不考虑进位位
    16 帧结束符
  • 确认帧:68 32 00 32 00 68 0B 03 44 04 00 00 00 62 00 00 01 00 B9 16

    68 帧起始符
    32 00 长度L
    32 00 长度L
    68 帧起始符
    0B 控制域C
    03 44 04 00 00 地址域A
    00 应用层功能码 AFN=00
    62 帧序列域SEQ
    00 00 01 00 数据单元标识 pn=0,Fn=1
    B9 帧校验和CS是用户数据区的8位位组的算术和,不考虑进位位
    16 帧结束符

知识点

Fnpn定义
Fn名 称 及 说 明pn
F1登  录p0
F2退出登录p0
F3心  跳p0
F4~F248备  用
  • 8
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值