question

poopatel avatar image
0 Likes"
poopatel asked poopatel commented

Processing time from global table

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

FlexSim 23.2.0
global tablespullfromlistprocessing timesif-else condition
5 |100000

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

1 Answer

Jason Lightfoot avatar image
0 Likes"
Jason Lightfoot answered poopatel commented

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.

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

poopatel avatar image poopatel commented ·
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 0 ·
Jason Lightfoot avatar image Jason Lightfoot ♦♦ poopatel commented ·

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 0 ·
poopatel avatar image poopatel Jason Lightfoot ♦♦ commented ·
I am not sure how to combine the query I already have with the one that you mentioning
0 Likes 0 ·
Show more comments