question

Mohamed Eldakroury avatar image
0 Likes"
Mohamed Eldakroury asked Jeanette F commented

Moving batched items as a group in Process Flow

Hello,

I am using process flow to batch 4 items on a conveyor then release them. My goal that once all 4 items are together, they can move to the next conveyor. However, they have to move together.

The move object is treating every token individually and sending items to different conveyors. If I change the "tokens to release" value, to one, only one item is moved to the next step and the rest sit there (which makes sense).


How do I make all batched items move together?


Also, I move objects will move objects to the next conveyor no matter if it's full or not. Do I need a decide step on Model.find("StraightConveyor3").subnodes.length to check how many flow items on the conveyor before I send more, or is there a smarter way to do that?


BatchingTestModel.fsm

FlexSim 23.2.2
batching
· 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.

Jeanette F avatar image Jeanette F ♦♦ commented ·

Hi @Mohamed Eldakroury, was Jeanette F'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

·
Jeanette F avatar image
0 Likes"
Jeanette F answered Jeanette F commented

Hello @Mohamed Eldakroury,

You can batch the tokens into a single token that has an array of the items. This array can be referenced to move all the items at once.

1708037009082.png

I do not recommend moving items off the conveyor without passing them through an exit transfer. The entry and exit transfers for a conveyor are an important part of finishing up the kinematics and such that the conveyor system controls.

batchingtestmodel_1.fsm



· 6
5 |100000

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

Jason Lightfoot avatar image Jason Lightfoot ♦ commented ·
So you should:

connect the exit transfer to the entry transfers

hold the first item (stop it)

When you have 4, resume them and send them to the correct station - which will allow them to flow between the ports correctly.

1 Like 1 ·
Mohamed Eldakroury avatar image Mohamed Eldakroury Jason Lightfoot ♦ commented ·
Thank you, yes, that will work for what I want to do but batching will allow me to move them as an array, rather than individual items, but I'll consider doing it that way.
0 Likes 0 ·
Jason Lightfoot avatar image Jason Lightfoot ♦ Mohamed Eldakroury commented ·
As Jeanette said, moving from one conveyor to the other without stopping them and passing through entry and exit transfers is not recommended.
0 Likes 0 ·
Joerg Vogel avatar image Joerg Vogel commented ·
This is mere a visual request or a statistical. If it is visually then you can adjust item location and size so, that a last visible item behaves like it should. All others are extremely small, are set to invisible and moved to locations beside last visible item, that they haven’t any impact on movement. You can hide standard shape of not combined state items inside an added drawsurrogate object, which you can add in animation editor.
0 Likes 0 ·
Mohamed Eldakroury avatar image Mohamed Eldakroury commented ·

@Jeanette F That worked, thank you!

The reason I am using control points before the exit transfers to move objects, is that when I use the "wait for event" on entry and use exit transfers as my object to trigger that event, it never triggers. I'm assuming because the object only enter the exit transfer when they're about to leave?


In this case, how would I use a trigger event on entry and exit transfers? Here's my modified model showing items stuck at the end of the first two conveyors from the source.

EntryExitTransferTrigger.fsm

0 Likes 0 ·
Jeanette F avatar image Jeanette F ♦♦ Mohamed Eldakroury commented ·

Hello @Mohamed Eldakroury,

The on entry and on exit events do not work for the entry and exit transfers as mentioned in this post.

You can do other things though to accomplish what you are trying. For example, you could set the output send to port with the percentage code.

1708466151364.png

/**Custom Code Port By Percentage*/
int stream = getstream(current);
double randomnum = uniform(0.0, 100.0, stream);
double total = 0.0;

total += 50; 
if (randomnum <= total)
return 1;
total += 50; 
if (randomnum <= total)
return 2;
0 Likes 0 ·
1708466151364.png (19.8 KiB)

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

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