电力102规约报文解析

IEC102 应用报文分6大类:通讯连接,读时钟,读历史数据,读实时数据,读事件信息,对时。

传输过程的启动仅限于某一固定点,在规约中主站端为启动站,而电能计量数据终端设备位于计数站,始终为从动站。本系统中的1 级用户数据包括较早时段存储起来的电量和读—应用服务数据单元请求的全部信息。本系统中的数据采用低字节在前,高字节在后的传输方式。

102报文的基本格式:

帧长可以变化102报文的基本格式:

102报文的基本说明:

a) 单字符用于子站向主站传输的确认(肯定或否定);

b) 控制域是用来区别不同的帧和数据传输方向的单字节,详见第二节;

c) 地址域是链路地址(一般是RTU编号),2字节,低字节在前,高字节在后;

d) 帧校验是用户数据区的各字节的算术和对256的模;

e) 变长帧中的L为用户数据区的长度,2个L相等;

f) 变长帧中的ASDU为应用服务数据单元,详见第三节;

g) 数据传输方式:是异步传输方式,11位,其中启动位为二进制0,数据位8位,一个偶校验位,一个停止位。

1. 链路层解析—控制域

控制域包含了传输方向、传输状态以及链路功能类型等信息,1字节,各个位定义如下:

1) 主站侧


Bit7


Bit6


Bit5


Bit4


Bit3


Bit2


Bit1


Bit0


0


1


FCB


FCV


功能码

FCB位:

主站确认子站已收到命令帧并发送下一帧命令帧的时候,要将FCB位取反,表示是一帧新的命令帧;否则,保持FCB位不变,表示要求子站重发上一帧数据。

FCV位:

FCV位取0,表示不需要考虑FCB为是否取反,此时FCB位应该取0;反之,FCV位取1,表示FCB位取反有效,子站通过FCB位的状态判断下一步做什么,重发或者是继续。

功能码:

表示链路功能命令,即子站从链路层判断需要执行什么操作。


code


FT


FUCTION


FCV


0x00


发送/确认帧


复位通信单元CU


0


0x03


发送/确认帧


下发数据命令


1


0x09


请求/响应


召唤链路状态


0


0x0A


请求/响应


召唤I级用户数据


1


0x0B


请求/响应


召唤II级用户数据


1

I级用户数据:

历史数据;

II级用户数据;

最近一次采集的电能数据;如果在下一次采集电能数据之前再次召唤II级用户数据,子站应该返回“没有所召唤的数据”,即,II级用户数据上传之后就不再是II级用户数据了。

功能码0x00,0x09,0x0A,0x0B用于定长帧;功能码0x03用于变长帧,下发召唤数据命令。

2) 子站侧


Bit7


Bit6


Bit5


Bit4


Bit3


Bit2


Bit1


Bit0


0


0


ACD


DFC


功能码

ACD位:

ACD位取1表示子站有I级用户数据等待上传,主站接收数据完成之后应该发送召唤I级用户数据命令;反之,ACD位取0表示子站待传数据已全部上传完成。

DFC位:

DFC位是数据流控制位,取0表示子站可接收数据,取1表示子站缓冲区已满,无法接收数据。

功能码:


code


FT


FUCTION


0x00


确认帧


响应链路复位


0x01


确认帧


链路忙,没收到报文


0x08


响应帧


以数据响应请求帧


0x09


响应帧


没有所召唤的数据


0x0B


响应帧


响应请求链路状态

功能码0x00,0x01,0x09,0x0B用于定长帧;功能码0x08用于变长帧,上传数据。

2. 应用层解析—ASDU

1) ASDU结构


数据单元标识符(6 Bytes)


类型标识


可变结构限定词(VSQ)


传输原因(COT)


ADDRL


虚拟设备地址


ADDRH


记录地址(RAD)


数据区


信息体地址(IOA)


信息体1


信息元素集


时间


信息体地址(IOA)


信息体n


信息体n


时间

2) ASDU类型标识

1字节,在主站侧表示的是主站召唤的数据类型,例如子站系统时间、子站单点信息、子站电能数据,等等;在子站测表示的是子站上传的信息元素的类型。ASDU类型标识的详细清单如下。

ASDU类型标识详细定义

主站侧:


标识


功能


注释


100


读制造厂和产品规范


101


读带时标的单点信息的记录


102


读一个选定时间范围的带时标的单点信息的记录


常用


103


读采集器的当前系统时间


常用


104


读最早累计时段的积分电能量—表底值


常用


120


读选定时间范围、选定地址范围的积分电能量—表底值


常用


121


读选定时间范围、选定地址范围的积分电能量—增量值


128


时钟同步


常用


170


读指定地址范围和时间范围的复费率积分电能量—表底值


