Emily K avatar image
Emily K asked Jason Lightfoot edited

Why AGV won't pull finished item from list?

Item flow: Buffer4 > QueueIn > Processors > QueueOut > Buffer5

1. Processors find material > assign destination using activity Assign Labels > Push to list > Decide whether QueueIn has capacity (queue capacity = 50). If QueueIn don't have capacity, Processor won't find material.

2. AGV loads items(with label <Type>, value=0) from Buffer4 and send to destination based on their destination label.

3. After AGV finished unloading, it will return to home point.

4. Check if there are finished items.

5. Travel to QueueOut which has finished items and send them to Buffer5.

I was stuck at Step4, could anyone give some advices, please?DEMO_230104.fsm

FlexSim 21.2.4
process flowpull from list
demo-230104.fsm (118.4 KiB)
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

Kavika F avatar image
Kavika F answered Jason Lightfoot edited

Hey @Emily K, I think I have a solution that may work for you. I mainly made changes in your AGV Object Process Flow.


First, I changed your "Is there any FinishedItem" activity to rearrange the ranks of the connections. You originally had the first connection going to the left and the second going down (like the screenshot says). I flipped it so path two went to the left and path one went down. Then I made sure that failed requests went down path two (to the left). I believe that your tokens were just going down path one regardless of failure or pass.

Then I simply changed your Travel activity to go to the FinishedItem.up. That way it would go to the queue the item is at. It was struggling to find the item itself.


(Note, I disconnected Buffer5 from the sink so I could watch finished items go in)


1672841367409.png (13.0 KiB)
agv-find-finished.fsm (118.7 KiB)
1672841286732.png (13.7 KiB)
· 2
5 |100000

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

Emily K avatar image Emily K commented ·

Thanks for help!
Could I ask what is the difference between token.item.up and up(token.item)?

I found it weird that it will stop at 8000s, but when I click play, it can resume.

When there is finished items enter the list, AGV will travel to the finished item related QueueOut. I wish agv could load more finished items (maximum 4) if the QueueOut has other items.

I first add a label origin in process flow of QueuOut.

Then, in agv process flow, I add a decide activity to check if agv has capacity, if yes it will pull finished item from the list which has the same origin with current queue.

I add one more query in the pull from list: Origin = token.FinishedItem.up

But it pop out an exception 1672929365677.png
Then, I find some questions related to mine:
I could find the item labels in the tree, but having a problem on how to get the property. Luckily, I find a code reference to the content container, but not sure if the code is correct or not. Hope you could give me some help! DEMO_230105.fsm

current.attrs.first.Origin == FinishedItem.Origin
0 Likes 0 ·
1672929365677.png (12.0 KiB)
Jason Lightfoot avatar image Jason Lightfoot ♦ Emily K commented ·

It stops at 8000 because the model has a stop time defined for then.

The error at 8124.17 is due to referring to token rather than puller in:

WHERE Type = 1 AND hasDestination = 1 AND Origin = token.FinishedItem.up

Note that 'distance' can't be used while the puller is a token - you should use the agv for that.

The command up() is deprecated but gives values that match the treenode's up property.

1 Like 1 ·

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.