Entity Input Switch

Переключайте входные сущности

  • Библиотека:
  • SimEvents

  • Entity Input Switch block

Описание

Типичный сценарий, в котором можно использовать вход switch, - это когда несколько источников сущностей передают в одну очередь, где секвенирование выполняется в соответствии с определенными правилами. Например, пользователи терминалов в совместно используемом компьютере отправляют задания в очередь, которая поступает в центральный модуль, где алгоритм регулирует доступ к очереди так, чтобы предотвратить несправедливое доминирование любого одного пользователя.

Примечание

Если вы хотите объединить пути к сообщениям или сущностям и сгенерировать код для интерфейса компонента, используйте Simulink® Message Merge блок. Message Merge блок аналогичен блоку Entity Output Switch с Active port selection набора параметров для All.

Для получения примера смотрите Сгенерировать объекты, когда События происходят.

Объединение путей сущностей

Можно объединить несколько путей в один путь с помощью блока Entity Input Switch с Active port selection набора параметров для All. Объединение путей сущностей не изменяет самих сущностей, так же как объединение полос на дороге не меняет транспортные средства, которые перемещаются по нему. В частности, блок Entity Input Switch не создает агрегаты или пакеты.

Вот некоторые сценарии, в которых можно объединить пути сущностей:

  • Присоединение различных данных - Несколько блоков генератора сущностей создают сущности, имеющие другие значения для конкретного атрибута. Сущности затем следуют по объединенному пути, но могут быть обработаны по-разному позже на основе их отдельных значений атрибутов.

  • Слияние очередей - Несколько очередей объединяются в одну очередь.

  • Соединение пути обратной связи - путь обратной связи входит в ту же очередь, что и обычный путь.

Последовательность одновременных ожидающих прибытий

Блок Entity Input Switch не испытывает никаких конфликтов, даже если несколько сущностей пытаются прибыть одновременно. Категории поведения следующие:

  • Если выходной порт сущности не блокируется, когда сущности пытаются прибыть, то последовательность прибытий зависит от последовательности событий отправления из блоков, которые предшествуют блоку Entity Input Switch.

    Даже если время отправления совпадает для нескольких сущностей, последовательность может повлиять на поведение системы. Для примера, если сущности переходят в очередь, последовательность отправлений определяет их положения в очереди.

  • Если ожидающие сущности ожидают перехода к блоку Entity Input Switch, когда его сущность выходной порт изменяется с заблокированного на разблокированный, то сущность входа порты уведомляются об изменении последовательно. Изменение с заблокированного на разблокированное означает, что сущность может перейти к блоку Entity Input Switch.

    Если по меньшей мере две сущности ожидают продвижения к блоку Entity Input Switch через отдельные входные порты сущности, то последовательность уведомлений важна, потому что первый порт, который будет уведомлен об изменении, является первым, чтобы продвигать сущность к блоку Entity Input Switch.

Выберите путь прибытия

Блок Entity Input Switch позволяет приходить сущностям в свои порты. Входной порт выбранной сущности может измениться во время симуляции.

Можно также выбрать критерий переключения между входными портами.

  • Выберите Round robin для выбора портов в круглом режиме.

  • Выберите From control port чтобы порт управления мог определить выбранный порт.

  • Выберите Equiprobable чтобы позволить блоку случайным образом выбрать любой порт с равной вероятностью.

Порты

Вход

расширить все

Входной порт сущности для сущностей, входящих в блок.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | enumerated | bus | fixed point

Входной порт сущности для сущностей, входящих в блок.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | enumerated | bus | fixed point

Вход порт управления для входной сущности управления, который определяет вход порт для сущностей, поступающего в блок.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Выход

расширить все

Выходной порт сущности для сущностей, выходящих из блока.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | enumerated | bus | fixed point

Параметры

расширить все

Определяет, сколько входных портов сущности имеет блок.

Программное использование

Параметры блоков: NumberInputPorts
Тип: Вектор символов
Значения: '2' | скаляр
По умолчанию: '2'

Укажите активный входной порт, чтобы разрешить прибытие сущностей во все порты или по одному порту за раз. Выберите All объединить пути сущностей и разрешить прибытие сущностей во все порты. Выберите Switch разрешить прибытие сущности только по одному порту за раз.

Программное использование

Параметры блоков: ActivePortSelection
Тип: Вектор символов
Значения: 'All' | 'Switch'
По умолчанию: 'All'

Выберите критерий переключения между входными портами.

  • Выберите Round robin для выбора портов в круглом режиме. Установите начальный порт в Initial port selection.

  • Выберите From control port чтобы порт управления мог определить выбранный порт. Порт управления, по-видимому, вводит анонимную сущность, несущий данные со значением, большим 0, и меньше или равно количеству портов входа для определения активного порта.

  • Выберите Equiprobable чтобы позволить блоку случайным образом выбрать любой порт с равной вероятностью. Установите Seed, чтобы сгенерировать случайное число и определить активный входной порт.

Программное использование

Параметры блоков: SwitchingCriterion
Тип: Вектор символов
Значения: 'Round robin' | 'From control port' | 'Equiprobable'
По умолчанию: 'Round robin'

Первоначально укажите, какой порт допускает прибытие сущности.

Программное использование

Параметры блоков: InitialPortSelection
Тип: Вектор символов
Значения: '1' | скаляр
По умолчанию: '1'

Задайте seed генератора случайных чисел, чтобы определить вход порт.

Зависимости

Этот параметр видим, когда Switching criterion установлено на Equiprobable.

Программное использование

Параметры блоков: Seed
Тип: Вектор символов
Значения: '23453' | скаляр
По умолчанию: '23453'
Введенный в R2016a