This package contains interface classes.
block ControllerG36VAVBox 
  
extends Buildings.Templates.ZoneEquipment.Components.Interfaces.PartialControllerVAVBox;
  
parameter Boolean have_occSen=false
    ;
  
parameter Boolean have_winSen=false
    ;
  
final parameter Boolean have_hotWatCoi=
    coiHea.typ==Buildings.Templates.Components.Types.Coil.WaterBasedHeating
    ;
  
final parameter Modelica.Units.SI.VolumeFlowRate VAirCooSet_flow_max=
    dat.VAirCooSet_flow_max
    ;
  
final parameter Modelica.Units.SI.VolumeFlowRate VAirSet_flow_min=
    dat.VAirSet_flow_min
    ;
  
final parameter Modelica.Units.SI.VolumeFlowRate VAirHeaSet_flow_max=
    dat.VAirHeaSet_flow_max
    ;
  
final parameter Modelica.Units.SI.VolumeFlowRate VAirHeaSet_flow_min=
    dat.VAirHeaSet_flow_min
    ;
  
final parameter Modelica.Units.SI.TemperatureDifference dTAirDisHea_max(
    displayUnit="K")=
    dat.dTAirDisHea_max
    ;
  
final parameter Modelica.Units.SI.VolumeFlowRate VOutMinOcc_flow(
    
final min=0,
    start=1)=dat.VOutMinOcc_flow
    ;
  
final parameter Modelica.Units.SI.VolumeFlowRate VOutMinAre_flow(
    
final min=0,
    start=1)=dat.VOutMinAre_flow
    ;
  
final parameter Real VOutAre_flow(
    
final unit = "m3/s")=
    dat.VOutAre_flow
    ;
  
final parameter Real VOutOcc_flow(
    
final unit = "m3/s")=
    dat.VOutOcc_flow
    ;
  
final parameter Real effAirDisHea=
    dat.effAirDisHea
    ;
  
final parameter Real effAirDisCoo=
     dat.effAirDisCoo
    ;
  
Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.Reheat.Controller ctlReh(
    
final venStd=stdVen,
    
final have_winSen=have_winSen,
    
final have_occSen=have_occSen,
    
final have_CO2Sen=have_CO2Sen,
    
final have_hotWatCoi=have_hotWatCoi,
    
final VOccMin_flow=VOutMinOcc_flow,
    
final VAreMin_flow=VOutMinAre_flow,
    
final VAreBreZon_flow=VOutAre_flow,
    
final VPopBreZon_flow=VOutOcc_flow,
    
final VMin_flow=VAirSet_flow_min,
    
final VCooMax_flow=VAirCooSet_flow_max,
    
final VHeaMin_flow=VAirHeaSet_flow_min,
    
final VHeaMax_flow=VAirHeaSet_flow_max,
    
final dTDisZonSetMax=dTAirDisHea_max,
    
final zonDisEff_cool=effAirDisCoo,
    
final zonDisEff_heat=effAirDisHea) 
if typ == Buildings.Templates.ZoneEquipment.Types.Controller.G36VAVBoxReheat
    ;
  
Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.CoolingOnly.Controller ctlCoo(
    
final venStd=stdVen,
    
final have_winSen=have_winSen,
    
final have_occSen=have_occSen,
    
final have_CO2Sen=have_CO2Sen,
    
final VOccMin_flow=VOutMinOcc_flow,
    
final VAreMin_flow=VOutMinAre_flow,
    
final VAreBreZon_flow=VOutAre_flow,
    
final VPopBreZon_flow=VOutOcc_flow,
    
final VMin_flow=VAirSet_flow_min,
    
final VCooMax_flow=VAirCooSet_flow_max,
    
final zonDisEff_cool=effAirDisCoo,
    
final zonDisEff_heat=effAirDisHea) 
if typ == Buildings.Templates.ZoneEquipment.Types.Controller.G36VAVBoxCoolingOnly
    ;
  