常用


171


读指定地址范围的遥测量当前值


常用


172


读指定累计时段、选定地址范围的遥测量

子站侧:


标识


功能


注释


1


带时标的单点信息


常用


2


积分电能量—表底值,4字节


常用


5


积分电能量—增量值,4字节


70


初始化结束


常用


71


采集器的制造厂和产品规范


72


采集器的当前系统时间


常用


128


时钟同步


常用


160


复费率积分电能量—表底值,4字节


常用


161


遥测量当前值


常用


162


遥测量历史值

3) 可变结构限定词(VSQ)

1字节,低7位表示信息体数目,最高位是寻址方法位SQ位。SQ取0,表示后面的每个信息体都有信息体地址,VSQ取值0-127;SQ取1,表示只有第一个信息体有信息体地址,后续的信息体是连续的,VSQ取值128-255。

4) 传输原因(COT)

1字节,已使用的COT类型如下:


COT


解释


方向(下面为发出方)


4


初始化


子站侧


5


请求/被请求


主站侧/子站侧


6


激活


主站侧


7


激活确认


子站侧


8


停止激活


主站侧


9


停止激活确认


子站侧


10


激活终止


子站侧


13


无所请求数据


子站侧


14


无所请求的ASDU类型


子站侧


15


记录地址错误


子站侧


16


虚拟设备地址错误


子站侧


17


无所请求的信息体


子站侧


18


无所请求的累计时段


子站侧


48


时钟同步


主站侧/子站侧

在主站侧,COT表示命令的请求方式,例如,是请求应答(COT=5)还是激活上传数据(COT=6);在子站测,COT表示应答方式,以及是否有数据待传。

5) 虚拟设备地址

2字节,指虚拟RTU设备地址,一般在终端的采集量超过255个才使用。可以将采集量分组,每组即是一个虚拟RTU设备。采用虚拟RTU设备,可以针对不同需求的主站上传不同的数据,做到数据隔离,节省信道资源,并且起到数据保密功能。

在没有设置虚拟RTU设备的情况下,虚拟设备地址一般取0。

6) 记录地址(RAD)

1字节,用来表示同类数据的不同缓冲区类型,已使用的RAD类型如下:


RAD


解释


0


缺省


11


电能累计量累计时段1


12


电能累计量累计时段2


13


电能累计量累计时段3


51


全部单点信息


52


单点信息记录区段1(一般指终端设备的单点信息)


53


单点信息记录区段2(一般指电能表的单点信息)

7) 信息体

在不同的主站命令帧和子站上传数据帧中,信息体有不同的结构,具体解释在第4、5两节。

8) 时间表示

a) 时间信息a

5字节,表示年、月、日、时、分,以及周,具体定义如下:


Bit7


Bit6


Bit5


Bit4


Bit3


Bit2


Bit1


Bit0



0


0


分(0-59)



0


备用(0)


时(0-23)


周/日


周(1-7)


日(1-31)



(未使用)


(未使用)


月(1-12)



(0)


年(0-99)

用于电能数据、分时电量和遥测量历史数据的时标。

b) 时间信息b

7字节,表示年、月、日、时、分、秒、毫秒,以及周,具体定义如下:


Bit7


Bit6


Bit5


Bit4


Bit3


Bit2


Bit1


Bit0


毫秒


毫秒(包括秒字节低两位,共10位)(0-999)



秒(0-59)


毫秒



0


0


分(0-59)



0


备用(0)


时(0-23)


周/日


周(1-7)


日(1-31)



(未使用)


(未使用)


月(1-12)



(0)


年(0-99)

用于单点信息的时标,以及子站系统时间。

3. 主站命令结构

只选取包含信息体元素或者常用的ASDU类型。


ASDU类型


VSQ


COT


RAD


信息体


102-单点信息


1


6


0/51/52/53


起始和结束时间,时间信息a


103-子站时钟


0


5


0



120-电能量


1


6


0/11/12/13


起始和结束地址(取值1-255);

起始和结束时间,时间信息a


128-时钟同步


1


48


0


主站系统时间,时间信息b

4. 子站数据结构

1) 单点信息

每条单点信息的信息体包含9字节,定义如下:


信息体地址(SPA),1字节

详见单点信息地址表


单点信息限定词(SPQ),高7位

单点信息状态(SPI),低1位

详见单点信息地址表


时间信息b

单点信息地址表

终端事件:


事件


SPA


SPQ


SPI


退出系统


180


3


0


启动系统


1


3


0


时钟同步


7


5


0


修改参数


15


1


0


电源故障


3


1


0


电池故障


4


1


0


硬件故障


8


1


0


打印机故障


8


33


0


通讯模块故障


8


49


0

电能表事件:


事件


SPA


