question

WillRS avatar image
0 Likes"
WillRS asked WillRS commented

Priority changing alternately over time

Hello everyone!

In this model, I have a truck loading process that works based on priority, depending on the schedule.

For example, Type 1 trucks have priority in the first 6 hours of simulation, then Type 3 trucks have priority for another 6 hours, alternating.

During the Type 1 priority schedule, I can have a maximum of 2 docks at the same time for Type 3 loading.

During the Type 3 priority schedule, I can have a maximum of 2 docks at the same time for Type 1 loading.

I tried to solve this in two ways:

1) I tried to create priorities for the docks and invert between Schedule 1 and Schedule 2. But this logic did not work!

2) I created a zone to restrict the access of tokens that were not priority, to a maximum of 2, through partition. This worked, but I cannot update the partition restrictions by code. I don't know if it's possible using Process Flow Variable

Another alternative, which might work, would be to emulate a zone from a list, but I couldn't create this logic.


Could you help me?

Priority_Change_by_time_Resource_v3.fsm

FlexSim 23.0.15
zonestoken priority
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

Felix Möhlmann avatar image
0 Likes"
Felix Möhlmann answered WillRS commented

I would probably use a list with a custom expression that is used to forbid a given type from pulling a dock when that would surpass the limit.

In the attached example model a partitioned zone is used to be able to tell how many docks (processors) are occupied by a given type. The limit is part of the list field code. During 12AM to 12PM type 2 must not pull more than 2 processors at a time, from 12PM to 12AM type 1 is limited.

limit-by-timeofday-fm.fsm


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

WillRS avatar image WillRS commented ·

Hello Felix

Thanks for the answer! This way, it worked perfectly.

But I confess that I couldn't understand the programming logic, I would like to ask for some clarifications:

- The operating logic of the code of the expression belowLimit and the filter "WHERE belowLimit > 0"

- I also didn't understand the tokens created in the "Source - Prio Change" block. Are they to reevaluate the restriction?

Why is it necessary to create the partitions in the Zone, before starting the simulation in the Processors?

Could you please give me a little more detail so that I can understand.

Thanks in advance!

0 Likes 0 ·