question

shanice.c avatar image
0 Likes"
shanice.c asked Ryan Clark commented

How to know product’s destination then push products to different lists?

My company case is a plant with AGV system including an Input port, several Processors and Queues, an output port, stockers between different manufacturing processor. The following picture is how layout looks like. In this plant, the product has 3 manufacturing process. There are several Processors at these 3 manufacturing areas. After completing first station Processing, product will be transport to Stocker to wait for available Queue/Processor in station2 or directly go to Processor in next Processing area if available. Same for completing process2 products go to processing 3. To build this model step by step, so I send product to Outputport directly after completing Processing1. In model, there are not as many Queues, Processors and AGVs as real in situation.


The difficult place in this case is the Queues are used both for before going to Processor and exiting Processor. When no Processors available, product can be sent to Queue to temporary wait for next station Processor. And when product complete processing, it can also go to Queue to wait for next area if the stocker is fully loaded.


Since the product destination is unknown beforehand, so I have problem with how to set push to ItemList. There are 4 types of tasktype in this simplified model.

Inputport to Processor;

Inputport to Queue;

Queue to Processor;

Processor to outputport


As we don’t want Equipment waste capacity, we want AGV to do task that can fill Processors in advance. We'd like to let AGV load item to Processor first if available, then load item to Queue secondly. So we hope AGV can have preference when looking for task, the order 1~4 is:

1.Queue to Processor, and this kind of task is pushed to Itemlist1;

2.Inputport to Processor, and this kind of task is pushed to Itemlist2;

3.Processor to outputport, and this kind of task is pushed to Itemlist3

4.Inputport to Queue, and this kind of task is pushed to Itemlist4.


Problem:

Product doesn’t know it’s destination until it exits from original place. In my model, there are two possible output ports for product exit from Inputport, they should be pushed to itemList2 or itemList4. How could I push product from Inputport to itemList that is correspond to the status when product exits from Queue/Processor then loaded by AGV. How to sort the list by destination or partition to let AGV focus on certain flow items first? Is there a better way to do with my case?

If I could push product to different list, I’d like to let AGV executing by always pull from Itemlist1, prior to Itemlist2, prior to Itemlist3, prior to Itemlist4.

1627820558638.png


agv write to table.fsm

FlexSim 21.1.4
flexsim 21.1.4push to listagv load
1627820558638.png (54.5 KiB)
· 1
5 |100000

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

Ryan Clark avatar image Ryan Clark commented ·

Hi @fiona.c,

Sorry we haven't responded to your comment in a while! Were you able to solve your problem? If so, please add and accept an answer to let others know the solution. Or please comment again so that we can continue to help you.

If we don't hear back in the next 3 business days, we'll assume you were able to solve your problem and we'll close this case in our tracker. You can always comment back at any time to reopen your question, or you can contact your local FlexSim distributor for phone or email help.

0 Likes 0 ·

1 Answer

Parker S avatar image
0 Likes"
Parker S answered Parker S commented

This sounds like this is for a student project, so we cannot build the model for you. However, I will provide some tips.

This logic would be best handled by using one list to push all the items to. Before pushing an item, set a label on it called priority.

In your Pull from List activity for the AGV, you can add the query ORDER BY priority ASC. That way it will pull the highest priority first.

Because you have two possible destinations from Queue4, you would need to push the item back to the list with a lower priority if your processors were not available. For instance, if the AGV was able to pull an item from the list with a priority of 2, you would then try to acquire an available processor, if the acquire failed (enable the Use Max Wait Timer in the Acquire activity), set the priority label on the item to 4 and push it back to the list.

If you need additional practice with ProcessFlow using lists and acquiring resources, I would recommend this tutorial:

https://docs.flexsim.com/en/21.2/Tutorials/TaskLogic/Tutorial1TaskLogicTools/1-4TasksGlobalLists/

Let me know if you have any other questions.

· 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.

shanice.c avatar image shanice.c commented ·

Hi @Parker S ,

I know the descriptions above would make my question seem like a school project, and the descriptions were so long, as I try to describe detailed as possible. But this is a simplified example of my company case. We believe we will be are possible to complete the whole plant simulation if we could complete one area. And sincerely need some assistance. I have uploaded a new questions https://answers.flexsim.com/questions/106034/how-to-get-item-agv-is-loaded-in-process-flow.html, but my submitted problem has to be reviewed, so I'm not sure if you could see it.

0 Likes 0 ·
Parker S avatar image Parker S ♦ shanice.c commented ·
I understand, I will look at the question and get back to you.
0 Likes 0 ·