question

Felipe P2 avatar image
0 Likes"
Felipe P2 asked Joseph Gillespie commented

How can i make the task executer carry more items?

I have this model and I would like the task executers be able to carry 100 boxes at a time. So far, the task executers carry only 1 box per trip.

I would appreciate if someone can help me with that.

Kind regards,

Felipesimulacion-base-t5-m100v4.fsm

FlexSim 19.0.1
FlexSim 19.1.0
task executeragv network
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
0 Likes"
Joseph Gillespie answered Joseph Gillespie commented

@Felipe P2

Here's your model with some changes so that the task executors will carry 100 boxes at a time:

simulacionbaseanswer.fsm

The way I did this was through a few changes to your Process Flow. First, I added a "Batch" activity to your Process Flow so that each Task Executor would take a batch of 100 items.

Here, 100 tokens are converted into 1 token with an array of items named "boxes". This is useful so that every 100 tokens will only need to acquire one AGV resource.

Next, I edited your load and unload activities so that 100 items would be loaded or unloaded at a time:

Here, a subflow is started that includes 100 child tokens, one for each box. I've given each token a label called "Index" to identify which box in the array the token corresponds to.

Finally, in the load and unload subflows, I set it up so that each child token would cause it's corresponding box in the array to be loaded:

This causes 100 boxes to be loaded onto an AGV. I used a similar subflow for unloading.

I also made a few other changes. I removed a "wait for processor to finish" activity since it was never firing and I made it so that it simply released the processors after the AGVs are done unloading. I also changed the capacity of the processors to 100 so that they could accept all of the items at once, but you can change that back if you want them to process one item at a time.

If you would like to change how fast the boxes are loaded/unloaded onto the AGVs, make sure to change the load/unload time in the AGV properties:

I hope this helps!


capture.png (11.8 KiB)
capture2.png (11.2 KiB)
capture3.png (8.0 KiB)
capture4.png (3.0 KiB)
· 16
5 |100000

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

Felipe P2 avatar image Felipe P2 commented ·

Hi Joseph! Thank you very much for your reply. You have been really helpful.

