question

K_yun avatar image
0 Likes"
K_yun asked K_yun commented

AGVs don't move in a path net with crossroads

agv-network.fsm

@Braydn TThe model attached here has a AGV path net with one crossroad , when i started the simulation , nothing changed in the model. I tried to make different connections ,but still can not figure out what was going wrong, so i posted it here for some help. Look forward to any suggestion!

Best Regards!

FlexSim 18.2.3
agvnetwork
-20190716090244.png (72.8 KiB)
agv-network.fsm (130.0 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

Joseph Gillespie avatar image
2 Likes"
Joseph Gillespie answered K_yun commented

@meng L

Braydn is out of the office today, so I'll help you out with your question.

I found a few things that were stopping your model from working:

1. Trying to use a separate Item list besides AGVWork. If you are going to use the pre-made AGV process flow, it's important to push items to the AGVWork list and not any other list. What was happening with your model was that the sources were pushing items to your item list and AGVWork, but the ones in AGVWork didn't have a destination, so the AGVs didn't do anything since they had no destination to go to.

In the updated version of your model I attached, I added port connections from your sources to your three queues and set Send to Port to "By Expression" and then set that to item.itemType:

Since I connected the queues in the order of the items they should receive (queue3 is port1 and should receive item 1, etc.), this will cause each item type to be sent to the right place. This part doesn't cause the item to be sent without the AGV, but gives the AGV the destination of where to send the item.

I also unchecked the "Pull" boxes for each of your queues:

These are not necessary when using the pre-made AGV process flow. The pre-made AGV process flow works by having fixed resources push items to the AGVWork list, and AGVs pull the items off of the list and deliver them. The destination does not hold any of the logic in this process. If you keep these boxes checked, they will cause problems and the AGVs will not deliver to them.

2. You may notice this after fixing the first problem, but after the AGV delivers to one of the queues, you'll notice that it stops there and doesn't return. That is because with the pre-made AGV process flow, the AGV is always doing one of two things:

  • Delivering an item (like from Source2 to Queue1). In this case, the AGV knows where to go since it pulled the destination when pulling the item from AGVWork.
  • Following conections like "NextLookForWork", "LookForWork", "DropOffLocation", etc.

After delivering items, the AGV needs guidance for what to do next. In the updated version of your model that I made, I added some "Next Look For Work" connections back to the original point to tell the AGV to go back and look for work from the sources again.

Here is the updated model I made: agvnetworkanswer.fsm

I hope this helps!


capture.png (2.8 KiB)
capture2.png (3.0 KiB)
agvnetworkanswer.fsm (129.5 KiB)
· 3
5 |100000

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

K_yun avatar image K_yun commented ·

Hi! Joseph @Joseph Gillespie,Thanks for your detailed explanation which help me a lot. I've modified my model.

Then, i made some attempts to construct the same AGV model with ProcessFlow, this work took me a few days. During this process, a few problems slowed me down. Finally, the model (agv-network-1)could run smoothly and correctly.

As i wanted to go further to another scenario, i changed item generation strategy. Then, a problem showed up, and i can not figure out it anyway. So i post the two models here for your help. agv-network-1.fsm and agv-network-2.fsm

The only difference between the two models is the way in which items are generated in Queue4 and Queue5. As we know, a token will remain at a Pull From List activity until the Require Number of values has been pulled off the list. When there are more items to transport than available AGVs , the tokens shall wait at Pull From List until a AGV be released. While in agv-network-2, two tokens pulled same agv from List AGV. As a result, you can see a AGV carries two or more items. How can this happen ? And what can be done to fix it ?

Look forward to your reply.

Best Regards!

0 Likes 0 ·
agv-network-1.fsm (79.9 KiB)
agv-network-2.fsm (79.6 KiB)
001.png (71.0 KiB)
Joseph Gillespie avatar image Joseph Gillespie K_yun commented ·

@meng L

If you go into "Get an AGV for transport" and change Puller to token.ItemToTransport, the AGVs won't pick up multiple items anymore.

The reason for your problem comes from setting the puller to be a queue. The default "Puller" in a "Pull from List" activity is the token itself:

When the Puller is a token, that token pulls the item off the list and it becomes unavailable for any other tokens to pull. However, in your model you set the puller to be the queue that the token's item is in. When an AGV becomes available the queue pulls the AGV and assigns it to all the tokens that are referencing it (all of the tokens currently in the "Get an AGV for transport" activity). This results in multiple tokens and therefore multiple items being assigned to the same AGV.

If you set the Puller to be token.ItemToTransport, it should still give you the correct distance (distance from the item to the AGV instead of distance from queue to AGV), while it will only assign one item to the AGV since it is the item that is pulling the AGV from the list.

0 Likes 0 ·
capture.png (15.0 KiB)
K_yun avatar image K_yun Joseph Gillespie commented ·

OK, i see. Thank you! Joseph

0 Likes 0 ·