question

lili avatar image
0 Likes"
lili Suspended asked Andrew O commented

Defining a label and storing in bundles

Hello Flexsim community,

I am simulating a model where one type of item goes into a separator and three different types of items come out and are stored in different floor-storage racks in bundles of quantity 40. I have two problems:

  1. defining the labels (I use item list and trigger on exit in the separator to create 3 item types and I utilize pull from list option in racks to condition the inputs of each rack, but this doesn't seem to work, as all types of items are stored in all of the racks)
  2. storing items in a rack with bundles (I would like to know how to store items in a pallet with bundles of 40 and place them in a rack)

I would appreciate it if you helped me with this simulation.

I will attach the model for more information

sample.fsm

FlexSim 22.2.0
rack storageassign labels
sample.fsm (55.3 KiB)
· 4
5 |100000

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

Joerg Vogel avatar image Joerg Vogel commented ·

items on a pallet are subnodes to this pallet. You don’t store items on a pallet in rack. You store only pallets in a warehouse. This might be a bit confusing, but FlexSim has undergone a change of strategy if it comes to using racks in a model. If you put a rack object into model, then you activate automatically a warehouse tool. And this warehouse will be the only one in your model. This warehouse tool comes with a bunch additional features to manage multiple racks and rack storage types. And two of these features are two internal lists: a list of all slots (lowest level to store items) and a list of all storage items (items to be managed in a warehouse). BUT the list of all storage item recognizes only the top level of container structure or packed structure of item subnodes. In your case the warehouse only “knows“ of the existence of your pallets. It knows the dimension of the pallet item, but of the single empty pallet object only. It knows if this pallet has been addressed to be stored, has entered a slot, is marked to get outbound or has freed a slot again by exiting a rack of this warehouse.
You can always query a subnode structure of a pallet in your model or you can add label data to your pallet to represent the structure of the pallet which you read if you try to find packed items on a stored pallet in a rack.
You can pack items on a pallet by a combiner object. You can add a combiner for each different type of packed items. Or you define a label at each pallet to tell the combiner to change a recipe of collecting items to being packed by this label value. The later strategy works with an On Entry trigger template option called “Update Components List by Global Table”. You find for this strategies several answers here at this site, videos on YouTube and Vimeo.
Naturally you can do the same just by source code through command moveobject or FlexScript treenode Class Property up. Or in a Process Flow by a moveobject activity.

Assigning labels are feature in Templates in Data section of Triggers in Objects, a process flow activity or a method in Flexscript API.

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

Dear Joerg thank you for your response about rack storages, it was really helpful.

I have also read about labels, however it hasn't been helpful. I would appreciate it if you could take a look at the model I have uploaded so that I can know where the problem is. The model doesn't give me any errors, but the flow items don't move from the separator to the racks.

I use a trigger to set types by percentage on the separator, then in the input tab of the racks I use pull from item type, WHERE type == 1 as a pull strategy and specific item label as pull requirement. Is this approach incorrect? If so, how can I fix it?

0 Likes 0 ·
sample.fsm (55.3 KiB)
Joerg Vogel avatar image Joerg Vogel lili commented ·
You need an additional queue behind a separator to benefit from any change done to an exit trigger, because the split operation is fulfilled at the very last moment on exit of every item, then the function send to port cannot create any influence to a new create label called Type.
0 Likes 0 ·
Andrew O avatar image Andrew O commented ·

Hi @lili, was one of Joerg Vogel's or Jason Lightfoot's answers helpful? If so, please click the "Accept" button at the bottom of the one that best answers your question. 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 unaccept and comment back to reopen your question.

0 Likes 0 ·
Joerg Vogel avatar image
0 Likes"
Joerg Vogel answered Joerg Vogel commented

As I tried to explain in my comment, a separator is a bit strange in comparison to a combiner. Any item that gets created in split mode gets into existence on exit event. You cannot evaluate any label in a function like Send to Port (output pane) assigned by a trigger.

  • You can add an expression field in an ItemList, which assert a label to the pushed item reference and return the same value for a field. (2nd source example)
  • You can do some source code writing in output function Send to Port, which assert a label at the item. This label is accessible by a label field in an ItemList. (3rd source example)

Pull from List uses a SQL syntax clauses to evaluate which items get into a test for Pull Requirement. You can set this function to Pull anything if you can find a suitable query.

To filter a range or some values you can add a clause of IN (value1, value2, value3). (4th source example).Pull_from_list_for_racks.fsm



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

Joerg Vogel avatar image Joerg Vogel commented ·
@dev, I ran into some problems accessing an empirical distribution tool for setting up a label value in an expression field of a List! I used instead command dempirical.
0 Likes 0 ·
Jason Lightfoot avatar image
0 Likes"
Jason Lightfoot answered

To store non-empty pallets I recommend using the autosizing pallet described in the answer here. You'll need to copy the pallet flowitem to your model as it uses some behaviour subnodes to do the resizing.



5 |100000

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