question

Gabriel Morgante avatar image
0 Likes"
Gabriel Morgante asked tannerp commented

Why some items are not being pulled from the list?

7.fsm

Hi guys,

I'm using an ItemList to define the sequence of process by product based on conditions controled by labels on the flow item. It's working as it should so far but now I'm having a problem that I can't seen to figure out.

After some simulation time some items are not being pulled. It's nothing with the item I believe because other items with the same labels (therefore the same "pull querry") are still being pulled normally.

I thought it could have something to do with my ORDER BY command, since I was ordering by "age" so I thought it was being refreshed and tossed to the end of the entries. So I added a new Label called "Priority" that would increase value after the process "P1000" and changed my pull querry to ORDER BY Priority DESC. But it's not working anyway, some items are still being held from time to time at the queue "P1000_Q" (and other but for now I'm trying to solve P1000 first).

Maybe someone can help me to find where the problem is?

I would be very thankfull!

Attached it my model.


FlexSim 20.1.1
flexsim 20.1.1global listqueuesitem list
7.fsm (20.9 MiB)
· 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.

Benjamin W2 avatar image Benjamin W2 commented ·

Hi @Gabriel Morgante, at what time does this event occur? Also what objects are involved in pulling and pushing the items? This will help us debug it.

0 Likes 0 ·
Gabriel Morgante avatar image Gabriel Morgante Benjamin W2 commented ·

Hello Benjamin,

It happens for the first time by around 300 000 seconds.

There are two labels that "control" which processor is going to pull the object. These are the labels "Calor" and "Forja", every time the item runs through the processors F40X the label "Calor" is increased by 1 and every time the item runs through the processor P1000 the label "Forja" is increased by 1.

The processors P1000, F404, F403, F402 and F401 are pushing the item to the itemlist1.

The processors F40X are pulling the item when it have [Calor == 0 AND Forja == 0] and [Calor == 1 AND Forja1].

The processor P1000 pulls [Calor == 1 AND Forja == 0], [Calor == 2 AND Forja == 1].

Whe the item gets to [Calor == 2 AND Forja == 2] (after the second time through P1000) it leaves the loop being pulled by the processor "RACK_RESFRIAMENTO".

The Queue "P1000_Q" is there to prevent the system to get stuck when all the processors are full and releasing.

It works fine until something happens and some items start to stay in the "P1000_Q" Queue. I don't know why they are not being pulled since their labels are all fine and other items are being pulled normally after them.

Attached is a screenshot of the item staying at P1000_Q around time 300000 seconds.

If you need any more details just let me know...

Thank you for helping!



0 Likes 0 ·
Gabriel Morgante avatar image Gabriel Morgante Gabriel Morgante commented ·

Image

0 Likes 0 ·
notpulled1.jpg (106.3 KiB)
Show more comments

1 Answer

Benjamin W2 avatar image
0 Likes"
Benjamin W2 answered tannerp commented

It looks like the processor sucessfully pulls the item from the list, but is in a blocked state. This means that it won't accept any more flow items. At 296239, this occurs when P-1000Q pushes an item to the list, which is successfully pulled by F-404. F-404 however, is in a blocked state. This might be because the processor does not have it's own Queue to pass finished flow items to:

I'm guessing that once another processor pulls an item from F-404, it is free to actually accept the flowitem that it pulled from the list.

Consider having the processor flow to a Queue, then have the queue push the item to a list like you have on P-1000.


1589830648523.png (484.8 KiB)
· 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.

Gabriel Morgante avatar image Gabriel Morgante commented ·

@Benjamin W2,

I think we might be on the right track but it still didn't solve the issue.

Without Queues for the processes F40X the amount of items stuck at P1000_Q was 22 for 2592000 seconds of simulation (1 month).
Now I added a Queue for every F40X pushing the items to the list. There are still items being stuck at P1000_Q but now it's 18 items.

I'll try to add intermediate queues between all the process, meaning one before every F40X and one before P1000 also to see if it helps.

If you have another suggestion it would be most welcomed!


Thank you!

0 Likes 0 ·
Gabriel Morgante avatar image Gabriel Morgante commented ·

@Benjamin W2

Even with Queues before every F40X and P1000 there's still items getting stuck at P1000_Q.


Heres a screenshot:

0 Likes 0 ·
notpulled2.jpeg (78.1 KiB)
Benjamin W2 avatar image Benjamin W2 Gabriel Morgante commented ·

@Gabriel Morgante, could you attach the updated model?

0 Likes 0 ·
Gabriel Morgante avatar image Gabriel Morgante Benjamin W2 commented ·

Of course, here it is:

7.fsm

0 Likes 0 ·
7.fsm (20.9 MiB)
Show more comments