question

bnh-flexsim-for-masterthesis avatar image
0 Likes"
bnh-flexsim-for-masterthesis asked Andrew O commented

How to get information on loaded items on AGVs?

Hey all,

I am currently working on a model in which there are 3 types of flowitems, each labelled with a different value attached. In the system the items are transported in a very simple way from a queue to a sink via 2 AGVs.

Regarding the current loaded item i want to set up a list which includes information about which AGV is loaded with which item based on the item label.
Is there a way to display the name and labels of the item with the related carrier AGV?


kind regards!


Information_Test_01.fsm

FlexSim 23.0.3
agvflowitem lablesdata display
· 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.

Andrew O avatar image Andrew O commented ·

Hi @bnh-flexsim-for-masterthesis, was one of Felix Möhlmann'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 0 ·
Felix Möhlmann avatar image
1 Like"
Felix Möhlmann answered Felix Möhlmann commented

You can build a Statistics Collector to collect/update this data. The general structure of the collector in the attached model is actually based on what FlexSim creates in the background when you add a state chart (or other similar "continuous" chart types) to a dashboard.

On reset, the collector creates a row for each AGV in the "AGVs" group. This is done by returning an array of pointer values to those AGVs in the "Row Values" field.

1675348902273.png

There are two columns defined under the "Columns" tab. The first just shows which AGV the row refers to. This value is written to the table when the row is first created and not updated anymore after that. (Using the "getID" method to generate a unique ID number for the object and write that to the table is mostly the default way FlexSim charts handle object data. It requires to the set the "Display Format" to "Object". Instead you could also just write the name of the AGV as a string value to the table).

1675349216904.png

The second column is set to update whenever it is accessed (such as when you are viewing the collector's table or any chart that draws data from it). The expression for the value checks whether the AGV ("rowValue") has any loaded items. If it does, it returns the value of the first loaded item's "LoadType" label, 0 otherwise.

1675349230136.png

As mentioned above, you can either view the table from the "General" tab or connect the collector to a dashboard chart to display the values there.

1675349390592.png

information-test-fm.fsm


1675348902273.png (33.9 KiB)
1675349216904.png (21.4 KiB)
1675349230136.png (18.8 KiB)
1675349390592.png (4.1 KiB)
· 2
5 |100000

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

bnh-flexsim-for-masterthesis avatar image bnh-flexsim-for-masterthesis commented ·
Thank you Felix! I will look into it!
0 Likes 0 ·
Felix Möhlmann avatar image Felix Möhlmann bnh-flexsim-for-masterthesis commented ·
Addendum: You can access the Statistics Collector's internal table through the same "Table(tableName)[row][column]" syntax that is used to read data from global tables.
0 Likes 0 ·
Jason Lightfoot avatar image
1 Like"
Jason Lightfoot answered Jason Lightfoot edited

There are many ways to do this:

Labels on the AGV: you can create table, array or map and manage those on the load/unload triggers.

Lists: You can have a global list partitioned by AGV with the items pushed to the list or have the list in a process flow to which the AGV is attached again with the items pushed to it.

Tables: You can use Table.query() to select the items and attributes that are subnodes of the AGV.


The key question is from where do you want to access the information, and when - and then where you want it stored.

· 3
5 |100000

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

bnh-flexsim-for-masterthesis avatar image bnh-flexsim-for-masterthesis commented ·
Thank you Jason, but could you please give me an example how to do so?
0 Likes 0 ·
bnh-flexsim-for-masterthesis avatar image bnh-flexsim-for-masterthesis commented ·

Hey Jason,

in my case, the specific information about each AGV needs to be accessed by a CP in the model, so that when an AGV is passing through this CP, an array with arrival time, name of the AGV and the type of loaded item is displayed. Also this should be stored in a continous table during the whole timespan till the end of the simulation run.

0 Likes 0 ·
Jason Lightfoot avatar image Jason Lightfoot ♦♦ bnh-flexsim-for-masterthesis commented ·

Then you'll want to use the list option - possibly partitioned by AGV - or you can use a field using the expression value.up to find the item's location (the AGV) . Using the list fields you can set the dynamic flag to ensure they're always updated with live information.

0 Likes 0 ·