Выберите между несколькими входными параметрами блока
Simulink / Маршрутизация Сигнала
HDL Coder / Маршрутизация Сигнала
Многопортовый блок switch определяет, какие из нескольких входных параметров к блоку передают выводу. Блок основывает это решение о значении первого входа. Первый вход является входом управления, и остающиеся входные параметры являются вводами данных. Значение входа управления определяет, который ввод данных передает выводу.
Таблица суммирует, как блок интерпретирует вход управления и определяет ввод данных, который передается выводу.
Вход управления | Усечение | Установка для порядка порта данных | Блокируйте поведение во время симуляции | |
---|---|---|---|---|
Индексация, чтобы выбрать ввод данных | Условие из области значений | |||
Целочисленное значение | 'none' | Zero-based contiguous | Основанная на нуле индексация | Вход управления является меньше, чем |
One-based contiguous | Индексация на основе одна | Вход управления является меньше, чем | ||
Specify indices | Индексы вы задаете | Вход управления не соответствует никакому заданному индексу порта данных. | ||
Не целочисленное значение | Блок обрезает значение до целого числа путем округления, чтобы обнулить. | Zero-based contiguous | Основанная на нуле индексация | Усеченный вход управления является меньше, чем |
One-based contiguous | Индексация на основе одна | Усеченный вход управления является меньше, чем | ||
Specify indices | Индексы вы задаете | Усеченный вход управления не соответствует никакому заданному индексу порта данных. |
Для получения информации о том, как блок обрабатывает условие из области значений, смотрите Как Указатели Блока Вход Управления Из области значений.
Индексный Вектор является специальной настройкой Многопортового блока switch, в котором вы задаете один ввод данных, и вход управления основан на нуле. Блок вывод является элементом входного вектора, индекс которого совпадает с входом управления. Например, если входным вектором является [18 15 17 10]
, и входом управления является 3
, элемент, который совпадает с индексом 3 (основанный на нуле), равняется 10, и это становится выходным значением.
Чтобы сконфигурировать Многопортовый блок switch, чтобы работать блоком Index Vector, установите Number of data ports на 1
и Data port order к Zero-based contiguous
.
Для входа с целочисленным значением меньше, чем intmax(‘int32’)
вход вне области значений, когда значение не совпадает ни с какими индексами порта данных. Для входа управления, который не является целочисленным значением, вход вне области значений, когда усеченное значение не совпадает ни с какими индексами порта данных. В обоих случаях поведение блока зависит от ваших настроек для Data port for default case и Diagnostic for default case.
Если вход управления больше, чем intmax(‘int32’)
, блок переносит входное значение к целому числу.
Следующее поведение применяется только к симуляции для вашей модели.
Порт данных для случая по умолчанию | Диагностика для случая по умолчанию | ||
---|---|---|---|
'none' | Предупреждение | Ошибка | |
|
Используйте последний порт данных и не сообщайте ни о каком предупреждении или ошибке. |
Используйте последний порт данных и сообщите о предупреждении. |
Сообщите об ошибке и симуляции остановки. |
|
Используйте дополнительный порт данных с меткой |
Используйте дополнительный порт данных с меткой |
Сообщите об ошибке и симуляции остановки. |
Следующее поведение применяется к генерации кода за вашу модель.
Порт данных для случая по умолчанию | Диагностика для случая по умолчанию | ||
---|---|---|---|
'none' | Предупреждение | Ошибка | |
|
Используйте последний порт данных. |
Используйте последний порт данных. |
Используйте последний порт данных. |
|
Используйте дополнительный порт данных с меткой |
Используйте дополнительный порт данных с меткой |
Используйте дополнительный порт данных с меткой |
Если два сигнала имеют различное количество размерностей или различные длины размерности, можно использовать сигналы в качестве вводов данных к Многопортовому блоку switch. В диалоговом окне блока выберите параметр Allow different data input sizes. В этом случае вывод блока является сигналом переменного размера. Если вы не выбираете этот параметр, блок генерирует ошибку.
Для получения дополнительной информации о параметре, смотрите, Позволяют различные размеры ввода данных (Результаты в выходном сигнале переменного размера). Для получения дополнительной информации о сигналах переменного размера, смотрите Основы Сигнала Переменного Размера.
Вы задаете количество вводов данных с Number of data ports.
Если вы устанавливаете Number of data ports на 1, блок ведет себя как индексный селектор или индексный вектор и не как многопортовый переключатель. Для получения дополнительной информации смотрите Многопортовый Переключатель, Сконфигурированный как Индексный Блок Вектора.
Если вы устанавливаете Number of data ports на целое число, больше, чем 1, блок ведет себя как многопортовый переключатель. Блок вывод является вводом данных, который соответствует значению входа управления. Если по крайней мере один из вводов данных является вектором, блок вывод является вектором. В этом случае блок расширяет любые скалярные входные параметры до векторов.
Если все вводы данных являются скаляром, вывод является скаляром.
Когда порт управления на Многопортовом блоке switch будет иметь перечислимый тип, следуйте этим инструкциям:
Сценарий | Что сделать | Объяснение |
---|---|---|
Перечислимый тип содержит значение, которое представляет недопустимый, из области значений, или деинициализирует значения. |
|
Эта настройка блока обрабатывает недопустимые значения, которые явным образом представляет перечислимый тип. |
Перечислимый тип содержит только допустимые перечисляемые значения. Однако порт ввода данных может получить недопустимые значения перечислимого типа. |
|
Эта настройка блока обрабатывает недопустимые значения, которые явным образом не представляет перечислимый тип. |
Перечислимый тип содержит только допустимые перечисляемые значения. Порты ввода данных никогда не могут получать недопустимые значения перечислимого типа. |
|
Эта настройка блока избегает ненужного диагностического действия. |
Блок не имеет порта ввода данных для каждого значения перечислимого типа. |
|
Эта настройка блока обрабатывает перечисляемые значения, которые не имеют порта ввода данных, наряду с недопустимыми значениями. |
Если вводы данных к Многопортовому блоку switch являются шинами, имена элементов обеих шин должны быть тем же самым. Используя те же имена элементов гарантирует, что выходная шина имеет те же имена элементов, неважно, какую входную шину блок выбирает. Чтобы гарантировать, что ваша модель удовлетворяет это требование, используйте объект шины задать шины и установить диагностику Element name mismatch на error
. См. Обзор Диагностики Возможности соединения для получения дополнительной информации.
Типы данных |
|
Прямое сквозное соединение |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулем |
|