/******************************************************************************* 版权所有: 版本号: 1.00 文件名: vol.h 生成日期:2010-04-25 作者: 电力产品开发部 功能说明:电压控制文件 ****************************************************************************/ /*------------------------------- 头文件 -------------------------------------- */ #ifndef __VOL_LS_H #define __VOL_LS_H /*------------------------------- 宏定义 -------------------------------------- */ enum { FA_TYPE_S=0, //分段开关 FA_TYPE_L, //联络开关 }; enum { S_INIT=1, //初始状态 S_TEMP, //临时状态,用于检测瞬时电压 S_BSFLASH, //瞬时电压闭锁状态 S_XTIME, //X时限计数状态 S_X_ZTIME, //X时限计数中发生的Z时限计数状态 S_BSXTIME, //X时限闭锁状态 S_YTIME, //Y时限计数状态 S_Y_ZTIME, //Y时限计数中发生的Z时限计数状态 S_BSYTIME, //Y时限闭锁状态 S_USUAL, //正常运行状态 S_BSDOUBLE, //双电源闭锁状态 S_BSHHGZ, //合后故障闭锁状态 S_BSFZ, //合后闭锁分闸状态 S_BSDL, //大电流闭锁分闸状态 //S_D_ZTIME, //双电源闭锁状态中发生的Z时限计数状态 S_BS_SW, // }; enum { L_INIT=1, //初始状态 L_BS_STATE, //联络闭锁,待双侧YL有压解锁 L_Y_ZTIME, //Y时限计数状态中发生的Z时限计数状态 L_USUAL, //正常运行状态 L_XLTIME, //X时限计数状态 L_XL_ZTIME, //X时限计数中发生的Z时限计数状态 L_RELAYON, //开关合运行状态 L_YL_TIME, //合闸成功Y计时 }; struct vol_stu { u32 status; //当前状态 u32 shangdiance; //当前上电侧 u32 S_lockstatus; //分段模式合闸闭锁状态 u32 L_lockstatus; //联络模式合闸闭锁状态 u32 L_status; //联络模式当前状态 }; /*------------------------------ 类型结构 ------------------------------------- */ typedef union UVOT_U { WORD wfFlag; struct { WORD bQD:1; //失压启动 WORD bQD1:1; //失压启动 WORD bTz:1; //动作 WORD bHz:1; WORD bLock:1; //合后故障闭锁失压分闸标志 WORD bGL:1; //合后故障闭锁失压分闸标志 WORD bJD:1; //合后接地故障闭锁失压分闸标志 WORD bGLQD:1; WORD bStartLock:1; // WORD bDISENDZ:1; // 保护退出 WORD bDISENBS:1; // 保护退出 WORD bEvent:1; WORD bFault:1; //计数完成 WORD bTz1:1; //计数完成 WORD bSHWY:1; //手合无压标志 }bFlag; }UVOT_U; typedef struct TLOSTVOT_T { UVOT_U uLostVot; //失压标志 TIMERELAY tLostVotTime; //失压跳闸时间继电器 TIMERELAY tCYY25ms0ms; //曾有压标志 TIMERELAY tLostVLockTime; bool bLostVotLed; WORD losttimes; //失压次数 WORD wfFlagsave; }TLOSTVOT_T; typedef struct TTQHZ_T { UVOT_U uTQHz; //同期合闸 TIMERELAY tTQTime; //同期合闸时间继电器 TIMERELAY tTQQDTime; //同期合闸时间继电器 bool bBSTQLed; }TTQHZ_T; typedef union UU0_U { WORD wfFlag; struct { WORD bQD:1; //失压启动 WORD bTz:1; //告警动作 WORD bEvent:1; WORD bLock:1; //合后故障闭锁失压分闸标志 WORD bGJQD:1; //失压启动 WORD bGJ:1; //告警动作 WORD bU0Ov:1; //合后故障闭锁失压分闸标志 WORD bGJEvent:1; WORD bDISENGJ:1; // 保护退出 WORD bDISENDZ:1; }bFlag; }UU0_U; typedef struct TU0_T //定义零序过压保护处理结构体 { UU0_U uZOV; //零序过压标志 TIMERELAY tZOVTime; //零序过压跳闸时间继电器 TIMERELAY tU0TzTime; //零序过压跳闸时间继电器 bool bU0Led; bool bU0GjLed; }TU0_T; typedef union USDHZ_U { DDWORD wfFlag; struct { DDWORD bUABYY:1; //UAB有压标志 DDWORD bUBCYY:1; //UBC有压标志 DDWORD bUABFlash:1; DDWORD bUBCFlash:1; DDWORD bPower:1; //上电记录标志 Uab1侧,电源侧 DDWORD bYY:1; //有压标志 DDWORD bCYY:1; //FA曾有压 DDWORD bDBYY:1; //两侧有压标志 DDWORD bOneLostV:1; //一侧失压标志 DDWORD bOppositeYY:1; //对侧有压标志 DDWORD bPowerYY:1; //电源侧有压标志 DDWORD bPowerZ:1; //停电时间 DWORD bLockX:1; //X时间闭锁 DDWORD bLockY:1; //Y时间闭锁 DDWORD bLockUFlash:1; //瞬时加压闭锁 DDWORD bRLONFLAG:1; //开关合命令标志 DDWORD bHz:1; //告警动作 DDWORD bHZEvent:1; //合闸事件 DDWORD bX_HZEvent:1; //x合闸事件 DDWORD bGL2:1; //故障记忆 xj 2016.08.25 DDWORD bJD2:1; //接地记忆 DDWORD bGL_II:1; DDWORD bGL:1; //故障记忆 xj 2016.08.25 DDWORD bJD:1; //接地记忆 DDWORD bOverU0:1; //零序过压标志 DDWORD bXOverUo:1; // X 时间有U0 DDWORD bUabflashDI; // 失电过程中的Uab瞬压标志 DDWORD bUbcflashDI; // 失电过程中的Uab瞬压标志 //DDWORD bGjEvent:1; //合闸事件 DDWORD bSaveStatus:1; //状态保护标志 DDWORD bSNChange:1; //上电记录标志 DDWORD bTempJS:1; //临时解锁标志// DWORD bxdljd:1; //暂态判断小电流接地 DDWORD bOCing:1; //FA过流状态 DDWORD bJS:1; //满足解锁条件已解锁状态 #if defined GD_AREA_ECZD_2020 && !defined GD_AREA_ZHONGSHAN_2020 DDWORD bHhgz:1; //合后故障 #endif #ifdef FUNC_NYY_NWY DDWORD bUAB_NYY_NWY:1; //UAB非有压非无压态 DDWORD bUBC_NYY_NWY:1; //UBC非有压非无压态 #endif DDWORD bYtOn:1; //进入过Y计时标志 }bFlag; }USDHZ_U; typedef struct TSDHZ_T { USDHZ_U uSdhz_S; //分段开关上电合闸标志 USDHZ_U uSdhz_L; //联络开关上电合闸标志 WORD S_Status; //分段开关运行中的状态标志 WORD L_Status; //联络开关运行中的状态标志 DWORD s_flag_save; DWORD l_flag_save; WORD S_Status_save; //分段开关运行中的状态标志 WORD L_Status_save; //联络开关运行中的状态标志 #ifdef FA_OC_COUNT WORD fa_oc_count; //过流次数 TIMERELAY tFaOcCountTime; //过流脉冲复归继电器 #endif bool bDL_Tz; bool bDL_Hz; bool bInitUF; bool bSDHZinit; //上电合闸初始化:无压后启动S上电合闸 1--初始化,0--未初始化 TIMERELAY tOnXSTime; //X时间继电器 TIMERELAY tOnYSTime; //Y时间继电器 TIMERELAY tOnZSTime; //Z时间继电器 TIMERELAY tOnXLTime; //XL时间继电器 TIMERELAY tOnYLTime; //YL时间继电器 TIMERELAY tOnLLCDYLTime; //联络充电时间继电器 TIMERELAY tOnZLTime; //ZL时间继电器 TIMERELAY tOnOCingTime; //FA过流状态继电器 TIMERELAY tOnLXingTime; //FA零序状态继电器 TIMERELAY tOnJSTime; //单侧来电解锁时间继电器 TIMERELAY tOnY_JSTime; //正向闭锁后,反向来电合闸双侧有压时间继电器,中山局要求3S TIMERELAY tOnBSTZTime; //合闸成功闭锁跳闸时间 TIMERELAY tOnHW_FA_JSTime; //合位直接解锁时间 默认1s TIMERELAY tUABS25ms; TIMERELAY tUBCS25ms; #ifdef FUNC_NYY_NWY TIMERELAY tUABS_NYY_NWY_50ms; TIMERELAY tUBCS_NYY_NWY_50ms; TIMERELAY tUABL_NYY_NWY_50ms; TIMERELAY tUBCL_NYY_NWY_50ms; #endif TIMERELAY tUDBS100ms; TIMERELAY tUFABL80ms; TIMERELAY tUFBCL80ms; TIMERELAY tUFDBTime; // 瞬压判断时间 TIMERELAY tUABL25ms; TIMERELAY tUBCL25ms; TIMERELAY tUFABS80ms; TIMERELAY tUFBCS80ms; TIMERELAY tUFABS25ms; TIMERELAY tUFBCS25ms; TIMERELAY tUFABL25ms; TIMERELAY tUFBCL25ms; TIMERELAY tFREQAB25ms_SCY; //用于S模式电源侧残压的频率判断 TIMERELAY tFREQBC25ms_SCY; //用于S模式线路侧残压的频率判断 TIMERELAY tFREQAB25ms_LCY; //用于L模式电源侧残压的频率判断 TIMERELAY tFREQBC25ms_LCY; //用于L模式线路侧残压的频率判断 TIMERELAY tFREQSAB25ms; //用于S模式电源侧得电合闸的频率判断 TIMERELAY tFREQSBC25ms; //用于S模式线路侧得电合闸的频率判断 TIMERELAY tFREQLAB25ms; //用于L模式电源侧得电合闸的频率判断 TIMERELAY tFREQLBC25ms; //用于L模式线路侧得电合闸的频率判断 TIMERELAY tL_RELAYONL3s; TIMERELAY tHzS100ms; TIMERELAY tTSDHzHJS; // 上电合闸后加速延时 TIMERELAY tOpsiteYY100ms; TIMERELAY tPowerYY100ms; TIMERELAY tGZJYRstGL_II_Time; //故障记忆复归时间 TIMERELAY tGZJYRstGLTime; //故障记忆复归时间 TIMERELAY tGZJYRstJDTime; //故障记忆复归时间 TIMERELAY tGZJYRstGL2Time; //故障记忆复归时间 TIMERELAY tGZJYRstJD2Time; //故障记忆复归时间 TIMERELAY tHw100ms100ms; TIMERELAY tTw100ms100ms; TIMERELAY tHz0ms1s; TIMERELAY tTz0ms1s; TIMERELAY tHz0ms2s; TIMERELAY tTz0ms2s; bool bS_BSLed; bool bL_BSLed; #ifdef FUNC_REBOOT_BS_HA_JS_3S TIMERELAY tHW_JS_HA_3STime; //合位解锁手分/遥分闭锁时间 默认3S #endif }TSDHZ_T; typedef struct _bRTCSAVE { WORD bSig; //存储签名 BYTE bStatus; //当前状态 BYTE bShangDianCe; //当前上电侧 WORD bCrc; //crc校验码 }bRTCSAVE; typedef struct THZBS_T { TIMERELAY tBSHZTime; //同期合闸时间继电器 TIMERELAY tTw100ms100ms; WORD fztimes; }THZBS_T; /*------------------------------ 函数声明 ------------------------------------- */ extern TLOSTVOT_T tLostVot[SWITCH_NUM_MAX]; //失压标志 extern TTQHZ_T tTQHz[SWITCH_NUM_MAX]; //同期合闸标志 extern TSDHZ_T tSDHZ[SWITCH_NUM_MAX]; //上电合闸标志 extern u8 g_volfile_open; extern bool gb_wake_soe; void FA_Run(DWORD dStep); void FA_Init(void); void FA_lostvotTz(int sw,DWORD dStep); //失压跳闸判断 void FA_OverU0Tz(int sw,DWORD dStep); int vol_stu_printf(void); int FA_status_write(void); int FA_exit(void); void Pro_hzbs(int sw,DWORD dStep); bool fa_bs_hz(int sw); bool fa_bs_fz(int sw); void fa_s_state_change(int sw,int state); #ifdef FUN_JDXX bool get_power_on_dir(int sw); #endif #endif// /*------------------------------ 文件结束 ------------------------------------- */