Processing time from global table

Processing time from global table

poopatel
Not applicable
473 Views
12 Replies
Message 1 of 13

Processing time from global table

poopatel
Not applicable

[ FlexSim 23.2.0 ]

1708629882127.png1708629896356.png

1708630127964.png

Currently my model is generating parts in MainQueue and sending it to PDCs. Each part has a value called CAC. PDCs will push part to a list - ItemList1. each SC generates a demand (with CAC demand value) randomly and pull a part from PDCs which has CAC value greater than and closest to the demanded CAC. If not available then a new part is generated at Queue5 and send to respective SC through processor13.

If a part is available in the list, I want to assign processing time as per Global table which has processing time for each PDC to SC combination (processing time matrix). I also want to know if this can be done using just a single processor rather than individual processor for each individual SC and How? This is one scenario.

Another scenario will - lets say I send each PDC item to different list or list partitions. I want each SC to first look at PDC with least processing time for part if not then next least processing time and so on. If required part is not available in any PDC only then it will create and pull from Queue5.

Please can someone help me improve my model for these two scenarios

process-flow-expand.fsm

0 Likes
Accepted solutions (1)
474 Views
12 Replies
Replies (12)
Message 2 of 13

jason_lightfoot_adsk
Autodesk
Autodesk
Accepted solution

Are you saying you don't know how to read a table value? It will be

Table("Process_Duration")[scid][pdcid]

Where scid and pdcid are both strings you will know from the item pulled. That's the processing time and you can use one processor but will need to change the capacity to reflect the system.

To pull based on the shorted processing time you just need to be able to refer to the table and the values we just mentioned in a new expression field (called, for example:'pTime') that reference the puller and value labels (puller is currently the token and value is currently the box). Then you can order by pTime ASC and the pulled value should be the one with the shorted processing time.

0 Likes
Message 3 of 13

poopatel
Not applicable
I do know how to read a table in processor but I am unable to reference the token (order). would be great if you can show it.
0 Likes
Message 4 of 13

jason_lightfoot_adsk
Autodesk
Autodesk

The List expression for process time ('pTime') will be something like:

Table("Process_Duration")[puller.SC][value.PDC]

if the pulling token has a label called SC with a value corresponding to the table's row id and the box has a label called PDC with a value corresponding to the table's column id.

0 Likes
Message 5 of 13

poopatel
Not applicable
I am not sure how to combine the query I already have with the one that you mentioning
0 Likes
Message 6 of 13

jason_lightfoot_adsk
Autodesk
Autodesk
You'd just add the clause ORDER BY pTime ASC
0 Likes
Message 7 of 13

poopatel
Not applicable
I already did that but its not working
0 Likes
Message 8 of 13

jason_lightfoot_adsk
Autodesk
Autodesk

Can you post what you have so far so we can take a look?

Have you checked that your pTime expression is evaluating correctly based on the puller (use the puller sampler in the properties panel when looking at the list entries)

0 Likes
Message 9 of 13

poopatel
Not applicable
0 Likes
Message 10 of 13

jason_lightfoot_adsk
Autodesk
Autodesk
time: 41.996956 exception: FlexScript exception: SC2 is not a valid row name for <no path> at MODEL:/Tools/GlobalLists/ItemList1>variables/fields/pTime/expression

Your table is called Process_Duration, not "GlobalTable"

1708725986974.png

0 Likes
Message 11 of 13

poopatel
Not applicable

Hey the logic is working, but what about processing time?

1708726876056.png

What will the input in Row and Column, its not allowing me to reference the token.

0 Likes
Message 12 of 13

jason_lightfoot_adsk
Autodesk
Autodesk
In this case you know the item and current (the machine)

The column reference will I think be item.PDC and the row could be something like current.outObjects[1].name to get the queue name.

0 Likes
Message 13 of 13

poopatel
Not applicable
It works!! Thank you, Jason!
0 Likes