diff options
| author | Shlomo Hecht <shlomo@twine-s.com> | 2018-08-15 15:35:13 +0300 |
|---|---|---|
| committer | Shlomo Hecht <shlomo@twine-s.com> | 2018-08-15 15:35:13 +0300 |
| commit | 013c584cf6dcf1dd61fa52f5841f500a4bfee459 (patch) | |
| tree | 0f0d96041a3f61bbc2dbfce582ade5a1ea709459 /Software/Embedded_SW/Embedded/Modules | |
| parent | 61f9a262b9f7d4975186c90484fc5c6bb3affcc9 (diff) | |
| download | Tango-013c584cf6dcf1dd61fa52f5841f500a4bfee459.tar.gz Tango-013c584cf6dcf1dd61fa52f5841f500a4bfee459.zip | |
more alarm handling: precedence, status handling
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules')
| -rw-r--r-- | Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c | 35 | ||||
| -rw-r--r-- | Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c | 1 |
2 files changed, 20 insertions, 16 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c index 3d54e1c7a..1d0d3a205 100644 --- a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c +++ b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c @@ -112,17 +112,17 @@ AlarmHandlingItem AlarmItem[MAX_SYSTEM_ALARMS]={ {100,LimitSwitchAlarm,GPI_LS_DISPENSER_25_7,false,true,DEBUG_LOG_CATEGORY__Warning,6,0,0,false,EVENT_TYPE__Dispenser7LowLevel,NULL}, {100,LimitSwitchAlarm,GPI_LS_DISPENSER_25_8,false,true,DEBUG_LOG_CATEGORY__Warning,7,0,0,false,EVENT_TYPE__Dispenser8LowLevel,NULL}, {100,TemperatureAlarm,TEMP_SENSE_ANALOG_MIXCHIP_TEMP,250,true,DEBUG_LOG_CATEGORY__Error,0xFF,0,0,false,EVENT_TYPE__GeneralInternalOverTemperature,NULL}, -{100,TemperatureAlarm,TEMP_SENSE_AN_ENCLOSURETEMP1,80,true,DEBUG_LOG_CATEGORY__Error,0xFF,0,0,false,EVENT_TYPE__GeneralInternalOverTemperature,NULL}, +{100,TemperatureAlarm,TEMP_SENSE_AN_ENCLOSURETEMP1,250,true,DEBUG_LOG_CATEGORY__Error,0xFF,0,0,false,EVENT_TYPE__GeneralInternalOverTemperature,NULL}, {100,TemperatureAlarm,TEMP_SENSE_AN_ENCLOSURETEMP2,80,true,DEBUG_LOG_CATEGORY__Error,0xFF,0,0,false,EVENT_TYPE__GeneralInternalOverTemperature,NULL}, -{100,TemperatureAlarm,TEMP_SENSE_AN_ENCLOSURETEMP3,250,true,DEBUG_LOG_CATEGORY__Error,0xFF,0,0,false,EVENT_TYPE__DyeingHead6OverTemperature,NULL}, -{100,TemperatureAlarm,TEMP_SENSE_ANALOG_DYEINGH_TEMP1,250,true,DEBUG_LOG_CATEGORY__Error,0xFF,0,0,false,EVENT_TYPE__DyeingHead1OverTemperature,NULL}, -{100,TemperatureAlarm,TEMP_SENSE_ANALOG_DYEINGH_TEMP2,250,true,DEBUG_LOG_CATEGORY__Error,0xFF,0,0,false,EVENT_TYPE__DyeingHead2OverTemperature,NULL}, -{100,TemperatureAlarm,TEMP_SENSE_ANALOG_DYEINGH_TEMP3,250,true,DEBUG_LOG_CATEGORY__Error,0xFF,0,0,false,EVENT_TYPE__DyeingHead3OverTemperature,NULL}, -{100,TemperatureAlarm,TEMP_SENSE_ANALOG_DYEINGH_TEMP4,250,true,DEBUG_LOG_CATEGORY__Error,0xFF,0,0,false,EVENT_TYPE__DyeingHead4OverTemperature,NULL}, -{100,TemperatureAlarm,TEMP_SENSE_ANALOG_DYEINGH_TEMP5,250,true,DEBUG_LOG_CATEGORY__Error,0xFF,0,0,false,EVENT_TYPE__DyeingHead5OverTemperature,NULL}, -{100,TemperatureAlarm,TEMP_SENSE_ANALOG_DRYER_TEMP1,250,true,DEBUG_LOG_CATEGORY__Error,0xFF,0,0,false,EVENT_TYPE__DryerOverTemperature,NULL}, -{100,TemperatureAlarm,TEMP_SENSE_ANALOG_DRYER_TEMP1,250,true,DEBUG_LOG_CATEGORY__Error,0xFF,0,0,false,EVENT_TYPE__DryerOverTemperature,NULL}, -{100,TemperatureAlarm,TEMP_SENSE_ANALOG_DRYER_TEMP1,250,true,DEBUG_LOG_CATEGORY__Error,0xFF,0,0,false,EVENT_TYPE__DryerOverTemperature,NULL}, +{100,TemperatureAlarm,TEMP_SENSE_AN_ENCLOSURETEMP3,300,true,DEBUG_LOG_CATEGORY__Error,0xFF,0,0,false,EVENT_TYPE__DyeingHead6OverTemperature,NULL}, +{100,TemperatureAlarm,TEMP_SENSE_ANALOG_DYEINGH_TEMP1,300,true,DEBUG_LOG_CATEGORY__Error,0xFF,0,0,false,EVENT_TYPE__DyeingHead1OverTemperature,NULL}, +{100,TemperatureAlarm,TEMP_SENSE_ANALOG_DYEINGH_TEMP2,300,true,DEBUG_LOG_CATEGORY__Error,0xFF,0,0,false,EVENT_TYPE__DyeingHead2OverTemperature,NULL}, +{100,TemperatureAlarm,TEMP_SENSE_ANALOG_DYEINGH_TEMP3,300,true,DEBUG_LOG_CATEGORY__Error,0xFF,0,0,false,EVENT_TYPE__DyeingHead3OverTemperature,NULL}, +{100,TemperatureAlarm,TEMP_SENSE_ANALOG_DYEINGH_TEMP4,300,true,DEBUG_LOG_CATEGORY__Error,0xFF,0,0,false,EVENT_TYPE__DyeingHead4OverTemperature,NULL}, +{100,TemperatureAlarm,TEMP_SENSE_ANALOG_DYEINGH_TEMP5,300,true,DEBUG_LOG_CATEGORY__Error,0xFF,0,0,false,EVENT_TYPE__DyeingHead5OverTemperature,NULL}, +{100,TemperatureAlarm,TEMP_SENSE_ANALOG_DRYER_TEMP1,300,true,DEBUG_LOG_CATEGORY__Error,0xFF,0,0,false,EVENT_TYPE__DryerOverTemperature,NULL}, +{100,TemperatureAlarm,TEMP_SENSE_ANALOG_DRYER_TEMP1,300,true,DEBUG_LOG_CATEGORY__Error,0xFF,0,0,false,EVENT_TYPE__DryerOverTemperature,NULL}, +{100,TemperatureAlarm,TEMP_SENSE_ANALOG_DRYER_TEMP1,300,true,DEBUG_LOG_CATEGORY__Error,0xFF,0,0,false,EVENT_TYPE__DryerOverTemperature,NULL}, {100,PressureAlarm,1,7,true,DEBUG_LOG_CATEGORY__Error,0xFF,0,0,false,EVENT_TYPE__Dispenser1Pressure,NULL}, {100,PressureAlarm,2,7,true,DEBUG_LOG_CATEGORY__Error,0xFF,0,0,false,EVENT_TYPE__Dispenser2Pressure,NULL}, {100,PressureAlarm,3,7,true,DEBUG_LOG_CATEGORY__Error,0xFF,0,0,false,EVENT_TYPE__Dispenser3Pressure,NULL}, @@ -282,25 +282,23 @@ uint32_t AlarmHandlingLoop(uint32_t tick) bool Status = false; for (Alarm_i = 0;Alarm_i < MAX_SYSTEM_ALARMS;Alarm_i++) { + Status = false; if (tick%AlarmItem[Alarm_i].Frequency == 0) { - if (AlarmItem[Alarm_i].Predecessor) - if (AlarmItem[AlarmItem[Alarm_i].Predecessor].Status == true) //higher hierarchy alarm is on - continue; switch (AlarmItem[Alarm_i].AlarmSource) { case TemperatureAlarm: value = TemperatureSensorRead(AlarmItem[Alarm_i].DeviceId); if (AlarmItem[Alarm_i].AlarmDirection == true) { - if (value >= AlarmItem[Alarm_i].AlarmValue) + if (value/100 >= AlarmItem[Alarm_i].AlarmValue) { Status = true; } } else { - if (value <= AlarmItem[Alarm_i].AlarmValue) + if (value/100 <= AlarmItem[Alarm_i].AlarmValue) { Status = true; } @@ -314,7 +312,7 @@ uint32_t AlarmHandlingLoop(uint32_t tick) } break; case PressureAlarm: - value = GetDispenserPressure(AlarmItem[Alarm_i].DeviceId)/1000000; + value = GetDispenserPressure(AlarmItem[Alarm_i].DeviceId); if (AlarmItem[Alarm_i].AlarmDirection == true) { if (value >= AlarmItem[Alarm_i].AlarmValue) @@ -369,6 +367,11 @@ uint32_t AlarmHandlingLoop(uint32_t tick) } } } + if (AlarmItem[Alarm_i].Predecessor!=0xFF) + { + if (AlarmItem[AlarmItem[Alarm_i].Predecessor].Status == true) //higher hierarchy alarm is on + Status = false; + } if (Status != AlarmItem[Alarm_i].Status) //change in alarm Status { if (Status == true) // alarm on diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c index 7f379f3c1..222b47b57 100644 --- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c +++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c @@ -42,6 +42,7 @@ #include "drivers/FPGA/FPGA_GPIO/FPGA_GPIO.h" #include "drivers/Motors/Motor.h" #include "drivers/Valves/Valve.h" +#include "Drivers/I2C_Communication/DAC/blower.h" #include "StateMachines/Printing/PrintingSTM.h" |
