question

Jordan Johnson avatar image
2 Likes"
Jordan Johnson asked Noah Z commented

How can I get resource utilization statistics from a Process Flow resource?

I'm just curious what the plan was for collecting resource utilization since "acquire" in process flow doesn't seem to change the operator state for the operator associated with the resource?

FlexSim 16.0.1
process flowstatisticsutilization
· 1
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Brenton King avatar image
3 Likes"
Brenton King answered Noah Z commented

Because of the current limitation of Process Flow with states, it is often easier to link your resources to actual 3D objects and then switch their states manually. You can then display their utilization charts in the dashboard. Note that nothing is actually happening within my 3D world, its only purpose is to give me the stats for my PF. (My code turns the processor red while it is in use.)

I hope that in the future we can change the state of a resource in Process Flow without it requiring a 3D counterpart... @Anna Kamphaus

process-flow-states.fsm


· 4
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

anthony.johnson avatar image
0 Likes"
anthony.johnson answered Raja Sekaran edited

OK, I got to thinking about the allocated idle state check box feature I mentioned in my previous answer, and I realized that you can just implement that yourself, with some listeners on the Resource. So I'm attaching a process flow that will set the state on objects that are acquired on the resource but idle. You'll see that when the simulation runs, operators will be in the "allocated idle" state when they are acquired by the resource but otherwise idle. This is done without having to change the primary acquiring/releasing process.

Once this is done, to get the utilization of individual operators you just include allocated idle in the set of utilization states in a dashboard state pie chart.


· 1
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

anthony.johnson avatar image
0 Likes"
anthony.johnson answered anthony.johnson edited

Some options:

  • If you're looking for a "cumulative" utilization, you can track the Content statistic of the resource. Unfortunately, this isn't perfect, because it's not normalized to a 100% scale, however, you can calculate utilization manually from that (if there are 5 available, and the average content is 4, then it's 80% utilized). While not the perfect solution, it might be suitable for some cases.
  • If you have a resource that is numeric, then you can simulate utilization by giving the resource a number of 100. Then when you acquire the resource, acquire a percentage of the total resource capacity (instead of acquiring just 1). Then the resource's content statistic is its utilization.
  • If you're looking for individual utilizations, for task executers, the main problem is to set the TE to a different state to distinguish "idle" from "allocated idle", because if you're giving him task sequences, he will automatically set his state during those tasks. One option is to explicitly set the state of the operator to something like allocated idle as soon as you acquire it, and set it back to idle as soon as you release it. However, you'd also need to set it back to "allocated idle" whenever the operator finishes a task sequence and goes back to idle. So, again, not a perfect solution.
  • Another option, similar to explicitly setting the state, is to always give the operator a wait-for-task task when he could potentially be idle. There you can define the state you want him to be in while he's waiting for you to give him more to do.

Obviously none of these are really easy solutions. Perhaps there should be, first, a feature on the resource where you can check a box and define the state to put the object into when he's been acquired but is idle, and second, a utilization statistic on the resource, which is essentially 100 times its content divided by its capacity.

5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.