Prechádzať zdrojové kódy

修改 : 一些默认点表的额定值为1,避免配置转发的时候导致极值文件因系数错误无法初始化;

lch 5 mesiacov pred
rodič
commit
260d45f17a

+ 2 - 1
README.md

@@ -87,4 +87,5 @@
 11. 修改 : 重合闸检无压逻辑;
 12. 修改 : TSETTABLE 结构,增加定值步长;
 13. 修改 : 遥测配置了故障电流之后一直突发的问题;
-14. 修改 : 自动复归复归遥测上送的故障电流;
+14. 修改 : 自动复归复归遥测上送的故障电流;
+15. 修改 : 一些默认点表的额定值为1,避免配置转发的时候导致极值文件因系数错误无法初始化;

+ 5 - 25
dtu/dtu_main_t536/app/defineSys.h

@@ -140,14 +140,11 @@
 #define IO_CHIP_CH423S                 // 扩展IO芯片
 #define DO_KOUT_CHECK_PRESET           // 开出反校 单预置
 #define YX_RESET_TIME                  // 遥信复归时间 注意!!!跟 SOE_RECORD_DELAY 不允许同时使用
+#define YC_QUANTITY			           // 每间隔遥参数量可通过内部定值设定
 
 //区分地区&客户个性化需求定义
 #if defined  GD_AREA_ECZD_2020    	//2020广东配网终端二次功能指导意见
-	#ifdef __IEC61850_GOOSE_FUNC__
-		#define VER_NUM 					29201			// 版本号29.201
-	#else
-		#define VER_NUM 				    29101			// 版本号29.101
-	#endif
+    #define VER_NUM 0x01111  // 应用版本号 每半个字代表1位 0x01111 01.111
     #define XDL_ZT            // 小电流接地
     #define RCD_STRAN_M       // 录波传输
     #define RCD_STRAN_S       // 录波传输
@@ -164,16 +161,16 @@
 
 #elif defined GD_AREA_ZHONGSHAN	//中山局要求
  	#ifdef __IEC61850_GOOSE_FUNC__
-		#define VER_NUM			 		3102          // 版本号3.102
+		#define VER_NUM 0x01000  // 应用版本号 每半个字代表1位 0x01111 01.111
 	#else
-		#define VER_NUM			 		4102          // 版本号4.102
+		#define VER_NUM 0x01000  // 应用版本号 每半个字代表1位 0x01111 01.111
 	#endif
 	#define GEN_QUEUE	
 	#define RCD_STRAN_M			// 录波传输
 	#define RCD_STRAN_S			// 录波传输
 
 #elif defined GD_AREA_ZHONGSHAN_2020	//中山局2020要求
-	#define VER_NUM 				    30103			// 版本号30.101->30.103
+	#define VER_NUM 0x01000  // 应用版本号 每半个字代表1位 0x01111 01.111
 	#define PUB_SET_SECTION // 定义之后公共定值在定值区概念里面管辖
     #define ADD_DEBUG_RECORD_FUN    //增加调试记录功能选项
     #define ADD_DEBUG_RECORD_AUTO_SHOW_FUN    //增加调试记录功能自动显示功能
@@ -184,23 +181,6 @@
 /*!!!!!注意!!!!!:往上↑↑↑↑↑↑↑↑地区版本定义VER_NUM不允许超32101/32201(goose)*/
 #else
     #error 未定义地区宏 export _AREA=-D******* 
-	#ifdef __IEC61850_GOOSE_FUNC__
-		#define VER_NUM			 		1101          	// 版本号01.101
-	#else
-		#define VER_NUM			 		2101          	// 版本号02.101
-	#endif
-#endif
-
-#ifdef __IEC61850_GOOSE_FUNC__
-	#if(((VER_NUM > 28209) && (VER_NUM <= 29201)) || (VER_NUM >= 31201))
-		#define YC_QUANTITY			//每间隔遥参数量可通过内部定值设定
-		#define FA_PL_PJ			//FA频率判据:频率在49~50.8Hz的频率才认为有效,可参与判得电
-	#endif
-#else
-	#if(((VER_NUM > 28109) && (VER_NUM <= 29101)) || (VER_NUM >= 31101))
-		#define YC_QUANTITY			//每间隔遥参数量可通过内部定值设定
-		#define FA_PL_PJ			//FA频率判据:频率在49~50.8Hz的频率才认为有效,可参与判得电
-	#endif
 #endif
 
 #ifdef FUN_JDXX						//小电流接地功能

+ 8 - 8
dtu/dtu_main_t536/app/history_rcd.c

@@ -360,7 +360,6 @@ int init_hs_file_exv(bool b_new)
         if ((ret = create_exv_rcd_file(&exv_file_info)) != 0)
         {
             return -2;
-            ;
         }
     }
 
