Defining a label and storing in bundles

Defining a label and storing in bundles

Lili
Not applicable
1,240 Views
7 Replies
Message 1 of 8

Defining a label and storing in bundles

Lili
Not applicable

[ FlexSim 22.2.0 ]

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

0 Likes
Accepted solutions (1)
1,241 Views
7 Replies
Replies (7)
Message 2 of 8

joerg_vogel_HsH
Mentor
Mentor

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
Message 3 of 8

Lili
Not applicable

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
Message 4 of 8

jason_lightfoot_adsk
Autodesk
Autodesk

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.



0 Likes
Message 5 of 8

joerg_vogel_HsH
Mentor
Mentor
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
Message 6 of 8

joerg_vogel_HsH
Mentor
Mentor
Accepted solution

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


0 Likes
Message 7 of 8

joerg_vogel_HsH
Mentor
Mentor
@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
Message 8 of 8

andrew_o2
Not applicable

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