Queue, Entity Queue

Постановка в очередь сообщений и сущностей

  • Библиотека:
  • Simulink/Сообщения и события

    SimEvents

  • Queue block

Описание

Этот блок хранит сущности или сообщения в очереди в зависимости от порядка прибытия или приоритета. Каждый элемент в верхней части очереди отходит, когда нисходящий блок готов принять его. Блок Queue и блок Entity Queue являются одинаковыми блоками с различными значениями по умолчанию для флажка Overwrite the oldest element if queue is full.

Можно задать емкость очереди и политику при заполнении очереди. Блок поддерживает три различных политики сортировки сообщений или очередей, FIFO, last-in-first out (LIFO) и priority. Очередь приоритетов может использоваться только при снятии флажка Overwrite the oldest element if queue is full.

Порты

Вход

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

Входная сущность или сообщение, которое содержит скалярные, шинные или векторные данные для входа в очередь.

Типы данных: 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

Количество сущностей, которые покинули блок.

Зависимости

Чтобы включить этот порт, установите Overwrite the oldest element if queue is full флажок и щелкните вкладку Statistics и выберите поле, помеченное Number of entities departed, d.

Типы данных: double

Количество сущностей, которые еще не покинули блок.

Зависимости

Чтобы включить этот порт, установите Overwrite the oldest element if queue is full флажок и щелкните вкладку Statistics и выберите поле, помеченное Number of entities in block, n.

Типы данных: double

Среднее время ожидания для сущностей в блоке.

Зависимости

Чтобы включить этот порт, установите Overwrite the oldest element if queue is full флажок и щелкните вкладку Statistics и выберите поле, помеченное Average wait, w.

Типы данных: double

Port_l выводит среднюю длину очереди сущностей.

Зависимости

Чтобы включить этот порт, установите Overwrite the oldest element if queue is full флажок и щелкните вкладку Statistics и выберите поле, помеченное Average queue length, l.

Типы данных: double

Количество сущностей, извлеченных из этого блока.

Зависимости

Чтобы включить этот порт, установите Overwrite the oldest element if queue is full флажок и щелкните вкладку Statistics и выберите поле, помеченное Number of entities extracted, ex.

Типы данных: double

Параметры

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

Установите этот флажок, чтобы выбрать между двумя политика перезаписи очереди.

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

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

  • Если флажок снят, блок не принимает новые сообщения, если очередь полна.

    В этом режиме можно манипулировать данными сущности с помощью действий события и визуализировать статистику.

    Чтобы настроить действия, когда сущности или сообщения заходят, выходят или блокируются, введите MATLAB® код в Entry action, Exit action, или Blocked action поле вкладки Event actions. Для получения дополнительной информации см. События и Действия события.

    Для получения примера смотрите Управление сущностями Используя Действия события.

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

Параметры блоков: QueueOverwriting
Тип: Вектор символов
Значения: 'on' | 'off'
По умолчанию: 'on' (для Simulink) и 'off' (для SimEvents)

Укажите емкость очереди.

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

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

Выберите тип очереди.

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

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

Задайте тег при приеме сущностей, транслируемых через многоадресные источники. Для блока Entity Multicast требуется лицензия SimEvents.

Зависимости

Этот параметр видим, когда вы снимаете флажок Overwrite the oldest element if queue is full и устанавливаете Entity arrival source на Multicast.

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

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

Укажите, какой атрибут сущности определяет его приоритет.

Зависимости

Этот параметр видим, когда вы снимаете флажок Overwrite the oldest element if queue is full и устанавливаете Queue type на Priority.

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

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

Выберите направление сортировки в зависимости от приоритета.

  • Ascending - Элементы с меньшими значениями приоритета появляются перед очередью.

  • Descending - Элементы с большими значениями приоритета появляются перед очередью.

Зависимости

Этот параметр видим, когда вы снимаете флажок Overwrite the oldest element if queue is full и устанавливаете Queue type на Priority.

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

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

Выберите источник поступления для сущностей.

  • Input port - Input port является источником сообщений или сущностей.

  • Multicast - Entity Multicast блок является источником сущностей. Для блока Entity Multicast требуется лицензия SimEvents.

Зависимости

Этот параметр видим, когда вы снимаете флажок Overwrite the oldest element if queue is full и устанавливаете Queue type на Priority.

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

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

Задает поведение сущности в определенных событиях. Определите поведение в параметре Event action. Действия Entry и Exit вызываются сразу после ввода сущности и непосредственно перед выходом сущности. Действие Blocked вызывается после блокировки сущности. Для получения дополнительной информации см. События и Действия события.

Примечание

Действия события не поддерживают fixed point тип данных.

Зависимости

Действия события видны при снятии флажка Overwrite the oldest element if queue is full.

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

Параметры блоков: EntryAction, ExitAction, BlockedAction
Тип: Вектор символов
Значения: код MATLAB
По умолчанию: ''

Количество сущностей, которые покинули блок.

Зависимости

Number of entities departed, d отображается, когда вы снимаете флажок Overwrite the oldest element if queue is full.

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

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

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

Зависимости

Number of entities in block, n отображается, когда вы снимаете флажок Overwrite the oldest element if queue is full.

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

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

Сумма времени ожидания для сущностей, покидающих блок, разделенная на их общее количество. Wait time - длительность между входом блока Entity Queue и выходом сущности. Для получения дополнительной информации смотрите Интерпретация моделей SimEvents с использованием статистического анализа.

Зависимости

Average wait, w отображается, когда вы снимаете флажок Overwrite the oldest element if queue is full.

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

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

Накопленный средневзвешенный по времени размер очереди. Блок вычисляет это значение следующим образом:

  1. Умножение размера очереди на ее длительность, чтобы вычислить взвешенный по времени размер очереди

  2. Суммирование всех взвешенных по времени размеров очереди и усреднение их за общее время

Для получения дополнительной информации смотрите Интерпретация моделей SimEvents с использованием статистического анализа.

Зависимости

Average queue length, l отображается, когда вы снимаете флажок Overwrite the oldest element if queue is full.

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

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

Выводит количество извлеченных сущностей, которые вытаскиваются из этого блока блоком Entity Find. Для блока Entity Find требуется лицензия SimEvents. Если извлеченная сущность является первой сущностью в очереди, следующая сущность устанавливается в качестве ожидающей сущности, чтобы покинуть блок. Если атрибут сущности определяет приоритет в очереди приоритетов и изменяется блоком Entity Find, очередь снова сортируется. При извлечении сущности Number of entities departed, d, Number of entities in block, n, Average wait, w и статистика Average queue length, l соответствующим образом обновляются. Дополнительные сведения о поиске и извлечении сущностей см. в разделе Поиск и извлечение сущностей в моделях SimEvents.

Зависимости

Number of entities extracted, ex отображается, когда вы снимаете флажок Overwrite the oldest element if queue is full.

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

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

Примеры моделей

Характеристики блоков

Типы данных

Boolean | bus | double | enumerated | fixed point | integer | single | string

Прямое сквозное соединение

no

Многомерные сигналы

yes

Сигналы переменного размера

no

Обнаружение пересечения нулем

no

Расширенные возможности

.
Введенный в R2016a