فهرست منبع

修改 : 重合闸检无压逻辑;

lch 5 ماه پیش
والد
کامیت
8737df0791
6فایلهای تغییر یافته به همراه97 افزوده شده و 121 حذف شده
  1. 2 1
      README.md
  2. 1 2
      dtu/dtu_main_t536/app/defineSys.h
  3. 52 54
      dtu/dtu_main_t536/app/reclose.c
  4. 1 0
      dtu/dtu_main_t536/app/reclose.h
  5. 25 35
      dtu/dtu_main_t536/app/set.c
  6. 16 29
      dtu/dtu_main_t536/app/set.h

+ 2 - 1
README.md

@@ -83,4 +83,5 @@
 07. 修改 : 开放故障遥信保持时间,修改默认时间3s;
 08. 修改 : 将定值修改位置放到log_fixset.txt文件之中;
 09. 修改 : 定值的大小范围;
-10. 修改 : 定值描述;
+10. 修改 : 定值描述;
+11. 修改 : 重合闸检无压逻辑;

+ 1 - 2
dtu/dtu_main_t536/app/defineSys.h

@@ -12,7 +12,7 @@
 #ifndef _DEFINE_SYS_H
 #define _DEFINE_SYS_H
 
-#define DEVICE_VERSION_INFORMATION "NW24_20260106_005" // NW2022意思是按照22年南网标准文件(总调)来做的
+#define DEVICE_VERSION_INFORMATION "NW24_20260113_001" // NW2022意思是按照22年南网标准文件(总调)来做的
 
 #ifdef ___defineSys____//!!!此宏定义不开启,以下宏不直接开启,只用于注释显示
 
@@ -27,7 +27,6 @@
 #define IECTABLE_NEWDPI_V106           // 转发表配合工具完成合并点和遥信单双点配合版本  0X01010106
 #define BHFA_YB_YK                     // 遥控保护和FA软压板投退
 #define EV_GL_STATR                    // 过流启动SOE
-#define DISP_CHZOKCHR_2_SW             // 重合闸确认时间+充电时间移到开关定值
 #define FUNC_CHZ_CHARGE_TIME		   // 重合闸充电通用一个定值,不管几次重合闸
 #define YX_DI_ERROR                    // 遥信硬件自检错误
 #define HISTORY_DB                     // 历史文件数据库

+ 52 - 54
dtu/dtu_main_t536/app/reclose.c

@@ -44,8 +44,8 @@ static void ARTQ_DataSet(int sw);
 ***************************************************************************/
 void AutoReclose(int sw, DWORD dStep)
 {
-    AR_DataSet(sw); // 重合闸数据准备
-    ARTQ_DataSet(sw);
+    AR_DataSet(sw);         // 重合闸数据准备
+    ARTQ_DataSet(sw);       // 检同期、检无压
     AR_Recharge(sw, dStep); // 重合闸充电
     AR_Disable(sw);         // 重合闸闭锁
     AR_Start(sw, dStep);    // 重合闸启动
@@ -54,9 +54,17 @@ void AutoReclose(int sw, DWORD dStep)
     return;
 }
 