SPQ


SPI


通讯失败


128


电能表序号


1


通讯恢复


128


电能表序号


0


PT失压(发生)


A: 135


电能表序号


未使用


B: 136


C: 137


断相(发生)


A: 129


电能表序号


未使用


B: 130


C: 131


过压(发生)


A: 132


电能表序号


未使用


B: 133


C: 134

2) 电能数据


信息体1


……


信息体n


公共时标

每个累计时段的电能数据分别组帧,公共时标用时间信息a表示,位于全部信息体的后面;每个电能数据信息体包含7字节,定义如下:


信息体地址

1字节


电能数据

4字节


帧计数

1字节


电能数据校验

1字节

信息体地址对应在子站注册的采集量的编号,取值1-255。

帧计数字节定义如下:


Bit7


Bit6


Bit5


Bit4


Bit3


Bit2


Bit1


Bit0


数据状态


0


0


帧计数

数据状态位表示信息体中的电能数据是否为有效数据,0为有效,1为无效。

帧计数在上传电能数据、分时电量、遥测量时使用,每上传完成一个累计时段的数据,帧计数加1;如果同一累计时段的数据需要分帧上传,帧计数不变。

电能数据校验是保护电能数据有效的另一个标志,是计算ASDU类型标识、虚拟设备地址、记录地址、信息体地址、电能累计量、帧计数、以及公共时标个字节的算术和取256的模。

3) 分时电量

帧结构与电能数据基本相同,差别在于信息体的结构不同;信息体共包含27字节,具体定义如下:


信息体地址

1字节


分时电量数据

24字节


帧计数

1字节


电能数据校验

1字节

除了分时电量数据之外,定义与电能数据信息体中一致;分时电量数据定义如下:


总电量(4字节)


费率1 (4字节) — 尖


费率2 (4字节) — 峰


费率3 (4字节) — 平


费率4 (4字节) — 谷


费率5 (4字节) — 暂未使用

4) 遥测量


信息体1


……


信息体n


公共时标

历史数据帧包含公共时标,瞬时数据帧中没有。

每个遥测量信息体包含6字节,定义如下:


信息体地址

1字节


遥测量数据

4字节


数据状态

1字节

信息体地址的定义请参考附录C,取值1-255。

数据状态字节定义如下:


Bit7


Bit6


Bit5


Bit4


Bit3


Bit2


Bit1


Bit0


数据状态


保留(0)

数据状态位表示信息体中的遥测量数据是否为有效数据,0为有效,1为无效。

报文示例:

68 15 15 68 53 01 00 78 01 06 01 00 0B 01 0A 0F 00 12 03 0F 15 00 12 03 0F 56 16

15H:指的是从控制域开始到校验码之前的字节个数,共计15H=21个字节

报文分析

68 15 15 68      //帧头

53             //控制域

01 00          //RTU地址

78

01

06             //激活

01 00          //RTU地址

0B

01             //起始点01,第1个点

0A             //结束点0A,第10个点

0F 00 12 03 0F   //起始时间0F(15分) 00(0时) 12(18日) 03(3月) 0F(15年)

15 00 12 03 0F   //结束时间15(21分) 00(0时) 12(18日) 03(3月) 0F(15年)

56             //校验和

16             //帧尾

10 5A 01 00 5B 16

10

5A       //召唤I级数据

01 00     //RTU地址

5B       //校验和

16       //帧尾

68 15 15 68 28 01 00 78 01 07 01 00 0B 01 08 0F 00 92 03 0F 14 00 92 03 0F 29 16

68 15 15 68          //帧头

28                 //控制域

01 00              //RTU地址

78

01

07                //激活确认

01 00             //RTU地址

0B

01                //起始点01,第1个点

08                //结束点08,第8个点(此时采集器实际就只有前8个点)

0F 00 92 03 0F

//起始时间0F(15分)00(0时)92(1001  0010高3位星期4,低5位18日) 03(3月) 0F(15年)

14 00 92 03 0F

//结束时间14(20分)00(0时)92(1001  0010高3位星期4,低5位18日) 03(3月) 0F(15年)

时间: 2024-08-05 19:37:39

电力102规约报文解析的相关文章

libpcap报文解析: ipv4、ipv6 @ 2014.7.2

1 #include <string.h> 2 #include <stdlib.h> 3 #include <pcap.h> 4 #include <stdio.h> 5 #include <sys/time.h> 6 #include <unistd.h> 7 #include <netinet/in.h> 8 #include <pthread.h> 9 #include "packet_hea

通用报文解析服务的演进之路(基于磁盘目录的分布式消息消费者服务)之一

