Process Flow in FlexSim: Collecting Resource Utilization Statistics

Process flow with FlexSim

Process Flow module in FlexSim

A simulation project generally involves large, complex problems. Obviously, for ease in operation, these problems must be broken down into sets of smaller problems. The Process Flow module in FlexSim has many tools and features that help achieve this. The module also helps break up large simulation models into small, manageable pieces and is more suited to capture workflow sequences in a simulation model. Therefore, the Process Flow module is very efficient in simulating different scenarios, enabling the user to visualize many scenarios.

Collection of utilization statistics

In comparison to the 3D model in FlexSim, the importance of the Process Flow module is that the latter ensures ease in operations, especially with complex projects.

The Process Flow module, although efficient, does have a problem in collecting resource utilization statistics. This collection, however, can be done easily if using the 3D model. In the 3D model, you can drag and drop the state bar charts to collect resource utilization statistics. However, since there are no charts in the process flow module’s dashboard library, there is no direct way to extract this data.

The common workaround is to create a 3D fixed resource object for each resource in the Process Flow module. You can then collect the state details of the activities through that 3D resource object.

This is inconvenient as, when the project size grows, the performance will take a hit thereby posing a challenge.

Alternate solution to extract Resource Utilization statistics in Process Flow module

Here I will share with you an alternate solution to gather resource utilization statistics while using the process flow module to build the FlexSim simulation model. By following this solution you can use the Process Flow module for complex projects without any glitches. The steps to the solution are as follows:

  1. Create 2 Process Flow blocks. One block (Task Generator) to simulate the Processor, and the other block (Resource Utilization Stats) to calculate the Setup Time, Process Time, and Idle Time.
  2. Create 2 Global tables named ProcessFlag, and ResourceUtilization. The ProcessFlag block captures the process flag value for each operation involved. The ResourceUtilization block captures the utilization time for each operation.
  3. The Task Generator in Process Flow block generates the tasks at the specified time interval and allocates it to the available resource.
  4. Set an initial value and active value for the process flag. Swap the two values as the tasks begin and ends.
  5. On the basis of the number of resources available, create tokens in the Resource Utilization Stats block.
  6. Refresh the Resource Utilization Stats block every minute. In each iteration of the Resource Utilization Stats block check the setup time, process time, and calculate the idle time for the task.
    If setup time or process time of the task is in its active state in the ProcessFlag global table, increase the respective ResourceUtilization global table value and calculate the idle time.
  7. Use Statistics collector tool to collect the statistical data from the ResourceUtilization global table.
    Statistical Collector collects the data from the Resource Utilization global table


  8. Finally, using Statistics collector tool as the data source, drag and drop the Bar chart from the dashboard library to display the resource statistics values for each resource.

    ‘Include’ the required values 
Resource Utilization Statistics are finally captured/projected without using dummy 3D object



The above is an easy way to extract the Resource Utilization Statistics when using the Process Flow module of FlexSim. Now working on complex projects will be efficient and easy as well. If you have any comments or feedback, please share.

Keep checking this blog for more interesting information regarding FlexSim model design and development.

Leave a Reply

Your email address will not be published. Required fields are marked *