Loading and unloading multiple items by crane using process flow logic

Loading and unloading multiple items by crane using process flow logic

Felicity1
Not applicable
616 Views
19 Replies
Message 1 of 20

Loading and unloading multiple items by crane using process flow logic

Felicity1
Not applicable

[ FlexSim 22.2.0 ]

I want to load and unload 10 items at once (I want the crane to go down and up again only once) and I have checked several questions here, however none of them seem to work for my model. I'll upload a test model and describe what exactly I want the model to do work as described below:

1) There are 2 types of items. each type must be sent to a specific inventory. Items of type 1 must be transferred to Inv2 and items of type 2 must be transferred to Inv3 and Inv4. Here I would like to know how I can refer to both these inventories in my process flow without having to define them as a resource (So that when other cranes also want to unload items in the same inventories they don't have to wait for the Inv3 or Inv4 to be released)

2) I tried two different methods to load 10 items at a time but they don't seem to work. What is wrong with the model?

Thanks in advance


test- loading 10 items by a crane.fsm

0 Likes
Accepted solutions (1)
617 Views
19 Replies
Replies (19)
Message 2 of 20

joerg_vogel_HsH
Mentor
Mentor

here is an example: Push items on Itemlist not Tasksequence List in Use Transport of Queue1 -> similar to Tutorial. Process Flow > Batch Item activity > Aggregation: make an Array -> run sub flow activity to load multiple items -> run subflow to unload multiple items.

transport_more_items.fsm

Message 3 of 20

jason_lightfoot_adsk
Autodesk
Autodesk
Accepted solution

You're invoking your process for each item entering inv1 which is not matching the logic you have following. Either batch those into a single token with an array of items to pick, or create a single token that loops around the process pulling items from inv1's list.

Also at the moment token.item is only ever going to be one item as you're not assigning it the list of pulled items from the list.

Lastly - you can remove the crane's travel tasks - it only does offset travel by default.

0 Likes
Message 4 of 20

Felicity1
Not applicable
@Joerg Vogel Thank you for your answer.

I studied my model some more and realized I need the crane to load up to 10 items but can move less items as well. Can I use this logic using batch or do I need to use the list option only?

0 Likes
Message 5 of 20

joerg_vogel_HsH
Mentor
Mentor

@Felicity, you need to aggregate more items or you let the crane wait. You can always decide how you build your logic. A list is only a suggestion, a batch is a suggestion, too. Currently you have for each item to transport a new token. If your logic consists of calling a subflow, you have to aggregate data from single tokens into a structure like an array to call a subflow more often. Or you choose a structure which loads more items to a crane and then you wait until a time interval ends. Then the crane moves. Or the crane has loaded already its maximum capacity and you let the crane continue immediately.

Message 6 of 20

Felicity1
Not applicable

@Jason Lightfoot Thank you for your answer

I have assigned token.item to the list, but I don't know what you mean in the first paragraph. Can you perhaps take a look at the edited model and tell me what I should do to make it work?

test- loading 10 items by a crane.fsm

0 Likes
Message 7 of 20

Felicity1
Not applicable

@Joerg Vogel I see. I want to use lists to move between 1 and 10 items and I saw something similar here:

https://answers.flexsim.com/questions/144978/unloading-items-from-a-task-executor-by-crane.html

But the model doesn't work for me. I uploaded an edited version of my model in my comment above. Is it possible for you to make the changes you're suggesting on the model?

0 Likes
Message 8 of 20

joerg_vogel_HsH
Mentor
Mentor

@Felicity, I want that FlexSim users get their work done by themself. I try to give support to find solutions, because I can learn more myself. Maybe some other person from the group of FlexSim distributors or developers will do this for you.

0 Likes
Message 9 of 20

jason_lightfoot_adsk
Autodesk
Autodesk

By invoking a process I mean creating tokens using a source activity - whether that's scheduled or event driven.

In this case think about what that token represents when it is created, and then think about the actions your creating with it. It doesn't make sense for each item to create an action that loads 10 items.

0 Likes
Message 10 of 20

