question

lili avatar image
0 Likes"
lili Suspended asked Felix Möhlmann commented

Task executer transport up to 20 items

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!


FlexSim 22.2.0
zonemax contenttask executer process flow
zone-test.fsm (41.2 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.

Julie Weller avatar image Julie Weller commented ·

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 0 ·
Felix Möhlmann avatar image
1 Like"
Felix Möhlmann answered lili Suspended commented

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


· 7
5 |100000

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

lili avatar image lili commented ·

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 0 ·
Felix Möhlmann avatar image Felix Möhlmann lili commented ·

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 0 ·
lili avatar image lili Felix Möhlmann commented ·

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 0 ·
Show more comments
lili avatar image lili commented ·

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 0 ·
batching-test-1.fsm (45.9 KiB)
Felix Möhlmann avatar image Felix Möhlmann lili commented ·

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 0 ·
1687176505221.png (6.9 KiB)
batching-test-2.fsm (46.8 KiB)
lili avatar image
0 Likes"
lili Suspended answered Felix Möhlmann commented

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?

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

Felix Möhlmann avatar image Felix Möhlmann commented ·

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 0 ·
capture.png (9.4 KiB)