I have one more question. The task executer should always go to "Chipera" and try to unload the flowitems there, unles it is busy on processing other flowitems. In that case, it should go to "Logyard". In the model you attached, I see that it goes to "Chipera", then to "Logyard", then to "Chipera", then to "Logyard", and so on ("Chipera is not being prioritized).

Do you know how can i solve this?

Once more, thank you very much for your time and effort.

Regards,

Felipe

0 Likes 0 ·
Joseph Gillespie avatar image Joseph Gillespie Felipe P2 commented ·

@Felipe P2

This can be done pretty easily by making your processors into separate resources:

This works by using a Max Wait Timer for acquiring the Chipera that tells it to acquire the Logyard instead if the Chipera is busy:

Here the Max Wait Timer fires after 0 seconds if Chipera is unavailable and sends the token to Destination 2 (Acquire Logyard).

Note that with your current setup, it's impossible for the AGV to go to Logyard if Chipera is busy since Chipera is in the way. Here's another modified model I made with some changes to the network so that the AGVs can reach both processors: simulacionbaseanswer2.fsm

0 Likes 0 ·
capture5.png (8.6 KiB)
capture6.png (16.8 KiB)
Felipe P2 avatar image Felipe P2 commented ·

Hi Joseph! Once more, you were really helpful. You solved my problem.

I wouldn´t like to keep bothering you, but I have one more question,

I would need to add this function to the model: when the queue "Grúa" is delivering flowitems to the Task Executer (Grua´s output opened) the source "Barcaza" should stop delivering items to the queue "Grúa" (input closed). I mean, if there are flowitems going from Grúa to Task Executer, no floiwtems should go from Barcaza to Grúa. Do you know how can I set this?

Thank you so much for your time.

I really appreciate you effort!

Kind regards,

Felipe

0 Likes 0 ·
Joseph Gillespie avatar image Joseph Gillespie Felipe P2 commented ·

@Felipe P2

Just for future reference, unless you are answering someone else's question, always use comments. Just hit "Reply" and add your comment:

Anyway, what you are asking for is pretty easy. Under the "Custom Code" Process Flow activity, there are lots of options like closing and opening input ports for fixed resources:

I used a similar activity to open the input after each AGV is loaded.

Here's the model with this addition: simulacionbaseanswer3.fsm

0 Likes 0 ·
capture7.png (4.1 KiB)
capture8.png (10.2 KiB)
Felipe P2 avatar image Felipe P2 Joseph Gillespie commented ·

Hi Joseph, thanks again for your help and for the tip on how to reply messages on the blog.

I worked with the model you attached yesterday and I made a couple of changes. Now, i don´t know why, the task executors are unloading everything at Chipera, even if Chipera is busy. They are not delivering flowitems to Logyard.

Do you know what might have happened here?

Thanks again,

Felipe

answer-3.fsm

0 Likes 0 ·
answer-3.fsm (79.6 KiB)
Show more comments
Show more comments
Joseph Gillespie avatar image Joseph Gillespie commented ·

Hi @Felipe P2,

I realized I forgot to answer one of your questions from your previous post. Normally "Process Time" is how long it takes to process one item. However, since you have it set to "Hourly Rates", that is how many items will be processed in one hour.

The answer to your first problem is that since you are using Process Flow, there is nothing stopping the AGV from unloading items onto the processor, even when it is already processing an item. Since you have the Unload Time set to 0, it simply unloads all the items onto the processor at once. To fix this, you can change the process flow to use the loop I included in the last model (it includes a "Wait For Event" activity that only allows the next item to be unloaded when the previous one is done processing), or if you fix your second problem it should fix your first problem as well.

If you add a queue before your processor, it will be possible to unload all the items at once and the processor will only process one item at a time. If you add the queue you will not need to have "Chipera" as a resource either since it is always possible to place items in a queue.

If you have more questions about your models, please let us know what your end goal is. It's easier for us to help you out if we know what you are working towards instead of reworking the system each time to fix new problems. It's hard to give you the ideal solution if we don't know what your end goal is.

0 Likes 0 ·
Felipe P2 avatar image Felipe P2 Joseph Gillespie commented ·

Hi Joseph, one more time, thank you very much for your time.

I will explain the case for you so you can understand what this is about.

The model is simulating a process for unloading wooden logs from a barge (Barcaza) using a crane (Grúa) and delivering the logs in two possible places (Chipera and Logayrd). Each box simbolizes a ton of wooden logs. The task executer is simbolizing a trailer (there are 3 trailers in the operation), and my interest in putting the queue before Chipera is because the system actually works this way: wooden logs are unloaded from the barge into a plattform, the trailer (task executer) hooks to the plattform and carry the plattform to the destination, for the flowitems to be unloaded, but the trailer can leave the plattform alone on destination for unloading tasks. Processors simbolize the cranes for unloading items on destinatios. Plattforms are unlimited in the operation so it has no relevance to represent them with elements in the model.

So i tried to put a queue before Chipera, and made a few changes to achieve that, but the model is not working (model attached). I guess that two conditions should be set: the queue capacity should be 100 and the task executer should still visualize if Chipera is available or not. If it is available it should unload all the items in the queue for the processor to process them, and if not, it should go to Logyard. I think another queue should be put before Logyard, but with no limited capacity, given that the unloading process at Logyard can always be done (regardless it is processing flowitems or not).

Would you help me on achieving this?

Please let me know if i was clear. I will be more than pleased to answer your questions.

answer-4-prueba.fsm

0 Likes 0 ·
answer-4-prueba.fsm (83.9 KiB)
Joseph Gillespie avatar image Joseph Gillespie Felipe P2 commented ·

@Felipe P2

Do you still have any questions about this after I answered your other question here?:

How to unload to queue and then to processor?

I think what you are asking here is the same as what you asked at the end on this question right?

0 Likes 0 ·
Show more comments