REDISANT 提供互联网与物联网开发测试套件 #
互联网与中间件:
第三章:COMTRADE 配置文件 #
概述 #
配置文件是ASCI文本文件,提供给人或计算机程序阅读和解释相关数据文件中的数据值所必须的信息。配置文件具有预定的标准化格式,故无需为每个配置文件编写计算机程序。
内容 #
配置文件包括下列信息:
- 厂站名,记录装置的标识,COMTRADE标准版本年号;
- 通道的总数和类型;
- 通道名称、单位和转换因子;
- 电网频率;
- 采样速率和每一速率下的采样点数;
- 第一个数据点的日期和时间;
- 触发点的日期和时间;
- 数据文件类型;
- 时标倍率因子;
- 时间编码和本地编码;
- 采样的时标品质。
文件名 #
配置文件名称有.CFG扩展名,用于区分同一组文件中头文件、数据和信息文件,遵循惯例,易于记忆和识别。
格式 #
概述 #
配置文件是有标准格式的ASCII文本文件。每一文件集都应包含此文件,以定义数据文件的格式。
配置文件分为数行。每一行以回车/换行结束。以逗号分隔一行中的各个域。即使某个域中没有数据输人,也要求使用数据分隔符逗号。由于逗号、回车和换行被用作数据分隔符,它们不再是任何域中的合法字符。例如,通道名“Pacific west,Line number two”将被理解为两个分开的域。数据分隔符的使用,允许域长度可变,不要求前导和填充零或空格。但是,一些编程语言为负号保留一个前导字符位置,编写读取COMTRADE文件的程序应至少容许域中有一个前导空格。每行的信息必须严格按内容的顺序排列。各行应严格按配置文件的格式设计所示的顺序显示。不符合该格式的文件集是无效的。
厂站名、标识和版本年号 #
配置文件的第一行应含有厂站名、记录装置标识和COMTRADE标准版本年号。
station_name,rec_dev_id,rev_year<CR/LF>
其中:
station_name
厂站名称,厂站位置名称或文件形成的位置名称。必选,字母数字,最小长度=1个字符,最大长度=64个字符。
rec_dev.id
记录装置的标识编号或名称。必选,字母数字,最小长度=1个字符,最大长度=64个字符。
rev_year
由标准版本的年号规定的COMTRADE标准文件版本,例如2013。必选,数字,最小长度=4个字符,最大长度=4个字符。rev_year的取值只可是1991,1999和2013中的一个。该域指明文件结构是否不同于IEEEStdC37.111一1999和IEEE Std C37.111—1991 COMTRADE标准。若无此域或该域为空, 则认为该文件与标准的1991年版本兼容。
通道总数和类型 #
本条说明在数据文件每条记录中出现的通道总数和类型:
TT,##A,##D<CR/LF>
其中:
TT
通道总数。必选,数字,整数,最小长度=1个字符,最大长度=6个字符,最小值=1,最大值=999999,TT必须等于##A和##D的和。
##A
模拟通道数量,其后跟着标识“A”。必选,字母数字,最小长度=2个字符,最大长度=7个字符,最小值=0A,最大值=999999A。
##D
状态通道数量,其后跟着标识“D”。必选,字母数字,最小长度=2个字符,最大长度=7个字符,最小值=0D,最大值=999999D。
模拟通道信息 #
模拟通道是含有模拟通道信息的若干行。每一模拟通道占一行。模拟通道行的总数必须等于##A(7.4.3)。若模拟通道计数=0,则无模拟通道信息行。模拟通道行信息格式如下:
An,ch_id,ph,ccbm,uu,a,b,skew,min,max,primary,secondary,PS<CR/LF>
其中:
An
模拟通道索引号。必选,数字,整数,最小长度=1个字符,最大长度=6个字符,最小值=1,最大值=999999。不要求前导零或空格。从1开始顺序计数至模拟通道总数(##A
),不考虑记录装置的通道数量。
ch_id
通道标识。必选,字母数字,最小长度=1个字符,最大长度=128个字符。
ph
通道相别标识。可选,字母、数字,最小长度=0个字符,最大长度=2个字符。
ccbm
被监视的电路元件。可选,字母、数字,最小长度=0个字符,最大长度=64个字符。
uu
通道单位(例如,kV,V,kA,ARMS,APeak)。必选,字母,最小长度=1个字符,最大长度=32个字符。物理量的单位必须使用IEEEStd260.1—1993或IEEE Std 280.1—1985(R1996)或ISO80000—1标准所规定的标准名称或缩写。数字倍率不应包括在内。可采用标准的倍率,如k(千)、m(千分之一)、M(百万)等。“NONE”用作无量纲值的单位。
a
通道增益系数。必选,实数,数字,最小长度=1个字符,最大长度=32个字符。可以使用标准浮点标记法。
b
通道偏移量。必选,实数,数字,最小长度=1个字符,最大长度=32个字符,可以使用标准浮点标记法。
通道转换因子是ax+b。数据文件(.DAT)中的存储数据值x与采用上述规定单位(uu)的ax+b的采样值相对应。按照数学上的解析规则,采样数据“x”乘以增益系数“a”,加上偏移量“b”,通过转换因子将数据值还原为原始采样值。
skew
从采样时刻开始的通道时滞(μs)。必选,实数,最小长度=1个字符,最大长度=32个字符。可使用标准浮点标记法。该域提供在记录的采样周期内,各通道采样时差信息。例如,在一个具有A/D转换器、非同步采样、采样周期为1ms的8通道装置内,第一次采样从“timestamp”表示的时刻开始,在采样周期内,相继通道的采样时刻依次滞后125μs。在此情况下,相继通道的时滞分别为:0、125、250、375···等。
min
该通道数值范围的最小值(可能数值范围的最下限)。必选,数字(整数或实数),最小长度=1个字符,最大长度=13个字符,最小值=—3.4028235E38,最大值=3.4028235E38.
max
该通道数值范围的最大值(可能数值范围的最上限)。必选,数字(整数或实数),最小长度=1个字符,最大长度=13个字符,最小值=—3.4028235E38,最大值=3.4028235E38。注意:max≥min。
primary
通道电压或电流互感器变比一次系数,必选,实数,数字,最小长度=1个字符,最大长度=32个字符。
secondary
通道电压或电流互感器变比二次系数,必选,实数,数字,最小长度=1个字符,最大长度=32个字符。
P或S
表明通道转换因子方程ax+b得到的值还原为一次(P)还是二次(S)值的标识。必选,字母,最小长度=1个字符,最大长度=1个字符。有效字符仅可为:p、P、s、S.
状态(数字)通道信息 #
状态通道是含有状态通道信息的若干行。每个状态通道占一行,状态通道行的总数应等于##D
。若状态通道计数=0,则没有状态通道信息行。使用下列格式:
Dn,ch_id,ph,ccbm,y<CR/LF>
其中:
Dn
状态通道索引编号,必选,整数,数字,最小长度=1个字符,最大长度=6个字符,最小值=1,最大值=999999。不要求前导零或空格。顺序计数范围从1至状态通道(##D
)总数,不必考虑记录装置通道数量。
ch_id
通道名,必选,字母数字,最小长度=1个字符,最大长度=128个字符。
ph
通道相别标识。可选,字母数字,最小长度=0个字符,最大长度=2个字符。
ccbm
被监视电路元件。可选,字母数字,最小长度=0个字符,最大长度=64个字符。
y
状态通道正常状态(仅用于状态通道)。即一次设备处于稳定运行时的输入状态。状态通道的正常状态不承载关于状态信号的物理表征的信息,仅表示是无源触点(分或合)或电压(带电或不带电)。其目的是定义“1”代表正常还是异常状态。必选,整数,数字,最小长度=1个字符,最大长度=1个字符。有效取值只能为0或1。
电网频率 #
电网频率应在文件中单列一行:
lf<CR/LF>
其中:
lf
从采样位置获得的电网或子网的标称频率,单位:Hz(例如50,60),列车应用的16.7)。必选,实数,数字,最小长度=1个字符,最大长度=32个字符,可以使用标准浮点标记法。
采样率信息 #
这一小节包含关于采样率及其在给定采样率下采样点数量的信息。
对于具有一个或多个预设采样率的文件,其信息由一行采样率总数行和随之以每行一个采样率及此采样率下最末采样点序号行构成。在文件中,对每一采样率将有一行采样率和末点采样序号信息。对于采样周期连续变化的文件,例如,事件触发文件,采样率信息由两行组成:一行含有一个零标识,表示没有固定的采样周期或采样率;另一行含有一个零标识,表示采样周期不固定,另外还包含数据文件中的最末采样点序号。
nrates<CR/LF>
samp,endsamp<CR/LF>
其中:
nrates
数据文件中采样率个数。必选,整数,数字,最小长度=1个字符,最大长度=3个字符,最小值=0,最大值=999。
samp
采样率,单位Hz。必选,实数,数字,最小长度=1个字符,最大长度=32个字符。可以使用标准浮点标记法。
endsamp
该采样率下最末采样序号。必选,整数、数字,最小长度=1个字符,最大长度=10个字符,最小值=1,最大值=9999999999。
注:若 nrates 和 samp 为零,数据文件中的timestamp为必选,而 endsamp应设为文件中最末采样序号。当 nrates 与samp以及 timestamp都使用的情况下,最好使用 nrates与 samp确定更精确的时间。
日期/时标 #
配置文件中有两个日期/时标。第一个是数据文件中第一个数值的时间,第二个是触发点的时间。它们应以下列格式表示:
dd/mm/yyyy,hh:mm:ss.ssssss<CR/LF>
dd/mm/yyyy,hh:mm:ss.ssssss<CR/LF>
其中:
dd
月份中的日。必选,整数,数字,最小长度=1个字符,最大长度=2个字符,最小值=01,最大值=31。
mm
月。必选,整数,数字,最小长度=1个字符,最大长度=2个字符,最小值=01,最大值=12。
yyyy
年。必选,整数,数字,最小长度=4个字符,最大长度=4个字符,最小值=1900,最大值=9999。应包括年份的所有4个字符。 变量dd,mm和yyyy组成一个域,数字被“/”分隔开,中间不带空格。
hh
小时。必选,整数,数字,最小长度=2个字符,最大长度=2个字符,最小值=00,最大值=23。所有时间应以24小时的格式显示。
mm
分钟。必选,整数,数字,最小长度=2个字符,最大长度=2个字符,最小值=00,最大值=59。
ss.ssssss
秒。必选,十进制数字,分辨率=最低1纳秒,最小长度=9个字符(微秒),最大长度=12个字符(纳秒),最小值=00.000000,最大值=59.999999999。
按要求,日期和时间的所有位应由零填充补足。若无时间和日期识别数据,使用域分隔符“/(CR/LF)”,中间无插入字符,或者用0按正确的格式填充。
数据文件类型 #
数据文件的类型应为ASCII、binary、binary32、float32文件。说明格式如下:
ft<CR/LF>
其中:
ft
文件类型。必选,字母数字,不区分大小写,最小长度=5个字符,最大长度=8个字符。
时标倍率因子 #
该域用作数据文件中时标(timestamp)域的倍率因子,容许以COMTRADE格式存放长持续时间的记录。根据CFG文件中日期/时标的定义,时标以微秒或纳秒为基本单位。从数据文件中第一个数据采样到该数据文件中任一个时标的该数据采样所经过的时间等于该数据采样时标乘以配置文件中的时标倍率因子(timestamp*timemult
)。
timemult<CR/LF>
其中:
timemult
数据文件中时差(时标)域的倍率因子。必选,实数,数字,最小长度=1个字符,最大长度=32个字符,可使用标准浮点标记法。
时间信息以及当地时间与UTC时间的关系 #
这一行包含7.4.8中日期/时标以及记录装置所在位置的信息的时区信息。本行包含两个域:时间编码域和当地编码域。
时间码与IEEEC37.232—2007中的定义相同。这个域用来说明当地时间与UTC时间的时差(协调世界时是无偏移的,既没有时区偏移也没有夏时制偏移)。该域严格限定最大6个格式化字符。第一个字符为符号字符,其后紧跟5个字符表示时间偏移(其中最多2位数字表示小时且后面紧跟着字母“h”,再后2位数字表示分钟)。最后的3个字符仅当采用了小时等分的情况下使用。示例如下:
- “-4”表示时差为4h(負号表示落后UTC时间);
- “+10h30”表示时差为正10 h30 min(半小时时区);
- “-7h15”表示时差为负7h15 min;
- “0”表示时差为0(当地时间即UTC时间)。
时差反映了记录的时间是否采用了标准时间或夏时制。
当地码定义为记录所在位置的当地时区与UTC时间的差别。若记录装置没有设置为UTC时间,时间码和当地码是一致的。若记录装置设置为UTC时间,则二者不同,当地码将提供当地时区信息,时间码则为0且与记录装置所在位置无关。仅在当地时区为UTC时区时,当地码为0。
此外,有一特殊情形,当一个COMTRADE文件中的数据来自两个不同时区的变电站时,若无法避免这种情况,则可将时间码设置为UTC时间,当地码设置为“x”以表示当地码无效。
time_code,local_code<CR/LF>
其中:
time_code
与IEEEStdC37.232—2007中的定义相同。必选,字母数字,最小长度=1个字符,最大长度=6个字符。
local_code
与time_code
的定义相同,表示记录所在位置的时区与UTC之间的时差。必选,字母数字,最小长度=1个字符,最大长度=6个字符。
采样时间品质 #
采样时间品质由时间品质标识符来表示,格式如下:
tmq_code,leapsec<CR/LF>
其中:
tmq_code
是记录装置的时间品质标识编码,表示与时钟源同步的状态,其编码与IEEEC37.118中时间品质标识编码定义类似。必选,十六进制,最小长度=1个字符,最大长度=1 个字符,时间品质的值应为时标所在时刻的品质。
4 位时间品质标识编码见下表
二进制 | 十六进制 | 值(最差情形的精度) |
---|---|---|
1111 | F | “错误 -时钟错误,时间不可靠” |
1011 | B | “时钟未锁定,误差10s以内” |
1010 | A | “时钟未锁定,误差1s以内” |
1001 | 9 | “时钟未锁定,误差10-ls以内” |
1000 | 8 | “时钟未锁定,误差10-2s以内” |
0111 | 7 | “时钟未锁定,误差10s秒以内” |
0110 | 6 | “时钟未锁定,误差10-s秒以内” |
0101 | 5 | “时钟未锁定,误差10-s 秒以内” |
0100 | 4 | “时钟未锁定,误差10-s秒以内” |
0011 | 3 | “时钟未锁定,误差10’s秒以内” |
0010 | 2 | “时钟未锁定,误差10-#s秒以内” |
0001 | 1 | “时钟未锁定,误差10s秒以内” |
0000 | 0 | “正常运行,时钟锁定” |
leapsec
是闰秒标识符,表示当记录中两条数据共用同一世纪秒或中间缺失一秒的情况增加或删除1闰秒。必选,整数,数字,最小长度=1个字符,最大长度=1个字符。取值范围如下:
- 3 = 时钟源没有闰秒功能;
- 2 = 从记录中删除闰秒;
- 1 = 在记录中增加闰秒;
- 0 = 记录中无闰秒。
配置文件中缺失的内容 #
配置文件的格式决定了有些数据事实上可能是不可用的。缺少必选的数据将导致文件不可用。因此有些数据是可选的,有些则是必选的。配置文件中缺少必选数据将导致文件集不可用,不符合标准。配置文件中可选数据缺失仍符合标准,文件集仍可用。数据缺失时,数据分隔符彼此跟着,中间无插入字符,除非本章中另外规定。编写读COMTRADE文件的程序时应容许数据分隔符彼此跟着,中间无插入字符(空域)。
配置文件的格式设计 #
station_name,rec_dev_id,rev_year<CR/LF>
TT,##A,##D<CR/LF>
An,ch_id,ph,ccbm,uu,a,b,skew,min,max,primary,secondary,PS<CR/LF>
An,ch_id,ph,ccbm,uu,a,b,skew,min,max,primary,secondary,PS<CR/LF>
An,ch_id,ph,ccbm,uu,a,b,skew,min,max,primary,secondary,PS<CR/LF>
An,ch_id,ph,ccbm,uu,a,b,skew,min,max,primary,secondary,PS<CR/LF>
Dn,ch_id,ph,ccbm,y<CR/LF>
Dn,ch_id,ph,ccbm,y<CR/LF>
lf<CR/LF>
nrates<CR/LF>
samp,endsamp<CR/LF>
samp,endsamp<CR/LF>
dd/mm/yyyy,hh:mm:ss.ssssss<CR/LF)
dd/mm/yyyy,hh:mm:ss.ssssss<CR/LF>
ft<CR/LF>
timemult<CR/LF>
time_code,local_code<CR/LF>
tmq_code,leapsec<CR/LF>
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 原文链接:https://blog.redisant.cn