变压器油监测系统上位机通讯协议E.docx
《变压器油监测系统上位机通讯协议E.docx》由会员分享,可在线阅读,更多相关《变压器油监测系统上位机通讯协议E.docx(23页珍藏版)》请在冰豆网上搜索。
变压器油监测系统上位机通讯协议E
变压器油中故障气体监测系统
主CPU、上位机数据结构及通讯协议
一、采用MODBUS通讯协议
二、从节点(站)数据结构:
1、基本参数
(1)系统时间
structSystime
{charyear;//年
charmenth;//月
charday;//日
charhour;//时
charminute;//分
charsecond;//秒
charms;//毫秒
charres;//保留
}计8字节,存储空间RAM,定时或扫描更新
上位机操作权限:
读—修改—写
ModbusIOMapAddr:
◆关于测量时间的定义:
完成油罐内换油操作的截止时间。
如换油时间需要5分钟,测量时间为12时,则系统应提前5分钟启动,即在11:
55启动。
(2)节点通讯参数设定
Structnode_com_para_set
{ucharcom_port;//通讯接口:
1-RS485,2-以太网
ucharmodbus_addr;//modebus节点地址
ucharbaud_rate;//通讯波特率编码
ucharres[5];//保留
}计8字节,以二进制文件形式存储
波特率编码:
#defineBAUDRT_00241
#defineBAUDRT_00482
#defineBAUDRT_00963
#defineBAUDRT_01444
#defineBAUDRT_01925
#defineBAUDRT_02886
#defineBAUDRT_03847
#defineBAUDRT_05768
#defineBAUDRT_07689
#defineBAUDRT_115210
#defineBAUDRT_172811
#defineBAUDRT_230412
2、装置操作模式和工作模式设定
操作模式编码:
#defineOP_MODE_MANU0
//手动操作(通过密码由主CPU设定),由现场操作启动测量过程,用于测量参数标定,该方式退出后进入自动运行。
#defineOP_MODE_REMO1
//远程操作(通过上位机设定),由上位机启动测量过程
#defineOP_MODE_AUTO2
//自动运行(手动操作或远程操作退出后进入自动运行方式,根据Equipment_Working_Mode结构中的测量周期cycle和起始时间sttime由主CPU自动启动测量过程
工作模式编码:
#defineW_MODE_STOP0//停止运行,主CPU运行,设备电源关断
#defineW_MODE_WAIT1//等待方式,主CPU运行,设备电源供电
#defineW_MODE_RUN2//运行方式
StructEquipment_Working_Mode
{charop_mode;//操作模式
charw_mode;//工作模式
charcycle;//测量周期:
1-24小时
charsttime;//起始时间:
0-23点
charchg_oil_time;//换油时间:
1-10分钟
charclr_gas_time;//吹扫时间:
1-10分钟
charspr_gas_time;//脱气时间:
1-10分钟
charres;
}
此结构为8字节,与Structnode_com_para_set共同以二进制文件形式存储
文件长度:
16字节,文件名:
sys_set0.cfg,sys_set1.cfg,sys_set2.cfg,采用三重冗余存储。
文件结构:
Filestruct
<
Structnode_com_para_set;
StructEquipment_Working_Mode;
>
ModbusIOMapAddr:
上位机操作权限:
读-修改-写
3、装置运行状态在线反馈
工作状态编码:
#defineW_STATE_STOP0//停止运行,主CPU运行,设备电源关断
#defineW_STATE_WAIT1//等待方式,主CPU运行,设备电源供电
#defineW_STATE_RUN2//运行方式
StructEquipment_State
{charrun_state;//工作状态
charexeu_task;//当前正在执行的任务
//0-待机(WAIT);1-启动(START);
//2-抽取油样(GET_OIL);
//3-吹扫气室(CLR_GAS);
//4-红外光源预热(HEAT_IS);
//5-油位平衡;(BAL_OIL)
//6-背景气体检测(MEA_BGAS),
//检测气体由当前任务正在执行的
//步骤task_step确定,详见气体类型编码;
//7-脱气;(GET_SGAS)
//8-红外光源预热(HEAT_IS);
//9-样气检测(MEA_SGAS),
//检测气体由当前任务正在执行的步骤
//task_step确定,详见气体类型编码;
//9-读取测量数据(READ_DATA);
//10-数据分析处理(PROC_DATA);
chartask_step;//当前任务正在执行的步骤
chartask_failed;//当前任务失败标志;
//0-当前任务执行正常(T_NOR);
//1-当前任务失败,返回到上一任务(T_RET);
//2-当前任务失败,发生可恢复性错误,
//系统重新启动(T_START);
//3-当前任务失败,发生致命错误,
//系统进入致命错误处理状态(T_FATAL);
charerr_MECU;//主CPU错误
//0x00-正常
//0x01-通讯中断(与从节点的通讯全部中断)
//0x02-异常复位
//0x04-读文件错误
//0x08-写文件错误
//0x10-初始化错误
charerr_ECU1;//光声测量单元错误
//错误类型编码:
//0x00-正常
//0x01-通讯中断
//0x02-异常复位
//0x04-斩光盘异常
//0x08-镜片选择异常
//0x10-信号测量异常
charerr_ECU2;//氢气测量单元错误
//错误类型编码:
//0x00-正常
//0x01-通讯中断
//0x02-异常复位
//0x04-超声波测量异常
//0x08-温度测量异常
charerr_ECU3;//油气回路控制单元错误。
//错误类型编码:
//0x00-正常
//0x01-通讯中断
//0x02-异常复位
//0x04-漏油报警
//0x08-油位平衡上限异常
//0x10-油位平衡下限异常
}
此结构为8字节,在主CPU中的存储空间为不掉电RAM,采用定时刷新方式。
ModbusIOMapAddr:
上位机操作权限:
只读
此结构也同时作为装置运行事件记录文件的记录结构中的一部分,
事件记录结构:
StructEvent_Rcd
{CharSysTime[8];//系统时间
StructEquipment_State;//装置状态
Charres[8];//保留
}每条记录的长度为24字节,
Filestruct
<
StructEvent_Rcd[512];
>
事件记录文件名:
Event.Rcd,文件空间为12k,可存储512条记录,采用循环队列记录方式。
上位机操作权限:
只读
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
11
文件记录索引
StructFile_Index
{uintEvent_Rcd_Rid;//事件记录文件-记录索引
uintGCM_Rcd_Rid;//气体含量测量数据记录文件,记录索引
uintPSMDF_Rcd_Fid;//光声信号原始测量数据记录文件,文件名索引
uintPSCDF_Rcd_Fid;//系统标定信号原始测量数据记录文件,文件名索引
charres[8];//保留备用
}计16字节,存储在主CPU的铁存储器第2页,起始地址为0x00
4、气体浓度计算用常数数据结构
(1)气体名称编码:
#defineGAS_VAPER0//水蒸汽H2O
#defineGAS_CBN_DI1//二氧化碳CO2
#defineGAS_CBN_MO2//一氧化碳CO
#defineGAS_ETHENE3//乙烯C2H4
#defineGAS_METHANE4//甲烷CH4
#defineGAS_ETHANE5//乙烷C2H6
#defineGAS_ETHYNE6//乙炔C2H2
#defineGAS_NITROGEN7//氮气N2
#defineGAS_AIR8//空气
#defineGAS_HYDROGEN9//氢气H2
(2)气体物理化学常数
floatTemp_Scal[11]=
{-30.0,-20.0,-10.0,0.0,10.0,20.0,
30.0,40.0,50.0,60.0,70.0};//工程单位:
℃
floatPres_Scal[11]=
{900.0,920.0,940.0,960.0,980.0,1000.0,
1020.0,1040.0,1060.0,1080.0,1100.0};//工程单位:
mbar
标准海平面大气压等于1013.2毫巴(mbar)
1毫巴(mbar)=100帕斯卡(Pa)
气体物理化学常数结构
structGas_PhCh_Coefficient[10]//对应10种气体,下标对应气体名称编码
{floatatomic_number;//气体分子量
floatOstwald_K;//被测气体的奥斯特瓦尔德Ostwald系数K值
floatescape_ratio;//被测气体的脱气率
floatgama;//比热比
floatcp_tab[11];//定压比热分度表(-30--70℃)
floatcv_tab[11];//定容比热分度表(-30--70℃)
floatf;//被测气体的克分子相对校正因子
floatres_k;//保留系数
charrsv[32];//保留
}计64字节*10=640字节
此结构以二进制文件存储,占用空间为640字节。
采用3重冗余存储。
文件名:
GPCC_0.COE,GPCC_1.COE,GPCC_2.COE
此文件可通过人机界面设置参数,也可通过上位机采用读-修改-写的方式对参数进行修改。
气体密度表:
StructGas_Density[10]//对应10种气体,下标对应气体名称编码
{floatdensity_tab[11][11];//气体密度表,数组的第一下标为温度刻度
//第二下标为压力刻度,单位:
kg/m3
}计11*11*4*10=4840字节
此结构以二进制文件存储,占用空间为4840字节。
采用3重冗余存储。
文件名:
GDNST_0.COE,GDNST_1.COE,GDNST_2.COE
此文件可通过人机界面设置参数,也可通过上位机采用:
读-修改-写的方式对参数进行修改。
(3)装置常数
structDiv_const
{floatoil_volume;//油样体积mL
floatgas_volume;//气体体积mL
charrsv[8];//
}
此结构以二进制文件存储,占用空间为16字节。
采用3重冗余存储。
文件名:
GDNST_0.COE,GDNST_1.COE,GDNST_2.COE
此文件可通过人机界面设置参数,也可通过上位机采用:
读-修改-写的方式对参数进行修改。
标准样气存储结构
StructStandard_Gas
{uingback_gnd[10];//背景气体组分分布
//气体浓度单位:
ppm,0.2ppm/bit;
//浓度数据范围:
0.2—12000ppm
//存储顺序:
0-水蒸汽,1-二氧化碳,2-一氧化碳,
//3-乙烯,4-甲烷,5-乙烷,6-乙炔,
//7-氮气,8-氢气,9-空气
//以下数组均按此规范设置
uintt_mix[10];//痕量混合样气组分分布
uintl_mix[10];//低浓度混合样气组分分布
uintm_mix[10];//中浓度混合样气组分分布
uinth_mix[10];//高浓度混合样气组分分布
uintt_sgl[10];//痕量单组分样气浓度分布
uintl_sgl[10];//低浓度单组分样气浓度分布
uintm_sgl[10];//中浓度单组分样气浓度分布
uinth_sgl[10];//高浓度单组分样气浓度分布
uintrsv[10];//保留
}计10*10*2=200字节,
此结构存储用于进行一次系统标定所用的标准样气的浓度分布数据。
每个结构以一条记录的形式存储在二进制文件中,文件名称:
STNDGas.dat,文件空间:
200*
Filestruct
<
StructStandard_Gas
>
此文件可通过人机界面设置参数,也可通过上位机采用:
读-修改-写的方式对参数进行修改。
被测气体类型定义:
#defineGASTYPE_C_BGND0x00//标定用背景气体
#defineGASTYPE_C_TMIX0x01//标定用痕量混合样气
#defineGASTYPE_C_LMIX0x02//标定用低浓度混合样气
#defineGASTYPE_C_MMIX0x03//标定用中浓度混合样气
#defineGASTYPE_C_HMIX0x04//标定用高浓度混合样气
#defineGASTYPE_C_TSGL0x05//标定用痕量单组分样气
#defineGASTYPE_C_LSGL0x06//标定用低浓度单组分样气
#defineGASTYPE_C_MSGL0x07//标定用中浓度单组分样气
#defineGASTYPE_C_HSGL0x08//标定用高浓度单组分样气
#defineGASTYPE_M_BGND0x10//实测过程中的背景气体
#defineGASTYPE_M_UGAS0x11//实测过程中的样品气体
标准样气序号定义:
#defineSGAS_B_GND0x00//背景气体
#defineSGAS_T_MIX0x01//痕量混合样气
#defineSGAS_L_MIX0x02//低浓度混合样气
#defineSGAS_M_MIX0x03//中浓度混合样气
#defineSGAS_H_MIX0x04//高浓度混合样气
#defineSGAS_T_SGL0x05//痕量单组分样气
#defineSGAS_L_SGL0x06//低浓度单组分样气
#defineSGAS_M_SGL0x07//中浓度单组分样气
#defineSGAS_H_SGL0x08//高浓度单组分样气
光声信号放大倍数定义:
#defineAMP_K00x00//信号放大倍数,0.2倍
#defineAMP_K10x01//信号放大倍数,1.0倍
#defineAMP_K20x02//信号放大倍数,2.5倍
#defineAMP_K30x03//信号放大倍数,5.0倍
#defineAMP_K40x04//信号放大倍数,10倍
#defineAMP_K50x05//信号放大倍数,
(1)光声信号测量原始数据
StructPhoto_Signal_Measuring_Data
{ucharmeasured_gas_type;//被测气体类型,详见被测气体类型定义
ucharstand_gas_serialNo;//标准样气表序号,详见标准样气序号定义
uintmeasuring_gas;//测量气体代码
intAmp_K;//信号放大倍数0-0.5、1-1、2-2、……
longgas_temp[6];//测量时气体的温度℃,0.001℃/bit,6个测量点
longenv_temp;//测量时环境(箱体内)温度℃,0.001℃/bit
longgas_temp;//测量时油的温度℃,0.001℃/bit
uintenv_pres;//测量时大气压力mbar,0.1mbar/bit
uintifrd_I;//测量时红外光源相对强度0—100%,0.01%/bit
charres[9];//保留备用
uintphoto_AD[8192];//光声测量原始信号,数据范围:
0-65535;
uintnoise_AD[8192];//噪声测量原始信号,数据范围:
0-65535;
}计32+8192*2+8192*2=32+32768字节=32.03125k;
在主CPU中定义结构数组StructPhoto_Signal_Measuring_Data[10];用于存储10种气体光声和超声波信号测量数据,存储顺序:
0-水蒸汽,1-二氧化碳,2-一氧化碳,3-乙烯,4-甲烷,5-乙烷,6-乙炔,7-氮气,8-空气,9-氢气,其中对于氢气的超声波测量信号,存储在结构Photo_Signal_Measuring_Data[9]中photo_AD[8192]数组中。
(2)光声信号测量原始数据记录文件结构
每完成一次测量生成一个数据文件
文件结构为
Filestruct
<
structSystime;//测量时间,8字节
StructPhoto_Signal_Measuring_Data[20];//32.03125*20=640.625k
Photo_Signal_Measuring_Data[0]--Photo_Signal_Measuring_Data[9]为背景测量数据,
Photo_Signal_Measuring_Data[10]--Photo_Signal_Measuring_Data[19]为样气测量数据
>
文件名:
PSMDxxxx.rcd,
其中,xxxx为文件序号:
0000-0999,可记录1000次的原始测量数据,约占用640M的CF卡空间。
上位机操作权限:
读
(2)气体浓度测量数据结构
structGas_Contents
{charMeas_Time[8];//8字节测量时间
uintGas_Con[8];//16字节气体含量,0.2ppm/bit
//工程量数据范围:
0.2—12000ppm
longTemperat[8];//32字节对应温度,0.001℃/bit
//工程量数据范围:
-40—120℃
uintPressure[8];//16字节对应压力,0.1mbar/bit
//工程量数据范围:
900—1200mbar
charRes[24];//24字节备用
}共96个字节
按每小时一次的测量周期,每年需要365*24=8760条记录,5年需要43800条记录,需要的文件存储空间为43800*96Byte=4106.25kByte;
采用二进制文件进行测量数据记录,CF盘预留13M的空间对文件进行三重冗余备份;
文件名:
GCM0.rcd,GCM1.rcd,GCM2.rcd
上位机操作权限:
读
########################################################################
系统标定数据结构
(1)背景气体标定原始数据
测量条件:
被测气体类型为标定用背景气体
测量过程:
首先测量氢气,然后,采用0.2、1.0、2.5、5.0放大倍数,依次对0-水蒸汽,1-二氧化碳,2-一氧化碳,3-乙烯,4-甲烷,5-乙烷,6-乙炔,7种气体进行测量。
根据测量结果生成背景气体标定原始数据文件,CLB_BG.DAT
文件类型:
二进制文件
文件结构:
Filestruct
<
uintSGas_counst[10];//样气浓度分布表
uintres[10];//保留
StructPhoto_Signal_Measuring_DataPh_Clb_MData[32];//光声信号测量原始数据结构
>
其中8种气体的光声信号测量原始数据存储顺序为:
Ph_Clb_MData[0]--[3],氢气测量信号
Ph_Clb_MData[4]--[7],水蒸汽测量信号,放大倍数依次为0.2、1、2.5、5
Ph_Clb_MData[8]--[11],二氧化碳测量信号,放大倍数依次为0.2、1、2.5、5
Ph_Clb_MData[12]--[15],一氧化碳测量信号,放大倍数依次为0.2、1、2.5、5
Ph_Clb_MData[16]--[19],乙烯测量信号,放大倍数依次为0.2、1、2.5、5
Ph_Clb_MData[20]--[23],甲烷测量信号,放大倍数依次为0.2、1、2.5、5
Ph_Clb_MData[24]--[27],乙烷测量信号,放大倍数依次为0.2、1、2.5、5
Ph_Clb_MData[28]--[31],乙炔测量信号,放大倍数依次为0.2、1、2.5、5
文件占用空间:
32*32.03125k=1025k
(2)痕量混合样气标定原始数据
测量条件:
被测气体类型为标定用痕量混合样气
测量过程:
与
(1)相同
根据测量结果生成背景气体标定原始数据文件,CLB_TM.DAT
文件类型:
二进制文件;文件结构:
与
(1)相同;文件占用空间:
1025k
(3)低浓度混合样气标定原始数据
测量条件:
被测气体类型为标定用低浓度混合样气
测量过程:
与
(1)相同
根据测量结果生成背景气体标定原始数据文件,CLB_LM.DAT
文件类型:
二进制文件;文件结构:
与
(1)相同;文件占用空间:
1025k
(4)中浓度混合样气标定原始数据
测量条件:
被测气体类型为标定用中浓度混合样气
测量过程:
与
(1)相同
根据测量结果生成背景气体标定原始数据文件,CLB_MM.DAT
文件类型:
二进制文件;文件结构:
与
(1)相同;文件占用空间:
1025k
(5)高浓度混合样气标定原始数据
测量条件:
被测气体类型为标定用高浓度混合样气
测量过程:
与
(1)相同
根据测量结果生成背景气体标定原始数据文件,CLB_HM.DAT