How can i make the task executer carry more items?

How can i make the task executer carry more items?

felipe_p2
Not applicable
128 Views
17 Replies
Message 1 of 18

How can i make the task executer carry more items?

felipe_p2
Not applicable

[ FlexSim 19.1.0 ]

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

0 Likes
Accepted solutions (1)
129 Views
17 Replies
Replies (17)
Message 2 of 18

joseph_g3
Not applicable
Accepted solution

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

20490-capture.png

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:

20492-capture2.png

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:

20493-capture3.png

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:

20494-capture4.png

I hope this helps!

0 Likes
Message 3 of 18

felipe_p2
Not applicable

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
Message 4 of 18

joseph_g3
Not applicable

@Felipe P2

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

20495-capture5.png

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:

20496-capture6.png

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
Message 5 of 18

felipe_p2
Not applicable

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
Message 6 of 18

joseph_g3
Not applicable

@Felipe P2

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

20498-capture7.png

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:

20499-capture8.png

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
Message 7 of 18

felipe_p2
Not applicable

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
Message 8 of 18

joseph_g3
Not applicable

@Felipe P2

I noticed that your process time on Chipera is 0.01 per hour:

20560-capture.png

That means it will take 100 hours to process one item. Are you sure that's what you want?

The problem you are facing is that your Process Flow is currently set up so that the processors are only considered busy if there is an AGV unloading there, not if the processor is currently processing. This would not be a problem, except you currently have the AGVs unloading very quickly and the processor processing very slowly, so that the processor is still processing by the time another AGV arrives there.

Part of the problem is that your AGVs are unloading all of their items onto Chipera before Chipera can finish processing even the first item. I know you set the maximum content of your processors to 1, but that does not stop Process Flow from unloading items when Chipera is already full. The result is that Chipera never becomes unavailable; by the time an AGV reaches Chipera, the previous one has finished unloading all of its items.

There are 2 ways we can fix your model then:

1. Have the unload time of the AGVs be slower than or equal to the process time on the processor. This would make it so that by the time the AGV is unloaded, the processor is about done processing too. This is how your model was before.

2. Reconfigure the Process Flow so that a processor becomes available once it is done processing all of the items unloaded onto it.

What works best for you?

0 Likes
Message 9 of 18

felipe_p2
Not applicable

Hi Joseph, thank you for your time. I understand what you are saying. The system should work as you described it in option 2 (processor should become available once it´s done processing flowitems and not when the AGV is gone). Do you know how to configure that?

Also, the number 0.01 in the process time is not correct. I just put it to try something. Anyways, i don´t understand if that process time is the time the processor takes to process one flowitem or the whole barch unloaded by the AGV. Do you know that?

Technically, the processor "Grúa" should work with a processing rate of 400 flowitems per hour, and the processor "Logyard" should work with a processing rate of 350 flowitems per hour.

I would really appreciate if you can help me on figuring these things out.

Thank you very much.

Kind regards,

Felipe

0 Likes
Message 10 of 18

joseph_g3
Not applicable

@Felipe P2

Here's an updated model with that fixed: simulacionbaseanswer4.fsm

I changed the Process Flow in the model so that when unloading, it loops from item 100 down to item 1, each time waiting for the previous item to exit before unloading the next item. The processor is not released until all items have been processed.

I hope this helps!

0 Likes
Message 11 of 18

felipe_p2
Not applicable

Thank you very much Joseph! This is exactly what I was looking for.

I really appreciate.

Kind regards,

Felipe

0 Likes
Message 12 of 18

felipe_p2
Not applicable

Hi Joseph, it´s me again. Now I have this model which is similar to the previous one, I just made a few changes because it is realated to another process. My problem on this one is that the flowitems are processed by the processor really fast, and the processor is not respecting the rate of 8.34 flowitems per hour which i set on the process time. Do you know how to fix this?

On the other hand, I would need the flowitems to be unloaded right away after the task executer gets to the processor. The task executer should unload and right away keep traveling back to the source (but the flowitems should be processed by the processor with the rate i indicated above). Maybe this can be configured by putting a queue before entering the processor.

Could you help me with this?

Thanks again, i really appreciate.

Kind regards,

Felipe

pp-y-tlm.fsm

0 Likes
Message 13 of 18

joseph_g3
Not applicable

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
Message 14 of 18

felipe_p2
Not applicable

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
Message 15 of 18

joseph_g3
Not applicable

@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
Message 16 of 18

joseph_g3
Not applicable

@Felipe P2

Also, if you type @Joseph Gillespie in your comments it will notify me that you posted and it will allow me to answer more quickly.

0 Likes
Message 17 of 18

felipe_p2
Not applicable

Hi Joseph, the model you attached in the other question works perfectly as i was looking for so far. Next time i want to ask you something i won´t forget to tag you.

Thank you for your time and effort.

I really appreciate.

Kind regards,

Felipe

Message 18 of 18

joseph_g3
Not applicable

Glad to be of help!

0 Likes