blockAlarms
Information
This block outputs alarms of series fan-powered terminal unit with variable volume fan. The implementation is according to the Section 5.10.6 of ASHRAE Guideline 36, May 2020.
Low airflow
-
After the AHU supply fan has been enabled for
staTim, if the measured airflowVPri_flowis less than 70% of setpointVActSet_flowfor 5 minutes (lowFloTim) while the setpoint is greater than zero, generate a Level 3 alarm. -
After the AHU supply fan has been enabled for
staTim, if the measured airflowVPri_flowis less than 50% of setpointVActSet_flowfor 5 minutes (lowFloTim) while the setpoint is greater than zero, generate a Level 2 alarm. -
If a zone has an importance multiplier (
staPreMul) of 0 for its static pressure reset Trim-Respond control loop, low airflow alarms shall be suppressed for that zone.
Low-discharging air temperature
-
If heating hot-water plant is proven on (
u1HotPla=true), and the discharge temperature (TDis) is 8.3 °C (15 °F) less than the setpoint (TDisSet) for 10 minuts (lowTemTim), generate a Level 3 alarm. -
If heating hot-water plant is proven on (
u1HotPla=true), and the discharge temperature (TDis) is 17 °C (30 °F) less than the setpoint (TDisSet) for 10 minuts (lowTemTim), generate a Level 2 alarm. -
If a zone has an importance multiplier (
hotWatRes) of 0 for its hot-water reset Trim-Respond control loop, low discharing air temperature alarms shall be suppressed for that zone.
Fan status alarm
Fan alarm is indicated by the status input being different from the output command after a period of 15 seconds after a change in output status.
-
Command on (
u1FanCom=true), status off (u1TerFan=false), generate Level 2 alarm. -
Command off (
u1FanCom=false), status on (u1TerFan=true), generate Level 4 alarm.
Airflow sensor calibration
If the fan serving the zone has been OFF (u1Fan=false) for 10 minutes
(fanOffTim), and airflow sensor reading VPri_flow
is above 10% of the cooling maximum airflow setpoint VCooMax_flow,
generate a Level 3 alarm.
Leaking damper
If the damper position (uDam) is 0% and airflow sensor reading
VPri_flow is above 10% of the cooling maximum airflow setpoint
VCooMax_flow for 10 minutes (leaFloTim) while the
fan serving the zone is proven on (u1Fan=true), generate a Level
4 alarm.
Leaking valve
If the valve position (uVal) is 0% for 15 minutes (valCloTim),
discharing air temperature TDis is above AHU supply temperature
TSup by 3 °C (5 °F), and the fan serving the zone is proven
on (u1Fan=true), gemerate a Level 4 alarm.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Buildings.Controls.OBC.ASHRAE.G36.Types.HeatingCoil | heaCoi | Buildings.Controls.OBC.ASHRAE.G36.Types.HeatingCoil.WaterBased | Heating coil type |
| Real | staPreMul | Importance multiplier for the zone static pressure reset control loop | |
| Real | hotWatRes | Importance multiplier for the hot water reset control loop | |
| Real | VCooMax_flow | Design zone cooling maximum airflow rate | |
| Real | lowFloTim | 300 | Threshold time to check low flow rate |
| Real | lowTemTim | 600 | Threshold time to check low discharge temperature |
| Real | comChaTim | 15 | Threshold time after fan command change |
| Real | fanOffTim | 600 | Threshold time to check fan off |
| Real | leaFloTim | 600 | Threshold time to check damper leaking airflow |
| Real | valCloTim | 900 | Threshold time to check valve leaking water flow |
| Advanced | |||
| Real | floHys | 0.05 | Near zero flow rate, below which the flow rate or difference will be seen as zero |
| Real | dTHys | 0.25 | Temperature difference hysteresis below which the temperature difference will be seen as zero |
| Real | damPosHys | 0.05 | Near zero damper position, below which the damper will be seen as closed |
| Real | valPosHys | 0.05 | Near zero valve position, below which the valve will be seen as closed |
| Real | staTim | 1800 | Delay triggering alarms after enabling AHU supply fan |
Connectors
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Buildings.Controls.OBC.CDL.Reals.MultiplyByParameter | gai | Percentage of the setpoint | |
| Buildings.Controls.OBC.CDL.Reals.Less | les | Check if measured airflow is less than threshold | |
| Buildings.Controls.OBC.CDL.Logical.TrueDelay | truDel | Check if the measured airflow has been less than threshold value for threshold time | |
| Buildings.Controls.OBC.CDL.Reals.GreaterThreshold | greThr | Check if setpoint airflow is greater than zero | |
| Buildings.Controls.OBC.CDL.Reals.Greater | gre | Check if measured airflow is less than threshold | |
| Buildings.Controls.OBC.CDL.Reals.MultiplyByParameter | gai1 | Percentage of the setpoint | |
| Buildings.Controls.OBC.CDL.Logical.TrueDelay | truDel1 | Check if the measured airflow has been less than threshold value for threshold time | |
| Buildings.Controls.OBC.CDL.Logical.And | and2 | Measured airflow has been less than threshold value for sufficient time | |
| Buildings.Controls.OBC.CDL.Logical.And | and1 | Measured airflow has been less than threshold value for sufficient time | |
| Buildings.Controls.OBC.CDL.Integers.Switch | lowFloAla | Low airflow alarm | |
| Buildings.Controls.OBC.CDL.Integers.Sources.Constant | conInt | Level 2 alarm | |
| Buildings.Controls.OBC.CDL.Conversions.BooleanToInteger | booToInt | Convert boolean true to level 3 alarm | |
| Buildings.Controls.OBC.CDL.Reals.Sources.Constant | conInt1 | Importance multiplier for zone static pressure reset | |
| Buildings.Controls.OBC.CDL.Reals.GreaterThreshold | greThr1 | Check if the multiplier is greater than zero | |
| Buildings.Controls.OBC.CDL.Conversions.BooleanToInteger | booToInt1 | Suppress the alarm when multiplier is zero | |
| Buildings.Controls.OBC.CDL.Integers.Multiply | proInt | Low flow alarms | |
| Buildings.Controls.OBC.CDL.Logical.And | and4 | Logical and | |
| Buildings.Controls.OBC.CDL.Logical.Not | not1 | Logical not | |
| Buildings.Controls.OBC.CDL.Utilities.Assert | assMes | Level 2 low airflow alarm | |
| Buildings.Controls.OBC.CDL.Logical.And | and14 | Logical and | |
| Buildings.Controls.OBC.CDL.Logical.Not | not2 | Logical not | |
| Buildings.Controls.OBC.CDL.Utilities.Assert | assMes1 | Level 3 low airflow alarm | |
| Buildings.Controls.OBC.CDL.Reals.Sources.Constant | cooMaxFlo | Cooling maximum airflow setpoint | |
| Buildings.Controls.OBC.CDL.Reals.MultiplyByParameter | gai2 | Percentage of the setpoint | |
| Buildings.Controls.OBC.CDL.Logical.Not | not3 | Logical not | |
| Buildings.Controls.OBC.CDL.Logical.TrueDelay | truDel2 | Check if the input has been true for more than threshold time | |
| Buildings.Controls.OBC.CDL.Reals.Greater | gre1 | Check if measured airflow is greater than threshold | |
| Buildings.Controls.OBC.CDL.Logical.And | and5 | Check if the measured airflow is greater than the threshold and the AHU supply fan is OFF | |
| Buildings.Controls.OBC.CDL.Logical.Not | not4 | Logical not | |
| Buildings.Controls.OBC.CDL.Utilities.Assert | assMes2 | Level 3 airflow sensor alarm | |
| Buildings.Controls.OBC.CDL.Conversions.BooleanToInteger | booToInt2 | Convert boolean true to level 3 alarm | |
| Buildings.Controls.OBC.CDL.Logical.TrueDelay | truDel3 | Check if the input has been true for more than threshold time | |
| Buildings.Controls.OBC.CDL.Reals.LessThreshold | cloDam | Check if damper position is near zero | |
| Buildings.Controls.OBC.CDL.Logical.And | leaDamAla | Check if generating leak damper alarms | |
| Buildings.Controls.OBC.CDL.Logical.Not | not5 | Logical not | |
| Buildings.Controls.OBC.CDL.Utilities.Assert | assMes3 | Level 4 leaking damper alarm | |
| Buildings.Controls.OBC.CDL.Conversions.BooleanToInteger | booToInt3 | Convert boolean true to level 4 alarm | |
| Buildings.Controls.OBC.CDL.Reals.Less | les1 | Discharge temperature lower than setpoint by a threshold | |
| Buildings.Controls.OBC.CDL.Reals.AddParameter | addPar | Setpoint temperature minus a threshold | |
| Buildings.Controls.OBC.CDL.Reals.Less | les2 | Discharge temperature lower than setpoint by a threshold | |
| Buildings.Controls.OBC.CDL.Reals.AddParameter | addPar1 | Setpoint temperature minus a threshold | |
| Buildings.Controls.OBC.CDL.Logical.TrueDelay | truDel4 | Check if the discharge temperature has been less than threshold value for threshold time | |
| Buildings.Controls.OBC.CDL.Logical.TrueDelay | truDel5 | Check if the discharge temperature has been less than threshold value for threshold time | |
| Buildings.Controls.OBC.CDL.Logical.And | and6 | Discharge temperature has been less than threshold and the hot water plant is proven on | |
| Buildings.Controls.OBC.CDL.Logical.And | and7 | Logical and | |
| Buildings.Controls.OBC.CDL.Logical.Not | not6 | Logical not | |
| Buildings.Controls.OBC.CDL.Utilities.Assert | assMes4 | Level 2 low discharge air temperature alarm | |
| Buildings.Controls.OBC.CDL.Integers.Switch | lowTemAla | Low discharge temperature alarm | |
| Buildings.Controls.OBC.CDL.Integers.Sources.Constant | conInt2 | Level 2 alarm | |
| Buildings.Controls.OBC.CDL.Logical.And | and8 | Discharge temperature has been less than threshold and the hot water plant is proven on | |
| Buildings.Controls.OBC.CDL.Conversions.BooleanToInteger | booToInt4 | Convert boolean true to level 3 alarm | |
| Buildings.Controls.OBC.CDL.Logical.And | and9 | Logical and | |
| Buildings.Controls.OBC.CDL.Logical.Not | not7 | Logical not | |
| Buildings.Controls.OBC.CDL.Utilities.Assert | assMes5 | Level 3 low airflow alarm | |
| Buildings.Controls.OBC.CDL.Reals.Sources.Constant | conInt3 | Importance multiplier for hot water reset control | |
| Buildings.Controls.OBC.CDL.Reals.GreaterThreshold | greThr2 | Check if the multiplier is greater than zero | |
| Buildings.Controls.OBC.CDL.Conversions.BooleanToInteger | booToInt5 | Suppress the alarm when multiplier is zero | |
| Buildings.Controls.OBC.CDL.Integers.Multiply | proInt1 | Low discharge air temperature alarms | |
| Buildings.Controls.OBC.CDL.Logical.TrueDelay | truDel6 | Check if the input has been true for more than threshold time | |
| Buildings.Controls.OBC.CDL.Reals.LessThreshold | cloVal | Check if valve position is near zero | |
| Buildings.Controls.OBC.CDL.Reals.AddParameter | addPar2 | AHU supply temperature plus 3 degree | |
| Buildings.Controls.OBC.CDL.Reals.Greater | gre2 | Discharge temperature greate than AHU supply temperature by a threshold | |
| Buildings.Controls.OBC.CDL.Logical.And | leaValAla | Check if generating leak valve alarms | |
| Buildings.Controls.OBC.CDL.Conversions.BooleanToInteger | booToInt6 | Convert boolean true to level 4 alarm | |
| Buildings.Controls.OBC.CDL.Logical.Not | not8 | Logical not | |
| Buildings.Controls.OBC.CDL.Utilities.Assert | assMes6 | Level 4 leaking valve alarm | |
| Buildings.Controls.OBC.CDL.Logical.TrueDelay | truDel7 | Check if the terminal fan has been commond on for threshold time | |
| Buildings.Controls.OBC.CDL.Logical.And | and11 | Check if the fan has been commond on for threshold time and fan is still off | |
| Buildings.Controls.OBC.CDL.Integers.Sources.Constant | conInt4 | Level 2 alarm | |
| Buildings.Controls.OBC.CDL.Integers.Switch | fanStaAla | Fan status alarm | |
| Buildings.Controls.OBC.CDL.Logical.Not | not9 | Logical not | |
| Buildings.Controls.OBC.CDL.Logical.TrueDelay | truDel8 | Check if the terminal fan has been commond off for threshold time | |
| Buildings.Controls.OBC.CDL.Logical.And | and10 | Check if the fan has been commond off for threshold time and fan is still on | |
| Buildings.Controls.OBC.CDL.Conversions.BooleanToInteger | booToInt7 | Convert boolean true to level 3 alarm | |
| Buildings.Controls.OBC.CDL.Logical.Not | not10 | Logical not | |
| Buildings.Controls.OBC.CDL.Utilities.Assert | assMes7 | Level 2 fan status alarm | |
| Buildings.Controls.OBC.CDL.Logical.Not | not11 | Logical not | |
| Buildings.Controls.OBC.CDL.Utilities.Assert | assMes8 | Level 4 fan status alarm | |
| Buildings.Controls.OBC.CDL.Logical.Not | not12 | Logical not | |
| Buildings.Controls.OBC.CDL.Logical.TrueDelay | truDel9 | Check if the active flow setpoint has been greater than zero for the threshold time | |
| Buildings.Controls.OBC.CDL.Logical.TrueDelay | fanIni | Check if the AHU supply fan has been enabled for threshold time | |
| Buildings.Controls.OBC.CDL.Logical.And | and12 | True: AHU fan is enabled and the discharge flow is lower than the threshold | |
| Buildings.Controls.OBC.CDL.Logical.And | and13 | True: AHU fan is enabled and the discharge flow is lower than the threshold | |
| Buildings.Controls.OBC.CDL.Integers.Sources.Constant | occMod | Occupied mode | |
| Buildings.Controls.OBC.CDL.Integers.Equal | isOcc | Check if current operation mode is occupied mode | |
| Buildings.Controls.OBC.CDL.Logical.And | and3 | Logical and | |
| Buildings.Controls.OBC.CDL.Logical.And | and15 | Logical and | |
| Buildings.Controls.OBC.CDL.Logical.And | and16 | Check if the fan has been commond on for threshold time and fan is still off | |
| Buildings.Controls.OBC.CDL.Logical.And | and17 | Check if the fan has been commond off for threshold time and fan is still on | |
| Buildings.Controls.OBC.CDL.Logical.And | leaDamAla1 | Check if generating leak damper alarms | |
| Buildings.Controls.OBC.CDL.Logical.And | leaValAla1 | Check if generating leak valve alarms | |
| Buildings.Controls.OBC.CDL.Logical.And | and18 | Logical and | |
| Buildings.Controls.OBC.CDL.Logical.And | and19 | Logical and |
Revisions
-
August 29, 2023, by Hongxiang Fu:
Because of the removal ofLogical.And3based on ASHRAE 231P, replaced it with a stack of twoLogical.Andblocks. This is for #2465. -
August 23, 2023, by Jianjun Hu:
Added delaystaTimto allow the system becoming stabilized. This is for issue 3257. -
August 1, 2020, by Jianjun Hu:
First implementation.