+/**
+ * @brief          检同期、检无压
+ * @param[in/out]  {int} sw 开关号
+ * @return         void
+ * @retval         none
+ * 
+ * @warning        none
+ * @note           none
+ */
 void ARTQ_DataSet(int sw)
 {
-
     TCH_T *pSW = &g_tRelay[sw].tCHZ;
     TSETSW *pSet = &pRunSet->tSwSet[sw];
     bool bDa = false;
@@ -93,52 +101,41 @@ void ARTQ_DataSet(int sw)
 
     bDu = (_AbsL(g_ui[PUB_AC_UAB1].fz - g_ui[pRunSet->pt2vol].fz) < pSet->dU_chz_deltaU) ? true : false; // 压差满足要求
 
-    pSW->sta.bFlag.bTQMZ =
-#ifdef CHZ_JWY_LM
-        (pSet->bTT_chz_tq || pSet->bTT_chz_mwy || pSet->bTT_chz_lwy) // 同期合闸
-#else
-        (pSet->bTT_chz_tq || pSet->bTT_chz_wy) // 同期合闸
-#endif
-        && pSW->sta.bFlag.bMxYY     // 母线有压
-        && pSW->sta.bFlag.bUxYY     // 线路有压
-        && bDu                      // 压差满足
-        && bDa                      // 角差满足
-        && !tPT.uPT1DX.bFlag.bPTYC  // 无PT 异常
-        && !tPT.uPT2DX.bFlag.bPTYC; // 无PT 异常
-
-    pSW->sta.bFlag.bMWYMZ =
-#ifdef CHZ_JWY_LM
-        (pSet->bTT_chz_mwy && pSW->sta.bFlag.bMxWY && pSW->sta.bFlag.bUxYY) // 母线无压&&线路有压
-#else
-        (pSet->bTT_chz_wy) // 无压合闸
-#endif
-        && pSW->sta.bFlag.bMxWY     // 母线有压
-        && !tPT.uPT1DX.bFlag.bPTYC; // 无PT 异常
-
-    pSW->sta.bFlag.bUWYMZ =
-#ifdef CHZ_JWY_LM
-        (pSet->bTT_chz_lwy && pSW->sta.bFlag.bUxWY && pSW->sta.bFlag.bMxYY) // 线路无压&&母线有压
-#else
-        (pSet->bTT_chz_wy) // 无压合闸
-#endif
-        && pSW->sta.bFlag.bUxWY     // 线路无压
-        && !tPT.uPT2DX.bFlag.bPTYC; // 无PT 异常
-
+    pSW->sta.bFlag.bTQMZ = pSet->bTT_chz_tq            // 同期合闸
+                           && pSW->sta.bFlag.bMxYY     // 母线有压
+                           && pSW->sta.bFlag.bUxYY     // 线路有压
+                           && bDu                      // 压差满足
+                           && bDa                      // 角差满足
+                           && !tPT.uPT1DX.bFlag.bPTYC  // 无PT 异常
+                           && !tPT.uPT2DX.bFlag.bPTYC; // 无PT 异常
+
+    pSW->sta.bFlag.bUWYMZ = pSet->bTT_chz_wy && pSet->bTT_chz_wy_type == 0 // 重合检无压方式 0母有线无 1母无线有 2两侧无压
+                            && pSW->sta.bFlag.bMxYY                        // 母线有压
+                            && pSW->sta.bFlag.bUxWY                        // 线路无压
+                            && !tPT.uPT2DX.bFlag.bPTYC;                    // 无PT 异常
+
+    pSW->sta.bFlag.bMWYMZ = pSet->bTT_chz_wy && pSet->bTT_chz_wy_type == 1 // 重合检无压方式 0母有线无 1母无线有 2两侧无压
+                            && pSW->sta.bFlag.bMxWY                        // 母线无压
+                            && pSW->sta.bFlag.bUxYY                        // 线路有压
+                            && !tPT.uPT1DX.bFlag.bPTYC;                    // 无PT 异常
+
+    pSW->sta.bFlag.bAWYMZ = pSet->bTT_chz_wy && pSet->bTT_chz_wy_type == 2 // 重合检无压方式 0母有线无 1母无线有 2两侧无压
+                            && pSW->sta.bFlag.bMxWY                        // 母线无压
+                            && pSW->sta.bFlag.bUxWY;                       // 线路无压
+
+    /* 重合闸条件检查 */
     pSW->sta.bFlag.bCHMZ = pSW->sta.bFlag.bTQMZ     // 同期满足
                            || pSW->sta.bFlag.bMWYMZ // 母线无压满足
                            || pSW->sta.bFlag.bUWYMZ // 线路无压满足
-#ifdef CHZ_JWY_LM
-                           || ((!pSet->bTT_chz_tq) && (!pSet->bTT_chz_mwy) && (!pSet->bTT_chz_lwy))
-#else
-                           || ((!pSet->bTT_chz_tq) && (!pSet->bTT_chz_wy))
-#endif
-        ;
+                           || pSW->sta.bFlag.bAWYMZ // 线路无压满足
+                           || ((!pSet->bTT_chz_tq) && (!pSet->bTT_chz_wy));
+
     if (pR->tCHZ.sta.bFlag.bCHQD)
     {
         if (!pSW->sta.bFlag.bTQMZ && (print_flag++ % (1 * 200)) == 0) // 1S
         {
             if ((!bDa) && (pSet->bTT_chz_tq))
-                dp_info_nt_rt("角差不满足 pt1=%d pt2=%d ang2=%d      角差=%d 相位补偿后角差=%d        dz=%d pt2vol=%d",
+                dp_info_nt_rt("角差不满足 pt1 = %d pt2 = %d ang2 = %d 角差 = %d 相位补偿后角差 = %d dz = %d pt2vol = %d",
                               (g_ui[PUB_AC_UAB1].p) / 65536,
                               (g_ui[pRunSet->pt2vol].p) / 65536,
                               ang2 / 65536,
@@ -146,10 +143,11 @@ void ARTQ_DataSet(int sw)
                               _AbsL(deltaA + ang2) / 65536,
                               pSet->dA_chz_deltaAng / 65536,
                               pRunSet->pt2vol);
-#ifndef CHZ_JWY_LM
-            if ((!bDu) && (pSet->bTT_chz_wy))
-                dp_info_nt_rt("压差不满足");
-#endif
+                
+            if (pSet->bTT_chz_wy && !pSW->sta.bFlag.bMWYMZ && !pSW->sta.bFlag.bUWYMZ && !pSW->sta.bFlag.bAWYMZ)
+            {
+                dp_info_nt_rt("检无压条件不满足");
+            }
         }
     }
 }
@@ -590,6 +588,7 @@ static void AR_Logic(int sw, DWORD dStep)
             pSW->sta.bFlag.bCHZLed = true;
 
             pSW->wAR_ActTimes++; // 重合动作次数
+#if (0)
             if (g_run_stu.yf)
             {
                 dp_info_nt_rt("bHZL4 = %d", bHZL4);
@@ -597,6 +596,7 @@ static void AR_Logic(int sw, DWORD dStep)
                 dp_info_nt_rt("pSW->sta.bFlag.bHz = %d", pSW->sta.bFlag.bHz);
                 dp_info_nt_rt("pR->tCHZ.wAR_ActTimes = %d", pR->tCHZ.wAR_ActTimes);
             }
+#endif
             pSW->sta.bFlag.bEvent = true;
             // pSW->uCHFG.wfFlag=0;			//每次重合出口后,清重合复归标志  修改时注意,此处需对标志字特殊处理
 
@@ -715,7 +715,6 @@ static void AR_Reset(int sw, DWORD dStep)
         if (pR->tCHZ.wAR_ActTimes)
         {
             rt_printf_time("重合闸复归\r\n");
-            dp_info_nt_rt("[%s:%d]pR->tCHZ.wAR_ActTimes = %d", __func__, __LINE__, pR->tCHZ.wAR_ActTimes);
         }
         pSW->sta.bFlag.bCHDZ = false;
         pR->tCHZ.wAR_ActTimes = 0;
@@ -726,14 +725,13 @@ static void AR_Reset(int sw, DWORD dStep)
         pSW->sta.bFlag.bCHZOP = false;
         ResetTR(&pSW->tTCHOPENTime);
 
-        if (g_run_stu.yf)
-        {
-            rt_printf_time("bFD1 = %d, pSW->sta.bFlag.bCK = %d, pR->uBHDZ.bFlag.bBHT = %d, pSW->sta.bFlag.bCHCK = %d\r\n",
-                        bFD1,
-                        pSW->sta.bFlag.bCK,
-                        pR->uBHDZ.bFlag.bBHT,
-                        pSW->sta.bFlag.bCHCK);
-        }
+#if (0)
+        rt_printf_time("bFD1 = %d, pSW->sta.bFlag.bCK = %d, pR->uBHDZ.bFlag.bBHT = %d, pSW->sta.bFlag.bCHCK = %d\r\n",
+                    bFD1,
+                    pSW->sta.bFlag.bCK,
+                    pR->uBHDZ.bFlag.bBHT,
+                    pSW->sta.bFlag.bCHCK);
+#endif
     }
     // 手动/自动复归条件:(1)重合闸闭锁(2)重合已启动,但充电标志已清零
     if (g_tRelay[sw].run_stu.chzbs                          // 闭锁

+ 1 - 0
dtu/dtu_main_t536/app/reclose.h

@@ -41,6 +41,7 @@ typedef union UCHFLAG
         DWORD bTQMZ : 1;  // 同期条件满足
         DWORD bMWYMZ : 1; // 母线无压条件满足
         DWORD bUWYMZ : 1; // 线路无压条件满足
+        DWORD bAWYMZ : 1; // 两侧无压条件满足
         DWORD bCHMZ : 1;  // 重合闸条件满足(同期、无压或不判断)
         DWORD bCHZOP : 1; // 重合闸开放时间标志
     } bFlag;

