|
@@ -0,0 +1,145 @@
|
|
|
+~={green}Замечания от заказчика=~
|
|
|
+
|
|
|
+1. В логе фигурируют аварии, которых не может быть. "Срабатывание EPO", "Ош. подкл. вх. напряжения" ~={yellow}Question.=~ Отключить функции.
|
|
|
+
|
|
|
+Событие "Срабатывание EPO" формируется в модуле ups_monitor.c В отдельной функции UPS_EPOMonitor. Нужно ли ее отключить?
|
|
|
+
|
|
|
+```c
|
|
|
+#define EPO_MONITOR
|
|
|
+```
|
|
|
+
|
|
|
+Событие "Ош подкл вх напр" формируется в модуле ups_monitor.c В отдельной функции UPS_PhaseFailMonitor. Нужно ли ее отключить?
|
|
|
+
|
|
|
+```c
|
|
|
+#define PHASE_FAIL_MONITOR
|
|
|
+```
|
|
|
+
|
|
|
+
|
|
|
+2. При запуске теста АКБ в логе информация о смене режима работы, но не о тесте. В syslog правильно. ~={yellow}Question.=~ В логе в событиях контроллера не отображается режим работы "тест АКБ" (Вход в тест, выход из теста.)
|
|
|
+
|
|
|
+3. В веб-интерфейсе отображается входная частота, в случае оффлайн ИБП особого смысла не имеет. Логичнее указывать только частоту выходного напряжения. ~={yellow}Question.=~
|
|
|
+
|
|
|
+Существует множество режимов работы контроллера ИБП.
|
|
|
+- Power on
|
|
|
+- Standby
|
|
|
+- Bypass
|
|
|
+- OnLine
|
|
|
+- Battery
|
|
|
+- Battery test
|
|
|
+- Fault
|
|
|
+- ECO
|
|
|
+- Converter
|
|
|
+- Shutdown
|
|
|
+
|
|
|
+Необходимо уточнить в каких режимах показывать входную частоту и какое значение выводить? Во всех режимах кроме Bypass выводить 0 в параметре "входная частота".
|
|
|
+
|
|
|
+4. Проблема IAP. ~={red}Open.=~
|
|
|
+
|
|
|
+5. Полная мощность ИБП 400, а не 500. ~={green}Fixed.=~
|
|
|
+
|
|
|
+```c
|
|
|
+RoTeK-swt-BT-BT-6721-signals-MIB::upsFullPower.0 = STRING: "400"
|
|
|
+
|
|
|
+// Этот параметр формируется в функции:
|
|
|
+
|
|
|
+/**
|
|
|
+ * @brief Полная мощность АКБ
|
|
|
+ */
|
|
|
+void GetUPSPowerStr(char *str, uint8_t *len)
|
|
|
+{
|
|
|
+ sprintf(str, "%d", (int32_t)sSettings.UPS_Setting.ups_power);
|
|
|
+ *len = strlen(str);
|
|
|
+}
|
|
|
+
|
|
|
+// Решение. Изменил значение параметра sSettings.UPS_Setting.ups_power в settings_api_bt6721.c
|
|
|
+
|
|
|
+/**
|
|
|
+ * @brief Настройки ИБП по умолчанию
|
|
|
+ */
|
|
|
+void SETTINGS_SetUPSSettingsDef(void)
|
|
|
+{
|
|
|
+ sSettings.UPS_Setting.Ucellmin = 1.89;
|
|
|
+ sSettings.UPS_Setting.Ucellmax = 2.36;
|
|
|
+ sSettings.UPS_Setting.Uakb = 12;
|
|
|
+ sSettings.UPS_Setting.common_capacity = 15;
|
|
|
+ sSettings.UPS_Setting.ups_power = 400;
|
|
|
+ sSettings.UPS_Setting.set_data = 0;
|
|
|
+ sSettings.UPS_Setting.life_time = 5;
|
|
|
+ sSettings.UPS_Setting.type_ups = ups_kestar;
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+6. Убрать отправку fault в конце разряда АКБ. ~={yellow}Question.=~
|
|
|
+Не понял. Отправку куда? Это трап.
|
|
|
+
|
|
|
+7. Сообщение в лог "авария входного напряжения 220В авария" при возобновлении питания. ~={red}Open.=~
|
|
|
+```c
|
|
|
+// Запись в журнал формируется в функции:
|
|
|
+
|
|
|
+/**
|
|
|
+ * @brief Мониторинг бита LainFail
|
|
|
+ */
|
|
|
+
|
|
|
+void UPS_LineFailMonitor(void)
|
|
|
+{
|
|
|
+#ifdef LINE_FAIL_MONITOR
|
|
|
+ static bool isValueRecv = false;
|
|
|
+ static uint8_t lineFailOldState = 0;
|
|
|
+ uint8_t lineFailCurrent;
|
|
|
+ char log_string[50];
|
|
|
+ uint8_t len;
|
|
|
+
|
|
|
+#if defined RELAY_AC_PRESENT
|
|
|
+ uint8_t i = 0;
|
|
|
+ static uint8_t OldROtype_Sourse[OUTPUTS_TOTAL_COUNT] = {0};
|
|
|
+ uint8_t CurrROtype_Sourse[OUTPUTS_TOTAL_COUNT] = {0};
|
|
|
+
|
|
|
+ for(i = 0; i < OUTPUTS_TOTAL_COUNT; i ++)
|
|
|
+ CurrROtype_Sourse[i] = sSettings.sRelays[i].ro_type_source;
|
|
|
+#endif
|
|
|
+
|
|
|
+#ifdef VAC_IN_MONITOR
|
|
|
+ lineFailCurrent = ((UPS.Status >> 7) & 0x01);
|
|
|
+ lineFailCurrent |= UPS_VACinputRangeAlarm();
|
|
|
+#else
|
|
|
+ lineFailCurrent = (UPS.Status >> 7) & 0x01;
|
|
|
+#endif
|
|
|
+
|
|
|
+ if (!isValueRecv) {
|
|
|
+ isValueRecv = true;
|
|
|
+ lineFailOldState = lineFailCurrent;
|
|
|
+
|
|
|
+ if (lineFailCurrent != 0){
|
|
|
+ memset(log_string, 0, sizeof(log_string));
|
|
|
+ strcat(log_string, "Авария");
|
|
|
+ len = strlen(log_string);
|
|
|
+ sprintf(&log_string[len], " (%0.1f В)", UPS.VAC_in);
|
|
|
+ log_event_data(LOG_ALARM_LINE, log_string);
|
|
|
+ SNMP_SendUserTrap(LINE_ALARM);
|
|
|
+ syslog(SYSLOG_ERROR, "Авария сети (%0.1f В)", UPS.VAC_in);
|
|
|
+ flUpdateLog = true;
|
|
|
+#if defined RELAY_AC_PRESENT
|
|
|
+ relay_setup_log(CurrROtype_Sourse, AC_PRESENT, 1);
|
|
|
+#endif
|
|
|
+ }
|
|
|
+ else{
|
|
|
+#if defined RELAY_AC_PRESENT
|
|
|
+ relay_setup_log(CurrROtype_Sourse, AC_PRESENT, 0);
|
|
|
+#endif
|
|
|
+ log_event_data(LOG_ALARM_LINE, "Норма");
|
|
|
+ SNMP_SendUserTrap(LINE_NORM);
|
|
|
+ syslog(SYSLOG_NOTICE, "Сеть в норме (%0.1f В)", UPS.VAC_in);
|
|
|
+ flUpdateLog = true;
|
|
|
+ }
|
|
|
+ return;
|
|
|
+ }
|
|
|
+```
|
|
|
+7. В syslog именует выходное напряжение входным. ~={green}Fixed.=~
|
|
|
+```c
|
|
|
+// ups_monitor.c
|
|
|
+// Поменял "входное" на "выходное"
|
|
|
+SNMP_SendUserTrap(VAC_HIGH_OUTPUT_ALARM);
|
|
|
+syslog(SYSLOG_ERROR, "Высокое выходное напряжение (%0.1f В)", VACoutputCurrent);
|
|
|
+```
|
|
|
+
|
|
|
+Для решения этой проблемы нужен ИБП и контроллер в режиме отладки.
|