Buildings.Controls.OBC.ASHRAE.G36.ThermalZones.Setpoints TZonSet(
    
final have_occSen=have_occSen,
    
final have_winSen=have_winSen)
    ;
  
Buildings.Controls.OBC.ASHRAE.G36.ZoneGroups.ZoneStatus zonSta(
    
final have_winSen=have_winSen)
    ;
  
Buildings.Controls.OBC.CDL.Reals.Sources.Constant cooDowWarUpTim(k=3600)
    ;
  
Buildings.Controls.OBC.CDL.Reals.Sources.Constant setAdj(k=0)
    ;
  
Buildings.Controls.OBC.CDL.Reals.Sources.Constant cooSetAdj(k=0)
    ;
  
Buildings.Controls.OBC.CDL.Reals.Sources.Constant heaSetAdj(k=0)
    ;
  
Buildings.Controls.OBC.CDL.Integers.Sources.Constant uCooDemLimLev(k=0)
    ;
  
Buildings.Controls.OBC.CDL.Integers.Sources.Constant uHeaDemLimLev(k=0)
    ;
equation 
  
  
  connect(bus.TZon, ctlReh.TZon);
  
connect(bus.y1Win, ctlReh.u1Win);
  
connect(bus.y1Occ, ctlReh.u1Occ);
  
connect(bus.ppmCO2, ctlReh.ppmCO2);
  
connect(bus.ppmCO2Set, ctlReh.ppmCO2Set);
  
connect(bus.yOpeMod, ctlReh.uOpeMod);
  
connect(bus.TAirDis, ctlReh.TDis);
  
connect(bus.VAirDis_flow, ctlReh.VDis_flow);
  
connect(bus.TAirSup, ctlReh.TSup);
  
connect(bus.TAirSupSet, ctlReh.TSupSet);
  
connect(bus.y1FanSup_actual, ctlReh.u1Fan);
  
connect(bus.y1PlaHeaWat, ctlReh.u1HotPla);
  
connect(bus.yOveFloSet, ctlReh.oveFloSet);
  
connect(bus.yOveDamPos, ctlReh.oveDamPos);
  
connect(bus.y1OveHeaOff, ctlReh.uHeaOff);
  
connect(bus.TZon, ctlCoo.TZon);
  
connect(bus.y1Win, ctlCoo.u1Win);
  
connect(bus.y1Occ, ctlCoo.u1Occ);
  
connect(bus.ppmCO2, ctlCoo.ppmCO2);
  
connect(bus.ppmCO2Set, ctlCoo.ppmCO2Set);
  
connect(bus.yOpeMod, ctlCoo.uOpeMod);
  
connect(bus.TAirDis, ctlCoo.TDis);
  
connect(bus.VAirDis_flow, ctlCoo.VDis_flow);
  
connect(bus.TAirSup, ctlCoo.TSup);
  
connect(bus.y1FanSup_actual, ctlCoo.u1Fan);
  
connect(bus.yOveFloSet, ctlCoo.oveFloSet);
  
connect(bus.yOveDamPos, ctlCoo.oveDamPos);
  
connect(bus.y1Occ, TZonSet.u1Occ);
  
connect(bus.y1Win, TZonSet.u1Win);
  
connect(bus.y1Win, zonSta.u1Win);
  
connect(bus.TZon, zonSta.TZon);
  
connect(bus.TZonCooOccSet, zonSta.TOccCooSet);
  
connect(bus.TZonCooUnoSet, zonSta.TUnoCooSet);
  
connect(bus.TZonHeaOccSet, zonSta.TOccHeaSet);
  
connect(bus.TZonHeaUnoSet, zonSta.TUnoHeaSet);
  
connect(bus.yOpeMod, TZonSet.uOpeMod);
  
connect(bus.dTSetAdj, TZonSet.setAdj);
  
