
/*******************************************************************************
* 版权所有：	
* 文件版本： V1.00
* 文件名称： Oc.c 
* 生成日期： 2007年9月10日
* 作   者： 
* 功   能： 过流保护头文件
* 修改日志：  
* 日志1：           
* 修改者：
* 修改日期：
* 修改内容：
* 修改原因：
********************************************************************************/
#ifndef __VOL_H
#define __VOL_H 
 

enum
{
	VOL_GDY_Uab1=0, 	// Uab过电压
	VOL_GDY_Ubc1, 		// Ubc1过电压
	VOL_GDY_Uca1, 		// Uca1过电压
	VOL_DDY_Uab1, 		// Uab1低电压
	VOL_DDY_Ubc1, 		// Ubc1低电压
	VOL_DDY_Uca1, 		// Uca1低电压
	VOL_GDY_Uab2, 		// Uab2过电压
	VOL_GDY_Ubc2, 		// Ubc2过电压
	VOL_GDY_Uca2, 		// Uca2过电压
	VOL_DDY_Uab2, 		// Uab2低电压
	VOL_DDY_Ubc2, 		// Ubc2低电压
	VOL_DDY_Uca2, 		// Uca2低电压
	VOL_DDY_DC1,		// 直流电源1低电压
	VOL_DDY_DC2,		// 直流电源2低电压
	VOL_YY_POW1,		// 电源1上电
	VOL_YY_POW2,		// 电源2上电
	VOL_WY_POW1,		// 电源1失电
	VOL_WY_POW2,		// 电源2失电
	VOL_NUMBER
};


/**********************************************************************
数据结构定义:
电流保护标志
***********************************************************************/
typedef union UVOLFLAG
{
	WORD  wfFlag;
	struct
	{
		WORD    bQD:1;     			
		WORD    bGj:1; 
		WORD    bTz:1;
		WORD    bEvent:1;
		WORD	bCYY:1;
		WORD     bQDWave:1;
		WORD     bPTYC:1;
	}bFlag;
}UVOLFLAG;

typedef struct  TVOL_T
{
	UVOLFLAG      sta;			// 动作标志字
	TIMERELAY 	tQDTime; 		// 时间继电器
	TIMERELAY 	tCYYTime; 		// PT1有压定时器	
	TIMERELAY 	tWaveYYTime; 	// 有压清录波标志
}TVOL_T;
extern TVOL_T	g_tVol[VOL_NUMBER];


typedef union uJL_T
{
	WORD  wfFlag;
	struct
	{
		WORD    bQD_H:1;				 
		WORD    bQD_L:1;				
		WORD    bQD_G:1;				
		WORD    bQD_D:1;	
		
		WORD    bTz_H:1;				
		WORD    bTz_L:1;				
		WORD    bTz_G:1;				
		WORD    bTz_D:1;	

		WORD    bTz:1;
		WORD    bQD:1;
		WORD    bhcbs1:1;
		WORD    bhcbs2:1;
	}bFlag;
		
}UJL_T;


typedef struct TJL_T		//定义过压保护处理结构体
{
	UJL_T  		sta;   	//过压标志
	TIMERELAY 	tHighTime; 	//过高
	TIMERELAY 	tLowTime; 	//过低
	TIMERELAY 	tGdyTime; 	//过电压
	TIMERELAY 	tDdyTime; 	//低电压
	TIMERELAY 	tDhzTime; 	//低电压
	bool               bLed;
	TIMERELAY	thcbs1_0ms_100ms;	// 滑差闭锁保持继电器，延迟100ms返回
	TIMERELAY	thcbs2_0ms_100ms;	// 滑差闭锁保持继电器，延迟100ms返回

}TJL_T;


typedef union uPTCheck
{
	WORD  wfFlag;
	struct
	{
		WORD    bQD:1;				//过压启动 
		WORD    bTz:1;   				//过压动作   
		WORD    bEvent:1;
	}bFlag;
}UPTCHECK;

typedef struct  TPTCHECK		//定义线路保护处理结构体
{
	UVOLFLAG    	uPT1DX;   		// PT1电压越上限标志
	UVOLFLAG    	uPT2DX;   		// PT1电压越上限标志
	TIMERELAY 	tTPT1DXTime; 		
	TIMERELAY 	tTPT2DXTime; 	
	TIMERELAY 	tTPT1XXYC; 	
	TIMERELAY 	tTPT2XXYC; 		
	TIMERELAY 	tBatOnTime; 
	
}TPTCHECK_T;


typedef union uFDL
{
	WORD  wfFlag;
	struct
	{
		WORD    bQD:1;				//非电量启动
		WORD    bTz:1;   				//非电量跳闸
		WORD    bGj:1;   		 		//非电量告警 
	}bFlag;
}UFDL;


typedef struct TFDL_T		//定义过压保护处理结构体
{
	UFDL  		sta;   	//过压标志
	TIMERELAY 	tFdlTime; 	//过高
}TFDL_T;

#ifdef	CUSTOMIZE_BZT //备自投
extern TVOL_T	g_tVolLost;
#endif
extern TPTCHECK_T	tPT;
/**********************************************************************
函数声明
***********************************************************************/  

void  Pro_vol(DWORD  dStep);
void Pro_TQHz(int sw,DWORD  dStep);
void Pro_TQBS(int sw,DWORD  dStep);
void vol_DYJL(int sw,DWORD  dStep);   // 电压解列
void vol_PLJL(int sw,DWORD  dStep);   // 电压解列
void PT_Check(DWORD  dStep);
void FDL_Check(DWORD  dStep);
void Pro_3U0(int sw,DWORD  dStep);
#ifdef	CUSTOMIZE_BZT //备自投
void vol_lost_tz(int sw, DWORD      dStep);  // 失压跳闸
#endif

void hcbs_init(void);
void hcbs_dataset(void);
void Pro_U0Tz(int sw,DWORD  dStep);

#endif
//========================== 本文件结束 ===============================