+ 25 - 35
dtu/dtu_main_t536/app/set.c

@@ -735,6 +735,14 @@ const SET_LIST BMLList[] =
 };
 #define BMLListNum (sizeof(BMLList) / sizeof(SET_LIST))
 
+const SET_LIST JWYList[] =
+{
+    {"母有线无", 0, },
+    {"母无线有", 1, },
+    {"两侧无压", 2, },
+};
+#define JWYListNum (sizeof(JWYList) / sizeof(SET_LIST))
+
 int g_goose_net_type=0;
 
 /**********************************************************************
@@ -865,7 +873,7 @@ const TSETTABLE tSwSetTable[] = // min 	 max 		     default
     {SETTYPE_LIST,  SET_NULL,   0,      TZCKListNum - 1,    0,      TZCKList,   TZCKListNum,    GROUP_SET_BHTT,         0x0000, BOOL_R, "零序过流Ⅲ段投入"},
     {SETTYPE_LIST,  SET_NULL,   0,      TZCKListNum - 1,    0,      TZCKList,   TZCKListNum,    GROUP_SET_BHTT,         0,      BOOL_R, "零序过电压保护"},
     {SETTYPE_LIST,  SET_NULL,   0,      TTListNum - 1,      0,      TTList,     TTListNum,      GROUP_SET_BHTT,         0,      BOOL_R, "后加速保护投入"},
-    {SETTYPE_LIST,  SET_NULL,   0,      TTListNum - 1,      0,      TTList,     TTListNum,      GROUP_SET_BHTT,         0x5013, BOOL_R, "过流保护启动重合闸"},
+    {SETTYPE_LIST,  SET_NULL,   0,      TTListNum - 1,      1,      TTList,     TTListNum,      GROUP_SET_BHTT,         0x5013, BOOL_R, "过流保护启动重合闸"},
     {SETTYPE_LIST,  SET_NULL,   0,      TTListNum - 1,      0,      TTList,     TTListNum,      GROUP_SET_BHTT,         0x5014, BOOL_R, "零序过流保护启动重合闸"},
     {SETTYPE_LIST,  SET_NULL,   0,      TTListNum - 1,      0,      TTList,     TTListNum,      GROUP_SET_BHTT,         0x5012, BOOL_R, "涌流识别投入"},
     {SETTYPE_LIST,  SET_NULL,   0,      TTListNum - 1,      0,      TTList,     TTListNum,      GROUP_SET_BHTT,         0x5012, BOOL_R, "非遮断保护投入"},
@@ -900,27 +908,24 @@ const TSETTABLE tSwSetTable[] = // min 	 max 		     default
     {SETTYPE_LIST,  SET_NULL,   0,      TTListNum - 1,      0,      TTList,     TTListNum,      GROUP_SET_CHZKZ,        0x0000, BOOL_R, "三次重合闸投入"},
 #endif
     {SETTYPE_LIST,  SET_NULL,   0,      TTListNum - 1,      0,      TTList,     TTListNum,      GROUP_SET_CHZKZ,        0x5015, BOOL_R, "重合闸检同期"},
-#ifdef CHZ_JWY_LM
-    {SETTYPE_LIST,  SET_NULL,   0,      TTListNum - 1,      0,      TTList,     TTListNum,      GROUP_SET_CHZKZ,        0x0000, BOOL_R, "母线无压线路有压"},
-    {SETTYPE_LIST,  SET_NULL,   0,      TTListNum - 1,      0,      TTList,     TTListNum,      GROUP_SET_CHZKZ,        0x0000, BOOL_R, "线路无压母线有压"},
-#else
     {SETTYPE_LIST,  SET_NULL,   0,      TTListNum - 1,      0,      TTList,     TTListNum,      GROUP_SET_CHZKZ,        0x5016, BOOL_R, "重合闸检无压"},
-#endif
+    {SETTYPE_LIST,  SET_NULL,   0,      JWYListNum - 1,     0,      JWYList,    JWYListNum,     GROUP_SET_CHZKZ,        0x5016, BOOL_R, "重合闸检无压方式"},
     {SETTYPE_LIST,  SET_NULL,   0,      TTListNum - 1,      0,      TTList,     TTListNum,      GROUP_SET_CHZKZ,        0x5016, BOOL_R, "大电流闭锁重合投入"},
     {SETTYPE_LIST,  SET_NULL,   0,      TTListNum - 1,      0,      TTList,     TTListNum,      GROUP_SET_CHZKZ,        0x0000, BOOL_R, "偷跳启动重合"},
 
     {SETTYPE_LABEL, SET_NULL,   0,      0,                  0,      0,          0,              GROUP_SET_CHZDZ,        0x0000, NULL_R, "自动重合闸定值"},
     {SETTYPE_F,     SET_S,      0.3,    900,                900,    0,          0,              GROUP_SET_CHZDZ,        0x0000, FLOAT_R, "重合闸开放时间"},
+#ifdef FUNC_CHZ_CHARGE_TIME
     {SETTYPE_F,     SET_S,      0,      199.0,              199.0,  0,          0,              GROUP_SET_CHZDZ,        0x0000, FLOAT_R, "重合闸充电时间"},
+#else
+    {SETTYPE_F,     SET_S,      0,      199.0,              199.0,  0,          0,              GROUP_SET_CHZDZ,        0x0000, FLOAT_R, "单次重合充电时间"},
+    {SETTYPE_F,     SET_S,      0,      199.0,              199.0,  0,          0,              GROUP_SET_CHZDZ,        0x0000, FLOAT_R, "多次重合充电时间"},
+#endif
     {SETTYPE_F,     SET_S,      0,      199.0,              199.0,  0,          0,              GROUP_SET_CHZDZ,        0x5020, FLOAT_R, "一次重合闸时间"},
     {SETTYPE_F,     SET_S,      0,      99.0,               99.0,   0,          0,              GROUP_SET_CHZDZ,        0x5021, FLOAT_R, "二次重合闸闭锁时间"},
     {SETTYPE_F,     SET_S,      0,      199.0,              199.0,  0,          0,              GROUP_SET_CHZDZ,        0x5022, FLOAT_R, "二次重合闸时间"},
 #ifdef DISP_SET_CH_T3
     {SETTYPE_F,     SET_S,      0,      199.0,              199.0,  0,          0,              GROUP_SET_CHZDZ,        0x0000, FLOAT_R, "三次重合闸时间"},
-#endif
-#ifdef DISP_CHZOKCHR_2_SW
-    {SETTYPE_F,     SET_S,      0,      199.0,              199.0,  0,          0,              GROUP_SET_CHZDZ,        0x0000, FLOAT_R, "tou多次重合充电时间"},
-    {SETTYPE_F,     SET_S,      0,      199.0,              199.0,  0,          0,              GROUP_SET_CHZDZ,        0x0000, FLOAT_R, "重合闸确认时间"},
 #endif
     {SETTYPE_F,     SET_A,      0,      100.0,              100.0,  0,          0,              GROUP_SET_CHZDZ,        0x501F, FLOAT_R, "大电流闭锁重合闸定值"},
 
@@ -1237,10 +1242,6 @@ const TSETTABLE tCstSetTable[] =
     {SETTYPE_F,     SET_S,      0.2,    60.0,               5.0,    0,          0,              GROUP_CSTSET_PROTECT,   0x0000, FLOAT_R, "整组复归时间"},
     {SETTYPE_F,     SET_S,      0.01,   10.0,               0.15,   0,          0,              GROUP_CSTSET_PROTECT,   0x0000, FLOAT_R, "跳闸失败时间"},
     {SETTYPE_F,     SET_S,      0.01,   10.0,               2.0,    0,          0,              GROUP_CSTSET_PROTECT,   0x0000, FLOAT_R, "合闸失败时间"},
-#ifndef DISP_CHZOKCHR_2_SW
-    {SETTYPE_F,     SET_S,      15.0,   300.0,              180.0,  0,          0,              GROUP_CSTSET_PROTECT,   0x0000, FLOAT_R, "二次重合充电时间"},
-    {SETTYPE_F,     SET_S,      0.3,    999.0,              180.0,  0,          0,              GROUP_CSTSET_PROTECT,   0x0000, FLOAT_R, "重合确认时间"},
-#endif
 
     {SETTYPE_LIST,  SET_NULL,   0,      TTListNum - 1,      0,      TTList,     TTListNum,      GROUP_CSTSET_PROTECT,   0x0000, BOOL_R, "零压闭锁零流"},
     {SETTYPE_LIST,  SET_NULL,   0,      TTListNum - 1,      0,      TTList,     TTListNum,      GROUP_CSTSET_PROTECT,   0x0000, BOOL_R, "低压闭锁过流"},
@@ -1883,6 +1884,7 @@ struct _list_item g_list_all[] =
     {WaveletTYPE, sizeof(WaveletTYPE) / sizeof(SET_LIST),},
     {START_List, sizeof(START_List) / sizeof(SET_LIST),},
     {BMLList, sizeof(BMLList) / sizeof(SET_LIST),},
+    {JWYList, sizeof(JWYList) / sizeof(SET_LIST),},
 };
 #define LIST_ALL_NUM (sizeof(g_list_all) / sizeof(struct _list_item))
 
@@ -2411,10 +2413,6 @@ bool MakeRunSet(bool bFirst)
         fKI0 = (float)(g_ui[ui_begin + SW_AC_I0].m2_factor_k) / 256.0;
         ptSet->dTBLValue[sw] = GetSetNormal(psetbuf[CSTSET_TBLQD].ff, fIn); // 突变量
         ptSet->dIWL_SQR[sw] = GetSetSQR(psetbuf[CSTSET_IWL].ff, fIn);
-
-#ifndef DISP_CHZOKCHR_2_SW
-        ptSet->tSwSet[sw].dT_chz_ok = GetSetTIME(psetbuf[CSTSET_CHZ_OK].ff); // GetSetTIME(180); //重合闸确认时间,默认180秒
-#endif
     }
 
     ptSet->dT_ZZFG = GetSetTIME(psetbuf[CSTSET_TZZ].ff);                   // 整组复归时间定值
@@ -2429,9 +2427,6 @@ bool MakeRunSet(bool bFirst)
 
     write_freq_tr((uint8_t *)&freq_tr);
 #endif
-#ifndef DISP_CHZOKCHR_2_SW
-    ptSet->dT_chzcd_2 = GetSetTIME(psetbuf[CSTSET_CHZCD_2].ff); // 二次充电时间
-#endif
 
     ptSet->bTT_U0BS = ((WORD)psetbuf[CSTSET_U0BS_TT].ff == 1) ? true : false;            // 零压闭锁零流
     ptSet->bTT_DDYBS = ((WORD)psetbuf[CSTSET_DDYBS_TT].ff == 1) ? true : false;          // 低压闭锁过流
@@ -3050,12 +3045,8 @@ bool MakeRunSet(bool bFirst)
 #endif
             ptSet->tSwSet[sw].bTT_CHZ = bch1 || bch2 || bch3;
             ptSet->tSwSet[sw].bTT_chz_tq = (((WORD)psetbuf[SET_CH_TQ + sw * SW_SET_NUMBER].ff == 1) ? true : false); // 重合检同期
-#ifdef CHZ_JWY_LM
-            ptSet->tSwSet[sw].bTT_chz_mwy = (((WORD)psetbuf[SET_CH_MWY + sw * SW_SET_NUMBER].ff == 1) ? true : false); // 检母线无压
-            ptSet->tSwSet[sw].bTT_chz_lwy = (((WORD)psetbuf[SET_CH_XWY + sw * SW_SET_NUMBER].ff == 1) ? true : false); // 检线路无压
-#else
-            ptSet->tSwSet[sw].bTT_chz_wy = (((WORD)psetbuf[SET_CH_WY + sw * SW_SET_NUMBER].ff == 1) ? true : false); // 无压重合闸
-#endif
+            ptSet->tSwSet[sw].bTT_chz_wy = (((WORD)psetbuf[SET_CH_WY + sw * SW_SET_NUMBER].ff == 1) ? true : false); // 重合检无压
+            ptSet->tSwSet[sw].bTT_chz_wy_type = (WORD)psetbuf[SET_CH_WY_TYPE + sw * SW_SET_NUMBER].ff; // 重合检无压方式 0母有线无 1母无线有 2两侧无压
 
             ptSet->tSwSet[sw].bTT_TTCH_TT = (((WORD)psetbuf[SET_TTCH_TT + sw * SW_SET_NUMBER].ff == 1) ? true : false); // 偷跳启动重合
             ptSet->tSwSet[sw].dT_chz[0] = GetSetTIME(psetbuf[SET_CH_T1 + sw * SW_SET_NUMBER].ff);
@@ -3067,19 +3058,18 @@ bool MakeRunSet(bool bFirst)
 #endif
             ptSet->tSwSet[sw].dT_ch_gl_tt = (((WORD)psetbuf[SET_CH_GL_TT + sw * SW_SET_NUMBER].ff == 1) ? true : false);
             ptSet->tSwSet[sw].dT_ch_jd_tt = (((WORD)psetbuf[SET_CH_JD_TT + sw * SW_SET_NUMBER].ff == 1) ? true : false);
-#ifdef DISP_CHZOKCHR_2_SW
-            ptSet->tSwSet[sw].dT_chz_cd = GetSetTIME(psetbuf[SET_CHZCD_2 + sw * SW_SET_NUMBER].ff);
-            ptSet->tSwSet[sw].dT_chz_ok = GetSetTIME(psetbuf[SET_CHZ_OK + sw * SW_SET_NUMBER].ff);
-#else /* DISP_CHZOKCHR_2_SW */
 #ifdef FUNC_CHZ_CHARGE_TIME
             ptSet->tSwSet[sw].dT_chz_cd = GetSetTIME(psetbuf[SET_CHZCD + sw * SW_SET_NUMBER].ff); // 重合闸充电时间
