question

shanice.c avatar image
0 Likes"
shanice.c asked Felix Möhlmann commented

What's the difference using Resource and list in Process flow?

I'm using Resource to administrate all standbypoints of AGV, I read manual before, it says that Resource and Lists both can be used for shared assets.

But I have problem if using Resource, I want to understand how to fill in the parameter when using Resource.

Below is my process, lefthand side is using list; righthand side is using Resource. Using List seems working fine.

p1.png

Below is my setting of Acquiring Resource.

p2.png


0901resource and list.fsm

FlexSim 21.2.0
listresourceflexsim 21.2.0shared assets
p1.png (38.1 KiB)
p2.png (184.2 KiB)
· 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.

David Seo avatar image David Seo commented ·
'List' can be used as shared asset or not. Shared Asset is like 'Task Executers' of 3D standard.
0 Likes 0 ·

1 Answer

Felix Möhlmann avatar image
2 Likes"
Felix Möhlmann answered Felix Möhlmann commented

The "Assign to Label" option only lets you assign the label to a token. Assuming that "token.agv" references an AGV in the model, this is likely the reason why you are having problems. Assign the pulled resource to a label on the token first. Then, if you want to have the value available on the AGV, use an "Assign Label" activity to copy it from the token onto the AGV. The "Release" activity also expects a label on the token.

The advantage of the "Resource" is that it lets you define a numeric ("virtual", so to speak) resource with only a few clicks, whereas doing this with a list would require you so create some dummie objects/tokens.

If you are referencing to a group of objects in the resource, it internally switches to using a list as well. At this point, the only difference is that, again, the setup of a resource of group objects requires a couple fewer clicks than a list. On the other hand, the "Pull From List" activity has some options that are missing from the "Acquire Resource" activity, such as distinguishing between requested and required number of pulled entries.

A list also supports partitions and can be made global to pass information/objects between multiple parts of the model.

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

shanice.c avatar image shanice.c commented ·

Hi, @Felix Möhlmann

Thanks for the answer. Below is my understanding, but how could I Assign the pulled resource to a label on the token, I tried to look for the script that read the resource token acquired. But I could not find this kind of method.圖1.png

May I ask more about the partition, when will this being used?

0 Likes 0 ·
圖1.png (864.5 KiB)
Felix Möhlmann avatar image Felix Möhlmann shanice.c commented ·

That's what the field "Assign to Label" in the "Acquire" activity does. In your screenshot the pulled resource will be assigned to the label "agv" on the token.

In the "Release" activity you also have to enter that same label into the "Resource(s) Assigned To" field to correctly release them.

In your case you would probably want to assign the resource to "token.standbypoint" or something similar. Then you copy it to the agv in your "Assign Labels" activity by writing "token.standbypoint" in the value field.

Edit: (Sorry, didn't notice that last sentence at first)

Partitions are "sub lists" in a way. The divide the list into subsection defined by the partition id. This allows you to search for an entry in only one partition, which can increase the model performance if you are using very large lists.

For example you could use the "type" label of items as partition id, which allows you to pull items of a certain type without needing a query.

If you are using partiotions all entries must belong to one though and it is not possible to pull from multiple partions in a single activity.

0 Likes 0 ·
shanice.c avatar image shanice.c Felix Möhlmann commented ·

@Felix Möhlmann Thank you so mush prompt for prompt reply and explanations.

Maybe I could try to use partition in my model. Since now Queues and Processors are both limited resources in my model, I define resourcetype first, Queue has resourcetype==0, Peocessor has resourcetype==1. Then, when pulling out a resource from list, use query criteria like "resourcetype==1" to search for an available Processor. And all these can be dealt with partition function. This is my understanding.

0 Likes 0 ·
Show more comments