Browse Source

[BT-6703-RT][ups_monitor]add UPS_Failed alarm monitor

balbekova 4 years ago
parent
commit
ad0d605520

+ 7 - 0
config/board_bt6703_rt.h

@@ -174,6 +174,8 @@ XSETTING( char, our_srv_crt[1705], SETTINGS_SetSSLcrtDef, PART_DEFAULT_1 ) \
   XTRAP(BATTERY_CONNECT_NORM,              15,     true,      GetBatCapacityStr) \
   XTRAP(BATTERY_CONNECT_NORM,              15,     true,      GetBatCapacityStr) \
   XTRAP(BATTERY_LOW_TEMPERATURE_NORM,      10,     true,      GetInternalTempStr) \
   XTRAP(BATTERY_LOW_TEMPERATURE_NORM,      10,     true,      GetInternalTempStr) \
   XTRAP(BATTERY_LOW_TEMPERATURE_ALARM,     10,     true,      GetInternalTempStr) \
   XTRAP(BATTERY_LOW_TEMPERATURE_ALARM,     10,     true,      GetInternalTempStr) \
+  XTRAP(UPS_ALARM,                         13,     true,      GetOutputVoltageStr) \
+  XTRAP(UPS_NORM,                          13,     true,      GetOutputVoltageStr) \
 
 
 typedef enum
 typedef enum
 {
 {
@@ -199,6 +201,8 @@ typedef enum
   BATTERY_CONNECT_NORM,
   BATTERY_CONNECT_NORM,
   BATTERY_LOW_TEMPERATURE_NORM,
   BATTERY_LOW_TEMPERATURE_NORM,
   BATTERY_LOW_TEMPERATURE_ALARM,
   BATTERY_LOW_TEMPERATURE_ALARM,
+  UPS_ALARM,
+  UPS_NORM,
   ALL_TRAPS
   ALL_TRAPS
 } TRAP_LIST_t;
 } TRAP_LIST_t;
 
 
@@ -223,6 +227,7 @@ typedef enum {
 	LOG_ALARM_UPS,
 	LOG_ALARM_UPS,
 	LOG_ALARM_AKB,
 	LOG_ALARM_AKB,
   LOG_TEST_ALARM_AKB,
   LOG_TEST_ALARM_AKB,
+  LOG_ALARM_UPS_FAILED,
 	LOG_VALUE,
 	LOG_VALUE,
 	LOG_NONE,
 	LOG_NONE,
 } log_type_t;
 } log_type_t;
