From 4efb7ed6e0f307f339714a6b238e52922f193234 Mon Sep 17 00:00:00 2001
From: AntoineGautier
Date: Thu, 31 Aug 2023 15:35:06 +0200
Subject: [PATCH] Check out components from issue1374_template_CHW_final
---
.../Interfaces/PartialPumpMultiple.mo | 55 ++++++++++-
.../Components/Routing/MultipleToMultiple.mo | 94 +++++++++++++------
.../Components/Routing/MultipleToSingle.mo | 50 +++++++---
.../Components/Routing/SingleToMultiple.mo | 47 +++++++---
.../HeatingPlants/HotWater/BoilerPlant.mo | 10 +-
.../HotWater/Interfaces/PartialBoilerPlant.mo | 2 +-
.../HotWater/Validation/BoilerPlant.mo | 3 +-
7 files changed, 198 insertions(+), 63 deletions(-)
diff --git a/Buildings/Templates/Components/Interfaces/PartialPumpMultiple.mo b/Buildings/Templates/Components/Interfaces/PartialPumpMultiple.mo
index 73ea5943369..b372c10e1bb 100644
--- a/Buildings/Templates/Components/Interfaces/PartialPumpMultiple.mo
+++ b/Buildings/Templates/Components/Interfaces/PartialPumpMultiple.mo
@@ -153,6 +153,59 @@ First implementation.
visible=typ<>Buildings.Templates.Components.Types.Pump.None and not have_var and nPum>=4,
extent={{-100, 3*icon_dy+60},{0, 3*icon_dy+160}},
rotation=text_rotation,
- fileName="modelica://Buildings/Resources/Images/Templates/Components/Actuators/MotorStarter.svg")}));
+ fileName="modelica://Buildings/Resources/Images/Templates/Components/Actuators/MotorStarter.svg"),
+ Line(
+ visible=typ<>Buildings.Templates.Components.Types.Pump.None and nPum>=5,
+ points={{-100, 4*icon_dy},{100, 4*icon_dy}},
+ color={0,0,0},
+ thickness=5),
+ Line( visible=typ<>Buildings.Templates.Components.Types.Pump.None and nPum>=5,
+ points={{-50, 4*icon_dy+60},{-50, 4*icon_dy+22}},
+ color={0,0,0}),
+ Bitmap(
+ visible=typ<>Buildings.Templates.Components.Types.Pump.None and nPum>=5,
+ extent={{-100, 4*icon_dy-70},{0, 4*icon_dy+30}},
+ fileName="modelica://Buildings/Resources/Images/Templates/Components/Pumps/Single.svg"),
+ Bitmap(
+ visible=typ<>Buildings.Templates.Components.Types.Pump.None and have_valChe and nPum>=5,
+ extent={{20, 4*icon_dy-40},{100, 4*icon_dy+40}},
+ fileName="modelica://Buildings/Resources/Images/Templates/Components/Valves/Check.svg"),
+ Bitmap(
+ visible=typ<>Buildings.Templates.Components.Types.Pump.None and have_var and nPum>=5,
+ extent={{-100, 4*icon_dy+60},{0, 4*icon_dy+160}},
+ rotation=text_rotation,
+ fileName="modelica://Buildings/Resources/Images/Templates/Components/Actuators/VFD.svg"),
+ Bitmap(
+ visible=typ<>Buildings.Templates.Components.Types.Pump.None and not have_var and nPum>=5,
+ extent={{-100, 4*icon_dy+60},{0, 4*icon_dy+160}},
+ rotation=text_rotation,
+ fileName="modelica://Buildings/Resources/Images/Templates/Components/Actuators/MotorStarter.svg"),
+ Line(
+ visible=typ<>Buildings.Templates.Components.Types.Pump.None and nPum>=6,
+ points={{-100, 5*icon_dy},{100, 5*icon_dy}},
+ color={0,0,0},
+ thickness=5),
+ Line( visible=typ<>Buildings.Templates.Components.Types.Pump.None and nPum>=6,
+ points={{-50, 5*icon_dy+60},{-50, 5*icon_dy+22}},
+ color={0,0,0}),
+ Bitmap(
+ visible=typ<>Buildings.Templates.Components.Types.Pump.None and nPum>=6,
+ extent={{-100, 5*icon_dy-70},{0, 5*icon_dy+30}},
+ fileName="modelica://Buildings/Resources/Images/Templates/Components/Pumps/Single.svg"),
+ Bitmap(
+ visible=typ<>Buildings.Templates.Components.Types.Pump.None and have_valChe and nPum>=6,
+ extent={{20, 5*icon_dy-40},{100, 5*icon_dy+40}},
+ fileName="modelica://Buildings/Resources/Images/Templates/Components/Valves/Check.svg"),
+ Bitmap(
+ visible=typ<>Buildings.Templates.Components.Types.Pump.None and have_var and nPum>=6,
+ extent={{-100, 5*icon_dy+60},{0, 5*icon_dy+160}},
+ rotation=text_rotation,
+ fileName="modelica://Buildings/Resources/Images/Templates/Components/Actuators/VFD.svg"),
+ Bitmap(
+ visible=typ<>Buildings.Templates.Components.Types.Pump.None and not have_var and nPum>=6,
+ extent={{-100, 5*icon_dy+60},{0, 5*icon_dy+160}},
+ rotation=text_rotation,
+ fileName="modelica://Buildings/Resources/Images/Templates/Components/Actuators/MotorStarter.svg")
+}));
end PartialPumpMultiple;
diff --git a/Buildings/Templates/Components/Routing/MultipleToMultiple.mo b/Buildings/Templates/Components/Routing/MultipleToMultiple.mo
index e23e8ac3d7c..c94efade48e 100644
--- a/Buildings/Templates/Components/Routing/MultipleToMultiple.mo
+++ b/Buildings/Templates/Components/Routing/MultipleToMultiple.mo
@@ -42,16 +42,17 @@ model MultipleToMultiple
annotation (
Dialog(tab="Advanced", group="Diagnostics"), HideResult=true);
- parameter Integer icon_extend = 0
- "Extend lines by this amount in x-direction in icon layer: >0 at outlet, <0 at inlet"
- annotation(Dialog(tab="Graphics", enable=false));
- parameter Integer icon_dy = 100
- "Distance in y-direction between each branch in icon layer"
- annotation(Dialog(tab="Graphics", enable=false));
- parameter Buildings.Templates.Components.Types.IconPipe icon_pipe =
+ constant Integer icon_xinl = -100
+ "Minimum x-coordinate of inlet connection lines";
+ constant Integer icon_xout = 100
+ "Maximum x-coordinate of outlet connection lines";
+ constant Integer icon_offset = 0
+ "Offset in y-direction between inlet and outlet in icon layer";
+ constant Integer icon_dy = 100
+ "Distance in y-direction between each branch in icon layer";
+ constant Buildings.Templates.Components.Types.IconPipe icon_pipe =
Buildings.Templates.Components.Types.IconPipe.Supply
- "Pipe symbol"
- annotation(Dialog(tab="Graphics", enable=false));
+ "Pipe symbol";
Modelica.Fluid.Interfaces.FluidPorts_a ports_a[nPorts_a](
redeclare each final package Medium = Medium,
@@ -160,49 +161,84 @@ equation
Text( extent={{-149,-114},{151,-154}},
textColor={0,0,255},
textString="%name"),
- Line( points={{-100 + min(0,icon_extend), 0}, {100 + max(0, icon_extend),0}},
+ Line( points={{-100, 0}, {100, 0}},
+ color={0,127,255},
+ visible=icon_pipe==Buildings.Templates.Components.Types.IconPipe.None),
+ Line( points={{icon_xinl, 0}, {0,0}},
color={0,0,0},
thickness=5,
+ visible=icon_pipe<>Buildings.Templates.Components.Types.IconPipe.None,
pattern=if icon_pipe==Buildings.Templates.Components.Types.IconPipe.Supply
then LinePattern.Solid else LinePattern.Dash),
- Line( visible=nPorts_a>=2,
- points=if have_comLeg then
- {{-100 + min(0,icon_extend), icon_dy}, {-40,icon_dy}, {-40, 0}}
- else {{-100 + min(0,icon_extend),icon_dy}, {100 + max(0, icon_extend),icon_dy}},
+ Line( visible=nPorts_a>=2 and icon_pipe<>Buildings.Templates.Components.Types.IconPipe.None,
+ points={{icon_xinl, icon_dy}, {0,icon_dy}},
color={0,0,0},
thickness=5,
pattern=if icon_pipe==Buildings.Templates.Components.Types.IconPipe.Supply
then LinePattern.Solid else LinePattern.Dash),
- Line( visible=nPorts_a>=3,
- points=if have_comLeg then
- {{-100 + min(0,icon_extend), 2*icon_dy}, {-40, 2*icon_dy}, {-40, icon_dy}}
- else {{-100 + min(0,icon_extend),2*icon_dy}, {100 + max(0, icon_extend),2*icon_dy}},
+ Line( visible=nPorts_a>=3 and icon_pipe<>Buildings.Templates.Components.Types.IconPipe.None,
+ points={{icon_xinl, 2*icon_dy}, {0, 2*icon_dy}},
color={0,0,0},
thickness=5,
pattern=if icon_pipe==Buildings.Templates.Components.Types.IconPipe.Supply
then LinePattern.Solid else LinePattern.Dash),
- Line( visible=nPorts_a>=4,
- points=if have_comLeg then
- {{-100 + min(0,icon_extend), 3*icon_dy}, {-40, 3*icon_dy}, {-40, 2*icon_dy}}
- else {{-100 + min(0,icon_extend),3*icon_dy}, {100 + max(0, icon_extend),3*icon_dy}},
+ Line( visible=nPorts_a>=4 and icon_pipe<>Buildings.Templates.Components.Types.IconPipe.None,
+ points={{icon_xinl, 3*icon_dy}, {0, 3*icon_dy}},
color={0,0,0},
thickness=5,
pattern=if icon_pipe==Buildings.Templates.Components.Types.IconPipe.Supply
then LinePattern.Solid else LinePattern.Dash),
- Line( visible=nPorts_b>=2 and have_comLeg,
- points={{40, 0}, {40, icon_dy}, {100 + max(0, icon_extend), icon_dy}},
+ Line( visible=nPorts_a>=5 and icon_pipe<>Buildings.Templates.Components.Types.IconPipe.None,
+ points={{icon_xinl, 4*icon_dy}, {0, 4*icon_dy}},
color={0,0,0},
thickness=5,
pattern=if icon_pipe==Buildings.Templates.Components.Types.IconPipe.Supply
then LinePattern.Solid else LinePattern.Dash),
- Line( visible=nPorts_b>=3 and have_comLeg,
- points={{40, icon_dy}, {40, 2*icon_dy}, {100 + max(0, icon_extend), 2*icon_dy}},
+ Line( visible=nPorts_a>=6 and icon_pipe<>Buildings.Templates.Components.Types.IconPipe.None,
+ points={{icon_xinl, 5*icon_dy}, {0, 5*icon_dy}},
color={0,0,0},
thickness=5,
pattern=if icon_pipe==Buildings.Templates.Components.Types.IconPipe.Supply
then LinePattern.Solid else LinePattern.Dash),
- Line( visible=nPorts_b>=4 and have_comLeg,
- points={{40, 2*icon_dy}, {40, 3*icon_dy}, {100 + max(0, icon_extend), 3*icon_dy}},
+ Line( points={{0, icon_offset}, {icon_xout,icon_offset}},
+ color={0,0,0},
+ thickness=5,
+ visible=icon_pipe<>Buildings.Templates.Components.Types.IconPipe.None,
+ pattern=if icon_pipe==Buildings.Templates.Components.Types.IconPipe.Supply
+ then LinePattern.Solid else LinePattern.Dash),
+ Line( visible=nPorts_b>=2 and icon_pipe<>Buildings.Templates.Components.Types.IconPipe.None,
+ points={{0, icon_offset + 1*icon_dy}, {icon_xout,icon_offset + 1*icon_dy}},
+ color={0,0,0},
+ thickness=5,
+ pattern=if icon_pipe==Buildings.Templates.Components.Types.IconPipe.Supply
+ then LinePattern.Solid else LinePattern.Dash),
+ Line( visible=nPorts_b>=3 and icon_pipe<>Buildings.Templates.Components.Types.IconPipe.None,
+ points={{0, icon_offset + 2*icon_dy}, {icon_xout,icon_offset + 2*icon_dy}},
+ color={0,0,0},
+ thickness=5,
+ pattern=if icon_pipe==Buildings.Templates.Components.Types.IconPipe.Supply
+ then LinePattern.Solid else LinePattern.Dash),
+ Line( visible=nPorts_b>=4 and icon_pipe<>Buildings.Templates.Components.Types.IconPipe.None,
+ points={{0, icon_offset + 3*icon_dy}, {icon_xout,icon_offset + 3*icon_dy}},
+ color={0,0,0},
+ thickness=5,
+ pattern=if icon_pipe==Buildings.Templates.Components.Types.IconPipe.Supply
+ then LinePattern.Solid else LinePattern.Dash),
+ Line( visible=nPorts_b>=5 and icon_pipe<>Buildings.Templates.Components.Types.IconPipe.None,
+ points={{0, icon_offset + 4*icon_dy}, {icon_xout,icon_offset + 4*icon_dy}},
+ color={0,0,0},
+ thickness=5,
+ pattern=if icon_pipe==Buildings.Templates.Components.Types.IconPipe.Supply
+ then LinePattern.Solid else LinePattern.Dash),
+ Line( visible=nPorts_b>=6 and icon_pipe<>Buildings.Templates.Components.Types.IconPipe.None,
+ points={{0, icon_offset + 5*icon_dy}, {icon_xout,icon_offset + 5*icon_dy}},
+ color={0,0,0},
+ thickness=5,
+ pattern=if icon_pipe==Buildings.Templates.Components.Types.IconPipe.Supply
+ then LinePattern.Solid else LinePattern.Dash),
+ Line( visible=icon_pipe<>Buildings.Templates.Components.Types.IconPipe.None and
+ max(nPorts_a, nPorts_b)>=2 and have_comLeg,
+ points={{0, 0}, {0, icon_offset + (max(nPorts_a, nPorts_b)-1)*icon_dy}},
color={0,0,0},
thickness=5,
pattern=if icon_pipe==Buildings.Templates.Components.Types.IconPipe.Supply
@@ -221,7 +257,7 @@ First implementation.
This is a model of a many-to-many fluid connector with an
optional control volume, and an optional mixing port (common leg).
It is typically used to connect parallel pumps with parallel
-chillers or boilers.
+chillers or boilers.
Selecting a mixing port allows modeling a headered pumping arrangement.
Without any mixing port, a dedicated pumping arrangement is modeled.
diff --git a/Buildings/Templates/Components/Routing/MultipleToSingle.mo b/Buildings/Templates/Components/Routing/MultipleToSingle.mo
index df088e2bfe3..a42b8bcda4e 100644
--- a/Buildings/Templates/Components/Routing/MultipleToSingle.mo
+++ b/Buildings/Templates/Components/Routing/MultipleToSingle.mo
@@ -35,16 +35,13 @@ model MultipleToSingle "Multiple inlet port, single outlet ports"
Dialog(tab="Advanced", group="Diagnostics"),
HideResult=true);
- parameter Integer icon_offset = 0
- "Offset in y-direction between inlet and outlet in icon layer"
- annotation(Dialog(tab="Graphics", enable=false));
- parameter Integer icon_dy = 100
- "Distance in y-direction between each branch in icon layer"
- annotation(Dialog(tab="Graphics", enable=false));
- parameter Buildings.Templates.Components.Types.IconPipe icon_pipe =
- Buildings.Templates.Components.Types.IconPipe.Supply
- "Pipe symbol"
- annotation(Dialog(tab="Graphics", enable=false));
+ constant Integer icon_offset = 0
+ "Offset in y-direction between inlet and outlet in icon layer";
+ constant Integer icon_dy = 100
+ "Distance in y-direction between each branch in icon layer";
+ constant Buildings.Templates.Components.Types.IconPipe icon_pipe =
+ Buildings.Templates.Components.Types.IconPipe.None
+ "Pipe symbol";
Modelica.Fluid.Interfaces.FluidPorts_a ports_a[nPorts](
redeclare each final package Medium = Medium,
@@ -100,8 +97,7 @@ equation
-20,20},{-10,20}}, color={0,127,255}));
end for;
connect(ports_a, del.ports[1:nPorts]) annotation (Line(points={{-100,0},{-20,0},
- {-20,-20},{0,-20}},
- color={0,127,255}));
+ {-20,-20},{0,-20}}, color={0,127,255}));
connect(del.ports[nPorts+1], port_b) annotation (Line(points={{0,-20},{20,-20},
{20,0},{100,0}}, color={0,127,255}));
connect(pasSte.port_b, port_b) annotation (Line(points={{10,20},{20,20},{20,0},
@@ -112,12 +108,16 @@ equation
Text( extent={{-149,-114},{151,-154}},
textColor={0,0,255},
textString="%name"),
+ Line( points={{-100, 0}, {100, 0}},
+ color={0,127,255},
+ visible=icon_pipe==Buildings.Templates.Components.Types.IconPipe.None),
Line( points={{-100, icon_offset}, {0, icon_offset}, {0,0}, {100,0}},
color={0,0,0},
thickness=5,
+ visible=icon_pipe<>Buildings.Templates.Components.Types.IconPipe.None,
pattern=if icon_pipe==Buildings.Templates.Components.Types.IconPipe.Supply
then LinePattern.Solid else LinePattern.Dash),
- Line( visible=nPorts>=2,
+ Line( visible=nPorts>=2 and icon_pipe<>Buildings.Templates.Components.Types.IconPipe.None,
points=if icon_offset*icon_dy>=0 then
{{0,icon_offset},{0,icon_offset+icon_dy},{-100,icon_offset+icon_dy}}
elseif icon_offset>0 and icon_offset+icon_dy<0 or icon_offset<0 and icon_offset+icon_dy>0 then
@@ -127,7 +127,7 @@ equation
pattern=if icon_pipe==Buildings.Templates.Components.Types.IconPipe.Supply
then LinePattern.Solid else LinePattern.Dash,
thickness=5),
- Line( visible=nPorts>=3,
+ Line( visible=nPorts>=3 and icon_pipe<>Buildings.Templates.Components.Types.IconPipe.None,
points=if icon_offset*icon_dy>=0 then
{{0, icon_offset+icon_dy},{0, icon_offset+2*icon_dy},{-100, icon_offset+2*icon_dy}}
elseif icon_offset>0 and icon_offset+2*icon_dy<0 or icon_offset<0 and icon_offset+2*icon_dy>0 then
@@ -137,7 +137,7 @@ equation
pattern=if icon_pipe==Buildings.Templates.Components.Types.IconPipe.Supply
then LinePattern.Solid else LinePattern.Dash,
thickness=5),
- Line( visible=nPorts>=4,
+ Line( visible=nPorts>=4 and icon_pipe<>Buildings.Templates.Components.Types.IconPipe.None,
points=if icon_offset*icon_dy>=0 then
{{0, icon_offset+2*icon_dy},{0, icon_offset+3*icon_dy},{-100, icon_offset+3*icon_dy}}
elseif icon_offset>0 and icon_offset+3*icon_dy<0 or icon_offset<0 and icon_offset+3*icon_dy>0 then
@@ -146,6 +146,26 @@ equation
color={0,0,0},
pattern=if icon_pipe==Buildings.Templates.Components.Types.IconPipe.Supply
then LinePattern.Solid else LinePattern.Dash,
+ thickness=5),
+ Line( visible=nPorts>=5 and icon_pipe<>Buildings.Templates.Components.Types.IconPipe.None,
+ points=if icon_offset*icon_dy>=0 then
+ {{0, icon_offset+3*icon_dy},{0, icon_offset+4*icon_dy},{-100, icon_offset+4*icon_dy}}
+ elseif icon_offset>0 and icon_offset+4*icon_dy<0 or icon_offset<0 and icon_offset+4*icon_dy>0 then
+ {{0, 0},{0, icon_offset+4*icon_dy},{-100, icon_offset+4*icon_dy}}
+ else {{0, icon_offset+4*icon_dy},{-100, icon_offset+4*icon_dy}},
+ color={0,0,0},
+ pattern=if icon_pipe==Buildings.Templates.Components.Types.IconPipe.Supply
+ then LinePattern.Solid else LinePattern.Dash,
+ thickness=5),
+ Line( visible=nPorts>=6 and icon_pipe<>Buildings.Templates.Components.Types.IconPipe.None,
+ points=if icon_offset*icon_dy>=0 then
+ {{0, icon_offset+4*icon_dy},{0, icon_offset+5*icon_dy},{-100, icon_offset+5*icon_dy}}
+ elseif icon_offset>0 and icon_offset+5*icon_dy<0 or icon_offset<0 and icon_offset+5*icon_dy>0 then
+ {{0, 0},{0, icon_offset+5*icon_dy},{-100, icon_offset+5*icon_dy}}
+ else {{0, icon_offset+5*icon_dy},{-100, icon_offset+5*icon_dy}},
+ color={0,0,0},
+ pattern=if icon_pipe==Buildings.Templates.Components.Types.IconPipe.Supply
+ then LinePattern.Solid else LinePattern.Dash,
thickness=5)}),
Diagram(
coordinateSystem(preserveAspectRatio=false)),
diff --git a/Buildings/Templates/Components/Routing/SingleToMultiple.mo b/Buildings/Templates/Components/Routing/SingleToMultiple.mo
index 0c8996d1449..6bfd895ae96 100644
--- a/Buildings/Templates/Components/Routing/SingleToMultiple.mo
+++ b/Buildings/Templates/Components/Routing/SingleToMultiple.mo
@@ -35,16 +35,13 @@ model SingleToMultiple "Single inlet port, multiple outlet ports"
Dialog(tab="Advanced", group="Diagnostics"),
HideResult=true);
- parameter Integer icon_offset = 0
- "Offset in y-direction between inlet and outlet in icon layer"
- annotation(Dialog(tab="Graphics", enable=false));
- parameter Integer icon_dy = 100
- "Distance in y-direction between each branch in icon layer"
- annotation(Dialog(tab="Graphics", enable=false));
- parameter Buildings.Templates.Components.Types.IconPipe icon_pipe =
- Buildings.Templates.Components.Types.IconPipe.Supply
- "Pipe symbol"
- annotation(Dialog(tab="Graphics", enable=false));
+ constant Integer icon_offset = 0
+ "Offset in y-direction between inlet and outlet in icon layer";
+ constant Integer icon_dy = 100
+ "Distance in y-direction between each branch in icon layer";
+ constant Buildings.Templates.Components.Types.IconPipe icon_pipe =
+ Buildings.Templates.Components.Types.IconPipe.None
+ "Pipe symbol";
Modelica.Fluid.Interfaces.FluidPort_a port_a(
redeclare final package Medium = Medium,
@@ -114,12 +111,16 @@ equation
Text( extent={{-149,-114},{151,-154}},
textColor={0,0,255},
textString="%name"),
+ Line( points={{-100, 0}, {100, 0}},
+ color={0,127,255},
+ visible=icon_pipe==Buildings.Templates.Components.Types.IconPipe.None),
Line( points={{-100,0},{0,0},{0,icon_offset},{100,icon_offset}},
color={0,0,0},
thickness=5,
+ visible=icon_pipe<>Buildings.Templates.Components.Types.IconPipe.None,
pattern=if icon_pipe==Buildings.Templates.Components.Types.IconPipe.Supply
then LinePattern.Solid else LinePattern.Dash),
- Line( visible=nPorts>=2,
+ Line( visible=nPorts>=2 and icon_pipe<>Buildings.Templates.Components.Types.IconPipe.None,
points=if icon_offset*icon_dy>=0 then
{{0, icon_offset}, {0,icon_offset+icon_dy}, {100,icon_offset+icon_dy}}
elseif icon_offset>0 and icon_offset+icon_dy<0 or icon_offset<0 and icon_offset+icon_dy>0 then
@@ -129,7 +130,7 @@ equation
pattern=if icon_pipe==Buildings.Templates.Components.Types.IconPipe.Supply
then LinePattern.Solid else LinePattern.Dash,
thickness=5),
- Line( visible=nPorts>=3,
+ Line( visible=nPorts>=3 and icon_pipe<>Buildings.Templates.Components.Types.IconPipe.None,
points=if icon_offset*icon_dy>=0 then
{{0, icon_offset+icon_dy},{0, icon_offset+2*icon_dy},{100, icon_offset+2*icon_dy}}
elseif icon_offset>0 and icon_offset+2*icon_dy<0 or icon_offset<0 and icon_offset+2*icon_dy>0 then
@@ -139,7 +140,7 @@ equation
pattern=if icon_pipe==Buildings.Templates.Components.Types.IconPipe.Supply
then LinePattern.Solid else LinePattern.Dash,
thickness=5),
- Line( visible=nPorts>=4,
+ Line( visible=nPorts>=4 and icon_pipe<>Buildings.Templates.Components.Types.IconPipe.None,
points=if icon_offset*icon_dy>=0 then
{{0, icon_offset+2*icon_dy},{0, icon_offset+3*icon_dy},{100, icon_offset+3*icon_dy}}
elseif icon_offset>0 and icon_offset+3*icon_dy<0 or icon_offset<0 and icon_offset+3*icon_dy>0 then
@@ -148,6 +149,26 @@ equation
color={0,0,0},
pattern=if icon_pipe==Buildings.Templates.Components.Types.IconPipe.Supply
then LinePattern.Solid else LinePattern.Dash,
+ thickness=5),
+ Line( visible=nPorts>=5 and icon_pipe<>Buildings.Templates.Components.Types.IconPipe.None,
+ points=if icon_offset*icon_dy>=0 then
+ {{0, icon_offset+3*icon_dy},{0, icon_offset+4*icon_dy},{100, icon_offset+4*icon_dy}}
+ elseif icon_offset>0 and icon_offset+4*icon_dy<0 or icon_offset<0 and icon_offset+4*icon_dy>0 then
+ {{0, 0},{0, icon_offset+4*icon_dy},{100, icon_offset+4*icon_dy}}
+ else {{0, icon_offset+4*icon_dy},{100, icon_offset+4*icon_dy}},
+ color={0,0,0},
+ pattern=if icon_pipe==Buildings.Templates.Components.Types.IconPipe.Supply
+ then LinePattern.Solid else LinePattern.Dash,
+ thickness=5),
+ Line( visible=nPorts>=6 and icon_pipe<>Buildings.Templates.Components.Types.IconPipe.None,
+ points=if icon_offset*icon_dy>=0 then
+ {{0, icon_offset+4*icon_dy},{0, icon_offset+5*icon_dy},{100, icon_offset+5*icon_dy}}
+ elseif icon_offset>0 and icon_offset+5*icon_dy<0 or icon_offset<0 and icon_offset+5*icon_dy>0 then
+ {{0, 0},{0, icon_offset+5*icon_dy},{100, icon_offset+5*icon_dy}}
+ else {{0, icon_offset+5*icon_dy},{100, icon_offset+5*icon_dy}},
+ color={0,0,0},
+ pattern=if icon_pipe==Buildings.Templates.Components.Types.IconPipe.Supply
+ then LinePattern.Solid else LinePattern.Dash,
thickness=5)}),
Diagram(
coordinateSystem(preserveAspectRatio=false)),
diff --git a/Buildings/Templates/HeatingPlants/HotWater/BoilerPlant.mo b/Buildings/Templates/HeatingPlants/HotWater/BoilerPlant.mo
index ceacf15d110..c6238f5ebfb 100644
--- a/Buildings/Templates/HeatingPlants/HotWater/BoilerPlant.mo
+++ b/Buildings/Templates/HeatingPlants/HotWater/BoilerPlant.mo
@@ -59,7 +59,8 @@ model BoilerPlant "Boiler plant"
final energyDynamics=energyDynamics,
final tau=tau,
final allowFlowReversal=allowFlowReversal,
- icon_extend=-300,
+ icon_pipe=Buildings.Templates.Components.Types.IconPipe.Supply,
+ icon_xinl=-400,
icon_dy=-300) if have_boiCon
"Primary HW pumps inlet manifold"
annotation (Placement(transformation(extent={{-110,-150},{-90,-130}})));
@@ -81,6 +82,7 @@ model BoilerPlant "Boiler plant"
final energyDynamics=energyDynamics,
final tau=tau,
final allowFlowReversal=allowFlowReversal,
+ icon_pipe=Buildings.Templates.Components.Types.IconPipe.Supply,
icon_dy=-300) if have_boiCon
"Primary HW pumps outlet manifold"
annotation (Placement(transformation(extent={{-70,-150},{-50,-130}})));
@@ -252,7 +254,8 @@ model BoilerPlant "Boiler plant"
final energyDynamics=energyDynamics,
final tau=tau,
final allowFlowReversal=allowFlowReversal,
- icon_extend=-300,
+ icon_pipe=Buildings.Templates.Components.Types.IconPipe.Supply,
+ icon_xinl=-400,
icon_dy=-300) if have_boiNon
"Primary HW pumps inlet manifold"
annotation (Placement(transformation(extent={{-110,-10},{-90,10}})));
@@ -274,6 +277,7 @@ model BoilerPlant "Boiler plant"
final energyDynamics=energyDynamics,
final tau=tau,
final allowFlowReversal=allowFlowReversal,
+ icon_pipe=Buildings.Templates.Components.Types.IconPipe.Supply,
icon_dy=-300) if have_boiNon
"Primary HW pumps outlet manifold"
annotation (Placement(transformation(extent={{-70,-10},{-50,10}})));
@@ -419,6 +423,7 @@ model BoilerPlant "Boiler plant"
final m_flow_nominal=mHeaWat_flow_nominal,
final energyDynamics=energyDynamics,
final allowFlowReversal=allowFlowReversal,
+ icon_pipe=Buildings.Templates.Components.Types.IconPipe.Supply,
icon_dy=-300)
if have_pumHeaWatSec
"Secondary HW pumps inlet manifold"
@@ -442,6 +447,7 @@ model BoilerPlant "Boiler plant"
final energyDynamics=energyDynamics,
final tau=tau,
final allowFlowReversal=allowFlowReversal,
+ icon_pipe=Buildings.Templates.Components.Types.IconPipe.Supply,
icon_dy=-300)
if have_pumHeaWatSec
"Secondary HW pumps outlet manifold"
diff --git a/Buildings/Templates/HeatingPlants/HotWater/Interfaces/PartialBoilerPlant.mo b/Buildings/Templates/HeatingPlants/HotWater/Interfaces/PartialBoilerPlant.mo
index 7307339183b..60d7015b8b1 100644
--- a/Buildings/Templates/HeatingPlants/HotWater/Interfaces/PartialBoilerPlant.mo
+++ b/Buildings/Templates/HeatingPlants/HotWater/Interfaces/PartialBoilerPlant.mo
@@ -461,7 +461,7 @@ initial equation
fillColor={255,255,255})}),
Diagram(coordinateSystem(
preserveAspectRatio=false,
- extent={{-300,-280},{300,280}})),
+ extent={{-300,-300},{300,300}})),
Documentation(revisions="
-
diff --git a/Buildings/Templates/HeatingPlants/HotWater/Validation/BoilerPlant.mo b/Buildings/Templates/HeatingPlants/HotWater/Validation/BoilerPlant.mo
index 852b598fcae..c08266ba3be 100644
--- a/Buildings/Templates/HeatingPlants/HotWater/Validation/BoilerPlant.mo
+++ b/Buildings/Templates/HeatingPlants/HotWater/Validation/BoilerPlant.mo
@@ -5,10 +5,9 @@ model BoilerPlant
Buildings.Templates.HeatingPlants.HotWater.Validation.BoilerPlantOpenLoop(
BOI(
typ=Buildings.Templates.HeatingPlants.HotWater.Types.Boiler.Hybrid,
- nBoiCon_select=3,
+ nBoiCon_select=2,
nBoiNon_select=2,
typPumHeaWatPriCon=Buildings.Templates.HeatingPlants.HotWater.Types.PumpsPrimary.Variable,
-
typPumHeaWatPriNon=Buildings.Templates.HeatingPlants.HotWater.Types.PumpsPrimary.Constant,
typArrPumHeaWatPriCon_select=Buildings.Templates.Components.Types.PumpArrangement.Headered,
typPumHeaWatSec2_select=Buildings.Templates.HeatingPlants.HotWater.Types.PumpsSecondary.Centralized,