Loading...

376.1协议解读笔记

报文基本格式

16进制,采用GB/T 18657.1—2002的6.2.4条FT1.2异步式传输帧格式,以此为例:

68 32 00 32 00 68 C9 03 44 04 00 00 02 71 00 00 01 00 88 16

该为集中器发送给主站的登录注册帧,报文含义为“长度为12节、采用376.1协议终端号44030004(单发)、主站号0 ,来自 终端 上行 ,目的是链路测试,内容是终端登录,这是第1帧也仅此1帧需要确认全部终端信息点自上次通讯后没有重要事件

  1. 起始位【68】:固定不变
  2. 协议及长度位L【32 00】并重复一次,即十六进制0032和二进制0000000000110010
    • 二进制最后两位为协议类型,“10”代表为376.1协议
    • 二进制剩余区域代表数据帧长度(正文,加粗部分),“1100”十进制为12,标识长度为12
  3. 控制域C【C9】:帧的类型(需回复指令、无回复需指令、请求/数据),方向及目的,在下一节解读
    • CN表示终端主动发送给主站,4N表示主站主动发给终端
    • 0N表示主站回复给终端,8N表示终端回复给主站
    • N9(主动)表示链路测试,NB(被动)为对应回复
    • N1表示复位
    • N4表示无需回复的数据
    • NA/B(主动)表示请求1级/2级数据,N8表示有请求的数据,N9(被动)表示没有
    • N0表示同意
  4. 地址域A【03 44 04 00 00】:终端设备号和主站号,在下二节解读
    • 最后两位如果终端发送的一定是00,主站发送的一定不是00
  5. 应用层数据位【02 71 00 00 01 00】:
    • 应用层功能码AFN【02】:见应用功能码表
      • 02表示链路接口检测
      • 00表示确认
    • 帧序列域 SEQ【71】:协调多帧发送的关系,在下三节解读
      • 7N、FN需要确认的单帧
      • 6N、EN无需确认的单帧
      • N表示该轮通讯的顺序,每次发送加1
    • 数据单元标识数据单元00 00 01 00】:在下四节及通讯举例中解读
      • 前四位表示pn,00 00即0000,也就是p0(终端信息),其他值指测试量名
      • 后四位表示Fn,01 00即0001,也就是F1(功能1,这里表示登录)
    • 附加信息域 AUX【本示例中不包含】:附加信息域可由消息认证码字段PW(仅下行)或事件计数器EC(仅上行)和时间标签Tp组成,详见下五节
  6. 校验位CS【88】:用户数据区的8位位组的算术和,不考虑进位位
  7. 结束位【16】:固定不变
应用功能码 AFN功能定义
00确认∕否认
01复位
02链路接口检测
03中继站命令
04设置参数
05控制命令
06身份认证及密钥协商
07备用
08请求被级联终端主动上报
09请求终端配置
0A查询参数
0B请求任务数据
0C请求 1 类数据(实时数据)
0D请求 2 类数据(历史数据)
0E请求 3 类数据(事件数据)
0F文件传输
10数据转发
11~FF备用

控制域C解读

十六进制C9,二进制11001001,从左到右每一位分别表示:

  1. 传输方向位DIR【1】:为1代表此报文是由终端发出的上行报文,为0表示此报文是由主站发出的下行报文;
  2. 启动标志位PRM【1】:为1代表此报文来自启动站(主动发起的),为0表示此报文来自从动站(被动回复的)
  3. 当FCV为1时,该位为帧计数位FCB:每个站连续的发送/确认或者请求/响应服务的变化位。
  4. 当FCV为0时,该位为请求访问位ACD【0】:用于上行响应报文,为0表示终端自上次通讯后未发生重要事件,为1表示终端自上次通讯后发生重要事件,并会在附加信息域中带有事件计数器EC。
  5. 帧计数有效位 FCV【0】:FCB位是否有效
  6. 功能码【1001】,即十进制9,PRM为1(主动)时见表:
十六进制功能码(十进制)帧 类 型服务功能
00备用
11发送∕确认复位命令
2~3备用
44发送∕无回答用户数据
5~8备用
99请求∕响应帧链路测试
A10请求∕响应帧请求1级数据
B11请求∕响应帧请求2级数据
12~15备用

PRM为0(回复)时见表:

十六进制功能码帧类型服务功能
00确认认可
1~7备用
88响应帧用户数据
99响应帧否认:无所召唤的数据
10备用
B11响应帧链路状态
12~15备用

地址域A解读