@@ -235,6 +240,7 @@ typedef enum {
 #define BAT_CONNECT_MONITOR
 #define BAT_CONNECT_MONITOR
 #define UPS_CONNECT_MONITOR
 #define UPS_CONNECT_MONITOR
 #define DIN_MONITOR
 #define DIN_MONITOR
+#define UPS_FAILED_MONITOR
 
 
 #define MONITOR_TABLE \
 #define MONITOR_TABLE \
   XMONITOR(UPS_TestFinishMonitor,                 UPS.Present) \
   XMONITOR(UPS_TestFinishMonitor,                 UPS.Present) \
@@ -246,6 +252,7 @@ typedef enum {
   XMONITOR(UPS_BatteryConnectMonitor,             UPS.Present) \
   XMONITOR(UPS_BatteryConnectMonitor,             UPS.Present) \
   XMONITOR(UPS_ConnectMonitor,                    1) \
   XMONITOR(UPS_ConnectMonitor,                    1) \
   XMONITOR(UPS_DI0Monitor,                        1) \
   XMONITOR(UPS_DI0Monitor,                        1) \
+  XMONITOR(UPS_Failed_Monitor,                    UPS.Present) \
 
 
 #define RELAY_AC_PRESENT
 #define RELAY_AC_PRESENT
 #define RELAY_ALARM_AKB
 #define RELAY_ALARM_AKB

+ 326 - 0
docs/bt6703_rt/BT6703.MIB

@@ -0,0 +1,326 @@
+RoTeK-swt-BT-BT-6703-signals-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+	enterprises, NOTIFICATION-TYPE
+		FROM SNMPV2-SMI;
+
+    rotek           OBJECT IDENTIFIER ::= { enterprises 41752 }
+    swt             OBJECT IDENTIFIER ::= { rotek 911 }
+    BT-6703         OBJECT IDENTIFIER ::= { swt 6}
+    signals         OBJECT IDENTIFIER ::= { BT-6703 1 }
+    traps           OBJECT IDENTIFIER ::= { BT-6703 2 }
+
+	
+    fwVersion OBJECT-TYPE
+    SYNTAX  OCTET STRING
+    MAX-ACCESS  read-only
+    STATUS  current
+    DESCRIPTION
+    "FWVersion" 
+    ::= { signals 1 }
+
+    restoreSignal OBJECT-TYPE
+    SYNTAX  INTEGER
+    MAX-ACCESS  write-only
+    STATUS  current
+    DESCRIPTION
+    "Restore settings
+    1 - restore settings"
+    ::= { signals 2 }
+	
+    rebootSignal OBJECT-TYPE
+    SYNTAX  INTEGER
+    MAX-ACCESS  write-only
+    STATUS  current
+    DESCRIPTION
+    "Reboot device: 
+    1 - reboot"
+    ::= { signals 3 }
+    
+    upsModel OBJECT-TYPE
+    SYNTAX  OCTET STRING
+    MAX-ACCESS  read-only
+    STATUS  current
+    DESCRIPTION
+    "UPS model" 
+    ::= { signals 4 }
+    
+    do1 OBJECT-TYPE
+    SYNTAX  OCTET STRING
+    MAX-ACCESS  read-write
+    STATUS  current
+    DESCRIPTION
+    "0 - open relay1
+    1 - close relay1" 
+    ::= { signals 5 }
+    
+    do2 OBJECT-TYPE
+    SYNTAX  OCTET STRING
+    MAX-ACCESS  read-write
+    STATUS  current
+    DESCRIPTION
+    "0 - open relay2 
+    1 - close relay2" 
+    ::= { signals 6 }
+    
+    batTest OBJECT-TYPE
+    SYNTAX  INTEGER
+    MAX-ACCESS  write-only
+    STATUS  current
+    DESCRIPTION
+    "0 - cancel test
+    1-99 - run test to x minutes
+    100 - run test to 10 seconds
+    999 - test till charging"
+    ::= { signals 7 }
+    
+    shutdown OBJECT-TYPE
+    SYNTAX  OCTET STRING
+    MAX-ACCESS  write-only
+    STATUS  current
+    DESCRIPTION
+    "Control of shut down UPS load:
+	0 - stop shut down load
+	n - shut down load in n minutes
+	n: 0.2, 0.3, .., 1, 2, .., 10"
+    ::= { signals 8 }
+	
+    di0 OBJECT-TYPE
+    SYNTAX  OCTET STRING
+    MAX-ACCESS  read-only
+    STATUS  current
+    DESCRIPTION
+    "State of dry input
+    0 - close dry input
+    1 - open dry input" 
+    ::= { signals 9 }
+	
+    intTemp OBJECT-TYPE
+    SYNTAX  OCTET STRING
+    MAX-ACCESS  read-only
+    STATUS  current
+    DESCRIPTION
+    "Internal temperature" 
+    ::= { signals 10 }
+	
+    inFreq OBJECT-TYPE
+    SYNTAX  OCTET STRING
+    MAX-ACCESS  read-only
+    STATUS  current
+    DESCRIPTION
+    "Input frequency, Hz" 
+    ::= { signals 11 }
+	
+    inVoltVAC OBJECT-TYPE
+    SYNTAX  OCTET STRING
+    MAX-ACCESS  read-only
+    STATUS  current
+    DESCRIPTION
+    "Input voltage" 
+    ::= { signals 12 }
+	
+    outVoltVAC OBJECT-TYPE
+    SYNTAX  OCTET STRING
+    MAX-ACCESS  read-only
+    STATUS  current
+    DESCRIPTION
+    "Output voltage" 
+    ::= { signals 13 }
+	
+    power OBJECT-TYPE
+    SYNTAX  OCTET STRING
+    MAX-ACCESS  read-only
+    STATUS  current
+    DESCRIPTION
+    "Power, %" 
+    ::= { signals 14 }
+	
+    batCap OBJECT-TYPE
+    SYNTAX  OCTET STRING
+    MAX-ACCESS  read-only
+    STATUS  current
+    DESCRIPTION
+    "Battery capacity, %" 
+    ::= { signals 15 }
+    
+    batTime OBJECT-TYPE
+    SYNTAX  OCTET STRING
+    MAX-ACCESS  read-only
+    STATUS  current
+    DESCRIPTION
+    "Rest working time of battery, min" 
+    ::= { signals 16 }
+		
+    connectMonitor OBJECT-TYPE
+    SYNTAX  OCTET STRING
+    MAX-ACCESS  read-only
+    STATUS  current
+    DESCRIPTION
+    "Connect status:
+	0 - normal;
+	1 - connect fail" 
+    ::= { signals 17 }
+    
+    alarms OBJECT-TYPE
+    SYNTAX  OCTET STRING
+    MAX-ACCESS  read-only
+    STATUS  current
+    DESCRIPTION
+    "bit 7 - utility fail
+	bit 6 - battery low
+	bit 5 - bypass/boost or buck active
+	bit 4 - UPS fail
+	bit 3 - UPS Type is Standby (0 is On_line)
+	bit 2 - Test in Progress
+	bit 1 - Shutdown Active
+	bit 0 - Beeper On" 
+    ::= { signals 18 }
+
+-- DEVICE TRAPS
+
+     fwVersionUpdate  NOTIFICATION-TYPE
+     OBJECTS              { fwVersion }
+     STATUS               current
+     DESCRIPTION ""
+     ::= { traps 1 }
+
+    fwVersionUpdated  NOTIFICATION-TYPE
+     OBJECTS              { fwVersion }
+     STATUS               current
+     DESCRIPTION ""
+     ::= { traps 2 }
+
+     deviceRestored  NOTIFICATION-TYPE
+     OBJECTS              { restoreSignal }
+     STATUS               current
+     DESCRIPTION ""
+     ::= { traps 3 }
+
+    deviceRebooted  NOTIFICATION-TYPE
+     OBJECTS              { rebootSignal }
+     STATUS               current
+     DESCRIPTION ""
+     ::= { traps 4 }
+
+     di0Norm  NOTIFICATION-TYPE
+     OBJECTS              { di0 }
+     STATUS               current
+     DESCRIPTION ""
+     ::= { traps 5 }
+
+    DI0Alarm  NOTIFICATION-TYPE
+     OBJECTS              { di0 }
+     STATUS               current
+     DESCRIPTION ""
+     ::= { traps 6 }
+     
+     do1Toggled  NOTIFICATION-TYPE
+     OBJECTS              { do1 }
+     STATUS               current
+     DESCRIPTION ""
+     ::= { traps 7 }
+
+    do2Toggled  NOTIFICATION-TYPE
+     OBJECTS              { do2 }
+     STATUS               current
+     DESCRIPTION ""
+     ::= { traps 8 }
+
+     batteryTemperatureHighNorm  NOTIFICATION-TYPE
+     OBJECTS              { intTemp }
+     STATUS               current
+     DESCRIPTION ""
+     ::= { traps 9 }
+
+    batteryTemperatureHighAlarm  NOTIFICATION-TYPE
+     OBJECTS              { intTemp }
+     STATUS               current
+     DESCRIPTION ""
+     ::= { traps 10 }
+	 
+     lineAlarm  NOTIFICATION-TYPE
+     OBJECTS              { inVoltVAC }
+     STATUS               current
+     DESCRIPTION ""
+     ::= { traps 11 }
+
+    lineNorm  NOTIFICATION-TYPE
+     OBJECTS              { inVoltVAC }
+     STATUS               current
+     DESCRIPTION ""
+     ::= { traps 12 } 
+
+     lowBatAlarm  NOTIFICATION-TYPE
+     OBJECTS              { batCap }
+     STATUS               current
+     DESCRIPTION ""
+     ::= { traps 13 }
+
+     lowBatNorm  NOTIFICATION-TYPE
+     OBJECTS              { batCap }
+     STATUS               current
+     DESCRIPTION ""
+     ::= { traps 14 }
+	 
+     powerAlarm  NOTIFICATION-TYPE
+     OBJECTS              { power }
+     STATUS               current
+     DESCRIPTION ""
+     ::= { traps 15 }
+
+    powerNorm  NOTIFICATION-TYPE
+     OBJECTS              { power }
+     STATUS               current
+     DESCRIPTION ""
+     ::= { traps 16 }
+
+	ConnectMonitorAlarm  NOTIFICATION-TYPE
+     OBJECTS              { connectMonitor }
+     STATUS               current
+     DESCRIPTION ""
+     ::= { traps 17 }
+	 
+     connectMonitorNorm  NOTIFICATION-TYPE
+     OBJECTS              { connectMonitor }
+     STATUS               current
+     DESCRIPTION ""
+     ::= { traps 18 }
+     
+     batteryConnectAlarm  NOTIFICATION-TYPE
+     OBJECTS              { batCap }
+     STATUS               current
+     DESCRIPTION ""
+     ::= { traps 19 }
+
+    batteryConnectNorm  NOTIFICATION-TYPE
+     OBJECTS              { batCap }
+     STATUS               current
+     DESCRIPTION ""
+     ::= { traps 20 }	
+     
+     batteryTemperatureLowNorm  NOTIFICATION-TYPE
+     OBJECTS              { intTemp }
+     STATUS               current
+     DESCRIPTION ""
+     ::= { traps 21 }
+
+     batteryTemperatureLowAlarm  NOTIFICATION-TYPE
+     OBJECTS              { intTemp }
+     STATUS               current
+     DESCRIPTION ""
+     ::= { traps 22 }
+
+     upsFailedAlarm  NOTIFICATION-TYPE
+     OBJECTS              { outVoltVAC }
+     STATUS               current
+     DESCRIPTION ""
+     ::= { traps 23 }
+
+     upsFailedNorm  NOTIFICATION-TYPE
+     OBJECTS              { outVoltVAC }
+     STATUS               current
+     DESCRIPTION ""
+     ::= { traps 24 }
+	
+END
+

+ 51 - 0
modules/monitor/ups_monitor.c

@@ -1317,5 +1317,56 @@ void AKB_Change_Monitor(void)
 }
 }
 #endif
 #endif
 
 
