| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036 |
- /*************************************************************************
- * 版权所有:
- * 文件版本: V1.00
- * 文件名称: DILogic.c
- * 生成日期: 2008年11月15日
- * 作 者:
- * 功 能: 开入逻辑功能
- * 更新信息:
- * 更新日志1:
- * 日期:
- * 修改者:
- * 修改内容:
- * 修改原因:
- * 更新日志2:
- **************************************************************************/
- #include "head.h"
- /******************************************************************************
- 函数名称: ProtectRelayInit
- 函数版本: 01.01
- 创建作者:
- 创建日期: 2013-08-08
- 函数说明: 上电时初始化保护相关的定时器,包括定值设置的、固定的
- 参数说明:
- 返回值:
- 修改记录:
- */
- void ProtectRelayInit(void)
- {
- int sw,i;
- for(sw=0;sw<g_sw_num;sw++)
- {
- TRELAY_T *pR=&g_tRelay[ sw];
- TSETSW *pSet = &pRunSet->tSwSet[sw];
- int i;
-
- #ifdef CUSTOMIZE_BZT //备自投
- BztTimerInit(sw);
- #endif
- for(i=0;i<BHOC_NUMBER;i++)
- {
- TOC_T *poc=&pR->tOC[i];
- #ifdef YX_RESET_TIME
- InitTR(&poc->tTzEvRstTime, tRunPara.dTEventRst, 0); // 遥信复归时间
- InitTR(&poc->tGjEvRstTime, tRunPara.dTEventRst, 0); // 遥信复归时间
- #endif
- InitTR(&poc->tQDTime, pSet->toc[i].dT, PRO_RET_TIME); //CorrectTR(&poc->tQDTime);
- InitTR(&poc->tXBTime, T_20ms, 0);
- InitTR(&poc->tXBQD25ms, T_25ms*2, 0);
- InitTR(&poc->tFz25ms, T_25ms, 0);
- if(i>=BH_OVI)
- {
- InitTR(&poc->tQDTime, pSet->toc[i].dT, WRN_RET_TIME); // 过载及重载,返回时间为1秒
- }
- }
- {
- TGOC_T *poc=&pR->tgoc;
- GOC_SET *pgset=&pSet->tGocSet;
- DWORD dTsytime;
- dTsytime=((pgset->dTgzgl>pgset->dTsdlost)?pgset->dTgzgl:pgset->dTsdlost)+T_300ms;
- if(pRunSet->bTT_goose_send_after)
- {
- InitTR(&poc->tTZX_300ms, pgset->dTgl, pRunSet->dT_sendext); //
- InitTR(&poc->tTFX_300ms, pgset->dTgl, pRunSet->dT_sendext); //
- InitTR(&poc->tTWX_300ms, pgset->dTgl, pRunSet->dT_sendext); //
- InitTR(&poc->tTLX_300ms, pgset->dTlx, pRunSet->dT_sendext); //
- }
- else
- {
- InitTR(&poc->tTZX_300ms, T_5ms, pRunSet->dT_sendext); //
- InitTR(&poc->tTFX_300ms, T_5ms, pRunSet->dT_sendext); //
- InitTR(&poc->tTWX_300ms, T_5ms, pRunSet->dT_sendext); //
- InitTR(&poc->tTLX_300ms, T_5ms, pRunSet->dT_sendext); //
- }
- InitTR(&poc->tTGLBS_300ms, T_5ms, pRunSet->dT_sendext); //
- InitTR(&poc->tglFz25ms, T_25ms, 0);
- InitTR(&poc->tlxFz25ms, T_25ms, 0);
- InitTR(&poc->tglQD25ms, T_25ms, 0);
- InitTR(&poc->tlxQD25ms, T_25ms, 0);
- InitTR(&poc->tTHz1s, T_1s, 0);
-
- InitTR(&poc->tgoose15ms_gzgl, pRunSet->dT_goosecheck, 0); //
- InitTR(&poc->tqccd.tCDTime,pRunSet->dT_cd, 0);
- InitTR(&poc->tqccd.tWYTime,pRunSet->dT_glfd, 0);
- InitTR(&poc->tglcd.tCDTime,pRunSet->dT_cd, 0);
- InitTR(&poc->tglcd.tWYTime,pRunSet->dT_glfd, 0);
- if(pRunSet->dT_cd==0)
- {
- InitTR(&poc->tllcd.tCDTime,T_1s*15, 0);
- }
- else
- {
- InitTR(&poc->tllcd.tCDTime,pRunSet->dT_cd, 0);
- }
- InitTR(&poc->tllcd.tWYTime,pRunSet->dT_llfd, 0);
-
- if(pRunSet->bTT_goose_send_after)
- {
- InitTR(&poc->tglQDTime, pgset->dTgl+pRunSet->dT_goosecheck, PRO_RET_TIME); //
- InitTR(&poc->tlxQDTime, pgset->dTlx+pRunSet->dT_goosecheck, PRO_RET_TIME); //
- }
- else
- {
- InitTR(&poc->tglQDTime, ((pgset->dTgl>pRunSet->dT_goosecheck)?pgset->dTgl:pRunSet->dT_goosecheck), PRO_RET_TIME); //
- InitTR(&poc->tlxQDTime, ((pgset->dTlx>pRunSet->dT_goosecheck)?pgset->dTlx:pRunSet->dT_goosecheck), PRO_RET_TIME); //
- }
- InitTR(&poc->tgzglTime, pgset->dTgzgl, 0); //
- InitTR(&poc->tsdlostTime, pgset->dTsdlost, 0); //
- InitTR(&poc->terrlostTime, pgset->dTgzgl, 0); //
- InitTR(&poc->tllhzTime, pgset->dTll, 0); //
- InitTR(&poc->tllQdTime, pgset->dTll+((pgset->dTgzgl>pgset->dTsdlost)?pgset->dTgzgl:pgset->dTsdlost)+T_1s, 0); //
- InitTR(&poc->tglslowTime, 0,pgset->dTgl+T_1s); //
- InitTR(&poc->tlxslowTime, 0,pgset->dTlx+T_1s); //
- #if defined GD_AREA_ZHONGSHAN || defined GD_AREA_ZHONGSHAN_2020
- InitTR(&poc->tgl2Fz25ms, T_25ms, 0);
- InitTR(&poc->tgl2QD25ms, T_25ms, 0);
- InitTR(&poc->tgl2slowTime, 0,pgset->dTgl2+T_1s); //#ifdef GD_AREA_GDDKY_TEST
- if(pRunSet->bTT_goose_send_after)
- {
- InitTR(&poc->tgl2QDTime, pgset->dTgl2+pRunSet->dT_goosecheck, PRO_RET_TIME); //
- InitTR(&poc->tTZX2_300ms, pgset->dTgl2, pRunSet->dT_sendext); //
- InitTR(&poc->tTFX2_300ms, pgset->dTgl2, pRunSet->dT_sendext); //
- InitTR(&poc->tTWX2_300ms, pgset->dTgl2, pRunSet->dT_sendext); //
- }
- else
- {
- InitTR(&poc->tgl2QDTime, ((pgset->dTgl2>pRunSet->dT_goosecheck)?pgset->dTgl2:pRunSet->dT_goosecheck), PRO_RET_TIME); //
- InitTR(&poc->tTZX2_300ms, T_5ms, pRunSet->dT_sendext); //
- InitTR(&poc->tTFX2_300ms, T_5ms, pRunSet->dT_sendext); //
- InitTR(&poc->tTWX2_300ms, T_5ms, pRunSet->dT_sendext); //
- }
- #endif
- InitTR(&poc->tTzcheckTime, pRunSet->dT_TZSB, 0); //开关失灵判断时间
- InitTR(&poc->tHzcheckTime, pRunSet->dT_HZSB, 0); //开关失灵判断时间
- InitTR(&poc->ttzsbextTime, 0,pRunSet->dT_sendext); // 跳闸失败(开关失灵)展宽时间
- InitTR(&poc->tgzglokextTime, 0,pRunSet->dT_sendext); // 发送展宽 300毫秒
- InitTR(&poc->tgzglokForbitTime, 0,pRunSet->dT_frobit); //发送故障隔离成功后闭锁时间
- InitTR(&poc->tCYY3sdelayms, T_1s*3,dTsytime);
- InitTR(&poc->tgoosedelayms_ll, dTsytime+pRunSet->dT_TZSB*2, 0);
- InitTR(&poc->tllWY1Time, T_100ms, T_100ms);
- InitTR(&poc->tllWY2Time, T_100ms, T_100ms);
- InitTR(&poc->tllYY1Time, T_100ms, T_100ms+T_20ms);
- InitTR(&poc->tllYY2Time, T_100ms, T_100ms+T_20ms);
- InitTR(&poc->textbsTime, 0, pRunSet->dT_sendext+T_100ms);
- }
- //重合闸
- InitTR(&pR->tCHZ.tTCHQDHW0ms50ms, 0,T_10ms*5); //合闸位置下降沿展宽50ms
- InitTR(&pR->tCHZ.tTCHQD0ms50ms, 0,T_10ms*5 ); //跳闸开出下降沿展宽50ms
- InitTR(&pR->tCHZ.tTCHJD_0ms30ms, 0,T_10ms*3 ); //弹簧未储能下降沿展宽30ms
- InitTR(&pR->tCHZ.tTCHJD_200ms0ms, T_200ms,0 ); //重合开出宽度
- InitTR(&pR->tCHZ.tTCHCD15s0s, pSet->dT_chz_cd,0 ); //充电15秒
- InitTR(&pR->tCHZ.tTCHJD_ARDelay, pSet->dT_chz[0],0 ); //重合闸延时
- InitTR(&pR->tCHZ.tTCHFAIL_TW, pSet->dT_chz[0]+T_1s, 0 ); //三相跳位延时: 重合失败返回时间
- InitTR(&pR->tCHZ.tTCHBSDelay, pSet->dT_chz_bs,0 ); //重合闭锁延时
- InitTR(&pR->tCHZ.tTCHOKTime, pSet->dT_chz_ok,0 ); //重合闭锁延时
- //InitTR(&pR->tCHZ.tTCHJD_HJS, 0, T_1s); // zwg20151019,后加速有效展宽,从200ms改为1s,方便测试
- InitTR(&pR->tCHZ.tTCHJD_HJS, 0, T_300ms ); // 2020-07-23 分位持续检测时间改为1s,按照广东标准2020 手合开放检测时间,将3s时间改为0.3s,即分闸持续1S以上,手合0.3秒内可启动后加速
- InitTR(&pR->tCHZ.tTCHJBSTime, 0,pSet->dT_chz_ok ); //重合闭锁时间
- InitTR(&pR->tCHZ.tTCHJBSHw, T_100ms, 0); // 开关合位100ms确认
- #ifdef PRO_UZ_START_REC
- InitTR(&pR->tCHZ.tTCH_UO_BS, T_100ms, 0 ); //;零序电压重合闭锁延时
- #endif
- #ifdef FUN_CHZ_TOPEN
- InitTR(&pR->tCHZ.tTCHOPENTime, pSet->dT_chz_Topen, 0 ); //;重合开放时间
- #endif
-
- #ifdef SELF_OPEN_RELEASE
- InitTR(&pR->tTripBHTKeep, 0, tRunPara.wYXFD*T_5ms/5+T_40ms);
- #endif
- // 保护跳闸脉宽
- InitTR(&pR->tTrip_BHT40MS, 0, T_40ms); //跳闸脉冲最短时间40ms ,以前为100ms,在做多次重合闸是,若时间整定为100ms左右,会有异常
-
- //配网功能定值
- InitTR(&pR->tSDHZ.tOnXSTime, pSet->dT_X,0);
- InitTR(&pR->tSDHZ.tOnYSTime, pSet->dT_Y,0);
- InitTR(&pR->tSDHZ.tOnZSTime, T_100ms*35,0); // 3.5秒
- InitTR(&pR->tSDHZ.tOnXLTime, pSet->dT_XL,0);
- InitTR(&pR->tSDHZ.tOnYLTime, pSet->dT_Y,0);
- #ifdef GD_AREA_ZHONGSHAN_2020
- InitTR(&pR->tSDHZ.tOnLLCDYLTime, pSet->dT_LL_CD,0);
- #endif
-
- InitTR(&pR->tSDHZ.tOnBSTZTime, pSet->dT_fa_bsTz,0);
- InitTR(&pR->tSDHZ.tOnZLTime, T_100ms*35,0); // 3.5秒
- InitTR(&pR->tSDHZ.tOnOCingTime, pSet->dT_fa_ocing,pSet->dT_Y);
- InitTR(&pR->tSDHZ.tOnLXingTime, pSet->dT_fa_lxing,pSet->dT_Y);
- InitTR(&pR->tSDHZ.tOnJSTime, pRunSet->dT_ldjs, 0); ////初始化单侧来电解锁计时器
- #ifdef GD_AREA_ZHONGSHAN_2020
- InitTR(&pR->tSDHZ.tOnY_JSTime, 0, 0);
- #elif defined GD_AREA_ECZD_2020 || defined GD_AREA_ZHONGSHAN
- InitTR(&pR->tSDHZ.tOnY_JSTime, T_1s*6, 0);
- #else
- InitTR(&pR->tSDHZ.tOnY_JSTime, T_1s*3, 0);
- #endif
- #if defined GD_AREA_ZHONGSHAN_2020 || defined GD_AREA_ECZD_2020 || defined GD_AREA_ZHONGSHAN
- #if defined GD_AREA_ECZD_2020
- #if defined FUNC_SET_FA_JS
- InitTR(&pR->tSDHZ.tOnHW_FA_JSTime, pRunSet->dT_FA_JS, 0);
- #elif defined GD_AREA_ECZD_MAOMING
- InitTR(&pR->tSDHZ.tOnHW_FA_JSTime, 3*T_1s, 0);
- #else
- InitTR(&pR->tSDHZ.tOnHW_FA_JSTime, 5*T_10ms, 0);
- #endif
- #else
- InitTR(&pR->tSDHZ.tOnHW_FA_JSTime, T_1s*6, 0);
- #endif
- #else
- InitTR(&pR->tSDHZ.tOnHW_FA_JSTime, T_1s, 0);
- #endif
- #ifdef FA_OC_COUNT
- InitTR(&pR->tSDHZ.tFaOcCountTime, pSet->fa_oc_conut_time, 0);
- #endif
- if(pSet->toc[FA_GL].dT>T_FA_TZ_MIN_TIME)
- {
- InitTR(&pR->tSDHZ.tGZJYRstGLTime,pSet->toc[FA_GL].dT,pSet->dT_Y);
- }
- else
- {
- InitTR(&pR->tSDHZ.tGZJYRstGLTime,T_FA_TZ_MIN_TIME,pSet->dT_Y);
- }
- if(pSet->toc[FA_GL_II].dT>T_FA_TZ_MIN_TIME)
- {
- InitTR(&pR->tSDHZ.tGZJYRstGL_II_Time,pSet->toc[FA_GL_II].dT,pSet->dT_Y);
- }
- else
- {
- InitTR(&pR->tSDHZ.tGZJYRstGL_II_Time,T_FA_TZ_MIN_TIME,pSet->dT_Y);
- }
-
-
- if(pSet->toc[FA_GL2].dT>T_FA_TZ_MIN_TIME)
- InitTR(&pR->tSDHZ.tGZJYRstGL2Time,pSet->toc[FA_GL2].dT,T_20ms);
- else
- InitTR(&pR->tSDHZ.tGZJYRstGL2Time,T_FA_TZ_MIN_TIME,T_20ms);
- if(pSet->toc[FA_LX].dT>T_FA_TZ_MIN_TIME)
- {
- InitTR(&pR->tSDHZ.tGZJYRstJDTime,pSet->toc[FA_LX].dT,pSet->dT_Y);
- }
- else
- {
- InitTR(&pR->tSDHZ.tGZJYRstJDTime,T_FA_TZ_MIN_TIME,pSet->dT_Y);
- }
-
- if(pSet->toc[FA_LX2].dT>T_FA_TZ_MIN_TIME)
- InitTR(&pR->tSDHZ.tGZJYRstJD2Time,pSet->toc[FA_LX2].dT,pSet->dT_Y);
- else
- InitTR(&pR->tSDHZ.tGZJYRstJD2Time,T_FA_TZ_MIN_TIME,pSet->dT_Y);
-
- InitTR(&pR->tSDHZ.tL_RELAYONL3s, pSet->dT_Y, 0);
- InitTR(&pR->tSDHZ.tHzS100ms,0, T_200ms);
- InitTR(&pR->tSDHZ.tUDBS100ms,T_100ms, 0);
- InitTR(&pR->tSDHZ.tUABS25ms,pSet->dT_fa_YY, T_25ms*2);
- InitTR(&pR->tSDHZ.tUBCS25ms,pSet->dT_fa_YY, T_25ms*2);
- #ifdef FUNC_NYY_NWY
- InitTR(&pR->tSDHZ.tUABS_NYY_NWY_50ms,T_25ms*2, T_25ms*2);
- InitTR(&pR->tSDHZ.tUBCS_NYY_NWY_50ms,T_25ms*2, T_25ms*2);
- InitTR(&pR->tSDHZ.tUABL_NYY_NWY_50ms,T_25ms*2, T_25ms*2);
- InitTR(&pR->tSDHZ.tUBCL_NYY_NWY_50ms,T_25ms*2, T_25ms*2);
- #endif
- InitTR(&pR->tSDHZ.tUFABL80ms,pRunSet->dT_XCY, pSet->dT_Y-T_1s);
- InitTR(&pR->tSDHZ.tUFBCL80ms,pRunSet->dT_XCY, pSet->dT_Y-T_1s);
- InitTR(&pR->tSDHZ.tUFDBTime,pRunSet->dT_XCY, 0);
- InitTR(&pR->tSDHZ.tUABL25ms,pSet->dT_fa_YY, T_25ms*2);
- InitTR(&pR->tSDHZ.tUBCL25ms,pSet->dT_fa_YY, T_25ms*2);
- InitTR(&pR->tSDHZ.tUFABS80ms,pRunSet->dT_XCY, pSet->dT_Y-T_1s);
- InitTR(&pR->tSDHZ.tUFBCS80ms,pRunSet->dT_XCY, pSet->dT_Y-T_1s);
- InitTR(&pR->tSDHZ.tUFABS25ms,T_25ms, pRunSet->dT_XCY+T_1s);
- InitTR(&pR->tSDHZ.tUFBCS25ms,T_25ms, pRunSet->dT_XCY+T_1s);
- InitTR(&pR->tSDHZ.tUFABL25ms,T_25ms, pRunSet->dT_XCY+T_1s);
- InitTR(&pR->tSDHZ.tUFBCL25ms,T_25ms, pRunSet->dT_XCY+T_1s);
- #ifdef FA_PL_PJ
- InitTR(&pR->tSDHZ.tFREQAB25ms_SCY,T_25ms*2, T_25ms*2);
- InitTR(&pR->tSDHZ.tFREQBC25ms_SCY,T_25ms*2, T_25ms*2);
- InitTR(&pR->tSDHZ.tFREQAB25ms_LCY,T_25ms*2, T_25ms*2);
- InitTR(&pR->tSDHZ.tFREQBC25ms_LCY,T_25ms*2, T_25ms*2);
- InitTR(&pR->tSDHZ.tFREQSAB25ms,T_25ms, T_25ms*2);
- InitTR(&pR->tSDHZ.tFREQSBC25ms,T_25ms, T_25ms*2);
- InitTR(&pR->tSDHZ.tFREQLAB25ms,T_25ms, T_25ms*2);
- InitTR(&pR->tSDHZ.tFREQLBC25ms,T_25ms, T_25ms*2);
- #endif
-
- InitTR(&pR->tSDHZ.tOpsiteYY100ms,0, 0);
- InitTR(&pR->tSDHZ.tPowerYY100ms,0, 0);
- InitTR(&pR->tSDHZ.tHw100ms100ms,T_100ms,T_100ms);
- InitTR(&pR->tSDHZ.tTw100ms100ms,T_100ms,T_100ms);
- InitTR(&pR->tSDHZ.tHz0ms1s,0,tRunPara.wFAHZT*T_5ms/5+T_1s);
- InitTR(&pR->tSDHZ.tTz0ms1s,0,tRunPara.wFAFZT*T_5ms/5+T_1s);
- InitTR(&pR->tSDHZ.tHz0ms2s,pRunSet->dT_HZSB,0);
- InitTR(&pR->tSDHZ.tTz0ms2s,pRunSet->dT_TZSB,0);
- InitTR(&pR->tSDHZ.tTSDHzHJS, 0, pSet->dT_Y); //上电合闸加速判断
-
- InitTR(&pR->tU0TZ.tZOVTime, pSet->dT_OverU0, T_20ms);
- InitTR(&pR->tOVER_U0TZ.tZOVTime, pSet->dBHTOverU0, T_20ms);
- //InitTR(&pR->tGdy.tQDTime, pSet->dT_gy, T_20ms);
- InitTR(&pR->tLostVot.tCYY25ms0ms, T_25ms, 0);
- InitTR(&pR->tLostVot.tLostVotTime, pSet->dT_Z, T_20ms);
- InitTR(&pR->tLostVot.tLostVLockTime,0,pSet->dT_fa_bsTz);
- InitTR(&pR->tTQHz.tTQTime,pSet->dT_tq,0); //同期
- InitTR(&pR->tTQHz.tTQQDTime,0, pRunSet->dT_tq_fh);
- //解列
- InitTR(&pR->tDYJL.tDdyTime, pSet->dT_jl_ddy, T_20ms); //CorrectTR(&pR->tDYJL.tDdyTime); CorrectTR(&pR->tDYJL.tDdyTime);
- InitTR(&pR->tDYJL.tGdyTime, pSet->dT_jl_gdy, T_20ms); //CorrectTR(&pR->tDYJL.tGdyTime); CorrectTR(&pR->tDYJL.tGdyTime);
- InitTR(&pR->tDYJL.tHighTime, pSet->dT_jl_ggdy, T_20ms); //CorrectTR(&pR->tDYJL.tHighTime); CorrectTR(&pR->tDYJL.tHighTime);
- InitTR(&pR->tDYJL.tLowTime, pSet->dT_jl_gddy, T_20ms);
- InitTR(&pR->tPLJL.tDhzTime, pSet->dT_jl_dhz, T_40ms); //CorrectTR(&pR->tPLJL.tDhzTime); CorrectTR(&pR->tPLJL.tDhzTime);
- InitTR(&pR->tPLJL.tHighTime, pSet->dT_jl_ghz, T_40ms); //CorrectTR(&pR->tPLJL.tHighTime); CorrectTR(&pR->tPLJL.tHighTime);
- InitTR(&pR->tPLJL.tLowTime, pSet->dT_jl_lowhz, T_40ms);//CorrectTR(&pR->tPLJL.tLowTime); CorrectTR(&pR->tPLJL.tLowTime);
- InitTR(&pR->tDYJL.thcbs1_0ms_100ms, 0, T_100ms); // 滑差闭锁延迟返回继电器
- InitTR(&pR->tDYJL.thcbs2_0ms_100ms, 0, T_100ms);
- InitTR(&pR->tPLJL.thcbs1_0ms_100ms, 0, T_100ms);
- InitTR(&pR->tPLJL.thcbs2_0ms_100ms, 0, T_100ms);
-
- //手合加速
- //#if defined GD_AREA_MAIN_2020 || defined GD_AREA_ECZD_2020
- InitTR(&pR->tSWST.tTRunST_20s1s, T_1s, T_300ms ); // 2020-07-23 分位持续检测时间改为1s,按照广东标准2020 手合开放检测时间,将3s时间改为0.3s,即分闸持续1S以上,手合0.3秒内可启动后加速
- //#else
- // InitTR(&pR->tSWST.tTRunST_20s1s, T_1s, T_1s*3 ); // 2020-3-19 分位持续检测时间改为1s,手合开放检测时间按行业标准,将1s时间改为3s,即分闸持续1S以上,手合三秒内可启动后加速
- //#endif
- #if defined GD_AREA_ECZD_2020 ||defined GD_AREA_MAIN_2020
- InitTR(&pR->tSWST.tSHz3s10ms, T_1s, T_10ms);
- #else
- InitTR(&pR->tSWST.tSHz3s10ms, T_1s*3, T_10ms);
- #endif
- InitTR(&pR->tSWST.tSTz3s10ms, T_1s*3, T_10ms);
- InitTR(&pR->tSWST.tSf3s, T_1s*3, 0);
- InitTR(&pR->tSWST.tTTWYL_10S1S,T_1s*10, T_1s);
- InitTR(&pR->tSWST.tTWCNGJ1s, pRunSet->dWCN_T, WRN_RET_TIME);
- InitTR(&pR->tSWST.tTKZHLGJ1s, T_1s*10, WRN_RET_TIME);
- InitTR(&pR->tSWST.tIBSCHZ, T_25ms, WRN_RET_TIME);// T_1s
- InitTR(&pR->tTripfail_2s, pRunSet->dT_TZSB, 0); //跳闸失败时间继电器
- InitTR(&pR->tTripfail_hz, 0 , pRunSet->dT_TZSB); //跳闸失败时间继电器
-
- InitTR(&pR->tSWST.tCTXXYC, T_1s*3, WRN_RET_TIME); // CT相序异常
- InitTR(&pR->tSWST.tCTYC, T_1s*10, WRN_RET_TIME); // CT断线
- InitTR(&pR->tSWST.tBatChk, T_1s*3, WRN_RET_TIME); // 电池电压低
- InitTR(&pR->tSWST.tBatOver, T_1s*3, WRN_RET_TIME);
- InitTR(&pR->tMb_yuk_time, T_1s*5, 0);
- InitTR(&pR->tTZZFG_5S0ms, pRunSet->dT_ZZFG, 0); //无故障延时5s
- InitTR(&pR->thzbs.tBSHZTime, pSet->dT_hzbs, T_20ms); // 分闸次数过多,闭锁合闸
- InitTR(&pR->thzbs.tTw100ms100ms,T_100ms,T_100ms);
- for(i=0;i<8;i++)
- {
- if(pRunSet->bTT_FDLTz[i])
- {
- InitTR(&pR->tFdl[i].tFdlTime,pRunSet->dTFDL[i], PRO_RET_TIME);
- }
- else
- {
- InitTR(&pR->tFdl[i].tFdlTime,pRunSet->dTFDL[i], WRN_RET_TIME);
- }
- }
- fresh_set_soe(EV_TYPE_S, !g_tRelay[sw].run_stu.fa_ls,true,sw);
- fresh_set_soe(EV_TYPE_L, g_tRelay[sw].run_stu.fa_ls,true,sw);
- //自供电功能投入
- {
- //bool bll;
- //bll=(g_tRelay[sw].run_stu.fa_ls&&pRunSet->tSwSet[sw].bTT_FA&&FA_ALL_EN(sw))
- // ||(g_tRelay[sw].tgoc.tllcd.sta.bFlag.bCD&&BH_GOOSE_EN(sw));
- //fresh_set_soe(EV_FA_LL_EN,(g_tRelay[sw].tgoc.tllcd.sta.bFlag.bCD&&BH_GOOSE_EN(sw)),true,sw);
- }
- //soft_yb set
- fresh_set_soe(EV_KZ_YB, pRunSet->bTT_KZ_YB, true,sw);
- fresh_set_soe(EV_EDIT_YB, pRunSet->bTT_EDIT_YB, true,sw);
-
- //#ifdef GD_AREA_FOS
- #if defined GD_AREA_FOS || defined GD_AREA_MAIN_2020 || defined GD_AREA_ECZD_2020 || defined GD_AREA_FOS_2021
- fresh_set_soe(EV_CHZ_YB,CHZ_ALL_EN(sw) , true,sw);//重合闸投入
- #else
- fresh_set_soe(EV_CHZ_YB,!CHZ_ALL_EN(sw) , true,sw);//停用重合闸
- #endif
- #ifdef GD_AREA_MAIN_2020
- fresh_set_soe(EV_BH_YB, !FUN_ALL_EN(sw), true,sw); //停用保护和FA
- #else
- fresh_set_soe(EV_BH_YB, FUN_ALL_EN(sw), true,sw);
- #endif
-
- #if defined BHFAGS_YB_YK || defined GD_AREA_ZHONGSHAN || defined GD_AREA_ZHONGSHAN_2020 || defined GD_AREA_ECZD_2020
- fresh_set_soe(EV_BH_YBTT, BH_ALL_EN(sw), true,sw);
- fresh_set_soe(EV_FA_YBTT, FA_ALL_EN(sw), true,sw);
- fresh_set_soe(EV_GOOSE_YBTT, BH_GOOSE_EN(sw), true,sw);
- #endif
- fresh_set_soe(EV_TQ_YBTT,TYTQ_ALL_EN(sw),true,sw);
- fresh_set_soe(EV_JL_YBTT,JL_ALL_EN(sw),true,sw);// 自动解列软压板
- #ifdef FUNC_DRIVE_JY
- InitTR(&gb_drive.tDriveUa1Time,pSet->dT_drive_ua1, 0);
- InitTR(&gb_drive.tDriveUa2Time,pSet->dT_drive_ua2, 0);
- InitTR(&gb_drive.tDriveU0Time,pSet->dT_drive_u0, 0);
- InitTR(&gb_drive.tDriveITime,pSet->dT_drive_i, 0);
- InitTR(&gb_drive.tDriveI0Time,pSet->dT_drive_i0, 0);
- InitTR(&gb_drive.tDriveAgainTime,pSet->dT_drive_again, 0);
- InitTR(&gb_drive.tDriveFaBSTime,T_25ms*2, 0);
- #endif
-
- #ifdef FUNC_DRIVE
- InitTR(&gb_drive.tQDTime_hz,pRunSet->tSwSet[sw].dT_Drive_hz, 0);
- InitTR(&gb_drive.tQDTime_fz,pRunSet->tSwSet[sw].dT_Drive_fz, 0);
- InitTR(&gb_drive.tQDTime_fz_end,pRunSet->tSwSet[sw].dT_fz_end, 0);
- InitTR(&gb_drive.tQDTime_hz_end,pRunSet->tSwSet[sw].dT_hz_end, 0);
- #endif
- #ifdef FUNC_REBOOT_BS_HA_JS_3S
- InitTR(&pR->tSDHZ.tHW_JS_HA_3STime, T_1s*3, 0);
- #endif
- }
- for(i=0;i<VOL_NUMBER;i++)
- {
- InitTR(&g_tVol[i].tQDTime,pRunSet->tVolSet[i].dTVol, WRN_RET_TIME);
- InitTR(&g_tVol[i].tCYYTime,T_40ms, 0);
- InitTR(&g_tVol[i].tWaveYYTime,T_40ms, 0);
- }
-
- InitTR(&g_rmt_op.tTULK3STime, T_1s*3, 0);
- InitTR(&g_tJLSDTime,pRunSet->dSDYX_T, T_1s*5);
- InitTR(&tPT.tTPT1DXTime,T_1s*10, WRN_RET_TIME);
- InitTR(&tPT.tTPT2DXTime,T_1s*10, WRN_RET_TIME);
- SetTR_TRTT(&tPT.tTPT1DXTime, WRN_RET_TIME);
- SetTR_TRTT(&tPT.tTPT2DXTime, WRN_RET_TIME);
- InitTR(&tPT.tBatOnTime,T_1s*2, WRN_RET_TIME);
- InitTR(&tPT.tTPT1XXYC,T_1s*3, WRN_RET_TIME);
- InitTR(&tPT.tTPT2XXYC,T_1s*3, WRN_RET_TIME);
- #ifdef IEC_NOLINK_NO_CALLYX
- InitTR(&g_link_comm.tLinkBreak,T_1s*60*3, 0);
- #endif
- #ifdef FUN_JDXX
- jdxx_relayinit();
- #endif
- }
- /******************************************************************************
- 函数名称: ProtectRelayInit1
- 函数版本: 01.01
- 创建作者:
- 创建日期: 2013-08-08
- 函数说明: 在保护巡检时有定值修改,重新初始化与保护相关的定时器,使修改后的延时有效
- 参数说明:
- 返回值:
- 修改记录:
- */
- void ProtectRelayInit1(void)
- {
- int sw,i;
- for(sw=0;sw<g_sw_num;sw++)
- {
- TRELAY_T *pR=&g_tRelay[ sw];
- TSETSW *pSet = &pRunSet->tSwSet[sw];
- int i;
-
- #ifdef CUSTOMIZE_BZT //备自投
- BztTimerChange(sw);
- #endif
- for(i=0;i<BHOC_NUMBER;i++)
- {
- TOC_T *poc=&pR->tOC[i];
- #ifdef YX_RESET_TIME
- InitTR(&poc->tTzEvRstTime, tRunPara.dTEventRst, 0); // 遥信复归时间
- InitTR(&poc->tGjEvRstTime, tRunPara.dTEventRst, 0); // 遥信复归时间
- #endif
- InitTR_Time(&poc->tQDTime, pSet->toc[i].dT, PRO_RET_TIME);
- InitTR_Time(&poc->tXBTime, pSet->toc[i].dT, PRO_RET_TIME);
- InitTR(&poc->tXBQD25ms, T_25ms*2, 0);
- if(i>=BH_OVI)
- {
- InitTR_Time(&poc->tQDTime, pSet->toc[i].dT, WRN_RET_TIME); // 过载及重载,返回时间为1秒
- }
- }
- {
- TGOC_T *poc=&pR->tgoc;
- GOC_SET *pgset=&pSet->tGocSet;
- DWORD dTsytime;
- dTsytime=((pgset->dTgzgl>pgset->dTsdlost)?pgset->dTgzgl:pgset->dTsdlost)+T_300ms;
- if(pRunSet->bTT_goose_send_after)
- {
- InitTR_Time(&poc->tTZX_300ms, pgset->dTgl, pRunSet->dT_sendext); //
- InitTR_Time(&poc->tTFX_300ms, pgset->dTgl, pRunSet->dT_sendext); //
- InitTR_Time(&poc->tTWX_300ms, pgset->dTgl, pRunSet->dT_sendext); //
- InitTR_Time(&poc->tTLX_300ms, pgset->dTlx, pRunSet->dT_sendext); //
- }
- else
- {
- InitTR_Time(&poc->tTZX_300ms, T_5ms, pRunSet->dT_sendext); //
- InitTR_Time(&poc->tTFX_300ms, T_5ms, pRunSet->dT_sendext); //
- InitTR_Time(&poc->tTWX_300ms, T_5ms, pRunSet->dT_sendext); //
- InitTR_Time(&poc->tTLX_300ms, T_5ms, pRunSet->dT_sendext); //
- }
- InitTR_Time(&poc->tTGLBS_300ms, T_5ms, pRunSet->dT_sendext); //
- InitTR_Time(&poc->tgoose15ms_gzgl, pRunSet->dT_goosecheck, 0); //
- InitTR_Time(&poc->tqccd.tCDTime,pRunSet->dT_cd, 0);
- InitTR_Time(&poc->tqccd.tWYTime,pRunSet->dT_glfd, 0);
- InitTR_Time(&poc->tglcd.tCDTime,pRunSet->dT_cd, 0);
- InitTR_Time(&poc->tglcd.tWYTime,pRunSet->dT_glfd, 0);
- if(pRunSet->dT_cd==0)
- {
- InitTR_Time(&poc->tllcd.tCDTime,T_1s*15, 0);
- }
- else
- {
- InitTR_Time(&poc->tllcd.tCDTime,pRunSet->dT_cd, 0);
- }
-
- InitTR_Time(&poc->tllcd.tWYTime,pRunSet->dT_llfd, 0);
- if(pRunSet->bTT_goose_send_after)
- {
- InitTR_Time(&poc->tglQDTime, pgset->dTgl+pRunSet->dT_goosecheck, PRO_RET_TIME); //
- InitTR_Time(&poc->tlxQDTime, pgset->dTlx+pRunSet->dT_goosecheck, PRO_RET_TIME); //
- }
- else
- {
- InitTR_Time(&poc->tglQDTime, ((pgset->dTgl>pRunSet->dT_goosecheck)?pgset->dTgl:pRunSet->dT_goosecheck), PRO_RET_TIME); //
- InitTR_Time(&poc->tlxQDTime, ((pgset->dTlx>pRunSet->dT_goosecheck)?pgset->dTlx:pRunSet->dT_goosecheck), PRO_RET_TIME); //
- }
-
- InitTR_Time(&poc->tgzglTime, pgset->dTgzgl, 0); //
- InitTR_Time(&poc->tsdlostTime, pgset->dTsdlost, 0); //
- InitTR_Time(&poc->terrlostTime, pgset->dTgzgl, 0); //
- InitTR_Time(&poc->tllhzTime, pgset->dTll, 0); //
- InitTR_Time(&poc->tllQdTime, pgset->dTll+((pgset->dTgzgl>pgset->dTsdlost)?pgset->dTgzgl:pgset->dTsdlost)+T_1s, 0); //
- InitTR_Time(&poc->tglslowTime, 0,pgset->dTgl+T_1s); //
- InitTR_Time(&poc->tlxslowTime, 0,pgset->dTlx+T_1s); //
- #if defined GD_AREA_ZHONGSHAN || defined GD_AREA_ZHONGSHAN_2020
- if(pRunSet->bTT_goose_send_after)
- {
- InitTR_Time(&poc->tgl2QDTime, pgset->dTgl2+pRunSet->dT_goosecheck, PRO_RET_TIME); //
- InitTR_Time(&poc->tTZX2_300ms, pgset->dTgl2, pRunSet->dT_sendext); //
- InitTR_Time(&poc->tTFX2_300ms, pgset->dTgl2, pRunSet->dT_sendext); //
- InitTR_Time(&poc->tTWX2_300ms, pgset->dTgl2, pRunSet->dT_sendext); //
- }
- else
- {
- InitTR_Time(&poc->tgl2QDTime, ((pgset->dTgl2>pRunSet->dT_goosecheck)?pgset->dTgl2:pRunSet->dT_goosecheck), PRO_RET_TIME); //
- InitTR_Time(&poc->tTZX2_300ms, T_5ms, pRunSet->dT_sendext); //
- InitTR_Time(&poc->tTFX2_300ms, T_5ms, pRunSet->dT_sendext); //
- InitTR_Time(&poc->tTWX2_300ms, T_5ms, pRunSet->dT_sendext); //
- }
- InitTR_Time(&poc->tglslowTime, 0,pgset->dTgl2+T_1s); //
- #endif
- InitTR_Time(&poc->tTzcheckTime, pRunSet->dT_TZSB, 0); //开关失灵判断时间
- InitTR_Time(&poc->tHzcheckTime, pRunSet->dT_HZSB, 0); //开关失灵判断时间
- InitTR_Time(&poc->ttzsbextTime, 0,pRunSet->dT_sendext); // 跳闸失败(开关失灵)展宽时间
- InitTR_Time(&poc->tgzglokextTime, 0,pRunSet->dT_sendext); // 发送展宽 300毫秒
- InitTR_Time(&poc->tgzglokForbitTime, 0,pRunSet->dT_frobit); //发送故障隔离成功后闭锁时间
- InitTR_Time(&poc->tCYY3sdelayms, T_1s*3,dTsytime);
- InitTR_Time(&poc->tgoosedelayms_ll, dTsytime+pRunSet->dT_TZSB*2, 0);
- InitTR_Time(&poc->textbsTime, 0, pRunSet->dT_sendext+T_100ms);
- }
- //重合闸
- InitTR_Time(&pR->tCHZ.tTCHCD15s0s, pSet->dT_chz_cd,0 ); //充电15秒
- InitTR_Time(&pR->tCHZ.tTCHJD_ARDelay, pSet->dT_chz[0],0 ); //重合闸延时
- InitTR_Time(&pR->tCHZ.tTCHFAIL_TW, pSet->dT_chz[0]+T_1s, 0 ); //三相跳位延时: 重合失败返回时间
- InitTR_Time(&pR->tCHZ.tTCHBSDelay, pSet->dT_chz_bs,0 ); //重合闭锁延时
- InitTR_Time(&pR->tCHZ.tTCHOKTime, pSet->dT_chz_ok,0 ); //重合闭锁延时
- InitTR_Time(&pR->tCHZ.tTCHJBSTime, 0,pSet->dT_chz_ok ); //重合闭锁时间
- #ifdef PRO_UZ_START_REC
- InitTR(&pR->tCHZ.tTCH_UO_BS, T_100ms, 0 ); // 零序电压重合闭锁延时
- #endif
- #ifdef FUN_CHZ_TOPEN
- InitTR(&pR->tCHZ.tTCHOPENTime, pSet->dT_chz_Topen, 0 ); //;重合开放时间
- #endif
-
- //配网功能定值
- InitTR_Time(&pR->tSDHZ.tOnXSTime, pSet->dT_X,0);
- InitTR_Time(&pR->tSDHZ.tOnYSTime, pSet->dT_Y,0);
- InitTR_Time(&pR->tSDHZ.tOnXLTime, pSet->dT_XL,0);
- InitTR_Time(&pR->tSDHZ.tOnYLTime, pSet->dT_Y,0);
- #ifdef GD_AREA_ZHONGSHAN_2020
- InitTR_Time(&pR->tSDHZ.tOnLLCDYLTime, pSet->dT_LL_CD,0);
- #endif
-
- InitTR_Time(&pR->tSDHZ.tOnBSTZTime, pSet->dT_fa_bsTz,0);
- InitTR_Time(&pR->tSDHZ.tOnJSTime, pRunSet->dT_ldjs, 0); ////初始化单侧来电解锁计时器
- #if defined GD_AREA_ZHONGSHAN_2020 || defined GD_AREA_ECZD_2020 || defined GD_AREA_ZHONGSHAN
- #if defined GD_AREA_ECZD_2020
- #if defined FUNC_SET_FA_JS
- InitTR_Time(&pR->tSDHZ.tOnHW_FA_JSTime, pRunSet->dT_FA_JS, 0);
- #elif defined GD_AREA_ECZD_MAOMING
- InitTR(&pR->tSDHZ.tOnHW_FA_JSTime, 3*T_1s, 0);
- #else
- InitTR_Time(&pR->tSDHZ.tOnHW_FA_JSTime, 5*T_10ms, 0);
- #endif
- #else
- InitTR_Time(&pR->tSDHZ.tOnHW_FA_JSTime, T_1s*6, 0);
- #endif
- #else
- InitTR_Time(&pR->tSDHZ.tOnHW_FA_JSTime, T_1s, 0);
- #endif
- InitTR_Time(&pR->tSDHZ.tOnOCingTime, pSet->dT_fa_ocing,pSet->dT_Y);
- InitTR_Time(&pR->tSDHZ.tOnLXingTime, pSet->dT_fa_lxing,pSet->dT_Y);
- #ifdef GD_AREA_ZHONGSHAN_2020
- InitTR_Time(&pR->tSDHZ.tOnY_JSTime, 0, 0);
- #elif defined GD_AREA_ECZD_2020 || defined GD_AREA_ZHONGSHAN
- InitTR_Time(&pR->tSDHZ.tOnY_JSTime, T_1s*6, 0);
- #else
- InitTR_Time(&pR->tSDHZ.tOnY_JSTime, T_1s*3, 0);
- #endif
- #ifdef FA_OC_COUNT
- InitTR_Time(&pR->tSDHZ.tFaOcCountTime, pSet->fa_oc_conut_time, 0);
- #endif
- #if 0
- if(pSet->toc[FA_GL].dT>T_10ms*3)
- {
- InitTR_Time(&pR->tSDHZ.tGZJYRstGLTime,pSet->toc[FA_GL].dT-T_10ms*3,pSet->dT_Y);
- }
- else
- {
- InitTR_Time(&pR->tSDHZ.tGZJYRstGLTime,0,pSet->dT_Y);
- }
- if(pSet->toc[FA_GL2].dT>T_10ms*3)
- InitTR_Time(&pR->tSDHZ.tGZJYRstGL2Time,pSet->toc[FA_GL2].dT-T_10ms*3,pSet->dT_Y);
- else
- InitTR_Time(&pR->tSDHZ.tGZJYRstGL2Time,0,pSet->dT_Y);
- if(pSet->toc[FA_LX].dT>T_10ms*3)
- {
- InitTR_Time(&pR->tSDHZ.tGZJYRstJDTime,pSet->toc[FA_LX].dT-T_10ms*3,pSet->dT_Y);
- }
- else
- {
- InitTR_Time(&pR->tSDHZ.tGZJYRstJDTime,0,pSet->dT_Y);
- }
- if(pSet->toc[FA_LX2].dT>T_10ms*3)
- InitTR_Time(&pR->tSDHZ.tGZJYRstJD2Time,pSet->toc[FA_LX2].dT-T_10ms*3,pSet->dT_Y);
- else
- InitTR_Time(&pR->tSDHZ.tGZJYRstJD2Time,0,pSet->dT_Y);
- #else
- if(pSet->toc[FA_GL].dT>T_FA_TZ_MIN_TIME)
- InitTR_Time(&pR->tSDHZ.tGZJYRstGLTime,pSet->toc[FA_GL].dT,pSet->dT_Y);
- else
- InitTR_Time(&pR->tSDHZ.tGZJYRstGLTime,T_FA_TZ_MIN_TIME,pSet->dT_Y);
- if(pSet->toc[FA_GL_II].dT>T_FA_TZ_MIN_TIME)
- InitTR_Time(&pR->tSDHZ.tGZJYRstGL_II_Time,pSet->toc[FA_GL_II].dT,pSet->dT_Y);
- else
- InitTR_Time(&pR->tSDHZ.tGZJYRstGL_II_Time,T_FA_TZ_MIN_TIME,pSet->dT_Y);
- if(pSet->toc[FA_GL2].dT>T_FA_TZ_MIN_TIME)
- InitTR_Time(&pR->tSDHZ.tGZJYRstGL2Time,pSet->toc[FA_GL2].dT,T_20ms);
- else
- InitTR_Time(&pR->tSDHZ.tGZJYRstGL2Time,T_FA_TZ_MIN_TIME,T_20ms);
- if(pSet->toc[FA_LX].dT>T_FA_TZ_MIN_TIME)
- InitTR_Time(&pR->tSDHZ.tGZJYRstJDTime,pSet->toc[FA_LX].dT,pSet->dT_Y);
- else
- InitTR_Time(&pR->tSDHZ.tGZJYRstJDTime,T_FA_TZ_MIN_TIME,pSet->dT_Y);
-
- if(pSet->toc[FA_LX2].dT>T_FA_TZ_MIN_TIME)
- InitTR_Time(&pR->tSDHZ.tGZJYRstJD2Time,pSet->toc[FA_LX2].dT,pSet->dT_Y);
- else
- InitTR_Time(&pR->tSDHZ.tGZJYRstJD2Time,T_FA_TZ_MIN_TIME,pSet->dT_Y);
- #endif
- InitTR_Time(&pR->tSDHZ.tUABS25ms,pSet->dT_fa_YY, T_25ms*2);
- InitTR_Time(&pR->tSDHZ.tUBCS25ms,pSet->dT_fa_YY, T_25ms*2);
- InitTR_Time(&pR->tSDHZ.tUABL25ms,pSet->dT_fa_YY, T_25ms*2);
- InitTR_Time(&pR->tSDHZ.tUBCL25ms,pSet->dT_fa_YY, T_25ms*2);
- InitTR_Time(&pR->tSDHZ.tL_RELAYONL3s, pSet->dT_Y, 0);
- InitTR_Time(&pR->tSDHZ.tUFABL80ms,pRunSet->dT_XCY, pSet->dT_Y-T_1s);
- InitTR_Time(&pR->tSDHZ.tUFBCL80ms,pRunSet->dT_XCY, pSet->dT_Y-T_1s);
- InitTR_Time(&pR->tSDHZ.tUFDBTime,pRunSet->dT_XCY, 0);
- InitTR_Time(&pR->tSDHZ.tUFABS80ms,pRunSet->dT_XCY, pSet->dT_X);
- InitTR_Time(&pR->tSDHZ.tUFBCS80ms,pRunSet->dT_XCY, pSet->dT_X);
- InitTR_Time(&pR->tSDHZ.tUFABS25ms,T_25ms, pRunSet->dT_XCY+T_1s);
- InitTR_Time(&pR->tSDHZ.tUFBCS25ms,T_25ms, pRunSet->dT_XCY+T_1s);
- InitTR_Time(&pR->tSDHZ.tUFABL25ms,T_25ms, pRunSet->dT_XCY+T_1s);
- InitTR_Time(&pR->tSDHZ.tUFBCL25ms,T_25ms, pRunSet->dT_XCY+T_1s);
- #ifdef FA_PL_PJ
- InitTR(&pR->tSDHZ.tFREQAB25ms_SCY,T_25ms*2, T_25ms*2);
- InitTR(&pR->tSDHZ.tFREQBC25ms_SCY,T_25ms*2, T_25ms*2);
- InitTR(&pR->tSDHZ.tFREQAB25ms_LCY,T_25ms*2, T_25ms*2);
- InitTR(&pR->tSDHZ.tFREQBC25ms_LCY,T_25ms*2, T_25ms*2);
- InitTR(&pR->tSDHZ.tFREQSAB25ms,T_25ms, T_25ms*2);
- InitTR(&pR->tSDHZ.tFREQSBC25ms,T_25ms, T_25ms*2);
- InitTR(&pR->tSDHZ.tFREQLAB25ms,T_25ms, T_25ms*2);
- InitTR(&pR->tSDHZ.tFREQLBC25ms,T_25ms, T_25ms*2);
- #endif
-
- InitTR_Time(&pR->tSDHZ.tHz0ms1s,0,tRunPara.wFAHZT*T_5ms/5+T_1s);
- InitTR_Time(&pR->tSDHZ.tTz0ms1s,0,tRunPara.wFAFZT*T_5ms/5+T_1s);
- InitTR_Time(&pR->tSDHZ.tHz0ms2s,pRunSet->dT_HZSB,0);
- InitTR_Time(&pR->tSDHZ.tTz0ms2s,pRunSet->dT_TZSB,0);
-
- InitTR_Time(&pR->tSDHZ.tTSDHzHJS, 0, pSet->dT_Y); //上电合闸加速判断
-
- InitTR_Time(&pR->tU0TZ.tZOVTime, pSet->dT_OverU0, T_20ms);
- InitTR_Time(&pR->tOVER_U0TZ.tZOVTime, pSet->dBHTOverU0, T_20ms);
- //解列
- InitTR_Time(&pR->tDYJL.tDdyTime, pSet->dT_jl_ddy, T_20ms);
- InitTR_Time(&pR->tDYJL.tGdyTime, pSet->dT_jl_gdy, T_20ms);
- InitTR_Time(&pR->tDYJL.tHighTime, pSet->dT_jl_ggdy, T_20ms);
- InitTR_Time(&pR->tDYJL.tLowTime, pSet->dT_jl_gddy, T_20ms);
- InitTR_Time(&pR->tPLJL.tDhzTime, pSet->dT_jl_dhz, T_40ms);
- InitTR_Time(&pR->tPLJL.tHighTime, pSet->dT_jl_ghz, T_40ms);
- InitTR_Time(&pR->tPLJL.tLowTime, pSet->dT_jl_lowhz, T_40ms);
- InitTR_Time(&pR->tLostVot.tLostVotTime, pSet->dT_Z, T_20ms);
- InitTR_Time(&pR->tLostVot.tLostVLockTime,0,pSet->dT_fa_bsTz);
- InitTR_Time(&pR->tTQHz.tTQTime,pSet->dT_tq,0); //同期
- InitTR_Time(&pR->tSWST.tTWCNGJ1s, pRunSet->dWCN_T, WRN_RET_TIME);
- InitTR_Time(&pR->tSWST.tTKZHLGJ1s, T_1s*10, WRN_RET_TIME);
- InitTR_Time(&pR->tTripfail_2s, pRunSet->dT_TZSB, 0); //跳闸失败时间继电器
- InitTR_Time(&pR->tTripfail_hz, 0 , pRunSet->dT_TZSB); //跳闸失败时间继电器
-
- InitTR_Time(&pR->tSWST.tCTXXYC, T_1s*3, WRN_RET_TIME); // CT相序异常
- InitTR_Time(&pR->tSWST.tCTYC, T_1s*10, WRN_RET_TIME); // CT断线
- InitTR_Time(&pR->tTZZFG_5S0ms, pRunSet->dT_ZZFG, 0); //无故障延时5s
- for(i=0;i<8;i++)
- {
- if(pRunSet->bTT_FDLTz[i])
- {
- InitTR_Time(&pR->tFdl[i].tFdlTime,pRunSet->dTFDL[i], PRO_RET_TIME);
- }
- else
- {
- InitTR_Time(&pR->tFdl[i].tFdlTime,pRunSet->dTFDL[i], WRN_RET_TIME);
- }
- }
- #ifdef FUNC_DRIVE_JY
- InitTR(&gb_drive.tDriveUa1Time,pSet->dT_drive_ua1, 0);
- InitTR(&gb_drive.tDriveUa2Time,pSet->dT_drive_ua2, 0);
- InitTR(&gb_drive.tDriveU0Time,pSet->dT_drive_u0, 0);
- InitTR(&gb_drive.tDriveITime,pSet->dT_drive_i, 0);
- InitTR(&gb_drive.tDriveI0Time,pSet->dT_drive_i0, 0);
- InitTR(&gb_drive.tDriveAgainTime,pSet->dT_drive_again, 0);
- InitTR(&gb_drive.tDriveFaBSTime,T_25ms*2, 0);
- #endif
- #ifdef FUNC_DRIVE
- InitTR(&gb_drive.tQDTime_hz,pRunSet->tSwSet[sw].dT_Drive_hz, 0);
- InitTR(&gb_drive.tQDTime_fz,pRunSet->tSwSet[sw].dT_Drive_fz, 0);
- InitTR(&gb_drive.tQDTime_fz_end,pRunSet->tSwSet[sw].dT_fz_end, 0);
- InitTR(&gb_drive.tQDTime_hz_end,pRunSet->tSwSet[sw].dT_hz_end, 0);
- #endif
- }
- for(i=0;i<VOL_NUMBER;i++)
- {
- InitTR_Time(&g_tVol[i].tQDTime,pRunSet->tVolSet[i].dTVol, WRN_RET_TIME);
- }
- InitTR_Time(&g_tJLSDTime,pRunSet->dSDYX_T, T_1s*5);
- InitTR_Time(&tFAg.tRstTime,pRunSet->dT_sendext*10, 0);
- #ifdef FUN_JDXX
- jdxx_relayinit();
- #endif
- }
-
- /**************************************************************************
- 函数名称:ValueOverRelay
- 函数版本:1.00
- 作者: mwd
- 创建日期:2007.9.29
- 函数功能说明:过量继电器
- 输入参数:dI、dIdz 相比较
- CONST_FHXISHU: 返回系数,常数
- bEN: 1--返回系数有效,0-返回系数无效
- 其他输入:
- 输出参数?
- 返回值:?I>dIdz,返回true ,否则,返回false
- ***************************************************************************/
- bool OverRelay(DWORD dI,DWORD dIdz,DWORD dfhdz ,bool bEN)
- {
- if(bEN)
- {
- if(dI>dfhdz)
- {
- return (true);
- }
- else
- {
- return (false);
- }
- }
- else
- {
- if(dI>dIdz)
- {
- return (true);
- }
- else
- {
- return (false);
- }
- }
- }
- /**************************************************************************
- 函数名称:ValueLowRelay
- 函数版本:1.00
- 作者:
- 创建日期:2007.9.29
- 函数功能说明:欠量继电器
- 输入参数:dI、dIdz 相比较
- CONST_FHXISHU: 返回系数,常数
- bEN: 1--返回系数有效,0-返回系数无效
- 其他输入:
- 输出参数?
- 返回值:?I>dIdz,返回true ,否则,返回false
- ***************************************************************************/
- bool LowRelay(DWORD dI,DWORD dIdz,DWORD dfhdz ,bool bEN)
- {
- if(bEN)
- {
- if(dI<dfhdz)
- {
- return (true);
- }
- else
- {
- return (false);
- }
- }
- else
- {
- if(dI<dIdz)
- {
- return (true);
- }
- else
- {
- return (false);
- }
- }
- }
- /**************************************************************************
- 函数名称:SelectFrom
- 函数版本:1.00
- 作者: MWD
- 创建日期:2007.9.29
- 函数功能说明:二选一函数
- 输入参数:DWORD A: 待选数
- DWORD B: 待选数
- bool bSelect
- 输出参数:
- 返回值: bSelect=0 时,返回 A; bSelect=1 时,返回 B;
- **************************************************************************/
- DWORD SelectMax(DWORD A, DWORD B, DWORD C)
- {
- DWORD max;
- max=A;
- if(B>max)
- {
- max=B;
- }
- if(C>max)
- {
- max=C;
- }
-
- return (max);
- }
- /**************************************************************************
- 函数名称:CalcAngSub
- 函数版本:1.00
- 作者: MWD
- 创建日期:2007.9.29
- 函数功能说明:计算向量角差,并转换至 0~360之间
- 输入参数:long Real1,
- long Imag1,
- long Imag2,
- long Imag2
- 输出参数:
- 返回值: long 角差;
- **************************************************************************/
- long CalcAngSub(long Real1, long Imag1, long Real2, long Imag2)
- {
- long lTmp;
- lTmp = _AngPQ(Real1, Imag1)- _AngPQ(Real2,Imag2);
- //规格化在0 ~ 360之间
- if(lTmp < 0)
- {
- lTmp += ANGLE_P360;
- }
- if(lTmp>ANGLE_P180) //转换为-180 ~180
- {
- lTmp-=ANGLE_P360;
- }
- return (lTmp);
- }
- /**************************************************************************
- 函数名称:SynJudge
- 函数版本:1.00
- 作者: 保护组 MWD
- 创建日期:2007.10.13
- 函数功能说明:同期判别
- 输入参数:long ANG1: UX与UA角差
- long ANG2: UX与UA角差记忆值
- DWORD ANGSET: 同期角度定值
- 输出参数:
- 返回值: TRUE---同期满足,
- FALSE--同期不满足
- **************************************************************************/
- bool SynJudge(long lANG1,long lANG2,DWORD dANGSET)//同期判别
- {
- bool bStatus;
- long lTemp;
-
- lTemp = lAbs(lANG1 - lANG2);
-
- if( ( (long)dANGSET > lTemp )
- ||( lTemp > (ANGLE_P360 - (long)dANGSET)) )
- {
- bStatus = 1;
- }
- else
- {
- bStatus = 0;
- }
- return( bStatus );
- }
- /**************************************************************************
- 函数名称:PowerDirectionalRelay
- 函数版本:1.00
- 作者: Chenlei
- 创建日期:2007.11.4
- 函数功能说明:输入电压、电流和阻抗角定值以及电压门槛定值,判断测量阻抗是否
- 落在动作特性区内,并输出动作标志。
- 输入参数:Ur -- 电压实部
- Ui -- 电压虚部
- U -- 电压幅值
- Ir -- 电流实部
- Ii -- 电流虚部
- I -- 电流幅值
- Umk -- 电压门槛
- Imk -- 电流门槛
- Ang1 -- 灵敏角1
- Ang2 -- 灵敏角2
- 输出参数:管脚10_动作标志
- 返回值: false-不动作;true-动作
- **************************************************************************/
- bool PowerDirectionalRelay(long Ur,long Ui,DWORD U, long Ir,long Ii,DWORD I, DWORD Umk,DWORD Imk,long sina1,long cosa1,long sina2,long cosa2)
- {
- bool bDIRB;
-
- long lTemp; //中间变量
- long lTemp1; //中间变量
- long lTemp2; //中间变量
-
- bDIRB = false;
- if (( U > Umk ) && ( I > Imk )) //电压、电流均大于门槛,进行方向判断;否则,返回
- {
-
- lTemp1 = _MulFac_S(Ur,( Ir * cosa1 - Ii * sina1 ));
- lTemp2 = _MulFac_S(Ui, ( Ii * cosa1 + Ir * sina1 ));
- lTemp = lTemp1 + lTemp2;
-
- if ( lTemp > 0 )
- {
- lTemp1 = _MulFac_S(Ur, ( Ir * cosa2 - Ii * sina2 ));
- lTemp2 = _MulFac_S(Ui, ( Ii * cosa2 + Ir * sina2 ));
- lTemp = lTemp1 + lTemp2;
-
- if ( lTemp > 0 )
- {
- bDIRB = true;
- }
- }
- }
- return( bDIRB );
- }
- /******************************end*****************************************/
|