question

chiiiiii avatar image
0 Likes"
chiiiiii asked chiiiiii commented

the question push to list

Hello, I have a question.


I am currently using an Item List in FlexSim to allow the AMR to transport items. This list records information such as startcp, startstation, endcp, and endstation.


Right now, I use Push To List with the push value set to token.item, and I assign it to token.item. However, this causes the from-to information to be bound within a single record in the Item List.


I would like to change this approach by separating from and to into two independent records, meaning using FromList and ToList. This way, the AMR can read from and to separately and handle the transportation route accordingly.


My issue is that I can only Push To List once since token.item is a single object and cannot be split.


I would like to know how I can separate from and to (i.e., startstation and endstation) into two independent lists without affecting AMR task execution.


Thank you!

FlexSim 25.0.0
listpush to listusing lists
· 6
5 |100000

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

Felix Möhlmann avatar image Felix Möhlmann commented ·
So the destination is not bound to the item? Otherwise I don't understand what you hope to gain by using two lists.

Not knowing the model and current logic makes it hard to follow. Could you maybe describe how the current logic works in a bit more detail and how the new one would differ from it, in the sense of where and how decisions are made?

0 Likes 0 ·
chiiiiii avatar image chiiiiii Felix Möhlmann commented ·

Apologies, I didn’t express myself clearly earlier.


I am currently using an Item List that records startcp, startstation, endcp, and endstation. Then, I Push To List, allowing the AGV to Pull From List and determine the transportation task based on the startstation and endstation stored in the item. This enables the AGV to pick up the item from its current location (startstation) and transport it to the designated destination (endstation).

As shown in the diagram, my current setup follows a from-to transportation model.

1741085594454.png

However, I would like to store the startstation and endstation of the items separately into two different lists.


Why do I want to do this?

In the next step, I plan to calculate the starting locations (startstation) of the items waiting to be transported (since my AGV can carry up to four items at a time). Then, I will compare the distances between these locations to determine the optimal sequence for picking up the items and planning the transportation route.


For example, suppose I have three items waiting for transport:


Item A: startstation = 1, endstation = 6

Item B: startstation = 3, endstation = 5

Item C: startstation = 2, endstation = 4

If the stations are arranged in a straight line from left to right in the order {1, 2, 3, 4, 5, 6}, and the distances between them are equal, then my AGV should optimize its travel route as follows:


Load A at Station 1

Travel to Station 2 → Load C

Travel to Station 3 → Load B

Travel to Station 4 → Unload C

Travel to Station 5 → Unload B

Travel to Station 6 → Unload A

What I need help with

To achieve this shortest path optimization, my first step is to separate startstation and endstation into two independent lists (FromList and ToList) to facilitate the next steps of my algorithm.


I am wondering how I can separate startstation and endstation into two different lists while ensuring that the AGV can still correctly match the corresponding items during transportation.


Seeking Advice

Additionally, I am not entirely sure if this approach is feasible or if there is a better way to achieve my goal. If you have any suggestions or alternative methods that could help me implement this efficiently, I would greatly appreciate your insights!


Thank you!

0 Likes 0 ·
1741085594454.png (44.4 KiB)
Gui Vaccaro avatar image Gui Vaccaro chiiiiii commented ·
Hi, @chiiiiii ,

I modeled similar things a few times. I would suggest using a single list and an attribute, let's say 0 for load, 1 for unload. Then you can sort the list using that attribute in addition to the already previously defined station order. From what I understand about your problem, the list would have four or five fields:

  • value
  • item(s) to load/unload
  • station
  • station sequential order/position in the layout (1,2,3,4,5,6,...)
  • operation (0: load, 1: unload)
If the lists are too large (large manifests per transporter) you could use the operation as a partitionID.

I hope this helps.

0 Likes 0 ·
Show more comments

0 Answers