-#else /* FUNC_CHZ_CHARGE_TIME */
-            ptSet->tSwSet[sw].dT_chz_cd = (bch2 || bch3) ? ptSet->dT_chzcd_2 : T_1s * 15; // 投一次重合闸,充电时间15秒,投二次重合闸,充电180秒
-#endif /* FUNC_CHZ_CHARGE_TIME */
-#endif /* DISP_CHZOKCHR_2_SW */
+#else
+            ptSet->tSwSet[sw].dT_chz_cd = (bch2 || bch3) ? GetSetTIME(psetbuf[SET_CHZCD_1 + sw * SW_SET_NUMBER].ff) : GetSetTIME(psetbuf[SET_CHZCD_2 + sw * SW_SET_NUMBER].ff); // 投一次重合闸,充电时间15秒,投二次重合闸,充电180秒
+#endif
 
             ptSet->tSwSet[sw].dT_chz_bs = GetSetTIME(psetbuf[SET_CHBS_T + sw * SW_SET_NUMBER].ff);
+#if (0) /* 直接使用重合闸充电时间 */
             ptSet->tSwSet[sw].dT_chz_ok = (bch2 || bch3) ? ptSet->tSwSet[sw].dT_chz_ok : T_1s * 15; // 只投一次重合闸的时候,重合闸确认时间强制为15S 2020-7-25
