diff --git a/标准版4.0/atbh.c b/标准版4.0/atbh.c new file mode 100644 index 00000000..04b2645f --- /dev/null +++ b/标准版4.0/atbh.c @@ -0,0 +1,185 @@ +//AT±£»¤Ìõ¼þ±àÒë +#include "..\h\predefine.h" +#ifdef _atbh_c_ +#include ".\inc\atbh.h" +//AT±£»¤²â¿Ø×°ÖÃÕû¶¨Öµ¶¨Òå +//1.Óû§²ÎÊý +DateType SetModiDate; //¶¨ÖµÐÞ¸Äʱ¼ä£¬8×Ö½Ú +unsigned int SetCheckSum; //УÑéÂë,4×Ö½Ú + +unsigned int SetNumber; //¶¨ÖµÇøºÅ£¬4×Ö½Ú +unsigned int SetValueMode; //Õû¶¨·½Ê½£¬4×Ö½Ú +unsigned int DisplayMode; //Ä£ÄâÁ¿ÏÔʾ·½Ê½£¬4×Ö½Ú + +float ATBH_CTRated1; //CT 1´Î¶î¶¨Öµ +float ATBH_CTRated2; //CT 2´Î¶î¶¨Öµ +float ATBH_PTRated1; //PT 1´Î¶î¶¨Öµ + +float ATBH_CDSDSet; //²î¶¯ËÙ¶Ï£¬4×Ö½Ú +float ATBH_CDSet; //±ÈÂʲ£¬4×Ö½Ú +float ATBH_ZD1Set; //ÖÆ¶¯1µçÁ÷Õû¶¨Öµ£¬4×Ö½Ú +float ATBH_ZD2Set; //ÖÆ¶¯2µçÁ÷Õû¶¨Öµ£¬4×Ö½Ú +float ATBH_ZDXS1Set; //±ÈÂÊ1Õû¶¨Öµ£¬4×Ö½Ú +float ATBH_ZDXS2Set; //±ÈÂÊ2Õû¶¨Öµ£¬4×Ö½Ú +//NoDirectUISettingType ATBH_SDISet; //µçÁ÷ËÙ¶Ï£¬8×Ö½Ú +//NoDirectUISettingType ATBH_ISet; //¹ýµçÁ÷£¬8×Ö½Ú +//NoDirectUISettingType ATBH_JDISet; //Åö¿Ç±£»¤£¬8×Ö½Ú +unsigned int ATBH_UModeSet; //µçѹ¼ì²â·½Ê½ +NoDirectUISettingType ATBH_SYSet; //ʧѹ£¬8×Ö½Ú +FISettingType ATBH_FI1Set; //¹ý¸ººÉ¢ñ¶Î£¬28×Ö½Ú +//FISettingType ATBH_FI2Set; //¹ý¸ººÉ¢ò¶Î£¬28×Ö½Ú + +NoDirectUISettingType ATBH_JYYSet; //¼ìÓÐѹ£¬8×Ö½Ú +unsigned int ATBH_CHZ_ChongDianTime; //ÖØºÏÕ¢³äµçʱ¼ä£¬4×Ö½Ú +unsigned int ATBH_CHZ_Time; //ÖØºÏբʱ¼ä£¬4×Ö½Ú + +float ATBH_XieBo_2; //¶þ´Îг²¨º¬Á¿£¬4×Ö½Ú +float ATBH_CLYXSet; //²îÁ÷Ô½ÏÞ¶¨Öµ +float ATBH_PTDXSet; //PT¶ÏÏß¶¨Öµ + +NoDirectUISettingType ATBH_WD1Set; //ζÈ1¸æ¾¯ +NoDirectUISettingType ATBH_WD2Set; //ζÈ2¸æ¾¯ +unsigned int ATBH_OperationTime; //¶Ï·Æ÷¶¯×÷ʱ¼ä£¬4×Ö½Ú +unsigned int ATBH_QSOperationTime; //¸ôÀ뿪¹Ø¶¯×÷ʱ¼ä£¬4×Ö½Ú +//unsigned int ATBH_SLXHTime; //¶Ï·Æ÷ʧÁéÐźű£³Öʱ¼ä 4×Ö½Ú +unsigned int ATBH_DLQNo; //¶Ï·Æ÷ºÅ£¬°´16½øÖÆÊýÏÔʾ£¬4×Ö½Ú +unsigned int ATBH_LianJieMode; //Á¬½Ó·½Ê½£¬4×Ö½Ú +unsigned int ATBH_ATMode; //AT½ÓÈ뷽ʽ£¬4×Ö½Ú +unsigned int ATBH_LS; //ÐÂÔöÁªËø¶¨Öµ(ö¾ÙÁ¿ 1:Í˳ö 3:ͶÈë) + +//±£»¤Ñ¹°å +unsigned int ATBH_CDSDTouRu; //²î¶¯Ëٶϱ£»¤Ñ¹°å£¬4×Ö½Ú +unsigned int ATBH_CDTouRu; //±ÈÂʲ±£»¤Ñ¹°å£¬4×Ö½Ú +//unsigned int ATBH_SDITouRu; //µçÁ÷Ëٶϱ£»¤Ñ¹°å£¬4×Ö½Ú +//unsigned int ATBH_ITouRu; //¹ýµçÁ÷±£»¤Ñ¹°å£¬4×Ö½Ú +//unsigned int ATBH_JDITouRu; //Åö¿Ç±£»¤Ñ¹°å£¬4×Ö½Ú +unsigned int ATBH_FI1TouRu; //¹ý¸ººÉ¢ñ¶Îѹ°å£¬4×Ö½Ú +//unsigned int ATBH_FI2TouRu; //¹ý¸ººÉ¢ò¶Îѹ°å£¬4×Ö½Ú +unsigned int ATBH_SYTouRu; //ʧѹ±£»¤Ñ¹°å£¬4×Ö½Ú +//unsigned int ATBH_DYTouRu; //µÍѹÆô¶¯Ôª¼þѹ°å£¬4×Ö½Ú +//unsigned int ATBH_XieBoI2TouRu; //¹ýµçÁ÷¶þ´Îг²¨±ÕËøÑ¹°å£¬4×Ö½Ú +//unsigned int ATBH_XieBoSumTouRu; //×ÛºÏг²¨ÒÖÖÆÑ¹°å£¬4×Ö½Ú +unsigned int ATBH_XieBoCDI2TouRu; //²î¶¯¶þ´Îг²¨±ÕËøÑ¹°å£¬4×Ö½Ú +unsigned int ATBH_CWWD1TouRu; //ζÈ1¸æ¾¯Ñ¹°å£¬4×Ö½Ú +unsigned int ATBH_CWWD2TouRu; //ζÈ2¸æ¾¯Ñ¹°å£¬4×Ö½Ú +unsigned int ATBH_PTDXTouRu; +unsigned int ATBH_DLLDIFFTouRu; + +unsigned int ATBH_SoftStrap_Reclse; //ÖØºÏÕ¢Èíѹ°å +unsigned int ATBH_SoftStrap_AtSwitch; //±¸×ÔͶÈíѹ°å +unsigned int ih_diff_alram_block; //¶þ´Îг²¨±ÕËø²îÁ÷Ô½Ï޸澯 +unsigned int ATBH_nonui_prtc_trip; //·ÇµçÁ¿±£»¤ÊÇ·ñ³ö¿Ú +unsigned int ATBH_FDLQDZT; //·ÇµçÁ¿Æð¶¯×ÔͶ + + +//2.ϵͳ²ÎÊýÇøÕû¶¨Öµ +DateType CanShuModiDate; //ϵͳ²ÎÊýÐÞ¸Äʱ¼ä£¬8×Ö½Ú +unsigned int CanShuCheckSum; //УÑéÂë,4×Ö½Ú + +float ATBH_VKSet; //TÏßµçѹ΢µ÷ϵÊý£¬4×Ö½Ú +float ATBH_VFKSet; //FÏßµçѹ΢µ÷ϵÊý£¬4×Ö½Ú +float ATBH_BaoHuIKSet; //TÏß±£»¤ÈÆ×éµçÁ÷΢µ÷ϵÊý£¬4×Ö½Ú +float ATBH_ChaDongIKSet; //TÏß²î¶¯ÈÆ×éµçÁ÷΢µ÷ϵÊý£¬4×Ö½Ú +float ATBH_CeLiangIKSet; //TÏß²âÁ¿ÈÆ×éµçÁ÷΢µ÷ϵÊý£¬4×Ö½Ú +float ATBH_BaoHuFIKSet; //FÏß±£»¤ÈÆ×éµçÁ÷΢µ÷ϵÊý£¬4×Ö½Ú +float ATBH_ChaDongFIKSet; //FÏß²î¶¯ÈÆ×éµçÁ÷΢µ÷ϵÊý£¬4×Ö½Ú +float ATBH_CeLiangFIKSet; //FÏß²âÁ¿ÈÆ×éµçÁ÷΢µ÷ϵÊý£¬4×Ö½Ú +//float ATBH_IJDKSet; //½ÓµØµçÁ÷΢µ÷ϵÊý£¬4×Ö½Ú +float ATBH_WD1TSet; //ζÈ1ζȻù×¼Öµ£¬4×Ö½Ú +float ATBH_WD1ISet; //ζÈ1µçÁ÷»ù×¼Öµ£¬4×Ö½Ú +float ATBH_WD1KSet; //ζÈ1ÇúÏßбÂÊ£¬ 4×Ö½Ú +float ATBH_WD2TSet; //ζÈ2ζȻù×¼Öµ£¬4×Ö½Ú +float ATBH_WD2ISet; //ζÈ2µçÁ÷»ù×¼Öµ£¬4×Ö½Ú +float ATBH_WD2KSet; //ζÈ2ÇúÏßбÂÊ£¬ 4×Ö½Ú + + +//KaiRuSetType KaiRuDelaySetting[INPUT_NUM]; //¿ªÈëÌØÐÔ£¬8*38=304×Ö½Ú + +//3.Ò£ÐÅÅäÖòÎÊý +//DateType PeiZhiModiDate; //Ò£ÐÅÅäÖòÎÊýÐÞ¸Äʱ¼ä£¬8×Ö½Ú +//unsigned int PeiZhiCheckSum; //УÑéÂë,4×Ö½Ú +//YaoXinObjectType YaoXinSet[YX_NUM]; //Ò£ÐŶÔÏóÉèÖÃ±í£¬60*12=720×Ö½Ú + +//±£»¤Ôª¼þ¶¨Òå +NoDirectProtectItemType ATBH_CDSDYJ; //²î¶¯ËÙ¶Ï +DiffProtectItemType ATBH_CDYJ; //±ÈÂʲ +//NoDirectProtectItemType ATBH_SDIYJ; //µçÁ÷ËÙ¶Ï +//NoDirectProtectItemType ATBH_IYJ; //¹ýµçÁ÷ +//NoDirectProtectItemType ATBH_JDIYJ; //Åö¿Ç±£»¤ +//NoDirectProtectItemType ATBH_XieBo2IYJ; //¶þ´Îг²¨±ÕËøÔª¼þ£¨¹ýµçÁ÷£© +NoDirectProtectItemType ATBH_XieBo2CDIYJ; //¶þ´Îг²¨±ÕËøÔª¼þ£¨²î¶¯£© +//NoDirectProtectItemType ATBH_XieBoSumYJ; //×ÛºÏг²¨ÒÖÖÆÔª¼þ +NoDirectProtectItemType ATBH_SYYJ; //ʧѹԪ¼þ +NoDirectProtectItemType ATBH_DYYJ; //µÍѹÆô¶¯Ôª¼þ +DiffProtectItemType ATBH_CLYXYJ; //²îÁ÷Ô½Ï޸澯Ԫ¼þ +NoDirectProtectItemType ATBH_TPTDXYJ; //TÏßPT¶ÏÏßÔª¼þ +NoDirectProtectItemType ATBH_FPTDXYJ; //FÏßPT¶ÏÏßÔª¼þ +NoDirectProtectItemType ATBH_FIYJ; //¹ý¸ººÉÔª¼þ + +//FIProtectItemType ATBH_FI1YJ; //¹ý¸ººÉ¢ñ¶ÎÔª¼þ +//FIProtectItemType ATBH_FI2YJ; //¹ý¸ººÉ¢ò¶ÎÔª¼þ +FDLProtectItemType ATBH_ZWSYJ; //ÖØÍß˹Ԫ¼þ +FDLProtectItemType ATBH_WD2YJ; //ζȢò¶ÎÔª¼þ +FDLProtectItemType ATBH_YLSFYJ; //ѹÁ¦ÊÍ·ÅÔª¼þ +FDLProtectItemType ATBH_BYXHYJ; //±¸ÓÃÐźÅÔª¼þ + +NoDirectProtectItemType ATBH_CWWD1YJ; //ζÈ1¸æ¾¯Ôª¼þ +NoDirectProtectItemType ATBH_CWWD2YJ; //ζÈ2¸æ¾¯Ôª¼þ +DiffProtectItemType ATBH_DLLDIFFAYJ; //ÔöÁ¿²î¶¯Ôª¼þ + + +//È«¾Ö±äÁ¿¶¨Òå +//DataType ATBH_BaoHu_I; //±£»¤ÈÆ×éµçÁ÷ +//DataType ATBH_BaoHu_I2; //±£»¤ÈÆ×é2´Îг²¨µçÁ÷º¬Á¿ +//DataType ATBH_BaoHu_IE; //±£»¤ÈÆ×é×ÛºÏг²¨µçÁ÷º¬Á¿ +DataType ATBH_ChaDong_I2; //²î¶¯2´Îг²¨µçÁ÷º¬Á¿ +CD_ZDType ChaDongValue; //²î¶¯µçÁ÷ºÍÖÆ¶¯µçÁ÷ +DataType ATBH_Baohu_UMax; //µçѹ×î´óÖµ +DataType ATBH_BaoHu_IT; //TÏß±£»¤µçÁ÷£¬ÓÃÓÚ¹ý¸ººÉ + +DateType ATBH_Fault_Time; //¹ÊÕÏ·¢Éúʱ¼ä +DataType ATBH_Fault_UT; //¹ÊÕϵçѹ£¨TÏßµçѹ£© +DataType ATBH_Fault_UF; //¹ÊÕϵçѹ£¨FÏßµçѹ£© +DataType ATBH_Fault_IT; //¹ÊÕϵçÁ÷£¨TÏß±£»¤ÈÆ×飩 +DataType ATBH_Fault_IF; //¹ÊÕϵçÁ÷£¨FÏß±£»¤ÈÆ×飩 +DataType ATBH_Fault_CDIT; //¹ÊÕϵçÁ÷£¨TÏß²î¶¯ÈÆ×飩 +DataType ATBH_Fault_CDIF; //¹ÊÕϵçÁ÷£¨FÏß²î¶¯ÈÆ×飩 +//DataType ATBH_Fault_I0; //¹ÊÕϵçÁ÷£¨ATÎüÉϵçÁ÷£© +//DataType ATBH_Fault_IJD; //¹ÊÕϵçÁ÷£¨½ÓµØµçÁ÷£© +DataType ATBH_Fault_ICD; //¹ÊÕϵçÁ÷£¨²î¶¯µçÁ÷£© +DataType ATBH_Fault_IZD; //¹ÊÕϵçÁ÷£¨Öƶ¯µçÁ÷£© +//DataType ATBH_Fault_XB2I; //¹ÊÕÏÁ¿ £¨±£»¤µçÁ÷¶þ´Îг²¨º¬Á¿£© +DataType ATBH_Fault_XB2ICD; //¹ÊÕÏÁ¿ £¨²î¶¯µçÁ÷¶þ´Îг²¨º¬Á¿£© + +float ATBH_JD_I; //¹ÊÕϽضϵçÁ÷ +unsigned int TiaoZhaIP; //ÌøÕ¢±êÖ¾ + +//CHZTRType ATZTTouRu; //AT×ÔͶͶÈë±äÁ¿ +unsigned int ATZT_TIMER; //AT×ÔͶ¶¨Ê±Æ÷ +unsigned int ATBH_ZT_ENABLE; +unsigned int ATBH_RECLS_ENABLE; + +CHZType CHZValue; //ÖØºÏբ״̬±äÁ¿¶¨Òå +unsigned int ATBH_RecloseFlag; +unsigned int ATBH_CDTimeSet; //±ÈÂʲʱÏÞ +unsigned int ATBH_rmtsignal_run; //AT´¦ÓÚͶÈë̬µÄÒ£ÐÅ +unsigned int ATBH_checku_timer = 0; //¼ìÓÐѹ¼ÆÊýÆ÷ +unsigned int ATBH_triptest_timer = 0; //±£»¤ÌøÕ¢²âÊÔ¿ª³ö¼ÆÊýÆ÷ +breaker_err_type ATBH_Breaker_err_param[2]; //¶Ï·Æ÷ʧÁé²ÎÊý +dl_open_innormal_param_type ATBH_dl_open_innormal_param; +unsigned int ATBH_YCFZ_CHZ_TuoRu; +unsigned int ATBH_dl_innormal_open_alarm; //¶Ï·Æ÷Òì³£·ÖÕ¢¸æ¾¯ +CD_ZDType DLLDiffValue; //ÔöÁ¿²î¶¯µçÁ÷ºÍÔöÁ¿Öƶ¯µçÁ÷ +tagDLL_Rated_Frq ATBH_DLLDIFFBUF; +tagDLL_Rated_Frq ATBH_DLLRESBUF; +float ATBH_DllDiffSet; +float ATBH_CDI_MIN_XS; +unsigned int ATBH_QDZT_Mask; //Æð¶¯×ÔͶÑÚÂë + + +//Ôö¼ÓÓ¿Á÷Ïà¹Ø±äÁ¿ 20240618 add by L.W. + unsigned int ATBH_I_Timer; //Ó¿Á÷ʱ¼ä + unsigned int ATBH_I_Flag;//Ó¿Á÷±êÖ¾ + unsigned int ATBH_CD_StartIP; +#endif + diff --git a/标准版4.0/init_atbh.c b/标准版4.0/init_atbh.c new file mode 100644 index 00000000..89a8ce44 --- /dev/null +++ b/标准版4.0/init_atbh.c @@ -0,0 +1,2430 @@ +/* +********************************************************************************************************* +* Copyright (c) 2014,JD-YD +* All Rights Reserved +* +* +* File : init_atbh.c +* Author : luoyang +* Version : 1.0 +* Date : +* Descriptiong : atbh³õʼ»¯ +* Function List: +* History : + 1. Date: + Author:luoyang + Modification:build this modle +********************************************************************************************************* +*/ + +#include "..\h\predefine.h" +#ifdef _atbh_c_ + +#include +#include + +#include ".\inc\atbh.h" +#include "..\h\lib.h" +#include "..\h\variable.h" +#include ".\inc\parameter_atbh.h" +#include ".\inc\analog_atbh.h" +#include ".\inc\inout_atbh.h" + +#include "..\digit_protect\inc\digit_protect_inoutcode.h" +void atbh_breaker_err_param_init(); +void Reset_Init(void); +unsigned int CheckUserSetting(unsigned char *Address); +unsigned int CheckSysSetting(unsigned char *Address); + +unsigned int ScaleAnalogChannel(unsigned char Number,float Parameter); //¿Ì¶ÈУÕý +float checkUIScale(float Parameter,unsigned char ChNo); + +void InitProtectItem(void); +void InitAnalogChannel(void); +void InitOutStatus(void); +unsigned int GetSysSetting(void); +unsigned int GetUserSetting(unsigned int Number); +void InitRemoteObject(void); + +void yaoXinSetInitial();//³ÌÐòÄÚ²¿¹Ì¶¨Ó²Ò£ÐÅÅäÖà +void DoubleYaoXinDelayTimeInit(); + +unsigned int usrSetValueCheckSum();//¼ÆËãÓû§¶¨ÖµÐ£ÑéºÍ +unsigned int sysSetValueCheckSum();//¼ÆËãϵͳ¶¨ÖµÐ£ÑéºÍ +void atbh_itemClsDwnManageInit(); + +extern int CheckYBStatus(unsigned int YaoXinNo,unsigned int YBStatus); +extern void AninChannalCoeffInit(); +extern float UIScaleCheck(float Parameter, unsigned char ChNo); +extern void AninChannallCoeff_SV_init(); +void InitSoftStrapCtrlObject(void); + +/**************************************************** + * void InitProtectItem(void) + * ÃèÊö£º³õʼ»¯±£»¤Ôª¼þ + * ÀúÊ·: ¶ÔÔª¼þÍ·²¿±ÕËø±êÖ¾³õʼ»¯ + ****************************************************/ +void InitProtectItem(void) +{ + unsigned int temp; + static int rebootip = 0; + + //²î¶¯ËÙ¶Ï + ATBH_CDSDYJ.ClsDwnIP = 0; + ATBH_CDSDYJ.TouRuIP=ATBH_CDSDTouRu; //±£»¤Ôª¼þͶÈë±êÖ¾ + ATBH_CDSDYJ.Type=GL_TYPE; //±£»¤Ôª¼þÀàÐÍ + ATBH_CDSDYJ.SetValue=ATBH_CDSDSet; //Õû¶¨Öµ + ATBH_CDSDYJ.SetTime=ATBH_CDTimeSet; //Õû¶¨Öµ + ATBH_CDSDYJ.MeasureValue=&ChaDongValue.CDI; //²âÁ¿Öµ + ATBH_CDSDYJ.QiDongBit=ATBH_CDSD_BIT; //Ôª¼þÆô¶¯Î» + ATBH_CDSDYJ.IPAddress=&BaoHuQiDongIP; //Æô¶¯±êÖ¾×ÖµØÖ· + ATBH_CDSDYJ.SoeRecordIP=TEST_START; //Soeʼþ¼Ç¼±êÖ¾ + ATBH_CDSDYJ.ChuKouRecordIP=TEST_START; //±£»¤Ôª¼þ³ö¿Úʼþ¼Ç¼±êÖ¾ + ATBH_CDSDYJ.QiDongCode=ATBH_CDSD_QD; //Ôª¼þÆô¶¯Ê¼þ´úÂë + ATBH_CDSDYJ.ChuKouCode=ATBH_CDSD_CK; //Ôª¼þ³ö¿Úʼþ´úÂë + ATBH_CDSDYJ.FanHuiCode=ATBH_CDSD_FH; //Ôª¼þ·µ»ØÊ¼þ´úÂë + ATBH_CDSDYJ.TimeValue=0; //±£»¤Ôª¼þ¼ÆÊ±Æ÷ + ATBH_CDSDYJ.YaoXinNumber=ATBH_YAOXIN_CDSD; //¶ÔÓ¦µÄÈíÒ£ÐźŠ+ + //±ÈÂʲ + ATBH_CDYJ.ClsDwnIP = 0; + ATBH_CDYJ.TouRuIP=ATBH_CDTouRu; //±£»¤Ôª¼þͶÈë±êÖ¾ + ATBH_CDYJ.CDSetValue=ATBH_CDSet; //²î¶¯Õû¶¨Öµ + ATBH_CDYJ.ZD1SetValue=ATBH_ZD1Set; //ÖÆ¶¯µçÁ÷1Õû¶¨Öµ + ATBH_CDYJ.ZD2SetValue=ATBH_ZD2Set; //ÖÆ¶¯µçÁ÷2Õû¶¨Öµ + ATBH_CDYJ.K1SetValue=ATBH_ZDXS1Set; //ÖÆ¶¯±ÈÂÊ1 + ATBH_CDYJ.K2SetValue=ATBH_ZDXS2Set; //ÖÆ¶¯±ÈÂÊ2 + ATBH_CDYJ.SetTime=ATBH_CDTimeSet; //Õû¶¨Ê±¼ä + ATBH_CDYJ.MeasureValue=&ChaDongValue; //²âÁ¿Öµ + ATBH_CDYJ.QiDongBit=ATBH_CD_BIT; //Ôª¼þÆô¶¯Î» + ATBH_CDYJ.IPAddress=&BaoHuQiDongIP; //Æô¶¯±êÖ¾×ÖµØÖ· + ATBH_CDYJ.SoeRecordIP=TEST_START; //Soeʼþ¼Ç¼±êÖ¾ + ATBH_CDYJ.ChuKouRecordIP=TEST_START; //±£»¤Ôª¼þ³ö¿Úʼþ¼Ç¼±êÖ¾ + ATBH_CDYJ.QiDongCode=ATBH_CD_QD; //Ôª¼þÆô¶¯Ê¼þ´úÂë + ATBH_CDYJ.ChuKouCode=ATBH_CD_CK; //Ôª¼þ³ö¿Úʼþ´úÂë + ATBH_CDYJ.FanHuiCode=ATBH_CD_FH; //Ôª¼þ·µ»ØÊ¼þ´úÂë + ATBH_CDYJ.TimeValue=0; //±£»¤Ôª¼þ¼ÆÊ±Æ÷ + ATBH_CDYJ.YaoXinNumber=ATBH_YAOXIN_CD; //¶ÔÓ¦µÄÈíÒ£ÐźŠ+ + //²îÁ÷Ô½Ï޸澯Ԫ¼þ + ATBH_CLYXYJ.ClsDwnIP = 0; + ATBH_CLYXYJ.TouRuIP=ATBH_CDTouRu; //±£»¤Ôª¼þͶÈë±êÖ¾ + ATBH_CLYXYJ.CDSetValue=ATBH_CDSet * ATBH_CLYXSet; //²î¶¯Õû¶¨Öµ + ATBH_CLYXYJ.ZD1SetValue=ATBH_ZD1Set;// * ATBH_CLYXSet; //ÖÆ¶¯µçÁ÷1Õû¶¨Öµ + ATBH_CLYXYJ.ZD2SetValue=ATBH_ZD2Set;// * ATBH_CLYXSet; //ÖÆ¶¯µçÁ÷2Õû¶¨Öµ + ATBH_CLYXYJ.K1SetValue=ATBH_ZDXS1Set;// * ATBH_CLYXSet; //ÖÆ¶¯±ÈÂÊ1 + ATBH_CLYXYJ.K2SetValue=ATBH_ZDXS2Set;// * ATBH_CLYXSet; //ÖÆ¶¯±ÈÂÊ2 + ATBH_CLYXYJ.SetTime=1000; //Õû¶¨Ê±¼ä + ATBH_CLYXYJ.MeasureValue=&ChaDongValue; //²âÁ¿Öµ + ATBH_CLYXYJ.QiDongBit=ATBH_CLYX_BIT; //Ôª¼þÆô¶¯Î» + ATBH_CLYXYJ.IPAddress=&TempQiDongIP; //Æô¶¯±êÖ¾×ÖµØÖ· + ATBH_CLYXYJ.SoeRecordIP=TEST_START; //Soeʼþ¼Ç¼±êÖ¾ + ATBH_CLYXYJ.ChuKouRecordIP=TEST_START; //±£»¤Ôª¼þ³ö¿Úʼþ¼Ç¼±êÖ¾ + ATBH_CLYXYJ.QiDongCode=ATBH_CL_QJ; //Ôª¼þÆô¶¯Ê¼þ´úÂë + ATBH_CLYXYJ.ChuKouCode=ATBH_CL_QJ; //Ôª¼þ³ö¿Úʼþ´úÂë + ATBH_CLYXYJ.FanHuiCode=ATBH_CL_FH; //Ôª¼þ·µ»ØÊ¼þ´úÂë + ATBH_CLYXYJ.TimeValue=0; //±£»¤Ôª¼þ¼ÆÊ±Æ÷ + ATBH_CLYXYJ.YaoXinNumber=ATBH_YAOXIN_CLYX; //¶ÔÓ¦µÄÈíÒ£ÐźŠ+ ATBH_CLYXYJ.SoeParam.paramset[0] = &ChaDongValue; + ATBH_CLYXYJ.SoeParam.paramset[1] = &ChannelValue[CH_ATBH_BH_I].YouXiaoZhi[JiBo].Analog; + ATBH_CLYXYJ.SoeParam.paramset[2] = &ChannelValue[CH_ATBH_BH_IF].YouXiaoZhi[JiBo].Analog; + ATBH_CLYXYJ.SoeParam.paramset[3] = &ChannelValue[CH_ATBH_CD_IT].YouXiaoZhi[JiBo].Analog; + ATBH_CLYXYJ.SoeParam.paramset[4] = &ChannelValue[CH_ATBH_CD_IF].YouXiaoZhi[JiBo].Analog; + if(BREAKER_TYPE == ATBH_ATMode) + { + ATBH_CLYXYJ.SoeParam.paramnum = 3; + } + else + { + ATBH_CLYXYJ.SoeParam.paramnum = 5; + } + + + //PT¶ÏÏ߸澯Ԫ¼þ + ATBH_TPTDXYJ.ClsDwnIP = 0; + ATBH_TPTDXYJ.TouRuIP=ATBH_PTDXTouRu; //±£»¤Ôª¼þͶÈë±êÖ¾ + ATBH_TPTDXYJ.Type=GL_TYPE; //±£»¤Ôª¼þÀàÐÍ + ATBH_TPTDXYJ.SetValue = ATBH_PTDXSet; //Õû¶¨Öµ + ATBH_TPTDXYJ.SetTime = 2000; //Õû¶¨Ê±¼ä + ATBH_TPTDXYJ.MeasureValue = &ChannelValue[CH_ATBH_UT].YouXiaoZhi[JiBo].Analog; + ATBH_TPTDXYJ.QiDongBit= ATBH_TPTDX_BIT; //Ôª¼þÆô¶¯Î» + ATBH_TPTDXYJ.IPAddress = &TempQiDongIP; //Æô¶¯±êÖ¾×ÖµØÖ· + ATBH_TPTDXYJ.SoeRecordIP=TEST_START; //Soeʼþ¼Ç¼±êÖ¾,Ö»¼Ç¼·µ»ØÊ¼þ£¬²»¼Ç¼Æô¶¯Ê¼þ + ATBH_TPTDXYJ.ChuKouRecordIP=TEST_START; //±£»¤Ôª¼þ³ö¿Úʼþ¼Ç¼±êÖ¾ + ATBH_TPTDXYJ.QiDongCode=ATBH_TPTDX_GJ; //Ôª¼þÆô¶¯Ê¼þ´úÂë + ATBH_TPTDXYJ.ChuKouCode=ATBH_TPTDX_GJ; //Ôª¼þ³ö¿Úʼþ´úÂë + ATBH_TPTDXYJ.FanHuiCode=ATBH_TPTDX_FH; //Ôª¼þ·µ»ØÊ¼þ´úÂë + ATBH_TPTDXYJ.TimeValue=0; //±£»¤Ôª¼þ¼ÆÊ±Æ÷ + ATBH_TPTDXYJ.YaoXinNumber=ATBH_YAOXIN_TPTDX; //¶ÔÓ¦µÄÈíÒ£ÐźŠ+ + //PT¶ÏÏ߸澯Ԫ¼þ + ATBH_FPTDXYJ.ClsDwnIP = 0; + ATBH_FPTDXYJ.TouRuIP=ATBH_PTDXTouRu; //±£»¤Ôª¼þͶÈë±êÖ¾ + ATBH_FPTDXYJ.Type=GL_TYPE; //±£»¤Ôª¼þÀàÐÍ + ATBH_FPTDXYJ.SetValue = ATBH_PTDXSet; //Õû¶¨Öµ + ATBH_FPTDXYJ.SetTime = 2000; //Õû¶¨Ê±¼ä + ATBH_FPTDXYJ.MeasureValue = &ChannelValue[CH_ATBH_UF].YouXiaoZhi[JiBo].Analog; + ATBH_FPTDXYJ.QiDongBit= ATBH_FPTDX_BIT; //Ôª¼þÆô¶¯Î» + ATBH_FPTDXYJ.IPAddress = &TempQiDongIP; //Æô¶¯±êÖ¾×ÖµØÖ· + ATBH_FPTDXYJ.SoeRecordIP=TEST_START; //Soeʼþ¼Ç¼±êÖ¾,Ö»¼Ç¼·µ»ØÊ¼þ£¬²»¼Ç¼Æô¶¯Ê¼þ + ATBH_FPTDXYJ.ChuKouRecordIP=TEST_START; //±£»¤Ôª¼þ³ö¿Úʼþ¼Ç¼±êÖ¾ + ATBH_FPTDXYJ.QiDongCode=ATBH_FPTDX_GJ; //Ôª¼þÆô¶¯Ê¼þ´úÂë + ATBH_FPTDXYJ.ChuKouCode=ATBH_FPTDX_GJ; //Ôª¼þ³ö¿Úʼþ´úÂë + ATBH_FPTDXYJ.FanHuiCode=ATBH_FPTDX_FH; //Ôª¼þ·µ»ØÊ¼þ´úÂë + ATBH_FPTDXYJ.TimeValue=0; //±£»¤Ôª¼þ¼ÆÊ±Æ÷ + ATBH_FPTDXYJ.YaoXinNumber=ATBH_YAOXIN_FPTDX; //¶ÔÓ¦µÄÈíÒ£ÐźŠ+ + //¹ý¸ººÉ¸æ¾¯ + ATBH_FIYJ.ClsDwnIP = 0; + ATBH_FIYJ.TouRuIP=ATBH_FI1TouRu; //±£»¤Ôª¼þͶÈë±êÖ¾ + ATBH_FIYJ.Type=GL_TYPE; //±£»¤Ôª¼þÀàÐÍ + ATBH_FIYJ.SetValue = ATBH_FI1Set.SetValue1; //Õû¶¨Öµ + ATBH_FIYJ.SetTime = ATBH_FI1Set.Time1; //Õû¶¨Ê±¼ä + ATBH_FIYJ.MeasureValue = &ATBH_BaoHu_IT; + ATBH_FIYJ.QiDongBit= ATBH_FI1_BIT; //Ôª¼þÆô¶¯Î» + ATBH_FIYJ.IPAddress = &TempQiDongIP; //Æô¶¯±êÖ¾×ÖµØÖ· + ATBH_FIYJ.SoeRecordIP=TEST_START; //Soeʼþ¼Ç¼±êÖ¾,Ö»¼Ç¼·µ»ØÊ¼þ£¬²»¼Ç¼Æô¶¯Ê¼þ + ATBH_FIYJ.ChuKouRecordIP=TEST_START; //±£»¤Ôª¼þ³ö¿Úʼþ¼Ç¼±êÖ¾ + ATBH_FIYJ.QiDongCode=ATBH_FI1_CK; //Ôª¼þÆô¶¯Ê¼þ´úÂë + ATBH_FIYJ.ChuKouCode=ATBH_FI1_CK; //Ôª¼þ³ö¿Úʼþ´úÂë + ATBH_FIYJ.FanHuiCode=ATBH_FI1_FH; //Ôª¼þ·µ»ØÊ¼þ´úÂë + ATBH_FIYJ.TimeValue=0; //±£»¤Ôª¼þ¼ÆÊ±Æ÷ + ATBH_FIYJ.YaoXinNumber=ATBH_YAOXIN_FI1; //¶ÔÓ¦µÄÈíÒ£ÐźŠ+ ATBH_FIYJ.SoeParam.paramnum = 1; + ATBH_FIYJ.SoeParam.paramset[0] = &ATBH_BaoHu_IT; + + //TÏß¶þ´Îг²¨±ÕËøÔª¼þ£¨²î¶¯£© + ATBH_XieBo2CDIYJ.ClsDwnIP = 0; + ATBH_XieBo2CDIYJ.TouRuIP=ATBH_XieBoCDI2TouRu; //±£»¤Ôª¼þͶÈë±êÖ¾ + ATBH_XieBo2CDIYJ.Type=GL_TYPE; //±£»¤Ôª¼þÀàÐÍ + ATBH_XieBo2CDIYJ.SetValue=ATBH_XieBo_2; //Õû¶¨Öµ + ATBH_XieBo2CDIYJ.SetTime=1; //Õû¶¨Ê±¼ä + ATBH_XieBo2CDIYJ.MeasureValue=&ATBH_ChaDong_I2; //¸Ã²ÎÊýÎÞЧ + ATBH_XieBo2CDIYJ.QiDongBit=ATBH_XieBoCDI2_BIT; //Ôª¼þÆô¶¯Î» + ATBH_XieBo2CDIYJ.IPAddress=&TempQiDongIP; //Æô¶¯±êÖ¾×ÖµØÖ· + ATBH_XieBo2CDIYJ.SoeRecordIP=TEST_START; //Soeʼþ¼Ç¼±êÖ¾ + ATBH_XieBo2CDIYJ.ChuKouRecordIP=TEST_START; //±£»¤Ôª¼þ³ö¿Úʼþ¼Ç¼±êÖ¾ + ATBH_XieBo2CDIYJ.QiDongCode=ATBH_XBBS_K2_CD; //Ôª¼þÆô¶¯Ê¼þ´úÂë + ATBH_XieBo2CDIYJ.ChuKouCode=ATBH_XBBS_K2_CD; //Ôª¼þ³ö¿Úʼþ´úÂë + ATBH_XieBo2CDIYJ.FanHuiCode=ATBH_XBBSJC_K2_CD; //Ôª¼þ·µ»ØÊ¼þ´úÂë + ATBH_XieBo2CDIYJ.TimeValue=0; //±£»¤Ôª¼þ¼ÆÊ±Æ÷ + + //ʧѹԪ¼þ + ATBH_SYYJ.ClsDwnIP = 0; + if(BREAKER_TYPE == ATBH_ATMode) + { + ATBH_SYYJ.TouRuIP = ATBH_SYTouRu; //±£»¤Ôª¼þͶÈë±êÖ¾ + } + else + { + //¸ôÀ뿪¹Ø½ÓÈ뷽ʽÏÂÎÞʧѹ±£»¤ + ATBH_SYYJ.TouRuIP = BH_STOP; //±£»¤Ôª¼þͶÈë±êÖ¾ + } + ATBH_SYYJ.Type=QL_TYPE; //±£»¤Ôª¼þÀàÐÍ + ATBH_SYYJ.SetValue=ATBH_SYSet.SetValue; //Õû¶¨Öµ + ATBH_SYYJ.SetTime=ATBH_SYSet.Time; //Õû¶¨Ê±¼ä + ATBH_SYYJ.MeasureValue=&ATBH_Baohu_UMax; + ATBH_SYYJ.QiDongBit=ATBH_SY_BIT; //Ôª¼þÆô¶¯Î» + ATBH_SYYJ.IPAddress=&BaoHuQiDongIP; //Æô¶¯±êÖ¾×ÖµØÖ· + ATBH_SYYJ.SoeRecordIP=TEST_START; //Soeʼþ¼Ç¼±êÖ¾ + ATBH_SYYJ.ChuKouRecordIP=TEST_START; //±£»¤Ôª¼þ³ö¿Úʼþ¼Ç¼±êÖ¾ + ATBH_SYYJ.QiDongCode=ATBH_SY_QD; //Ôª¼þÆô¶¯Ê¼þ´úÂë + ATBH_SYYJ.ChuKouCode=ATBH_SY_CK; //Ôª¼þ³ö¿Úʼþ´úÂë + ATBH_SYYJ.FanHuiCode=ATBH_SY_FH; //Ôª¼þ·µ»ØÊ¼þ´úÂë + ATBH_SYYJ.TimeValue=0; //±£»¤Ôª¼þ¼ÆÊ±Æ÷ + ATBH_SYYJ.YaoXinNumber=ATBH_YAOXIN_SY; //¶ÔÓ¦µÄÈíÒ£ÐźŠ+ ATBH_SYYJ.SoeParam.paramnum = 2; + ATBH_SYYJ.SoeParam.paramset[0] = &ChannelValue[CH_ATBH_UT].YouXiaoZhi[JiBo].Analog; + ATBH_SYYJ.SoeParam.paramset[1] = &ChannelValue[CH_ATBH_UF].YouXiaoZhi[JiBo].Analog; + + //AÏàÔöÁ¿²î¶¯Ôª¼þ + ATBH_DLLDIFFAYJ.ClsDwnIP = 0; + ATBH_DLLDIFFAYJ.TouRuIP = ATBH_DLLDIFFTouRu; //±£»¤Ôª¼þͶÈë±êÖ¾ + ATBH_DLLDIFFAYJ.CDSetValue = ATBH_DllDiffSet * ATBH_CDSet; //²î¶¯Õû¶¨Öµ + ATBH_DLLDIFFAYJ.ZD1SetValue = ATBH_DllDiffSet * ATBH_ZD1Set; //ÖÆ¶¯µçÁ÷1Õû¶¨Öµ + ATBH_DLLDIFFAYJ.ZD2SetValue = 0; //ÖÆ¶¯µçÁ÷2Õû¶¨Öµ + ATBH_DLLDIFFAYJ.K1SetValue = 0.8; //ÖÆ¶¯±ÈÂÊ1 + ATBH_DLLDIFFAYJ.K2SetValue = 0.8; //ÖÆ¶¯±ÈÂÊ2 + ATBH_DLLDIFFAYJ.SetTime = 0; //Õû¶¨Ê±¼ä + ATBH_DLLDIFFAYJ.MeasureValue = &DLLDiffValue; //²âÁ¿Öµ + ATBH_DLLDIFFAYJ.QiDongBit = ATBH_DLLDIFF_BIT; //Ôª¼þÆô¶¯Î» + ATBH_DLLDIFFAYJ.IPAddress = &BaoHuQiDongIP; //Æô¶¯±êÖ¾×ÖµØÖ· + ATBH_DLLDIFFAYJ.SoeRecordIP = TEST_START; //Soeʼþ¼Ç¼±êÖ¾ + ATBH_DLLDIFFAYJ.ChuKouRecordIP = TEST_START; //±£»¤Ôª¼þ³ö¿Úʼþ¼Ç¼±êÖ¾ + ATBH_DLLDIFFAYJ.QiDongCode = ATBH_DLLDIFF_QD; //Ôª¼þÆô¶¯Ê¼þ´úÂë + ATBH_DLLDIFFAYJ.ChuKouCode = ATBH_DLLDIFF_CK; //Ôª¼þ³ö¿Úʼþ´úÂë + ATBH_DLLDIFFAYJ.FanHuiCode = ATBH_DLLDIFF_FH; //Ôª¼þ·µ»ØÊ¼þ´úÂë + ATBH_DLLDIFFAYJ.TimeValue = 0; //±£»¤Ôª¼þ¼ÆÊ±Æ÷ + ATBH_DLLDIFFAYJ.YaoXinNumber = ATBH_YAOXIN_DLLDIFF; //¶ÔÓ¦µÄÈíÒ£ÐźŠ+ + //³õʼ»¯·ÇµçÁ¿±£»¤ + if(0 == rebootip) + { + rebootip = 1; + //ÖØÍß˹Ԫ¼þ + ATBH_ZWSYJ.ClsDwnIP = 0; + ATBH_ZWSYJ.InNo=ATBH_ZWS_KR; //¶ÔÓ¦µÄ¿ªÈëºÅ + ATBH_ZWSYJ.QiDongBit=ATBH_ZWS_BIT; //Ôª¼þÆô¶¯Î» + ATBH_ZWSYJ.OldStatus=OFF; + ATBH_ZWSYJ.IPAddress=&BaoHuQiDongIP; //Æô¶¯±êÖ¾×ÖµØÖ· + ATBH_ZWSYJ.SoeRecordIP=TEST_START; //Soeʼþ¼Ç¼±êÖ¾ + ATBH_ZWSYJ.ChuKouRecordIP=TEST_START; //±£»¤Ôª¼þ³ö¿Úʼþ¼Ç¼±êÖ¾ + ATBH_ZWSYJ.QiDongCode=ATBH_ZWS_CK; //Ôª¼þÆô¶¯Ê¼þ´úÂë + ATBH_ZWSYJ.ChuKouCode=ATBH_ZWS_CK; //Ôª¼þ³ö¿Úʼþ´úÂë + ATBH_ZWSYJ.FanHuiCode=ATBH_ZWS_FH; //Ôª¼þ·µ»ØÊ¼þ´úÂë + ATBH_ZWSYJ.YaoXinRecordIP=TEST_START; //ÈíÒ£ÐżÇ¼±êÖ¾ + //ζȢò¶ÎÔª¼þ + ATBH_WD2YJ.ClsDwnIP = 0; + ATBH_WD2YJ.InNo=ATBH_WD2_KR; //¶ÔÓ¦µÄ¿ªÈëºÅ + ATBH_WD2YJ.OldStatus=OFF; + ATBH_WD2YJ.QiDongBit=ATBH_WD2_BIT; //Ôª¼þÆô¶¯Î» + ATBH_WD2YJ.IPAddress=&BaoHuQiDongIP; //Æô¶¯±êÖ¾×ÖµØÖ· + ATBH_WD2YJ.SoeRecordIP=TEST_START; //Soeʼþ¼Ç¼±êÖ¾ + ATBH_WD2YJ.ChuKouRecordIP=TEST_START; //±£»¤Ôª¼þ³ö¿Úʼþ¼Ç¼±êÖ¾ + ATBH_WD2YJ.QiDongCode=ATBH_WD2_CK; //Ôª¼þÆô¶¯Ê¼þ´úÂë + ATBH_WD2YJ.ChuKouCode=ATBH_WD2_CK; //Ôª¼þ³ö¿Úʼþ´úÂë + ATBH_WD2YJ.FanHuiCode=ATBH_WD2_FH; //Ôª¼þ·µ»ØÊ¼þ´úÂë + ATBH_WD2YJ.YaoXinRecordIP=TEST_START; //ÈíÒ£ÐżÇ¼±êÖ¾ + //ѹÁ¦ÊÍ·ÅÔª¼þ + ATBH_YLSFYJ.ClsDwnIP = 0; + ATBH_YLSFYJ.InNo=ATBH_YLSF_KR; //¶ÔÓ¦µÄ¿ªÈëºÅ + ATBH_YLSFYJ.OldStatus=OFF; + ATBH_YLSFYJ.QiDongBit=ATBH_YLSF_BIT; //Ôª¼þÆô¶¯Î» + ATBH_YLSFYJ.IPAddress=&BaoHuQiDongIP; //Æô¶¯±êÖ¾×ÖµØÖ· + ATBH_YLSFYJ.SoeRecordIP=TEST_START; //Soeʼþ¼Ç¼±êÖ¾ + ATBH_YLSFYJ.ChuKouRecordIP=TEST_START; //±£»¤Ôª¼þ³ö¿Úʼþ¼Ç¼±êÖ¾ + ATBH_YLSFYJ.QiDongCode=ATBH_YLSF_CK; //Ôª¼þÆô¶¯Ê¼þ´úÂë + ATBH_YLSFYJ.ChuKouCode=ATBH_YLSF_CK; //Ôª¼þ³ö¿Úʼþ´úÂë + ATBH_YLSFYJ.FanHuiCode=ATBH_YLSF_FH; //Ôª¼þ·µ»ØÊ¼þ´úÂë + ATBH_YLSFYJ.YaoXinRecordIP=TEST_START; //ÈíÒ£ÐżÇ¼±êÖ¾ + + //±¸ÓÃÐźÅÔª¼þ + ATBH_BYXHYJ.ClsDwnIP = 0; + ATBH_BYXHYJ.InNo=ATBH_BYXH_KR; //¶ÔÓ¦µÄ¿ªÈëºÅ + ATBH_BYXHYJ.OldStatus=OFF; + ATBH_BYXHYJ.QiDongBit=ATBH_BAK_BIT; //Ôª¼þÆô¶¯Î» + ATBH_BYXHYJ.IPAddress=&BaoHuQiDongIP; //Æô¶¯±êÖ¾×ÖµØÖ· + ATBH_BYXHYJ.SoeRecordIP=TEST_START; //Soeʼþ¼Ç¼±êÖ¾ + ATBH_BYXHYJ.ChuKouRecordIP=TEST_START; //±£»¤Ôª¼þ³ö¿Úʼþ¼Ç¼±êÖ¾ + ATBH_BYXHYJ.QiDongCode=ATBH_BYXH_CK; //Ôª¼þÆô¶¯Ê¼þ´úÂë + ATBH_BYXHYJ.ChuKouCode=ATBH_BYXH_CK; //Ôª¼þ³ö¿Úʼþ´úÂë + ATBH_BYXHYJ.FanHuiCode=ATBH_BYXH_FH; //Ôª¼þ·µ»ØÊ¼þ´úÂë + ATBH_BYXHYJ.YaoXinRecordIP=TEST_START; //ÈíÒ£ÐżÇ¼±êÖ¾ + } + + #ifdef TEMPERATURE_ENABLE + //ζȸ澯1Ôª¼þ + ATBH_CWWD1YJ.ClsDwnIP = 0; + ATBH_CWWD1YJ.TouRuIP=ATBH_CWWD1TouRu; //±£»¤Ôª¼þͶÈë±êÖ¾ + ATBH_CWWD1YJ.Type=GL_TYPE; //±£»¤Ôª¼þÀàÐÍ + ATBH_CWWD1YJ.SetValue=ATBH_WD1Set.SetValue; //Õû¶¨Öµ + ATBH_CWWD1YJ.SetTime=ATBH_WD1Set.Time; //Õû¶¨Ê±¼ä + ATBH_CWWD1YJ.MeasureValue=&ChannelValue[CH_ATBH_WD1].YouXiaoZhi[JiBo].Analog; //²âÁ¿Öµ + ATBH_CWWD1YJ.QiDongBit=ATBH_CWWD1_BIT; //Ôª¼þÆô¶¯Î» + ATBH_CWWD1YJ.IPAddress=&TempQiDongIP; //Æô¶¯±êÖ¾×ÖµØÖ· + ATBH_CWWD1YJ.SoeRecordIP=TEST_START; //Soeʼþ¼Ç¼±êÖ¾ + ATBH_CWWD1YJ.ChuKouRecordIP=TEST_START; //±£»¤Ôª¼þ³ö¿Úʼþ¼Ç¼±êÖ¾ + ATBH_CWWD1YJ.QiDongCode=ATBH_CW_WD1_CK; //Ôª¼þÆô¶¯Ê¼þ´úÂë + ATBH_CWWD1YJ.ChuKouCode=ATBH_CW_WD1_CK; //Ôª¼þ³ö¿Úʼþ´úÂë + ATBH_CWWD1YJ.FanHuiCode=ATBH_CW_WD1_FH; //Ôª¼þ·µ»ØÊ¼þ´úÂë + ATBH_CWWD1YJ.TimeValue=0; //±£»¤Ôª¼þ¼ÆÊ±Æ÷ + ATBH_CWWD1YJ.YaoXinNumber=ATBH_YAOXIN_CWWD1; //¶ÔÓ¦µÄÈíÒ£ÐźŠ+ //ζȸ澯2Ôª¼þ + ATBH_CWWD2YJ.ClsDwnIP = 0; + ATBH_CWWD2YJ.TouRuIP=ATBH_CWWD2TouRu; //±£»¤Ôª¼þͶÈë±êÖ¾ + ATBH_CWWD2YJ.Type=GL_TYPE; //±£»¤Ôª¼þÀàÐÍ + ATBH_CWWD2YJ.SetValue=ATBH_WD2Set.SetValue; //Õû¶¨Öµ + ATBH_CWWD2YJ.SetTime=ATBH_WD2Set.Time; //Õû¶¨Ê±¼ä + ATBH_CWWD2YJ.MeasureValue=&ChannelValue[CH_ATBH_WD2].YouXiaoZhi[JiBo].Analog; //²âÁ¿Öµ + ATBH_CWWD2YJ.QiDongBit=ATBH_CWWD2_BIT; //Ôª¼þÆô¶¯Î» + ATBH_CWWD2YJ.IPAddress=&TempQiDongIP; //Æô¶¯±êÖ¾×ÖµØÖ· + ATBH_CWWD2YJ.SoeRecordIP=TEST_START; //Soeʼþ¼Ç¼±êÖ¾ + ATBH_CWWD2YJ.ChuKouRecordIP=TEST_START; //±£»¤Ôª¼þ³ö¿Úʼþ¼Ç¼±êÖ¾ + ATBH_CWWD2YJ.QiDongCode=ATBH_CW_WD1_CK; //Ôª¼þÆô¶¯Ê¼þ´úÂë + ATBH_CWWD2YJ.ChuKouCode=ATBH_CW_WD2_CK; //Ôª¼þ³ö¿Úʼþ´úÂë + ATBH_CWWD2YJ.FanHuiCode=ATBH_CW_WD2_FH; //Ôª¼þ·µ»ØÊ¼þ´úÂë + ATBH_CWWD2YJ.TimeValue=0; //±£»¤Ôª¼þ¼ÆÊ±Æ÷ + ATBH_CWWD2YJ.YaoXinNumber=ATBH_YAOXIN_CWWD2; //¶ÔÓ¦µÄÈíÒ£ÐźŠ+ #endif + +} + + +//¹«¹²¶ÔÏó¶¨Òå 20210221 +void commobjectinit() +{ + g_comm_object_ied.do_comm.led_run = LED_RUN_DO; //ÔËÐÐµÆ + g_comm_object_ied.do_comm.led_alarm = LED_ALARM_DO; //¸æ¾¯µÆ + //g_comm_object_ied.do_comm.led_com = ATBH_TX_LED_KC; //ͨÐÅµÆ + g_comm_object_ied.do_comm.led_check = LED_TEST_DO; //¼ìÐÞµÆ + g_comm_object_ied.do_comm.led_trip = ATBH_TZ_LED_KC; //ÌøÕ¢µÆ + g_comm_object_ied.do_comm.led_rcls_act = ATBH_CHZDZ_LED_KC; //ÖØºÏÕ¢¶¯×÷µÆ + //g_comm_object_ied.do_comm.led_timesyn = ATBH_GPS_LED_KC; //ʱÖÓͬ²½ + + g_comm_object_ied.do_comm.prtcalarm = ATBH_GJ_KC; //±£»¤¸æ¾¯ + g_comm_object_ied.param_com.prtcalarm_mask = ATBH_TPTDX_BIT | ATBH_FPTDX_BIT | ATBH_CLYX_BIT | ATBH_FI1_BIT | ATBH_QWS_BIT | ATBH_WD1_BIT | ATBH_YWD_BIT | ATBH_YWG_BIT | ATBH_YCFZ_BIT; + g_comm_object_ied.relaytype = RELAY_TYPE_PROTECT; //±£»¤×°Öà + + #ifdef DEVICE_TYPE_DIGITAL + g_comm_object_ied.ver_comm.ver = VERSION_L_DIGTAL; //°æ±¾ºÅ + g_comm_object_ied.rmtsgnl_coomm.rmtsgnl_check = ATBH_YAOXIN_JX; //¼ìÐÞÒ£ÐÅ + #else + g_comm_object_ied.rmtsgnl_coomm.rmtsgnl_check = ATBH_YAOXIN_STRIP_TEST; //¼ìÐÞÒ£ÐÅ + g_comm_object_ied.ver_comm.ver = VERSION_L; //°æ±¾ºÅ + g_comm_object_ied.ver_comm.ver_build = VERSION_BUILD; //ÄÚ²¿°æ±¾ºÅ + #endif + + //IO²å¼þÀàÐÍ + //io²å¼þ1 + set_io_type(IO_NO_BOARD1,IO_TYPE_IN31_OUT0); + //io²å¼þ2 + //set_io_type(IO_NO_BOARD2,IO_TYPE_INT0_OUT20); + //io²å¼þ3 + set_io_type(IO_NO_BOARD3,IO_TYPE_INT0_OUT20); + //µçÔ´²å¼þ + set_io_type(IO_NO_BOARD5,IO_TYPE_INT15_OUT0); + //IO1¹ØÁªÁ˱£»¤Âß¼­ÅÐ¶Ï + set_prtclogic_related_io(IO_NO_BOARD1); +} + + +/**************************************************** + * void InitAnalogChannel(void) + * ÃèÊö£º³õʼ»¯Ä£ÄâÁ¿Í¨µÀ + * ÀúÊ·£º + ****************************************************/ +void InitAnalogChannel(void) +{ + int i,number; + + unsigned char analogtype[][3] = { + {CH_ATBH_BH_I,ATBH_IT_TYPE,ATBH_IT_BC_TYPE}, //3//TÏß±£»¤ÈÆ×éµçÁ÷ + {CH_ATBH_BH_IF,ATBH_IF_TYPE,ATBH_IF_BC_TYPE}, //4//FÏß±£»¤ÈÆ×éµçÁ÷ + {CH_ATBH_CD_IT,ATBH_UNUSE_TYPE,ATBH_IT_DC_TYPE}, //5//¶Ô²àTÏßÈÆ×éµçÁ÷ + {CH_ATBH_CD_IF,ATBH_UNUSE_TYPE,ATBH_IF_DC_TYPE}, //6//¶Ô²àFÏßÈÆ×éµçÁ÷ + {CH_ATBH_CL_I,ATBH_ITM_TYPE,ATBH_UNUSE_TYPE}, //7TÏß²âÁ¿ÈÆ×éµçÁ÷ + {CH_ATBH_CL_IF,ATBH_IFM_TYPE,ATBH_UNUSE_TYPE}, //FÏß²âÁ¿ÈÆ×éµçÁ÷ + {CH_ATBH_UT,ATBH_UT_TYPE,ATBH_UT_TYPE}, //9//TÏßµçѹ + {CH_ATBH_UF,ATBH_UF_TYPE,ATBH_UF_TYPE}, //10FÏßµçѹ + {CH_ATBH_DIFF,ATBH_IDIFF_TYPE,ATBH_IDIFF_TYPE}, //²î¶¯µçÁ÷£¬¼ÆËãÁ¿£¬Â¼²¨»áÓõ½ + }; + + number = sizeof(analogtype) / sizeof(analogtype[0]); + //³õʼ»¯²ÉÑùͨµÀ + for(i = 0; i < number; i++) + { + //¶Ï·Æ÷½ÓÈ뷽ʽ + if(BREAKER_TYPE == ATBH_ATMode) + { + ChannelValue[analogtype[i][0]].YouXiaoZhi[JiBo].Analog.Type = analogtype[i][1]; + } + else + { + //·ÇAT¹©µç + ChannelValue[analogtype[i][0]].YouXiaoZhi[JiBo].Analog.Type = analogtype[i][2]; + } + //±£»¤µçÁ÷¼ÆËã2´Îг²¨ + if(ANIN_TYPE_BH_I == ChannelValue[analogtype[i][0]].Type) + { + ChannelValue[analogtype[i][0]].FS_IP = JiBoBit | XieBo2Bit; + } + else + { + ChannelValue[analogtype[i][0]].FS_IP = JiBoBit; + } + ChannelValue[analogtype[i][0]].YouXiaoZhi[JiBo].Analog.Mode = DisplayMode; //��ʾģʽ + } + + + //³õʼ»¯¿Ì¶ÈУÕýͨµÀ + unsigned int analogadjuset[][3] = { + {ATBH_UT,CH_ATBH_UT,&ATBH_VKSet}, //TÏßµçѹ + {ATBH_UF,CH_ATBH_UF,&ATBH_VFKSet}, //FÏßµçѹ + {ATBH_BH_IT,CH_ATBH_BH_I,&ATBH_BaoHuIKSet}, //TÏß±£»¤ÈÆ×éµçÁ÷ + {ATBH_DC_IT,CH_ATBH_CD_IT,&ATBH_ChaDongIKSet}, //¶Ô²àTÏß±£»¤ÈÆ×éµçÁ÷ + {ATBH_CL_IT,CH_ATBH_CL_I,&ATBH_CeLiangIKSet}, //TÏß²âÁ¿ÈÆ×éµçÁ÷ + {ATBH_BH_IF,CH_ATBH_BH_IF,&ATBH_BaoHuFIKSet}, //FÏß±£»¤ÈÆ×éµçÁ÷ + {ATBH_DC_IF,CH_ATBH_CD_IF,&ATBH_ChaDongFIKSet}, //¶Ô²àFÏß²î¶¯ÈÆ×éµçÁ÷ + {ATBH_CL_IF,CH_ATBH_CL_IF,&ATBH_CeLiangFIKSet}, //FÏß²âÁ¿ÈÆ×éµçÁ÷ + }; + + number = sizeof(analogadjuset) / sizeof(analogadjuset[0]); + KDXZValue.Number = ATBH_ANALOGADJUST_NUMBER; + for(i = 0; i < number; i++) + { + KDXZValue.Table[analogadjuset[i][0]].ChannelNo = analogadjuset[i][1]; + + KDXZValue.Table[analogadjuset[i][0]].SetValueAdd = analogadjuset[i][2]; + } + +} + +/****************************************************************************** +* Function: AninChannalTypeInit +* Description:ͨµÀÀàÐͳõʼ»¯ +* Calls: none +* Called By: +* Input: +* Ouput: +* Return: +* others: +* History: +* 1.luoyang created +* +*******************************************************************************/ +void AninChannalTypeInit() +{ + //ͨµÀÀàÐÍ + + ChannelValue[CH_ATBH_UT].Type= ANIN_TYPE_BH_U; //TÏßµçѹ + ChannelValue[CH_ATBH_UF].Type = ANIN_TYPE_BH_U; //FÏßµçѹ + ChannelValue[CH_ATBH_BH_I].Type = ANIN_TYPE_BH_I; //TÏß±£»¤ÈÆ×éµçÁ÷ + ChannelValue[CH_ATBH_CL_I].Type = ANIN_TYPE_CL_I; //TÏß²âÁ¿ÈÆ×éµçÁ÷ + ChannelValue[CH_ATBH_BH_IF].Type = ANIN_TYPE_BH_I; //FÏß±£»¤ÈÆ×éµçÁ÷ + ChannelValue[CH_ATBH_CL_IF].Type = ANIN_TYPE_CL_I; //FÏß²âÁ¿ÈÆ×éµçÁ÷ + ChannelValue[CH_ATBH_CD_IT].Type = ANIN_TYPE_BH_I; //TÏß²î¶¯ÈÆ×éµçÁ÷ + ChannelValue[CH_ATBH_CD_IF].Type = ANIN_TYPE_BH_I; //FÏß²î¶¯ÈÆ×éµçÁ÷ + ChannelValue[CH_ATBH_WD1].Type = ANIN_TYPE_BH_W; //TÏß²î¶¯ÈÆ×éµçÁ÷ + ChannelValue[CH_ATBH_WD2].Type = ANIN_TYPE_BH_W; //FÏß²î¶¯ÈÆ×éµçÁ÷ + ChannelValue[CH_ATBH_AD1].Type = ANIN_TYPE_ZJ; //AD1×Ô¼ì + ChannelValue[CH_ATBH_AD2].Type = ANIN_TYPE_ZJ; //AD2×Ô¼ì + ChannelValue[CH_ATBH_AD3].Type = ANIN_TYPE_ZJ; //AD2×Ô¼ì + ChannelValue[CH_ATBH_DIFF].Type = ANIN_TYPE_BH_I; //²î¶¯µçÁ÷ + + ChannelValue[CH_ATBH_UT].StYaoXinNo= ATBH_YAOXIN_ANIN_ST_UT; //TÏßµçѹ + ChannelValue[CH_ATBH_UF].StYaoXinNo = ATBH_YAOXIN_ANIN_ST_UF; //FÏßµçѹ + ChannelValue[CH_ATBH_BH_I].StYaoXinNo = ATBH_YAOXIN_ANIN_ST_BHIT; //TÏß±£»¤ÈÆ×éµçÁ÷ + ChannelValue[CH_ATBH_CL_I].StYaoXinNo = ATBH_YAOXIN_ANIN_ST_CLIT; //TÏß²âÁ¿ÈÆ×éµçÁ÷ + ChannelValue[CH_ATBH_BH_IF].StYaoXinNo = ATBH_YAOXIN_ANIN_ST_BHIF; //FÏß±£»¤ÈÆ×éµçÁ÷ + ChannelValue[CH_ATBH_CL_IF].StYaoXinNo = ATBH_YAOXIN_ANIN_ST_CLIF; //FÏß²âÁ¿ÈÆ×éµçÁ÷ + ChannelValue[CH_ATBH_CD_IT].StYaoXinNo = ATBH_YAOXIN_ANIN_ST_ITCD; //TÏß²î¶¯ÈÆ×éµçÁ÷ + ChannelValue[CH_ATBH_CD_IF].StYaoXinNo = ATBH_YAOXIN_ANIN_ST_IFCD; //FÏß²î¶¯ÈÆ×éµçÁ÷ + ChannelValue[CH_ATBH_WD1].StYaoXinNo = ATBH_YAOXIN_ANIN_ST_WD1; //ζÈ1 + ChannelValue[CH_ATBH_WD2].StYaoXinNo = ATBH_YAOXIN_ANIN_ST_WD2; //ζÈ2 + + AninChannallCoeff_SV_init(); +} + +/****************************************************************************** +* Function: AninParameterInit +* Description:ͨµÀ²ÎÊý³õʼ»¯ +* Calls: none +* Called By: +* Input: +* Ouput: +* Return: +* others: +* History: +* 1.luoyang created +* +*******************************************************************************/ + +void AninParameterInit() +{ + + //Ò»´Î¶î¶¨ + ChannelValue[CH_ATBH_UT].RatioValue1= ATBH_PTRated1; //TÏßµçѹ + ChannelValue[CH_ATBH_UF].RatioValue1 = ATBH_PTRated1; //FÏßµçѹ + ChannelValue[CH_ATBH_BH_I].RatioValue1 = ATBH_CTRated1; //TÏß±£»¤ÈÆ×éµçÁ÷ + ChannelValue[CH_ATBH_CL_I].RatioValue1 = ATBH_CTRated1; //TÏß²âÁ¿ÈÆ×éµçÁ÷ + ChannelValue[CH_ATBH_BH_IF].RatioValue1 = ATBH_CTRated1; //FÏß±£»¤ÈÆ×éµçÁ÷ + ChannelValue[CH_ATBH_CL_IF].RatioValue1 = ATBH_CTRated1; //FÏß²âÁ¿ÈÆ×éµçÁ÷ + //ChannelValue[CH_ATBH_JDI].RatioValue1 = ATBH_CTRated1; //½ÓµØµçÁ÷ + ChannelValue[CH_ATBH_CD_IT].RatioValue1 = ATBH_CTRated1; //TÏß²î¶¯ÈÆ×éµçÁ÷ + ChannelValue[CH_ATBH_CD_IF].RatioValue1 = ATBH_CTRated1; //FÏß²î¶¯ÈÆ×éµçÁ÷ + ChannelValue[CH_ATBH_DIFF].RatioValue1 = ATBH_CTRated1; //²î¶¯µçÁ÷ + + //Ò»´Î¶î¶¨ + ChannelValue[CH_ATBH_UT].RatioValue2 = RATED_VOLTAGE_275_2; //TÏßµçѹ + ChannelValue[CH_ATBH_UF].RatioValue2 = RATED_VOLTAGE_275_2; //FÏßµçѹ + ChannelValue[CH_ATBH_BH_I].RatioValue2 = ATBH_CTRated2; //TÏß±£»¤ÈÆ×éµçÁ÷ + ChannelValue[CH_ATBH_CL_I].RatioValue2 = ATBH_CTRated2; //TÏß²âÁ¿ÈÆ×éµçÁ÷ + ChannelValue[CH_ATBH_BH_IF].RatioValue2 = ATBH_CTRated2; //FÏß±£»¤ÈÆ×éµçÁ÷ + ChannelValue[CH_ATBH_CL_IF].RatioValue2 = ATBH_CTRated2; //FÏß²âÁ¿ÈÆ×éµçÁ÷ + //ChannelValue[CH_ATBH_JDI].RatioValue2 = ATBH_CTRated2; //½ÓµØµçÁ÷ + ChannelValue[CH_ATBH_CD_IT].RatioValue2 = ATBH_CTRated2; //TÏß²î¶¯ÈÆ×éµçÁ÷ + ChannelValue[CH_ATBH_CD_IF].RatioValue2 = ATBH_CTRated2; //FÏß²î¶¯ÈÆ×éµçÁ÷ + + ChannelValue[CH_ATBH_DIFF].RatioValue2 = ATBH_CTRated2; //²î¶¯µçÁ÷ + + //΢µ÷ϵÊý + ChannelValue[CH_ATBH_UT].VKSet = ATBH_VKSet; //TÏßµçѹ + ChannelValue[CH_ATBH_UF].VKSet = ATBH_VFKSet; //FÏßµçѹ + ChannelValue[CH_ATBH_BH_I].VKSet = ATBH_BaoHuIKSet; //TÏß±£»¤ÈÆ×éµçÁ÷ + ChannelValue[CH_ATBH_CL_I].VKSet = ATBH_CeLiangIKSet; //TÏß²âÁ¿ÈÆ×éµçÁ÷ + ChannelValue[CH_ATBH_BH_IF].VKSet = ATBH_BaoHuFIKSet; //FÏß±£»¤ÈÆ×éµçÁ÷ + ChannelValue[CH_ATBH_CL_IF].VKSet = ATBH_CeLiangFIKSet; //FÏß²âÁ¿ÈÆ×éµçÁ÷ + //ChannelValue[CH_ATBH_JDI].VKSet = ATBH_IJDKSet; //½ÓµØµçÁ÷ + ChannelValue[CH_ATBH_CD_IT].VKSet = ATBH_ChaDongIKSet; //TÏß²î¶¯ÈÆ×éµçÁ÷ + ChannelValue[CH_ATBH_CD_IF].VKSet = ATBH_ChaDongFIKSet; //FÏß²î¶¯ÈÆ×éµçÁ÷ + ChannelValue[CH_ATBH_DIFF].VKSet = ATBH_BaoHuIKSet; //²î¶¯µçÁ÷ + + +} + +void InitOutStatus(void) +{ +//¹¦ÄÜ˵Ã÷£º¸ù¾Ý²»Í¬µÄ×°ÖÃÀàÐͳõʼ»¯½á¹¹±äÁ¿OutStatusÖеÄÏà¹Ø²ÎÊý +//ÊäÈë²ÎÊý£ºÎÞ¡£ +//Êä³ö²ÎÊý£ºÎÞ¡£ +//¸Ã³ÌÐòÓɳõʼ»¯³ÌÐòµ÷Óà + unsigned int i,j; + /* + for(i = 0; i < OUTPUT_NUM; i++) //´«¶¯³õʼ»¯ + { + OutStatus.ChuanDongObjectSet[i] = 0xff; + OutStatus.ObjectKcType[i] = 0xff; + OutStatus.ObjectKcBit[i] = 0xff; + OutStatus.BlockYaoXinNo[i] = 0xff; + OutStatus.CurrStatus[i] = 0; + OutStatus.AllowKcIP[i]=TEST_START; + OutStatus.ChuanDongObjectType[i] = 0xFF; + } + */ + //³õʼ»¯±ÕËøÒ£ÐÅ + + OutStatus.BlockYaoXinNo[ATBH_QF_TZ_KC] = ATBH_YAOXIN_BS_QF_FZ; + OutStatus.BlockYaoXinNo[ATBH_QF_HZ_KC] = ATBH_YAOXIN_BS_QF_HZ; + OutStatus.BlockYaoXinNo[ATBH_1QS_TZ_KC] = ATBH_YAOXIN_BS_1QS_FZ; + OutStatus.BlockYaoXinNo[ATBH_1QS_HZ_KC] = ATBH_YAOXIN_BS_1QS_HZ; + OutStatus.BlockYaoXinNo[ATBH_2QS_TZ_KC] = ATBH_YAOXIN_BS_2QS_FZ; + OutStatus.BlockYaoXinNo[ATBH_2QS_HZ_KC] = ATBH_YAOXIN_BS_2QS_HZ; + OutStatus.BlockYaoXinNo[ATBH_3QS_TZ_KC] = ATBH_YAOXIN_BS_3QS_FZ; + OutStatus.BlockYaoXinNo[ATBH_3QS_HZ_KC] = ATBH_YAOXIN_BS_3QS_HZ; + + /* + //³õʼ»¯Ïà¹Ø´«¶¯ÊÔÑé¶ÔÏó¶ÔÓ¦µÄ¿ª³ö + + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_AMD_LED] = ATBH_AM_LED_KC; //¸æ¾¯µÆ + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_TZ_LED] = ATBH_TZ_LED_KC; //ÌøÕ¢µÆ + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_ZTTR_LED]= ATBH_ZTTR_LED_KC; //×ÔͶͶÈëµÆ + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_ZTDZ_LED]= ATBH_ZTDZ_LED_KC; //×ÔͶ¶¯×÷µÆ + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_JX_LED] = ATBH_JX_LED_KC; //¼ìÐÞµÆ + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_QF_HWD] = ATBH_QF_HWD_KC; //¶Ï·Æ÷ºÏλµÆ + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_QF_FWD] = ATBH_QF_FWD_KC; //¶Ï·Æ÷·ÖλµÆ + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_1QS_HWD] = ATBH_1QS_HWD_KC; //¸ô¿ª1ºÏλµÆ + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_1QS_FWD] = ATBH_1QS_FWD_KC; //¸ô¿ª1·ÖλµÆ + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_2QS_HWD] = ATBH_2QS_HWD_KC; //¸ô¿ª2ºÏλµÆ + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_2QS_FWD] = ATBH_2QS_FWD_KC; //¸ô¿ª2·ÖλµÆ + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_3QS_HWD] = ATBH_3QS_HWD_KC; //¸ô¿ª3ºÏλµÆ + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_3QS_FWD] = ATBH_3QS_FWD_KC; //¸ô¿ª3·ÖλµÆ + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_BCJ] = ATBH_BCJQ_KC; //±£»¤ÌøÕ¢ + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_QF_TZ] = ATBH_QF_TZ_KC; //¿ØÖÆ·ÖÕ¢ + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_QF_HZ] = ATBH_QF_HZ_KC; //¿ØÖƺÏÕ¢ + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_1QS_TZ] = ATBH_1QS_TZ_KC; //¸ô¿ª1·ÖÕ¢ + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_1QS_HZ] = ATBH_1QS_HZ_KC; //¸ô¿ª1ºÏÕ¢ + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_2QS_TZ] = ATBH_2QS_TZ_KC; //¸ô¿ª2·ÖÕ¢ + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_2QS_HZ] = ATBH_2QS_HZ_KC; //¸ô¿ª2ºÏÕ¢ + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_3QS_TZ] = ATBH_3QS_TZ_KC; //¸ô¿ª2·ÖÕ¢ + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_3QS_HZ] = ATBH_3QS_HZ_KC; //¸ô¿ª2ºÏÕ¢ + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_BHQD] = ATBH_BHQD_KC; //±£»¤Æô¶¯ + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_ZTQD] = ATBH_CDJQ_KC; //Æô¶¯×ÔͶ + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_SL] = ATBH_SL_KC; //¶Ï·Æ÷ʧÁé + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_HCJ] = ATBH_HCJ_KC; //±£»¤ºÏÕ¢ + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_GPS_LED] = ATBH_GPS_LED_KC; //GPSÐÅºÅµÆ + + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_QF_FZ_BS] = ATBH_1QF_FZ_BS_KC; + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_QF_HZ_BS] = ATBH_1QF_HZ_BS_KC; + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_1QS_FZ_BS] = ATBH_1QS_FZ_BS_KC; + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_1QS_HZ_BS] = ATBH_1QS_HZ_BS_KC; + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_2QS_FZ_BS] = ATBH_2QS_FZ_BS_KC; + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_2QS_HZ_BS] = ATBH_2QS_HZ_BS_KC; + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_3QS_FZ_BS] = ATBH_3QS_FZ_BS_KC; + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_3QS_HZ_BS] = ATBH_3QS_HZ_BS_KC; + + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_BY1] = ATBH_BY1_KC; + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_BY2] = ATBH_BY2_KC; + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_BY3] = ATBH_BY3_KC; + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_BY4] = ATBH_BY4_KC; + + OutStatus.BlockYaoXinNo[ATBH_4QS_TZ_KC] = ATBH_YAOXIN_BS_4QS_FZ; + OutStatus.BlockYaoXinNo[ATBH_4QS_HZ_KC] = ATBH_YAOXIN_BS_4QS_HZ; + OutStatus.BlockYaoXinNo[ATBH_5QS_TZ_KC] = ATBH_YAOXIN_BS_5QS_FZ; + OutStatus.BlockYaoXinNo[ATBH_5QS_HZ_KC] = ATBH_YAOXIN_BS_5QS_HZ; + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_4QS_HWD] = ATBH_4QS_HWD_KC; //¸ô¿ª4ºÏλµÆ + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_4QS_FWD] = ATBH_4QS_FWD_KC; //¸ô¿ª4·ÖλµÆ + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_5QS_HWD] = ATBH_5QS_HWD_KC; //¸ô¿ª5ºÏλµÆ + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_5QS_FWD] = ATBH_5QS_FWD_KC; //¸ô¿ª5·ÖλµÆ + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_4QS_TZ] = ATBH_4QS_TZ_KC; //¸ô¿ª4·ÖÕ¢ + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_4QS_HZ] = ATBH_4QS_HZ_KC; //¸ô¿ª4ºÏÕ¢ + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_5QS_TZ] = ATBH_5QS_TZ_KC; //¸ô¿ª5·ÖÕ¢ + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_5QS_HZ] = ATBH_5QS_HZ_KC; //¸ô¿ª5ºÏÕ¢ + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_4QS_FZ_BS] = ATBH_4QS_FZ_BS_KC; + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_4QS_HZ_BS] = ATBH_4QS_HZ_BS_KC; + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_5QS_FZ_BS] = ATBH_5QS_FZ_BS_KC; + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_5QS_HZ_BS] = ATBH_5QS_HZ_BS_KC; + + //ÀàÐͳõʼ»¯£¬½öÌØÊâ´¦Àí¸´¹éºÍ×ÔͶͶÍË + OutStatus.ChuanDongObjectType[ATBH_CDTEST_FGJ] = FG_TYPE; + //OutStatus.ChuanDongObjectType[ATBH_CDTEST_ZTTT] = TT_TYPE; + */ + + /* + //CRCCÈÏÖ¤Ìí¼Ó + OutStatus.ChuanDongObjectType[ATBH_CDTEST_CHECK] = SOFT_STRIP_TYPE; + OutStatus.ChuanDongObjectType[ATBH_CDTEST_SECDDISPLAY] = SOFT_STRIP_TYPE; + OutStatus.ChuanDongObjectType[ATBH_CDTEST_RECLS] = SOFT_STRIP_TYPE; + OutStatus.ChuanDongObjectType[ATBH_CDTEST_ATSWITCH] = SOFT_STRIP_TYPE; + OutStatus.ChuanDongObjectType[ATBH_CDTEST_INTERLOCK] = SOFT_STRIP_TYPE; + + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_CHECK] = ATBH_SOFTSTRAP_OBJECT_CHECK; + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_SECDDISPLAY] = ATBH_SOFTSTRAP_OBJECT_SECDDISPLAY; + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_RECLS] = ATBH_SOFTSTRAP_OBJECT_RECLS; + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_ATSWITCH] = ATBH_SOFTSTRAP_OBJECT_ATSWITCH; + OutStatus.ChuanDongObjectSet[ATBH_CDTEST_INTERLOCK] = ATBH_SOFTSTRAP_OBJECT_INTERLOCK; + */ + //OutStatus.ChuanDongObjectSet[ATBH_CDTEST_CHZTR_LED] = ATBH_CHZTR_LED_KC; + for(i = ATBH_CDTEST_CHECK,j = 0; j < ATBH_SOFTSTRAP_OBJECT_NUMBER; i++, j++) + { + OutStatus.ChuanDongObjectSet[i] = ATBH_SOFTSTRAP_OBJECT_CHECK + j; + } + + + //Ðè¼Ç¼״̬ + OutStatus.ObjectKcType[ATBH_CHZDZ_LED_KC] = DRIVE_RECD_FAULT_KC_TYPE; + OutStatus.ObjectKcType[ATBH_TZ_LED_KC] = DRIVE_RECD_FAULT_KC_TYPE; + OutStatus.ObjectKcType[ATBH_ZTDZ_LED_KC] = DRIVE_RECD_FAULT_KC_TYPE; + OutStatus.ObjectKcType[ATBH_BTGZ_KC] = DRIVE_RECD_FAULT_KC_TYPE; + + //OutStatus.ObjectKcType[ATBH_BCJQ_KC] = DRIVE_BHTZ_KC_TYPE; //±£»¤ÌøÕ¢¿ª³ö½«Çý¶¯ÌøÕ¢µÆ + OutStatus.ObjectKcType[ATBH_HCJ_KC] = DRIVE_CHZ_KC_TYPE; //±£»¤ºÏÕ¢ + + //OutStatus.ObjectKcBit[ATBH_RUN_LED_KC] = 0; //ÔËÐÐµÆ + //OutStatus.ObjectKcBit[ATBH_AM_LED_KC] = 1; //¸æ¾¯µÆ + //OutStatus.ObjectKcBit[ATBH_TZ_LED_KC] = 3; //ÌøÕ¢µÆ + //OutStatus.ObjectKcBit[ATBH_ZTTR_LED_KC] = 4; //×ÔͶͶÈëµÆ + //OutStatus.ObjectKcBit[ATBH_ZTDZ_LED_KC] = 5; //×ÔͶ¶¯×÷µÆ + //OutStatus.ObjectKcBit[ATBH_CHZTR_LED_KC] = 6; //ÖØºÏբͶÈë + //OutStatus.ObjectKcBit[ATBH_JX_LED_KC] = 7; //¼ìÐÞµÆ + //OutStatus.ObjectKcBit[ATBH_CHZDZ_LED_KC] = 8; //ÖØºÏÕ¢¶¯×÷ + //OutStatus.ObjectKcBit[ATBH_CHZCD_LED_KC] = 9; //ÖØºÏÕ¢³äµç + //OutStatus.ObjectKcBit[ATBH_GPS_LED_KC] = 10; //GPSÐÅºÅµÆ + + + //³õʼ»¯´«¶¯ÊÔÑéÏà¹Ø±êÖ¾ + /* + ChuanDongTest.TestIP=TEST_CLOSE; //ÉèÖô«¶¯ÊÔÑé±ê־Ϊ¡°¹Ø±Õ¡±×´Ì¬ + ChuanDongTest.TestDelay=0; //Öô«¶¯ÊÔÑé¼ÆÊ±Æ÷Ϊ0 + ChuanDongTest.TestNo=0xFF; //Éϴδ«¶¯ÊÔÑé¶ÔÏóºÅ³õʼΪÎÞЧֵ + ChuanDongTest.TestProperty=0xFF; //Éϴδ«¶¯ÊÔÑéÊôÐÔ³õʼΪÎÞЧֵ + ChuanDongTest.TestNo_OLD=0xFF; //Éϴδ«¶¯ÊÔÑé¶ÔÏóºÅ³õʼΪÎÞЧֵ + ChuanDongTest.TestProperty_OLD=0xFF; //Éϴδ«¶¯ÊÔÑéÊôÐÔ³õʼΪÎÞЧֵ + */ + //³õʼ»¯Ò£¿ØÏà¹Ø²ÎÊý + RemoteValue.ModeChannelNo=ATBH_YAOXIN_YK; //Ò£¿Ø·½Ê½¿ªÈëͨµÀºÅ + RemoteValue.OperationTime=ATBH_OperationTime;//QFDelayTime; //¶Ï·Æ÷¶¯×÷ʱ¼ä + RemoteValue.QSOperationTime=ATBH_QSOperationTime;//QSDelayTime; //¸ôÀ뿪¹Ø¶¯×÷ʱ¼ä + //RemoteValue.QFDelayTime = QFDelayTime; //¶Ï·Æ÷²Ù×÷ÑÓʱ + //RemoteValue.QFDelayTime = QSDelayTime; //¸ôÀ뿪¹Ø²Ù×÷ÑÓʱ + //RemoteValue.DelayTime=0; //Ò£¿Ø¼ÆÊ±Æ÷ +} + + +/******************************************************************* + * void InitData(void) + * ÃèÊö£º³õʼ»¯È«¾Ö±äÁ¿ + * ÀúÊ·£º´´½¨ÈÕÆÚ²»Ïê + * + ******************************************************************/ +void InitData(void) +{ + + int i,j,k,m,number; + unsigned char ChannelNo; + + FaultReportType *FaultReport = MemPtrSet.pFaultReport; + WaveType *LoadWaveBuffer = MemPtrSet.pWave; + int trip,sw1,sw2,sw3; + + //±£»¤ÈÆ×éµçÁ÷ + //ATBH_BaoHu_I.Type = I_TYPE; + //ATBH_BaoHu_I.Mode=ChannelValue[CH_ATBH_BH_I].YouXiaoZhi[JiBo].Analog.Mode; //ÏÔʾģʽ + //ATBH_BaoHu_I.Value=0; + //±£»¤ÈÆ×é2´Îг²¨µçÁ÷ + //ATBH_BaoHu_I2.Type=ATBH_BaoHu_I.Type; //Ä£ÄâÁ¿ÀàÐÍ + //ATBH_BaoHu_I2.Mode=ATBH_BaoHu_I.Mode; + //ATBH_BaoHu_I2.Value=0; //Ä£ÄâÁ¿Öµ + //±£»¤ÈÆ×é×ÛºÏг²¨µçÁ÷ + //ATBH_BaoHu_IE.Type=ATBH_BaoHu_I.Type; //Ä£ÄâÁ¿ÀàÐÍ + //ATBH_BaoHu_IE.Mode=ATBH_BaoHu_I.Mode; + //ATBH_BaoHu_IE.Value=0; //Ä£ÄâÁ¿Öµ + + ATBH_BaoHu_IT.Type = ATBH_IT_TYPE; + ATBH_BaoHu_IT.Mode = DisplayMode; + ATBH_BaoHu_IT.Value = 0; + + //²î¶¯2´Îг²¨µçÁ÷º¬Á¿ + ATBH_ChaDong_I2.Type=ATBH_IDIFF2_TYPE; + ATBH_ChaDong_I2.Mode=ChannelValue[CH_ATBH_BH_I].YouXiaoZhi[JiBo].Analog.Mode; //ÏÔʾģʽ + ATBH_ChaDong_I2.Value=0; + //²î¶¯µçÁ÷ºÍÖÆ¶¯µçÁ÷ + ChaDongValue.CDI.Type=ATBH_IDIFF_TYPE; //Ä£ÄâÁ¿ÀàÐÍ + ChaDongValue.CDI.Mode=DisplayMode; //ÏÔʾģʽ + ChaDongValue.CDI.Value=0; //Ä£ÄâÁ¿Öµ + ChaDongValue.ZDI.Type=ATBH_IREST_TYPE; //Ä£ÄâÁ¿ÀàÐÍ + ChaDongValue.ZDI.Mode=DisplayMode; //ÏÔʾģʽ + ChaDongValue.ZDI.Value=0; //Ä£ÄâÁ¿Öµ + + DLLDiffValue.CDI.Type = ATBH_DELTADIFF_TYPE; //Ä£ÄâÁ¿ÀàÐÍ + DLLDiffValue.CDI.Mode = DisplayMode; //ÏÔʾģʽ + DLLDiffValue.CDI.Value = 0; //Ä£ÄâÁ¿Öµ + DLLDiffValue.ZDI.Type = ATBH_IREST_TYPE; //Ä£ÄâÁ¿ÀàÐÍ + DLLDiffValue.ZDI.Mode = DisplayMode; //ÏÔʾģʽ + DLLDiffValue.ZDI.Value = 0; //Ä£ÄâÁ¿Öµ + + //³õʼ»¯¹ÊÕϲÎÊý + //¹ÊÕϵçÁ÷£¨TÏß±£»¤ÈÆ×飩 + ATBH_Fault_IT.Type=ChannelValue[CH_ATBH_BH_I].YouXiaoZhi[JiBo].Analog.Type; //Ä£ÄâÁ¿ÀàÐÍ + ATBH_Fault_IT.Mode=ChannelValue[CH_ATBH_BH_I].YouXiaoZhi[JiBo].Analog.Mode; //ÏÔʾģʽ + //¹ÊÕϵçÁ÷£¨FÏß±£»¤ÈÆ×飩 + ATBH_Fault_IF.Type=ChannelValue[CH_ATBH_BH_IF].YouXiaoZhi[JiBo].Analog.Type; //Ä£ÄâÁ¿ÀàÐÍ + ATBH_Fault_IF.Mode=ChannelValue[CH_ATBH_BH_IF].YouXiaoZhi[JiBo].Analog.Mode; //ÏÔʾģʽ + //¹ÊÕϵçÁ÷£¨TÏß²î¶¯ÈÆ×飩 + ATBH_Fault_CDIT.Type=ChannelValue[CH_ATBH_CD_IT].YouXiaoZhi[JiBo].Analog.Type; //Ä£ÄâÁ¿ÀàÐÍ + ATBH_Fault_CDIT.Mode=ChannelValue[CH_ATBH_CD_IT].YouXiaoZhi[JiBo].Analog.Mode; //ÏÔʾģʽ + //¹ÊÕϵçÁ÷£¨FÏß²î¶¯ÈÆ×飩 + ATBH_Fault_CDIF.Type=ChannelValue[CH_ATBH_CD_IF].YouXiaoZhi[JiBo].Analog.Type; //Ä£ÄâÁ¿ÀàÐÍ + ATBH_Fault_CDIF.Mode=ChannelValue[CH_ATBH_CD_IF].YouXiaoZhi[JiBo].Analog.Mode; //ÏÔʾģʽ + + //¹ÊÕϵçѹ£¨TÏßµçѹ£© + ATBH_Fault_UT.Type=ChannelValue[CH_ATBH_UT].YouXiaoZhi[JiBo].Analog.Type; //Ä£ÄâÁ¿ÀàÐÍ + ATBH_Fault_UT.Mode=ChannelValue[CH_ATBH_UT].YouXiaoZhi[JiBo].Analog.Mode; //ÏÔʾģʽ + //¹ÊÕϵçѹ£¨FÏßµçѹ£© + ATBH_Fault_UF.Type=ChannelValue[CH_ATBH_UF].YouXiaoZhi[JiBo].Analog.Type; //Ä£ÄâÁ¿ÀàÐÍ + ATBH_Fault_UF.Mode=ChannelValue[CH_ATBH_UF].YouXiaoZhi[JiBo].Analog.Mode; //ÏÔʾģʽ + //¹ÊÕϵçÁ÷£¨²î¶¯µçÁ÷£© + ATBH_Fault_ICD.Type=ChaDongValue.CDI.Type; //Ä£ÄâÁ¿ÀàÐÍ + ATBH_Fault_ICD.Mode=ChaDongValue.CDI.Mode; //ÏÔʾģʽ + //¹ÊÕϵçÁ÷£¨Öƶ¯µçÁ÷£© + ATBH_Fault_IZD.Type=ChaDongValue.ZDI.Type; //Ä£ÄâÁ¿ÀàÐÍ + ATBH_Fault_IZD.Mode=ChaDongValue.ZDI.Mode; //ÏÔʾģʽ + //¹ÊÕÏÁ¿ £¨²î¶¯µçÁ÷¶þ´Îг²¨º¬Á¿£© + ATBH_Fault_XB2ICD.Type=ATBH_ChaDong_I2.Type; //Ä£ÄâÁ¿ÀàÐÍ + ATBH_Fault_XB2ICD.Mode=ATBH_ChaDong_I2.Mode; //ÏÔʾģʽ + + //¼²¨Í¨µÀÉèÖà + WaveChannelSet[ATBH_UT_WAVE]=CH_ATBH_UT; //TÏßµçѹ + WaveChannelSet[ATBH_UF_WAVE]=CH_ATBH_UF; //FÏßµçѹ + WaveChannelSet[ATBH_BH_I_WAVE]=CH_ATBH_BH_I; //TÏß±£»¤ÈÆ×éµçÁ÷ + WaveChannelSet[ATBH_BH_IF_WAVE]=CH_ATBH_BH_IF; //FÏß±£»¤ÈÆ×éµçÁ÷ + WaveChannelSet[ATBH_DC_IT_WAVE]=CH_ATBH_CD_IT; //¶Ô²àTÏßÈÆ×éµçÁ÷ + WaveChannelSet[ATBH_DC_IF_WAVE]=CH_ATBH_CD_IF; //¶Ô²àFÏßÈÆ×éµçÁ÷ + WaveChannelSet[ATBH_IDIFF_WAVE]=CH_ATBH_DIFF; //²î¶¯µçÁ÷ + WaveChannelSet[ATBH_CL_I_WAVE]=CH_ATBH_CL_I; //TÏß²âÁ¿ÈÆ×éµçÁ÷ + WaveChannelSet[ATBH_CL_IF_WAVE]=CH_ATBH_CL_IF; //FÏß²âÁ¿ÈÆ×éµçÁ÷ + + + //Êý×ÖÁ¿Â¼²¨ + if(BREAKER_TYPE == ATBH_ATMode) + { + trip = ATBH_BCJQ_KC; + sw1 = ATBH_YAOXIN_QF; + sw2 = ATBH_YAOXIN_1QS; + sw3 = ATBH_YAOXIN_2QS; + } + else + { + trip = ATBH_1QS_BHTZ_KC; + sw1 = ATBH_YAOXIN_1QS; + sw2 = ATBH_YAOXIN_1QSDD_1QF; + sw3 = ATBH_YAOXIN_2QSDD_2QF; + } + unsigned int DigitalWaveSet[][3] = { + {ATBH_QF_DIGITALWAVE,sw1,WAVE_CHANNEL_RMTSIGNAL}, //λÖÃ1 + {ATBH_QS1_DIGITALWAVE,sw2,WAVE_CHANNEL_RMTSIGNAL}, //λÖÃ2 + {ATBH_QS2_DIGITALWAVE,sw3,WAVE_CHANNEL_RMTSIGNAL}, //λÖÃ3 + {ATBH_TRIP1_DIGITALWAVE,trip,WAVE_CHANNEL_DO}, //ÌøÕ¢1 + {ATBH_TRIP2_DIGITALWAVE,ATBH_1QS_DD_1QF_TZ_KC,WAVE_CHANNEL_DO}, //ÌøÕ¢2 + {ATBH_TRIP3_DIGITALWAVE,ATBH_2QS_DD_2QF_TZ_KC,WAVE_CHANNEL_DO}, //ÌøÕ¢3 + {ATBH_RCLS_DIGITALWAVE,ATBH_HCJ_KC,WAVE_CHANNEL_DO}, //ÖØºÏÕ¢ + {ATBH_DIFFI_SD_DIGITALWAVE,ATBH_CDSD_BIT,WAVE_CHANNEL_PRTC_START}, //²î¶¯ËÙ¶Ï + {ATBH_DIFFI_BL_DIGITALWAVE,ATBH_CD_BIT,WAVE_CHANNEL_PRTC_START}, //±ÈÂʲ + {ATBH_SY_DIGITALWAVE,ATBH_SY_BIT,WAVE_CHANNEL_PRTC_START}, //ʧѹ + {ATBH_ZWS_DIGITALWAVE,ATBH_ZWS_BIT,WAVE_CHANNEL_PRTC_START}, //ÖØÍß˹ + {ATBH_WD2_DIGITALWAVE,ATBH_WD2_BIT,WAVE_CHANNEL_PRTC_START}, //ζÈ2¶Î + {ATBH_YLSF_DIGITALWAVE,ATBH_YLSF_BIT,WAVE_CHANNEL_PRTC_START}, //ѹÁ¦ÊÍ·Å + {ATBH_BAK_DIGITALWAVE,ATBH_BAK_BIT,WAVE_CHANNEL_PRTC_START}, //±¸ÓÃÐźŠ+ {ATBH_HI2_DIGITALWAVE,ATBH_XieBoCDI2_BIT,WAVE_CHANNEL_PRTC_ASST}, //²î¶¯¶þ´Îг²¨±ÕËø + {ATBH_DIFF_ALARM_DIGITALWAVE,ATBH_CLYX_BIT,WAVE_CHANNEL_PRTC_ASST}, //²îÁ÷Ô½Ï޸澯 + {ATBH_FI_DIGITALWAVE,ATBH_FI1_BIT,WAVE_CHANNEL_PRTC_ASST}, //¹ý¸ººÉ + {ATBH_TPTDX_DIGITALWAVE,ATBH_TPTDX_BIT,WAVE_CHANNEL_PRTC_ASST}, //TÏßPT¶ÏÏß + {ATBH_FPTDX_DIGITALWAVE,ATBH_FPTDX_BIT,WAVE_CHANNEL_PRTC_ASST}, //FÏßPT¶ÏÏß + {ATBH_DLLDIFF_DIGITALWAVE,ATBH_DLLDIFF_BIT,WAVE_CHANNEL_PRTC_START}, //ÔöÁ¿²î¶¯ + + + }; + number = sizeof(DigitalWaveSet) / sizeof(DigitalWaveSet[0]); + DigitalWaveChannelInit(DigitalWaveSet,number); + DigitalWaveChannelSet.Number = number; + + + //³õʼ»¯¹ÊÕϱ¨¸æ»º³åÇø + for(i=0;iBuffer[i].DeviceType=DEV_ATBH; //×°ÖÃÀàÐÍΪ£ºAT±£»¤×°Öà + FaultReport->Buffer[i].DongZuoIP=0; //¶¯×÷±êÖ¾ÇåÁã + + m = 0; + //²ÎÊý1£ºTÏßµçѹ + FaultReport->Buffer[i].DataBuffer[m].Type=ATBH_Fault_UT.Type; //Ä£ÄâÁ¿ÀàÐÍ + FaultReport->Buffer[i].DataBuffer[m++].Mode=ATBH_Fault_UT.Mode; //ÏÔʾģʽ + //²ÎÊý2£ºFÏßµçѹ + FaultReport->Buffer[i].DataBuffer[m].Type=ATBH_Fault_UF.Type; //Ä£ÄâÁ¿ÀàÐÍ + FaultReport->Buffer[i].DataBuffer[m++].Mode=ATBH_Fault_UF.Mode; //ÏÔʾģʽ + //²ÎÊý3£ºTÏß±£»¤ÈÆ×é + FaultReport->Buffer[i].DataBuffer[m].Type=ATBH_Fault_IT.Type; //Ä£ÄâÁ¿ÀàÐÍ + FaultReport->Buffer[i].DataBuffer[m++].Mode=ATBH_Fault_IT.Mode; //ÏÔʾģʽ + //²ÎÊý4£ºFÏß±£»¤ÈÆ×é + FaultReport->Buffer[i].DataBuffer[m].Type=ATBH_Fault_IF.Type; //Ä£ÄâÁ¿ÀàÐÍ + FaultReport->Buffer[i].DataBuffer[m++].Mode=ATBH_Fault_IF.Mode; //ÏÔʾģʽ + if(ISOLATOR_TYPE == ATBH_ATMode) + { + //²ÎÊý5£ºTÏß²î¶¯ÈÆ×é + FaultReport->Buffer[i].DataBuffer[m].Type=ATBH_Fault_CDIT.Type; //Ä£ÄâÁ¿ÀàÐÍ + FaultReport->Buffer[i].DataBuffer[m++].Mode=ATBH_Fault_CDIT.Mode; //ÏÔʾģʽ + //²ÎÊý6£ºFÏß²î¶¯ÈÆ×é + FaultReport->Buffer[i].DataBuffer[m].Type=ATBH_Fault_CDIF.Type; //Ä£ÄâÁ¿ÀàÐÍ + FaultReport->Buffer[i].DataBuffer[m++].Mode=ATBH_Fault_CDIF.Mode; //ÏÔʾģʽ + } + //²ÎÊý8£º²î¶¯µçÁ÷ + FaultReport->Buffer[i].DataBuffer[m].Type=ATBH_Fault_ICD.Type; //Ä£ÄâÁ¿ÀàÐÍ + FaultReport->Buffer[i].DataBuffer[m++].Mode=ATBH_Fault_ICD.Mode; //ÏÔʾģʽ + //²ÎÊý9£ºÖƶ¯µçÁ÷ + FaultReport->Buffer[i].DataBuffer[m].Type=ATBH_Fault_IZD.Type; //Ä£ÄâÁ¿ÀàÐÍ + FaultReport->Buffer[i].DataBuffer[m++].Mode=ATBH_Fault_IZD.Mode; //ÏÔʾģʽ + //²ÎÊý10£º±£»¤µçÁ÷¶þ´Îг²¨º¬Á¿ + //FaultReport->Buffer[i].DataBuffer[m].Type=IXB2_TYPE;//Ä£ÄâÁ¿ÀàÐÍ + //FaultReport->Buffer[i].DataBuffer[m++].Mode=ATBH_Fault_XB2I.Mode; //ÏÔʾģʽ + //²ÎÊý11£º²î¶¯µçÁ÷¶þ´Îг²¨º¬Á¿ + FaultReport->Buffer[i].DataBuffer[m].Type=ATBH_Fault_XB2ICD.Type; //Ä£ÄâÁ¿ÀàÐÍ + FaultReport->Buffer[i].DataBuffer[m++].Mode=ATBH_Fault_XB2ICD.Mode; //ÏÔʾģʽ + + FaultReport->Buffer[i].ParameterNumber = m; //²ÎÊý¸öÊýΪ£º11¸öÄ£ÄâÁ¿²ÎÊý + + FaultReport->Buffer[i].HasWave=0; //ÎÞ²¨ÐÎ + FaultReport->Buffer[i].SoeNumber=0; //ÎÞʼþ + //³õʼ»¯¹ÊÕϲ¨Ðλº³åÇø + FaultReport->Buffer[i].WaveValue.DeviceType=DEV_ATBH; //AT±£»¤²â¿Ø×°Öà + FaultReport->Buffer[i].WaveValue.ChannelNum = ATBH_WAVE_PROTECT_NUMBER; //¼²¨Í¨µÀÊýΪ10 + for(j=0;j < ATBH_WAVE_PROTECT_NUMBER;j++) + { + ChannelNo=WaveChannelSet[j]; //È¡¸Ã·²¨ÐζÔÓ¦µÄÄ£ÄâÁ¿Í¨µÀºÅ + //ÀàÐÍΪ0ʱ¸ÃͨµÀ²»ÉÏËÍ + //if(ANALOG_UNDEFINE == ChannelValue[ChannelNo].YouXiaoZhi[JiBo].Analog.Type) + //{ + //continue; + //} + FaultReport->Buffer[i].WaveValue.ChannelData[j].Type=ChannelValue[ChannelNo].YouXiaoZhi[JiBo].Analog.Type; + FaultReport->Buffer[i].WaveValue.ChannelData[j].Mode=SETVALUE_MODE_2; + FaultReport->Buffer[i].WaveValue.ChannelData[j].XiShu=ChannelValue[ChannelNo].CoeffiWave2;//ChannelValue[ChannelNo].XiShu; + FaultReport->Buffer[i].WaveValue.ChannelData[j].RatioValue1 = ChannelValue[ChannelNo].RatioValue2 * ChannelValue[ChannelNo].BianBi; + FaultReport->Buffer[i].WaveValue.ChannelData[j].RatioValue2 = ChannelValue[ChannelNo].RatioValue2; + FaultReport->Buffer[i].WaveValue.ChannelData[j].SampleNumber=SAMPLE_NUM; //²ÉÑùƵÂÊ£¬ÓÃÿÖܲ¨²ÉÑùµãÊýÀ´±íʾ + FaultReport->Buffer[i].WaveValue.ChannelData[j].Length=0; + FaultReport->Buffer[i].WaveValue.DigitalData.Number = DigitalWaveChannelSet.Number; + for (k=0;kBuffer[i].WaveValue.ChannelData[j].Data[k]=0; //³õʼ»¯²¨ÐÎÊý¾ÝΪ0 + } + + //Êý×ÖÁ¿Â¼²¨ + //MemPtrSet.pDigitalFaultWave->Buffer[i].Number = DigitalWaveChannelSet.Number; + }//endfor + + //³õʼ»¯¸ººÉ¼²¨»º³åÇø + LoadWaveBuffer->DeviceType=DEV_ATBH; //AT±£»¤²â¿Ø×°Öà + //¼²¨Í¨µÀÊýΪ10 + for(j=0;jChannelData[j].Type=ChannelValue[ChannelNo].YouXiaoZhi[JiBo].Analog.Type; + LoadWaveBuffer->ChannelData[j].Mode=SETVALUE_MODE_2; + LoadWaveBuffer->ChannelData[j].XiShu=ChannelValue[ChannelNo].CoeffiWave2;//ChannelValue[ChannelNo].XiShu; + LoadWaveBuffer->ChannelData[j].RatioValue1 = ChannelValue[ChannelNo].RatioValue2 * ChannelValue[ChannelNo].BianBi; + LoadWaveBuffer->ChannelData[j].RatioValue2 = ChannelValue[ChannelNo].RatioValue2; + LoadWaveBuffer->ChannelData[j].SampleNumber=SAMPLE_NUM; //²ÉÑùƵÂÊ£¬ÓÃÿÖܲ¨²ÉÑùµãÊýÀ´±íʾ + LoadWaveBuffer->ChannelData[j].Length=0; + for (k=0;kChannelData[j].Data[k]=0; //³õʼ»¯²¨ÐÎÊý¾ÝΪ0 + } + LoadWaveBuffer->ChannelData[ATBH_IDIFF_WAVE].Type = ATBH_UNUSE_TYPE; + LoadWaveBuffer->ChannelNum = j; + + //Êý×ÖÁ¿Â¼²¨ + //MemPtrSet.pDigitalLoadWave->Number = DigitalWaveChannelSet.Number; + LoadWaveBuffer->DigitalData.Number = DigitalWaveChannelSet.Number; + + //MemPtrSet.pDigitalLoadWave->Number = 0; + + //³õʼ»¯²âÁ¿Öµ»º³åÇø + MeasureValue.DeviceType=DEV_ATBH; //×°ÖÃÀàÐÍ + + MeasureValue.Number = ATBH_MX_NUMBER * 2; + unsigned char measureparam[][4] = + { + {ATBH_MX_UTM,CH_ATBH_UT,ATBH_UTM_TYPE,ATBH_UTM_TYPE}, //TÏß²âÁ¿µçѹ + {ATBH_MX_UFM,CH_ATBH_UF,ATBH_UFM_TYPE,ATBH_UFM_TYPE}, //FÏß²âÁ¿µçѹ + {ATBH_MX_ITM,CH_ATBH_CL_I,ATBH_ITM_TYPE,ATBH_UNUSE_TYPE}, //TÏß²âÁ¿µçÁ÷ + {ATBH_MX_IFM,CH_ATBH_CL_IF,ATBH_IFM_TYPE,ATBH_UNUSE_TYPE}, //FÏß²âÁ¿µçÁ÷ + {ATBH_MX_Fre,ANALOG_UNDEFINE,ATBH_FRE_TYPE,ATBH_FRE_TYPE}, //ƵÂÊ + + {ATBH_MX_UT,CH_ATBH_UT,ATBH_UT_TYPE,ATBH_UT_TYPE}, //TÏß±£»¤µçѹ + {ATBH_MX_Q_UT,CH_ATBH_UT,ATBH_Q_UT_TYPE,ATBH_Q_UT_TYPE}, //TÏß±£»¤µçѹ½Ç¶È + {ATBH_MX_UF,CH_ATBH_UF,ATBH_UF_TYPE,ATBH_UF_TYPE}, //FÏß±£»¤µçѹ + {ATBH_MX_Q_UF,CH_ATBH_UF,ATBH_Q_UF_TYPE,ATBH_Q_UF_TYPE}, //FÏß±£»¤µçѹ½Ç¶È + {ATBH_MX_IT,CH_ATBH_BH_I,ATBH_IT_TYPE,ATBH_IT_BC_TYPE}, //TÏß±£»¤µçÁ÷ + {ATBH_MX_Q_IT,CH_ATBH_BH_I,ATBH_Q_IT_TYPE,ATBH_Q_IT_BC_TYPE}, //TÏß±£»¤µçÁ÷½Ç¶È + {ATBH_MX_IF,CH_ATBH_BH_IF,ATBH_IF_TYPE,ATBH_IF_BC_TYPE}, //FÏß±£»¤µçÁ÷ + {ATBH_MX_Q_IF,CH_ATBH_BH_IF,ATBH_Q_IF_TYPE,ATBH_Q_IF_BC_TYPE}, //FÏß±£»¤µçÁ÷½Ç¶È + + {ATBH_MX_IT_DC,CH_ATBH_CD_IT,ATBH_UNUSE_TYPE,ATBH_IT_DC_TYPE}, //¶Ô²àTÏß±£»¤µçÁ÷ + {ATBH_MX_Q_IT_DC,CH_ATBH_CD_IT,ATBH_UNUSE_TYPE,ATBH_Q_IT_DC_TYPE}, //¶Ô²àTÏß±£»¤µçÁ÷½Ç¶È + {ATBH_MX_IF_DC,CH_ATBH_CD_IF,ATBH_UNUSE_TYPE,ATBH_IF_DC_TYPE}, //¶Ô²àTÏß±£»¤µçÁ÷ + {ATBH_MX_Q_IF_DC,CH_ATBH_CD_IF,ATBH_UNUSE_TYPE,ATBH_Q_IF_DC_TYPE}, //¶Ô²àTÏß±£»¤µçÁ÷½Ç¶È + + {ATBH_MX_IDIFF,ANALOG_UNDEFINE,ATBH_IDIFF_TYPE, ATBH_IDIFF_TYPE}, //²î¶¯µçÁ÷ + {ATBH_MX_IREST,ANALOG_UNDEFINE,ATBH_IREST_TYPE, ATBH_IREST_TYPE}, //ÖÆ¶¯¶¯µçÁ÷ + + {ATBH_MX_Id2,ANALOG_UNDEFINE,ATBH_IDIFF2_TYPE,ATBH_IDIFF2_TYPE}, //²î¶¯¶þ´Îг²¨º¬Á¿ + #ifdef TEMPERATURE_ENABLE + {ATBH_MX_WD1,CH_ATBH_WD1,ATBH_WD1_TYPE,ATBH_WD1_TYPE}, //ζÈ1 + {ATBH_MX_WD2,CH_ATBH_WD2,ATBH_WD2_TYPE,ATBH_WD2_TYPE}, //ζÈ2 + #endif + + }; + + number = sizeof(measureparam)/sizeof(measureparam[0]); + for(i = 0; i < number; i++) + { + k = measureparam[i][0]; + m = k + ATBH_MX_NUMBER; + MeasureValue.Buffer[k].Value = 0; //ĸ�ߵ�ѹ + MeasureValue.Buffer[k].Mode = SETVALUE_MODE_1; + measure_param[k].smpchannel = measureparam[i][1]; + + if(BREAKER_TYPE == ATBH_ATMode) + { + MeasureValue.Buffer[k].Type = measureparam[i][2]; + } + else + { + MeasureValue.Buffer[k].Type = measureparam[i][3]; + } + //¶þ´Î²ÎÊý + MeasureValue.Buffer[m].Value = 0; + MeasureValue.Buffer[m].Mode = SETVALUE_MODE_2; + MeasureValue.Buffer[m].Type = MeasureValue.Buffer[k].Type; + + if(k < MX_MEASURE_NUMBER) + { + measure_param[k].type = ANALOG_MEASURE_TYPE; + } + else + { + measure_param[k].type = ANALOG_PROTECT_TYPE; + } + + } + + //ÍµÌø¼àÊÓ²ÎÊý³õʼ»¯ + dl_open_innormal_param_set(&ATBH_dl_open_innormal_param,ATBH_YAOXIN_QF,ATBH_DL_BTYF_KR,ATBH_DL_FZJS_KR,ATBH_DL_FZJS_KR,ATBH_YAOXIN_DL_YCFZ,ATBH_DL_FZ_YC,ATBH_dl_innormal_open_alarm); + if(BREAKER_TYPE == ATBH_ATMode) + { + dl_open_innormal_param_init(&ATBH_dl_open_innormal_param); + } + //ÖØºÏÕ¢±äÁ¿³õʼ»¯ + CHZValue.Status = CHZ_CLOSE; + CHZValue.ChongDianTime = 0; + CHZValue.CHZTime = 0; + CHZValue.DelayCount = 0; + CHZValue.ChongDianOK = FAIL; + + //ÌøÕ¢±äÁ¿³õʼ»¯ + TZValue.Status=TZ_CLOSE; //ÌøÕ¢×´Ì¬ + //TZValue.IP=SUCCESS; //ÌøÕ¢Ê§Áé±êÖ¾,SUCCESS:ÌøÕ¢³É¹¦£»FAIL£ºÌøÕ¢Ê§Áé // LW modi 20240723 ÒÆÖÁÉϵç³õʼ»¯ + + TZValue.DelayCount=0; //ÌøÕ¢ÑÓʱ¼ÆÊ±Æ÷ + TZValue.FaultProcessEndIP=FAULT_REPORT_SENDED; //¹ÊÕÏ´¦Àí½áÊø±êÖ¾ + + //·ÇµçÁ¿Æð¶¯×ÔͶͶÈë + if(BH_RUN == ATBH_FDLQDZT) + { + ATBH_QDZT_Mask = ATBH_FDL_BIT|ATBH_CDSD_BIT|ATBH_CD_BIT|ATBH_DLLDIFF_BIT; + } + else + { + ATBH_QDZT_Mask = ATBH_CDSD_BIT|ATBH_CD_BIT|ATBH_DLLDIFF_BIT; + } + + if(DisplayMode==SETVALUE_MODE_1) + { + //°´Ò»´ÎÖµÕû¶¨ + ATBH_JD_I=0.03*ATBH_CTRated1; + } + else + { + //°´¶þ´ÎÖµÕû¶¨ + ATBH_JD_I=0.03*ATBH_CTRated2; + } + + //ZTDongZuoIP=TEST_CLOSE; //×ÔͶ¶¯×÷±êÖ¾ + TiaoZhaIP=TEST_CLOSE; + +} + +void settingtype_init() +{ + int i = 0,j = 0; + //CT¶î¶¨ + for(j = 0,i = 0; j < 2; j++) + { + UserDzType[i++] = FLOAT_TYPE; + } + //AT½ÓÈ뷽ʽ + UserDzType[i++] = INTEGER_TYPE; + //²î¶¯ËÙ¶Ï-²îÁ÷Ô½ÏÞµçÁ÷ + for(j = 0; j < 8; j++) + { + UserDzType[i++] = FLOAT_TYPE; + } + //ʧѹ¼ì²âµçѹ + UserDzType[i++] = INTEGER_TYPE; + //ʧѹ±£»¤¶¯×÷µçѹ-PT¶ÏÏß + for(j = 0; j < 8; j++) + { + UserDzType[i++] = FLOAT_TYPE; + } + #ifdef TEMPERATURE_ENABLE + for(j = 0; j < 2; j++) + { + UserDzType[i++] = FLOAT_TYPE; + } + #endif + //×Ô¶¨Òå + for(j = 0; j < 5; j++) + { + UserDzType[i++] = FLOAT_TYPE; + } + //¿ØÖÆ×Ö + 4 ×Ô¶¨Òå + for(j = 0; j < 8; j++) + { + UserDzType[i++] = INTEGER_TYPE; + } + + USER_SET_LEN = sizeof(tagUserSetting_atbh); + + //΢µ÷ϵÊý + i = 0; + for(j = 0; j < 8; j++) + { + SysDZType[i++] = FLOAT_TYPE; + } + SysDZType[i++] = FLOAT_TYPE; + SysDZType[i++] = FLOAT_TYPE; + SysDZType[i++] = INTEGER_TYPE; + for(j = 0; j < 4; j++) + { + SysDZType[i++] = FLOAT_TYPE; + } + SysDZType[i++] = INTEGER_TYPE; //¶Ï·Æ÷Òì³£·ÖÕ¢¸æ¾¯ + SysDZType[i++] = INTEGER_TYPE; //ÔöÁ¿²î¶¯ 20230810 add + SysDZType[i++] = FLOAT_TYPE; + SysDZType[i++] = FLOAT_TYPE; //±ÈÂʲÏÂÏÞ¶¨ÖµÏµÊý + SysDZType[i++] = INTEGER_TYPE; + SysDZType[i++] = INTEGER_TYPE; + SysDZType[i++] = INTEGER_TYPE; + SysDZType[i++] = INTEGER_TYPE; + SysDZType[i++] = INTEGER_TYPE; + #ifdef TEMPERATURE_ENABLE + for(j = 0; j < 2; j++) + { + SysDZType[i++] = INTEGER_TYPE; + } + #endif + //Ô¤Áô + for(j = 0; j < 8; j++) + { + SysDZType[i++] = FLOAT_TYPE; + } + + SYS_SET_LEN = sizeof(tagSysSetting_atbh); +} +unsigned int CheckSysSetting(unsigned char *pAddress) +{ +//¹¦ÄÜ˵Ã÷£º¼ì²âϵͳÕû¶¨²ÎÊýÊÇ·ñ³¬·¶Î§ + tagSysSetting_atbh *pSysSetting,syssetting; + float *ptr; + + memcpy(&syssetting,pAddress,sizeof(syssetting)); + pSysSetting = &syssetting; + + ptr = &pSysSetting->adjustcoeffi.VK; + + //УÑé΢µ÷ϵÊý + for(;ptr <= &pSysSetting->adjustcoeffi.IFMK; ptr++) + { + if(*ptr < -5 || *ptr > 5) + { + SYS_RETURN_FAIL; + } + } + + //УÕýµçÁ÷½Ç¶ÈÐÞÕýÖµ + if(pSysSetting->angle_adjust_val_curr < 0 || pSysSetting->angle_adjust_val_curr > 360.0) + { + SYS_RETURN_FAIL; + } + + //µçѹһ´Î¶î¶¨Öµ + if(pSysSetting->pt_rated1 < 1 || pSysSetting->pt_rated1 > 100) + { + SYS_RETURN_FAIL; + } + ptr = &pSysSetting->optime.t_qf; + for(;ptr < &pSysSetting->optime.t_delay_qs; ptr++) + { + if(*ptr < 0 || *ptr > 60) + { + return FAIL; + } + } + + //Ò£¿ØÂö¿í + if(pSysSetting->optime.t_delay_qf > pSysSetting->optime.t_qf) + { + return FAIL; + } + if(pSysSetting->optime.t_delay_qs > pSysSetting->optime.t_qs) + { + return FAIL; + } + //ÔöÁ¿²î¶¯ + if(0 > pSysSetting->dll_diff || 1 < pSysSetting->dll_diff) + { + return FAIL; + } + //ÔöÁ¿²î¶¯µçÁ÷ϵÊý + if(0.3 > pSysSetting->dll_diff_coeffi || 1 < pSysSetting->dll_diff_coeffi) + { + return FAIL; + } + + //²îÁ÷¶¨ÖµÏÂÏÞϵÊý + if(syssetting.coeffi_ratio_I < 0.029999 || syssetting.coeffi_ratio_I > 0.100001) + { + SYS_RETURN_FAIL; + } + if(0 > pSysSetting->diffprtc_notime || 1 < pSysSetting->diffprtc_notime) + { + return FAIL; + } + + if(0 > pSysSetting->ih_diff_alram_block || 1 < pSysSetting->ih_diff_alram_block) + { + return FAIL; + } + + if(0 > pSysSetting->nonui_prtc_trip || 1 < pSysSetting->nonui_prtc_trip) + { + return FAIL; + } + //·ÇµçÁ¿Æð¶¯±¸×ÔͶ + if(0 > pSysSetting->nonui_startup_switch_in || 1 < pSysSetting->nonui_startup_switch_in) + { + return FAIL; + } + //¶Ï·Æ÷Òì³£·ÖÕ¢¸æ¾¯ + if(pSysSetting->dl_innormal_open_alarm < 0 || pSysSetting->dl_innormal_open_alarm > 1) + { + SYS_RETURN_FAIL; + } + if(0 > pSysSetting->dl_innormal_open_antorcls || 1 < pSysSetting->dl_innormal_open_antorcls) + { + return FAIL; + } + #ifdef TEMPERATURE_ENABLE + if(0 > pSysSetting->tmp_alarm.T1_enable || 1 < pSysSetting->tmp_alarm.T1_enable) + { + return FAIL; + } + + if(0 > pSysSetting->tmp_alarm.T2_enable || 1 < pSysSetting->tmp_alarm.T2_enable) + { + return FAIL; + } + + #endif + return SUCCESS; + +} + + +void ReadSysSetValue(unsigned char *pAddress) +{ + tagSysSetting_atbh *pSysSetting,syssetting; + + memcpy(&syssetting,pAddress,sizeof(syssetting)); + + ATBH_VKSet = syssetting.adjustcoeffi.VK; //TÏßµçѹ΢µ÷ϵÊý£¬4×Ö½Ú + ATBH_VFKSet = syssetting.adjustcoeffi.VFK; //FÏßµçѹ΢µ÷ϵÊý£¬4×Ö½Ú + ATBH_BaoHuIKSet = syssetting.adjustcoeffi.ITK; //TÏß±£»¤ÈÆ×éµçÁ÷΢µ÷ϵÊý£¬4×Ö½Ú + ATBH_ChaDongIKSet = syssetting.adjustcoeffi.ITK_DC; //TÏß²î¶¯ÈÆ×éµçÁ÷΢µ÷ϵÊý£¬4×Ö½Ú + ATBH_CeLiangIKSet = syssetting.adjustcoeffi.ITMK; //TÏß²âÁ¿ÈÆ×éµçÁ÷΢µ÷ϵÊý£¬4×Ö½Ú + ATBH_BaoHuFIKSet = syssetting.adjustcoeffi.IFK; //FÏß±£»¤ÈÆ×éµçÁ÷΢µ÷ϵÊý£¬4×Ö½Ú + ATBH_ChaDongFIKSet = syssetting.adjustcoeffi.IFK_DC; //FÏß²î¶¯ÈÆ×éµçÁ÷΢µ÷ϵÊý£¬4×Ö½Ú + ATBH_CeLiangFIKSet = syssetting.adjustcoeffi.IFMK; //FÏß²âÁ¿ÈÆ×éµçÁ÷΢µ÷ϵÊý£¬4×Ö½Ú + + //ATBH_IJDKSet = syssetting.adjustcoeffi.IJDK; //½ÓµØµçÁ÷΢µ÷ϵÊý£¬4×Ö½Ú + //ATBH_WD1TSet = syssetting.adjustcoeffi.T1T; //ζÈ1ζȻù×¼Öµ + //ATBH_WD1ISet = syssetting.adjustcoeffi.T1I; //ζÈ1µçÁ÷»ù×¼Öµ + //ATBH_WD1KSet = syssetting.adjustcoeffi.T1K; //ζÈ1ÇúÏßбÂÊ + //ATBH_WD2TSet = syssetting.adjustcoeffi.T2T; //ζÈ2ζȻù×¼Öµ + //ATBH_WD2ISet = syssetting.adjustcoeffi.T2I; //ζÈ2µçÁ÷»ù×¼Öµ + //ATBH_WD2KSet = syssetting.adjustcoeffi.T2K; //ζÈ2ÇúÏßбÂÊ + + angle_amend_value = syssetting.angle_adjust_val_curr * -1; //µçÁ÷½Ç¶ÈÐÞÕýÖµ + ATBH_PTRated1 = syssetting.pt_rated1; + ATBH_DLQNo = syssetting.atno; //atºÅ + ATBH_OperationTime = syssetting.optime.t_qf * S_TO_MS_COEFFI; //¶Ï·Æ÷¶¯×÷ʱ¼ä + ATBH_QSOperationTime = syssetting.optime.t_qs * S_TO_MS_COEFFI; //¸ôÀ뿪¹Ø¶¯×÷ʱ¼ä + QFDelayTime = syssetting.optime.t_delay_qf * S_TO_MS_COEFFI; //¶Ï·Æ÷²Ù×÷ÑÓʱ + QSDelayTime = syssetting.optime.t_delay_qs * S_TO_MS_COEFFI; //¸ôÀ뿪¹Ø²Ù×÷ÑÓʱ + + if(BH_RUN == syssetting.diffprtc_notime) + { + ATBH_CDTimeSet = 0; + } + else + { + ATBH_CDTimeSet = 3; + } + ih_diff_alram_block = syssetting.ih_diff_alram_block; + //·ÇµçÁ¿ÊÇ·ñ³ö¿Ú + if(PRTC_TRIP == syssetting.nonui_prtc_trip) + { + ATBH_nonui_prtc_trip = BH_RUN; + } + else + { + ATBH_nonui_prtc_trip = BH_STOP; + } + + //·ÇµçÁ¿Æô¶¯×ÔͶ + ATBH_FDLQDZT = syssetting.nonui_startup_switch_in; + //ÔöÁ¿²î¶¯ + ATBH_DLLDIFFTouRu = syssetting.dll_diff; + ATBH_DllDiffSet = syssetting.dll_diff_coeffi; + + ATBH_CDI_MIN_XS = syssetting.coeffi_ratio_I; + //ATBH_DLLDIFFTouRu = BH_RUN; + //20221226ÆÁ±Î¸Ã¹¦ÄÜ£¬ÐèҪʱ¿ª·Å + //ATBH_YCFZ_CHZ_TuoRu = syssetting.dl_innormal_open_antorcls; + + //¶Ï·Æ÷Òì³£·ÖÕ¢¸æ¾¯ + ATBH_dl_innormal_open_alarm = syssetting.dl_innormal_open_alarm; + ATBH_YCFZ_CHZ_TuoRu = BH_STOP; + //ζȸ澯 + #ifdef TEMPERATURE_ENABLE + ATBH_CWWD1TouRu = syssetting.tmp_alarm.T1_enable; + ATBH_CWWD2TouRu = syssetting.tmp_alarm.T2_enable; //ζÈ2¸æ¾¯Ñ¹°å£¬4×Ö½Ú + #else + ATBH_CWWD1TouRu = BH_STOP; + ATBH_CWWD2TouRu = BH_STOP; //ζÈ2¸æ¾¯Ñ¹°å£¬4×Ö½Ú + #endif +} + + +void ChangeSysSetValue(void) +{ +//¹¦ÄÜ˵Ã÷£º×ª»»ÏµÍ³Õû¶¨²ÎÊý + DLQNo = ATBH_DLQNo; +} + +/* +unsigned int GetSysSetting(void) +{ +//¹¦ÄÜ˵Ã÷£º´ÓÎļþÖжÁȡϵͳ²ÎÊý +//Êä³ö²ÎÊý£ºSUCCESS->³É¹¦,FAIL->ʧ°Ü + + unsigned int Len; + + Len=0; + if(ReadSysSetValueFromFile(SYSSET_FILE_PATH,&Len)!=SUCCESS){ //´ÓÎļþÖжÁȡϵͳÕû¶¨Öµ£¬±£´æÔÚSetValueBufferÖÐ + CheckValue|=SYSTEM_SET_ERROR_BIT; //ÉèÖÃϵͳÕû¶¨²ÎÊý²»Á¼±êÖ¾ + DEBUG_SELFCHECK_OUT("CheckValue = %x",SYSTEM_SET_ERROR_BIT)// + SelfCheckRecord(SYSSET_ERROR); //×Ô¼ì¼Ç¼£¬ÏµÍ³Õû¶¨²ÎÊý²»Á¼ + RecordSoftYaoXinV2(DEV_YAOXIN_SYSSET_ERROR, ON); + return FAIL; //¶¨ÖµÎļþ³¤¶È´íÎó + } + RecordSoftYaoXinV2(DEV_YAOXIN_SYSSET_ERROR, OFF); + if(CheckSetValueBuffer(SetValueBuffer,Len)!=SUCCESS) { + CheckValue|=SYSTEM_SET_ERROR_BIT; //ÉèÖÃϵͳÕû¶¨²ÎÊý²»Á¼±êÖ¾ + DEBUG_SELFCHECK_OUT("CheckValue = %x",SYSTEM_SET_ERROR_BIT)// + SelfCheckRecord(SysSetValueCheckError); //×Ô¼ì¼Ç¼£¬ÏµÍ³Õû¶¨²ÎÊýУÑé´í + RecordSoftYaoXinV2(DEV_YAOXIN_SysSetValueCheckError, ON); + return FAIL; //¶¨ÖµÎļþУÑé´í + } + RecordSoftYaoXinV2(DEV_YAOXIN_SysSetValueCheckError, OFF); + //¼ì²â¶¨Öµ·¶Î§ + if(CheckSysSetting(SetValueBuffer)!=SUCCESS){ + //¶¨Öµ³¬·¶Î§ + CheckValue|=SYSTEM_SET_ERROR_BIT; //ÉèÖÃϵͳÕû¶¨²ÎÊý²»Á¼±êÖ¾ + DEBUG_SELFCHECK_OUT("CheckValue = %x",SYSTEM_SET_ERROR_BIT)// + SelfCheckRecord(SysSetValueOutError); //×Ô¼ì¼Ç¼£¬ÏµÍ³Õû¶¨²ÎÊý³¬·¶Î§ + RecordSoftYaoXinV2(DEV_YAOXIN_SysSetValueOutError, ON); + return FAIL; //¶¨ÖµÎļþУÑé´í + } + RecordSoftYaoXinV2(DEV_YAOXIN_SysSetValueOutError, OFF); + CheckValue&=~SYSTEM_SET_ERROR_BIT; //Çå³ýϵͳÕû¶¨²ÎÊý²»Á¼±êÖ¾ + //ÐÞ¸ÄϵͳÕû¶¨²ÎÊý + ReadSysSetValue(SetValueBuffer); + ChangeSysSetValue(); + + //¼ÆËãУÑéÂë + CanShuCheckSum=0; + CanShuCheckSum=sysSetValueCheckSum(); + + return SUCCESS; +} + +*/ +/********************************************************** +* unsigned int CheckUserSetting(unsigned char *Address) +* ÃèÊö:¼ì²âÓû§Õû¶¨ÖµÊÇ·ñ³¬·¶Î§ +* ÀúÊ·:´´½¨ÈÕÆÚ²»Ïê +* µçѹµçÁ÷¶¨Öµ·¶Î§¿ÉÅäÖà +***********************************************************/ +unsigned int CheckUserSetting(unsigned char *pAddress) +{ + tagUserSetting_atbh usersetting; + unsigned int *ptr,i; + + float IMin,rated2,IMin_cd; + + memcpy(&usersetting,pAddress,sizeof(usersetting)); + + //УÕý¶î¶¨Öµ + if(usersetting.rated_setting.ct_rated1 < 1.0 || usersetting.rated_setting.ct_rated1 > 9999.0) + { + return FAIL; + } + + if(JudgeFloatEqual(usersetting.rated_setting.ct_rated2,1.0) && JudgeFloatEqual(usersetting.rated_setting.ct_rated2,5.0)) + { + return FAIL; + } + rated2 = usersetting.rated_setting.ct_rated2; + IMin = 0.1 * rated2; //Æó±êÊÇ0.1£¬½µµÍÏÂÏÞ£¬Ö§³Ö·Ç±êÓ¦Óà + IMin_cd = ATBH_CDI_MIN_XS * rated2; + //at½ÓÈ뷽ʽ + if(usersetting.atmode_setting < 0 || usersetting.atmode_setting > 1) + { + return FAIL; + } + //²î¶¯ËÙ¶Ï 20240914 ÐÞ¸Ä20-40±¶ + if(usersetting.diff_fasttrip_I_setting < IMin || usersetting.diff_fasttrip_I_setting > 40 * rated2) + { + return FAIL; + } + //±ÈÂʲ + if(usersetting.diff_ratio_Setting.I < IMin_cd || usersetting.diff_ratio_Setting.I > 20 * rated2) + { + return FAIL; + } + if(usersetting.diff_ratio_Setting.I_rest1 < IMin || usersetting.diff_ratio_Setting.I_rest1 > 4 * rated2) + { + return FAIL; + } + + if(usersetting.diff_ratio_Setting.I_rest2 < IMin || usersetting.diff_ratio_Setting.I_rest2 > 10 * rated2) + { + return FAIL; + } + if(usersetting.diff_ratio_Setting.slope1 < 0.099999 || usersetting.diff_ratio_Setting.slope1 > 0.800001) + { + return FAIL; + } + + if(usersetting.diff_ratio_Setting.slope2 < 0.099999 || usersetting.diff_ratio_Setting.slope2 > 0.800001) + { + return FAIL; + } + //¶þ´Îг²¨ + if(usersetting.IH2 < 0.05 || usersetting.IH2 > 0.800001) + { + return FAIL; + } + + //²îÁ÷Ô½ÏÞ + if(usersetting.diff_overflow_coeffi < 0.1 || usersetting.diff_overflow_coeffi > 1) + { + return FAIL; + } + //ʧѹ±£»¤ + if(usersetting.vabsent_setting.mode < 0 || usersetting.vabsent_setting.mode > 1) + { + return FAIL; + } + if(usersetting.vabsent_setting.U < 10.0 || usersetting.vabsent_setting.U > 100) + { + return FAIL; + } + if(usersetting.vabsent_setting.t < 0.099999 || usersetting.vabsent_setting.t > 10) + { + return FAIL; + } + + //¹ý¸ººÉ + if(usersetting.idmt_setting.I < IMin || usersetting.idmt_setting.I > 20 * rated2) + { + return FAIL; + } + if(usersetting.idmt_setting.t < 0.099999 || usersetting.idmt_setting.t > 600) + { + return FAIL; + } + //ÖØºÏÕ¢ + if(usersetting.recls_setting.u < 50 || usersetting.recls_setting.u > 100) + { + return FAIL; + } + if(usersetting.recls_setting.t_reset < 5 || usersetting.recls_setting.t_reset > 60) + { + return FAIL; + } + if(usersetting.recls_setting.t < 1 || usersetting.recls_setting.t > 10) + { + return FAIL; + } + + //PT¶ÏÏß + if(usersetting.vts_u_setting < 10 || usersetting.vts_u_setting > 100) + { + return FAIL; + } + + #ifdef TEMPERATURE_ENABLE + //ζȸ澯 + if(usersetting.tmp_alarm_setting.T1 < 10 || usersetting.tmp_alarm_setting.T1 > 150) + { + return FAIL; + } + + if(usersetting.tmp_alarm_setting.T2 < 10 || usersetting.tmp_alarm_setting.T2 > 150) + { + return FAIL; + } + #endif + //¿ØÖÆ×Ö + ptr = &usersetting.ctrlword_setting.diff_fasttrip; + i = sizeof(usersetting.ctrlword_setting) / 4; + for(; i > 0;i--,ptr++) + { + if(*ptr > 1) + { + return FAIL; + } + } + + return SUCCESS; +} + +/******************************************************** + * void ChangeUserSetValue(void) + * ÃèÊö£º×ª»»Õû¶¨Öµ + * ÀúÊ·£º´´½¨ÈÕÆÚ²»Ïê + * + ********************************************************/ +void ChangeUserSetValue(void) +{ + + DLQNo=ATBH_DLQNo; + + float ATBH_BaoHuCTSet; //TÏß±£»¤ÈÆ×éCT±ä±È£¬4×Ö½Ú + float ATBH_ChaDongCTSet; //TÏß²î¶¯ÈÆ×éCT±ä±È£¬4×Ö½Ú + float ATBH_PTSet; //PT±ä±È£¬4×Ö½Ú + + + ATBH_BaoHuCTSet = ChannelValue[CH_ATBH_BH_I].BianBi; + ATBH_ChaDongCTSet = ChannelValue[CH_ATBH_CD_IT].BianBi; + ATBH_PTSet = ChannelValue[CH_ATBH_UT].BianBi; + + #ifdef ZERO_DEADLINE_CONPENSATION + //if(ATBH_SDISet.Time<=3) ATBH_SDISet.Time = 3; + //if(ATBH_JDISet.Time<=3) ATBH_JDISet.Time = 3; + if(ATBH_SYSet.Time<=3) ATBH_SYSet.Time = 3; + if(ATBH_FI1Set.Time1<=3) ATBH_FI1Set.Time1 = 3; + if(ATBH_FI1Set.Time2<=3) ATBH_FI1Set.Time2 = 3; + if(ATBH_FI1Set.Time3<=3) ATBH_FI1Set.Time3 = 3; + //if(ATBH_FI2Set.Time1<=3) ATBH_FI2Set.Time1 = 3; + //if(ATBH_FI2Set.Time2<=3) ATBH_FI2Set.Time2 = 3; + //if(ATBH_FI2Set.Time3<=3) ATBH_FI2Set.Time3 = 3; + #endif + + //Åжϱ¾AT´¦ÓÚͶÈë̬µÄÒ£ÐźŠ+ if(BREAKER_TYPE == ATBH_ATMode) + { + ATBH_rmtsignal_run = ATBH_YAOXIN_QF; + } + else + { + ATBH_rmtsignal_run = ATBH_YAOXIN_1QS; + } + + + if(SetValueMode == DisplayMode) return; //Õû¶¨·½Ê½ÓëÏÔʾ·½Ê½Ïàͬ£¬½áÊø + + if(DisplayMode == SETVALUE_MODE_1) + { + //ÏÔʾ·½Ê½Îª1´ÎÖµ£¬¶øÕû¶¨·½Ê½Îª2´ÎÖµ£¬Ðèת»»Îª1´ÎÖµ + ATBH_CDSDSet = ATBH_CDSDSet*ATBH_ChaDongCTSet; //²î¶¯ËÙ¶Ï£¬4×Ö½Ú + ATBH_CDSet=ATBH_CDSet*ATBH_ChaDongCTSet; //±ÈÂʲ£¬4×Ö½Ú + ATBH_ZD1Set=ATBH_ZD1Set*ATBH_ChaDongCTSet; //ÖÆ¶¯1µçÁ÷Õû¶¨Öµ£¬4×Ö½Ú + ATBH_ZD2Set=ATBH_ZD2Set*ATBH_ChaDongCTSet; //ÖÆ¶¯2µçÁ÷Õû¶¨Öµ£¬4×Ö½Ú + //ATBH_CLYXSet = ATBH_CLYXSet * ATBH_ChaDongCTSet; + //ATBH_SDISet.SetValue=ATBH_SDISet.SetValue*ATBH_BaoHuCTSet; //µçÁ÷ËÙ¶Ï£¬8×Ö½Ú + //ATBH_ISet.SetValue=ATBH_ISet.SetValue*ATBH_BaoHuCTSet; //¹ýµçÁ÷£¬8×Ö½Ú + //ATBH_JDISet.SetValue=ATBH_JDISet.SetValue*ATBH_IJDCTSet; //Åö¿Ç±£»¤£¬8×Ö½Ú + ATBH_SYSet.SetValue=ATBH_SYSet.SetValue*ATBH_PTSet/1000; //ʧѹ£¬8×Ö½Ú £¬£¨1´Îµ¥Î»ÎªkV£© + ATBH_PTDXSet = ATBH_PTDXSet * ATBH_PTSet/1000; + ATBH_JYYSet.SetValue = ATBH_JYYSet.SetValue * ATBH_PTSet/1000; + //ATBH_DYUSet = ATBH_DYUSet*ATBH_PTSet/1000; + //¹ý¸ººÉ¢ñ¶Î£¬28×Ö½Ú + ATBH_FI1Set.SetValue1=ATBH_FI1Set.SetValue1*ATBH_BaoHuCTSet; + ATBH_FI1Set.SetValue2=ATBH_FI1Set.SetValue2*ATBH_BaoHuCTSet; + ATBH_FI1Set.SetValue3=ATBH_FI1Set.SetValue3*ATBH_BaoHuCTSet; + //¹ý¸ººÉ¢ò¶Î£¬28×Ö½Ú + //ATBH_FI2Set.SetValue1=ATBH_FI2Set.SetValue1*ATBH_BaoHuCTSet; + //ATBH_FI2Set.SetValue2=ATBH_FI2Set.SetValue2*ATBH_BaoHuCTSet; + //ATBH_FI2Set.SetValue3=ATBH_FI2Set.SetValue3*ATBH_BaoHuCTSet; + } + +} + +void ReadUserSetValue(unsigned char *pAddress) +{ + //¹¦ÄÜ˵Ã÷£º´Ó»º³åÇøÖжÁÓû§Õû¶¨²ÎÊý + tagUserSetting_atbh usersetting; + int offset,number; + + memcpy(&usersetting,pAddress,sizeof(usersetting)); + + //¶î¶¨Öµ + ATBH_CTRated1 = usersetting.rated_setting.ct_rated1; + ATBH_CTRated2 = usersetting.rated_setting.ct_rated2; + //at½ÓÈ뷽ʽ + ATBH_ATMode = usersetting.atmode_setting; + //²î¶¯ËÙ¶Ï + ATBH_CDSDSet = usersetting.diff_fasttrip_I_setting; + //ATBH_CDSDSet = 0.02; + //±ÈÂʲ + ATBH_CDSet = usersetting.diff_ratio_Setting.I; + ATBH_ZD1Set = usersetting.diff_ratio_Setting.I_rest1; + ATBH_ZD2Set = usersetting.diff_ratio_Setting.I_rest2; + ATBH_ZDXS1Set = usersetting.diff_ratio_Setting.slope1; + ATBH_ZDXS2Set = usersetting.diff_ratio_Setting.slope2; + //¶þ´Îг²¨±ÕËø + ATBH_XieBo_2 = usersetting.IH2; + #ifdef IH_PERCENT_UNIT + ATBH_XieBo_2 *= PERCENT_UNIT_COEFFI; + #endif + //²îÁ÷Ô½Ï޸澯 + ATBH_CLYXSet = usersetting.diff_overflow_coeffi; // * ATBH_CDSet; + //ʧѹ + ATBH_UModeSet = usersetting.vabsent_setting.mode; + ATBH_SYSet.SetValue = usersetting.vabsent_setting.U; + ATBH_SYSet.Time = usersetting.vabsent_setting.t * S_TO_MS_COEFFI; + //¹ý¸ººÉ + ATBH_FI1Set.IP = DEFINITE_TIME; + ATBH_FI1Set.SetValue1 = usersetting.idmt_setting.I; + ATBH_FI1Set.Time1 = usersetting.idmt_setting.t * S_TO_MS_COEFFI; + ATBH_FI1Set.SetValue2 = ATBH_FI1Set.SetValue1; + ATBH_FI1Set.Time2 = ATBH_FI1Set.Time1; + ATBH_FI1Set.SetValue3 = ATBH_FI1Set.SetValue1; + ATBH_FI1Set.Time3 = ATBH_FI1Set.Time1; + //ÖØºÏÕ¢ + ATBH_CHZ_ChongDianTime = usersetting.recls_setting.t_reset * S_TO_MS_COEFFI; //ÖØºÏÕ¢³äµçʱ¼ä + ATBH_CHZ_Time = usersetting.recls_setting.t * S_TO_MS_COEFFI; //ÖØºÏÕ¢ÑÓʱ + //ÖØºÏÕ¢¼ìÓÐѹ + ATBH_JYYSet.SetValue = usersetting.recls_setting.u; + ATBH_JYYSet.Time = 100; + //PT¶ÏÏß + ATBH_PTDXSet = usersetting.vts_u_setting; + + #ifdef TEMPERATURE_ENABLE + ATBH_WD1Set.SetValue = usersetting.tmp_alarm_setting.T1; + ATBH_WD1Set.Time = 1000; + ATBH_WD2Set.SetValue = usersetting.tmp_alarm_setting.T2; + ATBH_WD2Set.Time = 1000; + #endif + + //±£»¤Ñ¹°å + //²î¶¯ËÙ¶Ï + ATBH_CDSDTouRu = usersetting.ctrlword_setting.diff_fasttrip; + //±ÈÂʲ + ATBH_CDTouRu = usersetting.ctrlword_setting.diff_ratio; + //ʧѹ + ATBH_SYTouRu = usersetting.ctrlword_setting.vabsent; + //¹ý¸ººÉ + ATBH_FI1TouRu = usersetting.ctrlword_setting.idmt; + + //ÒÔÏÂΪĬÈÏÖµ + SetValueMode = SETVALUE_MODE_2; //°´¶þ´ÎÕû¶¨ + //ATBH_LS = LS_TC; + ATBH_LianJieMode = D_BREAKER_CONNECT; + + //ĬÈÏ¿ØÖÆ×Ö + //ATBH_SDITouRu = BH_STOP;//µçÁ÷Ëٶϱ£»¤Ñ¹°å£¬4×Ö½Ú + //ATBH_ITouRu = BH_STOP; //¹ýµçÁ÷±£»¤Ñ¹°å£¬4×Ö½Ú + //ATBH_JDITouRu = BH_STOP;//Åö¿Ç±£»¤Ñ¹°å£¬4×Ö½Ú + //ATBH_FI2TouRu = BH_STOP;//¹ý¸ººÉ¢ñ¶Îѹ°å£¬4×Ö½Ú + //ATBH_XieBoI2TouRu = BH_STOP; //¹ýµçÁ÷¶þ´Îг²¨±ÕËøÑ¹°å£¬4×Ö½Ú + //ATBH_XieBoSumTouRu=BH_STOP; //×ÛºÏг²¨ÒÖÖÆÑ¹°å£¬4×Ö½Ú + //ATBH_DYTouRu = BH_STOP; //µÍѹÆô¶¯Ôª¼þѹ°å£¬4×Ö½Ú + ATBH_XieBoCDI2TouRu = ATBH_CDTouRu; //²î¶¯¶þ´Îг²¨±ÕËøÑ¹°å£¬4×Ö½Ú + + //PT¶ÏÏßѹ°å + if(UMODE_TF == ATBH_UModeSet) + { + ATBH_PTDXTouRu = BH_RUN; + } + else + { + ATBH_PTDXTouRu = BH_STOP; + } + + //¿ØÖÆ×ÖÒ£Ðųõʼ»¯ + offset = OFFSETOF(tagUserSetting_atbh,ctrlword_setting); + number = sizeof(usersetting.ctrlword_setting) / 4; + ctrlwordinit(&usersetting.ctrlword_setting, offset,number,ATBH_YAOXIN_CTRLWD_START); + +} + +int checkurelatedtimeset(int channel) +{ + if(CH_ATBH_UT != channel && CH_ATBH_UF != channel) + { + return 0; + } + + if(BH_RUN == ATBH_SYYJ.TouRuIP && ATBH_SYYJ.SetTime < 20) + { + return 1; + } + + return 0; +} + +void GetSoftStripSetting() +{ + tagSoftStripSetting_atbh SoftStripSetting; + int num; + + num = sizeof(SoftStripSetting) / sizeof(int); + //¶ÁÈíѹ°å¶¨Öµ + ReadSoftStripValueFromFile(); + // + ReadSoftStripSetting(SetValueBuffer,&SoftStripSetting, ATBH_RMTSIGNAL_SOFTSTRAP_START, num); + + //¼ìÐÞ + Check = SoftStripSetting.check; + + //ÏÔʾ·½Ê½ + if(BH_STOP == SoftStripSetting.secddisplay) + { + DisplayMode = SETVALUE_MODE_1; + } + else + { + DisplayMode = SETVALUE_MODE_2; + } + + //ÖØºÏÕ¢Èíѹ°å + ATBH_SoftStrap_Reclse = SoftStripSetting.reclse; + //½øÏß×ÔͶÈíѹ°å + ATBH_SoftStrap_AtSwitch = SoftStripSetting.atswitch; + //ÁªËø + #ifdef DEVICE_TYPE_DIGITAL + if(BH_RUN == SoftStripSetting.interlock) + { + ATBH_LS = LS_TR; + } + else + { + ATBH_LS = LS_TC; + } + #else + ATBH_LS = LS_TC; + #endif +} + +void atbh_breaker_err_param_init() +{ + int k,i; + + i = 0; + ATBH_Breaker_err_param[ATBH_BREAKER_1].value[i++].channel = CH_ATBH_BH_I; + ATBH_Breaker_err_param[ATBH_BREAKER_1].value[i++].channel = CH_ATBH_BH_IF; + ATBH_Breaker_err_param[ATBH_BREAKER_1].number = i; + + i = 0; + ATBH_Breaker_err_param[ATBH_BREAKER_2].value[i++].channel = CH_ATBH_CD_IT; + ATBH_Breaker_err_param[ATBH_BREAKER_2].value[i++].channel = CH_ATBH_CD_IF; + ATBH_Breaker_err_param[ATBH_BREAKER_2].number = i; + + + for(k = 0; k < ATBH_BREAKER_NUMBER; k++) + { + for(i = 0; i < ATBH_Breaker_err_param[k].number; i++) + { + if(SETVALUE_MODE_1 == ChannelValue[ATBH_Breaker_err_param[k].value[i].channel].YouXiaoZhi[JiBo].Analog.Mode) + { + ATBH_Breaker_err_param[k].value[i].set = BREAKER_ERR_I_COEFFI * ChannelValue[ATBH_Breaker_err_param[k].value[i].channel].RatioValue1; + } + else + { + ATBH_Breaker_err_param[k].value[i].set = BREAKER_ERR_I_COEFFI * ChannelValue[ATBH_Breaker_err_param[k].value[i].channel].RatioValue2; + } + } + } +} + + +/*************************************************** +* void Reset_Init(void) +* ÃèÊö: ³õʼ»¯Ïà¹Ø±äÁ¿ +****************************************************/ +void Reset_Init(void) +{ + unsigned int CurrentSetNumber,i; + Init_IP=TEST_CLOSE; + //BaoHuQiDongIP = 0; + /**************InitSample *****************/ + //Çå³ý¸ººÉ¼²¨Ïà¹Ø±êÖ¾ + LuBoValue.Length=0; //¸ººÉ¼²¨³¤¶È£¨²ÉÑùµãÊý£© + LuBoValue.Count=0; //¸ººÉ¼²¨¼ÆÊýÆ÷ÖÃ0 + LuBoValue.LoadCount=0; + LuBoValue.LB_IP=LB_LOAD_WAVE_CLOSE; //¸ººÉ¼²¨±êÖ¾ + FaultLuBoValue.Length=0; //¹ÊÕϼ²¨³¤¶È£¨²ÉÑùµãÊý£© + FaultLuBoValue.Count=0; //¹ÊÕϸººÉ¼²¨¼ÆÊýÆ÷ÖÃ0 + FaultLuBoValue.LoadCount=0; + FaultLuBoValue.LB_IP=LB_FAULT_WAVE_CLOSE; //¹ÊÕϼ²¨±êÖ¾ + pBlockEnable = &ATBH_LS; +// InitSample(); //³õʼ»¯Ä£ÄâÁ¿Í¨µÀÏà¹Ø±äÁ¿ + CurrentSetNumber=GetSetNumber(NULL); //È¡µ±Ç°¶¨ÖµÇøºÅ + + #if 1 + GetSoftStripSetting(); + if(SUCCESS==GetSysSetting()) sysSV_RoutineSCIP=0;//ȡϵͳÕû¶¨²ÎÊý + else sysSV_RoutineSCIP=1; + if(SUCCESS==GetUserSetting(CurrentSetNumber)) usrSV_RoutineSCIP=0;//È¡µ±Ç°Óû§Õû¶¨²ÎÊý + else usrSV_RoutineSCIP = 1; + + #endif + DoubleYaoXinDelayTimeInit(); + InitAnalogChannel(); //³õʼ»¯¸µÀïÒ¶±ä»»»º³åÇø + InitProtectItem(); //³õʼ»¯±£»¤Ôª¼þ + InitAnalogChannel(); //³õʼ»¯¸µÀïÒ¶±ä»»»º³åÇø + //AninChannalCoeffInit(); //³õʼ»¯Ä£ÄâÁ¿Í¨µÀϵÊýluoyang add + InitOutStatus(); //³õʼ»¯¿ª³ö¡¢´«¶¯ÊÔÑé¼°Ò£¿Ø + InitRemoteObject(); //³õʼ»¯Ò£¿Ø¶ÔÏó + InitSoftStrapCtrlObject(); //³õʼ»¯Èíѹ°å¶ÔÏó + InitData(); + atbh_breaker_err_param_init(); + digit_Anin_Channal_Coeff_init(); //ͨµÀϵÊý³õʼ»¯ + AnalogRmsParamInit(&ZcpSet); //²âÁ¿Öµ¼ÆËã²ÎÊý³õʼ»¯ + //InitAnLedObject(); + InitBlock(); + atbh_itemClsDwnManageInit(); + itemClsDwnManageInitV2(); + //FourierCounter=0; + + Init_IP=TEST_START; //ÉèÖóõʼ»¯Íê³É±êÖ¾ + +} + +/*************************************************************************** +* unsigned int ScaleAnalogChannel(unsigned char Number,float Parameter) +* ÃèÊö: ¿Ì¶ÈУÕý +* ÀúÊ·: +* +* luoyang modi +***************************************************************************/ +unsigned int ScaleAnalogChannel(unsigned char Number,float Parameter) +{ + unsigned char ChNo; + float *Address,TempValue,tempParameter; + float I1,T1,Itemp; + float I2 = 1.0; + float T2 = 1.0; + float K = 0.1; + unsigned int DestAdd,Len,i,Sum; + union { + unsigned char Value1[4]; + // unsigned int Value2; + float Value2; + } SetValue; + float FloatValue = 0; + + + if(Number>=KDXZValue.Number) return FAIL; //ͨµÀºÅ´íÎ󣬷µ»Ø + Address=KDXZValue.Table[Number].SetValueAdd; //µçѹ΢µ÷ϵÊýµØÖ· + + DestAdd=Number*4; + + switch(Number){ + //#ifdef DEVICE_TYPE_CONVENTIONAL + #ifdef 0 + case ATBH_WD1: //ζÈ1УÕý luoyang modi + //20150416 luoyang modi ζȲÉÑùµãÈ¡40µãƽ¾ùÖµ + //Itemp=(float)ChannelValue[CH_ATBH_WD1].SampleValue_Digit[ChannelValue[CH_ATBH_WD1].FSCount]; + Itemp = SmpValueSet[CH_ATBH_WD1].averageValue; + if(fabs(ATBH_WD1ISet-Itemp)<500) return FAIL; + T1=ATBH_WD1TSet; + I1=ATBH_WD1ISet; + T2=Parameter; + I2=Itemp; + K=(T2-T1)/(I2-I1); + break; + case ATBH_WD2: //ζÈ2УÕý luoyang modi + //20150416 luoyang modi ζȲÉÑùµãÈ¡40µãƽ¾ùÖµ + //Itemp=(float)ChannelValue[CH_ATBH_WD2].SampleValue_Digit[ChannelValue[CH_ATBH_WD1].FSCount]; + Itemp = SmpValueSet[CH_ATBH_WD2].averageValue; + if(fabs(ATBH_WD2ISet - Itemp)<500) return FAIL; + DestAdd+=8; + T1=ATBH_WD2TSet; + I1=ATBH_WD2ISet; + T2=Parameter; + I2=Itemp; + K=(T2-T1)/(I2-I1); + break; + #endif + default: //µçÁ÷¡¢µçѹУÕý + ChNo=KDXZValue.Table[Number].ChannelNo; //Ä£ÄâÁ¿Í¨µÀºÅ + tempParameter=UIScaleCheck(Parameter,ChNo); // luoyang modi + if(tempParameter==0) return FAIL;//²ÎÊý³¬·¶Î§ + TempValue=Parameter/tempParameter; + if((TempValue<-5)||(TempValue>5)) return FAIL;//²ÎÊý³¬·¶Î§ + FloatValue=(*((float *)Address))*TempValue; + break; + } //endcase + + //ÐÞ¸Äϵͳ²ÎÊýÖеÄÖµ + + //SetValue.Value2=(unsigned int)(FloatValue*1000); //½«¸¡µãÊýת»»ÎªÕûÊý + if(ReadSysSetValueFromFile(NULL,&Len,NULL)!=SUCCESS) return FAIL; + //¶ÁϵͳÕû¶¨²ÎÊý³É¹¦£¬ÐÞ¸Äϵͳ²ÎÊý + + //luoyang modi ¸ü¸ÄΪС¶Ëģʽ + //if((Number==ATBH_WD1)||(Number==ATBH_WD2)) + //{ + //ÎÂ¶È + // SetValue.Value2=T2; //½«¸¡µãÊýת»»ÎªÕûÊý + // for(i=0;i<4;i++) SetValueBuffer[DestAdd+i]=SetValue.Value1[i]; DestAdd+=4; + // SetValue.Value2=I2; //½«¸¡µãÊýת»»ÎªÕûÊý + // for(i=0;i<4;i++) SetValueBuffer[DestAdd+i]=SetValue.Value1[i]; DestAdd+=4; + // SetValue.Value2=K; //½«¸¡µãÊýת»»ÎªÕûÊý + // for(i=0;i<4;i++) SetValueBuffer[DestAdd+i]=SetValue.Value1[i]; DestAdd+=4; + //} + //else + //{ + //µçÁ¿ + SetValue.Value2=FloatValue; //½«¸¡µãÊýת»»ÎªÕûÊý + for(i=0;i<4;i++) SetValueBuffer[DestAdd+i]=SetValue.Value1[i];//´óС¶Ë·­×ª + //} + + + //Éú³ÉУÑéÂë + Sum=0; + for(i=0;iClsDwnBit = Bit0; + pItemClsDwn->counter1 = 0; + pItemClsDwn->counter2 = 0; + pItemClsDwn->ERRBIT = SYS_ERR_BLOCK_PRTC_BIT; + //¶ÀÁ¢Ö§³ÖµÄÔª¼þ + pItemClsDwn->selfItemNum = 1; + pItemClsDwn->selfItem[0] = (unsigned int *)(&ATBH_FIYJ.ClsDwnIP);//¹ý¸ººÉÔª¼þ + if(BREAKER_TYPE == ATBH_ATMode) + { + pItemClsDwn->selfItemNum += 4; + pItemClsDwn->selfItem[1] = (unsigned int *)(&ATBH_CDSDYJ.ClsDwnIP);//²î¶¯ËÙ¶Ï + pItemClsDwn->selfItem[2] = (unsigned int *)(&ATBH_CDYJ.ClsDwnIP);//±ÈÂʲ + pItemClsDwn->selfItem[3] = (unsigned int *)(&ATBH_XieBo2CDIYJ.ClsDwnIP);//TÏß¶þ´Îг²¨±ÕËøÔª¼þ£¨²î¶¯£© + pItemClsDwn->selfItem[4] = (unsigned int *)(&ATBH_DLLDIFFAYJ.ClsDwnIP);//ÔöÁ¿²î¶¯ + //ÁªºÏÖ§³ÖµÄÔª¼þ + pItemClsDwn->comItemNum = 0; + } + else + { + //¸ô¿ª½ÓÈ뷽ʽ ÁªºÏÖ§³ÖµÄÔª¼þ + pItemClsDwn->comItemNum = 4; + pItemClsDwn->comItem[0] = (unsigned int *)(&ATBH_CDSDYJ.ClsDwnIP);//²î¶¯ËÙ¶Ï + pItemClsDwn->comItem[1] = (unsigned int *)(&ATBH_CDYJ.ClsDwnIP);//±ÈÂʲ + pItemClsDwn->comItem[2] = (unsigned int *)(&ATBH_XieBo2CDIYJ.ClsDwnIP);//TÏß¶þ´Îг²¨±ÕËøÔª¼þ£¨²î¶¯£© + pItemClsDwn->comItem[3] = (unsigned int *)(&ATBH_DLLDIFFAYJ.ClsDwnIP);//ÔöÁ¿²î¶¯ + } + + //2¡¢FÏß±£»¤ÈÆ×éµçÁ÷ + pItemClsDwn = &ItemClsDwnManage[CLSDWN_CH_ATBH_IF]; + pItemClsDwn->ClsDwnBit = Bit1; + pItemClsDwn->counter1 = 0; + pItemClsDwn->counter2 = 0; + pItemClsDwn->ERRBIT = SYS_ERR_BLOCK_PRTC_BIT;; + //¶ÀÁ¢Ö§³ÖµÄÔª¼þ + pItemClsDwn->selfItemNum = 0; + if(BREAKER_TYPE == ATBH_ATMode) + { + pItemClsDwn->selfItemNum += 4; + pItemClsDwn->selfItem[0] = (unsigned int *)(&ATBH_CDSDYJ.ClsDwnIP);//²î¶¯ËÙ¶Ï + pItemClsDwn->selfItem[1] = (unsigned int *)(&ATBH_CDYJ.ClsDwnIP);//±ÈÂʲ + pItemClsDwn->selfItem[2] = (unsigned int *)(&ATBH_XieBo2CDIYJ.ClsDwnIP);//TÏß¶þ´Îг²¨±ÕËøÔª¼þ£¨²î¶¯£© + pItemClsDwn->selfItem[3] = (unsigned int *)(&ATBH_DLLDIFFAYJ.ClsDwnIP);//ÔöÁ¿²î¶¯ + //ÁªºÏÖ§³ÖµÄÔª¼þ + pItemClsDwn->comItemNum = 0; + } + else + { + //¸ô¿ª½ÓÈ뷽ʽ ÁªºÏÖ§³ÖµÄÔª¼þ + pItemClsDwn->comItemNum = 4; + pItemClsDwn->comItem[0] = (unsigned int *)(&ATBH_CDSDYJ.ClsDwnIP);//²î¶¯ËÙ¶Ï + pItemClsDwn->comItem[1] = (unsigned int *)(&ATBH_CDYJ.ClsDwnIP);//±ÈÂʲ + pItemClsDwn->comItem[2] = (unsigned int *)(&ATBH_XieBo2CDIYJ.ClsDwnIP);//TÏß¶þ´Îг²¨±ÕËøÔª¼þ£¨²î¶¯£© + pItemClsDwn->comItem[3] = (unsigned int *)(&ATBH_DLLDIFFAYJ.ClsDwnIP);//ÔöÁ¿²î¶¯ + } + + //3¡¢2AT TÏß±£»¤ÈÆ×éµçÁ÷ + pItemClsDwn = &ItemClsDwnManage[CLSDWN_CH_ATBH_IT_DC]; + pItemClsDwn->ClsDwnBit = Bit2; + pItemClsDwn->counter1 = 0; + pItemClsDwn->counter2 = 0; + pItemClsDwn->ERRBIT = SYS_ERR_BLOCK_PRTC_BIT;; + pItemClsDwn->selfItemNum = 0; + + //ÁªºÏÖ§³ÖµÄÔª¼þ + pItemClsDwn->comItemNum = 5; + pItemClsDwn->comItem[0] = (unsigned int *)(&ATBH_CDSDYJ.ClsDwnIP);//²î¶¯ËÙ¶Ï + pItemClsDwn->comItem[1] = (unsigned int *)(&ATBH_CDYJ.ClsDwnIP);//±ÈÂʲ + pItemClsDwn->comItem[2] = (unsigned int *)(&ATBH_XieBo2CDIYJ.ClsDwnIP);//TÏß¶þ´Îг²¨±ÕËøÔª¼þ£¨²î¶¯£© + pItemClsDwn->comItem[3] = (unsigned int *)(&ATBH_FIYJ.ClsDwnIP);//¹ý¸ººÉÔª¼þ + pItemClsDwn->comItem[4] = (unsigned int *)(&ATBH_DLLDIFFAYJ.ClsDwnIP);//ÔöÁ¿²î¶¯ + + //4¡¢2AT FÏß±£»¤ÈÆ×éµçÁ÷ + pItemClsDwn = &ItemClsDwnManage[CLSDWN_CH_ATBH_IF_DC]; + pItemClsDwn->ClsDwnBit = Bit3; + pItemClsDwn->counter1 = 0; + pItemClsDwn->counter2 = 0; + pItemClsDwn->ERRBIT = SYS_ERR_BLOCK_PRTC_BIT;; + //¶ÀÁ¢Ö§³ÖµÄÔª¼þ + pItemClsDwn->selfItemNum = 0; + //ÁªºÏÖ§³ÖµÄÔª¼þ + pItemClsDwn->comItemNum = 4; + pItemClsDwn->comItem[0] = (unsigned int *)(&ATBH_CDSDYJ.ClsDwnIP);//²î¶¯ËÙ¶Ï + pItemClsDwn->comItem[1] = (unsigned int *)(&ATBH_CDYJ.ClsDwnIP);//±ÈÂʲ + pItemClsDwn->comItem[2] = (unsigned int *)(&ATBH_XieBo2CDIYJ.ClsDwnIP);//TÏß¶þ´Îг²¨±ÕËøÔª¼þ£¨²î¶¯£© + pItemClsDwn->comItem[3] = (unsigned int *)(&ATBH_DLLDIFFAYJ.ClsDwnIP);//ÔöÁ¿²î¶¯ + + + //5¡¢TÏßµçѹ + pItemClsDwn = &ItemClsDwnManage[CLSDWN_CH_ATBH_UT]; + pItemClsDwn->ClsDwnBit = Bit4; + pItemClsDwn->counter1 = 0; + pItemClsDwn->counter2 = 0; + pItemClsDwn->ERRBIT = SYS_ERR_BLOCK_PRTC_BIT; + //¶ÀÁ¢Ö§³ÖµÄÔª¼þ + pItemClsDwn->selfItemNum = 3; + pItemClsDwn->selfItem[0] = (unsigned int *)(&ATBH_SYYJ.ClsDwnIP);//ʧѹԪ¼þ + pItemClsDwn->selfItem[1] = (unsigned int *)(&ATBH_TPTDXYJ.ClsDwnIP); //Tpt¶ÏÏß + pItemClsDwn->selfItem[2] = (unsigned int *)(&ATBH_FPTDXYJ.ClsDwnIP); //Fpt¶ÏÏß + pItemClsDwn->comItemNum = 0; + + //6¡¢FÏßµçѹ + pItemClsDwn = &ItemClsDwnManage[CLSDWN_CH_ATBH_UF]; + pItemClsDwn->ClsDwnBit = Bit5; + pItemClsDwn->counter1 = 0; + pItemClsDwn->counter2 = 0; + pItemClsDwn->ERRBIT = SYS_ERR_BLOCK_PRTC_BIT;; + //¶ÀÁ¢Ö§³ÖµÄÔª¼þ + pItemClsDwn->selfItemNum = 3; + pItemClsDwn->selfItem[0] = (unsigned int *)(&ATBH_SYYJ.ClsDwnIP);//ʧѹԪ¼þ + pItemClsDwn->selfItem[1] = (unsigned int *)(&ATBH_TPTDXYJ.ClsDwnIP); //Tpt¶ÏÏß + pItemClsDwn->selfItem[2] = (unsigned int *)(&ATBH_FPTDXYJ.ClsDwnIP); //Fpt¶ÏÏß + pItemClsDwn->comItemNum = 0; + +} + +#endif diff --git a/标准版4.0/lib_atbh.c b/标准版4.0/lib_atbh.c new file mode 100644 index 00000000..3681fcbd --- /dev/null +++ b/标准版4.0/lib_atbh.c @@ -0,0 +1,3278 @@ +#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 diff --git a/标准版4.0/mainAtbh.c b/标准版4.0/mainAtbh.c new file mode 100644 index 00000000..25bc3fbb --- /dev/null +++ b/标准版4.0/mainAtbh.c @@ -0,0 +1,97 @@ +/**************************************************************************************************** + * mainAtbh.c + * ÃèÊö£ºAT±£»¤Ö÷Îļþ£¬°üº¬Èë¿Ú³ÌÐò£¬Ö÷ҪģÄâ²ÉÑùÖжϳÌÐòºÍ±£»¤ÖжϳÌÐò + * º¯Êý£ºSTATUS progStart() + * void sysInit() + * void ReadSampleValue() + * void funcBH() + * void progStop() + * + * + ******************************************************************************************************/ + +/****************************************** includes ***********************************************/ +#include "..\h\predefine.h" +#ifdef _atbh_c_ + +#include "time.h" + +/* APP relational */ +#include ".\inc\atbh.h" +#include "..\h\lib.h" +#include "..\h\variable.h" + +#include "..\h\com_lib.h" +#include "..\h\testDefine.h" + +#include +#include "time.h" + +/**************************************** forward declarations ***************************************/ + +int progStart(int ErrCode); +void progStop(); +void comm(); + + +extern void Reset_Init(); +extern void InitCommTable(); +extern void PowerInitData(void); +extern void settingtype_init(); +extern void commobjectinit(); + + +/****************************************************************************** +* Function: progStart +* Description:Èë¿Ú +* Calls: none +* Called By: +* Input: +* Ouput: +* Return: +* others: +* History: +* 1.luoyang created +* +*******************************************************************************/ +int progStart(int ErrCode) +{ + PowerInitData(); //Éϵç³õʼ»¯ + InitCommTable(); //ͨÐųõʼ»¯ + settingtype_init(); + commobjectinit(); + + InitSample(); //³õʼ»¯Ä£ÄâÁ¿Í¨µÀÏà¹Ø±äÁ¿ + dl_open_innormal_param_init(&ATBH_dl_open_innormal_param); + + digit_init(); //Êý×Ö½Ó¿Ú³õʼ»¯ + CHZValue.Status = CHZ_CLOSE; + Reset_Init(); //¸´Î»³õʼ»¯ + + QdInfoShow(); // + + //block_Init(); //±ÕËø³õʼ»¯ + + return (OK); +} + +/****************************************************************************** +* Function: ReadSampleValue +* Description:δʹÓà +* Calls: none +* Called By: +* Input: +* Ouput: +* Return: +* others: +* History: +* 1.luoyang created +* +*******************************************************************************/ + +void progStop() +{ + +} + +#endif diff --git a/标准版4.0/map_atbh.c b/标准版4.0/map_atbh.c new file mode 100644 index 00000000..94e1d002 --- /dev/null +++ b/标准版4.0/map_atbh.c @@ -0,0 +1,208 @@ +/* + * map_atbh.c + * + * Created on: 2021-2-9 + * Author: LuoYang + */ + +#include "predefine.h" + +#ifdef _atbh_c_ +#include "digit_protect_inoutcode.h" +#include "..\atbh\inc\inout_atbh.h" +#include "..\atbh\inc\map_atbh.h" + +#ifdef DEVICE_TYPE_CONVENTIONAL +//goose¿ªÈë¿ÚÓ³É䣺Êý×Ö»¯ÊäÈëͨµÀÓ³Éäµ½goose¿ªÈë¿Ú +unsigned char GseInportMapSet[DIGIT_GSEINPORT_MAP_NUM]; +unsigned char GseOutportMapSet[DIGIT_GSEOUTPORT_MAP_NUM]; +unsigned short int KaiRuMapSet[DIGIT_KAIRU_MAP_NUM]; +//¿ªÈëÓ³É䣺½¨Á¢¿ØÖÆ¿ªÈëÓëÒ£¿Ø¶ÔÏóºÅµÄÓ³Éä¹ØÏµ +//¿ªÈëºÅ¡¢Ò£¿Ø¶ÔÏóºÅ¡¢²Ù×÷ÊôÐÔ£¨2-ºÏ¡¢1-·Ö£© +unsigned char CtrlKaiRuMapSet[DIGIT_KAIRU_CTRL_MAP_NUM][3]; +//unsigned char IOKaiChuMapSet[DIGIT_IOKAICHU_MAP_NUM][3]; + +#else + +//gse¿ªÈë¿Ú +unsigned char GseInportMapSet[DIGIT_GSEINPORT_MAP_NUM] = { + ATBH_QF_HW_KR, //¶Ï·Æ÷ºÏλ + ATBH_QS1_HW_KR, //¸ô¿ª1ºÏλ + ATBH_QS2_HW_KR, //¸ô¿ª2ºÏλ + ATBH_QS3_HW_KR, //¸ô¿ª3ºÏλ + ATBH_ZWS_KR, //ÖØÍß˹ + ATBH_WD2_KR, //ζȢò¶Î + ATBH_YLSF_KR, //ѹÁ¦ÊÍ·Å + ATBH_GK0_KR, //²¢Áª¸ô¿ªºÏλ + ATBH_QDZT_KR, //Æô¶¯×ÔͶ + ATBH_YYZT_KR, //¼ìÓÐѹ×ÔͶ + ATBH_QWS_KR, //ÇáÍß˹ + ATBH_WD1_KR, //ζÈ1¶Î + ATBH_YWD_KR, //ÓÍλµÍ + ATBH_YWG_KR, //ÓÍλ¸ß + ATBH_YL1_KR, //Ô¤Áô1 + ATBH_YL2_KR, //Ô¤Áô2 + ATBH_YL3_KR, //Ô¤Áô3 + ATBH_YL4_KR, //Ô¤Áô4 + ATBH_YL5_KR, //Ô¤Áô5 + ATBH_YL6_KR, //Ô¤Áô6 + ATBH_YL7_KR, //Ô¤Áô7 ª³ + ATBH_YL8_KR, //Ô¤Áô8 ª³ + ATBH_YL9_KR, //Ô¤Áô9 + ATBH_YL10_KR, //Ô¤Áô10 + ATBH_YL11_KR, //Ô¤Áô11 + ATBH_YL12_KR, //Ô¤Áô12 + ATBH_YL13_KR, //Ô¤Áô13 + ATBH_YL14_KR, //Ô¤Áô14 + ATBH_YL15_KR, //Ô¤Áô15 + ATBH_YL16_KR, //Ô¤Áô16 + ATBH_YL17_KR, //Ô¤Áô17 + ATBH_YL18_KR, //Ô¤Áô18 + ATBH_YL19_KR, //Ô¤Áô19 + ATBH_YL20_KR, //Ô¤Áô20 + ATBH_YL21_KR, //Ô¤Áô21 + ATBH_YL22_KR, //Ô¤Áô22 + ATBH_YL23_KR, //Ô¤Áô23 + ATBH_YL24_KR, //Ô¤Áô24 + ATBH_YL25_KR, //Ô¤Áô25 + ATBH_YL26_KR, //Ô¤Áô26 + ATBH_YL27_KR, + ATBH_YL28_KR, + ATBH_YL29_KR, + ATBH_YL30_KR, + ATBH_YL31_KR, + ATBH_YL32_KR, + ATBH_YL33_KR, + ATBH_YL34_KR, + ATBH_YL35_KR, + ATBH_YL36_KR, + ATBH_YL37_KR, + ATBH_YL38_KR, + ATBH_YL39_KR, + ATBH_YL40_KR, + //20210408 add by lw + ATBH_QS4_HW_KR, //¸ô¿ª4ºÏλ + ATBH_QS5_HW_KR, //¸ô¿ª5ºÏλ +}; +//gse¿ª³ö¿Ú +unsigned char GseOutportMapSet[DIGIT_GSEOUTPORT_MAP_NUM] = { + ATBH_BCJQ_KC, //±£»¤ÌøÕ¢ + ATBH_HCJ_KC, //±£»¤ºÏÕ¢ + ATBH_QF_TZ_KC, //¿ØÖÆ·ÖÕ¢ + ATBH_QF_HZ_KC, //¿ØÖƺÏÕ¢ + ATBH_1QS_TZ_KC, //1QS·ÖÕ¢ + ATBH_1QS_HZ_KC, //1QSºÏÕ¢ + ATBH_2QS_TZ_KC, //2QS·ÖÕ¢ + ATBH_2QS_HZ_KC, //2QSºÏÕ¢ + ATBH_3QS_TZ_KC, //3QS·ÖÕ¢ + ATBH_3QS_HZ_KC, //3QSºÏÕ¢ + ATBH_BHQD_KC, //±£»¤Æô¶¯ + ATBH_CDJQ_KC, //Æô¶¯×ÔͶ + ATBH_SL_KC, //¶Ï·Æ÷ʧÁé + ATBH_1QF_FZ_BS_KC, + ATBH_1QF_HZ_BS_KC, + ATBH_1QS_FZ_BS_KC, + ATBH_1QS_HZ_BS_KC, + ATBH_2QS_FZ_BS_KC, + ATBH_2QS_HZ_BS_KC, + ATBH_3QS_FZ_BS_KC, + ATBH_3QS_HZ_BS_KC, + ATBH_JYYZT_KC, //¼ìÓÐѹ×ÔͶ + ATBH_BY2_KC, + ATBH_BY3_KC, + ATBH_BY4_KC, + //20210408 add by lw + ATBH_4QS_TZ_KC, //4QS·ÖÕ¢ + ATBH_4QS_HZ_KC, //4QSºÏÕ¢ + ATBH_5QS_TZ_KC, //5QS·ÖÕ¢ + ATBH_5QS_HZ_KC, //5QSºÏÕ¢ + ATBH_4QS_FZ_BS_KC, + ATBH_4QS_HZ_BS_KC, + ATBH_5QS_FZ_BS_KC, + ATBH_5QS_HZ_BS_KC, +}; + +//¿ªÈëÓ³É䣺½«±£»¤¶¨ÒåµÄ¿ªÈëͨµÀÓ³Éäµ½Êý×Ö»¯ÊäÈëͨµÀ +unsigned short KaiRuMapSet[DIGIT_KAIRU_MAP_NUM] = { +}; + + +//¿ªÈëÓ³É䣺½¨Á¢¿ØÖÆ¿ªÈëÓëÒ£¿Ø¶ÔÏóºÅµÄÓ³Éä¹ØÏµ +//¿ªÈëºÅ¡¢Ò£¿Ø¶ÔÏóºÅ¡¢²Ù×÷ÊôÐÔ£¨2-ºÏ¡¢1-·Ö£© +unsigned char CtrlKaiRuMapSet[DIGIT_KAIRU_CTRL_MAP_NUM][3] = { + {ATBH_QF_HZ_KR,ATBH_QF,2}, //¶Ï·Æ÷ºÏÕ¢ + {ATBH_QF_FZ_FR,ATBH_QF,1}, //¶Ï·Æ÷·ÖÕ¢ + {ATBH_QS1_HZ_KR,ATBH_1QS,2}, //¸ô¿ª1ºÏÕ¢ + {ATBH_QS1_FZ_KR,ATBH_1QS,1}, //¸ô¿ª1·ÖÕ¢ + {ATBH_QS2_HZ_KR,ATBH_2QS,2}, //¸ô¿ª2ºÏÕ¢ + {ATBH_QS2_FZ_KR,ATBH_2QS,1}, //¸ô¿ª2·ÖÕ¢ + {ATBH_QS3_HZ_KR,ATBH_3QS,2}, //¸ô¿ª3ºÏÕ¢ + {ATBH_QS3_FZ_KR,ATBH_3QS,1}, //¸ô¿ª3·ÖÕ¢ + {ATBH_QS4_HZ_KR,ATBH_4QS,2}, //¸ô¿ª4ºÏÕ¢ + {ATBH_QS4_FZ_KR,ATBH_4QS,1}, //¸ô¿ª4·ÖÕ¢ + {ATBH_QS5_HZ_KR,ATBH_5QS,2}, //¸ô¿ª5ºÏÕ¢ + {ATBH_QS5_FZ_KR,ATBH_5QS,1}, //¸ô¿ª5·ÖÕ¢ +}; + + +//IO¿ªÈëÓ³Éä +//±£»¤¿ªÈë±àÂë IO²å¼þID£¨0 1 2 3£© IO¿ªÈë±àÂë +unsigned char IOKaiRuMapSet[DIGIT_IOKAIRU_MAP_NUM][3] ={ + {ATBH_QF_HZ_KR,0,IO_KAIRU1}, //¶Ï·Æ÷ºÏÕ¢ + {ATBH_QF_FZ_FR,0,IO_KAIRU2}, //¶Ï·Æ÷·ÖÕ¢ + {ATBH_QS1_HZ_KR,0,IO_KAIRU3}, //¸ô¿ª1ºÏÕ¢ + {ATBH_QS1_FZ_KR,0,IO_KAIRU4}, //¸ô¿ª1·ÖÕ¢ + {ATBH_QS2_HZ_KR,0,IO_KAIRU5}, //¸ô¿ª2ºÏÕ¢ + {ATBH_QS2_FZ_KR,0,IO_KAIRU6}, //¸ô¿ª2·ÖÕ¢ + + {ATBH_YL1_KR,0,IO_KAIRU7}, //Ô¤Áô1 //20170905 L.Y. add start + {ATBH_YL2_KR,0,IO_KAIRU8}, //Ô¤Áô2 + {ATBH_YL3_KR,0,IO_KAIRU9}, //Ô¤Áô3 + {ATBH_YL4_KR,0,IO_KAIRU10}, //Ô¤Áô4 + {ATBH_YL5_KR,0,IO_KAIRU11}, //Ô¤Áô5 + {ATBH_YL6_KR,0,IO_KAIRU12}, //Ô¤Áô6 + {ATBH_YL7_KR,0,IO_KAIRU13}, //Ô¤Áô7 + {ATBH_YL8_KR,0,IO_KAIRU14}, //Ô¤Áô8 + {ATBH_YL9_KR,0,IO_KAIRU15}, //Ô¤Áô9 + {ATBH_YL10_KR,0,IO_KAIRU16}, //Ô¤Áô10 //20170905 L.Y. add end + + {ATBH_YK_KR,0,IO_KAIRU17}, //Ò£¿Ø·½Ê½ + {ATBH_JX_KR,0,IO_KAIRU18}, //¼ìÐÞ + + {ATBH_CHZTR_KR,0,IO_KAIRU19}, //ÖØºÏբӲѹ°å + {ATBH_ZTTR_KR,0,IO_KAIRU20}, //½øÏß×ÔͶӲѹ°å + + {ATBH_QS3_HZ_KR,1,IO_KAIRU1}, //¸ô¿ª3ºÏÕ¢ //20170905 L.Y. add start + {ATBH_QS3_FZ_KR,1,IO_KAIRU2}, //¸ô¿ª3·ÖÕ¢ + {ATBH_QS4_HZ_KR,1,IO_KAIRU3}, //¸ô¿ª4ºÏÕ¢ + {ATBH_QS4_FZ_KR,1,IO_KAIRU4}, //¸ô¿ª4·ÖÕ¢ + {ATBH_QS5_HZ_KR,1,IO_KAIRU5}, //¸ô¿ª5ºÏÕ¢ + {ATBH_QS5_FZ_KR,1,IO_KAIRU6}, //¸ô¿ª5·ÖÕ¢ + //{ATBH_ZTTR_KR,0,IO_KAIRU21}, //×ÔͶͶÍË + //{ATBH_ZTDZ_KR,0,IO_KAIRU22}, //×ÔͶ¶¯×÷ + //{ATBH_TZ_KR,0,IO_KAIRU23} //ÌøÕ¢¶¯×÷ +}; + +unsigned char IOKaiChuMapSet[DIGIT_IOKAICHU_MAP_NUM][3] ={ + {ATBH_QF_HWD_KC,0,IO_KAICHU1}, //¶Ï·Æ÷ºÏλµÆ + {ATBH_QF_FWD_KC,0,IO_KAICHU2}, //¶Ï·Æ÷·ÖλµÆ + {ATBH_1QS_HWD_KC,0,IO_KAICHU3}, //¸ô¿ª1ºÏλµÆ + {ATBH_1QS_FWD_KC,0,IO_KAICHU4}, //¸ô¿ª1·ÖλµÆ + {ATBH_2QS_HWD_KC,0,IO_KAICHU5}, //¸ô¿ª2ºÏλµÆ + {ATBH_2QS_FWD_KC,0,IO_KAICHU6}, //¸ô¿ª2·ÖλµÆ + {ATBH_3QS_HWD_KC,1,IO_KAICHU1}, //¸ô¿ª3ºÏλµÆ + {ATBH_3QS_FWD_KC,1,IO_KAICHU2}, //¸ô¿ª3·ÖλµÆ + {ATBH_4QS_HWD_KC,1,IO_KAICHU3}, //¸ô¿ª4ºÏλµÆ + {ATBH_4QS_FWD_KC,1,IO_KAICHU4}, //¸ô¿ª4·ÖλµÆ + {ATBH_5QS_HWD_KC,1,IO_KAICHU5}, //¸ô¿ª5ºÏλµÆ + {ATBH_5QS_FWD_KC,1,IO_KAICHU6}, //¸ô¿ª5·ÖλµÆ + //{ATBH_3QS_HWD_KC,0,IO_KAICHU25}, //×ÔͶ¶¯×÷ºÏλ + //{ATBH_3QS_FWD_KC,0,IO_KAICHU26}, //×ÔͶ¶¯×÷·Öλ + //{DIGIT_ATBH_TZ_HW_KC,0,IO_KAICHU27}, //ÌøÕ¢¶¯×÷ºÏλ + //{DIGIT_ATBH_TZ_FW_KC,0,IO_KAICHU28}, //ÌøÕ¢¶¯×÷·Öλ + +}; +#endif +#endif + +