Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Fluids
27.1 Introduction
This chapter discusses the concepts of fluids in QUEST. Each of the new fluid entities is described and the details of its
parameters discussed. An explanation of how these parameters may be used to model physical systems is provided.
It is assumed that the user is now familiar with the basics of the QUEST interface and with the concept of elements,
classes, parts, and logics. It is recommended that you read Chapter 2, Modelling Methodology before reading this chapter.
Fluid class creation. The fluid classes that flow through different resources are created first. The common attributes
which can be specified are name, color, and maximum flow rate.
Fluid resource creation. The fluid resource creation lays out the resources in the world and defines the different services
that those resources provide to the fluid flowing through them. The fluid resources that can be created are:
• Fluid source
This resource is used to create fluids with specified volumes at specified inter-arrival times.
• Tank
This resource is used to store the fluids. The capacity of the tank can be specified.
• Pipe
This resource is used to transport the fluids between other resources.
• Processor
This resource is used to process the fluid and apply specified cycle times. Different fluid processes can be
defined and associated to processors. After processing, either the original fluid can be passed or new fluids
can be produced.
• Fluid Sink
This resource terminates the fluid flow from the model.
Fluid Connections. The next step is to make the fluid connections that describe the fluid flow between resources. In
addition to connections, the fluid flow rate between resources can also be specified at each connection. Each connection
can be considered as an opening with a slot or a valve. These openings can be controlled in a manner that will restrict the
flow rate. The initial slot opening is specified as a proportional value between zero and one. If the slot opening is zero, the
valve is closed and no fluid will flow. If the slot opening is one, the fluid flow will be the maximum allowed through the
valve with specified flow rate. The slot opening value can be changed dynamically through SCL to model different flow
rates between resources.
Similar to part-based resources, the process logic and route logic describe the behavior of the fluid resources. The process
logic basically involves how much fluid to take into the resource and what type of fluid to accept. The passing of fluid
from the input side to the output side happens automatically (no PASS statement is needed). Each resource has a
minimum residence time that describes how much time the fluid must stay within the resource. After the fluid is accepted
into the resource, but before it is passed to the output side, the fluid is made to wait for the minimum residence time on the
input side. The route logic mainly deals with routing the fluid to the connected output resource based on restriction and
other routing parameters specified.
After above modelling steps are completed, the simulation can be run for the desired time and fluid related statistics can
be viewed. During simulation, the run can be halted and the current state can be viewed. Trace facilities are also provided
for fluid resources for model debugging.
27.3 Fluid Class Creation
The first step in modelling fluids is to create a fluid class. Fluid classes are similar to part classes that have common
attributes. Unlike parts however, they do not have a provision to use labor for routing. The common attributes used to
define the fluid classes are:
• Name: A character string describing the name of the fluid class.
• Color: The color for the fluid class used for animation in the fluid resources.
• Max flow rate: This is the maximum flow rate by which this fluid class can flow between resources. If the
flow rate between resources is allowed to be more than this maximum flow rate, the actual rate is restricted
by the ceiling value "P".
The option of saving the fluid class definition to a model file or in a separate class file is also supported, similar to part
classes. Also, user attributes can be assigned to fluid classes and accessed in SCL logics.
Using the Clone and Delete buttons, existing fluid classes can be cloned or deleted from the model.
The next step is to create and locate the elements that are to handle the fluids. A number of attributes may be defined for
each of the elements to control the flow and behavior of fluids in the model. Then, fluid connections are to be created to
indicate the amount and direction of permissible fluid flow. The Model | Fluid page exists to handle the creation and
modification of fluid entities. "Normal" elements such as machines, buffers, conveyors, AGVs, etc., are not permitted to
handle fluids. Previously specified special fluid elements must be created for this purpose.
Naming Conventions
When a new element class is created, QUEST automatically assigns unique names to the class and all the elements in that
class. The class name will be the type of element class followed by a number, e.g., "Fluid_Source1" is the first element
class of type "FLUID_SOURCE created using the default options. Users have the option of entering a custom class name.
The elements in that class will then be named with the class name followed by a number, e.g., Fluid_Source1_1,
Fluid_Source1_2, etc. The individual element names cannot be set when the element class is created. However, once
created the names can be modified by selecting Model | Build | Element | Modify.
If the name of an element class is modified at some stage after it has been created, then QUEST will present a dialog box
that provides the option of automatically renaming all the elements in that class whether the element names themselves
have been changed by the user or not.
Element Geometry
This function allows users to set the display parameters of the element such as geometry, color, stack axis, etc. Selecting
the Display button will present the Display dialog box shown below.
Color
This function is used to assign color data to the element class. Users select a color from a drop down list of the available
system colors.
NOTE: If the user created the part in the CAD world, then the color can be changed using this function
only if the part was created with the color "part" in the CAD world.
Fluid Point
The location of a fluid inside a fluid element is based on the fluid point of that element. Every fluid element display has a
predefined fluid point and the fluid will be animated at this point when there is some fluid in that element. There are
several functions for determining how fluids will be displayed in the element:
• No. Of Fluid Points: The number of fluid points on the element. Different fluids may be animated at
different fluid points, or all fluids may be animated at one fluid point. The default is a single fluid point for
an element.
• Current Fluid Point: This defines the current fluid point for the element. All changes made in the Fluid
Point Info button apply to the current fluid point. The value for the current fluid point should be a positive
integer number not greater than the number of fluid points defined in the "No. of Fluid Points" field.
Fluid points are similar to stack points for parts. Since fluid points are also part of way points, any way point action
buttons can also be used to manipulate fluid points.
The functions provided through the Model | Anim | Add Way Points title bar allows users to add more fluid points and
manipulate their position and orientation.
Animation Method
This field allows users to set the method to be used to visually represent the fluids in the current element. In general, the
amount of fluid in a resource can be depicted either as a number that keeps changing (using dynamic annotation) as fluid
flows through it or as a visual indication of scaling a simple cross-section object to a height representing the volume of
fluid.
The four options for the animation method are:
• None: No fluid animation will be seen.
• Fluid Point: Animates the fluid at the fluid points in the element without any annotation.
• Annotation: Provides a dynamic text visualization of the current contents of the fluids in the element. The
contents are shown as an absolute number in the current units and as a percentage of the capacity of the
element. Contents of each fluid in the element are shown and are changed dynamically as the simulation
runs.
• Both: Uses both fluid point and annotation for fluid animation. That is, the fluid will be seen visually and
will also be represented by dynamic annotation text.
NOTE: Setting the animation method to "None" will result in faster model runs.
Although the animation method may be set to "Fluid Point", users may not see any fluid in the
element. This happens if the "Max Fluid Quantity" or "Fluid Capacity" for that element is set to
a very large number. By reducing this value, fluid animation will be visible. This may also be
controlled by changing the scaling factor, explained below.
If the display for an element class is changed mid-run, then the annotation for the element class
will be reset back to the default value when the simulation run is continued.
When global animation is set to Off for the model, no animation will happen for the resource
based on this method.
Using the Fluid Info dialog box, different fluid classes can be animated at different fluid points. If more than one fluid is
specified for a fluid point, the amount of each fluid class is calculated and the cross section object is corresponding scaled
and staked one over the other.
3D File
This function is used to set the geometry for an element class. There are two alternatives:
• Default Geometry: The new processor will be represented by default geometry contained in a part file
named "Processor" in the library defined by the current value of DEFAULT$LIB. The system is shipped
with default geometry. Users may customize this as desired by renaming their CAD part to that of the
default geometry.
• Select from library: The user is prompted to select any part file from PART$LIB.
2D Icons
This button sets the 2D icon file for the selected element class. The 2D world is a schematic representation of the 3D
world. The 2D environment gives the flexibility to view run-time data in a dynamic way, which will be updated during a
simulation run. The model in the 2D world is an iconic representation of the 3D model. The charts and icons associated
with a particular element of the model represent that element. The following functions allow users to assign an icon to a
3D element that will then be used to represent that element when it is put into the 2D world with the Model | Build |
Element | Populate button:
• No. of Icons: The number of icons that are assigned to the element.
• Icon File: This button is to define the icon file.
• Icon Index: The icon index defines the geometry index for an icon. The index ranges from 1 to the number
of icons assigned earlier.
• File: Users can assign either the default geometry file from the DEFAULT$LIB or select a library file from
the ICON$LIB.
The 2D world is covered in more detail in Chapter 7, Model Output and 2D Modelling of this manual.
User Attributes
For description, refer Chapter 3, Section 3.2 Common Element Creation Functions, on page 10.
Labor Controller
The Labor Controller button allows the selection of the labor controller element that will be used to satisfy any labor
requirements that the specified fluid element class may have during its operation. The topic of QUEST labor is covered in
detail in Chapter 11, Labor of this manual.
Shifts
This button allows the user to assign shifts to the fluid element class. A daily or a weekly schedule may be associated with
the fluid element class using this button. This button may also be used to set the element class to have no shifts. If no daily
or weekly schedule has been defined in the model, then this button is grayed out and cannot be activated. Shifts are
covered in detail in Chapter 4, Logical Modelling Elements.
Failures
This button is used to add or remove failures to the fluid element class. It may also be used to show the failures currently
associated with the element class. If no failures have been defined in the model, this button is grayed out and cannot be
activated. Failures make it possible to model unscheduled down times such as breakdowns. They are covered in more
detail in Chapter 4, Logical Modelling Elements.
Fluid Routing
This button allows users to route the fluids from the fluid element class based on the restrictions set up in the Fixed
Routing Info dialog box. Selections within the Fixed Routing Info dialog box allow users to route fluids according to the
restrictions imposed on the flow of fluids through a particular output. If the option "Route" is selected then the fluid is
permitted to flow through that output. If the option is left blank, then the fluid will not be allowed to flow through the
specified output. This button is not available for fluid sinks.
NOTE: The Restrictions button will be grayed out if the number of output connections is less than two.
Fluid Minimum Residence Time
This is another attribute that is common to all the fluid resources. This minimum residence time specifies the minimum
time the fluid has to stay within this resource. When fluid is accepted into a resource, it stays in the input side of the
resource for the specified minimum residence time and is passed (automatically) to the output side for routing.
As the input flow rate to the resource changes over time, the corresponding pass flow rate changes and after the specified
scheduled minimum residence the fluid will be passed automatically (without any PASS statement from SCL logic). The
minimum residence time is specified in the current model time units and the default value is zero.
Lotsize Mode
This field is used to set the mode of fluid creation in the fluid source. This mode may be set to:
• Flow Rate: When the lotsize mode is set to flow rate, fluid is produced at the rate specified as the lotsize,
for the duration specified as the IAT (Inter Arrival Time). For example: If the lotsize is 50cc and the IAT is
10 seconds, then fluid is created at the rate of 50cc/s for 10s. At the end of seconds, then fluid is created at
the rate of 50cc/s for 10s. At the end of 10s, the above process repeats.
• Quantity: With the lotsize mode set to quantity, the value specified as the lotsize is the quantity of fluid that
is created instantaneously at the sampled IAT. For example: If the lotsize is set to 50cc and the IAT is 10
seconds, then after every 10 seconds 50cc of the specified fluid is created.
Start Offset
This field is used to set a time delay on commencement of the source's fluid creation. The default value of zero means that
the source will start fluid creation the moment the model starts to run. If, on the other hand, a non-zero start offset time is
specified, then the fluid production from that source will not commence until the specified time after the start of the model
run.
Fluid Initial
This field is used to set the quantity of fluid for the specified fluid classes that are already present in the source when the
model run begins. This button will not be enabled if there are no fluid classes defined in the model. The default value is
zero for all fluid classes. This parameter thus sets the initial conditions of fluid classes in a fluid source. When the Initial
Stock button is selected, the Fluid Initial Stock dialog box appears, similar to that shown below.
NOTE: The fluids created as initial stock of an element will automatically be placed on the output side
of that element and will be ready for routing for route logic of that element class
IAT
Inter Arrival Time or IAT sets the time between fluid creations at the specified fluid source. The distribution specified in
the IAT is sampled during the simulation to schedule the creation of fluids at the fluid source. The default is a constant
value of 1 second. The amount of fluid created at the sampled IAT is determined by the lotsize mode and lotsize quantity
of the fluid source
Selection of the IAT button brings up the Distributions dialog box, as shown below.
The Distributions dialog box allows two distinct types of arrival patterns — deterministic, using the Constant or File-
based options, or stochastic (random) using a probability distribution from the list. In addition, users can write an SCL
routine that returns the inter-arrival time using the "User Func" option.
When a File Based inter-arrival time is chosen, users are prompted to supply the name of the file containing the inter-
arrival time data that must be located in the SCHEDULE$LIB directory. The format of the file is:
Fluid_Class_name Time_of_creation Lotsize_Mode Lotsize_value
• Fluid_Class_name: The name of the fluid class to be created.
• Time_of_creation: The time when the fluid is to be created. This time can be either a relative value or
absolute value. This option of using a relative or absolute value can be specified at the beginning of the file
based on that the values are interpreted. If the value is relative and the value 10 is specified, the creation
time will be 10 seconds after the current simulation clock. If the value is absolute, the value used represents
the actual time when the fluid is to be created. when the fluid is to be created.
• Lotsize_Mode: This can be either "Quantity" or "Flow rate". If the mode is "Quantity", the amount of the
specified Lotsize_value" in the fourth column will be created instantaneously. If the mode is "Flow rate",
the specified Lotsize_value in the fourth column is the flow rate and fluid is created at that flow rate.
• The last line of the file may also contain the identifier "repeat" if it is desired to start sampling from the top
of the file again. If the file does not contain the repeat identifier and the end of the file is reached during the
simulation run, then a simulation interrupt occurs.
In this way a model can be run using data from the real world either to improve the accuracy of the simulation or perhaps
as part of the model validation process.
NOTE: The default logic used for the IAT — File Based option is found in the file pr_file.scl.src located
in the
../QUESTlib/SYSDEF/LOGICS directory.
Lotsize
This button sets the amount of fluid created at one time. The default is 1 unit. That is, one unit of fluid is created at each
sampled IAT. Depending on the lotsize mode, the lotsize may be either in terms of quantity or flow rate. Selecting this
button displays the Distributions dialog box.
The Distributions dialog box allows two distinct types of arrival patterns — deterministic, using the Constant or File-
based options, or stochastic (random) using a probability distribution from the list. In addition, users can write an SCL
routine that returns the inter-arrival time using the "User Func" option.
When a file-based lotsize is chosen, users are prompted to supply the name of the file containing the lotsize data which
must be in a SCHEDULE$LIB directory. In this way a model can be run using data from the real world either to improve
the accuracy of the simulation or perhaps as part of the model validation process.
NOTE: The default logic used for the IAT — File Based option is found in the file distrib.scl.src located
in the
../QUESTlib/SYSDEF/LOGICS directory.
Fluid Fractions
This button sets the proportions of each fluid class that the source will create. The IAT button governs the frequency of
fluid production while the Fluid Fractions button governs the proportions of fluids created during the simulation run.
When the fluid source creates a fluid, it chooses the new fluid class at random based on probabilities determined from the
specified part fractions, and independent of the proportions of any initial stock in the source. Thus, if a model with n
different fluid classes have a source with part fractions F1, F2, F3, ..Fi..Fn then the expected proportion of fluids of type j
will be:
Fj
n
∑F i
i =1
• Process Logic: This logic is responsible for the creation of fluids using the parameters set in the fluid
source. This process logic may be specified as one of two options:
— Default Fluid Source Logic: When chosen, this logic causes the fluid source to behave as defined by
all of its parameter settings discussed above. Fluids will be created based on the IAT, fluid fractions,
lotsize mode, lotsize, max fluid quantity and min fluid residence time defined through the user
interface.
— User Func: This allows the specification of an external, user-written SCL procedure to control the
fluid source behavior. This may or may not make use of any of the data entered in the various
parameter fields for the source such as inter-arrival times, lot size and fluid proportions.
NOTE: In many cases the options specified in the process logic may override any options set through the
user interface.
• Route Logic: This logic controls the destination of fluids that flow out of the fluid source. In QUEST, for a
fluid to get transferred from one element to another, two conditions must be satisfied:
— The sending element must be ready to route the fluid.
— The receiving element must be free and willing to receive the specified fluid.
Routing is thus accomplished by a "handshake" between elements. For fluid sources there are two
options for the route logic:
o Default fluid route: This is the default logic to route fluids from the source to its destination elements.
o User func: Allows users to select their own SCL file to control the routing of parts.
• Route Logic Busy Interrupt: The default route logic routes the fluid without taking any time. Basically route
logic controls which fluid flows through which output connection at what flow rate. The decision is
expected to be made within the same simulation clock time (no time taking is involved). In a user-written
route logic, if a decision has to be made to wait for some time to route the fluid, then a route logic busy
interrupt is used by the system to make the routing decision. The default behavior of the interrupt is same as
the default route logic.
A route logic "busy interrupt" is a user-defined interrupt, created by the system and associated to fluid
resource classes. This user interrupt is executed only when a flow rate change event happens and the user-
written route logic is blocked (due to time taking or a wait condition).
Tanks
Tanks are used to represent the locations where fluids are stored. They are analogous to the buffers that are used with
parts.
Fluid Capacity
This button allows the specification of the numerical values required to determine the tank's maximum fluid quantity.
Tank Logics
The Logics button allows users to control the behavior of a tank by changing the rules by which the tank operates. This
may involve selecting from one of the available standard behaviors or specifying a user-defined function, written in SCL
that performs the required operations. The Logics options for a tank are described below:
Initialization Logic
Init logic (initialization logic) can be used to describe the behavior of the tank at the start of the simulation. In general, all
the elements are started empty and in the idle state. If different initial behavior is required, it can be achieved using
initialization logic. Initialization logic is executed one time only at the start of the simulation run. All the SCL statements
that can be used in the process logic can be used in the initialization logic of the element class.
Process Logic
This controls the behavior of the fluid in the tank. Process logic may be specified as one of two options:
• Default Tank Logic: When chosen, this logic causes the tank to accept any fluid through any input
connection of the tank until the tank is filled to the specified capacity. Once filled to capacity, it maintains
that level of fluid in the tank.
• User Func: This option allows the specification of an external, user-written SCL procedure to control the
behavior of the tank.
Route Logic
This button allows users to set logics governing the routing of fluids from the tank. There are two options for the route
logic:
• Default Fluid Route: This is the default logic to route fluids from the source to its destination elements.
• User Func: This option allows users to select their own SCL file to control the routing of fluids.
Processors
Processors are the special resources that can handle both discrete parts and fluids. Fluid processors in QUEST are used to
represent the resources in a system that is responsible for processing or carrying out work on fluids. Processors are used to
perform processes on fluids. Unlike machines, processors can perform processes that may involve both parts and fluid
classes. To handle both parts and fluids, a processor has (regular) part connections as well as fluid connections.
Number Of Processes. Processors are capable of performing more than one process, although not simultaneously. Using
the No. of Processes button, users can set the total number of cycle processes associated with the processor class. A cycle
process defines a set of requirements (such as parts, fluids, labor, AGV), a cycle time, and a set of products (such as parts,
fluids).
Fluid Capacity Type. This field defines the maximum quantity of fluids that the processor can hold at any point in the
simulation run. The processor is permitted to hold a lesser quantity of fluids than its capacity, but it can never hold more.
The available options are:
• Infinite: The capacity is set to infinity. This is the default option.
• Volume: Since capacity is a finite quantity of fluid, the volume is specified in the dialog box that appears
when the Capacity button is pressed.
Capacity. This button allows the specification of the numerical values required to determine the processor's maximum
fluid quantity. Since capacity is a finite quantity of fluid, the volume is specified in the dialog box that appears when the
Capacity button is pressed.
Fluid Min Residence Time. This is the minimum time that every fluid flowing into the processor must stay in the
processor before it can be available for routing. The default value is zero. This means that the fluids that enter the
processor are immediately available for routing and are not required to wait in the processor.
NOTE: The minimum residence time is the time taken to transfer the fluid from the in parts list to the out
parts list of the element. Hence, the time specified in this field will not be applicable to the fluid
specified as the initial stock.
Fluid Initial Stock. This field sets the quantity of fluid for the specified fluid classes that are already present in the
processor when the model run begins. The default value is zero for all fluid classes. This parameter thus sets the initial
conditions of fluid classes in a processor.
NOTE: The fluids created as initial stock of an element will automatically be placed on the out part list
of that element and will not undergo the process logic of that element class.
This button will be grayed out if there are no fluid classes defined in the model.
Process Percentage. This button is used to set the percentage for the various processes assigned to the processor class.
These percentages may be sampled in a user-defined process logic for the processor.
Unload Process. This button allows the assignment of an unload process to the processor. The unload process is executed
When this is selected, you are prompted to choose from the following:
• None: No unload process is to be set for the processor.
• Time Only: Time distribution of the load/unload process is to be entered.
• New Process: A new load/unload process is defined and set, or an existing load/unload process is to be
assigned to the processor.
The unload process is applicable only when discrete parts are produced by the processor. The route logic of the processor
is meant for routing the parts which uses the unload process. If the processor does only fluid cycle process, this unload
process is not applied.
Cycle Process. Using this button, fluid cycle processes may be defined and assigned to the processor class. Users are
prompted to choose from the following options:
• None: This option sets no cycle process to the processor.
• Default_Fluid_Cycle: This option sets the cycle process to the default cycle process.
• New Process: This option defines and sets a new fluid cycle process to the processor.
• Current Process Details: This option displays a dialog box with the current process settings.
Refer to the section on fluid cycle process for a detailed explanation of the fluid cycle process.
NOTE: Cycle processes may also be defined through the Model | Process menu item.
Setup Process. Setup process can be assigned between any two-cycle processes. Users are prompted to select the "from
cycle process" and the "to cycle process" from the list of processes associated with the processor, and assign a setup
process between the two selected cycle processes. If the processor has only one cycle process, the "from cycle process"
and "to cycle process" are selected by default as the one cycle process. The setup process options are:
• None: This option sets no setup process to the processor.
• Time only: This option prompts the user to enter the time distribution of the setup process.
• New process: This option defines and sets a new setup process to the processor.
Processor Logics. The Logics button allows users to control the behavior of the processor by changing the rules by which
it operates. This may involve selecting from one of the available standard behaviors or specifying a user-defined function,
written in SCL that performs the required operations.
Fluid Sink
The primary purpose of a fluid sink is to destroy fluids, therefore, it has inputs but no outputs. Once the fluid has
completed its processing in the model, it is removed from the model through the fluid sink. By removing the unwanted
fluids from the model, the speed of the model run may be increased. It should be noted that although the fluids are
destroyed in the sink, all the statistics relating to these fluids are maintained by QUEST and may be accessed at any time
during or after the simulation run.
The characteristics of a fluid sink may be modified by selecting Model | Fluid | Fluid Element Class | Fluid Sink. When
the Fluid Sink button is selected, a dialog box appears that allows the selection of an existing sink class by name, or
"New" which allows the creation of a new sink class. If "New" is selected and the simulation has been run for any length
of time, a dialog box will appear prompting for confirmation that the simulation run is to be terminated. After creating a
new sink class, it is necessary to start the simulation run from time zero.
• Fluid Min Residence Time: This is the minimum time that every fluid that arrives in the sink must stay in
the sink before it can be destroyed. The default value is zero, which means that the fluids are destroyed
immediately upon arrival.
Pipe
The fluid pipe is an element that may be used to transport fluids between elements. Pipes thus act as an intermediate
element between two other fluid element classes. Pipes for fluids are analogous to conveyors for normal parts. Normal
pipes are similar to the library conveyors where an existing geometry is used to represent the element. Extruded pipes are
similar to extruded conveyors where a cross section is extruded along a desired direction. It is not necessary to have pipes
for moving fluids between element classes. They are provided to add modelling flexibility.
The following descriptions are common to both types of pipes.
Fluid Capacity Type
This defines the maximum quantity of fluids that the pipe can hold at any point in the simulation run. The pipe is
permitted to hold a lesser quantity of fluids than its capacity, but it can never hold more. Available options are:
• Infinite: The capacity is set to infinity. This is the default option.
• Volume: The capacity is a finite quantity of fluid, the volume being specified in the dialog box that appears
when the Fluid Capacity button is pressed.
Fluid Capacity
This button allows the specification of the numerical values required to determine the pipe's maximum fluid quantity.
For every fluid class defined in the model, one row is created in the Flow Time Information dialog box. The last row,
"Any", is used to set the default flow time/speed value that may be used by any or all fluid classes in the model. The
dialog box columns are described below.
• Mode: This field sets up the mode for specifying the flow time (if the Flow Time Method was set to
"Fixed") or flow speed (if the Flow Time Method was set to "Flow Speed"). The various possible settings
for this option are described below:
— From Any: This mode specifies that the flow time (or flow speed) should be taken from the value
specified in the row "Any".
— Specify: This mode allows the specification of a specific flow time or flow speed for the current fluid
class. This flow time or flow speed may be specified under the "Flow Time" or "Flow Speed" column.
• Flow Time/Flow Speed: This field is set to Flow Time if the Flow Time Method (described above) was set
to "Fixed". If the Flow Time Method was set to "Flow Speed", this column would be set to Flow Speed.
The values specified in this field will be used to determine the time it takes for the fluid to flow through the
pipe.
If the Flow Time Method was set to "Flow Volume", a Volume per Unit Length dialog box similar to the
one shown below would appear. The value entered in this field will be used to determine the fluid flow
volume per unit length of the pipe. The length units used here will always be millimeters regardless of the
current unit settings in the model.
Pipe Logics
The Logics button allows users to control the behavior of the pipe by changing the rules by which it operates. This may
involve selecting from one of the available standard behaviors or specifying a user-defined function, written in SCL that
performs the required operations.
The Logics options for a pipe are described below:
Init Logic
Init logic (initialization logic) can be used to describe the behavior of the pipe at the start of the simulation. In general, all
the elements are started empty and in the idle state. If different initial behavior is required, it can be achieved using the
Init Logic button. This initialization logic is executed one time only at the start of the simulation run. All the SCL
statements that can be used in the process logic can be used in the initialization logic of the element class.
Process Logic
This controls the behavior of the fluid in the pipe. This process logic may be specified with one of two options:
• Default Pipe Logic: When chosen, this logic causes the pipe to continuously accept fluid flow from any
input until its specified capacity is reached.
• User Func: This option allows the specification of an external, user-written SCL procedure to control the
behavior of the pipe.
Route Logic
This logic controls the destination of fluids that flow out of the fluid source. It also selects the fluid that is to be routed and
the rate at which it must flow. By default, this is not a time-taking logic.
• Default Fluid Route: This is the default logic to route fluids from the pipe to the destination elements.
• User Func: This option allows users to select their own SCL file to control the routing of parts.
Priority
This field is used to assign a priority value to the fluid process.
Save In
This option allows users to save the fluid process in either the model file, or an independent file. Generally, processes will
be applicable only to the current model and should be saved in the model file.
If the process is generic and applicable to other QUEST models, the process can be saved in an independent file. The
process will be stored in one of the appended PROCESS$LIBs. If no PROCESS$LIB is appended, users should use the
File | Make Library function to create or modify the library configuration file to include processes.
Requirements — Order
Users can choose a sequence for claiming labor, parts, and AGVs. There are two options:
• Mode: This determines the way in which an individual resource, i.e., part, labor, or AGV, is claimed by a
process. If the option "As Avail" is chosen then the resource is claimed the moment it becomes available.
The option "All" forces the process to wait until all of the required resources are available before claiming
them.
• Sequence: — This determines the order in which the process claims different resources that are required for
that process. By default, parts are claimed first, then labor, and lastly AGVs; based on requirements. There
is no sequence for the fluids.
Following are implications of the potential combinations:
• If the order is set with the part sequence as "First" then the process will not reserve an AGV or a labor
element until the required parts have been found.
• If the part sequence is as above, but the mode is set to "All", then before any part is claimed for the process
it will be necessary for all the parts to be available to the process. You should take care in using this
function, as there are a number of conflicts that can arise that may tend to block the model.
• If the order is set with the Labor Sequence as "First" then the process will only begin to reserve parts once
the required labor element is available to the process.
Requirements — Parts
The part requirements for the process are set in the Claim dialog box shown below. The requirement can be set to Any
Part and/or a combination of the parts specified in the model. Valid values may be zero or any positive integer.
If you specify one of "Any Part" and one of "Part1", the process will not be able to begin until there is at least one of Part1
available and one of any other type of part. Input refers to the input connection to the element, through which the part
must be obtained. If you specify "0" then the part can come through any input to the machine. In the Parts Requirement
dialog box shown the process requires one of Part1 through Input 1, and one of Part2 through any input.
The default is "Any Part" with Quantity set to one and Input specified as zero.
Requirements — Fluids
This button permits you to set the fluid requirement for the process. A Fluids Acceptance End dialog box similar to the
one shown below appears when this button is clicked.
For every fluid class defined in the model, one row is defined in the Fluids Acceptance End dialog box. There is one
additional row to define the conditions for any remaining fluid in the element. The various columns are described below.
Mode. When the process is started, the fluid acceptance phase is started (the process start defines the starting condition of
the acceptance phase). This field defines the end of the fluid acceptance phase. By default, no condition is set for this field
for all the fluid classes. The various possible settings for the mode are described below:
• Level Reached in % — With this mode setting, the fluid is accepted until the fluid flow reaches the
specified percentage of processor capacity. For example, if this value is set as 50%, then fluid will be
permitted to flow into the processor until the volume of that fluid reaches 50% of the processor capacity.
The percentage is specified under the "%" column.
• Level Reached in Qty — With this mode setting, the fluid is accepted until the fluid flow reaches the
specified quantity of processor capacity. The quantity of fluid to be accepted is specified under the
"Quantity" column.
• Level Maintain in % — With this setting, the fluid is accepted until the fluid flow reaches the specified
percentage of the processor capacity. After the specified level is reached, the fluid flow continues to
maintain the same level. This is used when fluid is produced and is getting routed out of the resource. Based
on the outflow rate, the in-flow rate is adjusted to maintain the specified level.
• Level Maintain in Qty — With this setting, the fluid is accepted until it reaches the specified quantity of the
processor capacity. Then, the acceptance is adjusted so that this level is maintained as described above in
the Level Maintain in %.
• When Inflow Stops — With this setting, fluid is accepted until no more fluid flows into the processor.
When the connected input resource stops sending the fluid and the moment the in-flow rate becomes zero,
acceptance phase is ended.
• Fixed Inflow Qty — Here, the specified fixed quantity of the fluid is accepted The quantity is specified in
the Qty column. This quantity specifies the new or additional value required in addition to whatever already
exists in the resource. If the processor already has 50cc of Fluid1, and this mode is specified with quantity
set to 25cc. An additional 25cc of Fluid1 is accepted to indicate end of the acceptance phase.
• Time Only — Here, fluid will be accepted for the specified time only. The time is specified in the Time
column.
• When Cycle Stops — In this case, the fluid will be accepted until the end of the current fluid cycle phase.
This option defines the acceptance end in terms of cycle phase end condition. There may be modelling
situation where, the acceptance end condition can not be directly specifiable. At that situation, if the cycle
phase end condition is properly defined, the same can be used for acceptance end also.
• No Acceptance — With this setting, the specified fluid will not be accepted.
• "—" — This setting implies that no condition has been set for the specified fluid. However, this fluid may
be accepted as part of the Remaining fluid.
Consider. This setting determines whether the fluid is to be considered as part of the "remaining" fluid. If yes, then the
fluid will be accepted till the condition for the remaining fluid is satisfied (even after the specific condition for the fluid is
satisfied). If the mode for the fluid has been set to "No Acceptance", then it cannot be considered for the remaining fluid.
For example, consider there are three Fluids F1, F2 and F3. F1 and F2 may have specific acceptance condition — 30% of
F1 and 30% of F2. For the remaining 40% of the capacity, either F3 or F1 can be considered but not F2. In that case F1
and F3 will be set to Consider "Yes" and F2 will be set to "No".
Requirements — Labor
On selecting the Labor function, you can define the labor requirement for the process. The requirement can be set to any
available labor unit from any labor class or for a labor unit of a specific labor class. The Labor Requirements dialog box
below shows a process requirement of two laborers of any class, and one that must be from the class Labor1. If you wish
to assign a laborer of a specific labor class then that class must already exist.
If the requirement is set to be more than the number of labor elements available in the labor class, then a warning message
is issued stating that the element class does not have sufficient labor elements. The allocation will be refused.
The Decision (Dec) Point Index in the dialog box defines two ways that labor can be managed as a requirement for a
process. These are described below:
• Labor Without a Labor Path System — When the Dec Point Index is set to 0 (zero) and the process is
executed during the simulation run, the required labor units will move directly to the element once they
become free from their previous task. This is the simplest method and will generally be used unless there is
a need for the laborer to move along a specific pre-defined path or carry parts, again along a specific pre-
defined path. In this mode the labor elements will either move along the shortest path between the elements
or it will beam directly between the two. This is discussed in detail in Chapter 11, Labor.
• Labor Using a Labor Path System — The alternative method of managing the movement of a labor element
to a process is for the labor element to be on a Labor Path System. In this case, the element executing the
process is connected via one or more decision points to that labor path system. You can specify the
element-input number (linked to the decision point), at which the labor element is required. The required
input is entered into the dec point index field.
Requirements — AGV
You can define a requirement for one or more AGVs (Automated Guided Vehicles) for the process using this option. The
requirement can be set for Any AGV or from a specific AGV class. The AGV Required field is a yes/no field. This is
because only one AGV element can move to a decision point at any given time. If more than one AGV was allowed, the
process would always be blocked waiting for an AGV, which in turn is blocked from arriving at the requisite decision
point thereby leading to a gridlock. If the dec point index is set at two (or above), there must be more than one input from
the element connecting to a decision point on the AGV path.
Cycle Phase — Fluid Cycle Phase. This button allows you to set the general parameters governing the start and end
conditions of the cycle phase as shown in. The different parameters that may be defined for the cycle phase are described
below.
Cycle Start Condition. This setting determines the conditions for starting the cycle phase of the processor. This option
provides a more comprehensive way of defining the cycle start condition for each fluid class. This condition may be set to
any of the following parameters:
• End of Acceptance Phase — In this case, the cycle process will start at the end of the fluid acceptance phase
provided all the other (non-fluid) requirements such as parts, labor and AGV are satisfied.
• Condition per Fluid Class — In this case, the cycle start is based on the conditions set for each fluid class.
The specification of these conditions are similar to that for the fluid acceptance phase such as Level
Reached in % or Level reached in Qty.
Cycle End Condition. This setting determines the conditions for ending the cycle phase at the fluid processor. The cycle
end condition depends on the cycle start condition. Once the cycle start conditions are met, the cycle end conditions
related events are scheduled. The cycle phase end condition can be set to any of the following parameters:
• After Cycle Phase Starts — In this case, the cycle time starts at the beginning of the cycle phase and the
cycle phase will be completed at the end of the sample cycle time. Basically cycle end time is cycle start
time + the sampled cycle time.
• End of Acceptance Phase — Here, the cycle will end after the fluid acceptance ends and the sampled cycle
time is completed.
• Condition per Fluid Class — In this case, the cycle end is based on the conditions set for each fluid class.
The specification of these conditions are similar to that for the fluid acceptance phase.
Additional Delay for Start. An optional additional delay time for the start of the cycle process may be defined here. This
delay time will be applied after the cycle start conditions are satisfied to really start the cycle phase. This can be
considered as some kind of delta time representing some specific fluid processing conditions such as cooling off time,
before the cycle phase can be started.
Additional Delay for End. An optional additional delay time for the end of the cycle process may be defined here. This
delay time will be applied after the cycle end condition is met. The cycle phase ends only after applying this delta time.
Cycle Phase — Cycle Time. This defines the work time for the cycle process. The cycle time may be constant or sampled
from various random distributions. The Distributions dialog box shown below offers a range of common distribution types
plus constant, file based, and user func selections.
The default cycle time distribution is Constant with a value of one second. The two bottom entries in the above dialog box
are worthy of additional discussion:
File Based. If you have an external data file with a series of consecutive cycle times you may select the "File Based" time
distribution. For file-based cycle times, you must make a file selection from a SCHEDULE$LIB directory. The schedule
file should be in an ASCII format and contain a list of times, one on each line representing the cycle times that are to be
used sequentially for each repetition of the cycle process.
The "#" sign may be used in column 1 to indicate a comment field; in this case that line will be ignored. The last line in
the file may also contain the identifier "repeat" if the file is to repeat from the beginning after the last line has been read. If
the file does not contain the keyword "repeat" and the end of the file is reached during a simulation run, a simulation
interrupt will occur. It is up to you to ensure that an adequate number of cycle times are present in the file for the desired
simulation duration.
User Func. To define a cycle time that has not been read in from a file, or taken from a stochastic distribution, you will
need to define the cycle time in some other way. Specifying the cycle time through SCL will accomplish this. The SCL
routine must return a value of type "real". See Chapter 5, SCL for a discussion on SCL. The SCL routine must be created
in advance and saved in a file defined by the LOGIC$LIB in your library configuration file.
For example, you may have defined a user attribute volume for a particular part. The process cycle time might vary in
proportion to the volume of the part, e.g., a filling process. You would need to develop an SCL routine that calculated the
cycle time based on the weight and returned it as a real number.
This cycle time is considered as the minimum residence time of the fluids in the processor. All fluids that enter the
processor are assumed to be spending this cycle time as the minimum time before they are passed to output side for
routing. This assumption confirms that all fluids have been equally treated for the sampled cycle time.
Products — Parts
Products are the parts and/or fluids that are produced as a result of the cycle process. This button is used to create a new
part, or destroy an existing part as a result of the process. For more details on the functionality of this button, refer to
Chapter 4: Logical Modelling Elements.
Products — Fluids
This button sets the fluid products of the cycle process. It defines the fluids created, destroyed, or passed through as a
result of the cycle process. The products conditions are specified for each fluid class.
For every fluid class defined in the model, one row is defined in this dialog box. The various columns are described
below.
Mode. This field sets up the mode for fluid product creation. The various possible settings for this option are described
below:
• Pass — Specifies that the same fluid that was consumed at the start of the process became the product. This
fluid is thus being "passed" to the output of the element after spending the Cycle Time in the input side.
• Retain — Specifies that the fluid will be retained at the input of the element once the process is completed.
The same fluid may then be used as an input to some other cycle process.
• Destroy — Specifies that the fluid is to be destroyed at the end of the cycle process.
• Mix — Specifies that the fluid will be mixed into some other fluid class as a result of the cycle process. The
resulting mixture fluid class is specified in the "Mixture Class" column.
• Produce Flow Rate — Specifies that the fluid should be produced new at the output of the element
according to a user—defined flow rate. The flow rate is specified in the "Flow Rate/Quantity" column.
• Produce Quantity — Specifies that a user—defined quantity of new fluid should be produced at the output
of the element. The quantity to be produced is specified in the "Flow Rate/Quantity" column. This Quantity
of fluid is created instantaneously.
Mixture Class. This column specifies an existing fluid class name that the specified fluid class will mix into at the end of
the cycle process. It is activated only when the fluid products mode is set to "Mix".
Flow Rate/Quantity. This column specifies either the flow rate or the quantity of fluid to be produced at the end of the
cycle process. It is activated only when the fluid products mode is set to either Produce Flow Rate or Produce Quantity.
The value entered in this field should be a valid SCL expression. Any SCL expression that returns a number may be used
here. The SCL expression is evaluated at run time. If a routine is being called, then that routine must already be compiled
before it can be called here. Only routines that positive return real numbers may be called. Positive real numbers may be
entered also. If the number 250 is keyed in, then 250 units of fluid would be produced. The value calculated by this
expression is assumed to be in units set for production in the previous level by Produce Flow Rate/Quantity Units.
Freq. This column specifies the frequency of evaluation of the SCL expression specified in the Flow Rate/Quantity
column. It is activated only when the fluid products mode is set to either "Produce Flow Rate" or "Produce Quantity". The
frequency is to be specified in time units. The production flow rate expression is evaluated for every delta time specified
by this frequency and the newly evaluated value is used. Using this option, differing production rate of fluids can be
achieved at specified intervals.
Flow Duration. This column sets up the mode for specifying the duration of the fluid produced as a result of the cycle
process. It is activated only when the fluid products mode is set to Produce Flow Rate. When the mode is Produce
quantity, the quantity of fluid is produced immediately. In case of produce with flow rate, we need to know the duration
through which the rate is used for producing fluid. The possible settings for this option are described below:
Prod Start+time — This mode specifies that the fluid production rate in the processor will begin upon completion of the
specified time delay after the starting of the production phase. The additional time delay is to be specified in the Time
column. After the production phase start condition is satisfied, the specified time duration will be used for producing new
fluid.
• Accept End+time — This mode specifies that the fluid production rate in the processor will begin upon
completion of the specified time delay after the end of the fluid acceptance phase. The additional time delay
is to be specified in the Time column.
• Fluid Level % — This mode specifies that the fluid production rate in the processor will begin when the
fluid level in the processor reaches the level specified in the % column for the specified fluid only. The
level is computed as a percentage of the capacity of the processor.
• Total Level % — This mode specifies that the fluid production rate in the processor will begin when the
fluid level in the processor reaches the level specified in the % column for the all fluids currently in the
processor. The level is computed as a percentage of the capacity of the processor.
• Fluid Level Qty — This mode specifies that the fluid production rate in the processor will begin when the
fluid level in the processor reaches the level specified in the Qty column.
• Total Level Qty — This mode specifies that the fluid production rate in the processor will begin when the
total fluid level of all fluids in the processor reaches the level specified in the Qty column.
Time. This column specifies the delay time after which fluid out flow begins at the processor. It is activated only when
the flow duration mode is set to either Prod Start+time or Accept Start+time.
%. This column specifies the percentage of the specified fluid or all fluids in the processor. Fluid out flow will begin
when this percentage value is attained. The percentage is computed with respect to the capacity of the processor. This
column is activated only when the flow duration mode is set to either Fluid Level % or Total Level %.
Qty. This column specifies the quantity of the specified fluid or all fluids in the processor. Fluid out flow will begin when
this quantity is attained. This column is activated only when the flow duration mode is set to either Fluid Level Qty or
Total Level Qty.
Additional Delay for Start. An additional delay time for the start of the production phase may be defined here. This delta
time is applied after the specified production start conditions are met.
Fluid Produce Expr. Unit System. This setting allows the selection of the unit system for the SCL expression used in the
Produce Quantity or Produce Flow Rate modes. This toggles between the US system and the English system of measure.
This unit system is used when the production quantity/flow rate is specified for each fluid as an SCL expression.
Produce Quantity Units. This setting allows the selection of the units for the produce quantity SCL expression. This unit
system is used when the production quantity/flow rate is specified for each fluid as an SCL expression.
Produce Flow Rate Units. This allows the selection of the units for the produce flow rate SCL expression. By default the
current model units are assumed for the fluid production SCL expression. If the units are changed in this field, then they
will supercede the current model units (set with Pref | Preferences | Environment | Units).
Fluid Connection
Fluid flow between resources is defined by the fluid connection similar to material flow defined by regular connections.
The fluid connection can be done only between two fluid resources. Fluid connections are created by selecting the Model |
Fluids | Connections | Connect button. When this button is selected, the user has to select the "from" resource and the
"to" resource to make the connection between them. If connection already exists, the user has the option of either creating
a new connection, or modifying the existing connection. All fluid resources can have multiple input and output fluid
connections, except the fluid source, which has no input connections and the fluid sink, which has no output connections.
Each fluid connection can be viewed as a kind of valve between two resources whose opening can be adjusted for
different flow rates. If the valve is closed completely, there will not be any fluid flow. If the valve is fully opened, the
fluid will flow in the maximum possible rate. This maximum possible flow rate can be specified for each connection of
the resource. It’s common to specify the flow rate for both the from resource and the to resource of the connection.
When the connection is made between resources the user will be prompted with a Fluid Connection Info dialog box to
provide the following information:
Fluid History
Fluid history may be collected for fluid elements to keep track of changes in the fluids during the element's operations
during a simulation run. Fluid history may be collected for a given element over a specific duration, and may either be
viewed dynamically during the simulation run or after the simulation run is completed. 2D charts are used to create the
fluid history charts.
NOTE: Currently, fluid history may be created for a single run of the model only and are not applicable
across multiple runs. Also, the fluid history created for a simulation run cannot be saved with the
model.
The buttons available for creating and manipulating fluid history are described below:
Cre/Mod
The Cre/Mod button lets your create a new fluid history chart or modify an existing one. When clicked, a Fluid History
dialog box similar to the one shown below appears.
The different parameters that may be defined for the fluid history are described below.
Name. This specifies the name for the fluid history. By default the name is "Fluid History_<number>" where the number
is the serial number of the fluid history. Thus, the first history will be created with the default name "Fluid_History_1",
the second "Fluid_History_2" and so on.
History Data. This specifies the data to be plotted as the fluid history. Fluid history could be collected for any of the
following attributes:
Input Quantity.
• Output Quantity
• Total Quantity
• Percent Utilized
• In Flow Rate
• Out Flow Rate
• Net Flow Rate
• Fluid Pass Rate
• Destroy Rate
• Production Rate
The default value is Input Quantity. If the attribute is set to Total Quantity or Percent Utilized then all fluid classes in the
model will be considered for plotting the history. For any of the attributes, the fluid class for which the data is to be
plotted should be specified.
This fluid history attribute specified is updated at every rate change. The current values are stored along with the
simulation clock time every time there is a change in the attribute specified. The values are stored as tables of attribute
value and start time. For quantity based fluid history, the value of the attribute changes linearly with time between any
two successive history items but for flow rate based fluid history the value of the attribute remains same between updates.
Dynamic Display. This is a toggle field that may be set to Yes or No. If it is set to Yes, a time series chart is created and
updated dynamically during the simulation run. The default value is No.
Start Time. This field specifies the simulation clock time to start collecting the fluid history. Values less than zero are not
valid.
End Time. This field specifies the simulation clock time to stop collecting the fluid history. Values less than zero are not
valid.
Associated Element. This button permits the selection of a different fluid element to be associated with the fluid history.
Associated Fluid Class. This button permits the selection of a fluid class whose attribute is to be collected as history data
during the simulation run. This selection is not required if the History Data field was set to Total Quantity or Percent
Utilized.
Chart. This button creates a time series 2D chart of the history data that was collected during the simulation run. It may
be used only after the simulation run is completed. It is not applicable if the field Dynamic Display was set to Yes. When
selected, a 2D window is created and the chart and legend may then be positioned in that window.
Delete. This button deletes an existing fluid history from the model. The fluid history selected is deleted.