Task executer transport up to 20 items

Task executer transport up to 20 items

Lili
Not applicable
68 Views
11 Replies
Message 1 of 12

Task executer transport up to 20 items

Lili
Not applicable

[ FlexSim 22.2.0 ]

Hi!

I'm trying to simulate this model where my separator creates 70 items each time, and the task executor must carry a maximum of 20 items in each trip from the separator to the queue. Also, I want the separator to stay busy/acquired until the last flow item has been removed so that no new items are transported to the separator.

In this discussion https://answers.flexsim.com/questions/29054/how-to-make-to-limit-the-number-of-items-per-conve.html it was said that in order to model this logic in process flow I can use zones, however I'm not sure how to:

1) use the correct label for enter zone and exit zone activities, and

2) keep the separator occupied until the last flow item is transported to the next station (should I use a decision to determine if the separator is empty? and how?)

I'll upload a simple version of this problem here.zone_test.fsm

Thanks in advance!


0 Likes
Accepted solutions (1)
69 Views
11 Replies
Replies (11)
Message 2 of 12

moehlmann_fe
Observer
Observer
Accepted solution

Getting references to multiple items in order to move them through Process Flow is, in my opinion, best done by using a list. The separator can push all items onto a global list in the Send to Port option. A token can then pull them from the list on batches of up to 20. Note that I activated the option Allow Multiple Pushes Before Backorder Fulfillment in the lists properties. This is done so the token 'waits' for more pushes and not just pulls the first item pushed onto the list and continues immediately.

The separator being blocked until it is empty is the default behaviour, so I'm not sure why you think you have to add this logic to the Process Flow. You also wouldn't really need a zone in this case. In the attached model the separator closes its input in the Setup Finish trigger. After a batch is unloaded by the transporter, the token checks if the separator is empty. If this is the case, the input is opened again. (So in this example the separator stays unavailable until the previous was unloaded)

A zone can be helpful if the movement onto the machine is also controlled by Process Flow and thus would ignore the closed inputs. By limiting the maximum content of the zone you can control how many items can enter the machine at a time.

transport-by-batch.fsm

Message 3 of 12

julie_weller
Not applicable

Hi @lili, was Felix Möhlmann's answer helpful? If so, please click the "Accept" button at the bottom of their answer. Or if you still have questions, add a comment and we'll continue the conversation.

If we haven't heard back from you within 3 business days we'll auto-accept an answer, but you can always comment back to reopen your question.

0 Likes
Message 4 of 12

Lili
Not applicable

Thank you so much for your answer @Felix Möhlmann and sorry for my late response.

I studies the model you have attached and I have questions:

1) As my main model acquires the fixed resources first and each token has to represent one flow item with specific labels, how can I apply the same logic to my model? (In the model you attached one token represents up to 20 items that are being pulled from the list and transported by the task executer. I want the task executer to also pull up to 20 tokens accordingly and I also want to know where is the best place for a release resource activity for the separator)

2) I'm getting an error I'm not sure why

MODEL:/Tools/ProcessFlow/ProcessFlow/Load>variables/involved2 Line 6 syntax error, unexpected identifier Could not finish parsing because of previous errors.

I'll upload a model close to what I want

sample- acquiring multiple tokens from a list.rar

0 Likes
Message 5 of 12

moehlmann_fe
Observer
Observer

To build this logic while keeping a token for each item (and having all of them use the same path through the Process Flow) you can emulate what the 3d-logic does. Create complete task sequences with a Break task after loading for all items and dispatch them to the transporter. The Break task allows the task executer to start a different task sequence, going back to the previous one when the new one finishes. This leads to the transporter first loading items up to its capacity, then unloading them in the opposite order.

PF_Transport_ItemPerToken_FM.fsm

You are getting an error because you typed "Item Container" into the Station field as text, instead of choosing the option from the list of options. Choosing from the options will generate code in the background. The displayed text in the field is defined as markup within that code.

I don't understand why you even acquire the separator as a resource. It is fed through a port connection in the 3d logic. Acquiring it in a Process Flow doesn't do anything apart from restricting other tokens in the Flow to continue past that activity. If you want to control at what point in time the separator can receive the next item you have to close/open its input like you see in my original model.

0 Likes
Message 6 of 12

Lili
Not applicable

Thank you for your response @Felix Möhlmann the model you uploaded does exactly what I wanted.

I tried to recreate the same logic in my main model, however the model keeps getting this error and I don't know how to fix it.

As I cannot share my model here I'll create a private question and upload it there.

0 Likes
Message 7 of 12

moehlmann_fe
Observer
Observer

Sure, but note that I do not have the rights to see private questions. So please link back to this question if you haven't done so already, so whoever responds has more context to work with.

0 Likes
Message 8 of 12

Lili
Not applicable

Thanks for the notice.

Is there a way I can share the model with you as you have been involved the most?

0 Likes
Message 9 of 12

Lili
Not applicable

Hi @Felix Möhlmann!

I changed my main model so that it's possible to have one token for a batch of flow items in the 3D model, and I have made some changes in the model you uploaded so that it resembles to my main model, however the model stops after one successful run.

Can you take a look and tell me what is wrong with it? Why doesn't it acquire the AGV for the second time?

batching test-1.fsm

0 Likes
Message 10 of 12

moehlmann_fe
Observer
Observer

You don't release the separator, so the tokens get stuck in Acquire sep.

Also, the connection ranks of the Decide activity 'Separator Empty?' are switched around. The token currently continues down when there are still items on the separator.

1687176505221.png

Finally, the token should not loop back to the top once the batch is finished. The source already creates a token for each item that enters the queue.

batching-test-2.fsm

0 Likes
Message 11 of 12

Lili
Not applicable

Thanks for your answer @Felix Möhlmann

What if I want a crane to unload the items? Do I need to load the items by the task executer and move them to the destination, then push items to list for the crane to load in bundles of up to 20, then unload by the crane?

0 Likes
Message 12 of 12

moehlmann_fe
Observer
Observer

I'm not sure I understand the problem. You use a crane the same way you would use other task executers.

The only difference is that a crane can not do 'normal' travel tasks. It won't move when you tell it to travel to an object. You can use the Travel to Loc version of the travel activity or have the crane move as part of load and unload tasks.

capture.png

0 Likes