03 44 04 00 00,从左到右每一位分别表示:

  • 行政区划码A1【03 44】:实际是4403,一串BCD码,按照GB 2260代表深圳
  • 终端地址A2【04 00】:实际是0004,选址范围为1~65535,0000为无效地址,FFFF且A3的D0位为“1”时表示系统广播地址
  • 主站地址和组地址标志A3【00】二进制00000000,最右位0表示A2为单地址,1表示A2为组地址(群发);其余位数组成0~127个主站地址(MSA),主站常用的MSA为12,整个A3为18。主站启动的发送帧的MSA应当非0,其终端响应帧的MSA应与主站发送帧的MSA相同;终端启动发送帧的MSA应为0,其主站的响应帧也应为0。

备注:我用的集中器厂家的编号规则是行政区划码正序排列+终端地址转十进制,即440300004

帧序列域SEQ解读

十六进制71,二进制01110001

  • 帧时间标签有效位TpV【0】:
    • 0表示在附加信息域中无时间标签Tp;
    • 1表示在附加信息域中带有时间标签Tp
  • 首帧标志FIR【1】、末帧标志FIN【1】:
FIRFIN应用说明
00多帧:中间帧
01多帧:结束帧
10多帧:第1帧,有后续帧。
11单帧
  • 请求确认标志位CON【1】:1表示需要对该帧报文进行确认,0表示不需要对该帧报文进行确认。
  • 启动帧序号 PSEQ/响应帧序号 RSEQ:取自1字节的启动帧计数器PFC的低4位计数值0~15。启动帧帧序号计数器PFC,每一对启动站和从动站之间均有1个独立的、由1字节构成的计数范围为0~255的启动帧帧序号计数器PFC,用于记录当前启动帧的序号。启动站每发送1帧报文,该计数器加1,从0~255循环加1递增;重发帧则不加1。目前该值为0001【复制粘贴的,先按报文编号理解】

数据单元标识解读

00 00 01 00

  • 信息点标识元DA1信息点标识组DA2【00和00】:按照组合实际为DA2 DA1,即00 00),实际按(十进制的DA2(即0)+1)*(二进制的DA1(即00000001)的1的从右起所在位数),可以表示0~2040种信息点标识pn,即【00 00】代表p0,表示终端信息点;【01 00】代表p1,表示测量点1(可以理解为某个数据量名);【FF00】表示所有有效测量点。
  • 信息类标识DT1DT20100:按照组合实际为DT2 DT1,即00 01,实际按(十进制的DT2(即0)+1)*(二进制的DT1(即00000001)的1的从右起所在位数),可以表示1~248种信息类标识Fn(其余未定义,即DT2最大是30),即【01 00】代表F1,【02 00】代表F2,【04 00】代表F3,【08 00】代表F4,可以理解为功能。
    • 不同场景(AFN、pn)的F1含义不同,祥见下一节“通讯举例”

数据单元解读

按数据单元标识所组织的数据,包括参数、命令等,不同功能下不同,具体解读详见举例

  • 终端在响应主站对终端的参数或数据请求时,如终端没有所需的某个数据项,则将应答报文中DT的对应标志位清除;如终端仅是没有某个数据项中的部分内容,则应将该数据项中的所缺部分内容的每个字节填写“EEH”。
  • 先按pn从小到大、再按Fn从小到大的次序,即:完成一个信息点pi的所有信息类Fn的处理后,再进行下一个pi+1的处理。

附加信息域AUX解读

  • (仅下行)消息认证码字段 PW【以00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00为例】:消息认证码字段PW用于重要下行报文(AFN=01复位、04配置、05控制),由16字节组成,PW是由主站按系统约定的认证算法产生,并在主站发送的报文中下发给终端,由终端进行校验认证,通过则响应主站命令,反之则否认。
  • (仅上行)事件计数器 EC【以00 00为例】:有无取决于ACD(有无重要事件等待访问),位置为倒数2节之前且长度固定(在Tp之前)
    • 【00】重要事件计数器 EC1:0~255
    • 【00】一般事件计数器 EC2:0~255
  • 时间标签Tp【以51 16 19 09 17 00为例】:有无取决于Tpv,位置为倒数2节之前且长度固定,由启动站产生,从动站据此判决收到的报文的时序和时效性,如判别有效,从动站发送响应帧,并在响应帧中将时间标签Tp返回启动站:
    • 【51】启动帧帧序号计数器 PFC:0~255
    • 【16 19 09 17】启动帧发送时标(分别表示秒分时日),为BCD码(16进制),即17日09点19分16秒;如果有月或星期的场景,需要看二进制,周是前三位的十六进制,月是后五位的十六进制;年是后两位,2024显示为24,。
    • 【00】允许发送传输延时时间允许发送传输延时时间(分钟):即最长有效时间,为0标识永不失效