通用报文解析服务,用C#开发,经历了三版更新,支撑起了关区内的绝大多数数据交换业务,截止至今,每日收发报文约20万,数据量约5G,平均延迟在1分钟内. 回想起那些半夜处理积压报文的场景,不胜唏嘘,决定把这个演进过程向大家讲述一下.回顾历史,展望未来,如果能给大家一些启发,是再好不过的了. 由于某些历史和非历史原因,我们的数据交换在已经有IBMMQ等中间件做支撑的情况下,还需要将报文落地到磁盘目录下再做下一步解析.入库.因此就有了这么一个需求,基于磁盘目录的报文解析服务. 初步计划,按照演进过程中

基于DPI(深度报文解析)的应用识别

一.概述 1.DPI(Deep packet inspection,深度报文解析) 所谓"深度"是和普通的报文分析层次相比较而言的,"普通报文检测"仅分析IP包4 层以下的内容,包括源地址.目的地址.源端口.目的端口以及协议类型,而DPI 除了对前面的层次分析外,还增加了应用层分析,识别各种应用及其内容,主要实现一下功能: 1)应用分析--网络流量构成分析.性能分析.流向分析等: 2)用户分析--用户群区分.行为分析.终端分析.趋势分析等: 3)网元分析--根据区域

内核参数优化之2-1 tcp/ip 标志位报文解析

以下内容纯属虚构,切勿轻易相信! 众所周知,tcp/ip三次握手和四次挥手,均由syn/ack/fin三个标志位报文决定,但是这三个标志位报文,并不是说在构建连接的时候只发送一次的,因为协议不知道网络状况. 故而就存在了以下参数,可以调节发送次数 net.ipv4.tcp_syn_retries 这个参数从字面上来看就是syn标志位报文的重试次数,什么时候发送syn标志位呢?三次握手中,请求端第一次构建连接的时候,默认是5次,但是对于一个处于网络状况好的请 求端,5次显然是多了,因此,我们来个2

移动支付平台间接口报文解析技术核心架构实现、及平台交易处理项目全程实录教程

<基于移动支付平台间接口报文解析技术核心架构实现.及平台交易处理项目全程实录>课程讲师:MoMo 课程分类:Java框架适合人群:中级课时数量:52课时用到技术:JavaBean .Spring3.X. SpringMVC. Hibernate3.X.Apache HttpClient 3.x.JUnit4.x.自定义Annotation + java反射技术涉及项目:移动支付平台间接口咨询QQ:1337192913 课程介绍:   本课程抛开理论.以项目为驱动,适用于初次接触报文收发.组装解

HTTP报文解析

//我是一个Post请求,我告诉服务器:我要http://localhost:1538/WebForm1.aspx页面,我支持的httpb版本是1.1 POST http://localhost:1538/WebForm1.aspx HTTP/1.1 ----------------------------------------------------------------------------------------------------- Accept: text/html, app

移动支付平台间接口报文解析核心架构及平台交易全程实录

移动支付平台间接口报文解析核心架构及平台交易全程实录 (HttpClient+SpringMVC+Spring3+Hibernate3+自定义Annotation) 课程分类:Java框架 适合人群:中级 课时数量:52课时 用到技术:JavaBean .Spring3.X. SpringMVC. Hibernate3.X.Apache HttpClient 3.x.JUnit4.x.自定义Annotation + java反射技术 涉及项目:移动支付平台间接口 咨询qq:1840215592

基于DPI(深度报文解析)的应用识别2------实际分析

新浪微博的分析 早上刚刚起床先刷微博,打算就分析一下新浪微博.登陆之后抓取发布微博的数据包,进行分析. 1.抓包的要点: 1.关闭其他网络应用,保证本机网络流量的干净,便于分析. 2.先开启wireshark,后发布微博,微博发布成功立即停止,其他的应用类似. 3.查看conversion list ,太小的包没必要检查. 4.最关键的一点:一定抓取到3次握手,切记切记. 5.大部分应用都是基于TCP的,所以TCP优先分析,其次是UDP. 2.实际分析 1.筛选出TCP的回话列表,如图 我本地的

101电力通信协议规约光伏电站并网发电云组态软件SCADA智能网关

方案需求 光伏电站并网发电由太阳能光伏电池板.逆变器以及输变电设备组成.光伏发电监控管理系统,通过数据采集监测分析,调动终端硬件设备,优化配置并共同发生作用,有效整合发电资产设备,需要对大量参数进行测量.保存.分析和控制. 将光伏电站的逆变器.汇流箱.辐照仪.气象仪.电表等设备通过RS232/RS485连接数传终端,通过2G/3G/4G等方式上传到网络服务器或管理中心本地电脑,运维人员在电脑上查看相关数据和管理.从小规模的建筑光伏.金太阳工程等到大型荒漠电站以及各种形式的光伏电站,都存在数据显示