+#else
+            ptSet->tSwSet[sw].dT_chz_ok = ptSet->tSwSet[sw].dT_chz_cd; // 直接使用重合闸充电时间
+#endif
             if (bch3)
                 ptSet->tSwSet[sw].d_chz_times = 3;
             else if (bch2)

+ 16 - 29
dtu/dtu_main_t536/app/set.h

@@ -400,30 +400,27 @@ enum
 #ifdef DISP_SET_CH_T3
     SET_CH3_TT, // 三次重合闸投入
 #endif
-    SET_CH_TQ, // 重合检同期
-#ifdef CHZ_JWY_LM
-    SET_CH_MWY, // 母线无压线路有压
-    SET_CH_XWY, // 线路无压母线有压
-#else
-    SET_CH_WY, // 重合检无压
-#endif
+    SET_CH_TQ,      // 重合检同期
+    SET_CH_WY,      // 重合检无压
+    SET_CH_WY_TYPE, // 重合检无压方式 0母有线无 1母无线有 2两侧无压
     SET_CH_DLBS_TT, // 大电流闭锁重合投入
     SET_TTCH_TT,    // 偷跳启动重合闸
 
     SET_LABLE_CHZ_DZ, // 列表名 自动重合闸定值
     SET_CHZ_OPEN,     // 重合闸开放时间