@@ -3995,10 +3994,10 @@ int load_exv_file_rcd(u8 day)
 
     if (pRunSet->bTT_MsgFile)
     {
-        j = sprintf(p, "最大值:%04d,", g_table_head->ac_num);
+        j = sprintf(p, "最大值:%04d,", exv_rcd.max_num);
         p += j;
 
-        for (i = 0; i < g_table_head->ac_num; i++)
+        for (i = 0; i < exv_rcd.max_num; i++)
         {
             if (i >= EXV_NUM_MAX)
                 break;
@@ -4015,7 +4014,7 @@ int load_exv_file_rcd(u8 day)
                         exv_rcd.max_data[i].time_mark.ms % 1000);
             p += j;
 
-            if (i == g_table_head->ac_num - 1)
+            if (i == exv_rcd.max_num - 1)
             {
                 sprintf(p, "\r\n");
                 p += 2;
@@ -4027,9 +4026,9 @@ int load_exv_file_rcd(u8 day)
             }
         }
 
-        j = sprintf(p, "最小值:%04d,", g_table_head->ac_num);
+        j = sprintf(p, "最小值:%04d,", exv_rcd.min_num);
         p += j;
-        for (i = 0; i < g_table_head->ac_num; i++)
+        for (i = 0; i < exv_rcd.min_num; i++)
         {
             if (i >= EXV_NUM_MAX)
                 break;
@@ -4046,7 +4045,7 @@ int load_exv_file_rcd(u8 day)
                         exv_rcd.min_data[i].time_mark.ms % 1000);
             p += j;
 
