question

sofia avatar image
0 Likes"
sofia asked sofia commented

Controlling Transporters with Process Flow

Heelo Community, I'm starting to learn process flow on flexsim, I have a problem on my model, is that I want the 2 Transporters (Transporter 1 and Transporter 3) to take 1 full pallet from the (Zone de stockage), unload it onto the racks ( 50% 50%), and then there are 2 cases :

First case: “if there are empty pallets, the Transporter loads 1 (for each Transporter) from (queue 1 / queue 2), then returns to unload it in the (Zone de déchargement), then he returns to load the pallet in the (Zone de stockage)”.

Second case: if there are no empty pallets, he returns to load the pallet in the (Zone de stockage)”.

PS: I started by making a first process flow where the Transporters take 1 loaded pallet and unload it into the racks, and I created a (wait for event), so that the Transporters wait until the (Queue1/Queue2) are filled with empty pallets, and then they take the empty pallets and they come back, I wanted to start with this model, and add functionality afterwards but it doesn't work, Thanks for your help.

FlexSim 23.0.15
transporters
· 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.

sofia avatar image sofia commented ·
0 Likes 0 ·
transporters.fsm (89.5 KiB)

1 Answer

Felix Möhlmann avatar image
0 Likes"
Felix Möhlmann answered sofia commented

A good way to connect the 3d model to a Process Flow are often times lists. Here you can push the empty pallets to a global list when they enter one of the queues.

After the transporter has unloaded a full pallet it can try to pull a pallet from that list. By setting a maximum wait time, the token can be send to a different connector if no pallet could be pulled and end the current task sequence.

transporters_1.fsm


transporters-1.fsm (88.4 KiB)
· 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.

sofia avatar image sofia commented ·

Thank you for your reply, that's exactly what I wanted, but I need to add another feature is that I need to pull pallets that are empty to the (zone_de_déchargement) even after unloading the entire (zone_de_reception), I don't know exactly what I need to add to my process flow.

Also, I want the transporters to take 2 empty pallets instead of 1 if it's available, otherwise take 1, and otherwise if there's nothing, they take nothing.

PS: For the (zone_de_reception) they only take 1 pallet loaded.

Thank you for your help, it's very useful for my advancement.

0 Likes 0 ·
Felix Möhlmann avatar image Felix Möhlmann sofia commented ·

I would change the way the Process Flow is designed for this. Each token represents one of the transporters and loops through the logic continuously. It first pulls a full pallet and moves it to one of the racks. It then pulls up to two empty pallets and moves then back to the floor storage. Both types of pallets are pushed to the same list in the On Entry trigger of the queues and floor storage, but to different partitions. The Pull from List activities only pull from their respective partition.

If a token can not pull something from the list at any point, the label "FailCount" on the token is incremented by one (see "On Wait Timer Fired" trigger in Pull From List). If the label value is 1, the token is send to the other Pull From List activity to check if another type of pallet is available for transport. If the label value is 2, meaning both pulls have failed, the token instead is send to Wait for Event activity where it waits until a new item is pushed to the list. This is done to prevent the token from infinitely looping between the pull activities if the list is empty.

transporters-fm.fsm

0 Likes 0 ·
transporters-fm.fsm (91.9 KiB)
sofia avatar image sofia Felix Möhlmann commented ·

@Felix Möhlmann,Thank you for your answer. It's very clear and very helpful. You always provide clean solutions.

Thank you again,

0 Likes 0 ·