通讯举例(对应标准第5章)

命令下达后,如未执行成功会返回否认帧(即CFN、AFN均0,Fn=2代表全部否认 Fn=3代表部分否认-数据区有详细内容-,Fn=4代表需要PW或认证失败)

1.终端信息报文(AFN=02,pn=0终端

需要回复(con=1)时Fn按《数据单元标识》小节中的con=1下Fn功能对照列表确定功能,其余情况:F1表示登录,F2表示退出,F3表示心跳

集中器发送给主站链路测试(C&AFN)需要回复F1登录(请求注册)

68 32 00 32 00 68 C9 03 44 04 00 00 02 71 00 00 01 00 88 16

主站返回给集中器链路测试(C&AFN)帧,无需回复F1全部确认:

68 32 00 32 00 68 0B 03 44 04 00 00 00 61 00 00 01 00 B8 16

集中器发送给主站链路测试(C&AFN)需要回复F1心跳:

68 32 00 32 00 68 C9 03 44 04 00 00 02 72 00 00 04 00 8C 16

主站返回给集中器链路测试(C&AFN)帧,无需回复F1全部确认

68 32 00 32 00 68 0B 03 44 04 00 00 00 62 00 00 01 00 B9 16

2.复位报文(AFN=01,pn=0终端)

需要回复(con=1)时Fn按《数据单元标识》小节中的con=1下Fn功能对照列表确定功能,其余情况:F1表示硬件初始化,F2表示数据区初始化,F3表示参数及全体数据区初始化(即恢复至出厂配置),F4表示参数(除与系统主站通信有关的)及全体数据区初始化

主站发送给集中器复位(C&AFN)需要回复F2数据初始化

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 16

主站返回给集中器复位(C&AFN)无需回复F1全部确认

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 16 (全部确认)

4.设置终端参数(AFN=04)

以F10终端电能表/交流采样装置配置参数为例(仅供参考,暂时没用上)

发送内容: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 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) 

以F10终端电能表/交流采样装置配置参数为例

主站发送给集中器请求上报配置(主动C&AFN)帧无需回复F10终端电能表/交流采样装置配置参数

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

02 00              //本次查询数量2个

01 00              //本次查询的第1个序号是1

02 00              //所属测量点号


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

02 00              //数量为2个对象

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 //用户大类号及用户小类号

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.读取终端1类数据 (AFN=0C Fn=33 Pn=2

1类数据通常为当前数据;Pn为0代表集中器本身,Pn表示表号(这里以2举例),Fn收其参数名,例如Pn=0时Fn=31表示差集中器本身的时间*。此AFN下FN的功能很多,建议直接阅读标准5.12.1.2,其返回值解读规则也均附在下方。*时间规则同Tp处。

主站发送给集中器请求1类数据(主动C&AFN)需要回复F33指上一结算日 A、B、C 三相正/反向有功电能示值、组合无功 1/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

集中器返回给主站的请求请求1类数据(主动C&AFN)帧,无需回复

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

04                 //费率数

00 00 00 80 00     //当前正向有功总电能示值8000.00

00 00 00 20 00     //当前费率1正向有功电能示值2000.00

00 00 00 20 00     //当前费率2正向有功电能示值2000.00

00 00 00 20 00     //当前费率3正向有功电能示值2000.00

00 00 00 20 00     //当前费率4正向有功电能示值2000.00

00 00 40 00        //当前正向无功总电能示值4000.00

00 00 10 00        //当前费率1正向无功电能示值1000.00

00 00 10 00

00 00 10 00

00 00 10 00

00 00 20 00        //当前一象限无功总电能示值2000.00

00 00 05 00        //当前费率1一象限无功电能示值500.00

00 00 05 00

00 00 05 00

00 00 05 00

00 00 20 00        //当前三象限无功总电能示值2000.00

00 00 05 00        //当前费率1三象限无功电能示值500.00

00 00 05 00

00 00 05 00

00 00 05 00

8.读取终端2类数据(AFN=0D Fn=1 Pn=2  表位号:7)

2类数据通常是历史数据(各种冻结数据、曲线数据等)

主站发送给集中器请求2类数据(C&AFN)需要回复,F1可以指终端状态量及变位标志(仅供参考,暂时没用上)

发送内容: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

3类数据通常是事件数据(仅供参考,暂时没用上)

发送内容: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

版权声明:LINSIR 发表于 2024-07-04 17:51。
转载请注明:376.1协议解读笔记 | LINSIR的博客

相关文章

没有相关内容!

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...