Forráskód Böngészése

[BT-6711]add new alarms

balbekova 4 éve
szülő
commit
0fdcd2434c

+ 1 - 0
config/board_bt6703_rt.h

@@ -243,6 +243,7 @@ typedef enum {
 #define UPS_CONNECT_MONITOR
 #define DIN_MONITOR
 #define UPS_FAILED_MONITOR
+#define TEST_ALARM_AKB_MONITOR
 
 #define MONITOR_TABLE \
   XMONITOR(UPS_TestFinishMonitor,                 UPS.Present) \

+ 10 - 2
config/board_bt6711.h

@@ -114,13 +114,15 @@ XSETTING( uint8_t, sFlagNotification[ALL_TRAPS], SETTINGS_SetFlagNotificationDef
   XJSON_SETTINGS_TAG("lastsynctime",       GetSntpLastDataStr,                  SetEmptyFuncStr) \
   XJSON_SETTINGS_TAG("ups_cell_min",       GetUPSVoltCellMinStr,                SetUPSVoltCellMinStr) \
   XJSON_SETTINGS_TAG("ups_cell_max",       GetUPSVoltCellMaxStr,                SetUPSVoltCellMaxStr) \
-  XJSON_SETTINGS_TAG("bat_prod",           GetDataSetAKBStr,                    SetDataSetAKBStr) \
-  XJSON_SETTINGS_TAG("bat_exp",            GetLifeTimeAKBStr,                   SetLifeTimeAKBStr) \
   XJSON_SETTINGS_TAG("bat_cap",            GetCapacityNominalAKBStr,            SetCapacityNominalAKBStr) \
   XJSON_SETTINGS_TAG("ups_max_power",      GetUPSPowerStr,                      SetUPSPowerStr) \
+  XJSON_SETTINGS_TAG("bat_charge",         GetVoltageAKBNominalStr,             SetVoltageAKBNominalStr) \
   XJSON_SETTINGS_TAG("mainvolt_high",      GetVACAlarmHighRangeStr,             SetVACAlarmHighRangeStr) \
   XJSON_SETTINGS_TAG("mainvolt_low",       GetVACAlarmLowRangeStr,              SetVACAlarmLowRangeStr) \
   XJSON_SETTINGS_TAG("mainvolt_hist",      GetVACAlarmHisteStr,                 SetVACAlarmHisteStr) \
+  XJSON_SETTINGS_TAG("mainvolt_in_high",   GetVACInputAlarmHighRangeStr,        SetVACInputAlarmHighRangeStr) \
+  XJSON_SETTINGS_TAG("mainvolt_in_low",    GetVACInputAlarmLowRangeStr,         SetVACInputAlarmLowRangeStr) \
+  XJSON_SETTINGS_TAG("mainvolt_in_hist",   GetVACinputAlarmHisteStr,            SetVACinputAlarmHisteStr) \
   XJSON_SETTINGS_TAG("temp_high",          GetTemperatureAlarmHighRangeStr,     SetTemperatureAlarmHighRangeStr) \
   XJSON_SETTINGS_TAG("temp_low",           GetTemperatureAlarmLowRangeStr,      SetTemperatureAlarmLowRangeStr) \
   XJSON_SETTINGS_TAG("temp_hist",          GetTemperatureAlarmHisteStr,         SetTemperatureAlarmHisteStr) \
@@ -141,6 +143,7 @@ XSETTING( uint8_t, sFlagNotification[ALL_TRAPS], SETTINGS_SetFlagNotificationDef
   XJSON_PARAMS_TAG("out_cur",            GetOutputCurrentStr) \
   XJSON_PARAMS_TAG("bat_volt",           GetVoltageAKBtStr) \
   XJSON_PARAMS_TAG("bat_cap",            GetCapacityNominalAKBStr) \
+  XJSON_PARAMS_TAG("pmode",              GetModeStr) \
   XJSON_PARAMS_TAG("m_alarm",            GetAlarmMonitorStr) \
   XJSON_PARAMS_TAG("u_alarm",            GetAlarmStr) \
   XJSON_PARAMS_TAG("netsettings_changed",GetWebReinitFlag) \
@@ -209,6 +212,7 @@ typedef enum {
 	LOG_SETTING_SAVE,		//
 	LOG_LOGIN_TELNET,		//
 	LOG_LOGIN,		//
+  LOG_UPS_MODE,
 	LOG_TEST_UPS,		//
 	LOG_SHUTDOWN_UPS,
 	LOG_ALARM_VAC_LOW_OUTPUT,
@@ -220,11 +224,14 @@ typedef enum {
 	LOG_ALARM_POWER,
 	LOG_ALARM_UPS,
 	LOG_ALARM_AKB,
+  LOG_TEST_ALARM_AKB,
 	LOG_VALUE,
 	LOG_NONE,
 } log_type_t;
 
+#define UPS_MODE_MONITOR
 #define TEST_AKB_FINISH_MONITOR
+#define VAC_IN_MONITOR
 #define LINE_FAIL_MONITOR
 #define VAC_OUT_MONITOR
 #define LOW_BAT_MONITOR
@@ -232,6 +239,7 @@ typedef enum {
 #define TEMP_AKB_MONITOR
 #define BAT_CONNECT_MONITOR
 #define UPS_CONNECT_MONITOR
+#define TEST_ALARM_AKB_MONITOR
 
 #define MONITOR_TABLE \
   XMONITOR(UPS_TestFinishMonitor,               UPS.Present) \

+ 24 - 14
modules/MegaTec/megatec.c

@@ -13,6 +13,7 @@
 #include "log.h"
 #include "snmp_api.h"
 #include "settings_api.h"
+#include "parameters.h"
 #ifdef PRINTF_STDLIB
 #include <stdio.h>
 #endif
@@ -542,7 +543,7 @@ void ups_akb_info_response(char *data)
     if(len > 0) {
         UPS.Vakb_curr = atof(value);
     }
-#ifdef HARDWARE_BT6703_RT
+#ifdef TEST_ALARM_AKB_MONITOR
     if((UPS.Status >> 2) & 0x01) {
         Ubat_sum +=  UPS.Vakb_curr;
         Pload_sum += UPS.Load;
@@ -772,6 +773,13 @@ void ups_mode_response(char *data)
     data++;
 
     DBG printf("UPS ups_mode_parser_start: %s\r\n", data);
+#ifdef UPS_MODE_MONITOR
+    if (UPS.Mode != data[0]) {
+        memset(value, 0, sizeof(value));
+        GetModeStr(value, &len);
+        log_event_data(LOG_UPS_MODE, value);
+    }
+#endif
     UPS.Mode = data[0]; 
 }
 
@@ -903,26 +911,28 @@ int ups_metac_service_pdu(cmdMegaTecEnums_t command)
 
 void kstar_mode(void)
 {
+    uint8_t mode = UPS.Mode;
     if((UPS.Status >> 4) & 0x01) {
         UPS.Mode = 'F';
-        return;
-    } 
-    if(!((UPS.Status >> 4) & 0x01) && UPS.VAC_out == 0) {
+    } else if(!((UPS.Status >> 4) & 0x01) && UPS.VAC_out == 0) {
         UPS.Mode = 'D';
-        return;
-    }
-    if(((UPS.Status >> 5) & 0x01) && UPS.VAC_out > 120 && UPS.VAC_in != 0) {
+    } else if(((UPS.Status >> 5) & 0x01) && UPS.VAC_out > 120 && UPS.VAC_in != 0) {
         UPS.Mode = 'Y';
-        return;
-    }
-    if(((UPS.Status >> 7) & 0x01) && UPS.VAC_out > 190) {
+    } else if(((UPS.Status >> 7) & 0x01) && UPS.VAC_out > 190) {
         UPS.Mode = 'B';
-        return;
-    }
-     if(!((UPS.Status >> 7) & 0x01) && UPS.VAC_out > 190) {
+    } else if(!((UPS.Status >> 7) & 0x01) && UPS.VAC_out > 190) {
         UPS.Mode = 'L';
-        return;
     }
+
+#ifdef UPS_MODE_MONITOR
+    if (UPS.Mode != mode) {
+        char value[20];
+        uint8_t len = 0;
+        memset(value, 0, sizeof(value));
+        GetModeStr(value, &len);
+        log_event_data(LOG_UPS_MODE, value);
+    }
+#endif
 }
 
 // TODO ����������� ���������

+ 12 - 6
modules/monitor/ups_monitor.c

@@ -338,10 +338,11 @@ void UPS_TestFinishMonitor(void)
   {
     if (!TestFinishStateCurrent){
       printf("Test finish\r\n");
-#ifdef HARDWARE_BT6703_RT
+#ifdef TEST_ALARM_AKB_MONITOR
       float time_test_actual = ((float)(xTaskGetTickCount() - start_time_test)) / (1000*60);
       UPSReadTestStatus();
 
+#ifdef RELAY_ALARM_AKB
       static uint8_t AKBAlarmState = 0;
       uint8_t i = 0;
       static uint8_t OldROtype_Sourse[OUTPUTS_TOTAL_COUNT] = {0};
@@ -349,7 +350,7 @@ void UPS_TestFinishMonitor(void)
 
       for(i = 0; i < OUTPUTS_TOTAL_COUNT; i ++)
 	        CurrROtype_Sourse[i] = sSettings.sRelays[i].ro_type_source;
-
+#endif
       float Uakb_av = voltage_bat_average();
       float Pload_av = power_load_average();
       float k_eff;
@@ -361,23 +362,28 @@ void UPS_TestFinishMonitor(void)
         printf("Ccalc: %0.2f", Ccalc);
         float Ccalc_percent = (100*Ccalc)/sSettings.UPS_Setting.common_capacity;
         if (Ccalc_percent >= 80) {
-          relay_setup_log(CurrROtype_Sourse, ALARM_AKB, 1);
           sprintf(log_string, "Авария(%0.2f Ач)", Ccalc);
           log_event_data(LOG_TEST_ALARM_AKB, log_string);
+#ifdef RELAY_ALARM_AKB
+          relay_setup_log(CurrROtype_Sourse, ALARM_AKB, 1);
           AKBAlarmState = 1;
+#endif
         } else {
-          relay_setup_log(CurrROtype_Sourse, ALARM_AKB, 0);
           sprintf(log_string, "Норма(%0.2f Ач)", Ccalc);
           log_event_data(LOG_TEST_ALARM_AKB, log_string);
+#ifdef RELAY_ALARM_AKB
+          relay_setup_log(CurrROtype_Sourse, ALARM_AKB, 0);
           AKBAlarmState = 0;
+#endif
         }
       }
+#ifdef RELAY_ALARM_AKB
       if (AKBAlarmState)
           relay_setup_log_change(CurrROtype_Sourse, OldROtype_Sourse, ALARM_AKB);
 
       for(i = 0; i < OUTPUTS_TOTAL_COUNT; i ++)
           OldROtype_Sourse[i] = CurrROtype_Sourse[i];
-      
+#endif
       memset(log_string, 0, sizeof(log_string));
       if(UPS.Test_Status == 2 ||( (time_test_actual <= 0.9*test_time || time_test_actual >= 1.1*test_time) && (test_time != 0 && test_time != 100))){// 
         strcpy(log_string, "Ошибка");
@@ -410,7 +416,7 @@ void UPS_TestFinishMonitor(void)
         default:
             break;
       }
-#ifdef HARDWARE_BT6703_RT
+#ifdef TEST_ALARM_AKB_MONITOR
       start_time_test = xTaskGetTickCount();
      if (test_time == 0) {
        strcat(log_string, " (авто)");

+ 2 - 2
modules/parameters.c

@@ -1857,7 +1857,7 @@ void GetVACAlarmHisteInt(float *value)
 {
     *value = sSettings.sAlarmManager.ac_output_range.hyst;
 }
-#ifdef HARDWARE_BT6703_RT
+#ifdef VAC_IN_MONITOR
 /**
   * @brief Верхняя граница входящего напряжения
   */
@@ -2995,7 +2995,7 @@ void SetVACAlarmHisteInt(float value)
     sSettings.sAlarmManager.ac_output_range.hyst = value;
 }
 
-#ifdef HARDWARE_BT6703_RT
+#ifdef VAC_IN_MONITOR
 /**
   * @brief Верхняя граница входящего напряжения
   */

+ 2 - 2
modules/parameters.h

@@ -719,7 +719,7 @@ void GetVACAlarmHisteStr(char *str, uint8_t *len);
   * @brief Гистерезис (VAC)
   */
 void GetVACAlarmHisteInt(float *value);
-#ifdef HARDWARE_BT6703_RT
+#ifdef VAC_IN_MONITOR
 /**
   * @brief Верхняя граница входящего напряжения
   */
@@ -1283,7 +1283,7 @@ void SetVACAlarmHisteStr(char *str);
   */
 void SetVACAlarmHisteInt(float value);
 
-#ifdef HARDWARE_BT6703_RT
+#ifdef VAC_IN_MONITOR
 /**
   * @brief Верхняя граница входящего напряжения
   */

+ 1 - 1
modules/settings_api.h

@@ -276,7 +276,7 @@ typedef struct
 typedef struct
 {
     ALARM_LEVEL_RANGE_t load_range;
-#ifdef HARDWARE_BT6703_RT
+#ifdef VAC_IN_MONITOR
     ALARM_LEVEL_RANGE_t ac_input_range;
 #endif
     ALARM_LEVEL_RANGE_t ac_output_range;

+ 6 - 0
modules/settings_api_bt6711.c

@@ -44,6 +44,7 @@ const char* logsStrShortRu[] =
     "Сохранение настроек",
     "Авторизация (Telnet)",
     "Авторизация",
+    "Режим работы ИБП",
     "Тест ИБП",
     "Откл. нагрузки ИБП",
     "Низкое вых. напряжение",
@@ -55,6 +56,7 @@ const char* logsStrShortRu[] =
     "Авария нагрузки",
     "Авария связи с ИБП",
     "Авария отключения АКБ",
+    "Ёмкость АКБ",
 };
 
 const char* name_traps[] =
@@ -134,6 +136,10 @@ void SETTINGS_SetAlarmManagerDef(void)
 	sSettings.sAlarmManager.load_range.low = 0;
 	sSettings.sAlarmManager.load_range.hyst = 1;
 
+  sSettings.sAlarmManager.ac_input_range.high = 250.0;
+	sSettings.sAlarmManager.ac_input_range.low = 150.0;
+	sSettings.sAlarmManager.ac_input_range.hyst = 20.0;
+
 	sSettings.sAlarmManager.ac_output_range.high = 250.0;
 	sSettings.sAlarmManager.ac_output_range.low = 150.0;
 	sSettings.sAlarmManager.ac_output_range.hyst = 20.0;