Я снабдил своего агента штрих-кодом параметров. Ввод представляет собой файл Excel с разными штрих-кодами по мере поступления в источник.
В моей модели четыре разных типа деталей. Часть 1 умножается в модели на разделяемый блок w раз, часть 2 x раз, часть 3 y раз и часть 4 z раз.
Детали проходят через мою модель разными путями. Это означает, что у них разное время и, следовательно, они не возвращаются в раковину в одно и то же время. Поскольку я хочу, чтобы все части одновременно оказались в стоке, я хочу работать с блоком ожидания.
Когда части умножаются, они сохраняют свой уникальный штрих-код.
Пример: часть 3 умножается на y раз. Итак, есть много частей 1 с одним и тем же штрих-кодом. Итак, в блоке ожидания я хочу, чтобы все агенты (части) ждали, пока ВСЕ умноженные части этой части не поступят в блок ожидания непосредственно перед приемником.
Мой подход таков: случай переключения в блоке ожидания после части 1, части 2 и т. д.
А потом внутри корпуса код вида: if w agents with the same barcode are inside the wait block, free them
. Но не все другие агенты. Таким образом, можно сказать, что этот блок ожидания похож на сортировочную станцию.
Я бы подошел к этому иначе. Вместо блока Wait
я бы оставил его как Queue
. Затем присоедините его к блоку Pickup
. Внутри Pickup
выберите While condition is true
и введите под условием (при условии, что общее число должно быть 7) (agent.barcode==container.barcode) && (count(queue, q-> q.barcode==agent.barcode)==7 )
.
Всякий раз, когда в систему поступает новый штрих-код, создайте фиктивного агента с agent.barcode
, установленным на это значение, и отправьте фиктивного агента в enter1
с кодом вроде enter1.take(agent)
. Затем этот фиктивный агент будет ждать в queue2
, как только счет будет достигнут, он заберет ровно такое количество агентов и отправится на дно. Если хотите, можете поставить блок Dropoff
, а затем Sink
.
они ждут во внутренней очереди самовывоза, что само по себе не является проблемой!
Привет, @Yashar: не думаю, что это решает мой вопрос :) Посмотрите на этот скриншот моей работающей модели: imgur.com/a/hXOj4YD За короткий промежуток времени все фиктивные (копирующие) агенты прошли и, к сожалению, не ждать в очереди2 (или во внутренней очереди на самовывоз). Поскольку сначала очередь оригиналов пуста, агенты копирования не ждут. У вас есть идея? В моем случае ваш ответ не работает..
Исправлена моя проблема. Я реализовал блок ожидания вместо очереди2, которая освобождает сразу всех агентов, если очередь имеет определенную длину. Также я удалил второе слагаемое в условии Яшара. Так что только (agent.caseNumber == container.caseNumber)
. Я отмечу этот вопрос как ответ, но если у кого-то есть объяснение, почему это не работает, не стесняйтесь комментировать.
Во-первых, большое спасибо Яшар! Вы мне очень помогли. :) Но одно не работает. Я настроил все в своей модели, как вы предложили, но в моем сценарии фиктивный агент не ждет в очереди 2. На самом деле это просто проходит. Как вы заставили его работать в вашей модели? У вас есть идея, в чем может быть моя вина? Заранее спасибо.