diff --git a/标准版4.0/lib_atbh.c b/标准版4.0/lib_atbh.c deleted file mode 100644 index 3681fcbd..00000000 --- a/标准版4.0/lib_atbh.c +++ /dev/null @@ -1,3278 +0,0 @@ -#include "..\h\predefine.h" -#ifdef _atbh_c_ - -/*SYS relational*/ -#include - -#include "stdio.h" -#include "stdLib.h" - -#include "..\h\lib.h" -#include "..\h\variable.h" -#include ".\inc\atbh.h" -#include "..\h\predefine.h" -#include "..\h\com_lib.h" -#include ".\inc\parameter_atbh.h" -#include ".\inc\analog_atbh.h" -#include ".\inc\inout_atbh.h" - -extern void Reset_Init(void); - -void timer_interrupt(void); - -void TimerManage(void); -void Check_QDZT (void); //Æô¶¯AT×ÔͶ -void Send_QDZT(); //Ïò¶Ô²à·¢Æô¶¯×ÔͶÐźŠ-void ATBH_FLDProtect(void); //·ÇµçÁ¿±£»¤ - -void JiSuanUI(void); //¼ÆËãµçÁ÷µçѹ -void ComputeTemperature(); //¼ÆËãÎÂ¶È -void FaultProcess(void); //¹ÊÕÏ´¦Àí -void JiSuanMeasureValue(void); //¼ÆËã²âÁ¿Öµ -void ChaDongProtect(void); //²î¶¯±£»¤ -void CheckDLQHW(void); //¼ì²â¶Ï·Æ÷λÖà -extern void CWWDProtectUnit(NoDirectProtectItemType *CWWDYJ); //ζȸ澯 -void SaveFaultData(void); -void SaveFaultTime(void); -void ATBH_FLDAlarm(void); -void Check_PTDX(NoDirectProtectItemType *pPrtcUnit,char tvtype); -void ChongHeZha(void); -void CheckChongDianTime(void); -void StartTiaoZha_atbh(void); - -extern void StatusLightKCHandle(unsigned int KCNo,unsigned char status); -extern int CheckAnLedRecord(AnLEDCtrlType * pObject,unsigned int timeDelay); -extern int SwitchContrl(unsigned char ObjectNo, unsigned char Property,unsigned int *timer,unsigned char type); -void ATZTDongZuo(void); -extern void gse_handle(void); -extern void SendGetTimeCommand(); -extern void CopyYaoXinBianWei(); -extern void digit_mainTask(); -void SaveWave_Id(); -void atbh_check_u(); -void record_reclose_soe(void); -void atbh_check_position_change(); //¼ì²âλÖñ仯 -extern void printf_record(int tag1, int tag2,int tag3,int tag4,int tag5); - -int fristFaultIndex = 0; - -static int ZB_fristFaultIndex = 0; -static int ZB_SYZT_able = ON; -//float xb2,xb3,xb5= 0; - -/******************************************************** - * void timer_interrupt(void) - * ÃèÊö£º±£»¤ÖжϷþÎñ³ÌÐò£¬ÖжÏʱ¼ä¼ä¸ôΪ£º20ms/24=5ms/6 - * ÀúÊ·: ´´½¨ÈÕÆÚ²»Ïê - * - ******************************************************/ -void timer_interrupt(void) -{ - unsigned int BaoHuQiDongIP_OLD; - static volatile int intFlag = 0; - int isprtcopen; - - if(0 != intFlag) - { - printf("ms int is not return\n"); - return; - } - - intFlag = 1; - - ClockTick(&SysTime); - ModiClock(); //ʱÖÓ¹ÜÀí - #ifdef CCES_ADI - execute_as_subscriber(); - #endif - - isprtcopen = check_prtc_open(); - - if(Init_IP==TEST_START) //ÆÁ±Î²ÉÑùÖжϷþÎñ³ÌÐò - { - - digit_Polling(); - //SaveWave_Id(); - #if 0 - //20140701 luoyang add for test - if(IP != InPort.Status[ATBH_WD2_KR]) - { - IP = InPort.Status[ATBH_WD2_KR]; - //½«Êܵ½µÄ״̬·¢ËͳöÈ¥ - RecordSoftYaoXin(ATBH_YAOXIN_WD2,IP); - D_OUT(ATBH_QF_TZ_KC,IP); - } - #endif - - //changeFourierVarType();// - JiSuanUI(); //¼ÆËãµçÁ÷µçѹ - CheckAnalogZcp(&ZcpSet); - //#ifdef DEVICE_TYPE_CONVENTIONAL - //ComputeTemperature(); //¼ÆËãÎÂ¶È - //#endif - //TimerManage(); //¶¨Ê±Æ÷¹ÜÀí - //SaveWave(); //±£´æ4Öܲ¨ÊµÊ±²¨ÐÎÊý¾Ý - SaveLoadWave(); //¸ººÉ¼²¨ - //SaveFaultWave(); //¹ÊÕϼ²¨ - CheckChuanDongTest(); //´«¶¯ÊÔÑé - CheckChongDianTime(); //ÖØºÏÕ¢³äµç - //OUTManage(); //¿ª³ö¹ÜÀí - Check_QDZT(); //Æô¶¯AT×ÔͶ - ATZTDongZuo(); - ItemClsDwnProcess();// - if(LS_TR == ATBH_LS) - { - block_CheckYaoXin(); - } - BaoHuQiDongIP_OLD=BaoHuQiDongIP; - FaultSoeStartCode = get_protect_soe_write_ip(); - - atbh_check_position_change(); //¼ì²âλÖñ仯 - - //Óû§¶¨ÖµÕýÈ· - if(isprtcopen) - { - /* - StartTiaoZha(); - FaultProcess(); - SetFaultStart(); - CheckFaultEnd(); - */ - CheckRmote(); - //SoeRcordDecision(); - ChaDongProtect(); //²î¶¯±£»¤ - atbh_check_u(); //¼ìÓÐѹ - switch(IntCount) - { - case 0: - //SoeRcordDecision(); - //ChaDongProtect(); //²î¶¯±£»¤ - CheckDLQHW(); //¼ì²â¶Ï·Æ÷λÖà - UIProtectUnit1(&ATBH_SYYJ,ATBH_HW_BIT); //ʧѹ±£»¤ - //UIProtectUnit(&ATBH_JDIYJ,1,1); //Åö¿Ç±£»¤ - #ifdef TEMPERATURE_ENABLE - UIAlarmUnit(&ATBH_CWWD1YJ,0,2); //ζÈ1¸æ¾¯Ôª¼þ - UIAlarmUnit(&ATBH_CWWD2YJ,0,2); //ζÈ2¸æ¾¯Ôª¼þ - #endif - ATBH_FLDProtect(); //·ÇµçÁ¿±£»¤ - ATBH_FLDAlarm(); //·ÇµçÁ¿¸æ¾¯ - - IntCount=1; - break; - - case 1: - //UIAlarmUnit(&ATBH_CLYXYJ,0,2); //²îÁ÷Ô½Ï޸澯 - //¹ý¸ººÉ¸æ¾¯ - if(ISOLATOR_TYPE == ATBH_ATMode) - { - UIAlarmUnit(&ATBH_FIYJ,!(TempQiDongIP & ATBH_HW_BIT),2); - } - else - { - UIAlarmUnit(&ATBH_FIYJ,0,2); //¹ý¸ººÉ¸æ¾¯ - } - Check_PTDX(&ATBH_TPTDXYJ,0); //TÏßPT¶ÏÏß¼ì²â - Check_PTDX(&ATBH_FPTDXYJ,1); //FÏßPT¶ÏÏß¼ì²â - IntCount=0; - break; - - default: - IntCount=0; - break; - } //endcase - - } - TimerManage(); //¶¨Ê±Æ÷¹ÜÀí - if(isprtcopen) - { - SaveFaultWave(); //¹ÊÕϼ²¨ 20220629 - // ÖØºÏÕ¢ºó¼ÓËÙÆô¶¯Ê±±ÜÃâ³öÏÖÁíÍâÒ»´Î¹ÊÕϱ¨¸æ£¬Èç¹û³öÏÖÈκιÊÕÏÖØºÏÕ¢³ÌÐò¾Í»áÍê³ÉÌøÕ¢ - if(CHZValue.Status == CHZ_CLOSE) - { - StartTiaoZha_atbh(); - } - FaultProcess(); - ChongHeZha(); - record_reclose_soe(); - SetFaultStart(); - CheckFaultEnd(); - } - if((BaoHuQiDongIP_OLD==0)&&(BaoHuQiDongIP!=0)&&(QiDongTime==0)) QiDongTime=1; - - }//end of if(Init_IP==TEST_START) - //gse_handle(); - intFlag = 0; - -} - -void CheckDLQHW(void) -{ - //¹¦ÄÜ˵Ã÷£º¼ì²â¶Ï·Æ÷λÖà - if(YaoXinStatus[ATBH_rmtsignal_run]!=OFF) - { - TempQiDongIP|=ATBH_HW_BIT; - } - else - { - TempQiDongIP&=~ATBH_HW_BIT; - } -} - -void computedlldiff(unsigned int startbit) -{ - tagDLL_Rated_Frq *pDiffBuffer,*pResBuffer; - - if(BH_RUN != ATBH_DLLDIFFTouRu) - { - return; - } - - pDiffBuffer = &ATBH_DLLDIFFBUF; - pResBuffer = &ATBH_DLLRESBUF; - - if(BaoHuQiDongIP & startbit) - { - //ÔöÁ¿Æô¶¯ - DLLDiffValue.CDI.Value = ChaDongValue.CDI.Value - pDiffBuffer->basevalue; - DLLDiffValue.ZDI.Value = ChaDongValue.ZDI.Value - pResBuffer->basevalue; - - } - else - { - //ÔöÁ¿Î´Æô¶¯ - DLLDiffValue.CDI.Value = ChaDongValue.CDI.Value - pDiffBuffer->buffer[pDiffBuffer->recordip]; - pDiffBuffer->basevalue = pDiffBuffer->buffer[pDiffBuffer->recordip]; - - DLLDiffValue.ZDI.Value = ChaDongValue.ZDI.Value - pResBuffer->buffer[pResBuffer->recordip]; - pResBuffer->basevalue = pResBuffer->buffer[pResBuffer->recordip]; - } - pDiffBuffer->buffer[pDiffBuffer->recordip] = ChaDongValue.CDI.Value; //±£´æµ±Ç°±£»¤ÈÆ×éµçÁ÷ - pResBuffer->buffer[pResBuffer->recordip] = ChaDongValue.ZDI.Value; //±£´æµ±Ç°±£»¤ÈÆ×éµçÁ÷ - //pDiffBuffer->recordip = (pDiffBuffer->recordip + 1) % (DDL_BUFFFER_RATED_FRQ_LEN_HALF); //ÐÞ¸ÄÖ¸Õë - pDiffBuffer->recordip++; - if(pDiffBuffer->recordip >= DDL_BUFFFER_RATED_FRQ_LEN) - { - pDiffBuffer->recordip -= DDL_BUFFFER_RATED_FRQ_LEN; - } - //pResBuffer->recordip = (pResBuffer->recordip + 1) % (DDL_BUFFFER_RATED_FRQ_LEN_HALF); //ÐÞ¸ÄÖ¸Õë - pResBuffer->recordip++; - if(pResBuffer->recordip >= DDL_BUFFFER_RATED_FRQ_LEN) - { - pResBuffer->recordip -= DDL_BUFFFER_RATED_FRQ_LEN; - } - -} - -/************************************************************ - * void JiSuanUI(void) - * ÃèÊö£ºÓÐЧֵ¡¢Ð³²¨º¬Á¿¡¢²î¶¯µçÁ÷¡¢Öƶ¯µçÁ÷ - * ÀúÊ·£º´´½¨ÈÕÆÚ²»Ïê - * - ***********************************************************/ -void JiSuanUI(void) -{ - - float FS_temp,FC_temp; - float FS_temp_TCD,FC_temp_TCD,FS_temp_FCD,FC_temp_FCD,val,currentflag; - unsigned char Switch_status; - - //¼ÆËã»ù²¨ÓÐЧֵ - //TÏßµçѹ - FS_temp=ChannelValue[CH_ATBH_UT].YouXiaoZhi[JiBo].FS; - FC_temp=ChannelValue[CH_ATBH_UT].YouXiaoZhi[JiBo].FC; - ChannelValue[CH_ATBH_UT].YouXiaoZhi[JiBo].Analog.Value=sqrt(FS_temp*FS_temp+FC_temp*FC_temp); - //printf("fs = %f,fc = %f,val = %f\n",FS_temp,FC_temp,ChannelValue[CH_ATBH_UT].YouXiaoZhi[JiBo].Analog.Value); - //FÏßµçѹ - FS_temp=ChannelValue[CH_ATBH_UF].YouXiaoZhi[JiBo].FS; - FC_temp=ChannelValue[CH_ATBH_UF].YouXiaoZhi[JiBo].FC; - ChannelValue[CH_ATBH_UF].YouXiaoZhi[JiBo].Analog.Value=sqrt(FS_temp*FS_temp+FC_temp*FC_temp); - - //TÏß±£»¤ÈÆ×éµçÁ÷ - FS_temp=ChannelValue[CH_ATBH_BH_I].YouXiaoZhi[JiBo].FS; - FC_temp=ChannelValue[CH_ATBH_BH_I].YouXiaoZhi[JiBo].FC; - ChannelValue[CH_ATBH_BH_I].YouXiaoZhi[JiBo].Analog.Value=sqrt(FS_temp*FS_temp+FC_temp*FC_temp); - //TÏß²âÁ¿ÈÆ×éµçÁ÷ - FS_temp=ChannelValue[CH_ATBH_CL_I].YouXiaoZhi[JiBo].FS; - FC_temp=ChannelValue[CH_ATBH_CL_I].YouXiaoZhi[JiBo].FC; - ChannelValue[CH_ATBH_CL_I].YouXiaoZhi[JiBo].Analog.Value=sqrt(FS_temp*FS_temp+FC_temp*FC_temp); - //TÏß²î¶¯ÈÆ×éµçÁ÷ - FS_temp=ChannelValue[CH_ATBH_CD_IT].YouXiaoZhi[JiBo].FS; - FC_temp=ChannelValue[CH_ATBH_CD_IT].YouXiaoZhi[JiBo].FC; - ChannelValue[CH_ATBH_CD_IT].YouXiaoZhi[JiBo].Analog.Value=sqrt(FS_temp*FS_temp+FC_temp*FC_temp); - - //FÏß±£»¤ÈÆ×éµçÁ÷ - FS_temp=ChannelValue[CH_ATBH_BH_IF].YouXiaoZhi[JiBo].FS; - FC_temp=ChannelValue[CH_ATBH_BH_IF].YouXiaoZhi[JiBo].FC; - ChannelValue[CH_ATBH_BH_IF].YouXiaoZhi[JiBo].Analog.Value=sqrt(FS_temp*FS_temp+FC_temp*FC_temp); - //FÏß²âÁ¿ÈÆ×éµçÁ÷ - FS_temp=ChannelValue[CH_ATBH_CL_IF].YouXiaoZhi[JiBo].FS; - FC_temp=ChannelValue[CH_ATBH_CL_IF].YouXiaoZhi[JiBo].FC; - ChannelValue[CH_ATBH_CL_IF].YouXiaoZhi[JiBo].Analog.Value=sqrt(FS_temp*FS_temp+FC_temp*FC_temp); - //TÏß²î¶¯ÈÆ×éµçÁ÷ - FS_temp=ChannelValue[CH_ATBH_CD_IF].YouXiaoZhi[JiBo].FS; - FC_temp=ChannelValue[CH_ATBH_CD_IF].YouXiaoZhi[JiBo].FC; - ChannelValue[CH_ATBH_CD_IF].YouXiaoZhi[JiBo].Analog.Value=sqrt(FS_temp*FS_temp+FC_temp*FC_temp); - - //½ÓµØµçÁ÷ - //FS_temp=ChannelValue[CH_ATBH_JDI].YouXiaoZhi[JiBo].FS; - //FC_temp=ChannelValue[CH_ATBH_JDI].YouXiaoZhi[JiBo].FC; - //ChannelValue[CH_ATBH_JDI].YouXiaoZhi[JiBo].Analog.Value=sqrt(FS_temp*FS_temp+FC_temp*FC_temp); - - - //¼ÆËã±£»¤µçÁ÷ - //±£»¤µçÁ÷=TÏßµçÁ÷I+FÏßµçÁ÷IF - //»ù²¨µçÁ÷ - //FS_temp=((float)ChannelValue[CH_ATBH_BH_I].YouXiaoZhi[JiBo].FS+(float)ChannelValue[CH_ATBH_BH_IF].YouXiaoZhi[JiBo].FS); - //FC_temp=((float)ChannelValue[CH_ATBH_BH_I].YouXiaoZhi[JiBo].FC+(float)ChannelValue[CH_ATBH_BH_IF].YouXiaoZhi[JiBo].FC); - //ATBH_BaoHu_I.Value=sqrt(FS_temp*FS_temp+FC_temp*FC_temp); - - //¼ÆËã²î¶¯µçÁ÷ - //¶Ï·Æ÷Á¬½Ó·½Ê½»ò¸ô¿ªÁ¬½Ó·½Ê½ÏÂGK0λÖò»ÎªºÏλ - //if(BREAKER_TYPE == ATBH_ATMode || (ISOLATOR_TYPE == ATBH_ATMode && ON != YaoXinStatus[ATBH_YAOXIN_GK0])) - if(BREAKER_TYPE == ATBH_ATMode || (ISOLATOR_TYPE == ATBH_ATMode && OFF == YaoXinStatus[ATBH_YAOXIN_GK0])) //modi by 20240520 LW - { - //ATÊDzÉÓöÏ·Æ÷½ÓÈë - //TÏß±£»¤µçÁ÷ - ATBH_BaoHu_IT.Value = ChannelValue[CH_ATBH_BH_I].YouXiaoZhi[JiBo].Analog.Value; - //²î¶¯µçÁ÷ - FS_temp=(float)ChannelValue[CH_ATBH_BH_I].YouXiaoZhi[JiBo].FS-(float)ChannelValue[CH_ATBH_BH_IF].YouXiaoZhi[JiBo].FS; - FC_temp=(float)ChannelValue[CH_ATBH_BH_I].YouXiaoZhi[JiBo].FC-(float)ChannelValue[CH_ATBH_BH_IF].YouXiaoZhi[JiBo].FC; - ChaDongValue.CDI.Value=sqrt(FS_temp*FS_temp+FC_temp*FC_temp); - //ÖÆ¶¯µçÁ÷ - FS_temp=((float)ChannelValue[CH_ATBH_BH_I].YouXiaoZhi[JiBo].FS+(float)ChannelValue[CH_ATBH_BH_IF].YouXiaoZhi[JiBo].FS)/2; - FC_temp=((float)ChannelValue[CH_ATBH_BH_I].YouXiaoZhi[JiBo].FC+(float)ChannelValue[CH_ATBH_BH_IF].YouXiaoZhi[JiBo].FC)/2; - ChaDongValue.ZDI.Value=sqrt(FS_temp*FS_temp+FC_temp*FC_temp); - //²î¶¯¶þ´Îг²¨µçÁ÷º¬Á¿ - FS_temp=(float)ChannelValue[CH_ATBH_BH_I].YouXiaoZhi[XieBo2].FS-(float)ChannelValue[CH_ATBH_BH_IF].YouXiaoZhi[XieBo2].FS; - FC_temp=(float)ChannelValue[CH_ATBH_BH_I].YouXiaoZhi[XieBo2].FC-(float)ChannelValue[CH_ATBH_BH_IF].YouXiaoZhi[XieBo2].FC; - - ATBH_ChaDong_I2.Value=sqrt(FS_temp*FS_temp+FC_temp*FC_temp); - - if(ChaDongValue.CDI.Value>ATBH_JD_I) - { - ATBH_ChaDong_I2.Value=ATBH_ChaDong_I2.Value/ChaDongValue.CDI.Value; - #ifdef IH_PERCENT_UNIT - ATBH_ChaDong_I2.Value *= PERCENT_UNIT_COEFFI; - #endif - } - else - { - ATBH_ChaDong_I2.Value=0; - } - } - else - { - - //²î¶¯µçÁ÷ - FS_temp_TCD = (float)ChannelValue[CH_ATBH_CD_IT].YouXiaoZhi[JiBo].FS + (float)ChannelValue[CH_ATBH_BH_I].YouXiaoZhi[JiBo].FS; - FC_temp_TCD = (float)ChannelValue[CH_ATBH_CD_IT].YouXiaoZhi[JiBo].FC + (float)ChannelValue[CH_ATBH_BH_I].YouXiaoZhi[JiBo].FC; - //TÏß±£»¤µçÁ÷ - ATBH_BaoHu_IT.Value = sqrt(FS_temp_TCD * FS_temp_TCD + FC_temp_TCD * FC_temp_TCD); - - FS_temp_FCD = (float)ChannelValue[CH_ATBH_CD_IF].YouXiaoZhi[JiBo].FS + (float)ChannelValue[CH_ATBH_BH_IF].YouXiaoZhi[JiBo].FS; - FC_temp_FCD = (float)ChannelValue[CH_ATBH_CD_IF].YouXiaoZhi[JiBo].FC + (float)ChannelValue[CH_ATBH_BH_IF].YouXiaoZhi[JiBo].FC; - - FS_temp = FS_temp_TCD - FS_temp_FCD; - FC_temp = FC_temp_TCD - FC_temp_FCD; - - ChaDongValue.CDI.Value=sqrt(FS_temp*FS_temp+FC_temp*FC_temp); - //ÖÆ¶¯µçÁ÷ - FS_temp = (FS_temp_TCD + FS_temp_FCD ) / 2; - FC_temp = (FC_temp_TCD + FC_temp_FCD ) / 2; - ChaDongValue.ZDI.Value=sqrt(FS_temp*FS_temp+FC_temp*FC_temp); - //²î¶¯¶þ´Îг²¨µçÁ÷º¬Á¿ - - FS_temp_TCD = (float)ChannelValue[CH_ATBH_CD_IT].YouXiaoZhi[XieBo2].FS + (float)ChannelValue[CH_ATBH_BH_I].YouXiaoZhi[XieBo2].FS; - FC_temp_TCD = (float)ChannelValue[CH_ATBH_CD_IT].YouXiaoZhi[XieBo2].FC + (float)ChannelValue[CH_ATBH_BH_I].YouXiaoZhi[XieBo2].FC; - - FS_temp_FCD = (float)ChannelValue[CH_ATBH_CD_IF].YouXiaoZhi[XieBo2].FS + (float)ChannelValue[CH_ATBH_BH_IF].YouXiaoZhi[XieBo2].FS; - FC_temp_FCD = (float)ChannelValue[CH_ATBH_CD_IF].YouXiaoZhi[XieBo2].FC + (float)ChannelValue[CH_ATBH_BH_IF].YouXiaoZhi[XieBo2].FC; - - FS_temp = FS_temp_TCD - FS_temp_FCD; - FC_temp = FC_temp_TCD - FC_temp_FCD; - ATBH_ChaDong_I2.Value=sqrt(FS_temp*FS_temp+FC_temp*FC_temp); - - if(ChaDongValue.CDI.Value>ATBH_JD_I) - { - ATBH_ChaDong_I2.Value=ATBH_ChaDong_I2.Value/ChaDongValue.CDI.Value; - - #ifdef IH_PERCENT_UNIT - ATBH_ChaDong_I2.Value *= PERCENT_UNIT_COEFFI; - #endif - } - else - { - ATBH_ChaDong_I2.Value=0; - } - } - - //֮ǰûÓвîÁ÷ - //ʶ±ð¿ÕͶ - currentflag = ATBH_JD_I < ChaDongValue.CDI.Value || ATBH_JD_I < ChaDongValue.ZDI.Value ; - -#if 0 - if(OFF == YaoXinStatus[ATBH_YAOXIN_QF] && currentflag) - { - if(0 == ATBH_I_Flag) - { - //´ÓÎÞÁ÷µ½ÓÐÁ÷ - ATBH_I_Flag = 1; - ATBH_I_Timer = 1; - } - } - else - { - //ÎÞÁ÷ - ATBH_I_Flag = 0; - } -#else - - Switch_status = ON; - - if(BREAKER_TYPE == ATBH_ATMode) - {//¶Ï·Æ÷½ÓÈ뷽ʽ - if(OFF == YaoXinStatus[ATBH_YAOXIN_QF]) - { - Switch_status = OFF; - } - } - else - {//¸ô¿ª½ÓÈë½ÓÈ뷽ʽ - if(OFF == YaoXinStatus[ATBH_YAOXIN_1QSDD_1QF]) - { - Switch_status = OFF; - } - else if(OFF != YaoXinStatus[ATBH_YAOXIN_GK0] && OFF == YaoXinStatus[ATBH_YAOXIN_2QSDD_2QF]) - { - Switch_status = OFF; - } - } - - if(OFF == Switch_status && currentflag) - { - if(0 == ATBH_I_Flag) - { - //´ÓÎÞÁ÷µ½ÓÐÁ÷ - ATBH_I_Flag = 1; - ATBH_I_Timer = 1; - } - } - else - { - //ÎÞÁ÷ - ATBH_I_Flag = 0; - } -#endif - - //µçѹ×î´óÖµ£¬ÓÃÓÚʧѹ - if(ChannelValue[CH_ATBH_UT].YouXiaoZhi[JiBo].Analog.Value >= ChannelValue[CH_ATBH_UF].YouXiaoZhi[JiBo].Analog.Value) - { - ATBH_Baohu_UMax = ChannelValue[CH_ATBH_UT].YouXiaoZhi[JiBo].Analog; - } - else - { - ATBH_Baohu_UMax = ChannelValue[CH_ATBH_UF].YouXiaoZhi[JiBo].Analog; - } - //¼ÆËãÔöÁ¿²î¶¯¡¢Öƶ¯µçÁ÷ - computedlldiff(ATBH_DLLDIFF_BIT); - /* - if(SaveFaultDataIP!=0) - { - SaveFaultDataIP++; - if(SaveFaultDataIP>= 3) - {//ÑÓʱ10ms¼Ç¼ - SaveFaultDataIP=0; - SaveFaultData(); - } - } - */ - #ifdef TEMPERATURE_ENABLE - //ζÈ1 - digital_getTemperature(CH_ATBH_WD1); - //ζÈ2 - digital_getTemperature(CH_ATBH_WD2); - #endif -} - -/************************************************************ - * void ComputeTemperature() - * ÃèÊö£º¼ÆËãÎÂ¶È - * ÀúÊ·£º - ************************************************************/ -void ComputeTemperature() -{ - #ifdef AD_TEMPERATURE_ENABLE - float I1,T1,K1; //ζÈ1 ζȻù×¼ µçÁ÷»ù×¼ ÇúÏßбÂÊ - float I2,T2,K2; //ζÈ2 ζȻù×¼ µçÁ÷»ù×¼ ÇúÏßбÂÊ - float Itemp1,Itemp2; - - I1=ATBH_WD1ISet; - T1=ATBH_WD1TSet; - K1=ATBH_WD1KSet; - I2=ATBH_WD2ISet; - T2=ATBH_WD2TSet; - K2=ATBH_WD2KSet; - //20150416 luoyang modi ζȲÉÑùµãÈ¡40µãƽ¾ùÖµ - //Itemp1=(float)ChannelValue[CH_ATBH_WD1].SampleValue_Digit[ChannelValue[CH_ATBH_WD1].FSCount]; - //Itemp2=(float)ChannelValue[CH_ATBH_WD2].SampleValue_Digit[ChannelValue[CH_ATBH_WD2].FSCount]; - if(WD_SOURCE_GSE != ChannelValue[CH_ATBH_WD1].source) - { - Itemp1 = SmpValueSet[CH_ATBH_WD1].averageValue; - ChannelValue[CH_ATBH_WD1].YouXiaoZhi[JiBo].Analog.Value=K1*(Itemp1-I1)+T1;//ζÈ1 - } - - if(WD_SOURCE_GSE != ChannelValue[CH_ATBH_WD2].source) - { - Itemp2 = SmpValueSet[CH_ATBH_WD2].averageValue; - ChannelValue[CH_ATBH_WD2].YouXiaoZhi[JiBo].Analog.Value=K2*(Itemp2-I2)+T2;//ζÈ2 - } - #endif -} - -//¼ìÓÐѹ¹¦ÄÜ£¬ÓÃÓÚÖØºÏÕ¢¼°×ÔͶ -void atbh_check_u() -{ - float setval; - - if(ATBH_YY_BIT & TempQiDongIP) - { - setval = ATBH_JYYSet.SetValue * COEFFI_RETURN_OVER; - } - else - { - setval = ATBH_JYYSet.SetValue; - } - - if(ATBH_Baohu_UMax.Value >= setval) - { - if(ATBH_checku_timer >= ATBH_JYYSet.Time) - { - TempQiDongIP |= ATBH_YY_BIT; - } - else - { - ATBH_checku_timer++; - } - } - else - { - ATBH_checku_timer = 0; - TempQiDongIP &= ~ATBH_YY_BIT; - } -} -//¼ì²¢Áª¸ô¿ªÎ»Öñ仯£¬ÓÃÓÚµ¥¿ª¹Ø²¢ÁªµÄ¼ìÓÐѹ×ÔͶ -void atbh_check_position_change() //¼ì²âλÖñ仯 -{ - CanShuType canshu; - canshu.Number=0; - static unsigned char RecordDlstatus = OFF; - - if(RecordDlstatus != YaoXinStatus[ATBH_YAOXIN_GK0]) - { - if(RecordDlstatus == ON) - {//±äλǰΪºÏλ - kcDelayTimer_11 = 1; - } - else - {//±äλǰΪ·Öλ - if(ON == YaoXinStatus[ATBH_YAOXIN_GK0]) - { - //kcDelayTimer_9 = 1; - kcDelayTimer_11 = 0; - } - } - RecordDlstatus = YaoXinStatus[ATBH_YAOXIN_GK0]; - - } - -} - -/******************************************************************** -* void Check_PTDX(void) -* ÃèÊö: PT¶ÏÏß¼ì²â -* ÀúÊ·: ´´½¨ÈÕÆÚ²»Ïê -* luoyang ÐÞ¸ÄÆô¶¯Åоݣ¬Ôö¼Ó¶Ô½Ø¶ÏµçÁ÷µÄÅÐ¶Ï -********************************************************************/ -void Check_PTDX(NoDirectProtectItemType *pPrtcUnit,char tvtype) -{ - CanShuType CanShuValue; - DataType *DataValue; - float U_setval,U_setval_l; - float uvalue; - - float ut,uf; - - DataValue = pPrtcUnit->MeasureValue; - CanShuValue.Number = 1; - CanShuValue.CSValue[0] = DataValue; - - //±ÕËø»òÕßÔª¼þÍ˳öʱ£¬Ôª¼þ·µ»Ø - if(pPrtcUnit->ClsDwnIP != 0 || pPrtcUnit->TouRuIP != BH_RUN) - { - //PT¶ÏÏßδͶÈë - *((unsigned int *)(pPrtcUnit->IPAddress)) &= (~pPrtcUnit->QiDongBit); //Çå³ýÆô¶¯±êÖ¾ - AlarmUnitActIP &= ~pPrtcUnit->QiDongBit; - pPrtcUnit->TimeValue = 0; //Çå³ý¼ÆÊ±Æ÷ - if(ON == YaoXinStatus[pPrtcUnit->YaoXinNumber] || TEST_END == pPrtcUnit->SoeRecordIP) - { - //PT¶ÏÏß½â³ýSOEʼþ¼Ç¼ - RecordSOE(pPrtcUnit->FanHuiCode,CanShuValue); - //RecordSoftYaoXin(pPrtcUnit->YaoXinNumber,OFF); //ÈíÒ£ÐżÇ¼ - pPrtcUnit->SoeRecordIP=TEST_START; - //RecordSoftYaoXin(pPrtcUnit->YaoXinNumber,OFF); //ÈíÒ£ÐżÇ¼ - - //printf("val3 = %f,val4 = %f,cls = %d\n",DataValue->Value,CanShuValue.CSValue[0]->Value,pPrtcUnit->ClsDwnIP); - } - - if(OFF != YaoXinStatus[pPrtcUnit->YaoXinNumber]) - { - RecordSoftYaoXin(pPrtcUnit->YaoXinNumber,OFF); //ÈíÒ£ÐżÇ¼ - } - return; - } - - if(0 == tvtype) - { - uvalue = ChannelValue[CH_ATBH_UF].YouXiaoZhi[JiBo].Analog.Value; - } - else - { - uvalue = ChannelValue[CH_ATBH_UT].YouXiaoZhi[JiBo].Analog.Value; - } - - if((*((unsigned int *)(pPrtcUnit->IPAddress))&pPrtcUnit->QiDongBit) != 0) - { - U_setval = ATBH_PTDXSet * COEFFI_RETURN_UNDER; - U_setval_l = ATBH_PTDXSet * COEFFI_RETURN_OVER; - } - else - { - U_setval = ATBH_PTDXSet; - U_setval_l = ATBH_PTDXSet; - } - - if(uvalue > U_setval_l && DataValue->Value <= U_setval) - { - //PT¶ÏÏß - *((unsigned int *)(pPrtcUnit->IPAddress))|=pPrtcUnit->QiDongBit; //ÉèÖÃÆô¶¯±êÖ¾ - if(pPrtcUnit->TimeValue > pPrtcUnit->SetTime) - { - AlarmUnitActIP |= pPrtcUnit->QiDongBit; - if(pPrtcUnit->SoeRecordIP==TEST_START) - {//PT¶ÏÏßSOEʼþ¼Ç¼ - RecordSOE(pPrtcUnit->QiDongCode,CanShuValue); - //RecordSoftYaoXin(pPrtcUnit->YaoXinNumber,ON); //ÈíÒ£ÐżÇ¼ - pPrtcUnit->SoeRecordIP=TEST_END; - //printf("val1 = %f,val2 = %f\n",DataValue->Value,CanShuValue.CSValue[0]->Value); - } - - if(ON != YaoXinStatus[pPrtcUnit->YaoXinNumber]) - { - RecordSoftYaoXin(pPrtcUnit->YaoXinNumber,ON); //ÈíÒ£ÐżÇ¼ - } - } - else pPrtcUnit->TimeValue+=2; //¼ÆÊ±Æ÷¼Ó2 - } - else - { - *((unsigned int *)(pPrtcUnit->IPAddress))&=(~pPrtcUnit->QiDongBit); //Çå³ýÆô¶¯±êÖ¾ - AlarmUnitActIP &= ~pPrtcUnit->QiDongBit; - pPrtcUnit->TimeValue=0; //Çå³ý¼ÆÊ±Æ÷ - if(pPrtcUnit->SoeRecordIP==TEST_END || ON == YaoXinStatus[pPrtcUnit->YaoXinNumber]) - { - //PT¶ÏÏß½â³ýSOEʼþ¼Ç¼ - RecordSOE(pPrtcUnit->FanHuiCode,CanShuValue); - //RecordSoftYaoXin(pPrtcUnit->YaoXinNumber,OFF); //ÈíÒ£ÐżÇ¼ - pPrtcUnit->SoeRecordIP=TEST_START; - - //printf("val1 = %f,val2 = %f\n",DataValue->Value,CanShuValue.CSValue[0]->Value); - } - - if(OFF != YaoXinStatus[pPrtcUnit->YaoXinNumber]) - { - RecordSoftYaoXin(pPrtcUnit->YaoXinNumber,OFF); //ÈíÒ£ÐżÇ¼ - } - } -} - -/*********************************************************** -* void Check_QDZT (void) -* ÃèÊö: ¼ì²âÆô¶¯×ÔͶÐźŠ-* ÀúÊ·: Æô¶¯×ÔͶÐźÅΪ·ÖµÄʱºò²ÅÄÜÏìÓ¦¸´¹é£¬ -* ¸´¹éʱÊÕ»ØÈíÒ£ÐÅ -***********************************************************/ -void Check_QDZT (void) -{ - static unsigned char ATBH_QDZT_KR_OLD_status = ON ; - if(ON == drv_GetInputStatus(ATBH_ZTTR_KR)&& BH_RUN == ATBH_SoftStrap_AtSwitch) - { - //ATBH_ZT_ENABLE = BH_RUN; - if(ON != YaoXinStatus[ATBH_YAOXIN_AT_SWITCH]) - { - RecordSoftYaoXin(ATBH_YAOXIN_AT_SWITCH,ON); - } - - } - else - { - //ATBH_ZT_ENABLE = BH_STOP; - - if(OFF != YaoXinStatus[ATBH_YAOXIN_AT_SWITCH]) - { - RecordSoftYaoXin(ATBH_YAOXIN_AT_SWITCH,OFF); - } - } - //1.×ÔͶ´¦ÓÚδ¶¯×÷״̬ - //2.Ӳѹ°å¼°Èíѹ°åÒÑͶÈë - //3.²¢Áª¸ô¿ª´¦ÓÚºÏλ - //4.AT´¦ÓÚÍ˳ö̬ - //5.ÓÐѹ - //6.ÎÞ±¾Ìå¹ÊÕϱêÖ¾(±¾Ìåδ¶¯×÷»ò¶¯×÷ºóÒѸ´¹é)20220331Ôö¼Ó - /*if(TEST_CLOSE == ZTDongZuoIP && - ON == YaoXinStatus[ATBH_YAOXIN_AT_SWITCH] && - (OFF != YaoXinStatus[ATBH_YAOXIN_GK0]) && 0 == BaoHuQiDongIP && - (ATBH_YY_BIT & TempQiDongIP) && - 0 == CheckPrtcFlag(ATBH_BTGZ_KC,0,0,ON))*/ - //modi by 20240521 LW ÐÞ¸Ä×ÔͶ¾ÍÐ÷ÅÐ¾Ý Óɲ»ÔÚ·ÖλÅжϸÄΪ£¨±¾²àÏß·ÓÐѹÇÒ²¢Áª¿ª¹Ø·Ö룩»ò²¢Áª¿ª¹Ø²»ÔÚ·Öλ - //1.×ÔͶ´¦ÓÚδ¶¯×÷״̬»ò¶¯×÷³É¹¦ - //2.Ӳѹ°å¼°Èíѹ°åÒÑͶÈë - //3.£¨±¾²àÏß·ÓÐѹÇÒ²¢Áª¿ª¹Ø·Ö룩»ò²¢Áª¿ª¹Ø²»ÔÚ·Öλ - //4.AT´¦ÓÚÍ˳ö̬ - //5.ÎÞ±¾Ìå¹ÊÕϱêÖ¾(±¾Ìåδ¶¯×÷»ò¶¯×÷ºóÒѸ´¹é)20220331Ôö¼Ó - if(TEST_CLOSE == ZTDongZuoIP && - ON == YaoXinStatus[ATBH_YAOXIN_AT_SWITCH] && - (BH_RUN != ATBH_SYYJ.TouRuIP || (BH_RUN == ATBH_SYYJ.TouRuIP && (ATBH_YY_BIT & TempQiDongIP))) && - (OFF == YaoXinStatus[ATBH_rmtsignal_run]) && - 0 == BaoHuQiDongIP && 0 == CheckPrtcFlag(ATBH_BTGZ_KC,0,0,ON)) - { - //×ÔͶ¾ÍÐ÷ - if(ON != YaoXinStatus[ATBH_YAOXIN_AT_SWITCH_RESET]) - { - RecordSoftYaoXin(ATBH_YAOXIN_AT_SWITCH_RESET,ON); - D_OUT(ATBH_ZTJX_LED_KC,ON); - } - //20210414 ͳһӲ¼þʱÐÞ¸ÄΪ×ÔͶ¾ù¼ìÓÐѹ - //if(ON == drv_GetInputStatus(ATBH_QDZT_KR) && OFF == YaoXinStatus[ATBH_rmtsignal_run] ) - if(ON == drv_GetInputStatus(ATBH_QDZT_KR) && (ATBH_QDZT_KR_OLD_status !=drv_GetInputStatus(ATBH_QDZT_KR)) ) - { - //ÓÐѹ - //if(ATBH_Baohu_UMax.Value >= ATBH_JYYSet.SetValue) - //{ - ZTDongZuoIP = TEST_START; //Æô¶¯×ÔͶ - //} - } - } - else - { - //×ÔͶ¾ÍÐ÷ - if(OFF != YaoXinStatus[ATBH_YAOXIN_AT_SWITCH_RESET]) - { - RecordSoftYaoXin(ATBH_YAOXIN_AT_SWITCH_RESET,OFF); - - D_OUT(ATBH_ZTJX_LED_KC,OFF); - } - } - ATBH_QDZT_KR_OLD_status = drv_GetInputStatus(ATBH_QDZT_KR); - #if 0 - switch(ZTDongZuoIP) - { - case TEST_CLOSE: //¿ÉÒÔ½øÐÐ×ÔͶ - if(BH_RUN == ATBH_ZT_ENABLE) - { - //×ÔͶ¾ÍÐ÷ - if(ON != YaoXinStatus[ATBH_YAOXIN_AT_SWITCH_RESET]) - { - RecordSoftYaoXin(ATBH_YAOXIN_AT_SWITCH_RESET,ON); - } - //20210414 ͳһӲ¼þʱÐÞ¸ÄΪ×ÔͶ¾ù¼ìÓÐѹ - if(ON == drv_GetInputStatus(ATBH_QDZT_KR)) - { - //ZTDongZuoIP = TEST_START; //Æô¶¯×ÔͶ - - //ÓÐѹ - if(ATBH_Baohu_UMax.Value >= ATBH_JYYSet.SetValue) - { - ZTDongZuoIP = TEST_START; //Æô¶¯×ÔͶ - } - } - /* - else if(ON == YaoXinStatus[ATBH_YAOXIN_JYYZT]) - { - //ÓÐѹ - if(BREAKER_TYPE == ATBH_ATMode && ATBH_Baohu_UMax.Value >= ATBH_JYYSet.SetValue) - { - ZTDongZuoIP = TEST_START; //Æô¶¯×ÔͶ - } - } - */ - } - break; - - case TEST_START: //´¦ÓÚ×ÔͶ״̬ - break; - - case TEST_END: //×ÔͶ½áÊø£¬µÈ´ý¸´¹é - break; - default: - break; - }//endcase - #endif - -} - -/*********************************************************** -* void Send_QDZT (void) -* ÃèÊö: Ïò¶Ô²à·¢Æô¶¯×ÔͶÐźŠ-* ÀúÊ·: -***********************************************************/ -void Send_QDZT(int start) -{ - //if(TEST_CLOSE != ZTDongZuoIP ) - if( TEST_CLOSE != ZTDongZuoIP || ZB_fristFaultIndex >= 2 ) - { - return; - } - if(kcDelayTimer_1==0) - { - if(!start) - { - if((BaoHuDongZuoIP & ATBH_QDZT_Mask) != 0) - { - //modi by 20240521 LW ²¢Áª¿ª¹Ø²»¶¨Ì¬µ±³ÉºÏλÅÐ¶Ï ²»ÔÚ·ÖλÇé¿öÏ·½ÄÜ·¢³ö×ÔͶÐźŠ- if(YaoXinStatus[ATBH_YAOXIN_GK0]!=OFF) - { - D_OUT(ATBH_CDJQ_KC,ON); - kcDelayTimer_1 = 1; - } - } - } - else - { - D_OUT(ATBH_CDJQ_KC,ON); - kcDelayTimer_1 = 1; - } - } - - /*if(((BaoHuDongZuoIP & ATBH_QDZT_Mask) != 0 || 0 != start)&&(kcDelayTimer_1==0)) - { - //modi by 20240520 LW ²¢Áª¿ª¹Ø²»¶¨Ì¬µ±³ÉºÏλÅÐ¶Ï ²»ÔÚ·ÖλÇé¿öÏ·½ÄÜ·¢³ö×ÔͶÐźŠ- if(YaoXinStatus[ATBH_YAOXIN_GK0]!=OFF) - { - D_OUT(ATBH_CDJQ_KC,ON); - kcDelayTimer_1 = 1; - } - - }*/ -} - -/***************************************************** - * void ChaDongProtect(void) - * ÃèÊö£º²î¶¯±£»¤¹¦ÄÜʵÏÖ£¬²î¶¯±£»¤µÄʵÏÖ·½Ê½ÓëATµÄ½ÓÈ뷽ʽÓÐ¹Ø - * ÀúÊ·£º´´½¨ÈÕÆÚ²»Ïê - * - *****************************************************/ -void ChaDongProtect(void) -{ - unsigned int blockbit = 0; - ATBH_CD_StartIP = 0; - static int chenckIP=0; - - CanShuType canshu; - canshu.Number=0; - - if(ATBH_ATMode==BREAKER_TYPE) - { - //ATÊDzÉÓöÏ·Æ÷½ÓÈ뷽ʽ - //DiffXieBo2Unit(&ATBH_XieBo2CDIYJ,1,BaoHuQiDongIP & (ATBH_CD_BIT | ATBH_DLLDIFF_BIT)); //±ÈÂʲ¶þ´Îг²¨±ÕËøÔª¼þ£¨²î¶¯£© - DiffXieBo2UnitPlus(&ATBH_XieBo2CDIYJ,1,BaoHuQiDongIP & (ATBH_CD_BIT | ATBH_DLLDIFF_BIT),ATBH_I_Timer); //±ÈÂʲ¶þ´Îг²¨±ÕËøÔª¼þ£¨²î¶¯£© - //DiffXieBo2Unit(&ATBH_XieBo2CDIYJ,1,1); //±ÈÂʲ¶þ´Îг²¨±ÕËøÔª¼þ£¨²î¶¯£© - UIProtectUnit(&ATBH_CDSDYJ,1,1); //²î¶¯ËÙ¶Ï - - //blockbit = DiffProtectUnit(&ATBH_CDYJ,ATBH_XieBoCDI2_BIT,NULL); //±ÈÂʲ - blockbit = DiffProtectUnit(&ATBH_CDYJ,ATBH_XieBoCDI2_BIT,&ATBH_CD_StartIP); //±ÈÂʲ - if(BH_RUN == ih_diff_alram_block) - { - blockbit |= DiffAlarmUnit(&ATBH_CLYXYJ,ATBH_XieBoCDI2_BIT,1); //²îÁ÷Ô½Ï޸澯 - } - else - { - DiffAlarmUnit(&ATBH_CLYXYJ,0,1); //²îÁ÷Ô½Ï޸澯 - } - blockbit |= DeltaDiffProtectUnitplus(&ATBH_DLLDIFFAYJ,ATBH_XieBoCDI2_BIT,&ATBH_CD_StartIP); //ÔöÁ¿²î¶¯ - } - else - { - //¸ôÀ뿪¹Ø½ÓÈ뷽ʽ - //ÈôATͶÈëÔËÐУ¬²ÅÓв±£»¤ - //if((YaoXinStatus[ATBH_rmtsignal_run]!=OFF)|| (BaoHuQiDongIP&(ATBH_CDSD_BIT|ATBH_CD_BIT | ATBH_DLLDIFF_BIT)) || ( TempQiDongIP & ATBH_CLYX_BIT ))// - if((YaoXinStatus[ATBH_rmtsignal_run]!=OFF)|| (BaoHuQiDongIP&(ATBH_CDSD_BIT|ATBH_CD_BIT | ATBH_DLLDIFF_BIT)) || (ATBH_CLYX_BIT & TempQiDongIP ))// - { - //DiffXieBo2Unit(&ATBH_XieBo2CDIYJ,1,BaoHuQiDongIP & (ATBH_CD_BIT | ATBH_DLLDIFF_BIT)); //²î¶¯¶þ´Îг²¨±ÕËøÔª¼þ£¨²î¶¯£© - DiffXieBo2UnitPlus(&ATBH_XieBo2CDIYJ,1,BaoHuQiDongIP & (ATBH_CD_BIT | ATBH_DLLDIFF_BIT),ATBH_I_Timer); //±ÈÂʲ¶þ´Îг²¨±ÕËøÔª¼þ£¨²î¶¯£© - UIProtectUnit(&ATBH_CDSDYJ,1,1); //²î¶¯ËÙ¶Ï - - //blockbit = DiffProtectUnit(&ATBH_CDYJ,ATBH_XieBoCDI2_BIT,NULL); //±ÈÂʲ - blockbit = DiffProtectUnit(&ATBH_CDYJ,ATBH_XieBoCDI2_BIT,&ATBH_CD_StartIP); //±ÈÂʲ - if(BH_RUN == ih_diff_alram_block) - { - blockbit |= DiffAlarmUnit(&ATBH_CLYXYJ,ATBH_XieBoCDI2_BIT,1); //²îÁ÷Ô½Ï޸澯 - } - else - { - DiffAlarmUnit(&ATBH_CLYXYJ,0,1); //²îÁ÷Ô½Ï޸澯 - } - blockbit |= DeltaDiffProtectUnitplus(&ATBH_DLLDIFFAYJ,ATBH_XieBoCDI2_BIT,&ATBH_CD_StartIP); //ÔöÁ¿²î¶¯ - } - } //endelse - hi_blcok_soe_record(&ATBH_XieBo2CDIYJ,blockbit); -} - -/********************************************************** - * void IProtectUnit(void) - * ÃèÊö£º¹ýÁ÷±£»¤Ôª¼þ¹¦ÄܵÄʵÏÖ - * ÀúÊ·£º´´½¨ÈÕÆÚ²»Ïê - * - **********************************************************/ -/* -void IProtectUnit(void) -{ - float SetValue; - CanShuType CanShuValue; - DataType *DataValue; - float TempValue; - unsigned char QiDongValue; - - - DataValue=ATBH_IYJ.MeasureValue; //È¡²âÁ¿Öµ - //ÉèÖòÎÊý - CanShuValue.Number = 1; - CanShuValue.CSValue[0]=DataValue; - - if(ATBH_IYJ.ClsDwnIP != 0 || (ATBH_IYJ.TouRuIP!=BH_RUN && ATBH_IYJ.TouRuIP != BH_TEST)) - { //±£»¤Ôª¼þδͶÈë - //Çå³ýÆô¶¯±êÖ¾ - *((unsigned int *)(ATBH_IYJ.IPAddress))&=~ATBH_IYJ.QiDongBit; - //Çå³ý¼ÆÊ±Æ÷ - ATBH_IYJ.TimeValue=0; - if(ATBH_IYJ.SoeRecordIP==TEST_END) - { - RecordSOE(ATBH_IYJ.FanHuiCode,CanShuValue); - ATBH_IYJ.SoeRecordIP=TEST_START; - } - return; - } - - //¼ì²â×ÛºÏг²¨ÒÖÖÆÔª¼þÊÇ·ñÆô¶¯ - if((TempQiDongIP&ATBH_XieBoSum_BIT)!=0){ - //×ÛºÏг²¨ÒÖÖÆ - if(DataValue->Value>=2*ATBH_IYJ.SetValue) - TempValue=DataValue->Value; //³¬¹ý¶¨ÖµÁ½±¶Ôò²»ÒÖÖÆ - else - TempValue=DataValue->Value*(1-ATBH_BaoHu_IE.Value*ATBH_XieBo_XiShu); - } - else - TempValue=DataValue->Value; //²»ÒÖÖÆ - //¼ì²âÔª¼þÊÇ·ñÒÑÆô¶¯ - if(((*((unsigned int *)ATBH_IYJ.IPAddress))&ATBH_IYJ.QiDongBit)!=0) SetValue=0.97*ATBH_IYJ.SetValue; //±£»¤Ôª¼þÒÑÆô¶¯£¬Õû¶¨Öµ*·µ»ØÏµÊý - else SetValue=ATBH_IYJ.SetValue; - if(TempValue>=SetValue) QiDongValue=1; //Æô¶¯ - else QiDongValue=0; //·µ»Ø - //¼ì²é¶þ´Îг²¨ÊÇ·ñÆô¶¯ - if((TempQiDongIP&ATBH_XieBoI2_BIT)!=0) QiDongValue=0; //¶þ´Îг²¨Æô¶¯£¬±ÕËø±£»¤ - if(((ATBH_DYYJ.TouRuIP==BH_RUN)||(ATBH_DYYJ.TouRuIP==BH_TEST))&&((TempQiDongIP&ATBH_LU_BIT)==0)) QiDongValue=0; //µÍѹÆô¶¯Ôª¼þδÆô¶¯£¬±ÕËø±£»¤ - - if(QiDongValue==1){ - //Æô¶¯ - *((unsigned int *)(ATBH_IYJ.IPAddress))|=ATBH_IYJ.QiDongBit; - //Æô¶¯¼ÆÊ±Æ÷ - if(ATBH_IYJ.TimeValue==0) ATBH_IYJ.TimeValue=1; - //Æô¶¯Ê¼þ¼Ç¼ - if(ATBH_IYJ.SoeRecordIP==TEST_START){ - RecordSOE(ATBH_IYJ.QiDongCode,CanShuValue); - ATBH_IYJ.SoeRecordIP=TEST_END; - } - } - else{ - //·µ»Ø - //Çå³ýÆô¶¯±êÖ¾ - *((unsigned int *)(ATBH_IYJ.IPAddress))&=(~ATBH_IYJ.QiDongBit); - //Çå³ý¼ÆÊ±Æ÷ - ATBH_IYJ.TimeValue=0; - //·µ»ØÊ¼þ¼Ç¼ - if(ATBH_IYJ.SoeRecordIP==TEST_END){ - RecordSOE(ATBH_IYJ.FanHuiCode,CanShuValue); - ATBH_IYJ.SoeRecordIP=TEST_START; - } - } -} -*/ -/********************************************************* - * void ATBH_FLDProtect(void) - * ÃèÊö£º·ÇµçÁ¿±£»¤¹¦ÄÜʵÏÖ - * ÀúÊ·£º´´½¨ÈÕÆÚ²»Ïê - **********************************************************/ -void ATBH_FLDProtect(void) -{ - //unsigned int Status; - - FDLProtectUnit_SWTRELA(&ATBH_ZWSYJ,ATBH_rmtsignal_run); //ÖØÍß˹Ԫ¼þ - FDLProtectUnit_SWTRELA(&ATBH_WD2YJ,ATBH_rmtsignal_run); //ζȢò¶ÎÔª¼þ - FDLProtectUnit_SWTRELA(&ATBH_YLSFYJ,ATBH_rmtsignal_run); //ѹÁ¦ÊÍ·ÅÔª¼þ z - FDLProtectUnit_SWTRELA(&ATBH_BYXHYJ,ATBH_rmtsignal_run); //±¸ÓÃÐźÅÔª¼þ z - //Status=0; - //if(!(BaoHuQiDongIP & (ATBH_ZWS_BIT | ATBH_WD1_BIT | ATBH_YLSF_BIT | ATBH_BAK_BIT))) - //{ - // BaoHuQiDongIP &= ~ATBH_FDL_BIT; - //} - - if (TZValue.IP != SUCCESS) - { - return; //ÔÚÌøÕ¢Ê§Áéʱ£¬±£»¤Ôª¼þ¶¯×÷ʱÏÞÅжϲ»Ö´ÐÐ - } - - //¼ì²â·ÇµçÁ¿±£»¤ÊÇ·ñÆô¶¯ - if(((*((unsigned int *)(ATBH_ZWSYJ.IPAddress)))&(ATBH_ZWSYJ.QiDongBit))!=0) - {//Æô¶¯ - if(ATBH_ZWSYJ.YaoXinRecordIP==TEST_START) - { - //if(RecordSoftYaoXin(ATBH_YAOXIN_ZWS,ON)==SUCCESS) - ATBH_ZWSYJ.YaoXinRecordIP=TEST_END; - TempBaoHuDongZuoIP |= ATBH_ZWS_BIT; //¼Ç¼±£»¤¸¨Öú¶¯×÷±êÖ¾×Ö - BaoHuDongZuoIP |= ATBH_ZWS_BIT; - if(BH_RUN == ATBH_nonui_prtc_trip) - { - BaoHuChuKouIP |= ATBH_ZWS_BIT; - } - } - //Status=1; - } - else - { - if(ATBH_ZWSYJ.YaoXinRecordIP==TEST_END) - { - ATBH_ZWSYJ.YaoXinRecordIP=TEST_START; - //RecordSoftYaoXin(ATBH_YAOXIN_ZWS,OFF); - } - //TempBaoHuDongZuoIP &= ~ATBH_ZWS_BIT; //¼Ç¼±£»¤¸¨Öú¶¯×÷±êÖ¾×Ö - } - - if(((*((unsigned int *)(ATBH_WD2YJ.IPAddress)))&(ATBH_WD2YJ.QiDongBit))!=0) - { - //Æô¶¯ - if(ATBH_WD2YJ.YaoXinRecordIP==TEST_START) - { - //if(RecordSoftYaoXin(ATBH_YAOXIN_WD2,ON)==SUCCESS) - ATBH_WD2YJ.YaoXinRecordIP=TEST_END; - TempBaoHuDongZuoIP|=ATBH_WD2_BIT; //¼Ç¼±£»¤¸¨Öú¶¯×÷±êÖ¾×Ö - BaoHuDongZuoIP|=ATBH_WD2_BIT; - //BaoHuQiDongIP|=ATBH_FDL_BIT; - - if(BH_RUN == ATBH_nonui_prtc_trip) - { - BaoHuChuKouIP |= ATBH_WD2_BIT; - } - } - //Status=1; - } - else - { - if(ATBH_WD2YJ.YaoXinRecordIP==TEST_END) - { - ATBH_WD2YJ.YaoXinRecordIP=TEST_START; - //RecordSoftYaoXin(ATBH_YAOXIN_WD2,OFF); - } - //TempBaoHuDongZuoIP &= ~ATBH_WD2_BIT; - } - - if(((*((unsigned int *)(ATBH_YLSFYJ.IPAddress)))&(ATBH_YLSFYJ.QiDongBit))!=0) - { - //Æô¶¯ - if(ATBH_YLSFYJ.YaoXinRecordIP==TEST_START) - { - //if(RecordSoftYaoXin(ATBH_YAOXIN_YLSF,ON)==SUCCESS) - ATBH_YLSFYJ.YaoXinRecordIP=TEST_END; - TempBaoHuDongZuoIP|=ATBH_YLSF_BIT; //¼Ç¼±£»¤¸¨Öú¶¯×÷±êÖ¾×Ö - BaoHuDongZuoIP |= ATBH_YLSF_BIT; - //BaoHuQiDongIP|=ATBH_FDL_BIT; - - if(BH_RUN == ATBH_nonui_prtc_trip) - { - BaoHuChuKouIP|=ATBH_YLSF_BIT; - } - } - //Status=1; - } - else - { - if(ATBH_YLSFYJ.YaoXinRecordIP==TEST_END) - { - ATBH_YLSFYJ.YaoXinRecordIP=TEST_START; - //RecordSoftYaoXin(ATBH_YAOXIN_YLSF,OFF); - } - //TempBaoHuDongZuoIP &= ~ATBH_YLSF_BIT; - } - - if(((*((unsigned int *)(ATBH_BYXHYJ.IPAddress)))&(ATBH_BYXHYJ.QiDongBit))!=0) - { - //Æô¶¯ - if(ATBH_BYXHYJ.YaoXinRecordIP==TEST_START) - { - //if(RecordSoftYaoXin(ATBH_YAOXIN_YLSF,ON)==SUCCESS) - ATBH_BYXHYJ.YaoXinRecordIP=TEST_END; - TempBaoHuDongZuoIP|=ATBH_BAK_BIT; //¼Ç¼±£»¤¸¨Öú¶¯×÷±êÖ¾×Ö - BaoHuDongZuoIP|=ATBH_BAK_BIT; - //BaoHuQiDongIP|=ATBH_FDL_BIT; - - if(BH_RUN == ATBH_nonui_prtc_trip) - { - BaoHuChuKouIP|=ATBH_BAK_BIT; - } - } - //Status=1; - } - else - { - if(ATBH_BYXHYJ.YaoXinRecordIP==TEST_END) - { - ATBH_BYXHYJ.YaoXinRecordIP=TEST_START; - //RecordSoftYaoXin(ATBH_YAOXIN_YLSF,OFF); - } - //TempBaoHuDongZuoIP &= ATBH_BAK_BIT; - } - - //if(Status==0) BaoHuQiDongIP&=~ATBH_FDL_BIT; - -} - -/* -void ATBH_FIAlarm() -{ - if(BREAKER_TYPE == ATBH_ATMode) - { - UIAlarmUnit(&ATBH_FIYJ,0,2); - } - else - { - UIAlarmUnit(&ATBH_FIYJ,ON != YaoXinStatus[ATBH_rmtsignal_run],2); - } -} -*/ -//·ÇµçÁ¿¸æ¾¯ -//20220705 È¡ÏûÅжÏλÖÃÐźŠmodi by L.Y. -void ATBH_FLDAlarm(void) -{ - CanShuType param; - param.Number = 0; - - //unsigned int isrun = 0; - - unsigned char fzjs; - int start; - //static int cls_reset_ip = 0;//ÖØºÏÕ¢³äµç±êÖ¾ - - //if(ON == YaoXinStatus[ATBH_rmtsignal_run]) - //{ - // isrun = 1; - //} - - //ÇáÍß˹ - if(ON == drv_GetInputStatus(ATBH_QWS_KR)) - { - if(!(TempQiDongIP & ATBH_QWS_BIT)) - { - TempQiDongIP |= ATBH_QWS_BIT; - AlarmUnitActIP |= ATBH_QWS_BIT; - RecordSOE(ATBH_QWS_GJ,param); - } - } - else if(TempQiDongIP & ATBH_QWS_BIT) - { - TempQiDongIP &= ~ATBH_QWS_BIT; - AlarmUnitActIP &= ~ATBH_QWS_BIT; - //RecordSOE(ATBH_QWS_GJ,param); - } - //ζÈ1¶Î - if(ON == drv_GetInputStatus(ATBH_WD1_KR)) - { - if(!(TempQiDongIP & ATBH_WD1_BIT)) - { - TempQiDongIP |= ATBH_WD1_BIT; - AlarmUnitActIP |= ATBH_WD1_BIT; - RecordSOE(ATBH_WD1_GJ,param); - } - } - else if(TempQiDongIP & ATBH_WD1_BIT) - { - TempQiDongIP &= ~ATBH_WD1_BIT; - AlarmUnitActIP &= ~ATBH_WD1_BIT; - //RecordSOE(ATBH_QWS_GJ,param); - } - //ÓÍλµÍ - if(ON == drv_GetInputStatus(ATBH_YWD_KR)) - { - if(!(TempQiDongIP & ATBH_YWD_BIT)) - { - TempQiDongIP |= ATBH_YWD_BIT; - AlarmUnitActIP |= ATBH_YWD_BIT; - RecordSOE(ATBH_YWD_GJ,param); - } - } - else if(TempQiDongIP & ATBH_YWD_BIT) - { - TempQiDongIP &= ~ATBH_YWD_BIT; - AlarmUnitActIP &= ~ATBH_YWD_BIT; - //RecordSOE(ATBH_QWS_GJ,param); - } - //ÓÍλ¸ß - if(ON == drv_GetInputStatus(ATBH_YWG_KR)) - { - if(!(TempQiDongIP & ATBH_YWG_BIT)) - { - TempQiDongIP |= ATBH_YWG_BIT; - AlarmUnitActIP |= ATBH_YWG_BIT; - RecordSOE(ATBH_YWG_GJ,param); - } - } - else if(TempQiDongIP & ATBH_YWG_BIT) - { - TempQiDongIP &= ~ATBH_YWG_BIT; - AlarmUnitActIP &= ~ATBH_YWG_BIT; - //RecordSOE(ATBH_QWS_GJ,param); - } - - if(BREAKER_TYPE == ATBH_ATMode) - { - start = check_dl_open_innormal(&ATBH_dl_open_innormal_param,2); - - if(ON == YaoXinStatus[ATBH_YAOXIN_DL_YCFZ]) - { - //Æð¶¯ÖغÏÕ¢ - if(BH_RUN == ATBH_YCFZ_CHZ_TuoRu && 0 == BaoHuQiDongIP && TZ_CLOSE == TZValue.Status && CHZ_CLOSE == CHZValue.Status && !(ATBH_YCFZ_BIT & AlarmUnitActIP)) - { - CHZValue.CHZTime = ATBH_CHZ_Time - 500; //Æô¶¯ÖغÏÕ¢ÑÓʱ¼ÆÊ±Æ÷ 500ms - CHZValue.Status = CHZ_START; //Æô¶¯ÖغÏÕ¢ - fristFaultIndex = FaultRecord.RecordIP; - } - - AlarmUnitActIP |= ATBH_YCFZ_BIT; - } - else - { - AlarmUnitActIP &= ~ATBH_YCFZ_BIT; - } - - fzjs = drv_GetInputStatus(ATBH_DL_FZJS_KR); - if(fzjs != YaoXinStatus[ATBH_YAOXIN_DL_FZJS]) - { - RecordSoftYaoXin(ATBH_YAOXIN_DL_FZJS,fzjs); - } - - //Òì³£·ÖÕ¢Æð¶¯ÖغÏÕ¢ - if(BH_RUN == ATBH_YCFZ_CHZ_TuoRu && 1 == start) - { - if(SUCCESS == CHZValue.ChongDianOK) - { - TempQiDongIP |= ATBH_CHZ_CDOK_BIT; - } - else - { - TempQiDongIP &= ~ATBH_CHZ_CDOK_BIT; - } - - } - } - else - { - if(ON == YaoXinStatus[ATBH_YAOXIN_DL_YCFZ]) - { - AlarmUnitActIP |= ATBH_YCFZ_BIT; - } - else - { - AlarmUnitActIP &= ~ATBH_YCFZ_BIT; - } - } - -} - - -/**************************************************** -* void TimerManage() -* ÃèÊö:¶¨Ê±Æ÷¹ÜÀí -* ÀúÊ·:´´½¨ÈÕÆÚ²»Ïê -*****************************************************/ -void TimerManage(void) -{ - static int temp = 0; - CanShuType CanShu; - CanShu.Number = 0; - int cls_do,open_do; - - //BHCount++; - MeasureSendDelay++; - - if(DelayTime!=0) DelayTime++; //ÑÓʱ¼ÆÊýÆ÷ - if(RemoteValue.DelayTime!=0) RemoteValue.DelayTime++; //Ò£¿Ø¼ÆÊ±Æ÷ - if(TZValue.DelayCount!=0) TZValue.DelayCount++; //ÌøÕ¢ÑÓʱ¼ÆÊýÆ÷ - if(QiDongTime!=0) QiDongTime++; - if(ChuanDongTest.TestDelay!=0) ChuanDongTest.TestDelay++; - - //¿ª³ö¼ÆÊ± - if(kcDelayTimer_0!=0) kcDelayTimer_0++; - if(kcDelayTimer_1!=0) kcDelayTimer_1++; - if(kcDelayTimer_2!=0) kcDelayTimer_2++; - if(kcDelayTimer_3!=0) kcDelayTimer_3++; - if(kcDelayTimer_4!=0) kcDelayTimer_4++; - if(kcDelayTimer_5!=0) kcDelayTimer_5++; - if(kcDelayTimer_6!=0) kcDelayTimer_6++; - if(kcDelayTimer_7!=0) kcDelayTimer_7++; - //if(kcDelayTimer_9!=0 && kcDelayTimer_9<=10000) kcDelayTimer_9++;//10ÒÔÄÚ - if(kcDelayTimer_10!=0) kcDelayTimer_10++; - if(kcDelayTimer_11!=0 && kcDelayTimer_11<=10000) kcDelayTimer_11++; - if(kcDelayTimer_12!=0) kcDelayTimer_12++; - - //×ÔͶ¿ª¹Ø¿ØÖƶ¨Ê±Æ÷ - - if(ATZT_TIMER != 0) ATZT_TIMER ++; - - - - if(ATBH_I_Timer != 0) - { - ATBH_I_Timer++; - //·ÀÖ¹Ó¿Á÷Ë¥¼õʱ¼ä¹ý³¤ - if(ATBH_I_Timer > 2000 && 0 == ATBH_CD_StartIP) - { - ATBH_I_Timer = 0; - } - } - //ÖØºÏÕ¢ÑÓʱ - if(CHZValue.CHZTime != 0) CHZValue.CHZTime++; //ÖØºÏբʱ¼ä - if(CHZValue.DelayCount != 0) CHZValue.DelayCount++; //ºÏÕ¢ÑÓʱ¼ÆÊýÆ÷ - - //½Ó¿Ú¼Ç¼¶¯×÷״̬ - WritePrtcFlagToInf(); - //¼ì²âÖØºÏÕ¢¶¯×÷ - CheckPrtcFlag(ATBH_CHZDZ_LED_KC,1,1,ON); - //CheckAnLedRecord(&CHZDZLEDObject,RECORD_ST_KEEP_TIME); - //¼ì²âÌøÕ¢¶¯×÷ - CheckPrtcFlag(ATBH_TZ_LED_KC,1,1,ON); - //CheckAnLedRecord(&TZLEDObjdect,RECORD_ST_KEEP_TIME); - - //¼ì²â×ÔͶ¶¯×÷ - //temp = CheckAnLedRecord(&ZTDZLEDObject,RECORD_ST_KEEP_TIME); - if(0 == temp) - { - temp = 1; - //³õʼ»¯Ê±¼ì²âµ½×ÔͶ¶¯×÷£¬¶¯×÷¹ý£¬Î´¸´¹é - if(1 == CheckPrtcFlag(ATBH_ZTDZ_LED_KC,1,1,ON)) - { - /*if(TEST_CLOSE == ZTDongZuoIP) - { - ZTDongZuoIP = TEST_END; - }*/ - //if(YaoXinStatus[ATBH_YAOXIN_ZT]!= ON) - //{ - //YaoXinStatus[ATBH_YAOXIN_ZT] = ON; - // RecordSoftYaoXin(ATBH_YAOXIN_ZT,ON); - //} - } - - if(1 == CheckPrtcFlag(ATBH_BTGZ_KC,0,0,ON)) - { - ZB_fristFaultIndex++; - } - - } - if(kcDelayTimer_6 >= 1000) - { - if(OFF != YaoXinStatus[ATBH_YAOXIN_CHZDZ]) - { - RecordSoftYaoXin(ATBH_YAOXIN_CHZDZ,OFF); - } - - kcDelayTimer_6 = 0; - } - if(ChuanDongTest.TestIP==TEST_CLOSE) //´«¶¯ÊµÑéδÍê³É²»²Ù×÷¼ÌµçÆ÷ - { - //¿ª³ö±£»¤ÌøÕ¢£¬²âÊÔ¶Ë×Ó - if(0 != BaoHuChuKouIP && 0 == ATBH_triptest_timer) - { - D_OUT(ATBH_TRIP_TEST_KC,ON); - ATBH_triptest_timer = 1; - } - - if(ATBH_triptest_timer > 0) - { - if(ATBH_triptest_timer > 100) - { - if(0 == BaoHuChuKouIP) - { - ATBH_triptest_timer = 0; - } - D_OUT(ATBH_TRIP_TEST_KC,OFF); - } - else - { - ATBH_triptest_timer++; - } - } - - if(kcDelayTimer_0>=SLKC_DELAY_TIME) - { - kcDelayTimer_0=0; - D_OUT(ATBH_SL_KC,OFF); //ÊջضÏ·Æ÷ʧÁ鿪³ö - } - - if(kcDelayTimer_5>=SLKC_DELAY_TIME) - { - kcDelayTimer_5=0; - D_OUT(ATBH_SL2_KC,OFF); //ÊջضÏ·Æ÷2ʧÁ鿪³ö - } - - if(kcDelayTimer_1>=500) - { - D_OUT(ATBH_CDJQ_KC,OFF); - kcDelayTimer_1=0; - } - - if(kcDelayTimer_7>=BHQDKC_DELAY_TIME) - { - D_OUT(ATBH_BHQD_KC,OFF); - kcDelayTimer_7=0; - } - - if(kcDelayTimer_2>=WITHDRAW_QFCTRL_MINTIME) - { - if(BCJ_OFF_IP == 1) - { - BCJ_OFF_IP = 0; - kcDelayTimer_2 = 0; - D_OUT(ATBH_BCJQ_KC,OFF); - } - } - if(kcDelayTimer_3>=WITHDRAW_QFCTRL_MINTIME) - { - if(BCJ1_OFF_IP == 1) - { - BCJ1_OFF_IP = 0; - kcDelayTimer_3 = 0; - D_OUT(ATBH_1QS_DD_1QF_TZ_KC,OFF); - } - } - if(kcDelayTimer_4>=WITHDRAW_QFCTRL_MINTIME) - {// - if(BCJ2_OFF_IP == 1) - { - BCJ2_OFF_IP = 0; - kcDelayTimer_4 = 0; - D_OUT(ATBH_2QS_DD_2QF_TZ_KC,OFF); - } - } - - //·Öλ¡¢ºÏλµÆ - #ifdef DEVICE_TYPE_CONVENTIONAL - if(BREAKER_TYPE == ATBH_ATMode) - { - cls_do = ATBH_QF_HW_KR; - open_do = ATBH_QF_FW_KR; - } - else - { - cls_do = ATBH_QS1_HW_KR; - open_do = ATBH_QS1_FW_KR; - } - if(ON == drv_GetInputStatus(cls_do)) - { - D_OUT(ATBH_QF_CLS_LED_DO,ON);//¶Ï·Æ÷ºÏλ - } - else - { - D_OUT(ATBH_QF_CLS_LED_DO,OFF);//¶Ï·Æ÷ºÏλ - } - if(ON == drv_GetInputStatus(open_do)) - { - D_OUT(ATBH_QF_OPEN_LED_DO,ON);//¶Ï·Æ÷·Öλ - } - else - { - D_OUT(ATBH_QF_OPEN_LED_DO,OFF);//¶Ï·Æ÷·Öλ - } - #else - if(ON == YaoXinStatus[ATBH_rmtsignal_run]) - { - D_OUT(KX_QF_CLS_LED_DO,ON);//¶Ï·Æ÷ºÏλ - D_OUT(KX_QF_OPEN_LED_DO,OFF);//¶Ï·Æ÷·Öλ - } - else - { - D_OUT(KX_QF_CLS_LED_DO,OFF);//¶Ï·Æ÷ºÏλ - D_OUT(KX_QF_OPEN_LED_DO,ON);//¶Ï·Æ÷·Öλ - } - - #endif - } - - //±£»¤Ôª¼þ¼ÆÊ±Æ÷¹ÜÀí - if(TZValue.IP!=SUCCESS) return; //ÔÚÌøÕ¢Ê§Áéʱ£¬±£»¤Ôª¼þ¶¯×÷ʱÏÞÅжϲ»Ö´ÐÐ - RecordChuKouSoe1(&ATBH_CDSDYJ,1); //²î¶¯ËÙ¶Ï - RecordChuKouSoe_CD(&ATBH_CDYJ); //±ÈÂʲ - RecordChuKouSoe1Plus(&ATBH_SYYJ,1); //ʧѹԪ¼þ - RecordChuKouSoe_CD(&ATBH_DLLDIFFAYJ); -} - -void CheckChongDianTime(void) -{ - //ÖØºÏÕ¢Èíѹ°åͶÈë - //20190610 L.Y. modi - if(BH_RUN == ATBH_SoftStrap_Reclse && ON == drv_GetInputStatus(ATBH_CHZTR_KR)) - { - ATBH_RECLS_ENABLE = BH_RUN; - if(ON != YaoXinStatus[ATBH_YAOXIN_RECLS]) - { - RecordSoftYaoXin(ATBH_YAOXIN_RECLS,ON); - } - } - else - { - ATBH_RECLS_ENABLE = BH_STOP; - - if(OFF != YaoXinStatus[ATBH_YAOXIN_RECLS]) - { - RecordSoftYaoXin(ATBH_YAOXIN_RECLS,OFF); - } - } - //¹¦ÄÜ˵Ã÷£ºÖغÏÕ¢³äµçʱ¼ä¼ì²â¡£ - if((YaoXinStatus[ATBH_YAOXIN_QF] == ON) && BH_RUN == ATBH_RECLS_ENABLE) - { - //¿ª¹ØÔÚºÏλÇÒÖØºÏբͶÈë - if(CHZValue.ChongDianTime < ATBH_CHZ_ChongDianTime) - { - CHZValue.ChongDianTime++; - - if(CHZValue.ChongDianTime >= ATBH_CHZ_ChongDianTime) - { - CHZValue.ChongDianOK = SUCCESS; - - if(ON != YaoXinStatus[ATBH_YAOXIN_CHZRSET]) - { - RecordSoftYaoXin(ATBH_YAOXIN_CHZRSET,ON); - } - //ÖØºÏÕ¢³äµçµÆ - if(ChuanDongTest.TestIP == TEST_CLOSE) - { - D_OUT(ATBH_CHZCD_LED_KC, ON); //ÁÁÖØºÏÕ¢³äµçָʾµÆ - } - } - else if(ChuanDongTest.TestIP == TEST_CLOSE) - { - if(((CHZValue.ChongDianTime / 1000) % 2) == 0) - { - D_OUT(ATBH_CHZCD_LED_KC, ON); //ÁÁÖØºÏÕ¢³äµçָʾµÆ - } - else - { - D_OUT(ATBH_CHZCD_LED_KC, OFF); //ÃðÖØºÏÕ¢³äµçָʾµÆ - } - } - } - } - else - { - if(SUCCESS == CHZValue.ChongDianOK) - { - CHZValue.ChongDianTime++; - //ÑÓʱ10ms - if(CHZValue.ChongDianTime >= (ATBH_CHZ_ChongDianTime + 10)) - { - CHZValue.ChongDianTime = 0; //¿ª¹Ø²»ÔÚºÏλ - - CHZValue.ChongDianOK = FAIL; - if(OFF != YaoXinStatus[ATBH_YAOXIN_CHZRSET]) - { - RecordSoftYaoXin(ATBH_YAOXIN_CHZRSET,OFF); - } - if(ChuanDongTest.TestIP == TEST_CLOSE) - { - D_OUT(ATBH_CHZCD_LED_KC, OFF); //ÃðÖØºÏÕ¢³äµçָʾµÆ - } - } - } - else - { - - CHZValue.ChongDianTime = 0; //¿ª¹Ø²»ÔÚºÏλ - - CHZValue.ChongDianOK = FAIL; - if(OFF != YaoXinStatus[ATBH_YAOXIN_CHZRSET]) - { - RecordSoftYaoXin(ATBH_YAOXIN_CHZRSET,OFF); - } - if(ChuanDongTest.TestIP == TEST_CLOSE) - { - D_OUT(ATBH_CHZCD_LED_KC, OFF); //ÃðÖØºÏÕ¢³äµçָʾµÆ - } - } - } -} - -void ClearTiaoZhaIP(void) -{ -//¹¦ÄÜ˵Ã÷£ºÇå³ýÌøÕ¢Ïà¹Ø±êÖ¾ - QiDongTime=0; //Çå³ý±£»¤Ôª¼þÆô¶¯Ê±¼ä - BaoHuDongZuoIP=0; //Çå³ý±£»¤Ôª¼þ¶¯×÷±êÖ¾ - //TempBaoHuDongZuoIP=0; //Çå³ý±£»¤Ôª¼þ¸¨Öú¶¯×÷±êÖ¾ - BaoHuChuKouIP=0; //Çå³ý±£»¤Ôª¼þ³ö¿Ú±êÖ¾ - ATBH_RecloseFlag = 0; - ATBH_CDSDYJ.ChuKouRecordIP=TEST_START; //²î¶¯ËÙ¶Ï - ATBH_CDYJ.ChuKouRecordIP=TEST_START; //±ÈÂʲ - ATBH_DLLDIFFAYJ.ChuKouRecordIP = TEST_START; //ÔöÁ¿²î¶¯ - //ATBH_SDIYJ.ChuKouRecordIP=TEST_START; //µçÁ÷ËÙ¶Ï - //ATBH_IYJ.ChuKouRecordIP=TEST_START; //¹ýµçÁ÷ - //ATBH_JDIYJ.ChuKouRecordIP=TEST_START; //Åö¿Ç±£»¤ - ATBH_SYYJ.ChuKouRecordIP=TEST_START; //ʧѹԪ¼þ - //ATBH_FI2YJ.ChuKouRecordIP=TEST_START; //¹ý¸ººÉ¢ò¶ÎÔª¼þ -} - -void RecordYaoXin(void) -{ -//¹¦ÄÜ˵Ã÷£º¼Ç¼±£»¤Ôª¼þ¶¯×÷ÈíÒ£ÐÅ - - if((BaoHuDongZuoIP&ATBH_CDSD_BIT)!=0) RecordSoftYaoXin(ATBH_YAOXIN_CDSD,OFF); //²î¶¯ËÙ¶Ï - if((BaoHuDongZuoIP&ATBH_CD_BIT)!=0) RecordSoftYaoXin(ATBH_YAOXIN_CD,OFF); //²î¶¯ - if((BaoHuDongZuoIP&ATBH_DLLDIFF_BIT)!=0) RecordSoftYaoXin(ATBH_YAOXIN_DLLDIFF,OFF); //ÔöÁ¿²î¶¯ - //if((BaoHuDongZuoIP&ATBH_SDI_BIT)!=0) RecordSoftYaoXin(ATBH_YAOXIN_SDI,OFF); //µçÁ÷ËÙ¶Ï - //if((BaoHuDongZuoIP&ATBH_I_BIT)!=0) RecordSoftYaoXin(ATBH_YAOXIN_I,OFF); //¹ýµçÁ÷ - //if((BaoHuDongZuoIP&ATBH_FI_BIT)!=0) RecordSoftYaoXin(ATBH_YAOXIN_FI2,OFF); //¹ý¸ººÉ - //if((BaoHuDongZuoIP&ATBH_JDI_BIT)!=0) RecordSoftYaoXin(ATBH_YAOXIN_JDI,OFF); //Åö¿Ç - if((BaoHuDongZuoIP&ATBH_SY_BIT)!=0) RecordSoftYaoXin(ATBH_YAOXIN_SY,OFF); //ʧѹ -} - -/*********************************************************** - * void SaveFault(void) - * ÃèÊö£º±£´æ¹ÊÕϱ¨¸æÊý¾Ý - * ÀúÊ·£º´´½¨ÈÕÆÚ²»Ïê - * - ***********************************************************/ -void SaveFault(int isFaultEnd) -{ - - unsigned char i,k; - FaultReportType *FaultReport = MemPtrSet.pFaultReport; - RecordYaoXin(); //¼Ç¼±£»¤Ôª¼þ¶¯×÷ÈíÒ£ÐÅ - - i=FaultRecord.RecordIP; - if(FaultRecord.Buffer[i].StatusIP!=TEST_START){ - //¹ÊÕϱ¨¸æ»º³åÇøÒÑÂú£¬·µ»Ø - ClearTiaoZhaIP(); //Çå³ýÌøÕ¢Ïà¹Ø±êÖ¾ - TZValue.FaultProcessEndIP=FAULT_END; //ÖùÊÕÏÌøÕ¢Íê³É±êÖ¾ - TZValue.DelayCount=0; //Çå³ýÌøÕ¢ÑÓʱ¼ÆÊýÆ÷ - return; - } - //¹ÊÕϱ¨¸æ¼Ç¼ - //¹ÊÕÏ·¢Éúʱ¼ä - //FaultReport->Buffer[i].FaultDate.Msecond=ATBH_Fault_Time.Msecond; //ºÁÃ룬2×Ö½Ú£¬·¶Î§£º0¡«59999 - //FaultReport->Buffer[i].FaultDate.Minute=ATBH_Fault_Time.Minute; //·Ö£¬1×Ö½Ú£¬·¶Î§£º0¡«59 - //FaultReport->Buffer[i].FaultDate.Hour=ATBH_Fault_Time.Hour; //Сʱ£¬1×Ö½Ú£¬·¶Î§£º0¡«23 - //FaultReport->Buffer[i].FaultDate.Date=ATBH_Fault_Time.Date; //ÈÕÆÚ£¬1×Ö½Ú£¬·¶Î§£º1¡«31 - //FaultReport->Buffer[i].FaultDate.Month=ATBH_Fault_Time.Month; //Ô£¬1×Ö½Ú£¬·¶Î§£º1¡«12 - //FaultReport->Buffer[i].FaultDate.Year=ATBH_Fault_Time.Year; //Ä꣬2×Ö½Ú£¬·¶Î§£º2000¡«2099 - FaultReport->Buffer[i].FaultDate = FaultRecord.Buffer[i].FaultDate; //¹ÊÕÏʱ¼ä - FaultReport->Buffer[i].WaveValue.LBTime = FaultReport->Buffer[i].FaultDate;//¼²¨½áÊø£¬¼Ç¼¼²¨Ê±¼ä,Óë¹ÊÕÏʱ¼äÏàͬ - - //¶Ï·Æ÷ºÅ - FaultReport->Buffer[i].DLQNo=ATBH_DLQNo; - //¶¯×÷±êÖ¾£¬2×Ö½Ú - FaultReport->Buffer[i].DongZuoIP=BaoHuDongZuoIP; - //ÖØºÏÕ¢±êÖ¾ - FaultReport->Buffer[i].ChongZha = ATBH_RecloseFlag; - //¹ÊÕϲÎÊý - k = 0; - //²ÎÊý1£ºTÏßµçѹ - FaultReport->Buffer[i].DataBuffer[k++].Value=ATBH_Fault_UT.Value; - //²ÎÊý2£ºFÏßµçѹ - FaultReport->Buffer[i].DataBuffer[k++].Value=ATBH_Fault_UF.Value; - //²ÎÊý3£ºTÏß±£»¤ÈÆ×é - FaultReport->Buffer[i].DataBuffer[k++].Value=ATBH_Fault_IT.Value; - //²ÎÊý4£ºFÏß±£»¤ÈÆ×é - FaultReport->Buffer[i].DataBuffer[k++].Value=ATBH_Fault_IF.Value; - if(ISOLATOR_TYPE == ATBH_ATMode) - { - //²ÎÊý5£ºTÏß²î¶¯ÈÆ×é - FaultReport->Buffer[i].DataBuffer[k++].Value=ATBH_Fault_CDIT.Value; - //²ÎÊý6£ºFÏß²î¶¯ÈÆ×é - FaultReport->Buffer[i].DataBuffer[k++].Value=ATBH_Fault_CDIF.Value; - } - //²ÎÊý7£º½ÓµØµçÁ÷ - //FaultReport->Buffer[i].DataBuffer[6].Value=ATBH_Fault_IJD.Value; - //²ÎÊý8£º²î¶¯µçÁ÷ - FaultReport->Buffer[i].DataBuffer[k++].Value=ATBH_Fault_ICD.Value; - //²ÎÊý9£ºÖƶ¯µçÁ÷ - FaultReport->Buffer[i].DataBuffer[k++].Value=ATBH_Fault_IZD.Value; - //²ÎÊý10£º±£»¤µçÁ÷¶þ´Îг²¨º¬Á¿ - //FaultReport->Buffer[i].DataBuffer[9].Value=ATBH_Fault_XB2I.Value; - //²ÎÊý11£º²î¶¯µçÁ÷¶þ´Îг²¨º¬Á¿ - FaultReport->Buffer[i].DataBuffer[k++].Value=ATBH_Fault_XB2ICD.Value; - - FaultReport->Buffer[i].HasWave=1;// - - TZValue.FaultProcessEndIP = FAULT_END; //ÖùÊÕÏÌøÕ¢Íê³É±êÖ¾ - - //Çå³ý±£»¤ÌøÕ¢Ïà¹Ø±êÖ¾ - ClearTiaoZhaIP(); - TZValue.DelayCount=0; //Çå³ýÌøÕ¢ÑÓʱ¼ÆÊýÆ÷ - - SetFaultEnd(); //ÉèÖùÊÕϼǼ½áÊø±êÖ¾ - //FaultRecord.Buffer[i].StatusIP=TEST_END; //ÉèÖùÊÕϱ¨¸æ¼Ç¼½áÊø±êÖ¾ - //SetFaultEnd(); //ÉèÖùÊÕϼǼ½áÊø±êÖ¾ - if(0 == isFaultEnd) - { - FaultRecord.Buffer[i].StatusIP = TEST_DELAY; //ÉèÖùÊÕϱ¨¸æ¼Ç¼»¹Î´´¦Àí½áÊø±êÖ¾ - } - else - { - FaultRecord.Buffer[i].StatusIP = TEST_END; //ÉèÖùÊÕϱ¨¸æ¼Ç¼½áÊø±êÖ¾ - } -} - - -/***************************************** - * void SaveFaultTime(void) - * ÃèÊö£º¼Ç¼¹ÊÕÏ·¢ÉúµÄʱ¼ä - * ÀúÊ·£º - *****************************************/ -void SaveFaultTime(void) -{ - //¹ÊÕÏ·¢Éúʱ¼ä - ATBH_Fault_Time.Msecond=Clock.Msecond; //ºÁÃ룬2×Ö½Ú£¬·¶Î§£º0¡«59999 - ATBH_Fault_Time.Minute=Clock.Minute; //·Ö£¬1×Ö½Ú£¬·¶Î§£º0¡«59 - ATBH_Fault_Time.Hour=Clock.Hour; //Сʱ£¬1×Ö½Ú£¬·¶Î§£º0¡«23 - ATBH_Fault_Time.Date=Clock.Date; //ÈÕÆÚ£¬1×Ö½Ú£¬·¶Î§£º1¡«31 - ATBH_Fault_Time.Month=Clock.Month; //Ô£¬1×Ö½Ú£¬·¶Î§£º1¡«12 - ATBH_Fault_Time.Year=Clock.Year; //Ä꣬2×Ö½Ú£¬·¶Î§£º2000¡«2099 -} - -/************************************************* - * void SaveFaultData(void) - * ÃèÊö£º¼Ç¼±£»¤¹ÊÕÏÊý¾Ý - * ÀúÊ·£º - ***********************************************/ -void SaveFaultData(void) -{ - - //¹ÊÕϵçѹ£¨TÏßµçѹ£© - ATBH_Fault_UT.Value=ChannelValue[CH_ATBH_UT].YouXiaoZhi[JiBo].Analog.Value; - //¹ÊÕϵçѹ£¨FÏßµçѹ£© - ATBH_Fault_UF.Value=ChannelValue[CH_ATBH_UF].YouXiaoZhi[JiBo].Analog.Value; - if(BREAKER_TYPE == ATBH_ATMode) - { - //¹ÊÕϵçÁ÷£¨TÏß±£»¤ÈÆ×飩 - ATBH_Fault_IT.Value=ChannelValue[CH_ATBH_BH_I].YouXiaoZhi[JiBo].Analog.Value; - //¹ÊÕϵçÁ÷£¨FÏß±£»¤ÈÆ×飩 - ATBH_Fault_IF.Value=ChannelValue[CH_ATBH_BH_IF].YouXiaoZhi[JiBo].Analog.Value; - } - else - { - //¹ÊÕϵçÁ÷£¨TÏß±£»¤ÈÆ×飩 - ATBH_Fault_IT.Value=ChannelValue[CH_ATBH_BH_I].YouXiaoZhi[JiBo].Analog.Value; - //¹ÊÕϵçÁ÷£¨FÏß±£»¤ÈÆ×飩 - ATBH_Fault_IF.Value=ChannelValue[CH_ATBH_BH_IF].YouXiaoZhi[JiBo].Analog.Value; - //¹ÊÕϵçÁ÷£¨¶Ô²àTÏß±£»¤ÈÆ×飩 - ATBH_Fault_CDIT.Value=ChannelValue[CH_ATBH_CD_IT].YouXiaoZhi[JiBo].Analog.Value; - //¹ÊÕϵçÁ÷£¨¶Ô²àFÏß±£»¤ÈÆ×飩 - ATBH_Fault_CDIF.Value=ChannelValue[CH_ATBH_CD_IF].YouXiaoZhi[JiBo].Analog.Value; - } - //¹ÊÕϵçÁ÷£¨TÏß²î¶¯ÈÆ×飩 - //ATBH_Fault_CDIT.Value=ChannelValue[CH_ATBH_CD_IT].YouXiaoZhi[JiBo].Analog.Value; - //¹ÊÕϵçÁ÷£¨FÏß²î¶¯ÈÆ×飩 - //ATBH_Fault_CDIF.Value=ChannelValue[CH_ATBH_CD_IF].YouXiaoZhi[JiBo].Analog.Value; - //¹ÊÕϵçÁ÷£¨½ÓµØµçÁ÷£© - //ATBH_Fault_IJD.Value=ChannelValue[CH_ATBH_JDI].YouXiaoZhi[JiBo].Analog.Value; - //¹ÊÕϵçÁ÷£¨²î¶¯µçÁ÷£© - ATBH_Fault_ICD.Value=ChaDongValue.CDI.Value; - //¹ÊÕϵçÁ÷£¨Öƶ¯µçÁ÷£© - ATBH_Fault_IZD.Value=ChaDongValue.ZDI.Value; - //¹ÊÕϵçÁ÷£¨±£»¤¶þ´Îг²¨º¬Á¿£© - //ATBH_Fault_XB2I.Value=ATBH_BaoHu_I2.Value; - //¹ÊÕϵçÁ÷£¨²î¶¯¶þ´Îг²¨º¬Á¿£© - ATBH_Fault_XB2ICD.Value=ATBH_ChaDong_I2.Value; - -} - -/**************************************************** - * void SetTiaoZha(void) - * ÃèÊö£º·¢±£»¤ÌøÕ¢ÃüÁî - * ÀúÊ·£º´´½¨ÈÕÆÚ²»Ïê - * - ****************************************************/ -void SetTiaoZha(void) -{ - unsigned int IP; - - IP = ATBH_FDL_BIT| ATBH_CDSD_BIT | ATBH_CD_BIT | ATBH_DLLDIFF_BIT; - - //ÅжÏAT½ÓÈ뷽ʽ - if(ATBH_ATMode==BREAKER_TYPE) - { - //¶Ï·Æ÷½ÓÈ뷽ʽ - if(0 != BaoHuChuKouIP) - { - Outlet_trip(ATBH_BCJQ_KC,ON); //·¢ÌøÕ¢ÃüÁî - } - kcDelayTimer_2 = 1; - D_OUT(ATBH_TZ_LED_KC,ON); //Çý¶¯ÌøÕ¢µÆ - - //AT±¾Éí¹ÊÕϲŷ¢Æô¶¯ÐźŠ- if(BaoHuQiDongIP & IP) - { - D_OUT(ATBH_BHQD_KC,ON); - kcDelayTimer_7 = 1; - } - } - else if((ATBH_ATMode==ISOLATOR_TYPE)&&(ATBH_LianJieMode==D_BREAKER_CONNECT)) - { - //ATÊǸôÀ뿪¹Ø½ÓÈ뷽ʽ£¬ÇÒΪ˫¶Ï·Æ÷²¢Áª - //ÏÈÌø²¢Áª¶Ï·Æ÷ - if(0 != BaoHuChuKouIP) - { - Outlet_trip(ATBH_1QS_DD_1QF_TZ_KC,ON); - } - //D_OUT(ATBH_1QS_TZ_KC,ON); //·¢²¢Áª¶Ï·Æ÷1ÌøÕ¢ÃüÁî - D_OUT(ATBH_TZ_LED_KC,ON); //Çý¶¯ÌøÕ¢µÆ - kcDelayTimer_3 = 1; - - //AT±¾Éí¹ÊÕϲŷ¢Æô¶¯ÐźŠ- if(BaoHuQiDongIP & IP) - { - D_OUT(ATBH_BHQD_KC,ON); - kcDelayTimer_7 = 1; - } - //if(YaoXinStatus[ATBH_YAOXIN_GK0]==ON) - //modi by 20240618 LW ²¢Áª¿ª¹Ø²»¶¨Ì¬µ±³ÉºÏλÅÐ¶Ï - if(YaoXinStatus[ATBH_YAOXIN_GK0]!=OFF) - { - //D_OUT(ATBH_2QS_TZ_KC,ON); //·¢²¢Áª¶Ï·Æ÷2ÌøÕ¢ÃüÁî - if(0 != BaoHuChuKouIP) - { - Outlet_trip(ATBH_2QS_DD_2QF_TZ_KC,ON); - } - kcDelayTimer_4 = 1; - } - TiaoZhaIP=TEST_START; - } - if(IP & BaoHuDongZuoIP) - { - //¼Ç¼±¾Ìå¹ÊÕÏ - RecordPrtcFlag(ATBH_BTGZ_KC,1,0,0,ON); - } -} - -/*************************************************************************************** - * unsigned int CheckFW(unsigned int FaultIP) - * ÃèÊö£º - * ÀúÊ·£º´´½¨Ê±¼ä²»Ïê - * - ***************************************************************************************/ -unsigned int CheckFW(unsigned int FaultIP,unsigned char *FzQFFailIP) -{ - unsigned int Key,ip = 0; - CanShuType CanShuValue; - DataType Data; - - CanShuValue.Number = 0; - - if(ATBH_ATMode==BREAKER_TYPE) - { - //¶Ï·Æ÷½ÓÈ뷽ʽ - if((YaoXinStatus[ATBH_YAOXIN_QF]==OFF)&&(FaultIP == 0) && 0 == check_breaker_err(&ATBH_Breaker_err_param[ATBH_BREAKER_1])) return SUCCESS; - return FAIL; - } - if((ATBH_ATMode==ISOLATOR_TYPE)&&(ATBH_LianJieMode==D_BREAKER_CONNECT)) - { - //ATÊǸôÀ뿪¹Ø½ÓÈ뷽ʽ£¬ÇÒΪ˫¶Ï·Æ÷²¢Áª - switch(TiaoZhaIP) - { - case TEST_START: - ip = check_breaker_err(&ATBH_Breaker_err_param[ATBH_BREAKER_1]); - //¼ì²â²¢Áª¶Ï·Æ÷ÊÇ·ñ´¦ÓÚ·Öλ - //if(YaoXinStatus[ATBH_YAOXIN_GK0]==ON) - //modi by 20240618 LW ²¢Áª¿ª¹Ø²»¶¨Ì¬µ±³ÉºÏλÅÐ¶Ï - if(YaoXinStatus[ATBH_YAOXIN_GK0]!=OFF) - { - ip += check_breaker_err(&ATBH_Breaker_err_param[ATBH_BREAKER_2]); - if((YaoXinStatus[ATBH_YAOXIN_1QSDD_1QF]==OFF)&&(YaoXinStatus[ATBH_YAOXIN_2QSDD_2QF]==OFF)) Key=1; - else Key=0; - } - else - { - if(YaoXinStatus[ATBH_YAOXIN_1QSDD_1QF]==OFF) Key=1; - else Key=0; - } - if((Key==1)&&(FaultIP == 0) && 0 == ip) - { - //²¢Áª¶Ï·Æ÷´¦ÓÚ·Ö룬·ÖAT¸ôÀ뿪¹Ø - if(0 != BaoHuChuKouIP) - { - Outlet_trip(ATBH_1QS_BHTZ_KC,ON); //·¢ÌøÕ¢ÃüÁî - } - - //#ifdef DEVICE_TYPE_DIGITAL - //D_OUT(ATBH_QF_TZ_KC,ON); //·¢ÌøÕ¢ÃüÁî20140227 luoyang ÐÞ¸ÄΪͨ¹ý¿ØÖÆÌøÕ¢ - //#endif - - if((kcDelayTimer_3 != 0)&&(kcDelayTimer_3 < WITHDRAW_QFCTRL_MINTIME)) BCJ1_OFF_IP = 1; - else - { - kcDelayTimer_3 = 0; - Outlet_trip(ATBH_1QS_DD_1QF_TZ_KC,OFF); //Êջز¢Áª¶Ï·Æ÷1ÌøÕ¢ÃüÁî - } - //if(YaoXinStatus[ATBH_YAOXIN_GK0]==ON) - //modi by 20240618 LW ²¢Áª¿ª¹Ø²»¶¨Ì¬µ±³ÉºÏλÅÐ¶Ï - if(YaoXinStatus[ATBH_YAOXIN_GK0]!=OFF) - { - if((kcDelayTimer_4 != 0)&&(kcDelayTimer_4 < WITHDRAW_QFCTRL_MINTIME)) BCJ2_OFF_IP = 1; - else - { - kcDelayTimer_4 = 0; - Outlet_trip(ATBH_2QS_DD_2QF_TZ_KC,OFF); //Êջز¢Áª¶Ï·Æ÷1ÌøÕ¢ÃüÁî - } - } - - TiaoZhaIP=TEST_END; - TZValue.DelayCount=1; //Æô¶¯ÌøÕ¢ÑÓʱ¼ÆÊ±Æ÷ - return FAIL; - } - - //Ìø¶Ï·Æ÷ʧ°Ü - if(TZValue.DelayCount>=ATBH_OperationTime) - { - //³¬Ê±ÅÐ¶Ï - //ÊÕ»ØÌøÕ¢ÃüÁî - /* - if((kcDelayTimer_3 != 0)&&(kcDelayTimer_3 < (WITHDRAW_QFCTRL_MINTIME*timeFrac[RatedFreq][0]/timeFrac[RatedFreq][1]))) BCJ1_OFF_IP = 1;// modi 110110/ modi 110129 - else - { - kcDelayTimer_3 = 0; - D_OUT(ATBH_1QS_TZ_KC,OFF); //Êջز¢Áª¶Ï·Æ÷1ÌøÕ¢ÃüÁî - } - - if(InPort.Status[ATBH_GK0_KR]==ON) - {// - if((kcDelayTimer_4 != 0)&&(kcDelayTimer_4 < (WITHDRAW_QFCTRL_MINTIME*timeFrac[RatedFreq][0]/timeFrac[RatedFreq][1]))) BCJ2_OFF_IP = 1;// modi 110129 - else - { - kcDelayTimer_4 = 0; - D_OUT(ATBH_2QS_TZ_KC,OFF); //Êջز¢Áª¶Ï·Æ÷1ÌøÕ¢ÃüÁî - } - } - */ - TiaoZhaIP = TEST_CLOSE; - //¿ª¹ØÎ´µ½Î» - if(1 != Key) - { - if(OFF != YaoXinStatus[ATBH_YAOXIN_1QSDD_1QF]) - { - RecordSOE(ATBH_TRIP1_ERROR,CanShuValue);//ÌøÕ¢»ØÂ·Òì³£¼Ç¼ - } - - //modi by 20240618 LW ²¢Áª¿ª¹Ø²»¶¨Ì¬µ±³ÉºÏλÅÐ¶Ï - //if(ON == YaoXinStatus[ATBH_YAOXIN_GK0] && OFF != YaoXinStatus[ATBH_YAOXIN_2QSDD_2QF]) - if(OFF != YaoXinStatus[ATBH_YAOXIN_GK0] && OFF != YaoXinStatus[ATBH_YAOXIN_2QSDD_2QF]) - { - RecordSOE(ATBH_TRIP2_ERROR,CanShuValue);//ÌøÕ¢»ØÂ·Òì³£¼Ç¼ - } - } - //¼ì²âʧÁé - if(0 != check_breaker_err(&ATBH_Breaker_err_param[ATBH_BREAKER_1])) - { - D_OUT(ATBH_SL_KC,ON); //¶Ï·Æ÷ʧÁ鿪³ö - RecordSOE(ATBH_DLQ1_ERROR,CanShuValue);//¶Ï·Æ÷ʧÁé - - if(kcDelayTimer_0==0) kcDelayTimer_0=1; - } - //if(ON == YaoXinStatus[ATBH_YAOXIN_GK0] && 0 != check_breaker_err(&ATBH_Breaker_err_param[ATBH_BREAKER_2])) - //modi by 20240618 LW ²¢Áª¿ª¹Ø²»¶¨Ì¬µ±³ÉºÏλÅÐ¶Ï - if(OFF != YaoXinStatus[ATBH_YAOXIN_GK0] && 0 != check_breaker_err(&ATBH_Breaker_err_param[ATBH_BREAKER_2])) - { - D_OUT(ATBH_SL2_KC,ON); //¶Ï·Æ÷ʧÁ鿪³ö - RecordSOE(ATBH_DLQ2_ERROR,CanShuValue);//¶Ï·Æ÷ʧÁé - if(kcDelayTimer_5==0) kcDelayTimer_5=1; - } - - if(NULL != FzQFFailIP) - { - *FzQFFailIP = TEST_START; - } - return SUCCESS; - } - break; - - case TEST_END: - //¼ì²âAT¸ôÀ뿪¹ØÊÇ·ñ´¦ÓÚ·Öλ - if(YaoXinStatus[ATBH_YAOXIN_1QS]==OFF) - { - //·ÖÕ¢³É¹¦ - Outlet_trip(ATBH_1QS_BHTZ_KC,OFF); //ÊÕ»ØAT¸ôÀ뿪¹ØÌøÕ¢ÃüÁî - - //#ifdef DEVICE_TYPE_DIGITAL - //D_OUT(ATBH_QF_TZ_KC,OFF); //·¢ÌøÕ¢ÃüÁî20140227 luoyang ÐÞ¸ÄΪͨ¹ý¿ØÖÆÌøÕ¢ - //#endif - - TiaoZhaIP=TEST_CLOSE; - //printf("here3"); - return SUCCESS; - } - if(TZValue.DelayCount>=ATBH_QSOperationTime) - { - //³¬Ê±ÅÐ¶Ï - //ÊÕ»ØÌøÕ¢ÃüÁî - RecordSOE(ATBH_QS_TRIP_FAIL,CanShuValue); - Outlet_trip(ATBH_1QS_BHTZ_KC,OFF); //ÊÕ»ØAT¸ôÀ뿪¹ØÌøÕ¢ÃüÁî - if(NULL != FzQFFailIP) - { - *FzQFFailIP = TEST_START; - } - //#ifdef DEVICE_TYPE_DIGITAL - //D_OUT(ATBH_QF_TZ_KC,OFF); //·¢ÌøÕ¢ÃüÁî20140227 luoyang ÐÞ¸ÄΪͨ¹ý¿ØÖÆÌøÕ¢ - //#endif - TiaoZhaIP=TEST_CLOSE; - //printf("here4"); - return SUCCESS; - } - break; - - case TEST_CLOSE: - - if(YaoXinStatus[ATBH_YAOXIN_1QS]==OFF) return SUCCESS; - else return FAIL; - - default: - TiaoZhaIP=TEST_CLOSE; - return FAIL; - }//endcase - return FAIL; - } - return FAIL; -} - -/****************************************************************************** -* Function: record_firstfault_end_soe -* Description:¼Ç¼µÚÒ»´Î¹ÊÕϱ¨¸æ½áÊøÊ¼þ -* Calls: none -* Called By: -* Input: -* Ouput: -* Return: -* others: -* History: -* 1.luoyang created 20210220 -* -*******************************************************************************/ -static void record_firstfault_end_soe() -{ - if(0 == BaoHuQiDongIP) - { - //FaultRecord.Buffer[fristFaultIndex].SOE_EndIP = MemPtrSet.pSoeBuf->WriteIP; - FaultRecord.Buffer[fristFaultIndex].SOE_EndIP = get_protect_soe_write_ip(); - } -} -void record_reclose_soe(void) -{ - if(TZ_CLOSE != TZValue.Status || CHZ_CLOSE == CHZValue.Status) - { - return; //ÌøÕ¢Î´Íê³É£¬²»½øÐÐÖØºÏÕ¢ - } - - switch(CHZValue.Status) - { - //ÖØºÏբ״̬ - case CHZ_START: - case CHZ_CHECK_DELAY: //¼ì²âÖØºÏÕ¢ÑÓʱ - case CHZ_SEND_COMMAND: //·¢ºÏÕ¢ÃüÁî - case CHZ_CHECK_HW: //¼ì²âºÏλ - case CHZ_RESET: //Ò»´ÎÖØºÏÕ¢½áÊø - record_firstfault_end_soe(); - break; - }//endcase - -} - -/***************************************************************************** -* void SetRecloseEnd(void) -* ÃèÊö: ÉèÖÃÖØºÏÕ¢½áÊø -* ÀúÊ·: 20180806 -******************************************************************************/ -void SetRecloseEnd(void) -{ - FaultReportType *pFaultReport = MemPtrSet.pFaultReport; - - //µÚÒ»´Î±¨¸æ»¹Î´ËͽӿڼǼ - if(TEST_DELAY == FaultRecord.Buffer[fristFaultIndex].StatusIP) - { - //¿½±´ÖغÏÕ¢±êÖ¾ - if(0 != ATBH_RecloseFlag) - { - pFaultReport->Buffer[fristFaultIndex].ChongZha = ATBH_RecloseFlag; - } - - record_firstfault_end_soe(); - - FaultRecord.Buffer[fristFaultIndex].StatusIP = TEST_END; - //QiDongZiTou(pFaultReport->Buffer[fristFaultIndex].DongZuoIP | BaoHuDongZuoIP); - } - - //Ö»Óкó¼ÓËÙ³ö¿Ú²Å¼Ç¼µÚ¶þ´Î±¨¸æ - //if(ATBH_ACC_BIT & BaoHuDongZuoIP) - //{ - //ÖØºÏբʧ°Ü£¬¼Ç¼µÚ¶þ´Î¹ÊÕϱ¨¸æ - // SaveFault(1); - //} - - //ÔÙ´ÎÇ嶯×÷±êÖ¾ - //BaoHuDongZuoIP = 0; - -} -/*********************************************************** - * void FaultProcess(void) - * ÃèÊö£º¼ì²âÔª¼þ³ö¿Ú£¬½â¾ö·ÇµçÁ¿¸úµçÁ¿±£»¤Í¬Ê±²úÉúµÄÇé¿ö - * ÀúÊ·£º20220114 L.Y.´´½¨ - - ***********************************************************/ -void check_prtc_outlet() -{ - CanShuType Value; - if(TZ_CHECK_FW != TZValue.Status) - { - return; - } - if(0 == TempBaoHuChuKouIP && 0 != BaoHuChuKouIP) - { - SetTiaoZha(); //·¢ÌøÕ¢ÃüÁî - Value.Number = 0; - RecordSOE(BH_CK,Value); //±£»¤³ö¿Úʼþ¼Ç¼ - //ÖØÐ¼Ç¼¹ÊÕϲÎÊý - SaveFaultData(); //±£´æ¹ÊÕÏÊý¾Ý - TZValue.DelayCount=1; //Æô¶¯ÌøÕ¢ÑÓʱ¼ÆÊ±Æ÷ - TZValue.Status=TZ_CHECK_FW; - CHZValue.CHZTime = 1; //Æô¶¯ÖغÏÕ¢ÑÓʱ¼ÆÊ±Æ÷ - TempBaoHuChuKouIP = BaoHuChuKouIP; - } -} -/*********************************************************** - * void FaultProcess(void) - * ÃèÊö£ºÍê³É¹ÊÕÏÌøÕ¢¹¦ÄÜ - * ÀúÊ·£º´´½¨Ê±¼ä²»Ïê - - ***********************************************************/ -void FaultProcess(void) -{ - CanShuType Value; - int IP; - unsigned char FZQFFailIP = TEST_CLOSE; - unsigned int operationTimeOut; - static int ZB_fault_QDIP = 0; - static int ZB_first_faultIP = ON; - - ZB_fault_QDIP = BaoHuQiDongIP & (ATBH_FDL_BIT|ATBH_CDSD_BIT|ATBH_CD_BIT|ATBH_DLLDIFF_BIT); - - if(0==ZB_fault_QDIP && ZB_first_faultIP == OFF) - { - ZB_first_faultIP = ON; - } - - if(CHZValue.Status != CHZ_CLOSE) return; //ÔÚÖØºÏÕ¢¹ý³ÌÖУ¬·µ»Ø - Value.Number=0; - switch(TZValue.Status) - { - case TZ_START: //¿ªÊ¼ÌøÕ¢£¬·¢ÌøÕ¢ÃüÁî - //¼ì²â±£»¤Ôª¼þÊÇ·ñ¶¯×÷ - if(BaoHuDongZuoIP!=0) - { - //printf("·ÖλÑÓʱ %d,ÌøÕ¢Ç°±ä³ÉºÏλʱ¼ä%d\n",kcDelayTimer_11,kcDelayTimer_9); - if( ((BaoHuDongZuoIP & ATBH_SY_BIT)==ATBH_SY_BIT) && ( kcDelayTimer_11<2000 )) - {//Ê§Ñ¹ÌøÕ¢Ç°2s²¢Áª¿ª¹Ø´¦ÓÚºÏ룬ÔÊÐí·¢³ö¼ìÓÐÑ¹ÖØºÏբʧ°ÜºóµÄ±¸×ÔͶ 2024618 add by L.W. - ZB_SYZT_able=ON; - } - else - { - ZB_SYZT_able=OFF; - } - - if(CHZValue.ChongDianOK == SUCCESS) - { - TempQiDongIP |= ATBH_CHZ_CDOK_BIT; //ÖØºÏÕ¢³äµç³É¹¦ - } - else - { - TempQiDongIP &= (~ATBH_CHZ_CDOK_BIT); //ÖØºÏÕ¢³äµçʧ°Ü - } - //Óб£»¤Ôª¼þ¶¯×÷ - //if(QiDongTime < 10) - //{ - // SaveFaultDataIP=1; - //SaveFaultTime(); - //SaveFaultData(); - //} - //else - //{ - //SaveFaultTime(); - SaveFaultData(); //±£´æ¹ÊÕÏÊý¾Ý - //} - - SetTiaoZha(); //·¢ÌøÕ¢ÃüÁî - if(BaoHuChuKouIP != 0) - { - RecordSOE(BH_CK,Value); //±£»¤³ö¿Úʼþ¼Ç¼ - } - TZValue.DelayCount=1; //Æô¶¯ÌøÕ¢ÑÓʱ¼ÆÊ±Æ÷ - TZValue.Status=TZ_CHECK_FW; - CHZValue.CHZTime = 1; //Æô¶¯ÖغÏÕ¢ÑÓʱ¼ÆÊ±Æ÷ - TempBaoHuChuKouIP = BaoHuChuKouIP; - } - break; - - case TZ_CHECK_FW: //¼ì²â·Öλ - check_prtc_outlet(); //¼ì²â³ö¿Ú 20220114 added by L.Y. - IP = ~ATBH_FDL_BIT; - - if(CheckFW(BaoHuQiDongIP&IP,&FZQFFailIP)==SUCCESS && TEST_CLOSE == FZQFFailIP) - { - //¶Ï·Æ÷´¦ÓÚ·Ö룬²¢ÇÒ¹ÊÕÏÏûʧ - TZValue.IP=SUCCESS; //ÌøÕ¢³É¹¦ - TZValue.Status=TZ_RESET; //ÌøÕ¢½áÊø - if(ATBH_ATMode==BREAKER_TYPE) - { - if((kcDelayTimer_2 != 0)&&(kcDelayTimer_2 < WITHDRAW_QFCTRL_MINTIME)) BCJ_OFF_IP = 1; - else - { - kcDelayTimer_2 = 0; - Outlet_trip(ATBH_BCJQ_KC,OFF); //¶Ï·Æ÷½ÓÈ뷽ʽ,ÊÕ»ØÌøÕ¢ÃüÁî - } - } - if(ON == ZB_first_faultIP) - { - Send_QDZT(0); - ZB_first_faultIP = OFF; - } - BaoHuDongZuoFailIP = BaoHuDongZuoIP; //¼Ç¼×îºóµÄ¶¯×÷±êÖ¾£¬ÎªÖغÏբǰµÄÅÐ¶Ï - return; - - } - - if(ATBH_ATMode == BREAKER_TYPE) operationTimeOut=ATBH_OperationTime; - else operationTimeOut = ATBH_QSOperationTime+ATBH_OperationTime; - - if(TZValue.DelayCount > operationTimeOut || TEST_START == FZQFFailIP) - { - //ÌøÕ¢³¬Ê± - TZValue.IP=FAIL; //ÌøÕ¢Ê§°Ü - #if 0 - if((ATBH_ATMode==ISOLATOR_TYPE)&&(ATBH_LianJieMode==D_BREAKER_CONNECT)) - { - D_OUT(ATBH_1QS_TZ_KC,ON); //·¢²¢Áª¶Ï·Æ÷1ÌøÕ¢ÃüÁî - kcDelayTimer_3 = 1; - BCJ1_OFF_IP = 0; - if(InPort.Status[ATBH_GK0_KR]==ON) - { - D_OUT(ATBH_2QS_TZ_KC,ON); //·¢²¢Áª¶Ï·Æ÷2ÌøÕ¢ÃüÁî - kcDelayTimer_4 = 1; - BCJ2_OFF_IP = 0; - } - } - #endif - /*if(ATBH_ATMode==BREAKER_TYPE) - { - if((kcDelayTimer_2 != 0)&&(kcDelayTimer_2 < (WITHDRAW_QFCTRL_MINTIME*timeFrac[RatedFreq][0]/timeFrac[RatedFreq][1]))) BCJ_OFF_IP = 1;// modi 110129 - else - { - kcDelayTimer_2 = 0; - D_OUT(ATBH_BCJQ_KC,OFF); //¶Ï·Æ÷½ÓÈ뷽ʽ,ÊÕ»ØÌøÕ¢ÃüÁî - } - }*/ - /*20140605 luoyang modi - D_OUT(ATBH_SL_KC,ON); //¶Ï·Æ÷ʧÁ鿪³ö - RecordSOE(ATBH_DLQ_ERROR,Value);//¶Ï·Æ÷ʧÁé - if(kcDelayTimer_0==0) kcDelayTimer_0=1; - //RecordSOE(TZ_ERROR,Value); //ÌøÕ¢»ØÂ·Òì³£¼Ç¼ - */ - if(ATBH_ATMode==BREAKER_TYPE) - { - if(0 != check_breaker_err(&ATBH_Breaker_err_param[ATBH_BREAKER_1])) - { - D_OUT(ATBH_SL_KC,ON); //¶Ï·Æ÷ʧÁ鿪³ö - RecordSOE(ATBH_DLQ_ERROR,Value);//¶Ï·Æ÷ʧÁé - if(kcDelayTimer_0==0) kcDelayTimer_0=1; - } - if(OFF != YaoXinStatus[ATBH_YAOXIN_QF]) - { - RecordSOE(ATBH_TRIP_ERROR,Value); //ÌøÕ¢»ØÂ·Òì³£¼Ç¼ - } - } - TZValue.DelayCount=0; //Çå³ýÌøÕ¢ÑÓʱ¼ÆÊ±Æ÷ - TZValue.Status=TZ_CLOSE; //¹Ø±ÕÌøÕ¢ÃüÁî - //printf("here1"); - ATBH_RecloseFlag = RECLS_STATUS_UNSTART; - ZB_SYZT_able = OFF ; - SaveFault(1); //¹ÊÕϱ¨¸æ¼Ç¼½áÊø,±£´æ¹ÊÕϱ¨¸æ - return; - } - break; - - case TZ_RESET: //ÌøÕ¢½áÊø - TZValue.Status=TZ_CLOSE; //¹Ø±ÕÌøÕ¢ÃüÁî - TZValue.DelayCount=0; //Çå³ýÌøÕ¢ÑÓʱ¼ÆÊ±Æ÷ - - if(BREAKER_TYPE == ATBH_ATMode && ATBH_SY_BIT == BaoHuDongZuoFailIP) - { - BaoHuDongZuoFailIP = 0; - CHZValue.Status = CHZ_START; //Æô¶¯ÖغÏÕ¢ - //CHZValue.CHZTime = 1; //Æô¶¯ÖغÏÕ¢ÑÓʱ¼ÆÊ±Æ÷ - fristFaultIndex = FaultRecord.RecordIP; //±£´æµÚÒ»´Î¹ÊÕÏË÷Òý20180806 - SaveFault(0); - } - else - { - //¸ô¿ª½ÓÈë»ò²»ÊÇÊ§Ñ¹ÌøÕ¢£¬ÎÞÖØºÏÕ¢ - ATBH_RecloseFlag = RECLS_STATUS_UNSTART; - SaveFault(1); //¹ÊÕϱ¨¸æ¼Ç¼½áÊø,±£´æ¹ÊÕϱ¨¸æ - } - /* - TZValue.Status = TZ_CLOSE; //¹Ø±ÕÌøÕ¢ÃüÁî - //½öÊ§Ñ¹ÌøÕ¢£¬Æô¶¯ÖغÏÕ¢ - if(ATBH_SY_BIT == (BaoHuDongZuoFailIP & ATBH_SY_BIT)) - { - //·ÇµçÁ¿±£»¤Ã»Æô¶¯µÄǰÌáϲŻáÆô¶¯ÖغÏÕ¢ - BaoHuDongZuoFailIP = 0; - CHZValue.Status = CHZ_START; //Æô¶¯ÖغÏÕ¢ - - fristFaultIndex = FaultRecord.RecordIP; //±£´æµÚÒ»´Î¹ÊÕÏË÷Òý20180806 - SaveFault(0); - } - else - { - //BaoHuDongZuoIP |= KX_NO_CHZ_BIT; //20180806 ÖÃÎÞÖØºÏÕ¢±êÖ¾ - KX_RecloseFlag = RECLS_STATUS_UNSTART; - QiDongZiTou(BaoHuDongZuoIP); - SaveFault(1); //¹ÊÕϱ¨¸æ¼Ç¼½áÊø,±£´æ¹ÊÕϱ¨¸æ - - } - */ - break; - - }//end of switch - -} - -/***************************************************************************** -* void ChongHeZha(void) -* ÃèÊö: ʵÏÖÖØºÏÕ¢¹¦ÄÜ -* ÀúÊ·: ´´½¨ÈÕÆÚ²»Ïê -******************************************************************************/ -void ChongHeZha(void) -{ - CanShuType Value; - - if(TZValue.Status != TZ_CLOSE) return; //ÌøÕ¢Î´Íê³É£¬²»½øÐÐÖØºÏÕ¢ - - /* - if(CHZValue.ClsDwnIP != 0) - { - //·¢ÉúÄ£ÄâÁ¿Í¨µÀ²»Á¼ - switch(CHZValue.Status) - { - case CHZ_START: - CHZValue.Status = CHZ_RESET; - break; - - case CHZ_CHECK_DELAY: - CHZValue.CHZTime = 0; //Çå³ýÖØºÏÕ¢ÑÓʱ - CHZValue.Status = CHZ_RESET; - break; - - case CHZ_SEND_COMMAND: - D_OUT(ATBH_HCJ_KC, OFF); //ÊջغÏÕ¢ÃüÁî - CHZValue.Status = CHZ_RESET; - break; - - case CHZ_CHECK_HW: - if(YaoXinStatus[ATBH_YAOXIN_QF] != OFF) - { - //Èç¹ûÒѾ­ºÏÕ¢ - D_OUT(ATBH_HCJ_KC, OFF); //ÊջغÏÕ¢ÃüÁî - D_OUT(ATBH_BCJQ_KC, ON); //·¢ÌøÕ¢ÃüÁî - kcDelayTimer_2 = 1; - BCJ_OFF_IP = 1; - } - else - { - //Èç¹ûÉÐδºÏÕ¢ - D_OUT(ATBH_HCJ_KC, OFF); //ÊջغÏÕ¢ÃüÁî - } - CHZValue.Status = CHZ_RESET; - break; - - case CHZ_FAULT_CHECK: - D_OUT(ATBH_BCJQ_KC, ON); //·¢ÌøÕ¢ÃüÁî - kcDelayTimer_2 = 1; - BCJ_OFF_IP = 1; - CHZValue.Status = CHZ_RESET; - break; - - case CHZ_CHECK_FW: - BCJ_OFF_IP = 1; - CHZValue.Status = CHZ_RESET; - break; - default: - break; - }//end of switch - }//end of if(CHZValue.ClsDwnIP!=0) - */ - - Value.Number = 0; - switch(CHZValue.Status) - { - //ÖØºÏբ״̬ - case CHZ_START: - //¼ì²âÖØºÏÕ¢ÊÇ·ñͶÈë - if(ATBH_RECLS_ENABLE != BH_RUN) - { - //ÖØºÏբδͶÈë - ATBH_RecloseFlag = RECLS_STATUS_UNENABLE; //ÖØºÏբδͶÈë - CHZValue.Status = CHZ_RESET; //ÖØºÏÕ¢½áÊø - RecordSOE(ATBH_RCLSUNENABLE,Value); - return; - } - //¼ì²âÖØºÏÕ¢³äµçʱ¼ä - if((TempQiDongIP & ATBH_CHZ_CDOK_BIT) == 0) - { - //ÉèÖÃÎÞÖØºÏÕ¢±êÖ¾ - //ÎÞÖØºÏÕ¢ - ATBH_RecloseFlag = RECLS_STATUS_UNSTART; //ÖØºÏբδÆð¶¯ - CHZValue.Status = CHZ_RESET; //ÖØºÏÕ¢½áÊø - RecordSOE(ATBH_CHZ_NOTCHARGE, Value); //ÖØºÏբδ³äµç - return; - } - CHZValue.Status = CHZ_CHECK_DELAY; - break; - - case CHZ_CHECK_DELAY: //¼ì²âÖØºÏÕ¢ÑÓʱ - if(CHZValue.CHZTime < ATBH_CHZ_Time) - { - return; //ÖØºÏբʱ¼äδµ½£¬·µ»Ø - } - - //ÖØºÏբʱ¼äµ½ - CHZValue.CHZTime = 0; //Çå³ýÖØºÏÕ¢ÑÓʱ - - //¼ìÓÐѹ - if(!(ATBH_YY_BIT & TempQiDongIP)) - { - //ÎÞѹ£¬±ÕËøÖØºÏÕ¢ - //ÎÞÖØºÏÕ¢ - //ʧѹ¶¯×÷ÒýÆðµÄ±£»¤ÌøÕ¢£¬ÇÒÌøÕ¢Ç°2s²¢Áª¿ª¹ØÎªºÏ룬²ÅÔÊÐíÓÐѹ×ÔͶ - if(ON == ZB_SYZT_able) - { - ZB_SYZT_able =OFF; - Send_QDZT(1); - } - RecordSOE(ATBH_WY_BSCHZ, Value); //ÎÞѹ±ÕËøÖØºÏբʼþ - ATBH_RecloseFlag = RECLS_STATUS_UNSTART; //ÖØºÏբδÆð¶¯ - CHZValue.Status = CHZ_RESET; //ÖØºÏÕ¢½áÊø - return; - } - - CHZValue.Status = CHZ_SEND_COMMAND; - break; - case CHZ_SEND_COMMAND: //·¢ºÏÕ¢ÃüÁî - D_OUT(ATBH_HCJ_KC, ON); //Çý¶¯HCJ - D_OUT(ATBH_CHZDZ_LED_KC, ON); //Çý¶¯CHZ¶¯×÷µÆ // - #if TESTSHOW - //logMsg("\n\n ******* KX Send CHZ cmd ***********\n\n"); - //ShowTime(0); - #endif - RecordSOE(ATBH_CHZCK, Value); //ÖØºÏÕ¢³ö¿Úʼþ¼Ç¼ - if(ON != YaoXinStatus[ATBH_YAOXIN_CHZDZ]) - { - RecordSoftYaoXin(ATBH_YAOXIN_CHZDZ,ON); - kcDelayTimer_6 = 1; - } - CHZValue.DelayCount = 1; - CHZValue.Status = CHZ_CHECK_HW; - kcDelayTimer_10 = 0; - break; - case CHZ_CHECK_HW: //¼ì²âºÏλ - if(YaoXinStatus[ATBH_YAOXIN_QF] == ON) - { - //¶Ï·Æ÷´¦ÓÚºÏλ - CHZValue.Status = CHZ_RESET; //¹ÊÕϼì²â - CHZValue.DelayCount = 0; //Æô¶¯ÑÓʱ¼ÆÊ±Æ÷ - D_OUT(ATBH_HCJ_KC, OFF); //ÊջغÏÕ¢ÃüÁî - ATBH_RecloseFlag = RECLS_STATUS_SUCCESS; //ÖØºÏÕ¢³É¹¦ - - #if TESTSHOW - //logMsg("\n\n ******* CHZ: success ,KX_HCJQ_KC Kc OFF ***********\n\n"); - //ShowTime(0); - #endif - return; - } - if(CHZValue.DelayCount >= ATBH_OperationTime) - { - //ºÏÕ¢³¬Ê± - ATBH_RecloseFlag = RECLS_STATUS_FAIL; //ÖØºÏբʧ°Ü - CHZValue.Status = CHZ_RESET; //ÖØºÏÕ¢½áÊø - - D_OUT(ATBH_HCJ_KC, OFF); //ÊջغÏÕ¢ÃüÁî - RecordSOE(ATBH_RCLS_ERROR, Value); //ºÏÕ¢»ØÂ·Òì³£¼Ç¼ - - #if TESTSHOW - //logMsg("\n\n ******* CHZ: timeout ,chz error ***********\n\n"); - //ShowTime(0); - #endif - return; - } - - //Óб£»¤Æô¶¯£¬ÖغÏբʧ°Ü - if(BaoHuQiDongIP != 0) - { - ATBH_RecloseFlag = RECLS_STATUS_FAIL; //ÖØºÏբʧ°Ü - CHZValue.Status = CHZ_RESET; //ÖØºÏÕ¢½áÊø - D_OUT(ATBH_HCJ_KC, OFF); //ÊջغÏÕ¢ÃüÁî - } - - break; - /* - case CHZ_FAULT_CHECK: //¹ÊÕϼì²â - if(BaoHuQiDongIP != 0) - { - //¼Ó30msÑÓʱ 20160310 ºÏբʱÓиÉÈŵ¼Ö±£»¤Ôª¼þÆô¶¯£¬ºÏÕ¢³É¹¦ºóºó¼ÓËÙ³ö¿Ú£¬ÔÚ»¦À¥Ïß·¢ÏÖ¸ÃÎÊÌâ - if(kcDelayTimer_10 < 30) - { - if(kcDelayTimer_10 == 0) - { - kcDelayTimer_10 = 1; - } - return; - } - kcDelayTimer_10 = 0; - - //ÓйÊÕÏ£¬·¢ÌøÕ¢ÃüÁî£¬ÖØºÏբʧ°Ü - ATBH_RecloseFlag = RECLS_STATUS_FAIL; //ÖØºÏբʧ°Ü - BaoHuDongZuoIP |= ATBH_ACC_BIT; //ºó¼ÓËÙ¶¯×÷±êÖ¾ - SaveFaultData(); //¼Ç¼µÚ¶þ´Î¹ÊÕϲÎÊý 20180807 - D_OUT(ATBH_HCJ_KC, OFF); //ÊջغÏÕ¢ÃüÁî - D_OUT(ATBH_BCJQ_KC, ON); //·¢ÌøÕ¢ÃüÁî - kcDelayTimer_2 = 1; - - //ºó¼ÓËÙ³ö¿Úʼþ¼Ç¼ - -#if TESTSHOW - //logMsg("\n\n ******* CHZ: HJS KC ***********\n\n"); - ShowTime(0); -#endif - RecordSOE(ATBH_HJSCK, Value); //ºó¼ÓËÙ³ö¿Úʼþ¼Ç¼ - CHZValue.DelayCount = 1; //Æô¶¯ÑÓʱ¼ÆÊ±Æ÷ - CHZValue.Status = CHZ_CHECK_FW; //¼ì²â·Öλ - return; - } - kcDelayTimer_10 = 0; - if(CHZValue.DelayCount >= 3000 ) - { - //3000msÎÞ¹ÊÕÏ£¬ÖغÏÕ¢³É¹¦ - D_OUT(ATBH_HCJ_KC, OFF); //ÊջغÏÕ¢ÃüÁî - ATBH_RecloseFlag = RECLS_STATUS_SUCCESS; //ÖØºÏÕ¢³É¹¦ - CHZValue.DelayCount = 0; //ºÏÕ¢ÑÓʱ¼ÆÊ±Æ÷ - CHZValue.Status = CHZ_RESET; //ÖØºÏÕ¢½áÊø - return; - } - break; - case CHZ_CHECK_FW: //¼ì²â - if((YaoXinStatus[ATBH_YAOXIN_QF] == OFF) && (BaoHuQiDongIP == 0)) - { - - //¶Ï·Æ÷´¦ÓÚ·ÖλÇÒ¹ÊÕÏÏûʧ - //ÔÚ20msÄÚ²»ÊÕ»ØÌøÕ¢ÃüÁî - if((kcDelayTimer_2 != 0) && (kcDelayTimer_2 < WITHDRAW_QFCTRL_MINTIME )) BCJ_OFF_IP = 1; - else - { - kcDelayTimer_2 = 0; - D_OUT(ATBH_BCJQ_KC, OFF); //ÊÕ»ØÌøÕ¢ÃüÁî - } - CHZValue.Status = CHZ_RESET; //¹ÊÕϼì²â - return; - } - if(CHZValue.DelayCount >= ATBH_OperationTime) - { - //·ÖÕ¢³¬Ê± - //ÔÚ20msÄÚ²»ÊÕ»ØÌøÕ¢ÃüÁî - if((kcDelayTimer_2 != 0) && (kcDelayTimer_2 < WITHDRAW_QFCTRL_MINTIME)) BCJ_OFF_IP = 1; - else - { - kcDelayTimer_2 = 0; - D_OUT(ATBH_BCJQ_KC, OFF); //ÊÕ»ØÌøÕ¢ÃüÁî - } - - //¹ÊÕÏÁ¿Î´Ïûʧ - if(BaoHuQiDongIP != 0) - { - D_OUT(ATBH_SL_KC, ON); //¶Ï·Æ÷ʧÁ鿪³ö - RecordSOE(ATBH_DLQ_ERROR, Value); //¶Ï·Æ÷ʧÁé - if(kcDelayTimer_0 == 0) kcDelayTimer_0 = 1; - } - //¿ª¹ØÎ´Ìø¿ª - if(OFF != YaoXinStatus[ATBH_YAOXIN_QF]) - { - RecordSOE(ATBH_TRIP_ERROR,Value); //ÌøÕ¢»ØÂ·Òì³£¼Ç¼ - } - TZValue.IP = FAIL; //ÌøÕ¢Ê§°Ü ,±ÜÃâÔÙ´ÎÌøÕ¢ 20181022 - CHZValue.Status = CHZ_RESET; //ÖØºÏÕ¢½áÊø - return; - } - break; - */ - case CHZ_RESET: //Ò»´ÎÖØºÏÕ¢½áÊø - CHZValue.Status = CHZ_CLOSE; //ÖØºÏբ״̬ - CHZValue.CHZTime = 0; //ÖØºÏբʱ¼ä - CHZValue.DelayCount = 0; //ºÏÕ¢ÑÓʱ¼ÆÊ±Æ÷ - kcDelayTimer_10 = 0; - D_OUT(ATBH_HCJ_KC, OFF); //ÊջغÏÕ¢ÃüÁî - //SaveFault(); //¹ÊÕϱ¨¸æ¼Ç¼½áÊø,±£´æ¹ÊÕϱ¨¸æ - SetRecloseEnd(); //ÉèÖÃÖØºÏÕ¢½áÊø - //SaveFault(1); //¹ÊÕϱ¨¸æ¼Ç¼½áÊø,±£´æ¹ÊÕϱ¨¸æ - break; - }//endcase - -} - -void JiSuanMeasureValue(void) -{ -//¹¦ÄÜ˵Ã÷£º²âÁ¿Öµ´¦Àí - unsigned int i,j; - int temp,number,basechannel; - float fre,angle_adjust = 0,angle_adjust_curr; - - //¼ÆËãԭʼ²ÉÑùͨµÀÓÐЧֵ - genera_computemeasure(); - if((TempQiDongIP & ATBH_TPTDX_BIT) && !(TempQiDongIP & ATBH_FPTDX_BIT)) - { - basechannel = CH_ATBH_UF; //KX_u_transform.channel_curr; - } - else - { - basechannel = CH_ATBH_UT; //KX_u_transform.channel_curr; - } - angle_adjust_curr = angle_amend_value; - if(CH_ATBH_UF == basechannel) - { - angle_adjust = 180; - angle_adjust_curr += 180; - } - //¼ÆËã½Ç¶È - genera_computemeasure_angle(basechannel,angle_adjust_curr,angle_adjust); - - //¼ÆËãÁ¿ - number = MeasureValue.Number / 2; - //ƵÂÊ - temp = basechannel - 7; - ComputeFrequency(&ZcpSet.zcpset[temp],&fre); - MeasureValue.Buffer[ATBH_MX_Fre].Value = fre; - MeasureValue.Buffer[ATBH_MX_Fre].Quality = ChannelValue[basechannel].Quality; - //¶þ´ÎÖµ - temp = number + ATBH_MX_Fre; - - MeasureValue.Buffer[temp].Value = fre; - MeasureValue.Buffer[temp].Quality = MeasureValue.Buffer[ATBH_MX_Fre].Quality; - - //²î¶¯¶þ´Îг²¨º¬Á¿ - MeasureValue.Buffer[ATBH_MX_Id2].Value = ATBH_ChaDong_I2.Value; - MeasureValue.Buffer[ATBH_MX_Id2].Quality = ChannelValue[CH_ATBH_BH_I].Quality; - temp = number + ATBH_MX_Id2; - //¶þ´ÎÖµ - MeasureValue.Buffer[temp].Value = MeasureValue.Buffer[ATBH_MX_Id2].Value; - MeasureValue.Buffer[temp].Quality = MeasureValue.Buffer[ATBH_MX_Id2].Quality; - - if(SETVALUE_MODE_1 == DisplayMode) - { - //²î¶¯µçÁ÷ - MeasureValue.Buffer[ATBH_MX_IDIFF].Value = ChaDongValue.CDI.Value; - MeasureValue.Buffer[ATBH_MX_IDIFF].Quality = ChannelValue[CH_ATBH_BH_I].Quality; - //¶þ´Î²î¶¯µçÁ÷ - temp = number + ATBH_MX_IDIFF; - MeasureValue.Buffer[temp].Value = MeasureValue.Buffer[ATBH_MX_IDIFF].Value / ChannelValue[CH_ATBH_BH_I].BianBi; - MeasureValue.Buffer[temp].Quality = MeasureValue.Buffer[ATBH_MX_IDIFF].Quality; - //ÖÆ¶¯µçÁ÷ - MeasureValue.Buffer[ATBH_MX_IREST].Value = ChaDongValue.ZDI.Value; - MeasureValue.Buffer[ATBH_MX_IREST].Quality = ChannelValue[CH_ATBH_BH_I].Quality; - //¶þ´ÎÖÆ¶¯µçÁ÷ - temp = number + ATBH_MX_IREST; - MeasureValue.Buffer[temp].Value = MeasureValue.Buffer[ATBH_MX_IREST].Value / ChannelValue[CH_ATBH_BH_I].BianBi; - MeasureValue.Buffer[temp].Quality = MeasureValue.Buffer[ATBH_MX_IREST].Quality; - } - else - { - - //²î¶¯µçÁ÷ - temp = number + ATBH_MX_IDIFF; - MeasureValue.Buffer[temp].Value = ChaDongValue.CDI.Value; - MeasureValue.Buffer[temp].Quality = ChannelValue[CH_ATBH_BH_I].Quality; - //Ò»´Î²î¶¯µçÁ÷ - MeasureValue.Buffer[ATBH_MX_IDIFF].Value = MeasureValue.Buffer[temp].Value * ChannelValue[CH_ATBH_BH_I].BianBi; - MeasureValue.Buffer[ATBH_MX_IDIFF].Quality = MeasureValue.Buffer[temp].Quality; - - - //ÖÆ¶¯µçÁ÷ - temp = number + ATBH_MX_IREST; - MeasureValue.Buffer[temp].Value = ChaDongValue.ZDI.Value; - MeasureValue.Buffer[temp].Quality = ChannelValue[CH_ATBH_BH_I].Quality; - //Ò»´Î²î¶¯µçÁ÷ - MeasureValue.Buffer[ATBH_MX_IREST].Value = MeasureValue.Buffer[temp].Value * ChannelValue[CH_ATBH_BH_I].BianBi; - MeasureValue.Buffer[ATBH_MX_IREST].Quality = MeasureValue.Buffer[temp].Quality; - } - - //×°ÖÃʱ¼ä - MeasureValue.Time.Msecond=Clock.Msecond; //ºÁÃ룬2×Ö½Ú£¬·¶Î§£º0¡«59999 - MeasureValue.Time.Minute=Clock.Minute; //·Ö£¬1×Ö½Ú£¬·¶Î§£º0¡«59 - MeasureValue.Time.Hour=Clock.Hour; //Сʱ£¬1×Ö½Ú£¬·¶Î§£º0¡«23 - MeasureValue.Time.Date=Clock.Date; //ÈÕÆÚ£¬1×Ö½Ú£¬·¶Î§£º1¡«31 - MeasureValue.Time.Month=Clock.Month; //Ô£¬1×Ö½Ú£¬·¶Î§£º1¡«12 - MeasureValue.Time.Year=Clock.Year; //Ä꣬2×Ö½Ú£¬·¶Î§£º2000¡«2099 - -} - -/********************************************************** -* void atbh_main(void) -* ÃèÊö: ±£»¤Óë½Ó¿Ú½»»¥ÈÎÎñÈë¿Úº¯Êý -* ÀúÊ·: ´´½¨ÈÕÆÚ²»Ïê -* -***********************************************************/ -void maintask(void) -{ - ProcessFaultReport(); //´¦Àí¹ÊÕϱ¨¸æ - - SysResetSoeRecord(); //ϵͳ¸´Î»Ê¼þ¼Ç¼ - CopyYaoXinBianWei(); //¿½±´Ò£ÐÅ - - digit_mainTask(); - - ComputeAnalogTrueRms(&ZcpSet); - if(MeasureSendDelay >= MEASURE_SEND_DELAY_TIME) - { - JiSuanMeasureValue(); //¼ÆËã²âÁ¿Öµ - SendMeasureValue(); //·¢ËͲâÁ¿Öµ ²âÁ¿Öµ¸ÄΪ¶ÓÁУ¬¾Í²»ÐèÒª¸ø½Ó¿Ú·¢ÃüÁÕâ¸öº¯Êý¾Íû±ØÒªÊ¹ÓÃÁË - } - SendGetTimeCommand(); - ReceiveData(); //½ÓÊÕÊý¾Ý - ProcessASDU(); //´¦Àí½ÓÊÕÊý¾Ý - //SendData(); //Íùʵʱ¿â·¢ËÍÊý¾Ý - //AT_ZT_TaskCreate(); - setValueSelfCheck(); - #ifdef DEVICE_TYPE_DIGITAL - //CheckIOYaoXin(IO_TYPE_IN20_OUT6,0); //¼ì²â¼Ç¼IO×Ô¼ìÈíÒ£ÐÅ luoyang add - //CheckIOYaoXin(IO_TYPE_IN20_OUT6,1); //¼ì²â¼Ç¼IO×Ô¼ìÈíÒ£ÐÅ lw add - #else - //CheckIOYaoXinEx(IO_TYPE_IN30_OUT0,0); //¼ì²â¼Ç¼IO×Ô¼ìÈíÒ£ÐÅ - //CheckIOYaoXinEx(IO_TYPE_IN30_OUT0,1); //¼ì²â¼Ç¼IO×Ô¼ìÈíÒ£ÐÅ - //CheckIOYaoXinEx(IO_TYPE_IN0_OUT16,2); //¼ì²â¼Ç¼IO×Ô¼ìÈíÒ£ÐÅ - #endif - //¼ì²âÒ£¿Ø¿ØÖÆ×Ö - CheckRemote_ryb(); - //¼ì²âÈíѹ°å¿ØÖÆ - CheckSoftStrapCtrl(); - //¹«¹²ÂÖѯ - main_polling(); - if(LS_TR == ATBH_LS) - { - block_CalcStatus(); - } -} - -/****************************************************************************** -* Function: ATZTDongZuo -* Description:ͶÍË´¦Àí -* Calls: none -* Called By: -* Input: -* Ouput: -* Return: -* others: -* History: -* 1.luoyang created -* -*******************************************************************************/ -void ATZTDongZuo(void) -{ - static int ZTStep = 0; - CanShuType CanShuValue; - int ZTRst; - - CanShuValue.Number = 0; - - //printf("ZTDongZuoIP = %d,ZTStep = %d",ZTDongZuoIP,ZTStep); - if(ZTDongZuoIP==TEST_START) - { - //¼ì²âATÊÇ·ñ´¦ÓÚÍ˳ö״̬ - //if(YaoXinStatus[ATBH_rmtsignal_run] != OFF || 0 != BaoHuQiDongIP) - //{ - // ZTDongZuoIP = TEST_CLOSE; //×ÔͶ½áÊø - // return; //AT²»´¦ÓÚÍ˳ö״̬£¬·µ»Ø - //} - //if(YaoXinStatus[ATBH_YAOXIN_GK0] != ON) - //{ - // ZTDongZuoIP = TEST_CLOSE; //×ÔͶ½áÊø - // return; - //} - - D_OUT(ATBH_ZTDZ_LED_KC,ON); //Çý¶¯×ÔͶ¶¯×÷µÆ - RecordSOE(ATBH_ZT_START,CanShuValue); - //RecordSoftYaoXin(ATBH_YAOXIN_ZT,ON); //¼Ç¼×ÔͶÈíÒ£ÐÅ - - ZTDongZuoIP = TEST_DELAY; //±êÃ÷×ÔͶ״̬ - ATZT_TIMER = 0; - ZTStep = 1; - } - if(TEST_DELAY != ZTDongZuoIP) - { - return; - } - - if(BREAKER_TYPE == ATBH_ATMode) - { - switch(ZTStep) - { - case 0: - if(ON != YaoXinStatus[ATBH_YAOXIN_AT_SWITCH_FAIL]) - { - RecordSoftYaoXin(ATBH_YAOXIN_AT_SWITCH_FAIL,ON); - } - RecordSOE(ATBH_ZT_FAIL,CanShuValue); //AT×ÔͶʧ°Üʼþ¼Ç¼ - ZTDongZuoIP = TEST_END; //×ÔͶ½áÊø - break; - case 1: - ZTRst = SwitchContrl(ATBH_ZT_QS,ON,&ATZT_TIMER,ISOLATOR_TYPE); - - //×ÔͶ¹ý³ÌÖз¢Éú¹ÊÕÏ£¬Ö±½ÓÍ˳ö - if(0 != BaoHuQiDongIP) - { - D_OUT(RemoteObject.Object[ATBH_ZT_QS].Out_On_No,OFF); - //RecordSOE(ATBH_ZT_FAIL,CanShuValue); //AT×ÔͶʧ°Ü - ZTStep = 0; - return; - } - //ʧ°Ü - if(TEST_CLOSE == ZTRst) - { - //RecordSOE(ATBH_ZT_FAIL,CanShuValue); //AT×ÔͶʧ°Ü - ZTStep = 0; - } - //³É¹¦ - else if(TEST_END == ZTRst) - { - ZTStep = 2; - } - break; - case 2: - ZTRst = SwitchContrl(ATBH_ZT_QF,ON,&ATZT_TIMER,BREAKER_TYPE); - //×ÔͶ¹ý³ÌÖз¢Éú¹ÊÕÏ£¬Ö±½ÓÍ˳ö - if(0 != BaoHuQiDongIP) - { - D_OUT(RemoteObject.Object[ATBH_ZT_QF].Out_On_No,OFF); - //RecordSOE(ATBH_ZT_FAIL,CanShuValue); //AT×ÔͶʧ°Ü - ZTStep = 0; - return; - } - //ʧ°Ü - if(TEST_CLOSE == ZTRst) - { - //RecordSOE(ATBH_ZT_FAIL,CanShuValue); //AT×ÔͶʧ°Ü - ZTStep = 0; - } - //³É¹¦ - else if(TEST_END == ZTRst) - { - - ZTStep = 3; - } - break; - //×ÔͶ³É¹¦ - case 3: - RecordSOE(ATBH_ZT_OK,CanShuValue); //AT×ÔͶ³É¹¦ - if(ON != YaoXinStatus[ATBH_YAOXIN_AT_SWITCH_SUCCESS]) - { - RecordSoftYaoXin(ATBH_YAOXIN_AT_SWITCH_SUCCESS,ON); - } - ZTDongZuoIP = TEST_END; //×ÔͶ½áÊø - break; - - } - } - else if(ISOLATOR_TYPE == ATBH_ATMode) - { - if(D_BREAKER_CONNECT != ATBH_LianJieMode) - { - //RecordSOE(ATBH_ZT_FAIL,CanShuValue); //AT×ÔͶʧ°Üʼþ¼Ç¼ - ZTStep = 0; //×ÔͶ½áÊø - } - switch(ZTStep) - { - case 0: - if(ON != YaoXinStatus[ATBH_YAOXIN_AT_SWITCH_FAIL]) - { - RecordSoftYaoXin(ATBH_YAOXIN_AT_SWITCH_FAIL,ON); - } - RecordSOE(ATBH_ZT_FAIL,CanShuValue); //AT×ÔͶʧ°Üʼþ¼Ç¼ - ZTDongZuoIP = TEST_END; //×ÔͶ½áÊø - break; - //·Ö1QS - case 1: - ZTRst = SwitchContrl(ATBH_ZT_1QF,OFF,&ATZT_TIMER,BREAKER_TYPE); - //ʧ°Ü - if(TEST_CLOSE == ZTRst) - { - //RecordSOE(ATBH_ZT_FAIL,CanShuValue); //AT×ÔͶʧ°Ü - ZTStep = 0; - } - //³É¹¦ - else if(TEST_END == ZTRst) - { - ZTStep = 2; - } - break; - //·Ö2QS - case 2: - ZTRst = SwitchContrl(ATBH_ZT_2QF,OFF,&ATZT_TIMER,BREAKER_TYPE); - //ʧ°Ü - if(TEST_CLOSE == ZTRst) - { - //RecordSOE(ATBH_ZT_FAIL,CanShuValue); //AT×ÔͶʧ°Ü - ZTStep = 0; - } - //³É¹¦ - else if(TEST_END == ZTRst) - { - ZTStep = 3; - } - break; - //²¢Áª¶Ï·Æ÷´¦ÓÚ·Ö룬ºÏAT¸ôÀ뿪¹Ø - case 3: - ZTRst = SwitchContrl(ATBH_ZT_QS,ON,&ATZT_TIMER,ISOLATOR_TYPE); - - //×ÔͶ¹ý³ÌÖз¢Éú¹ÊÕÏ£¬Ö±½ÓÍ˳ö - if(0 != BaoHuQiDongIP) - { - D_OUT(RemoteObject.Object[ATBH_ZT_QS].Out_On_No,OFF); - //RecordSOE(ATBH_ZT_FAIL,CanShuValue); //AT×ÔͶʧ°Ü - ZTStep = 0; - return; - } - //ʧ°Ü - if(TEST_CLOSE == ZTRst) - { - //RecordSOE(ATBH_ZT_FAIL,CanShuValue); //AT×ÔͶʧ°Ü - ZTStep = 0; - } - //³É¹¦ - else if(TEST_END == ZTRst) - { - ZTStep = 4; - } - break; - //ºÏ²¢Áª¶Ï·Æ÷ - case 4: - ZTRst = SwitchContrl(ATBH_ZT_1QF,ON,&ATZT_TIMER,BREAKER_TYPE); - - //×ÔͶ¹ý³ÌÖз¢Éú¹ÊÕÏ£¬Ö±½ÓÍ˳ö - if(0 != BaoHuQiDongIP) - { - D_OUT(RemoteObject.Object[ATBH_ZT_1QF].Out_On_No,OFF); - //RecordSOE(ATBH_ZT_FAIL,CanShuValue); //AT×ÔͶʧ°Ü - ZTStep = 0; - return; - } - //ʧ°Ü - if(TEST_CLOSE == ZTRst) - { - ZTStep = 5; - } - //³É¹¦ - else if(TEST_END == ZTRst) - { - ZTStep = 6; - } - break; - //ºÏ²¢Áª¶Ï·Æ÷ʧ°Ü - //·ÖAT¸ôÀ뿪¹Ø - case 5: - ZTRst = SwitchContrl(ATBH_ZT_QS,OFF,&ATZT_TIMER,ISOLATOR_TYPE); - if(TEST_DELAY != ZTRst) - { - //RecordSOE(ATBH_ZT_FAIL,CanShuValue); //AT×ÔͶʧ°Ü - ZTStep = 0; - } - break; - //ºÏ2QS - case 6: - ZTRst = SwitchContrl(ATBH_ZT_2QF,ON,&ATZT_TIMER,BREAKER_TYPE); - - //×ÔͶ¹ý³ÌÖз¢Éú¹ÊÕÏ£¬Ö±½ÓÍ˳ö - if(0 != BaoHuQiDongIP) - { - D_OUT(RemoteObject.Object[ATBH_ZT_2QF].Out_On_No,OFF); - //RecordSOE(ATBH_ZT_FAIL,CanShuValue); //AT×ÔͶʧ°Ü - ZTStep = 0; - return; - } - //ʧ°Ü - if(TEST_CLOSE == ZTRst) - { - //·Ö1QS - ZTStep = 7; - } - //×ÔͶ³É¹¦ - else if(TEST_END == ZTRst) - { - //RecordSOE(ATBH_ZT_OK,CanShuValue); //AT×ÔͶ³É¹¦ - ZTStep = 9; - } - break; - //ºÏ2QSʧ°Ü - //·Ö1QS - case 7: - ZTRst = SwitchContrl(ATBH_ZT_1QF,OFF,&ATZT_TIMER,BREAKER_TYPE); - //ʧ°Ü - if(TEST_CLOSE == ZTRst) - { - ZTStep = 0; - //RecordSOE(ATBH_ZT_FAIL,CanShuValue); //AT×ÔͶʧ°Ü - } - //³É¹¦ - else if(TEST_END == ZTRst) - { - ZTStep = 8; - } - break; - //·ÖAT¸ôÀ뿪¹Ø - case 8: - ZTRst = SwitchContrl(ATBH_ZT_QS,OFF,&ATZT_TIMER,ISOLATOR_TYPE); - if(TEST_DELAY != ZTRst) - { - //RecordSOE(ATBH_ZT_FAIL,CanShuValue); //AT×ÔͶʧ°Ü - ZTStep = 0; - } - break; - case 9: - if(ON != YaoXinStatus[ATBH_YAOXIN_AT_SWITCH_SUCCESS]) - { - RecordSoftYaoXin(ATBH_YAOXIN_AT_SWITCH_SUCCESS,ON); - } - RecordSOE(ATBH_ZT_OK,CanShuValue); //AT×ÔͶ³É¹¦ - ZTDongZuoIP = TEST_END; //×ÔͶ½áÊø - break; - default: - ZTStep = 0; - break; - - } - } - else - { - if(ON != YaoXinStatus[ATBH_YAOXIN_AT_SWITCH_FAIL]) - { - RecordSoftYaoXin(ATBH_YAOXIN_AT_SWITCH_FAIL,ON); - } - RecordSOE(ATBH_ZT_FAIL,CanShuValue); //AT×ÔͶʧ°Üʼþ¼Ç¼ - ZTDongZuoIP=TEST_END; //×ÔͶ½áÊø - } - if(ZTDongZuoIP == TEST_END) //×ÔͶ½áÊø - ZTDongZuoIP = TEST_CLOSE ; -} - - -/****************************************************************************** -* Function: SoftReset -* Description:Èí¼þ¸´¹é£¬Ò£¿Ø¡¢¸´¹é°´Å¥µÈ -* Calls: none -* Called By: -* Input: RstMode¸´¹é·½Ê½ FG_MODE_YK-Ò£¿Ø¸´¹é FG_MODE_AN-°´Å¥¸´¹é -* Ouput: -* Return: -* others: -* History: -* 1.luoyang created -* -*******************************************************************************/ -void SoftReset(unsigned char RstMode) -{ - CanShuType CanShuValue; - CanShuValue.Number = 0; - - //Ò£¿Ø¸´¹é - if(FG_MODE_YK == RstMode) - { - RecordSOE(FG_YK, CanShuValue); - } - //ÊÖ¶¯¸´¹é - else if(FG_MODE_SD == RstMode) - { - RecordSOE(FG_AN, CanShuValue); - } - - //¸´Î»ÌøÕ¢µÆ¡¢ÖغÏÕ¢¶¯×÷µÆ - - //¸´Î»ÌøÕ¢µÆ - D_OUT(ATBH_TZ_LED_KC,OFF); - D_OUT(ATBH_CHZDZ_LED_KC,OFF); - //¸´Î»ÍµÌøÒ£ÐÅ - dl_open_innormal_reset(&ATBH_dl_open_innormal_param); - RecordPrtcFlag(ATBH_BTGZ_KC,1,0,0,OFF); - ZB_fristFaultIndex = 0; - //¸´Î»×ÔͶ¶¯×÷µÆ - //printf("ZTDongZuoIP = %d,InPort.Status[ATBH_QDZT_KR] = %d",ZTDongZuoIP,InPort.Status[ATBH_QDZT_KR]); - if(TEST_END == ZTDongZuoIP || TEST_CLOSE == ZTDongZuoIP) - { - //if(OFF != YaoXinStatus[ATBH_YAOXIN_ZT]) - //{ - // RecordSoftYaoXin(ATBH_YAOXIN_ZT,OFF);//¼Ç¼×ÔͶÈíÒ£ÐÅ - //} - - if(OFF != YaoXinStatus[ATBH_YAOXIN_AT_SWITCH_SUCCESS]) - { - RecordSoftYaoXin(ATBH_YAOXIN_AT_SWITCH_SUCCESS,OFF); - } - if(OFF != YaoXinStatus[ATBH_YAOXIN_AT_SWITCH_FAIL]) - { - RecordSoftYaoXin(ATBH_YAOXIN_AT_SWITCH_FAIL,OFF); - } - D_OUT(ATBH_ZTDZ_LED_KC,OFF);//×ÔͶ¸´¹éϨÃð×ÔͶ¶¯×÷µÆ - ZTDongZuoIP=TEST_CLOSE; //×ÔͶ¸´¹é - } - -} - -void StartTiaoZha_atbh(void) -{ - unsigned int IP,mask = 0; - CanShuType CanShu; - CanShu.Number = 0; - - //¹¦ÄÜ˵Ã÷£ºÆô¶¯ÌøÕ¢³ÌÐò - //IP = 0xffffffff; - /* - if(BH_RUN == ATBH_nonui_prtc_trip) - { - mask = 0; - } - else - { - mask = ATBH_FDL_BIT; - } - */ - - //IP = recover_failure_trip(ATBH_FDL_BIT,ATBH_nonui_prtc_trip); - - if(FAIL == TZValue.IP && 0 != recover_failure_trip(ATBH_FDL_BIT,ATBH_nonui_prtc_trip)) - { - //ÔÚÌøÕ¢Ê§ÁéµÄÇé¿öÏ£¬±£»¤ÒÑ·µ»Ø£¬Çå³ý¶¯×÷±êÖ¾ - - if(kcDelayTimer_2 != 0) - { - if(kcDelayTimer_2 < WITHDRAW_QFCTRL_MINTIME ) BCJ_OFF_IP = 1; - else - { - kcDelayTimer_2 = 0; - Outlet_trip(ATBH_BCJQ_KC, OFF); //ÊÕ»ØÌøÕ¢ÃüÁî - } - } - if(kcDelayTimer_3 != 0) - { - if(kcDelayTimer_3 < WITHDRAW_QFCTRL_MINTIME ) BCJ1_OFF_IP = 1; - else - { - kcDelayTimer_3 = 0; - Outlet_trip(ATBH_1QS_DD_1QF_TZ_KC, OFF); //ÊÕ»ØÌøÕ¢ÃüÁî - } - } - if(kcDelayTimer_4 != 0) - { - if(kcDelayTimer_4 < WITHDRAW_QFCTRL_MINTIME ) BCJ2_OFF_IP = 1; - else - { - kcDelayTimer_4 = 0; - Outlet_trip(ATBH_2QS_DD_2QF_TZ_KC, OFF); //ÊÕ»ØÌøÕ¢ÃüÁî - } - } - TZValue.IP = SUCCESS; - QiDongTime = 0; - - } - - if((TZValue.Status == TZ_CLOSE) && (TZValue.IP == SUCCESS) && (BaoHuDongZuoIP != 0) && (TZValue.DelayCount == 0)) - { - //ÌøÕ¢Î´Æô¶¯£¬ÉÏ´ÎÌøÕ¢Òѳɹ¦ - TZValue.Status = TZ_START; - TZValue.FaultProcessEndIP = FAULT_START; //ÖùÊÕÏ¿ªÊ¼±êÖ¾ - } - -} - -/****************************************************************************** -* Function: HSV_PhaseToLine -* Description:½«¸ßѹ²àÏàµçѹת»¯ÎªÏßµçѹ -* Calls: none -* Called By: -* Input: -* Ouput: -* Return: -* others: -* History: -* 1.luoyang created 2017-05-08 -* -******************************************************************************/ -void SaveWave_Id() -{ - int i,readIP; - int smpval_t,smpval_f,smpval_d; - - for(i = 0; i < LoadWave.LengthOfNewData;i++) - { - - readIP = (LoadWave.IP_last + i + REALWAVE_LEN - 1) % (REALWAVE_LEN); - //if(BREAKER_TYPE == ATBH_ATMode || (ISOLATOR_TYPE == ATBH_ATMode && ON != YaoXinStatus[ATBH_YAOXIN_GK0])) - //modi by 20240618 LW ²¢Áª¿ª¹Ø²»¶¨Ì¬µ±³ÉºÏλÅÐ¶Ï - if(BREAKER_TYPE == ATBH_ATMode || (ISOLATOR_TYPE == ATBH_ATMode && OFF == YaoXinStatus[ATBH_YAOXIN_GK0])) - { - smpval_d = LoadWave.Buffer[ATBH_BH_I_WAVE][readIP] - LoadWave.Buffer[ATBH_BH_IF_WAVE][readIP]; - LoadWave.Buffer[ATBH_IDIFF_WAVE][readIP] = (short int)smpval_d; - } - else - { - smpval_t = LoadWave.Buffer[ATBH_BH_I_WAVE][readIP] + LoadWave.Buffer[ATBH_DC_IT_WAVE][readIP]; - smpval_f = LoadWave.Buffer[ATBH_BH_IF_WAVE][readIP] + LoadWave.Buffer[ATBH_DC_IF_WAVE][readIP]; - LoadWave.Buffer[ATBH_IDIFF_WAVE][readIP] = (short int)(smpval_t - smpval_f); - } - } -} - -void SaveFaultWave_Id(FaultItemType *pBuffer) -{ - int i; - int smpval_t,smpval_f,smpval_d; - - for(i = 0; i < pBuffer->WaveValue.ChannelData[ATBH_BH_I_WAVE].Length;i++) - { - //if(BREAKER_TYPE == ATBH_ATMode || (ISOLATOR_TYPE == ATBH_ATMode && ON != YaoXinStatus[ATBH_YAOXIN_GK0])) - //modi by 20240618 LW ²¢Áª¿ª¹Ø²»¶¨Ì¬µ±³ÉºÏλÅÐ¶Ï - if(BREAKER_TYPE == ATBH_ATMode || (ISOLATOR_TYPE == ATBH_ATMode && OFF == YaoXinStatus[ATBH_YAOXIN_GK0])) - { - smpval_d = pBuffer->WaveValue.ChannelData[ATBH_BH_I_WAVE].Data[i] - pBuffer->WaveValue.ChannelData[ATBH_BH_IF_WAVE].Data[i]; - pBuffer->WaveValue.ChannelData[ATBH_IDIFF_WAVE].Data[i] = (short int)smpval_d; - } - else - { - smpval_t = pBuffer->WaveValue.ChannelData[ATBH_BH_I_WAVE].Data[i] + pBuffer->WaveValue.ChannelData[ATBH_DC_IT_WAVE].Data[i]; - smpval_f = pBuffer->WaveValue.ChannelData[ATBH_BH_IF_WAVE].Data[i] + pBuffer->WaveValue.ChannelData[ATBH_DC_IF_WAVE].Data[i]; - pBuffer->WaveValue.ChannelData[ATBH_IDIFF_WAVE].Data[i] = (short int)(smpval_t - smpval_f); - } - } -} - - -#endif