+#ifdef FUNC_CHZ_CHARGE_TIME
     SET_CHZCD,        // 重合闸充电时间
+#else
+    SET_CHZCD_1, // 单词重合充电时间
+    SET_CHZCD_2, // 多次重合充电时间
+#endif
     SET_CH_T1,        // 一次重合闸时间
     SET_CHBS_T,       // 二次重合闸闭锁时间
     SET_CH_T2,        // 二次重合闸时间
 #ifdef DISP_SET_CH_T3
     SET_CH_T3, // 三次重合闸时间
 #endif
-#ifdef DISP_CHZOKCHR_2_SW
-    SET_CHZCD_2, // 投多次重合充电时间
-    SET_CHZ_OK,  // 重合闸确认时间
-#endif
-    SET_CH_DLBS_I, // 大电流闭锁重合闸定值
+    SET_CH_DLBS_I,  // 大电流闭锁重合闸定值
 
     // 就地馈线自动化
     SET_LABLE_FARYB, // 列表名 就地馈线自动化软压板
@@ -987,10 +984,6 @@ enum
     CSTSET_TZZ,    // 整组复归时间
     CSTSET_TZSB,   // 跳闸失败时间
     CSTSET_HZSB,   // 合闸失败时间
-#ifndef DISP_CHZOKCHR_2_SW
-    CSTSET_CHZCD_2, // 二次充电时间
-    CSTSET_CHZ_OK,  // 重合闸确认时间
-#endif
     CSTSET_U0BS_TT,      // 零压闭锁零流
     CSTSET_DDYBS_TT,     // 低压闭锁过流
     CSTSET_U0BS_U,       // 零压闭锁零流定值