-            if (i == g_table_head->ac_num - 1)
+            if (i == exv_rcd.min_num - 1)
             {
                 sprintf(p, "\r\n");
                 p += 2;
@@ -4062,7 +4061,7 @@ int load_exv_file_rcd(u8 day)
     }
     else
     {
-        for (i = 0; i < g_table_head->ac_num; i++)
+        for (i = 0; i < exv_rcd.ac_num; i++)
         {
             if (i >= EXV_NUM_MAX)
                 continue;
@@ -4698,6 +4697,7 @@ void get_exv_rcd_data(struct rtc_time_t time, bool day_change)
 
         if (i >= EXV_NUM_MAX)
             continue;
+
         exv_rcd.max_data[i].cp = g_ac_table[i].cp;
         exv_rcd.min_data[i].cp = g_ac_table[i].cp;
 

+ 2 - 2
dtu/dtu_main_t536/app/history_rcd.h

@@ -103,7 +103,7 @@ struct exv_rcd_data
     struct rtc_time_t time_mark; // Ęąąę
 };
 
-#define EXV_NUM_MAX UI_NUM + SW_AC_NUM_ALL * SWITCH_NUM_MAX
+#define EXV_NUM_MAX PUB_AC_NUM_ALL + SW_AC_NUM_ALL * SWITCH_NUM_MAX
 struct exv_rcd_t
 {
     struct rtc_time_t time_bk; // ÎÄźţČŐĆÚ
@@ -122,7 +122,7 @@ struct exv_rcd_t
     bool occur_flag;
 };
 
-#define FIXPT_RCD_NUM UI_NUM + SW_AC_NUM_ALL *SWITCH_NUM_MAX
+#define FIXPT_RCD_NUM PUB_AC_NUM_ALL + SW_AC_NUM_ALL *SWITCH_NUM_MAX
 struct fixpt_rcd_data
 {
     u16 cp;

+ 35 - 34
dtu/dtu_main_t536/app/switch.c

@@ -295,18 +295,18 @@ const struct mea_desc g_sw_ac_desc[SW_AC_NUM_ALL] =
 	{"CI_UNB",UNIT_Per,UNIT_NULL},
 	{"脉冲计数1",UNIT_GE,UNIT_NULL},
 	{"脉冲计数2",UNIT_GE,UNIT_NULL},
-	{"速断电流定值",UNIT_NULL,UNIT_NULL}, 
-	{"速断保护时间",UNIT_NULL,UNIT_NULL}, 
-	{"过流电流定值",UNIT_NULL,UNIT_NULL}, 
-	{"过流保护时间",UNIT_NULL,UNIT_NULL}, 
-	{"零序电流定值",UNIT_NULL,UNIT_NULL}, 
-	{"零序保护时间",UNIT_NULL,UNIT_NULL}, 
-	{"零序保护模式",UNIT_NULL,UNIT_NULL}, 
-	{"一次重合闸时间",UNIT_NULL,UNIT_NULL}, 
-	{"二次重合闸时间",UNIT_NULL,UNIT_NULL}, 
-	{"得电闭合时间",UNIT_NULL,UNIT_NULL}, 
-	{"无压分闸闭锁时间",UNIT_NULL,UNIT_NULL}, 
-	{"工作模式",UNIT_NULL,UNIT_NULL}, 	
+	{"速断电流定值",UNIT_COS,UNIT_NULL}, 
+	{"速断保护时间",UNIT_COS,UNIT_NULL}, 
+	{"过流电流定值",UNIT_COS,UNIT_NULL}, 
+	{"过流保护时间",UNIT_COS,UNIT_NULL}, 
+	{"零序电流定值",UNIT_COS,UNIT_NULL}, 
+	{"零序保护时间",UNIT_COS,UNIT_NULL}, 
+	{"零序保护模式",UNIT_COS,UNIT_NULL}, 
+	{"一次重合闸时间",UNIT_COS,UNIT_NULL}, 
+	{"二次重合闸时间",UNIT_COS,UNIT_NULL}, 
+	{"得电闭合时间",UNIT_COS,UNIT_NULL}, 
+	{"无压分闸闭锁时间",UNIT_COS,UNIT_NULL}, 
+	{"工作模式",UNIT_COS,UNIT_NULL}, 	
 
 #ifdef METERING_ENERGY
 	{"计量UAB",UNIT_V220,UNIT_NULL},	// yc 17
@@ -339,18 +339,18 @@ const struct mea_desc g_sw_ac_desc[SW_AC_NUM_ALL] =
 	{"计量C相功率因数",UNIT_COS,UNIT_NULL},
 	{"计量频率",UNIT_Hz,UNIT_NULL},
 #else
-	{"YC1",UNIT_NULL,UNIT_NULL},  // yc 17
-	{"YC2",UNIT_NULL,UNIT_NULL},
-	{"YC3",UNIT_NULL,UNIT_NULL},
-	{"YC4",UNIT_NULL,UNIT_NULL},
-	{"YC5",UNIT_NULL,UNIT_NULL},
-	{"YC6",UNIT_NULL,UNIT_NULL},
-	{"YC7",UNIT_NULL,UNIT_NULL},
-	{"YC8",UNIT_NULL,UNIT_NULL},
-	{"YC9",UNIT_NULL,UNIT_NULL},
-	{"YC10",UNIT_NULL,UNIT_NULL},
-	{"YC11",UNIT_NULL,UNIT_NULL},
-	{"YC12",UNIT_NULL,UNIT_NULL}, 
+	{"YC1",UNIT_COS,UNIT_NULL},  // yc 17
+	{"YC2",UNIT_COS,UNIT_NULL},
+	{"YC3",UNIT_COS,UNIT_NULL},
+	{"YC4",UNIT_COS,UNIT_NULL},
+	{"YC5",UNIT_COS,UNIT_NULL},
+	{"YC6",UNIT_COS,UNIT_NULL},
+	{"YC7",UNIT_COS,UNIT_NULL},
+	{"YC8",UNIT_COS,UNIT_NULL},
+	{"YC9",UNIT_COS,UNIT_NULL},
+	{"YC10",UNIT_COS,UNIT_NULL},
+	{"YC11",UNIT_COS,UNIT_NULL},
+	{"YC12",UNIT_COS,UNIT_NULL}, 
 #endif
 };
 
@@ -683,7 +683,7 @@ const struct mea_desc g_pub_ac_desc[PUB_AC_NUM_ALL] =
 #ifdef TMP_CHIP_AHT20
 	{"湿度",UNIT_HUMI,UNIT_NULL},
 #endif
-	{"Ver",UNIT_NULL,UNIT_NULL},
+	{"Ver",UNIT_COS,UNIT_NULL},
 #ifdef BATTERY_WITH_COMM
 	{"活化放电时长",UINT_Hour,UNIT_NULL},
 	{"当前放电时长",UINT_Hour,UNIT_NULL},
@@ -702,14 +702,14 @@ const struct mea_desc g_pub_ac_desc[PUB_AC_NUM_ALL] =
 	#endif
 	{"卫星个数",UNIT_GE,UNIT_NULL},
 #endif
-	{"YC1",UNIT_NULL,UNIT_NULL},
-	{"YC2",UNIT_NULL,UNIT_NULL},
-	{"YC3",UNIT_NULL,UNIT_NULL},
-	{"YC4",UNIT_NULL,UNIT_NULL},
-	{"YC5",UNIT_NULL,UNIT_NULL},
-	{"YC6",UNIT_NULL,UNIT_NULL},
-	{"YC7",UNIT_NULL,UNIT_NULL},
-	{"YC8",UNIT_NULL,UNIT_NULL},
+	{"YC1",UNIT_COS,UNIT_NULL},
+	{"YC2",UNIT_COS,UNIT_NULL},
+	{"YC3",UNIT_COS,UNIT_NULL},
+	{"YC4",UNIT_COS,UNIT_NULL},
+	{"YC5",UNIT_COS,UNIT_NULL},
+	{"YC6",UNIT_COS,UNIT_NULL},
+	{"YC7",UNIT_COS,UNIT_NULL},
+	{"YC8",UNIT_COS,UNIT_NULL},
 	{"A相故障电流",UNIT_A5,UNIT_ANG},
 	{"B相故障电流",UNIT_A5,UNIT_ANG},
 	{"C相故障电流",UNIT_A5,UNIT_ANG},
@@ -3765,7 +3765,8 @@ void _sw_cal_average(int cal_num)
     }
     // 版本号0x00010104
     {
-        g_sw_pub.ac_in[PUB_AC_IN_VER] = ((BYTE)((VER_NUM >> 0) & 0x0f) + ((BYTE)(VER_NUM >> 4) & 0x0f) * 10 + ((BYTE)(VER_NUM >> 8) & 0x0f) * 100 + ((BYTE)(VER_NUM >> 12) & 0x0f) * 1000 + ((BYTE)(VER_NUM >> 16) & 0x0f) * 10000) * Q16_BASE;
+        float f_version = ((BYTE)((VER_NUM >> 0) & 0x0f) + ((BYTE)(VER_NUM >> 4) & 0x0f) * 10 + ((BYTE)(VER_NUM >> 8) & 0x0f) * 100 + ((BYTE)(VER_NUM >> 12) & 0x0f) * 1000 + ((BYTE)(VER_NUM >> 16) & 0x0f) * 10000) * 0.001;
+        g_sw_pub.ac_in[PUB_AC_IN_VER] = (qs16)(f_version * Q16_BASE);
     }
 
 #if 0

