|
@@ -49,56 +49,38 @@ void UPS_Monitor(void *params)
|
|
{
|
|
{
|
|
flCriticalAlarm = false;
|
|
flCriticalAlarm = false;
|
|
flNonCriticalAlarm = false;
|
|
flNonCriticalAlarm = false;
|
|
- // Проверяем флаг подключения UPS
|
|
|
|
- if (UPS.Present)
|
|
|
|
- {
|
|
|
|
- UPS_TestFinishMonitor();
|
|
|
|
- UPS_LineFailMonitor();
|
|
|
|
-#if defined HARDWARE_BT6707 || HARDWARE_BT6709
|
|
|
|
- UPS_VACoutputLowRangeMonitor();
|
|
|
|
- UPS_VACoutputHighRangeMonitor();
|
|
|
|
-#endif
|
|
|
|
- UPS_LowBatMonitor();
|
|
|
|
- UPS_PowerMonitor();
|
|
|
|
- UPS_TemperatureHighRangeMonitor();
|
|
|
|
- UPS_TemperatureLowRangeMonitor();
|
|
|
|
- UPS_BatteryConnectMonitor();
|
|
|
|
- }
|
|
|
|
- UPS_ConnectMonitor();
|
|
|
|
-#ifdef INOUTS_ENABLE
|
|
|
|
- UPS_DI0Monitor();
|
|
|
|
-#endif
|
|
|
|
-#ifdef HARDWARE_BT6709
|
|
|
|
- AKB_Change_Monitor();
|
|
|
|
-#endif
|
|
|
|
-#ifdef HARDWARE_BT6703
|
|
|
|
- UPS_CriticalAlarmMonitor();
|
|
|
|
- UPS_NonCriticalAlarmMonitor();
|
|
|
|
-#endif
|
|
|
|
|
|
+
|
|
|
|
+#define XMONITOR(monitor_func, present) if (present) { monitor_func(); }
|
|
|
|
+ MONITOR_TABLE
|
|
|
|
+#undef XMONITOR
|
|
|
|
+
|
|
|
|
+#ifdef LED_ALARM
|
|
if(flCriticalAlarm){
|
|
if(flCriticalAlarm){
|
|
if (UPS.Present)
|
|
if (UPS.Present)
|
|
- LED_On(LED_MAJOR_R);
|
|
|
|
|
|
+ LED_On(LED_ALARM);
|
|
else
|
|
else
|
|
- LED_Toggle(LED_MAJOR_R);
|
|
|
|
|
|
+ LED_Toggle(LED_ALARM);
|
|
}
|
|
}
|
|
else{
|
|
else{
|
|
- LED_Off(LED_MAJOR_R);
|
|
|
|
|
|
+ LED_Off(LED_ALARM);
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+#endif
|
|
vTaskDelay(1000);
|
|
vTaskDelay(1000);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-#ifdef INOUTS_ENABLE
|
|
|
|
|
|
+
|
|
|
|
+#ifdef DINS_ENABLE
|
|
/**
|
|
/**
|
|
* @brief Мониторинг бита DI0 state
|
|
* @brief Мониторинг бита DI0 state
|
|
*/
|
|
*/
|
|
void UPS_DI0Monitor(void)
|
|
void UPS_DI0Monitor(void)
|
|
{
|
|
{
|
|
|
|
+#ifdef DIN_MONITOR
|
|
static bool isValueRecv = false;
|
|
static bool isValueRecv = false;
|
|
static uint8_t DI0OldState = 0;
|
|
static uint8_t DI0OldState = 0;
|
|
uint8_t DI0StateCurrent;
|
|
uint8_t DI0StateCurrent;
|
|
|
|
|
|
- DI0StateCurrent = get_state_din_outs(DIN1) ^ sSettings.sInOuts.din_type_act[0];
|
|
|
|
|
|
+ DI0StateCurrent = get_state_din_outs(DIN1) ^ sSettings.sDINs[0].din_type_act;
|
|
|
|
|
|
UPS.Alarm = (UPS.Alarm & 0xef) | (DI0StateCurrent << 4);
|
|
UPS.Alarm = (UPS.Alarm & 0xef) | (DI0StateCurrent << 4);
|
|
|
|
|
|
@@ -139,8 +121,11 @@ void UPS_DI0Monitor(void)
|
|
}
|
|
}
|
|
|
|
|
|
DI0OldState = DI0StateCurrent;
|
|
DI0OldState = DI0StateCurrent;
|
|
|
|
+#endif
|
|
}
|
|
}
|
|
|
|
+#endif
|
|
|
|
|
|
|
|
+#ifdef DOUTS_ENABLE
|
|
void relay_setup_log(uint8_t *curr_source, ro_type_source_t src_act_ro, uint8_t state_relay)
|
|
void relay_setup_log(uint8_t *curr_source, ro_type_source_t src_act_ro, uint8_t state_relay)
|
|
{
|
|
{
|
|
uint8_t i = 0;
|
|
uint8_t i = 0;
|
|
@@ -211,7 +196,7 @@ void relay_setup_log_change(uint8_t *curr_source, uint8_t *prev_source, ro_type_
|
|
#endif
|
|
#endif
|
|
|
|
|
|
|
|
|
|
-#ifdef HARDWARE_BT6703
|
|
|
|
|
|
+#ifdef TYPE_CRITICAL_ALARM_MONITOR
|
|
/**
|
|
/**
|
|
* @brief Мониторинг бита CriticalAlarm
|
|
* @brief Мониторинг бита CriticalAlarm
|
|
*/
|
|
*/
|
|
@@ -225,7 +210,7 @@ void UPS_CriticalAlarmMonitor(void)
|
|
uint8_t CurrROtype_Sourse[OUTPUTS_TOTAL_COUNT] = {0};
|
|
uint8_t CurrROtype_Sourse[OUTPUTS_TOTAL_COUNT] = {0};
|
|
|
|
|
|
for(i = 0; i < OUTPUTS_TOTAL_COUNT; i ++)
|
|
for(i = 0; i < OUTPUTS_TOTAL_COUNT; i ++)
|
|
- CurrROtype_Sourse[i] = sSettings.sInOuts.ro_type_source[i];
|
|
|
|
|
|
+ CurrROtype_Sourse[i] = sSettings.sRelays[i].ro_type_source;
|
|
|
|
|
|
CriticalAlarmCurrent = flCriticalAlarm;
|
|
CriticalAlarmCurrent = flCriticalAlarm;
|
|
|
|
|
|
@@ -279,7 +264,7 @@ void UPS_NonCriticalAlarmMonitor(void)
|
|
uint8_t CurrROtype_Sourse[OUTPUTS_TOTAL_COUNT] = {0};
|
|
uint8_t CurrROtype_Sourse[OUTPUTS_TOTAL_COUNT] = {0};
|
|
|
|
|
|
for(i = 0; i < OUTPUTS_TOTAL_COUNT; i ++)
|
|
for(i = 0; i < OUTPUTS_TOTAL_COUNT; i ++)
|
|
- CurrROtype_Sourse[i] = sSettings.sInOuts.ro_type_source[i];
|
|
|
|
|
|
+ CurrROtype_Sourse[i] = sSettings.sRelays[i].ro_type_source;
|
|
|
|
|
|
NonCriticalAlarmCurrent = flNonCriticalAlarm;
|
|
NonCriticalAlarmCurrent = flNonCriticalAlarm;
|
|
|
|
|
|
@@ -324,6 +309,7 @@ void UPS_NonCriticalAlarmMonitor(void)
|
|
*/
|
|
*/
|
|
void UPS_TestFinishMonitor(void)
|
|
void UPS_TestFinishMonitor(void)
|
|
{
|
|
{
|
|
|
|
+#ifdef TEST_AKB_FINISH_MONITOR
|
|
static uint8_t TestFinishState = 0;
|
|
static uint8_t TestFinishState = 0;
|
|
uint8_t TestFinishStateCurrent;
|
|
uint8_t TestFinishStateCurrent;
|
|
char log_string[50];
|
|
char log_string[50];
|
|
@@ -361,13 +347,14 @@ void UPS_TestFinishMonitor(void)
|
|
}
|
|
}
|
|
|
|
|
|
TestFinishState = TestFinishStateCurrent;
|
|
TestFinishState = TestFinishStateCurrent;
|
|
|
|
+#endif
|
|
}
|
|
}
|
|
/**
|
|
/**
|
|
* @brief Мониторинг бита LainFail
|
|
* @brief Мониторинг бита LainFail
|
|
*/
|
|
*/
|
|
void UPS_LineFailMonitor(void)
|
|
void UPS_LineFailMonitor(void)
|
|
{
|
|
{
|
|
-
|
|
|
|
|
|
+#ifdef LINE_FAIL_MONITOR
|
|
static bool isValueRecv = false;
|
|
static bool isValueRecv = false;
|
|
static uint8_t lineFailOldState = 0;
|
|
static uint8_t lineFailOldState = 0;
|
|
uint8_t lineFailCurrent;
|
|
uint8_t lineFailCurrent;
|
|
@@ -378,7 +365,7 @@ void UPS_LineFailMonitor(void)
|
|
uint8_t CurrROtype_Sourse[OUTPUTS_TOTAL_COUNT] = {0};
|
|
uint8_t CurrROtype_Sourse[OUTPUTS_TOTAL_COUNT] = {0};
|
|
|
|
|
|
for(i = 0; i < OUTPUTS_TOTAL_COUNT; i ++)
|
|
for(i = 0; i < OUTPUTS_TOTAL_COUNT; i ++)
|
|
- CurrROtype_Sourse[i] = sSettings.sInOuts.ro_type_source[i];
|
|
|
|
|
|
+ CurrROtype_Sourse[i] = sSettings.sRelays[i].ro_type_source;
|
|
#endif
|
|
#endif
|
|
|
|
|
|
lineFailCurrent = (UPS.Status >> 7) & 0x01;
|
|
lineFailCurrent = (UPS.Status >> 7) & 0x01;
|
|
@@ -451,9 +438,10 @@ void UPS_LineFailMonitor(void)
|
|
#endif
|
|
#endif
|
|
|
|
|
|
lineFailOldState = lineFailCurrent;
|
|
lineFailOldState = lineFailCurrent;
|
|
|
|
+#endif
|
|
}
|
|
}
|
|
|
|
|
|
-#if defined HARDWARE_BT6707 || HARDWARE_BT6709
|
|
|
|
|
|
+#ifdef VAC_OUT_MONITOR
|
|
/**
|
|
/**
|
|
* @brief Мониторинг аварии выходного напряжения по нижней границе
|
|
* @brief Мониторинг аварии выходного напряжения по нижней границе
|
|
*/
|
|
*/
|
|
@@ -469,7 +457,7 @@ void UPS_VACoutputLowRangeMonitor(void)
|
|
uint8_t CurrROtype_Sourse[OUTPUTS_TOTAL_COUNT] = {0};
|
|
uint8_t CurrROtype_Sourse[OUTPUTS_TOTAL_COUNT] = {0};
|
|
|
|
|
|
for(i = 0; i < OUTPUTS_TOTAL_COUNT; i ++){
|
|
for(i = 0; i < OUTPUTS_TOTAL_COUNT; i ++){
|
|
- CurrROtype_Sourse[i] = sSettings.sInOuts.ro_type_source[i];
|
|
|
|
|
|
+ CurrROtype_Sourse[i] = sSettings.sRelays[i].ro_type_source;
|
|
if(!isValueRecv)
|
|
if(!isValueRecv)
|
|
OldROtype_Sourse[i] = CurrROtype_Sourse[i];
|
|
OldROtype_Sourse[i] = CurrROtype_Sourse[i];
|
|
}
|
|
}
|
|
@@ -536,7 +524,7 @@ void UPS_VACoutputHighRangeMonitor(void)
|
|
uint8_t CurrROtype_Sourse[OUTPUTS_TOTAL_COUNT] = {0};
|
|
uint8_t CurrROtype_Sourse[OUTPUTS_TOTAL_COUNT] = {0};
|
|
|
|
|
|
for(i = 0; i < OUTPUTS_TOTAL_COUNT; i ++){
|
|
for(i = 0; i < OUTPUTS_TOTAL_COUNT; i ++){
|
|
- CurrROtype_Sourse[i] = sSettings.sInOuts.ro_type_source[i];
|
|
|
|
|
|
+ CurrROtype_Sourse[i] = sSettings.sRelays[i].ro_type_source;
|
|
if(!isValueRecv)
|
|
if(!isValueRecv)
|
|
OldROtype_Sourse[i] = CurrROtype_Sourse[i];
|
|
OldROtype_Sourse[i] = CurrROtype_Sourse[i];
|
|
}
|
|
}
|
|
@@ -593,6 +581,7 @@ void UPS_VACoutputHighRangeMonitor(void)
|
|
*/
|
|
*/
|
|
void UPS_LowBatMonitor(void)
|
|
void UPS_LowBatMonitor(void)
|
|
{
|
|
{
|
|
|
|
+#ifdef LOW_BAT_MONITOR
|
|
static bool isValueRecv = false;
|
|
static bool isValueRecv = false;
|
|
static uint8_t lowBatOldState = 0;
|
|
static uint8_t lowBatOldState = 0;
|
|
static bool flag_alarm_time = false;
|
|
static bool flag_alarm_time = false;
|
|
@@ -604,7 +593,7 @@ void UPS_LowBatMonitor(void)
|
|
uint8_t CurrROtype_Sourse[OUTPUTS_TOTAL_COUNT] = {0};
|
|
uint8_t CurrROtype_Sourse[OUTPUTS_TOTAL_COUNT] = {0};
|
|
|
|
|
|
for(i = 0; i < OUTPUTS_TOTAL_COUNT; i ++)
|
|
for(i = 0; i < OUTPUTS_TOTAL_COUNT; i ++)
|
|
- CurrROtype_Sourse[i] = sSettings.sInOuts.ro_type_source[i];
|
|
|
|
|
|
+ CurrROtype_Sourse[i] = sSettings.sRelays[i].ro_type_source;
|
|
#endif
|
|
#endif
|
|
|
|
|
|
if((UPS.Status >> 7) & 0x01)
|
|
if((UPS.Status >> 7) & 0x01)
|
|
@@ -682,6 +671,7 @@ void UPS_LowBatMonitor(void)
|
|
flNonCriticalAlarm = true;
|
|
flNonCriticalAlarm = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+#endif
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -689,6 +679,7 @@ void UPS_LowBatMonitor(void)
|
|
*/
|
|
*/
|
|
void UPS_PowerMonitor(void)
|
|
void UPS_PowerMonitor(void)
|
|
{
|
|
{
|
|
|
|
+#ifdef LOAD_MONITOR
|
|
float load;
|
|
float load;
|
|
static uint8_t stateCurrent = HYST_IDLE;
|
|
static uint8_t stateCurrent = HYST_IDLE;
|
|
|
|
|
|
@@ -701,8 +692,12 @@ void UPS_PowerMonitor(void)
|
|
UPS.Alarm = (UPS.Alarm & 0xfe) | (1 << 0);
|
|
UPS.Alarm = (UPS.Alarm & 0xfe) | (1 << 0);
|
|
if (stateCurrent == HYST_IDLE)
|
|
if (stateCurrent == HYST_IDLE)
|
|
{
|
|
{
|
|
- LED_On(LED_MINOR_R);
|
|
|
|
- LED_On(LED_MINOR_G);
|
|
|
|
|
|
+#ifdef LED_RED_MINOR
|
|
|
|
+ LED_On(LED_RED_MINOR);
|
|
|
|
+#endif
|
|
|
|
+#ifdef LED_GREEN_MINOR
|
|
|
|
+ LED_On(LED_GREEN_MINOR);
|
|
|
|
+#endif
|
|
stateCurrent = HYST_UP;
|
|
stateCurrent = HYST_UP;
|
|
|
|
|
|
log_event_data(LOG_ALARM_POWER, "Авария");
|
|
log_event_data(LOG_ALARM_POWER, "Авария");
|
|
@@ -717,8 +712,12 @@ void UPS_PowerMonitor(void)
|
|
UPS.Alarm = (UPS.Alarm & 0xfe);
|
|
UPS.Alarm = (UPS.Alarm & 0xfe);
|
|
if (stateCurrent == HYST_UP)
|
|
if (stateCurrent == HYST_UP)
|
|
{
|
|
{
|
|
- LED_Off(LED_MINOR_R);
|
|
|
|
- LED_Off(LED_MINOR_G);
|
|
|
|
|
|
+#ifdef LED_RED_MINOR
|
|
|
|
+ LED_Off(LED_RED_MINOR);
|
|
|
|
+#endif
|
|
|
|
+#ifdef LED_GREEN_MINOR
|
|
|
|
+ LED_Off(LED_GREEN_MINOR);
|
|
|
|
+#endif
|
|
stateCurrent = HYST_IDLE;
|
|
stateCurrent = HYST_IDLE;
|
|
|
|
|
|
log_event_data(LOG_ALARM_POWER, "Норма");
|
|
log_event_data(LOG_ALARM_POWER, "Норма");
|
|
@@ -727,8 +726,10 @@ void UPS_PowerMonitor(void)
|
|
flUpdateLog = true;
|
|
flUpdateLog = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+#endif
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+#ifdef TEMP_AKB_MONITOR
|
|
/**
|
|
/**
|
|
* @brief Мониторинг температуры по верхней границе
|
|
* @brief Мониторинг температуры по верхней границе
|
|
*/
|
|
*/
|
|
@@ -812,12 +813,14 @@ void UPS_TemperatureLowRangeMonitor(void)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+#endif
|
|
|
|
|
|
/**
|
|
/**
|
|
* @brief Мониторинг параметра upsParams.connect
|
|
* @brief Мониторинг параметра upsParams.connect
|
|
*/
|
|
*/
|
|
void UPS_ConnectMonitor(void)
|
|
void UPS_ConnectMonitor(void)
|
|
{
|
|
{
|
|
|
|
+#ifdef UPS_CONNECT_MONITOR
|
|
static bool isValueRecv = false;
|
|
static bool isValueRecv = false;
|
|
static uint8_t connectOldState = 0;
|
|
static uint8_t connectOldState = 0;
|
|
uint8_t connectCurrent;
|
|
uint8_t connectCurrent;
|
|
@@ -859,6 +862,7 @@ void UPS_ConnectMonitor(void)
|
|
}
|
|
}
|
|
|
|
|
|
connectOldState = connectCurrent;
|
|
connectOldState = connectCurrent;
|
|
|
|
+#endif
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -866,6 +870,7 @@ void UPS_ConnectMonitor(void)
|
|
*/
|
|
*/
|
|
void UPS_BatteryConnectMonitor(void)
|
|
void UPS_BatteryConnectMonitor(void)
|
|
{
|
|
{
|
|
|
|
+#ifdef BAT_CONNECT_MONITOR
|
|
static bool isValueRecv = false;
|
|
static bool isValueRecv = false;
|
|
static bool flag_alarm_time = false;
|
|
static bool flag_alarm_time = false;
|
|
static uint8_t AKBconnectOldState = 0;
|
|
static uint8_t AKBconnectOldState = 0;
|
|
@@ -877,7 +882,7 @@ void UPS_BatteryConnectMonitor(void)
|
|
uint8_t CurrROtype_Sourse[OUTPUTS_TOTAL_COUNT] = {0};
|
|
uint8_t CurrROtype_Sourse[OUTPUTS_TOTAL_COUNT] = {0};
|
|
|
|
|
|
for(i = 0; i < OUTPUTS_TOTAL_COUNT; i ++)
|
|
for(i = 0; i < OUTPUTS_TOTAL_COUNT; i ++)
|
|
- CurrROtype_Sourse[i] = sSettings.sInOuts.ro_type_source[i];
|
|
|
|
|
|
+ CurrROtype_Sourse[i] = sSettings.sRelays[i].ro_type_source;
|
|
#endif
|
|
#endif
|
|
|
|
|
|
if(((UPS.Status >> 7) & 0x01) == 0)
|
|
if(((UPS.Status >> 7) & 0x01) == 0)
|
|
@@ -958,9 +963,10 @@ void UPS_BatteryConnectMonitor(void)
|
|
flCriticalAlarm = true;
|
|
flCriticalAlarm = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+#endif
|
|
}
|
|
}
|
|
|
|
|
|
-#ifdef HARDWARE_BT6709
|
|
|
|
|
|
+#ifdef AKB_CHANGE_MONITOR
|
|
/**
|
|
/**
|
|
* @brief Мониторинг параметра замены АКБ
|
|
* @brief Мониторинг параметра замены АКБ
|
|
*/
|
|
*/
|