@@ -1207,8 +1200,8 @@ typedef struct TSETSW
     GOC_SET tGocSet;         // goose 过流
     DWORD dT_SpeedUp_Open; // 后加速开放时间
 
-    DWORD dT_ch_gl_tt; // 过流重合默认投入
-    DWORD dT_ch_jd_tt; // 接地重合默认投入
+    bool dT_ch_gl_tt; // 过流重合默认投入
+    bool dT_ch_jd_tt; // 接地重合默认投入
 
     DWORD dT_chz[MAX_AR_TIMES]; // 重合时间
     DWORD dT_chz_bs;            // 重合闸闭锁时间
@@ -1222,16 +1215,11 @@ typedef struct TSETSW
     DWORD dU_chz_yy;            // 重合无压判断 40%额定电压
     DWORD d_bh_xbcoe;           // 谐波系数
 
-#ifdef CHZ_JWY_LM
-    bool bTT_chz_mwy; // 重合检母线无压
-    bool bTT_chz_lwy; // 重合检线路无压
-#else
-    bool bTT_chz_wy; // 重合检无压
-#endif
-
-    bool bTT_chz_tq;  // 重合检同期
-    bool bTT_CHZ;     // 重合闸投退
-    bool bTT_TTCH_TT; // 偷跳启动重合
+    bool bTT_chz_wy;       // 重合检无压
+    DWORD bTT_chz_wy_type; // 重合检无压方式 0母有线无 1母无线有 2两侧无压
+    bool bTT_chz_tq;       // 重合检同期
+    bool bTT_CHZ;          // 重合闸投退
+    bool bTT_TTCH_TT;      // 偷跳启动重合
 
     bool bTT_3U0;       // 零序过电压投退
     bool bTT_3U0Tz;     // 零序过电压保护跳闸
@@ -1537,7 +1525,6 @@ typedef struct TSET
     DWORD dT_ZZFG;                   // 整组复归时间
     DWORD dT_TZSB;                   // 跳闸失败时间
     DWORD dT_HZSB;                   // 合闸失败时间
-    DWORD dT_chzcd_2;                // 投多次重合充电时间
     bool bTT_U0BS;                   // 零压闭锁零流
     bool bTT_DDYBS;                  // 低电压闭锁
     DWORD dU_U0BS;                   // 零压闭锁零流定值