+#ifdef UPS_FAILED_MONITOR
+void UPS_Failed_Monitor(void)
+{
+  static bool isValueRecv = false;
+  static uint8_t UPSFailOldState = 0;
+  uint8_t UPSFailCurrent;
+
+  UPSFailCurrent = (UPS.Status >> 4) & 0x01;
+  
+  if (!isValueRecv) {
+    isValueRecv = true;
+    UPSFailOldState = UPSFailCurrent;
+
+    if (UPSFailCurrent){
+    	log_event_data(LOG_ALARM_UPS_FAILED, "Авария");
+          SNMP_SendUserTrap(UPS_ALARM);
+          flUpdateLog = true;
+    }
+    else{
+      log_event_data(LOG_ALARM_UPS_FAILED, "Норма");
+      SNMP_SendUserTrap(UPS_NORM);
+      flUpdateLog = true;
+    }
+
+    return;
+  }
+
+  if (UPSFailCurrent){
+    flCriticalAlarm = true;
+    flLedAlarm = true;
+  }
+	  
+  // Значение параметра изменилось
+  if (UPSFailCurrent != UPSFailOldState)
+  {
+    if (UPSFailCurrent){
+    	log_event_data(LOG_ALARM_UPS_FAILED, "Авария");
+    	SNMP_SendUserTrap(UPS_ALARM);
+    	flUpdateLog = true;
+    }
+    else{
+      log_event_data(LOG_ALARM_UPS_FAILED, "Норма");
+      SNMP_SendUserTrap(UPS_NORM);
+      flUpdateLog = true;
+    }
+  }
+
+  UPSFailOldState = UPSFailCurrent;  
+}
+#endif
+
 
 
 /********************************* (C) РОТЕК **********************************/
 /********************************* (C) РОТЕК **********************************/

+ 4 - 0
modules/monitor/ups_monitor.h

@@ -132,6 +132,10 @@ void UPS_BatteryConnectMonitor(void);
 void AKB_Change_Monitor(void);
 void AKB_Change_Monitor(void);
 #endif
 #endif
 
 
+#ifdef UPS_FAILED_MONITOR
+void UPS_Failed_Monitor(void);
+#endif
+
 #endif /* #ifndef UPS_MONITOR_H */
 #endif /* #ifndef UPS_MONITOR_H */
 
 
 /********************************* (C) РОТЕК **********************************/
 /********************************* (C) РОТЕК **********************************/

+ 1 - 0
modules/settings_api_bt6703_rt.c

@@ -58,6 +58,7 @@ const char* logsStrShortRu[] =
     "Авария связи с ИБП",
     "Авария связи с ИБП",
     "Авария отключения АКБ",
     "Авария отключения АКБ",
     "Авария АКБ",
     "Авария АКБ",
+    "Авария ИБП",
 };
 };
 
 
 /**
 /**