jason_lightfoot_adsk
Autodesk
Autodesk

Hi @felicity, was one of Jason Lightfoot's or Joerg Vogel'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 comment back to reopen your question.

0 Likes
Message 11 of 20

Felicity1
Not applicable

@Jason Lightfoot you're absolutely right!

I hadn't noticed that. I have worked on my model for the past couple of days and changed the structure a bit. I'll upload it here. Instead of items representing a token, the crane is moving through the process flow as a token. I think this model must work if properly set. However I think I'm doing something wrong. Can you take a look?
(I'm not sure if I've filled the puller, push value and assign to fields correctly)

Thanks in advance


test- loading 10 items by a crane- crane list.fsm

0 Likes
Message 12 of 20

Felicity1
Not applicable
@Joerg Vogel I appreciate your concern. I have been studying my model a bit more and made some changes. It still doesn't work the way I want it to, but I think I'm a lot closer to solving the problem. I uploaded the edited model in one of the comments above. It would be appreciated if you took a look at it.

Thank you

0 Likes
Message 13 of 20

joerg_vogel_HsH
Mentor
Mentor

felicity-run-sub.jpg

@Felicity, Can you tell us a reason why you load n items and you unloads n-1 items. This results in that your crane resource can never be released after loading only 1 item.

0 Likes
Message 14 of 20

Felicity1
Not applicable

@Joerg Vogel Sorry it was a mistake. I uploaded the edited model and the crane moves now. The first part of question still remains however. I want the crane to load type1 items to Inv2 and type2 items to either one of Inv3 or Inv4. How can I make this happen?

0 Likes
Message 15 of 20

jason_lightfoot_adsk
Autodesk
Autodesk

It looks correct to me - is there something it's not doing how you want it to?

One thing I might note is that you've almost identical activities for the two parallel loops - you could move one of the crane loops to an ObjectProcessFlow - where you would then reference the crane as current and remove the acquire/release resource activities - making it simpler again. Instead of 2 lists you can use a label to partition one list and just pull from the 'correct' partition. All that's needed then is to decide how to route to the inv2, 3 and 4 (which will determine the partition).

You might instead want to put that decision logic on the inv1 and have that put a destination label on the item. Then you can just have a single unload to token.item.destination and one list with no partitions.

Sorry there are so many options.

0 Likes
Message 16 of 20

Felicity1
Not applicable

@Jason Lightfoot I want the model to send type 2 items to either Inv3 or Inv4. What it's doing here is that it sends everything to Inv3.


In my main model, the tokens have to decide where to go based on some labels (for example tokens with label "A" can only go to Inv2, while tokens with label "B" can choose between Inv3 and Inv4). And sending items into a list like I did in this model, where each token represents a resource, causes the loss of those labels, so now I can't determine a destination. (This is also the reason I have two parallel loops, because I don't know how to set different destinations based on a label that doesn't exist in the process flow)


I guess what I need is to be able to choose the destination of each bundle of items (that are being moved by the crane) using the label they had before entering the list.

0 Likes
Message 17 of 20

jason_lightfoot_adsk
Autodesk
Autodesk

Here's a modified model that:

1) Defines the process once but uses labels to determine locations and types

2) Removed the Crane Travel tasks - they do nothing.

3) Adds a travel to loc for the crane to travel to the pickup point.


test-loading-10-items-by-a-crane-crane-list_jl.fsm

Message 18 of 20

Felicity1
Not applicable

Thank you so much @Jason Lightfoot
I just have one problem. When I fast forward the model, all of the type2 items are transported to Inv3 and when it's full the model stops and no items are transported to Inv4.

0 Likes
Message 19 of 20

jason_lightfoot_adsk
Autodesk
Autodesk

Adding a delay between entering the first floor storage and finding the next floor storage slot should fix this.

test-loading-10-items-by-a-crane-crane-list-jl2.fsm

Message 20 of 20

Felicity1
Not applicable

I see

Thank you so much @Jason Lightfoot. This works exactly the way I wanted.

0 Likes