Description: "Package with base classes for Buildings.Utilities.IO.BCVTB"

- Home > Modelica

## Buildings.Utilities.IO.BCVTB.BaseClasses

Package with base classes for Buildings.Utilities.IO.BCVTB

### Information

This package contains base classes that are used to construct the models in Buildings.Utilities.IO.BCVTB.

Extends from Modelica.Icons.BasesPackage (Icon for packages containing base classes).

### Package Content

Name | Description
--- | ---
FluidInterface | Partial class for fluid interface that can be coupled to BCVTB
closeClientSocket | Closes the socket for the inter process communication
establishClientSocket | Establishes the client socket connection
exchangeReals | Exchanges values of type Real with the socket

## Buildings.Utilities.IO.BCVTB.BaseClasses.FluidInterface

Partial class for fluid interface that can be coupled to BCVTB

### Information

This is a partial model that is used to construct models for interfacing fluid flow systems with the BCVTB interface.

Extends from Buildings.BaseClasses.BaseIcon (Base icon).

### Parameters

Type | Name | Default | Description
--- | --- | --- | ---
replaceable package Medium | Modelica.Media.Interfaces.Pa... | Medium model within the source
Boolean | use_m_flow_in | false | Get the mass flow rate from the input connector
MassFlowRate | m_flow | 0 | Fixed mass flow rate going out of the fluid port [kg/s]
Nominal condition
MassFlowRate | m_flow_nominal |  | Nominal mass flow rate, used for regularization near zero flow [kg/s]
Advanced
MassFlowRate | m_flow_small | 1E-4*m_flow_nominal | For bi-directional flow, temperature is regularized in the region |m_flow| < m_flow_small (m_flow_small > 0 required) [kg/s]

### Connectors

Type | Name | Description
--- | --- | ---
replaceable package Medium | Medium model within the source
input RealInput | m_flow_in | Prescribed mass flow rate
input RealInput | T_in | Prescribed boundary temperature
FluidPorts_b | ports[nPorts] |
output RealOutput | HSen_flow | Sensible enthalpy flow rate, positive if flow into the component [W]

### Modelica definition

partial model FluidInterface "Partial class for fluid interface that can be coupled to BCVTB" extends Buildings.BaseClasses.BaseIcon; replaceable package Medium = Modelica.Media.Interfaces.PartialMedium "Medium model within the source"; parameter Integer nPorts=0 "Number of ports"; Modelica.Blocks.Interfaces.RealInput m_flow_in if use_m_flow_in "Prescribed mass flow rate"; Modelica.Blocks.Interfaces.RealInput T_in "Prescribed boundary temperature"; parameter Boolean use_m_flow_in = false "Get the mass flow rate from the input connector"; parameter Modelica.SIunits.MassFlowRate m_flow = 0 "Fixed mass flow rate going out of the fluid port"; parameter Modelica.SIunits.MassFlowRate m_flow_nominal(min=0) "Nominal mass flow rate, used for regularization near zero flow"; parameter Modelica.SIunits.MassFlowRate m_flow_small(min=0) = 1E-4*m_flow_nominal "For bi-directional flow, temperature is regularized in the region |m_flow| < m_flow_small (m_flow_small > 0 required)"; Buildings.Fluid.Sensors.EnthalpyFlowRate totEntFloRat[nPorts]( redeclare final package Medium = Medium, each final m_flow_nominal=m_flow_nominal) "Total enthalpy flow rate (sensible plus latent)"; Modelica.Fluid.Interfaces.FluidPorts_b ports[ nPorts]( redeclare each package Medium = Medium, m_flow(each max=if flowDirection==Modelica.Fluid.Types.PortFlowDirection.Leaving then 0 else +Modelica.Constants.inf, each min=if flowDirection==Modelica.Fluid.Types.PortFlowDirection.Entering then 0 else -Modelica.Constants.inf)); Modelica.Blocks.Math.Sum sumHTot_flow(nin=nPorts) "Sum of total enthalpy flow rates"; Modelica.Blocks.Interfaces.RealOutput HSen_flow(unit="W") "Sensible enthalpy flow rate, positive if flow into the component"; Buildings.Fluid.Sources.MassFlowSource_T bou( redeclare package Medium = Medium, final use_T_in=true, final nPorts=nPorts, use_X_in=false, use_C_in=false, final use_m_flow_in=true); protected parameter Modelica.Fluid.Types.PortFlowDirection flowDirection= Modelica.Fluid.Types.PortFlowDirection.Bidirectional "Allowed flow direction"; equation connect(m_flow_in, bou.m_flow_in); if not use_m_flow_in then bou.m_flow_in = m_flow; end if; connect(totEntFloRat.port_b, bou.ports); connect(sumHTot_flow.u, totEntFloRat.H_flow); connect(bou.T_in, T_in); end FluidInterface;

