question

Trex avatar image
0 Likes"
Trex asked Joerg Vogel commented

How to pull items as per sequence in global table from queue in a separate queue

trial.fsm

I have a problem, while sequencing of pull items from storage areas as per requirement from order table.

Here I have 4 different storage areas, where a transporter picks an item as per order sequence. After picking up a single order items, it has to be placed on a staging area (having all items of a single order only). This is proceeded by processing of these items in a combiner and get stacked into a connected queue. Combiner component list has to be updated with the same total number of items as per order table. Stacking of items takes place on 4 staging area following the sequence as per order table. Once a order is finished, next order has to be taken up by next available staging areas.

Staging areas has to be filled as per their avilability

This order has to be followed for each day.

I want to have control on my staging areas to have only those items which are as per order table.
Problem I am facing here is, as soon as the staging area gets empty, it has to start collecting the items for a next available order.

For clear idea I have attached a model

Any help will be appreciated

@jordan.johnson @Jörg Vogel @Sam Stubbs

FlexSim 17.2.1
queuecombinerpull strategyqueue strategypull requirement
trial.fsm (24.2 KiB)
5 |100000

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

1 Answer

Jordan Johnson avatar image
0 Likes"
Jordan Johnson answered Joerg Vogel commented

This is a tricky one. I'm swamped right now, and can't make a demo model, but here's my approach

  • Make a general process flow that creates a token for each order
  • These "order tokens" should each try to acquire a staging area
    • If you make the tokens in the same sequence as defined by the table, they will naturally get an available station in that order
  • Once a staging area has been acquired, the order token should create child tokens (using Run Sub Flow) for each item in the order
  • Each item token should try to acquire another resource (a forklift)
  • Once the forklift is acquired, the item token can tell the forklift to take the 3D item from wherever it is to the staging area
  • The item token should then release the TE
  • At this point, the item token should go to a finish
  • Now the order token will move on from the RunSubFlow, and we know that all items are at the staging area
  • You can use process flow to move all the items into a pallet (which is what the combiner does), and then you can move that pallet to a processor for the "processing" part of the combiner
  • At this point, you can release the staging area resource, so the next order can acquire it

Hopefully, that makes sense. Since I haven't tried it, there are probably some small logic errors, but I hope you can get started, and see the general approach.

· 2
5 |100000

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

Trex avatar image Trex commented ·

trial-for-project.fsm Thank you for your kind support

I couldn't get through process flow, but I tried with task sequence. I am able to get the results. But there is a bug in my code.

  • When I will have 96 parts in corrugate queue, it will send message to the all staging areas where as per the table they will create task sequences for the pick up operation
  • At every exit of staging area, it will again create the task sequences for pick up operation followed by the next row of the table. Row number is triggered through a global variable
  • In the attached model, there isn't any problem, as I have all parts available in the picking queue
  • If parts arrival are delayed before task creation, it pop up the bug

Bug is that when the task sequence are created in the dispatcher from the exit trigger of staging area, it gives an invalid pointer selection. This is due to parts aren't available in the desired picking queue

  • I have picked up the parts through rank command, is there any other command to select the item of other object

Is anything simpler I can do ??

Kindly help me, if it can be performed easily with the process flow

0 Likes 0 ·
Joerg Vogel avatar image Joerg Vogel Trex commented ·

I haven't any Flexsim available at home now, but I have similar problem. In the moment I build a tasksequence, I didn't block the item in the manner that it isn't available for other request. Because there is a time gap between dispatching a tasksequence and its execution, a not blocked item is available for other tasksequences. The other aspect is the central and complex construction of tasksequences. Because the travel of the taskexecuter consumes some time, the model changes. In such situation it is a good practice to slice complex tasksequences and call sub tasks or divert to other tasksequences on the fly instead of creating a long tasksequence with a lot of tasks.

0 Likes 0 ·