question

Theresa B avatar image
0 Likes"
Theresa B asked Theresa B commented

Assign destination for FlowItems going from Fixed Resource to Floor Storage

Hi again,

I've been trying to model a floor storage area where the items may stay for up to two days but I'd prefer if items that arrived on a later day were not stacked on items from the previous day (to allow for FIFO, assuming that items rest directly on each other).

Sometimes, there are not enough items on a day to fill the bay and level, and when the next day arrives, the new items are sent on top of the older ones.

Sometimes, after a few older items are removed from the floor storage, new items are sent to that same bay and level before it can be emptied.

I feel like I need some kind of custom code to achieve this but I am unfamiliar with how to implement it and where. Would someone be able to provide an example?

I've checked previous questions about order of access for floor storage but they seem to address retrieval of items rather than slot assignment.

This question seemed similar to what I want but I don't understand it because the order system they require is too complicated for my needs.

I've uploaded a model under the name SendItemToSlot.fsm to the file share site for reference.

Thanks in advance!


FlexSim 22.1.2
process flowfloor storageslot assignment
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

Jason Lightfoot avatar image
1 Like"
Jason Lightfoot answered Theresa B commented

It might be easiest to use a process flow so that you can 'flow-chart' the logic in a visual way and use some of the activities that simplify the selection of storage slots.

  1. Find a slot that has space for the item and contains items that were placed there today.
  2. If no slot from step 1 then find an empty slot.
  3. If no slots from steps 1 or 2 then find a slot that has space for the item.

To do this you could use three findSlot activities with a timeout from each step to take you to the next findSlot.

Do you have an example model in which we could add such a process flow?

· 5
5 |100000

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

Theresa B avatar image Theresa B commented ·

Hi, @Jason Lightfoot !

Apologies for the delay in response; I fell ill right after posting that question.

The method you've proposed seems like a good approach but unfortunately, I'm not well-versed in SQL and haven't used the Warehousing activities yet.

Would you be able to make an example of the method? I've attached an example model and uploaded it to the file share site as SendItemToSlot.fsm. I'm not quite sure what the structure of the three findSlot activities with a timeout would look like.

I've started a process flow that leads to the findSlot activity but got stuck there. Let me know how off-base I am so far.

I asked in my question how I could ensure that containers are not placed on top of a container stored there on a previous day. After watching the behaviour of the transporters, I see that part of the problem is that those transporters drive through containers to access slots in the further column. Is this also something that can be controlled by the findSlot activities?

Thanks in advance!

0 Likes 0 ·
Jason Lightfoot avatar image Jason Lightfoot ♦♦ Theresa B commented ·

Assign a label 'date' to the item and token with this expression:

Math.floor(Model.dateTime.excelTime)

Add two more queries to the FindSlot activity and enter the following expressions in each:

1st:

WHERE slot.slotItems.length >0 AND slot.slotItems[1].date=$1.date AND slot.hasSpace($1.item)

2nd:

WHERE slot.slotItems.length == 0 AND slot.hasSpace($1.item)

3rd:

WHERE slot.hasSpace($1.item)

Then assign a label 'storage' to the token using the expression:

token.slot.as(Storage.Slot).storageObject

Then add the tasks to travel and unload to that object.

For the navigation you may need to add an Astar navigator and add the stored items as dynamic barriers.

1 Like 1 ·
Theresa B avatar image Theresa B Jason Lightfoot ♦♦ commented ·

Thanks for that.

I've tried to implement this but have failed somewhere.

Firstly, to better understand your solution:

  • It looks like the 1st query covers the scenario where there are already items in the slot and the 2nd query covers the scenario where there aren't any items in the slot. What is the purpose of the 3rd query?

Here are the token's labels when it reaches the Finish TS activity. Does this look right to you?

1661782146858.png

And here I've got the flow, as suggested by you. It's possible I misunderstood your instructions somewhere?


1661783473115.png

And how I filled out the FindSlot fields. I noticed that you used a single "=" in the 1st query but "==" in the 2nd and running the model on either doesn't seem to make a difference. Is there some meaning behind this?1661782614813.png


And for some proof that the PF isn't working for me, I've coloured the items for the different days they are. As you can see, there is a yellow item on top of 2 blue ones from the previous day, however, the model behaves in a way that it doesn't stack the next yellow item on top of the previous (in the back, you can see the stacking usually goes one higher) but moves to the next slot. Could the slot.hasSpace(token.item) be causing some unusual behaviour?

1661783209643.png

Wow, this attachments bug is really making me work to communicate.


0 Likes 0 ·
1661782146858.png (27.3 KiB)
1661783473115.png (62.8 KiB)
Show more comments