通讯管理机与后台机基于SOCKET的通讯规约2004-8-27

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

通讯管理机与后台机通讯规约
2013年4月7日星期日修订
通讯方式为基于TCP/IP的socket通讯,通讯管理机相当于Server,后台机相当于Client。

上行信息(通讯管理机至后台机)
上行信息20种,包括:
1.(0x01) 遥测
2.(0x02) 遥信
3.(0x03) 电度
4.(0x04) 遥信变位
5.(0x06) 遥控反校
6.(0x07) 电度初值
7.(0x08) PTCT变比
8.(0x09) 电度变比
9.(0x0A) 保护报文
10.(0x0B) 保护整定值
11.(0x0C) AD采样数据
12.(0x0D) 谐波分析值
13.(0x0E) 长录波报文
14.(0x0F) 长录波报文辅助信息
15.(0x57) 转发校时
16.(0x78) 模块当前定值区号
17.(0x79) 模块通讯状态
18.(0x7A) 五防数据
19.(0xAA) 发送结束
20.(0xFB) 模块初始化标志
1.遥测量

每个遥测量为生数据,占4个字节,以标准4字节浮点数float型表示。

将其乘以相应模块的PTCT变比后才是真实值
字节长度应该为:4*本站遥测个数
2.遥信量

每个遥信量占1位,8个遥信量占一个字节,每个模块遥信数量不定。

软遥信不在其中。

字节长度应该为:本站遥信个数/8
3.电度量

每个电度量占4个字节,类型为float,每个模块包含4个电度量
将其乘以相应模块的电度变比才是真实数据。

如果为数字式电度表,则不需乘以变比。

如果需要获得一次电度,还需乘以相应的PTCT变比。

字节长度应该为:4*本站电度量个数
4.遥信变位
序号= 序号高* 256 + 序号低
类型为保护装置模块属性号(1 – 255),序号对应相应保护模块的保护动作表中的序号
0 表示硬开入,对应全站所有遥信整体排序号
年= 年高*256+年低
毫秒= 毫秒高*256+毫秒低
5.遥控返校
0xCC:合闸选线返校正确
0x33:分闸选线返校正确
0xDD:执行完毕
0x44:撤消完毕
0xE0:已经选过线了,本次操作无效
0xE1:面板正在执行操作,本次操作无效
0xE2:没有选线,不能执行,本次操作无效
0xE3:没有选线,不能撤消,本次操作无效
0xE4:频差大,无法合闸
0xE5:不同期,无法合闸
0xE6:压差大,无法合闸
0xE7:合闸操作成功
0xE8:合闸操作失败
0xE9:分闸操作成功
0xEA:分闸操作失败
0xAA:上位机参数设置正确
0xA5:上位机参数设置错误
为便于统一处理,遥信变位实际信息长度全部为8字节,这样转发前置机以及通讯服务器就可以将这些信息一齐存储、一齐发送。

6.电度初值
... ...
每4个字节存放一个电度量(电度脉冲数),int类型,个数由字节长度/4决定。

7.PTCT变比
PT、CT、直流变比最大值为9999(全部为整数),整数低字节每逢0x64(100)进位给整数高字节,参见电度量初值8.电度变比
DP11为“正相有功每度转数”整数低DQ11为“正相无功每度转数”整数低
DP12为“正相有功每度转数”整数高DQ12为“正相无功每度转数”整数高
DP13为“正相有功每转脉冲数”DQ13为“正相无功每转脉冲数”
DP21为“反相有功每度转数”整数低DQ21为“反相无功每度转数”整数低
DP22为“反相有功每度转数”整数高DQ22为“反相无功每度转数”整数高
DP23为“反相有功每转脉冲数”DQ23为“反相无功每转脉冲数”
整数低部分逢0x64向高位进位,即逢百进一
9.保护报文
年= 年高× 100 + 年低

前8字节为报文产生的年月日时分秒,从第九个字节开始的内容详见备注“保护报文格式”
10.保护整定值

保护整定值的具体格式详见各保护装置。

11.A/D采样数据

参见备注2
12.谐波分析值

参见备注3
13.长录波报文

有效信息的前17字节为文件名字符串(不包含扩展名),内容为模块号(3字节)年(4字节)月(2字节)日(2字节)时(2字节)分(2字节)秒(2字节)。

其后为录波报文数据。

14.长录波报文辅助信息
信息= 0x00,无报文。

信息= 0x33,正在上传报文,请稍候再要。

15.转发机给后台机校时
年= 年高* 256 +年低毫秒= 毫秒高* 256 +毫秒低16.模块当前保护定值区号

每个字节保存1个模块的当前定值区号,每次可发送的模块状态总数由长度决定。

17.模块当前通讯状态
每个字节保存8个模块的通讯状态,每次可发送的模块
18.五防可操作开关号
开关编号格式为标准4字节整形,低字节在前。

开关编号等于-1 表示无开关可操作。

19.本次发送结束
状态总数为32*8=256
20.模块初始化
模块号标示该模块初始化。

