exponenta event banner

Переключатель ввода объекта

Переключение входных объектов

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

  • Entity Input Switch block

Описание

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

Примечание

Если необходимо объединить пути сообщений или объектов и создать код для интерфейса компонента, используйте блок слияния сообщений Simulink ®. Поведение блока слияния сообщений совпадает с поведением блока коммутатора вывода сущности с параметром выбора активного порта, равным All.

Пример см. в разделе Создание сущностей при возникновении событий.

Комбинировать пути к объектам

Можно объединить несколько путей в один путь с помощью блока «Переключатель ввода объектов» с параметром выбора активного порта, равным All. Объединение путей объектов не изменяет сами объекты, так же как объединение полос на дороге не изменяет транспортные средства, которые по ней едут. В частности, блок коммутатора ввода объектов не создает агрегаты или пакеты.

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

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

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

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

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

Блок коммутатора ввода объектов не испытывает конфликтов, даже если несколько объектов пытаются прийти одновременно. Типы поведения следующие:

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

    Даже если время отправления одинаково для нескольких объектов, последовательность может повлиять на поведение системы. Например, если объекты переходят в очередь, последовательность отправления определяет их позиции в очереди.

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

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

Выбор пути поступления

Блок коммутатора ввода объектов позволяет получать объекты на свои порты. Выбранный входной порт объекта может изменяться во время моделирования.

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

  • Выбрать 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 (начальный порт).

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

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

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

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

Первоначально укажите, какой порт позволяет получить объект.

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

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

Укажите начальное число для генератора случайных чисел для определения входного порта.

Зависимости

Этот параметр отображается, если для критерия переключения установлено значение Equiprobable.

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

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