#ifndef _JDXX_H #define _JDXX_H #ifdef FUN_JDXX //////////////////////////// /*版本说明: V1.001 增加接地程序功能版本。 */ #define FUN_JDXX_VERSION 1001 //资源表文件版本 V1.001 ///////////////////////////// typedef struct JDXX_SET// 接地选线定值 { bool bTT_jdxx; bool bTT_jdxx_gj; bool bTT_jdxx_tz; bool bTT_jdxx_cph; bool bTT_jdxx_p0dir; bool bTT_jdxx_fault_all;// 事故总判接地故障 WORD jd_type; WORD jd_zero; // 零漂值 WORD jd_qdval; // 启动值 WORD jd_zero_N; // 常规零序 WORD jd_ov_val; // 高精度零序满偏值 DWORD jd_ov_val2; // 高精度满偏模值平方 //WORD jd_qdIabc; // 启动值 WORD jd_qdval_js; // 小电流接地重合闸启动值 WORD jd_qdval_qd; // 小电流接地启动值 WORD jd_qdPoints; WORD jd_surePoints; WORD jd_faultPoints; WORD jd_voltype; WORD jd_volzero; DWORD jd_U0gl; // 零序电压定值 DWORD jd_U0gl_fh; // 零序电压返回值 u32 jd_qdval2; u32 jd_trip_time; // 出口时间 u32 jd_alarm_time; // 告警时间 bool bTT_QD_chz; //启动重合闸 int i0_chan; //通道切换 #ifdef FUN_JDXX_JXJD bool bTT_jxjd_stz; //间歇接地短延时跳闸 bool bTT_jxjd_ltz; //间歇接地长延时跳闸 WORD jd_sdelay_cnt; u32 jd_sdelay_time; // 出口时间 WORD jd_ldelay_cnt; u32 jd_ldelay_time; // 出口时间 #endif #ifdef HJS_XDLJD bool jd_js_tt; // 接地加速投退 u32 jd_js_time; // 开放时间 WORD jd_n_qdval; // 正常电流启动值 u32 jd_n_qdval2; DWORD jd_n_U0gl; // 正常零序电压定值 DWORD jd_n_U0gl_fh; // 零序电压返回值 WORD jd_js_qdval; // 后加速电流启动值 u32 jd_js_qdval2; DWORD jd_js_U0gl; // 后加速零序电压定值 DWORD jd_js_U0gl_fh; // 零序电压返回值 u32 jd_js_trip_time; // 后加速出口时间 #endif }JDXX_SET; typedef union uJDXX_T { WORD wfFlag; struct { WORD bQD:1; //接地选线启动 WORD bTz:1; //接地选线动作 WORD bGj:1; //接地选线告警 WORD bTZLed; WORD bGJLed; #ifdef HJS_XDLJD WORD bTz_prot:1; //接地选线动作标志用于保护跳闸 WORD bHjsTz:1; //接地选线后加速动作 WORD bJd_qn:1; //接地区内标识 #endif }bFlag; }UJDXX_T; #define NUM_ANGLE 4 typedef struct JDXX_def { UJDXX_T sta; //断线保护标志 int zeroval; WORD jd_qdval; WORD jd_U0ov_val; int jd_u0_12; //u01或者u02接地 int jd_step; //接地状态 int qdPoints; // 启动后计数值 int adPoints; // 采样统计 int faultdir; u32 dot_qd; u32 net_tick_times; //心跳计数 int dirNum; bool tc_result; //暂态判定:0-界外;1-界内 uint32_t time_qd;//零压产生时刻 int con_angle; //稳态角度计数 long ui_angle[NUM_ANGLE]; //u0/i0夹角 #ifdef CN_AREA_HUNAN u8 dir_cnt; #endif TIMERELAY tJDXXU01Time; // U01判出时间 TIMERELAY tJDXXU02Time; // U02判出时间 TIMERELAY tJDXXU1yyTime; //US1线电压有压时间 TIMERELAY tJDXXU2yyTime; //US2线电压有压时间 TIMERELAY tJDXXIylTime; //相电流有流时间 TIMERELAY tJDXXTripTime; // 出口时间 TIMERELAY tJDXXAlarmTime;// 告警时间 #ifdef JDXX_YXEV_RST TIMERELAY tJDGjEvRstTime; // 接地告警遥信保持时间 TIMERELAY tJDTzEvRstTime; // 接地跳闸遥信保持时间 #endif #ifdef FUN_JDXX_JXJD int cnt_sdelay; int cnt_ldelay; uint32_t jdxx_sdelay_us0[100];//短延时计时时刻:100--和计数最大值对应 uint32_t jdxx_ldelay_us0[100];//长延时计时时刻:100--和计数最大值对应 #endif #ifdef HJS_XDLJD TIMERELAY jdxx_jskf_time; //相电流有流时间 #endif }JDXX_DEF; extern JDXX_SET tJDXX_val[SWITCH_NUM_MAX]; void jdxx_pro(int sw,DWORD dStep); //接地故障判断 5ms中断中处理 void jdxx_init(void); void jdxx_relayinit(void); void jdxx_yxev_rst(int sw); void _getjdxxdz_inf(void); extern long CalcUIzAng(long Real1, long Imag1, long Real2, long Imag2); #endif #endif //_JDXX_H /*------------------------------ 文件结束 ------------------------------------- */