question

Rykou avatar image
0 Likes"
Rykou asked Rykou commented

How to let ASRS determine whether to put in or take out based on duetime

Hi everyone,I'm trying simulate a Automatic Storage Retrieval System.In my current model, there are three items need to be moved to Rack and two items are already on the Rack.


I'm confused about how to make ASRS choose items to move based on duetime, and duetime decreases with runtime, the logical priority of transportation is as follows:

1. As long as there are items in Queue, it will be moved to the Rack first.

2.The smaller the duetime on the shelf, the higher the priority it will be transported to Sink.

The attachments are as follows.Thanks.

ASRS determine duetime question.fsm

FlexSim 24.0.1
asrslogicduetime
5 |100000

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

1 Answer

·
Felix Möhlmann avatar image
0 Likes"
Felix Möhlmann answered Rykou commented

You could customize the Queue Strategy to work based on the difference between current model time and duetime.

capture1.png

You've already given the queue priority by allowing its tasks to preempt others. The other tasks shouldn't be aborted though, or the items in the rack at that time would never be moved.

asrs-determine-duetime-question_1.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.

Rykou avatar image Rykou commented ·

Hi @Felix Möhlmann, thanks for your reply.

I have executed the simulation.But I found that the simulation is a little different with what I expected. During the simulation, when two items arrive at Queue at the same time, ASRS will only move one of the items from Queue to Rack then moved other items from Rack to Sink.But I expect to place both items from Queue to Rack one by one then moved other items from Rack to Sink.It means that if items arrived in Queue, ASRS will send the item from Queue to the Rack immidiately then do other action.

And I found that the priority of moving items from Rack to Sink isn't based on the smaller item.dueday value.

0 Likes 0 ·
Rykou avatar image Rykou commented ·

How to modify the simulation so that the ASRS moves each item in Queue immidiately before moving on to other actions? Is there a way to adjust the prioritization algorithm to consider the smaller item due day value first?Thanks.

0 Likes 0 ·
Felix Möhlmann avatar image Felix Möhlmann Rykou commented ·

Hm, I originally already had this in place but then decided to remove it because I didn't think of the cause when the preemption wouldn't suffice. You can modify the code to always return a very high priority if the item is picked up in Queue1.

TaskSequence.Task loadTask = taskSequence.tasks[2];
Object item = loadTask.involved1; Object origin = loadTask.involved2; if(origin.name == "Queue1") {     return INT_MAX; } return Model.time - item.duetime;
0 Likes 0 ·
Rykou avatar image Rykou Felix Möhlmann commented ·

Thank you for your response and suggestion. I'll try it.

0 Likes 0 ·

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

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