Блок Entity Gate использует сигнал управления в порту входа в верхней части блока, чтобы определить, когда ворота открыты или закрыты:
Когда сущность с положительной полезной нагрузкой приходит к порту включения в верхней части блока, затвор открыт, и сущность может прибыть, пока он сможет немедленно перейти к следующему блоку.
Когда сущность с нулевой или отрицательной полезной нагрузкой приходит к порту включения в верхней части блока, затвор закрывается, и никакая сущность не может прибыть.
Поскольку входящий сигнал может оставаться положительным в течение временного интервала произвольной длины, активированный логический элемент может оставаться открытым в течение временного интервала произвольной длины. Длина может быть нулем или положительным числом.
В зависимости от Вашего заявления gating логика может явиться результатом управляемой временем динамики, управляемой состоянием динамикой, SimEvents® статистический выход сигнал блока или расчета, включающий различные типы сигналов. Чтобы увидеть готовые к использованию общие паттеры проекта, включая блок Entity gate, смотрите SimEvents Common Design Patterns.
В этом примере показано, как использовать Sense an Entity Passing from A to B and Open a Gate
проект. В этом примере блок Step генерирует сигнал шага во время 4. Этот сигнал проходит через блок Message Send A. Блок Entity Replicator дублирует сущность и передает ее в B. Он использует исходную сущность, чтобы запустить основанную на событиях сущность, чтобы включить Entity Gate блок.
В новой модели перетащите блоки, показанные в примере, и повторно маркируйте и соедините их как показано. Для удобства начните с Sense an Entity Passing from A to B and Open a Gate
проект.
В блоке Step установите параметр Step time равным 4
.
В блоке A (Message Send) установите флажок Show enable port. Установка этого флажка позволяет сигналу Step блока разрешить блоку A отправлять сообщение в блок Entity Replicator.
В блоке Entity Generator, на вкладке Тип Сущность:
Назовите тип сущности Entity
.
Добавьте атрибут с именем Capacity
с начальным значением 0
.
В блоке Entity Queue, на вкладке Statistics, выберите Number of entities in block, n.
Сохраните и запустите модель. Наблюдайте количество сущностей, проходящих через ворота, и количество сущностей в очереди в момент 4.
Предположим, что каждая сущность проходит два процесса, по одному за раз, и что первый процесс не запускается, если второй процесс все еще прогресс для предыдущей сущности. Предположим для этого примера, что предпочтительно смоделировать два процесса, используя два блока Single Server последовательно, а не один блок Single Server, чье время обслуживания является суммой двух индивидуальных времен вычислений; например, вы можете найти решение с двумя блоками более интуитивно понятным, или вы можете захотеть получить доступ к выходным сигналам использования двух блоков Single Server независимо в другой части модели.
Если вы соединяете очередь, сервер и другой сервер последовательно, то первый сервер может начать обслуживать новую сущность, в то время как второй сервер все еще обслуживает предыдущую сущность. Это не достигает заявленной цели. Модели нужен шлюз, чтобы помешать первому серверу принять сущность слишком рано, то есть, в то время как второй сервер все еще содержит предыдущую сущность.
Entity Gate | Entity Input Switch | Entity Output Switch | Entity Replicator | Message Send