Hi,
I'm currently developing a model for scheduling strategy optimisation, so that at every time a manufacturing order is issued, it can select the most appropriate available part to process and the best workstation attending to some factors/priorities previously defined.
So, in this model I have a bunch of BasicFRs (working as some kind of processors) whose attached PF "initializes" them with a "Receive Item" code and by pushing its respective associated BasicFR to a "Resource" List, in order to pull them in other part of the model (in other words, I prefer to use general lists to manage resources instead of Resources PF activities due to its limited functioning). I also consider the possibility of an initial offset time (timeToAvailability) in every workstation, due to which I added a delay activity in the block of activities and, in turn, I can not add the processors to the list as initial content. Here's the PF block:
Along with this, I create tokens at different times in a general PF which act as manufacturing orders, so that they need to pull one of this processors from the list in case of availability. Otherwise, they are sent to a sink and the respective order gets lost.
So far, so good. The issue is that, while the Push (processor) Events are taking place at time "0", there's also 2 manufacturing orders at time 0 (in a General PF) which are trying to pull one of this processors (BasicFRs) in order to complete the issuance of the order. However, the first pull (processor) event happens to occur just after the push event of the first processor, so the 2nd order gets lost and the algorithm does not work properly since it does not consider all available workstations (otherwise stated, regardless of the priorities, it always select the same 1st workstation).
As yet, I have tried different options to fix this, such as substituting the delay activity with a Decide (which could affect the event time execution) and, besides, I know I could add a min offset time (like 0.0001) in the Creation Activity of tokens in charge of manufacturing orders but I guess this is not the right way to get this fixed. I'm not considering advancing in time so that the orders start off one week later. I guess this would be also like killing a flea with a sledgehammer.
I wonder if there is any possibility of controlling the priorities between events/process flows (apart from a Wait for Event Activity) in a manner that is independent of user setting up every time info or parameters are updated (like, i.e. updating Lists Initial Content if timeToAvailability > 0 which I guess could be also done via script). But, overall, I would like to know which is the most proper way (if there's one) to solve this kind of time-0-conflicts regarding FlexSim's internal functioning.
Hoping I made myself clear enough, thanks in advance,
Javi