Переключение входных объектов
SimEvents
Типичным сценарием, в котором можно использовать переключатель ввода, является случай, когда несколько источников объектов поступают в одну очередь, где последовательность соответствует определенным правилам. Например, пользователи терминалов в совместно используемом времени компьютере отправляют задания в очередь, которая подается в центральный процессор, где алгоритм регулирует доступ к очереди, чтобы предотвратить несправедливое доминирование любого одного пользователя.
Примечание
Если необходимо объединить пути сообщений или объектов и создать код для интерфейса компонента, используйте
блок слияния сообщений Simulink ®. Поведение блока слияния сообщений совпадает с поведением блока коммутатора вывода сущности с параметром выбора активного порта, равным All.
Пример см. в разделе Создание сущностей при возникновении событий.
Можно объединить несколько путей в один путь с помощью блока «Переключатель ввода объектов» с параметром выбора активного порта, равным All. Объединение путей объектов не изменяет сами объекты, так же как объединение полос на дороге не изменяет транспортные средства, которые по ней едут. В частности, блок коммутатора ввода объектов не создает агрегаты или пакеты.
Вот несколько сценариев, в которых можно комбинировать пути к объектам:
Присоединение различных данных - несколько блоков генератора объектов создают объекты, имеющие разные значения для определенного атрибута. Затем объекты следуют по объединенному пути, но впоследствии могут обрабатываться по-разному в зависимости от отдельных значений атрибутов.
Объединение очередей - несколько очередей объединяются в одну очередь.
Подключение пути обратной связи - путь обратной связи входит в ту же очередь, что и обычный путь.
Блок коммутатора ввода объектов не испытывает конфликтов, даже если несколько объектов пытаются прийти одновременно. Типы поведения следующие:
Если выходной порт объекта не блокируется, когда объекты пытаются прийти, то последовательность поступления зависит от последовательности событий отправления из блоков, которые предшествуют блоку коммутатора ввода объекта.
Даже если время отправления одинаково для нескольких объектов, последовательность может повлиять на поведение системы. Например, если объекты переходят в очередь, последовательность отправления определяет их позиции в очереди.
Если ожидающие объекты ожидают перехода к блоку коммутатора ввода объектов, когда его выходной порт объекта изменяется с заблокированного на разблокированный, то порты ввода объектов уведомляются об изменении последовательно. Изменение с заблокированного на разблокированный означает, что объект может перейти к блоку переключателя ввода объекта.
Если, по меньшей мере, два объекта ожидают перехода к блоку входного коммутатора объекта через отдельные входные порты объекта, то последовательность уведомлений важна, потому что первый порт, который должен быть уведомлен об изменении, является первым, который продвигает объект к блоку входного коммутатора объекта.
Блок коммутатора ввода объектов позволяет получать объекты на свои порты. Выбранный входной порт объекта может изменяться во время моделирования.
Можно также выбрать критерий переключения между портами ввода.
Выбрать Round robin для выбора портов в круговом режиме.
Выбрать From control port позволяет контрольному порту определить выбранный порт.
Выбрать Equiprobable позволяет блоку случайным образом выбрать любой порт с равной вероятностью.
Создатель составного объекта | Разделитель составных объектов | Литник сущности | Многоадресная передача объекта | Переключатель вывода объекта | Очередь сущностей | Репликатор сущностей | Терминатор объекта | Очередь получения многоадресной рассылки