question

Gabriel Morgante avatar image
0 Likes"
Gabriel Morgante asked Gabriel Morgante answered

How can I set a specific item for a specific transporter?

Hello everyone,

First time here so be nice with me please... lol
I am trying to model a line where I have 3 cranes working together but each one of them have different max weight capacities. So there may be a item type that only one or two of the crane would be able to carry.
Is there a way to apply this logic to the transporters?
What would be the perfect solution for me would be a way to configure the crane so that it only would pick an item with a determined label or label value.

I hope someone can help me with that.

Thanks a lot!

Gabriel.

FlexSim 19.0.0
transporterquerycraneitemtype
· 11
5 |100000

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

Gabriel Morgante avatar image Gabriel Morgante commented ·

Just to add some more information:

I am using a TEList to manage the three cranes and they are being requested by the processors using Task Sequence Subflow.

0 Likes 0 ·
David Seo avatar image David Seo Gabriel Morgante commented ·

You can use push items to ItemList using 'Push ItemList' and the receiving resources pull the required items from the ItemList using SQL filtering itemtype and conditional crane.

You can get the solution if you will upload your model file.

1 Like 1 ·
Gabriel Morgante avatar image Gabriel Morgante David Seo commented ·

David,
What you said made some sense in my head but it's still not clear to me how I would apply this 'conditional crane' idea.
I didn't attached my model initially because it's still running with only one item type as I'm still trying to find a solution for the item/crane selection. But I'll upload it anyway so you can have a better understanding of what I'm trying to do.
Thank you!

modelforupload-crane-selection-by-item-type.fsm

0 Likes 0 ·
Show more comments
Gabriel Morgante avatar image Gabriel Morgante commented ·

@david.seo

Iam trying to work with the idea of pushing and pulling from an item list and it seems to be working. There are two variables of decision for each move on my model:
1-Which crane will be used
2-The process sequence by item Type (there will be around 9 Types)

I have made a selection of cranes by region, and it is representing fairly well my reallity.
About the process sequence Iam trying to use the push/pull from list with a Query by Type and a Pull Requirement by Label. This Label (st_*nameoftheprocess*) represents the current state of the item being processed because some items come to the line already half processed by other lines.
The logic seems pretty solid to me but the models isn't working with the restriction of the Pull Requirement by Label. It literally just ignores the label value...

How it should work:
Type 1 arrives at Queue "Chegada". Gets a Label st_start = 1 and goes to PR_SERRA. Gets Label st_start = 0 and st_serrado = 1 and goes to PR_JATO.
Type 2 arrives at Queue "Chegada" with Label st_serrado = 1. Gets Label st_start = 1 and goes to PR_JATO.
How it is working:
Type 1 arrives at Queue "Chegada". Gets Label st_start = 1. The it's pulled by PR_SERRA and also is pulled by PR_JATO even though it doesn't have the Label st_serrado = 1 that should be a requirement.

I am pretty sure it is a syntax error since I am very new to FlexSim so I would be very thankfull if you could take a look at my model for me and see if you can find what is wrong.

FYI:
I have configured only the processors "PR_SERRA" and "PR_JATO", you don't have to look at any other processors.

Attached is my model and a picture of how my PR_JATO (that seems to be the problem) is configured.

Thanks a lot for your help!

Gabriel.

modelforupload-push-pull-from-list-logic.fsm

0 Likes 0 ·
David Seo avatar image David Seo Gabriel Morgante commented ·

@Gabriel DOM2

You should not use 'Pull Requirement' field when using 'Pull from List' Pull Strategy. The field setting of it only can be used when not using 'Pull from List' strategy.

You should control the pull requirement in 'Query' field using Query filtering command in 'Pull Strategy' field.

You can make the references about various Query commands in the Help>search>'Query' key word.

1 Like 1 ·
Gabriel Morgante avatar image Gabriel Morgante David Seo commented ·

Ok good to know.

In my model I've been using a Label called "craneAcess" with value of 1 for Crane1, 2 for Crane2 and 3 for Crane3. So my query for pulling the cranes 1 or 2 would be "WHERE craneAcess < 3 ORDER BY utilization ASC"

How can I query that if the puller is PR_JATO then only Crane2 can deliver but if the puller is PR_SERRA then both Crane1 and Crane2 can deliver?


I am having a little bit of trouble to find how can I set this 'if' logic in SQL. Could you help me?

Thank you!

Gabriel.

0 Likes 0 ·
Show more comments
Jeff Nordgren avatar image Jeff Nordgren commented ·
@Gabriel DOM2

Did any of these comments answer you question?

Thanks.

0 Likes 0 ·
Gabriel Morgante avatar image Gabriel Morgante Jeff Nordgren commented ·

Jeff,

They didn't exactly answer but based on some of the information shared here I was able to reach the goal of my model.
Still I would like to know if there is some way to restrict the pick-up of determined items by determined task executors in a more direct way...

Thanks!

Gabriel.

0 Likes 0 ·
tannerp avatar image tannerp Gabriel Morgante commented ·

@Gabriel DOM2, The most direct way I can think of to do this would be to have a label with the weight of the object and then reference that when sending items.

For example, the code might say something to the effect of: "If the weight of the object is between 10 and 20 units, use X crane. If the weight of the object is 20-30 units, use Y crane. And so on..."

Does this help spark any ideas? I haven't personally done this, but I am just thinking how I would go about it.

1 Like 1 ·

1 Answer

Gabriel Morgante avatar image
0 Likes"
Gabriel Morgante answered

Guys I'll post what was my end solution for this problem in case someone looks for the same answer.

I did it using process flow since I have very little to none programming skills. Problably there's an easier way to do it by Flexscript...

My solution:

Since I was using a subflow to coordinate all my transports the answer was to use a sequence of Decides right after the "Start" activity of the subflow.
That way I was able to control which crane would be used for any specific item or destination.

For a decide based on the location I used a conditional decide where the condition was [ token.toObject == node("/destination_name", model()) ]

Where "true" means it's going to the said destination. Then the token would proced to acquire the appropriate resource.

For a specific item the logic is the same. A conditional decide with the condition [ token.item.Type == x ]

In my case I used a Type label but it could work with any label that suits best the model.

Attached is a print screen of the subflow with the conditions.

I hope it helps! Thanks for everything!


print1.png (22.3 KiB)
print2.png (4.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.