+ 15 - 15
dtu/dtu_main_t536/app/switch.h

@@ -214,21 +214,21 @@ enum
     SW_AC_IN_COS,
     SW_AC_IN_BI_UNBALANCE, // 电流不平衡度
     SW_AC_IN_CI_UNBALANCE, // 电流不平衡度
-    SW_AC_IN_IMP1,
-    SW_AC_IN_IMP2,
-
-    SW_AC_IN_SET_BEGIN,
-    SW_AC_IN_SET2,
-    SW_AC_IN_SET3,
-    SW_AC_IN_SET4,
-    SW_AC_IN_SET5,
-    SW_AC_IN_SET6,
-    SW_AC_IN_SET7,
-    SW_AC_IN_SET8,
-    SW_AC_IN_SET9,
-    SW_AC_IN_SET10,
-    SW_AC_IN_SET11,
-    SW_AC_IN_SET_END,
+    SW_AC_IN_IMP1,         // 脉冲计数1
+    SW_AC_IN_IMP2,         // 脉冲计数2
+
+    SW_AC_IN_SET_BEGIN,    // 速断电流定值
+    SW_AC_IN_SET2,         // 速断保护时间
+    SW_AC_IN_SET3,         // 过流电流定值
+    SW_AC_IN_SET4,         // 过流保护时间
+    SW_AC_IN_SET5,         // 零序电流定值
+    SW_AC_IN_SET6,         // 零序保护时间
+    SW_AC_IN_SET7,         // 零序保护模式
+    SW_AC_IN_SET8,         // 一次重合闸时间
+    SW_AC_IN_SET9,         // 二次重合闸时间
+    SW_AC_IN_SET10,        // 得电闭合时间
+    SW_AC_IN_SET11,        // 无压分闸闭锁时间
+    SW_AC_IN_SET_END,      // 工作模式
 
 #ifdef METERING_ENERGY
     SW_AC_IN_XS_UAB,

+ 2 - 1
dtu/dtu_main_t536/main_mod.c

@@ -505,7 +505,8 @@ int main(void)
 
     rt_printf("\r\n");
     dp_info_nt("%s %s", __DATE__, __TIME__);
-    dp_info_nt("版本信息: SV%02d.%03d %s", (VER_NUM >> 16) & 0XFF, VER_NUM & 0XFFF, DEVICE_VERSION_INFORMATION);
+    float f_version = ((BYTE)((VER_NUM >> 0) & 0x0f) + ((BYTE)(VER_NUM >> 4) & 0x0f) * 10 + ((BYTE)(VER_NUM >> 8) & 0x0f) * 100 + ((BYTE)(VER_NUM >> 12) & 0x0f) * 1000 + ((BYTE)(VER_NUM >> 16) & 0x0f) * 10000) * 0.001;
+    dp_info_nt("版本信息: SV%06.03f %s", f_version, DEVICE_VERSION_INFORMATION);
 
     // if(mod_init() < 0)    //jack.liu 20200904 认证信息先不使用
     //	return -1;