下行信息(后台机至通讯管理机)下行信息包括17种,包括:
1.(0x51) 选线
2.(0x52) 执行/撤销
3.(0x54) 设置电度初值
4.(0x55) 设置PTCT变比
5.(0x56) 设置电度变比
6.(0x57) 接受后台机校时
7.(0x58) 请求模块参数
8.(0x59) 请求A/D采样值
9.(0x5A) 请求谐波分析值
10.(0x5B) 整组投退
11.(0x5C) 设置保护整定值
12.(0x5E) 请求录波文件
13.(0x5F) 启动录波
14.(0x61) 控制开出
15.(0x62) PLC控制
16.(0x77) 电笛电铃
17.(0xFF) 选通(请求转发机发送下一轮数据)
1.选线
0xCC:合闸选线0x33:分闸选线
2.执行/撤销
0xAA:执行0x55:撤销
3.设置电度初值
每4个字节存放一个电度量(电度脉冲数),int类型
4.设置PTCT变比
……
每个变比占2个字节,变比个数由“字节长度”决定。

整数低字节每逢0x64(100)进位给整数高字节
5.设置电度变比
DP11为“正相有功每度转数”整数低DQ11为“正相无功每度转数”整数低
DP12为“正相有功每度转数”整数高DQ12为“正相无功每度转数”整数高
DP13为“正相有功每转脉冲数”DQ13为“正相无功每转脉冲数”
DP21为“反相有功每度转数”整数低DQ21为“反相无功每度转数”整数低
DP22为“反相有功每度转数”整数高DQ22为“反相无功每度转数”整数高
DP23为“反相有功每转脉冲数”DQ23为“反相无功每转脉冲数”
整数低部分逢0x64向高位进位,即逢百进一
6.校时
7.请求模块参数
包括保护整定值,整组投退,PTCT变比,电度变比,电度初值8.请求A/D采样值
9.请求谐波分析值
10.设置保护整组投退
0xAA:投入0x55:退出
11.设置保护整定值

12.请求录波文件
13.启动录波
14.控制开出
0xCC:合0x33:分
字节3:1:脉冲0:保持
字节4:保持时间(ms) 毫秒整形低字节(毫秒%256)
字节5:保持时间(ms) 毫秒整形低字高(毫秒/256)
15.P LC控制
类型= 1 BYTE 类型= 2 char
类型= 3 WORD 类型= 4 _int16
类型= 5 unsigned int 类型= 6 int
类型= 7 float
“值”的数据格式由“类型”指定,有效字节从1-4,整形值低字节在前,浮点值格式符合国标。

16.电笛电铃
类型= 1代表电笛,类型= 2 代表电铃
开关= 1 鸣(笛或铃),开关= 0 停止(笛或铃)
17.选通
FE:第一次选通EE:非第一次选通
注:
1.最小单元格以字节为单位,低字节在前高字节在后。

2.所有序号排列全部从1起始。

3.当发送接收出现错误时,通讯切断后重新连接。

保护报文的附加说明
一个保护报文分SOE报文和YC报文两部分
模块生成保护报文以后,通过CAN总线先发SOE报文,然后发YC报文.
其中:①SOE报文包括若干条SOE信息,每条SOE信息为8个字节.
0:SOE序号(从0开始)
1:毫秒低
2:毫秒高
3:秒
4:分
5:时
6:SOE代码
7:备用
②YC报文共2220个字节,包括:a.参数区(60个字节)
b.采样值区(2160个字节)60+360 * N 采样值区包含6个模拟量的瞬时采样值,每个模拟量20个周波,每个周波
18点,所以采样值区共6个量*20个周波*18点=2160个字节.
0、从CAN总线上接收SOE报文和YC报文以后,将其合并在一起形成一个报文,
用于现地打印或232发送,其格式如下:
第0个字节:SOE个数
第1个字节:YC报文字节总数低8位(2220余256)
第2个字节:YC报文字节总数高8位(2220除256)
以下为SOE信息,每条SOE信息为8个字节
以下为YC报文的参数区(60个字节)
以下为YC报文的采样值区采样值区(2160个字节)
A/D采样值的附加说明
前两个字节为模块属性,第三四字节为模块号,第五六字节备用。

其余字节按1~16路AD顺序排列,每个AD 36个字(72个字节,采2个周波),低字节在前,高字节在后。

低字节为小数,高字节为整数。

总共字节数为6+16*72=1158。

上位机将这36(行)*16(列)点的值以二维表显示。

谐波分析的附加说明
数据格式同A/D采样值。

上位机根据一周波的采样数据算出1-9次谐波的幅值,以二维表显示。

参考程序如下:
其中buf为网络接收的缓冲区,xbfxvalue为计算后的结果。

for (i=0; i<6+16*36; i++)
fTemp[i] = (double)(buf[8+6+i*2] | (char)buf[8+6+i*2+1]*256)/256.0;
for (i=0; i<16; i++)
{
for (j=1; j<10; j++)
{
Imv = Imi = 0;
for (k=0; k<36; k++)
{
Imv += fTemp[i*36+k]*sin(Ph*j*k);
Imi += fTemp[i*36+k]*cos(Ph*j*k);
}
Imv *= 2.0;
Imi *= 2.0;
Imv /= 36.0;
Imi /= 36.0;
xbfxvalue [i*9+j-1] = sqrt((Imv*Imv+Imi*Imi)/2)*5/4;
}
}。

相关文档
最新文档