question

Chema Vecino avatar image
0 Likes"
Chema Vecino asked Jason Lightfoot commented

Same resource, 2 batching queues

Probably a really easy question, but I can't figure it out.

A robotic arm transports batches (one item at a time) from two queues into a conveyor and sometimes the robot mixes the items from both batches by not respecting the Target Bath Size.

I think this happens when a new batch from queue B is created while the Robot is unloading queue A, so it stops unloading the current batch to unload the new one and, once unloaded, resumes unloading the first one.

I'm not 100% sure this is what's causing it, but even if it is, I'm not seeing how to prevent this from happening.


Any help?

Case3.fsm

Thanks!

FlexSim 23.2.1
queuerobotbatchmixed batches
case3.fsm (99.0 KiB)
· 5
5 |100000

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

David Seo avatar image David Seo commented ·

You need to upload your issue model for getting quick and detail answers.

1 Like 1 ·
Chema Vecino avatar image Chema Vecino David Seo commented ·

Sorry, I thought I did.
I attached it to the post.

0 Likes 0 ·
Joerg Vogel avatar image Joerg Vogel commented ·
@Chema Vecino, depending on your customized logic, a standard 3D logic creates transport tasks if a destination is available receiving products. Once a sender can transfer an item, he will do it. Then he checks if there is an option set to transport this item by an taskexecuter. Then a transport tasksequence is created and dispatched.

If there is still an output port occupied or the number of receivable items is reached, then any new creation of tasksequences gets delayed. If you you have more than one sender, execution of tasksequences can then be mixed. Here a taskexecuter works on his tasksequences in straight sequence of receiving order. You can control this by a customizing this tasksequencequeue. You can change dynamically a priority to cluster transport tasksequences to be top priority. Or you change the order of execution by setting up new ranks of tasksequences in a tasksequencequeue.

Generally you can also push all transport tasksequences onto a list and pull them by attributes values to keep batches together.

1 Like 1 ·
Chema Vecino avatar image Chema Vecino Joerg Vogel commented ·

I don't know how to prioritize tasksequences by rank. I would if I were using Process Flow, but that's not the case. It all must be done within the 3D model.

I've tried to push the items from the queues to a list On End Collecting and pulling from the entry transfer of the conveyor, but I'm doing something wrong because the items don't show up on "View Entries".

Even if I get them to show, I haven't figured out how to order them so that a batch is transported completely. I can't order them by Type or a number label or age, that won't work.

Thank you for your help

0 Likes 0 ·
Jason Lightfoot avatar image Jason Lightfoot ♦♦ commented ·

Hi @Chema Vecino, was Jason Lightfoot'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 ·

1 Answer

Jason Lightfoot avatar image
1 Like"
Jason Lightfoot answered Jason Lightfoot edited

Use a batch number label and have the entry transfer to the conveyor pull a given batch number, only changing the batch when each is completed.

· 3
5 |100000

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

Chema Vecino avatar image Chema Vecino commented ·

Oh, I didn't even now the entry transfer was an "object" on itself.

If you mean to add a label to a batch, I'm not sure how to do it. Also, in the pull strategy field, I'm not sure how I could change the label value based on the batch being completed.

I've uplaoded the file to the post (sorry, I forgot).

Thanks anyway for your help!


Edit: This must be done in the model, not Process Flow (just in case)

0 Likes 0 ·
Chema Vecino avatar image Chema Vecino Chema Vecino commented ·
Ok, I found the On End Collecting trigger, I didn't know about that either.

So now once a batch is created in queue8 a label "Batch" with value 1 is added, and the same on queue9 for value 2.


What I can't figure out is how to pull batches with only one of those values and change the value once it is completely pulled. Also, this pull mustn't be done alternately but as first available. So I'm completely lost on how to do this.


0 Likes 0 ·
Jason Lightfoot avatar image Jason Lightfoot ♦♦ Chema Vecino commented ·

Some tips:

You can label the non-labelled items in the port's send-to trigger. (I would test if the 'batch' label exists and if not add it)

You can add the batchqty to the first item in the endCollecting trigger to be set on the transfer

Decrement the transfer's batchqty when the robot unload to it (or in process flow use the exit event of the transfer)

I would implement this process (you'll have to do it on the robot unload if not using process flow - just use this for the logic):

1699807194119.png

I'm attaching a model for moderators to view to support you if you get stuck.

Another technique could be to push items to a list using the sendtoport trigger and pull by matching minimum/matching pushtime - I've not tested that.

0 Likes 0 ·
1699807194119.png (19.2 KiB)