## Buildings.Utilities.IO.BCVTB.BaseClasses.closeClientSocket

Closes the socket for the inter process communication

### Information

Function that closes the inter-process communication.

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
Integer | socketFD |  | Socket file descripter, or a negative value if an error occurred

### Outputs

Type | Name | Description
--- | --- | ---
Integer | retVal | Return value of the function that closes the socket connection

### Modelica definition

function closeClientSocket "Closes the socket for the inter process communication" input Integer socketFD "Socket file descripter, or a negative value if an error occurred"; output Integer retVal "Return value of the function that closes the socket connection"; external "C" retVal=closeModelicaClient(socketFD); end closeClientSocket;

## Buildings.Utilities.IO.BCVTB.BaseClasses.establishClientSocket

Establishes the client socket connection

### Information

Function that establishes a socket connection to the BCVTB.

For the xml file name, on Windows use two backslashes to separate directories, i.e., use

      xmlFileName="C:\\examples\\dymola-room\\socket.cfg"

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
String | xmlFileName | "socket.cfg" | Name of xml file that contains the socket information

### Outputs

Type | Name | Description
--- | --- | ---
Integer | socketFD | Socket file descripter, or a negative value if an error occurred

### Modelica definition

function establishClientSocket "Establishes the client socket connection" input String xmlFileName = "socket.cfg" "Name of xml file that contains the socket information"; output Integer socketFD "Socket file descripter, or a negative value if an error occurred"; external "C" socketFD=establishModelicaClient(xmlFileName); end establishClientSocket;

## Buildings.Utilities.IO.BCVTB.BaseClasses.exchangeReals

Exchanges values of type Real with the socket

### Information

Function to exchange data of type `Real` with the socket. This function must only be called once in each communication interval.

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
Integer | socketFD |  | Socket file descripter
Integer | flaWri |  | Communication flag to write to the socket stream
Time | simTimWri |  | Current simulation time in seconds to write [s]
Real | dblValWri[nDblWri] |  | Double values to write
Integer | nDblWri |  | Number of double values to write
Integer | nDblRea |  | Number of double values to read

### Outputs

Type | Name | Description
--- | --- | ---
Integer | flaRea | Communication flag read from the socket stream
Time | simTimRea | Current simulation time in seconds read from socket [s]
Real | dblValRea[nDblRea] | Double values read from socket
Integer | retVal | The exit value, which is negative if an error occurred

### Modelica definition

function exchangeReals "Exchanges values of type Real with the socket" input Integer socketFD(min=1) "Socket file descripter"; input Integer flaWri "Communication flag to write to the socket stream"; input Modelica.SIunits.Time simTimWri "Current simulation time in seconds to write"; input Real[nDblWri] dblValWri "Double values to write"; input Integer nDblWri "Number of double values to write"; input Integer nDblRea "Number of double values to read"; output Integer flaRea "Communication flag read from the socket stream"; output Modelica.SIunits.Time simTimRea "Current simulation time in seconds read from socket"; output Real[nDblRea] dblValRea "Double values read from socket"; output Integer retVal "The exit value, which is negative if an error occurred"; external "C" retVal=exchangeModelicaClient(socketFD, flaWri, flaRea, simTimWri, dblValWri, nDblWri, simTimRea, dblValRea, nDblRea); end exchangeReals;