blockAlarms
Generate alarms of snap-acting controlled dual-duct terminal unit
Information
This block outputs alarms of snap-acting controlled dual-duct terminal unit. The implementation is according to the Section 5.11.6 of ASHRAE Guideline 36, May 2020.
Low airflow
-
If the zone is in occupied mode and after the AHU supply fan has been enabled for
staTim, if the measured airflowVDis_flowis less than 70% of setpointVActSet_flowfor 5 minutes (lowFloTim) while the setpoint is greater than zero, generate a Level 3 alarm. -
If the zone is in occupied mode and after the AHU supply fan has been enabled for
staTim, if the measured airflowVDis_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.
Airflow sensor calibration
-
If the unit has dual inlet sensor (
have_duaSen=true):-
If the cooling fan serving the zone has been OFF (
u1CooFan=false) for 10 minutes (fanOffTim), and the cold-duct airflow sensor readingVColDucDis_flowis above 10% of the cooling maximum airflow setpointVCooMax_flow, generate a Level 3 alarm. -
If the heating fan serving the zone has been OFF (
u1HeaFan=false) for 10 minutes (fanOffTim), and the hot-duct airflow sensor readingVHotDucDis_flowis above 10% of the heating maximum airflow setpointVHeaMax_flow, generate a Level 3 alarm.
-
If the cooling fan serving the zone has been OFF (
-
If the unit has single discharge flow sensor (
have_duaSen=false):-
If the cooling and heating fans serving the zone have been OFF (
u1CooFan=falseandu1HeaFan=false) for 10 minutes (fanOffTim), and the discharge airflow sensor readingVDis_flowis above 10% of the cooling maximum airflow setpointVCooMax_flow, generate a Level 3 alarm.
-
If the cooling and heating fans serving the zone have been OFF (
Leaking damper
-
If the unit has dual inlet sensor (
have_duaSen=true):-
If the cooling damper position (
uCooDam) is 0% and airflow sensor readingVColDucDis_flowis above 10% of the cooling maximum airflow setpointVCooMax_flowfor 10 minutes (leaFloTim) while the fan serving the zone is proven on (u1CooFan=true), generate a Level 4 alarm. -
If the heating damper position (
uHeaDam) is 0% and airflow sensor readingVHotDucDis_flowis above 10% of the heating maximum airflow setpointVHeaMax_flowfor 10 minutes (leaFloTim) while the fan serving the zone is proven on (u1HeaFan=true), generate a Level 4 alarm.
-
If the cooling damper position (
-
If the unit has single discharge flow sensor (
have_duaSen=false):-
If the cooling and heating damper position (
uCooDamanduHeaDam) are 0% and airflow sensor readingVDis_flowis above 10% of the cooling maximum airflow setpointVCooMax_flowfor 10 minutes (leaFloTim) while the fan serving the zone is proven on (u1CooFan=trueoru1HeaFan=true), generate a Level 4 alarm.
-
If the cooling and heating damper position (
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Boolean | have_duaSen | True: the unit have dual inlet flow sensor | |
| Real | staPreMul | Importance multiplier for the zone static pressure reset control loop | |
| Real | VCooMax_flow | Design zone cooling maximum airflow rate | |
| Real | VHeaMax_flow | Design zone heating maximum airflow rate | |
| Real | lowFloTim | 300 | Threshold time to check low flow rate |
| Real | fanOffTim | 600 | Threshold time to check fan off |
| Real | leaFloTim | 600 | Threshold time to check damper leaking airflow |
| Advanced | |||
| Real | floHys | 0.05 | Near zero flow rate, below which the flow rate or difference will be seen as zero |
| Real | damPosHys | 0.05 | Near zero damper position, below which the damper 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 | and8 | 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 | and4 | 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 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.Sources.Constant | heaMaxFlo | Heating maximum airflow setpoint | |
| Buildings.Controls.OBC.CDL.Reals.MultiplyByParameter | gai3 | Percentage of the setpoint | |
| Buildings.Controls.OBC.CDL.Logical.Not | not6 | Logical not | |
| Buildings.Controls.OBC.CDL.Logical.TrueDelay | truDel4 | Check if the input has been true for more than threshold time | |
| Buildings.Controls.OBC.CDL.Reals.Greater | gre2 | Check if measured airflow is greater than threshold | |
| Buildings.Controls.OBC.CDL.Logical.And | and6 | Check if the measured airflow is greater than the threshold and the supply fan is OFF | |
| Buildings.Controls.OBC.CDL.Logical.Not | not7 | Logical not | |
| Buildings.Controls.OBC.CDL.Utilities.Assert | assMes4 | Level 3 airflow sensor alarm | |
| Buildings.Controls.OBC.CDL.Conversions.BooleanToInteger | booToInt4 | Convert boolean true to level 3 alarm | |
| Buildings.Controls.OBC.CDL.Logical.TrueDelay | truDel5 | Check if the input has been true for more than threshold time | |
| Buildings.Controls.OBC.CDL.Reals.LessThreshold | cloDam1 | Check if damper position is near zero | |
| Buildings.Controls.OBC.CDL.Logical.And | leaDamAla1 | Check if generating leak damper alarms | |
| Buildings.Controls.OBC.CDL.Logical.Not | not8 | Logical not | |
| Buildings.Controls.OBC.CDL.Utilities.Assert | assMes5 | Level 4 leaking damper alarm | |
| Buildings.Controls.OBC.CDL.Conversions.BooleanToInteger | booToInt5 | Convert boolean true to level 4 alarm | |
| Buildings.Controls.OBC.CDL.Reals.Sources.Constant | cooMaxFlo1 | Cooling maximum airflow setpoint | |
| Buildings.Controls.OBC.CDL.Reals.MultiplyByParameter | gai4 | Percentage of the setpoint | |
| Buildings.Controls.OBC.CDL.Reals.Greater | gre3 | Check if measured airflow is greater than threshold | |
| Buildings.Controls.OBC.CDL.Logical.And | and7 | Check if the measured airflow is greater than the threshold and the supply fan is OFF | |
| Buildings.Controls.OBC.CDL.Logical.Not | not9 | Logical not | |
| Buildings.Controls.OBC.CDL.Utilities.Assert | assMes6 | Level 3 airflow sensor alarm | |
| Buildings.Controls.OBC.CDL.Conversions.BooleanToInteger | booToInt6 | Convert boolean true to level 3 alarm | |
| Buildings.Controls.OBC.CDL.Logical.Or | or2 | Check if there is any supply fan proven on | |
| Buildings.Controls.OBC.CDL.Logical.TrueDelay | truDel6 | Check if the input has been true for more than threshold time | |
| Buildings.Controls.OBC.CDL.Logical.Not | not10 | Logical not | |
| Buildings.Controls.OBC.CDL.Logical.TrueDelay | truDel7 | Check if the input has been true for more than threshold time | |
| Buildings.Controls.OBC.CDL.Logical.And | leaDamAla2 | Check if generating leak damper alarms | |
| Buildings.Controls.OBC.CDL.Logical.And | cloBotDam | Both heating and cooling dampers are closed | |
| Buildings.Controls.OBC.CDL.Logical.Not | not11 | Logical not | |
| Buildings.Controls.OBC.CDL.Utilities.Assert | assMes7 | Level 4 leaking damper alarm | |
| Buildings.Controls.OBC.CDL.Conversions.BooleanToInteger | booToInt7 | Convert boolean true to level 4 alarm | |
| Buildings.Controls.OBC.CDL.Reals.Add | add2 | Total discharge airflow | |
| Buildings.Controls.OBC.CDL.Logical.TrueDelay | truDel8 | 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 | and11 | True: AHU fan is enabled and the discharge flow is lower than the threshold | |
| Buildings.Controls.OBC.CDL.Logical.And | and10 | True: AHU fan is enabled and the discharge flow is lower than the threshold | |
| Buildings.Controls.OBC.CDL.Logical.Or | or1 | Check if there is any supply fan proven on | |
| 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 | and9 | Logical and | |
| Buildings.Controls.OBC.CDL.Logical.And | leaDamAla3 | Check if generating leak damper alarms | |
| Buildings.Controls.OBC.CDL.Logical.And | leaDamAla4 | Check if generating leak damper alarms | |
| Buildings.Controls.OBC.CDL.Logical.And | leaDamAla5 | Check if generating leak damper alarms |
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.