connect(bus.dTHeaSetAdj, TZonSet.heaSetAdj);
  
connect(bus.uCooDemLimLev, TZonSet.uCooDemLimLev);
  
connect(bus.uHeaDemLimLev, TZonSet.uHeaDemLimLev);
  
connect(bus.TZonCooOccSet, TZonSet.TOccCooSet);
  
connect(bus.TZonCooUnoSet, TZonSet.TUnoCooSet);
  
connect(bus.TZonHeaOccSet, TZonSet.TOccHeaSet);
  
connect(bus.TZonHeaUnoSet, TZonSet.TUnoHeaSet);
  
  
connect(ctlReh.yDam, bus.damVAV.y);
  
connect(ctlReh.yVal, bus.coiHea.y);
  
connect(ctlReh.VAdjPopBreZon_flow, bus.VAdjPopBreZon_flow);
  
connect(ctlReh.VAdjAreBreZon_flow, bus.VAdjAreBreZon_flow);
  
connect(ctlReh.VMinOA_flow, bus.VMinOA_flow);
  
connect(ctlReh.VZonAbsMin_flow, bus.VZonAbsMin_flow);
  
connect(ctlReh.VZonDesMin_flow, bus.VZonDesMin_flow);
  
connect(ctlReh.yCO2, bus.yCO2);
  
connect(ctlReh.yZonTemResReq, bus.yReqZonTemRes);
  
connect(ctlReh.yZonPreResReq, bus.yReqZonPreRes);
  
connect(ctlCoo.yDam, bus.damVAV.y);
  
connect(ctlCoo.VAdjPopBreZon_flow, bus.VAdjPopBreZon_flow);
  
connect(ctlCoo.VAdjAreBreZon_flow, bus.VAdjAreBreZon_flow);
  
connect(ctlCoo.VMinOA_flow, bus.VMinOA_flow);
  
connect(ctlCoo.VZonAbsMin_flow, bus.VZonAbsMin_flow);
  
connect(ctlCoo.VZonDesMin_flow, bus.VZonDesMin_flow);
  
connect(ctlCoo.yCO2, bus.yCO2);
  
connect(ctlCoo.yZonTemResReq, bus.yZonTemResReq);
  
connect(ctlCoo.yZonPreResReq, bus.yZonPreResReq);
  
connect(zonSta.yCooTim, bus.yCooTim);
  
connect(zonSta.yWarTim, bus.yWarTim);
  
connect(zonSta.yOccHeaHig, bus.yOccHeaHig);
  
connect(zonSta.yHigOccCoo, bus.yHigOccCoo);
  
connect(zonSta.yUnoHeaHig, bus.yUnoHeaHig);
  
connect(zonSta.yEndSetBac, bus.yEndSetBac);
  
connect(zonSta.yHigUnoCoo, bus.yHigUnoCoo);
  
connect(zonSta.yEndSetUp, bus.yEndSetUp);
  
  
connect(TZonSet.TCooSet, ctlReh.TCooSet);
  
connect(TZonSet.THeaSet, ctlReh.THeaSet);
  
connect(uCooDemLimLev.y, TZonSet.uCooDemLimLev);
  
connect(uHeaDemLimLev.y, TZonSet.uHeaDemLimLev);
  
connect(cooSetAdj.y, TZonSet.cooSetAdj);
  
connect(heaSetAdj.y, TZonSet.heaSetAdj);
  
connect(setAdj.y, TZonSet.setAdj);
  
connect(TZonSet.TCooSet, ctlCoo.TCooSet);
  
connect(TZonSet.THeaSet, ctlCoo.THeaSet);
  
connect(cooDowWarUpTim.y, zonSta.cooDowTim);
  
connect(cooDowWarUpTim.y, zonSta.warUpTim);
end ControllerG36VAVBox;
 
This partial class provides a standard interface for terminal unit controllers.
This partial class provides a standard interface for VAV terminal unit controllers.