Skip to main content
Version: 27.0

FlowObject.InputOutput

Description

Allows access to the input or output ports for this FloWorks object.

Properties

PropertyDescription
amountReturns the current cumulative input or output amount.
rateGets the current flow rate.
maxRateGets or sets the maximum allowed flow rate.
triggerAmountDeprecated. Use stats.input or stats.outut Tracked Variables. Gets or sets the amount at which the input or output trigger logic will execute.
triggerIntervalDeprecated. Use stats.input or stats.outut Tracked Variables. Gets or sets the interval at which the input or output trigger logic will execute.
portsAccesses the input or output ports

Methods

MethodDescription
closeBlock all flow input ports.
openUnblock all flow input ports.

Details

FlowObject.InputOutput.amount

readonly amount

Description

Returns the current cumulative input or output amount.

Calling flowObject.input.amount is equivalent to flowObject.stats.input.

Calling flowObject.output.amount is equivalent to flowObject.stats.output.

FlowObject.InputOutput.rate

readonly rate

Description

Gets the current flow rate.

Due to other constraints in the network, the flow rate may always be lower than the specified maximum.

This property reads the currently assigned flow rate. To get or set the preferred rate (the maximum rate in absence of other constraints), use maxrate.

Note that the flow rate is only changed after the system has had a chance to recalculate, so the following code will return the current flow rate: FlowObject pump = model.find("FlowPump1"); // Assume that at the moment, pump.input.rate == 1. pump.input.maxRate = 0.5; // The following will return 1. The flow rate will be updated // only after the next Flow Control calculation event. return pump.input.rate;

For non-content-holding objects, such as pumps and valves, you can request either the input or the output rate - the other one will be adjusted automatically.

FlowObject.InputOutput.maxRate

double maxRate

Description

Gets or sets the maximum allowed flow rate.

This property requests or changes the maximum possible flow rate. To get actual rate (which may be lower due to other constraints in the network), use rate.

Note that the flow rate is only changed after the system has had a chance to recalculate, so the following code will return the current flow rate: FlowObject pump = model.find("FlowPump1"); // Assume that at the moment, pump.input.rate == 1. pump.input.maxRate = 0.5; // The following will return 1. The flow rate will be updated // only after the next Flow Control calculation event. return pump.input.rate;

For non-content-holding objects, such as pumps and valves, you can request or set either the input or the output maximum rate - the other one will be adjusted automatically.

FlowObject.InputOutput.triggerAmount

double triggerAmount

Description

Deprecated. Use stats.input or stats.outut Tracked Variables. Gets or sets the amount at which the input or output trigger logic will execute.

NOTE: THIS PROPERTY IS DEPRECATED. Please use the stats.input or stats.outut Tracked Variables.

This property gets or sets the total cumulative inflow or outflow amount at which the On Input or On Output trigger logic will execute.

Previously, you would call GetFlowInputTriggerAmount, SetFlowInputTriggerAmount or GetFlowOutputTriggerAmount, SetFlowOutputTriggerAmount to do this.

If no trigger amount has been set yet, the property will return 0.

FlowObject.InputOutput.triggerInterval

double triggerInterval

Description

Deprecated. Use stats.input or stats.outut Tracked Variables. Gets or sets the interval at which the input or output trigger logic will execute.

NOTE: THIS PROPERTY IS DEPRECATED. Please use the stats.input or stats.outut Tracked Variables.

This property gets or sets the interval at which the On Input or On Output trigger logic will be scheduled.

If you have previously scheduled a trigger which has not executed yet, the interval will take effect once that scheduled trigger executes. Otherwise, the trigger will be automatically scheduled based on the current input or output. See below for examples.

Set the property to 0 to disable the interval. The last scheduled trigger, if any, will still execute. If you set this from within the On Input or On Output, no new trigger will be executed.

If you manually set the trigger amount after the interval, the interval will also be canceled.

Examples:

// Assume we are at the start of the simulation FlowObject source = model.find( "FlowSource1" );

// Fire the On Output trigger automatically at // an output quantity of 10, 20, 30, etc. source.output.triggerInterval = 10;

// Cancel all those triggers, and only execute // manually at output quantity 15. source.output.triggerAmount = 15;

// In addition, automatically schedule triggers // at quantity 15, 25, 35, etc. (This works because // we have previously set a trigger amount which // has not been reached yet.) source.output.triggerInterval = 10;

// Still execute the next trigger at output // quantity 15, but cancel the events at 25, 35, etc. source.output.triggerInterval = 0;

FlowObject.InputOutput.ports

ports

Description

Accesses the input or output ports

You can use the following properties and methods:

Opening and closing the input or output

To open or close all input / output of the object, use the following code:

obj.input.ports.close(); obj.output.ports.open();

This is the FloWorks-equivalent of the FlexSim commands closeallip, openallip and closeallop, openallop.

You should not use those FlexSim commands: calling ports.open() and ports.close() ensures that all flow rates in the network are recalculated while openallip and similar functions do not.

If you want to close specific ports, use the "bracket" notation below to access a single port. If you are looking for the equivalent of closeinput, use obj.input/output.[close](flow-object-input-output.html#method-close).

Accessing a specific port

The number of input or output ports can be retrieved from the length property. To access a specific port, use the "bracket" notation:

// Open only the first input port: obj.input.ports[ 1 ].select();

// Set the flow ratio through the last output port: int numOfPorts = obj.output.ports.length; obj.output.ports[ numOfPorts ].ratio = 0.5;

See the reference for FlowObject.Port to see which properties and methods are available on the result of the "bracket" operator.

FlowObject.InputOutput.close()

void close( )

Description

Block all flow input ports.

This is the FloWorks-equivalent of the FlexSim commands closeinput or closeoutput.

You should not use those FlexSim commands: calling input.close() and output.close() ensures that all flow rates in the network are recalculated while closeinput and similar functions do not.

If you want to close specific ports, use the ports property: obj.input.ports.close() or obj.output.ports[1].close().

FlowObject.InputOutput.open()

void open( )

Description

Unblock all flow input ports.

This is the FloWorks-equivalent of the FlexSim commands openinput or openoutput.

You should not use those FlexSim commands: calling input.open() and output.open() ensures that all flow rates in the network are recalculated while openinput and similar functions do not.

If you want to close specific ports, use the ports property: obj.input.ports.open() or obj.output.ports[1].open().